From 9c09c00fab0a1d3f2f409dc8d54975ec82753d96 Mon Sep 17 00:00:00 2001 From: softsimon Date: Fri, 19 Aug 2022 17:54:52 +0400 Subject: [PATCH 0001/1466] Updated mempool debug log --- backend/src/api/mempool.ts | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 43aea6059..76c8b169f 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -103,12 +103,11 @@ class Mempool { return txTimes; } - public async $updateMempool() { - logger.debug('Updating mempool'); + public async $updateMempool(): Promise { + logger.debug(`Updating mempool...`); const start = new Date().getTime(); let hasChange: boolean = false; const currentMempoolSize = Object.keys(this.mempoolCache).length; - let txCount = 0; const transactions = await bitcoinApi.$getRawMempool(); const diff = transactions.length - currentMempoolSize; const newTransactions: TransactionExtended[] = []; @@ -124,7 +123,6 @@ class Mempool { try { const transaction = await transactionUtils.$getTransactionExtended(txid); this.mempoolCache[txid] = transaction; - txCount++; if (this.inSync) { this.txPerSecondArray.push(new Date().getTime()); this.vBytesPerSecondArray.push({ @@ -133,14 +131,9 @@ class Mempool { }); } hasChange = true; - if (diff > 0) { - logger.debug('Fetched transaction ' + txCount + ' / ' + diff); - } else { - logger.debug('Fetched transaction ' + txCount); - } newTransactions.push(transaction); } catch (e) { - logger.debug('Error finding transaction in mempool: ' + (e instanceof Error ? e.message : e)); + logger.debug(`Error finding transaction '${txid}' in the mempool: ` + (e instanceof Error ? e.message : e)); } } @@ -197,8 +190,7 @@ class Mempool { const end = new Date().getTime(); const time = end - start; - logger.debug(`New mempool size: ${Object.keys(this.mempoolCache).length} Change: ${diff}`); - logger.debug('Mempool updated in ' + time / 1000 + ' seconds'); + logger.debug(`Mempool updated in ${time / 1000} seconds. New size: ${Object.keys(this.mempoolCache).length} (${diff > 0 ? '+' + diff : diff})`); } public handleRbfTransactions(rbfTransactions: { [txid: string]: TransactionExtended; }) { From f062132636d9f9b0f9497177bc7e1faf7937aa07 Mon Sep 17 00:00:00 2001 From: junderw Date: Mon, 5 Sep 2022 23:13:45 +0900 Subject: [PATCH 0002/1466] Feature: Add endpoint for PSBT nonWitnessUtxo inclusion --- backend/src/api/bitcoin/bitcoin.routes.ts | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 2c3fd9467..1b805d7f0 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -1,5 +1,6 @@ import { Application, Request, Response } from 'express'; import axios from 'axios'; +import * as bitcoinjs from 'bitcoinjs-lib'; import config from '../../config'; import websocketHandler from '../websocket-handler'; import mempool from '../mempool'; @@ -95,6 +96,7 @@ class BitcoinRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'mempool', this.getMempool) .get(config.MEMPOOL.API_URL_PREFIX + 'mempool/txids', this.getMempoolTxIds) .get(config.MEMPOOL.API_URL_PREFIX + 'mempool/recent', this.getRecentMempoolTransactions) + .post(config.MEMPOOL.API_URL_PREFIX + 'psbt/addparents', this.postPsbtCompletion) .get(config.MEMPOOL.API_URL_PREFIX + 'tx/:txId', this.getTransaction) .post(config.MEMPOOL.API_URL_PREFIX + 'tx', this.$postTransaction) .get(config.MEMPOOL.API_URL_PREFIX + 'tx/:txId/hex', this.getRawTransaction) @@ -241,6 +243,48 @@ class BitcoinRoutes { } } + /** + * Takes the PSBT as text/plain body, parses it, and adds the full + * parent transaction to each input that doesn't already have it. + * This is used for BTCPayServer / Trezor users which need access to + * the full parent transaction even with segwit inputs. + * It will respond with a text/plain PSBT in the same format (hex|base64). + */ + private async postPsbtCompletion(req: Request, res: Response) { + res.setHeader('content-type', 'text/plain'); + try { + let psbt: bitcoinjs.Psbt; + let format: 'hex' | 'base64'; + try { + psbt = bitcoinjs.Psbt.fromBase64(req.body); + format = 'base64'; + } catch(e1) { + try { + psbt = bitcoinjs.Psbt.fromHex(req.body); + format = 'hex'; + } catch(e2) { + throw new Error(`Unable to parse PSBT`); + } + } + for (const [index, input] of psbt.data.inputs.entries()) { + if (!input.nonWitnessUtxo) { + // Buffer.from ensures it won't be modified in place by reverse() + const txid = Buffer.from(psbt.txInputs[index].hash).reverse().toString('hex'); + const transaction: IEsploraApi.Transaction = await bitcoinApi.$getRawTransaction(txid, true); + if (!transaction.hex) { + throw new Error(`Couldn't get transaction hex for ${txid}`); + } + psbt.updateInput(index, { + nonWitnessUtxo: Buffer.from(transaction.hex, 'hex'), + }); + } + } + res.send(format === 'hex' ? psbt.toHex() : psbt.toBase64()); + } catch (e: any) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } + private async getTransactionStatus(req: Request, res: Response) { try { const transaction = await transactionUtils.$getTransactionExtended(req.params.txId, true); From 9b1fc1e000560706b1406612dee0386557da7019 Mon Sep 17 00:00:00 2001 From: junderw Date: Sat, 10 Sep 2022 16:03:31 +0900 Subject: [PATCH 0003/1466] Fix response codes for various error states --- backend/src/api/bitcoin/bitcoin.routes.ts | 42 ++++++++++++++++++----- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 1b805d7f0..e783a4864 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -252,36 +252,62 @@ class BitcoinRoutes { */ private async postPsbtCompletion(req: Request, res: Response) { res.setHeader('content-type', 'text/plain'); + const notFoundError = `Couldn't get transaction hex for parent of input`; try { let psbt: bitcoinjs.Psbt; let format: 'hex' | 'base64'; + let isModified = false; try { psbt = bitcoinjs.Psbt.fromBase64(req.body); format = 'base64'; - } catch(e1) { + } catch (e1) { try { psbt = bitcoinjs.Psbt.fromHex(req.body); format = 'hex'; - } catch(e2) { + } catch (e2) { throw new Error(`Unable to parse PSBT`); } } for (const [index, input] of psbt.data.inputs.entries()) { if (!input.nonWitnessUtxo) { // Buffer.from ensures it won't be modified in place by reverse() - const txid = Buffer.from(psbt.txInputs[index].hash).reverse().toString('hex'); - const transaction: IEsploraApi.Transaction = await bitcoinApi.$getRawTransaction(txid, true); - if (!transaction.hex) { - throw new Error(`Couldn't get transaction hex for ${txid}`); + const txid = Buffer.from(psbt.txInputs[index].hash) + .reverse() + .toString('hex'); + + let transaction: IEsploraApi.Transaction; + // If missing transaction, return 404 status error + try { + transaction = await bitcoinApi.$getRawTransaction(txid, true); + if (!transaction.hex) { + throw new Error(''); + } + } catch (err) { + throw new Error(`${notFoundError} #${index} @ ${txid}`); } + psbt.updateInput(index, { nonWitnessUtxo: Buffer.from(transaction.hex, 'hex'), }); + if (!isModified) { + isModified = true; + } } } - res.send(format === 'hex' ? psbt.toHex() : psbt.toBase64()); + if (isModified) { + res.send(format === 'hex' ? psbt.toHex() : psbt.toBase64()); + } else { + // Not modified + // 422 Unprocessable Entity + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422 + res.status(422).send(`Psbt had no missing nonUtxoWitnesses.`); + } } catch (e: any) { - res.status(500).send(e instanceof Error ? e.message : e); + if (e instanceof Error && new RegExp(notFoundError).test(e.message)) { + res.status(404).send(e.message); + } else { + res.status(500).send(e instanceof Error ? e.message : e); + } } } From bd4cf980bd9d8b60c6806f7fd816a357df7abf6f Mon Sep 17 00:00:00 2001 From: junderw Date: Sat, 10 Sep 2022 16:09:43 +0900 Subject: [PATCH 0004/1466] Spelling fix --- backend/src/api/bitcoin/bitcoin.routes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index e783a4864..e774a0ded 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -300,7 +300,7 @@ class BitcoinRoutes { // Not modified // 422 Unprocessable Entity // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422 - res.status(422).send(`Psbt had no missing nonUtxoWitnesses.`); + res.status(422).send(`Psbt had no missing nonWitnessUtxos.`); } } catch (e: any) { if (e instanceof Error && new RegExp(notFoundError).test(e.message)) { From 19467de809301ddecbc414676e9c5bbfe29b2977 Mon Sep 17 00:00:00 2001 From: junderw Date: Sun, 18 Sep 2022 22:30:09 +0900 Subject: [PATCH 0005/1466] Backend: Add block height from timestamp endpoint --- backend/src/api/mining/mining-routes.ts | 20 +++++++++++++ backend/src/repositories/BlocksRepository.ts | 30 ++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/backend/src/api/mining/mining-routes.ts b/backend/src/api/mining/mining-routes.ts index f52d42d1f..c9ace12e5 100644 --- a/backend/src/api/mining/mining-routes.ts +++ b/backend/src/api/mining/mining-routes.ts @@ -27,6 +27,7 @@ class MiningRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'mining/difficulty-adjustments/:interval', this.$getDifficultyAdjustments) .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/predictions/:interval', this.$getHistoricalBlockPrediction) .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/audit/:hash', this.$getBlockAudit) + .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/timestamp/:timestamp', this.$getHeightFromTimestamp) ; } @@ -246,6 +247,25 @@ class MiningRoutes { res.status(500).send(e instanceof Error ? e.message : e); } } + + private async $getHeightFromTimestamp(req: Request, res: Response) { + try { + const timestamp = parseInt(req.params.timestamp, 10); + // Prevent non-integers that are not seconds + if (!/^[1-9][0-9]*$/.test(req.params.timestamp) || timestamp >= 2 ** 32) { + throw new Error(`Invalid timestamp, value must be Unix seconds`); + } + const result = await BlocksRepository.$getBlockHeightFromTimestamp( + timestamp, + ); + res.header('Pragma', 'public'); + res.header('Cache-control', 'public'); + res.setHeader('Expires', new Date(Date.now() + 1000 * 300).toUTCString()); + res.json(result); + } catch (e) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } } export default new MiningRoutes(); diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index 40f670833..c5a1a2ae4 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -392,6 +392,36 @@ class BlocksRepository { } } + /** + * Get the first block at or directly after a given timestamp + * @param timestamp number unix time in seconds + * @returns The height and timestamp of a block (timestamp might vary from given timestamp) + */ + public async $getBlockHeightFromTimestamp( + timestamp: number, + ): Promise<{ height: number; timestamp: number }> { + try { + // Get first block at or after the given timestamp + const query = `SELECT height, blockTimestamp as timestamp FROM blocks + WHERE blockTimestamp >= FROM_UNIXTIME(?) + ORDER BY blockTimestamp ASC + LIMIT 1`; + const params = [timestamp]; + const [rows]: any[][] = await DB.query(query, params); + if (rows.length === 0) { + throw new Error(`No block was found after timestamp ${timestamp}`); + } + + return rows[0]; + } catch (e) { + logger.err( + 'Cannot get block height from timestamp from the db. Reason: ' + + (e instanceof Error ? e.message : e), + ); + throw e; + } + } + /** * Return blocks height */ From 5d1c5b51dd23c7ef6d4445d4f71aee74f2858370 Mon Sep 17 00:00:00 2001 From: junderw Date: Mon, 19 Sep 2022 16:44:53 +0900 Subject: [PATCH 0006/1466] Fix: Add hash and reverse search order --- backend/src/api/mining/mining-routes.ts | 6 +++++- backend/src/repositories/BlocksRepository.ts | 10 +++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/backend/src/api/mining/mining-routes.ts b/backend/src/api/mining/mining-routes.ts index c9ace12e5..ac4b82363 100644 --- a/backend/src/api/mining/mining-routes.ts +++ b/backend/src/api/mining/mining-routes.ts @@ -251,8 +251,12 @@ class MiningRoutes { private async $getHeightFromTimestamp(req: Request, res: Response) { try { const timestamp = parseInt(req.params.timestamp, 10); + // This will prevent people from entering milliseconds etc. + // Block timestamps are allowed to be up to 2 hours off, so 24 hours + // will never put the maximum value before the most recent block + const nowPlus1day = Math.floor(Date.now() / 1000) + 60 * 60 * 24; // Prevent non-integers that are not seconds - if (!/^[1-9][0-9]*$/.test(req.params.timestamp) || timestamp >= 2 ** 32) { + if (!/^[1-9][0-9]*$/.test(req.params.timestamp) || timestamp > nowPlus1day) { throw new Error(`Invalid timestamp, value must be Unix seconds`); } const result = await BlocksRepository.$getBlockHeightFromTimestamp( diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index c5a1a2ae4..590e9de37 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -399,17 +399,17 @@ class BlocksRepository { */ public async $getBlockHeightFromTimestamp( timestamp: number, - ): Promise<{ height: number; timestamp: number }> { + ): Promise<{ height: number; hash: string; timestamp: number }> { try { // Get first block at or after the given timestamp - const query = `SELECT height, blockTimestamp as timestamp FROM blocks - WHERE blockTimestamp >= FROM_UNIXTIME(?) - ORDER BY blockTimestamp ASC + const query = `SELECT height, hash, blockTimestamp as timestamp FROM blocks + WHERE blockTimestamp <= FROM_UNIXTIME(?) + ORDER BY blockTimestamp DESC LIMIT 1`; const params = [timestamp]; const [rows]: any[][] = await DB.query(query, params); if (rows.length === 0) { - throw new Error(`No block was found after timestamp ${timestamp}`); + throw new Error(`No block was found before timestamp ${timestamp}`); } return rows[0]; From 8ef88e9f3974563eade08d3557f24cd672175125 Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 8 Oct 2022 13:47:33 -0700 Subject: [PATCH 0007/1466] Ignore the new config files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 687e9e8cb..b41b0db08 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ data docker-compose.yml backend/mempool-config.json *.swp +frontend/src/resources/config.template.js +frontend/src/resources/config.js From 5d21a61840aeac10524e6bd8e2db481d3576527b Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 8 Oct 2022 13:48:29 -0700 Subject: [PATCH 0008/1466] Serve the frontend config from resources, stop bundling the generated file --- frontend/angular.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/frontend/angular.json b/frontend/angular.json index 1ed29cad9..672b84417 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -152,15 +152,14 @@ "assets": [ "src/favicon.ico", "src/resources", - "src/robots.txt" + "src/robots.txt", + "src/config.js", + "src/config.template.js" ], "styles": [ "src/styles.scss", "node_modules/@fortawesome/fontawesome-svg-core/styles.css" ], - "scripts": [ - "generated-config.js" - ], "vendorChunk": true, "extractLicenses": false, "buildOptimizer": false, From 71e00f66c950c63e4324d33b5025c2ac05c9151e Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 8 Oct 2022 14:51:32 -0700 Subject: [PATCH 0009/1466] Update config generator to output the template and new config file --- frontend/generate-config.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/frontend/generate-config.js b/frontend/generate-config.js index 1f37953b7..4b7f80cd8 100644 --- a/frontend/generate-config.js +++ b/frontend/generate-config.js @@ -2,7 +2,8 @@ var fs = require('fs'); const { spawnSync } = require('child_process'); const CONFIG_FILE_NAME = 'mempool-frontend-config.json'; -const GENERATED_CONFIG_FILE_NAME = 'generated-config.js'; +const GENERATED_CONFIG_FILE_NAME = 'src/resources/config.js'; +const GENERATED_TEMPLATE_CONFIG_FILE_NAME = 'src/resources/config.template.js'; let settings = []; let configContent = {}; @@ -67,10 +68,17 @@ if (process.env.DOCKER_COMMIT_HASH) { const newConfig = `(function (window) { window.__env = window.__env || {};${settings.reduce((str, obj) => `${str} - window.__env.${obj.key} = ${ typeof obj.value === 'string' ? `'${obj.value}'` : obj.value };`, '')} + window.__env.${obj.key} = ${typeof obj.value === 'string' ? `'${obj.value}'` : obj.value};`, '')} window.__env.GIT_COMMIT_HASH = '${gitCommitHash}'; window.__env.PACKAGE_JSON_VERSION = '${packetJsonVersion}'; - }(global || this));`; + }(this));`; + +const newConfigTemplate = `(function (window) { + window.__env = window.__env || {};${settings.reduce((str, obj) => `${str} + window.__env.${obj.key} = ${typeof obj.value === 'string' ? `'\${${obj.key}}'` : `\${${obj.key}}`};`, '')} + window.__env.GIT_COMMIT_HASH = '${gitCommitHash}'; + window.__env.PACKAGE_JSON_VERSION = '${packetJsonVersion}'; + }(this));`; function readConfig(path) { try { @@ -89,6 +97,16 @@ function writeConfig(path, config) { } } +function writeConfigTemplate(path, config) { + try { + fs.writeFileSync(path, config, 'utf8'); + } catch (e) { + throw new Error(e); + } +} + +writeConfigTemplate(GENERATED_TEMPLATE_CONFIG_FILE_NAME, newConfigTemplate); + const currentConfig = readConfig(GENERATED_CONFIG_FILE_NAME); if (currentConfig && currentConfig === newConfig) { @@ -106,4 +124,4 @@ if (currentConfig && currentConfig === newConfig) { console.log('NEW CONFIG: ', newConfig); writeConfig(GENERATED_CONFIG_FILE_NAME, newConfig); console.log(`${GENERATED_CONFIG_FILE_NAME} file updated`); -}; +} From ad7e7795f9809df1c37c12d37f3112e00a6b2f63 Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 8 Oct 2022 14:58:09 -0700 Subject: [PATCH 0010/1466] Update index files to read the new config file --- frontend/src/index.bisq.html | 9 ++++++++- frontend/src/index.liquid.html | 9 ++++++++- frontend/src/index.mempool.html | 9 ++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/frontend/src/index.bisq.html b/frontend/src/index.bisq.html index 8da1e77e0..82f491d50 100644 --- a/frontend/src/index.bisq.html +++ b/frontend/src/index.bisq.html @@ -1,10 +1,15 @@ + mempool - Bisq Markets + + @@ -31,11 +36,13 @@ - + + + diff --git a/frontend/src/index.liquid.html b/frontend/src/index.liquid.html index 89a6984ba..78a78aaf2 100644 --- a/frontend/src/index.liquid.html +++ b/frontend/src/index.liquid.html @@ -1,10 +1,15 @@ + mempool - Liquid Network + + @@ -17,7 +22,7 @@ - + @@ -33,7 +38,9 @@ + + diff --git a/frontend/src/index.mempool.html b/frontend/src/index.mempool.html index 1176a3da2..b6514ed9a 100644 --- a/frontend/src/index.mempool.html +++ b/frontend/src/index.mempool.html @@ -1,10 +1,15 @@ + mempool - Bitcoin Explorer + + @@ -17,7 +22,7 @@ - + @@ -32,7 +37,9 @@ + + From 81d35d9401f102f9de9455953014272151a99f80 Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 15 Oct 2022 19:44:34 -0700 Subject: [PATCH 0011/1466] Update nginx cache settings for the frontend config files --- nginx-mempool.conf | 7 +++++++ production/nginx/server-common.conf | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/nginx-mempool.conf b/nginx-mempool.conf index a6f701478..d4f111d49 100644 --- a/nginx-mempool.conf +++ b/nginx-mempool.conf @@ -21,6 +21,13 @@ try_files $uri @index-redirect; expires 1h; } + + # only cache /resources/config.* for 5 minutes since it changes often + location /resources/config. { + try_files $uri =404; + expires 5m; + } + location @index-redirect { rewrite (.*) /$lang/index.html; } diff --git a/production/nginx/server-common.conf b/production/nginx/server-common.conf index dedd36411..1d1bcbcd1 100644 --- a/production/nginx/server-common.conf +++ b/production/nginx/server-common.conf @@ -81,6 +81,13 @@ location /resources { try_files $uri /en-US/index.html; expires 1w; } + +# only cache /resources/config.* for 5 minutes since it changes often +location /resources/config. { + try_files $uri =404; + expires 5m; +} + # cache /main.f40e91d908a068a2.js forever since they never change location ~* ^/.+\..+\.(js|css) { try_files /$lang/$uri /en-US/$uri =404; From b77fe0dca202e5c113a8cb2848702adddf8f859a Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 15 Oct 2022 19:45:15 -0700 Subject: [PATCH 0012/1466] Change template keys in generate-config script --- frontend/generate-config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/generate-config.js b/frontend/generate-config.js index 4b7f80cd8..3cc173e00 100644 --- a/frontend/generate-config.js +++ b/frontend/generate-config.js @@ -75,7 +75,7 @@ const newConfig = `(function (window) { const newConfigTemplate = `(function (window) { window.__env = window.__env || {};${settings.reduce((str, obj) => `${str} - window.__env.${obj.key} = ${typeof obj.value === 'string' ? `'\${${obj.key}}'` : `\${${obj.key}}`};`, '')} + window.__env.${obj.key} = ${typeof obj.value === 'string' ? `'\${__${obj.key}__}'` : `\${__${obj.key}__}`};`, '')} window.__env.GIT_COMMIT_HASH = '${gitCommitHash}'; window.__env.PACKAGE_JSON_VERSION = '${packetJsonVersion}'; }(this));`; From cfa8a9a7d6cd70f1e690b065a1c4353b89a18a19 Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 15 Oct 2022 19:46:30 -0700 Subject: [PATCH 0013/1466] Update the Docker frontend startup script to read and replace runtime config values --- docker/frontend/entrypoint.sh | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/docker/frontend/entrypoint.sh b/docker/frontend/entrypoint.sh index 7ebe5632c..29064a396 100644 --- a/docker/frontend/entrypoint.sh +++ b/docker/frontend/entrypoint.sh @@ -10,4 +10,60 @@ 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 +# Runtime overrides - read env vars defined in docker compose + +__TESTNET_ENABLED__=${TESTNET_ENABLED:=false} +__SIGNET_ENABLED__=${SIGNET_ENABLED:=false} +__LIQUID_ENABLED__=${LIQUID_EANBLED:=false} +__LIQUID_TESTNET_ENABLED__=${LIQUID_TESTNET_ENABLED:=false} +__BISQ_ENABLED__=${BISQ_ENABLED:=false} +__BISQ_SEPARATE_BACKEND__=${BISQ_SEPARATE_BACKEND:=false} +__ITEMS_PER_PAGE__=${ITEMS_PER_PAGE:=10} +__KEEP_BLOCKS_AMOUNT__=${KEEP_BLOCKS_AMOUNT:=8} +__NGINX_PROTOCOL__=${NGINX_PROTOCOL:=http} +__NGINX_HOSTNAME__=${NGINX_HOSTNAME:=localhost} +__NGINX_PORT__=${NGINX_PORT:=8999} +__BLOCK_WEIGHT_UNITS__=${BLOCK_WEIGHT_UNITS:=4000000} +__MEMPOOL_BLOCKS_AMOUNT__=${MEMPOOL_BLOCKS_AMOUNT:=8} +__BASE_MODULE__=${BASE_MODULE:=mempool} +__MEMPOOL_WEBSITE_URL__=${MEMPOOL_WEBSITE_URL:=https://mempool.space} +__LIQUID_WEBSITE_URL__=${LIQUID_WEBSITE_URL:=https://liquid.network} +__BISQ_WEBSITE_URL__=${BISQ_WEBSITE_URL:=https://bisq.markets} +__MINING_DASHBOARD__=${MINING_DASHBOARD:=true} +__LIGHTNING__=${LIGHTNING:=false} + +# Export as environment variables to be used by envsubst +export __TESTNET_ENABLED__ +export __SIGNET_ENABLED__ +export __LIQUID_ENABLED__ +export __LIQUID_TESTNET_ENABLED__ +export __BISQ_ENABLED__ +export __BISQ_SEPARATE_BACKEND__ +export __ITEMS_PER_PAGE__ +export __KEEP_BLOCKS_AMOUNT__ +export __NGINX_PROTOCOL__ +export __NGINX_HOSTNAME__ +export __NGINX_PORT__ +export __BLOCK_WEIGHT_UNITS__ +export __MEMPOOL_BLOCKS_AMOUNT__ +export __BASE_MODULE__ +export __MEMPOOL_WEBSITE_URL__ +export __LIQUID_WEBSITE_URL__ +export __BISQ_WEBSITE_URL__ +export __MINING_DASHBOARD__ +export __LIGHTNING__ + +# This is not an array right now but that might change in the future +files=() +while IFS= read -r -d $'\0'; do + files+=("$REPLY") +done < <(find /var/www/mempool -name "config.js" -print0) + +for file in "${files[@]}" +do + folder=$(dirname ${file}) + echo ${folder} + envsubst < ${folder}/config.template.js > ${folder}/config.js +done + exec "$@" From 82a4212b729d0affe0824a0bfe8b67a146459df8 Mon Sep 17 00:00:00 2001 From: softsimon Date: Mon, 12 Sep 2022 17:31:36 +0200 Subject: [PATCH 0014/1466] Click to close search dropdown --- .../search-form/search-form.component.html | 4 +--- .../components/search-form/search-form.component.ts | 13 ++++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/components/search-form/search-form.component.html b/frontend/src/app/components/search-form/search-form.component.html index 1303f4a62..4e38ea6e0 100644 --- a/frontend/src/app/components/search-form/search-form.component.html +++ b/frontend/src/app/components/search-form/search-form.component.html @@ -2,9 +2,7 @@
- - - +
-
-
From 2022d3f6d5b45b655affcaf8f29bd128a813acac Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 31 Oct 2022 09:09:32 -0600 Subject: [PATCH 0046/1466] Block audit UX adjustments --- .../block-audit/block-audit.component.html | 26 ++++++------------ .../block-audit/block-audit.component.ts | 15 +++++++++-- .../block-overview-graph.component.ts | 27 +++++++++++++++++++ .../block-overview-graph/tx-view.ts | 4 +-- .../block-overview-tooltip.component.html | 4 +-- 5 files changed, 52 insertions(+), 24 deletions(-) diff --git a/frontend/src/app/components/block-audit/block-audit.component.html b/frontend/src/app/components/block-audit/block-audit.component.html index ca28c6707..a3f2e2ada 100644 --- a/frontend/src/app/components/block-audit/block-audit.component.html +++ b/frontend/src/app/components/block-audit/block-audit.component.html @@ -41,10 +41,6 @@
- - Transactions - {{ blockAudit.tx_count }} - Size @@ -61,6 +57,10 @@
+ + + + @@ -69,18 +69,10 @@ - - - - - - - -
Transactions{{ blockAudit.tx_count }}
Block health {{ blockAudit.matchRate }}%Removed txs {{ blockAudit.missingTxs.length }}
Omitted txs{{ numMissing }}
Added txs {{ blockAudit.addedTxs.length }}
Included txs{{ numUnexpected }}
@@ -108,7 +100,6 @@ -
@@ -121,7 +112,6 @@ -
@@ -165,16 +155,16 @@

Projected Block

+ [blockLimit]="stateService.blockVSize" [orientation]="'top'" [flip]="false" [mirrorTxid]="hoverTx" + (txClickEvent)="onTxClick($event)" (txHoverEvent)="onTxHover($event)">

Actual Block

+ [blockLimit]="stateService.blockVSize" [orientation]="'top'" [flip]="false" [mirrorTxid]="hoverTx" + (txClickEvent)="onTxClick($event)" (txHoverEvent)="onTxHover($event)">
diff --git a/frontend/src/app/components/block-audit/block-audit.component.ts b/frontend/src/app/components/block-audit/block-audit.component.ts index f8ce8d9bb..ab85b84ff 100644 --- a/frontend/src/app/components/block-audit/block-audit.component.ts +++ b/frontend/src/app/components/block-audit/block-audit.component.ts @@ -37,6 +37,7 @@ export class BlockAuditComponent implements OnInit, AfterViewInit, OnDestroy { isLoading = true; webGlEnabled = true; isMobile = window.innerWidth <= 767.98; + hoverTx: string; childChangeSubscription: Subscription; @@ -117,9 +118,11 @@ export class BlockAuditComponent implements OnInit, AfterViewInit, OnDestroy { } } for (const [index, tx] of blockAudit.transactions.entries()) { - if (isAdded[tx.txid]) { + if (index === 0) { + tx.status = null; + } else if (isAdded[tx.txid]) { tx.status = 'added'; - } else if (index === 0 || inTemplate[tx.txid]) { + } else if (inTemplate[tx.txid]) { tx.status = 'found'; } else { tx.status = 'selected'; @@ -189,4 +192,12 @@ export class BlockAuditComponent implements OnInit, AfterViewInit, OnDestroy { const url = new RelativeUrlPipe(this.stateService).transform(`/tx/${event.txid}`); this.router.navigate([url]); } + + onTxHover(txid: string): void { + if (txid && txid.length) { + this.hoverTx = txid; + } else { + this.hoverTx = null; + } + } } diff --git a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts index 14607f398..751781d19 100644 --- a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts +++ b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts @@ -18,7 +18,9 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On @Input() orientation = 'left'; @Input() flip = true; @Input() disableSpinner = false; + @Input() mirrorTxid: string | void; @Output() txClickEvent = new EventEmitter(); + @Output() txHoverEvent = new EventEmitter(); @Output() readyEvent = new EventEmitter(); @ViewChild('blockCanvas') @@ -37,6 +39,7 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On scene: BlockScene; hoverTx: TxView | void; selectedTx: TxView | void; + mirrorTx: TxView | void; tooltipPosition: Position; readyNextFrame = false; @@ -63,6 +66,9 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On this.scene.setOrientation(this.orientation, this.flip); } } + if (changes.mirrorTxid) { + this.setMirror(this.mirrorTxid); + } } ngOnDestroy(): void { @@ -76,6 +82,7 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On this.exit(direction); this.hoverTx = null; this.selectedTx = null; + this.onTxHover(null); this.start(); } @@ -301,6 +308,7 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On } this.hoverTx = null; this.selectedTx = null; + this.onTxHover(null); } } @@ -352,17 +360,20 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On this.selectedTx = selected; } else { this.hoverTx = selected; + this.onTxHover(this.hoverTx ? this.hoverTx.txid : null); } } else { if (clicked) { this.selectedTx = null; } this.hoverTx = null; + this.onTxHover(null); } } else if (clicked) { if (selected === this.selectedTx) { this.hoverTx = this.selectedTx; this.selectedTx = null; + this.onTxHover(this.hoverTx ? this.hoverTx.txid : null); } else { this.selectedTx = selected; } @@ -370,6 +381,18 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On } } + setMirror(txid: string | void) { + if (this.mirrorTx) { + this.scene.setHover(this.mirrorTx, false); + this.start(); + } + if (txid && this.scene.txs[txid]) { + this.mirrorTx = this.scene.txs[txid]; + this.scene.setHover(this.mirrorTx, true); + this.start(); + } + } + onTxClick(cssX: number, cssY: number) { const x = cssX * window.devicePixelRatio; const y = cssY * window.devicePixelRatio; @@ -378,6 +401,10 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On this.txClickEvent.emit(selected); } } + + onTxHover(hoverId: string) { + this.txHoverEvent.emit(hoverId); + } } // WebGL shader attributes diff --git a/frontend/src/app/components/block-overview-graph/tx-view.ts b/frontend/src/app/components/block-overview-graph/tx-view.ts index ac2a4655a..f07d96eb0 100644 --- a/frontend/src/app/components/block-overview-graph/tx-view.ts +++ b/frontend/src/app/components/block-overview-graph/tx-view.ts @@ -12,8 +12,8 @@ const auditFeeColors = feeColors.map((color) => desaturate(color, 0.3)); const auditColors = { censored: hexToColor('f344df'), missing: darken(desaturate(hexToColor('f344df'), 0.3), 0.7), - added: hexToColor('03E1E5'), - selected: darken(desaturate(hexToColor('039BE5'), 0.3), 0.7), + added: hexToColor('0099ff'), + selected: darken(desaturate(hexToColor('0099ff'), 0.3), 0.7), } // convert from this class's update format to TxSprite's update format diff --git a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html index b19b67b06..8c1002025 100644 --- a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html +++ b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html @@ -37,9 +37,9 @@ match removed - missing + omitted added - included + extra From 1b3bc0ef4efaf7636389001b264e49b8a729a79b Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 31 Oct 2022 09:31:24 -0600 Subject: [PATCH 0047/1466] Handle block height or hash in audit page --- .../block-audit/block-audit.component.ts | 146 +++++++++++------- 1 file changed, 86 insertions(+), 60 deletions(-) diff --git a/frontend/src/app/components/block-audit/block-audit.component.ts b/frontend/src/app/components/block-audit/block-audit.component.ts index ab85b84ff..3787796fd 100644 --- a/frontend/src/app/components/block-audit/block-audit.component.ts +++ b/frontend/src/app/components/block-audit/block-audit.component.ts @@ -1,9 +1,10 @@ import { Component, OnDestroy, OnInit, AfterViewInit, ViewChildren, QueryList } from '@angular/core'; import { ActivatedRoute, ParamMap, Router } from '@angular/router'; -import { Subscription, combineLatest } from 'rxjs'; -import { map, switchMap, startWith, catchError } from 'rxjs/operators'; +import { Subscription, combineLatest, of } from 'rxjs'; +import { map, switchMap, startWith, catchError, filter } from 'rxjs/operators'; import { BlockAudit, TransactionStripped } from '../../interfaces/node-api.interface'; import { ApiService } from '../../services/api.service'; +import { ElectrsApiService } from '../../services/electrs-api.service'; import { StateService } from '../../services/state.service'; import { detectWebGL } from '../../shared/graphs.utils'; import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe'; @@ -52,7 +53,8 @@ export class BlockAuditComponent implements OnInit, AfterViewInit, OnDestroy { private route: ActivatedRoute, public stateService: StateService, private router: Router, - private apiService: ApiService + private apiService: ApiService, + private electrsApiService: ElectrsApiService, ) { this.webGlEnabled = detectWebGL(); } @@ -77,71 +79,95 @@ export class BlockAuditComponent implements OnInit, AfterViewInit, OnDestroy { this.auditSubscription = this.route.paramMap.pipe( switchMap((params: ParamMap) => { - this.blockHash = params.get('id') || null; - if (!this.blockHash) { + const blockHash = params.get('id') || null; + if (!blockHash) { return null; } + + let isBlockHeight = false; + if (/^[0-9]+$/.test(blockHash)) { + isBlockHeight = true; + } else { + this.blockHash = blockHash; + } + + if (isBlockHeight) { + return this.electrsApiService.getBlockHashFromHeight$(parseInt(blockHash, 10)) + .pipe( + switchMap((hash: string) => { + if (hash) { + this.blockHash = hash; + return this.apiService.getBlockAudit$(this.blockHash) + } else { + return null; + } + }), + catchError((err) => { + this.error = err; + return of(null); + }), + ); + } return this.apiService.getBlockAudit$(this.blockHash) - .pipe( - map((response) => { - const blockAudit = response.body; - const inTemplate = {}; - const inBlock = {}; - const isAdded = {}; - const isCensored = {}; - const isMissing = {}; - const isSelected = {}; - this.numMissing = 0; - this.numUnexpected = 0; - for (const tx of blockAudit.template) { - inTemplate[tx.txid] = true; - } - for (const tx of blockAudit.transactions) { - inBlock[tx.txid] = true; - } - for (const txid of blockAudit.addedTxs) { - isAdded[txid] = true; - } - for (const txid of blockAudit.missingTxs) { - isCensored[txid] = true; - } - // set transaction statuses - for (const tx of blockAudit.template) { - if (isCensored[tx.txid]) { - tx.status = 'censored'; - } else if (inBlock[tx.txid]) { - tx.status = 'found'; - } else { - tx.status = 'missing'; - isMissing[tx.txid] = true; - this.numMissing++; - } - } - for (const [index, tx] of blockAudit.transactions.entries()) { - if (index === 0) { - tx.status = null; - } else if (isAdded[tx.txid]) { - tx.status = 'added'; - } else if (inTemplate[tx.txid]) { - tx.status = 'found'; - } else { - tx.status = 'selected'; - isSelected[tx.txid] = true; - this.numUnexpected++; - } - } - for (const tx of blockAudit.transactions) { - inBlock[tx.txid] = true; - } - return blockAudit; - }) - ); + }), + filter((response) => response != null), + map((response) => { + const blockAudit = response.body; + const inTemplate = {}; + const inBlock = {}; + const isAdded = {}; + const isCensored = {}; + const isMissing = {}; + const isSelected = {}; + this.numMissing = 0; + this.numUnexpected = 0; + for (const tx of blockAudit.template) { + inTemplate[tx.txid] = true; + } + for (const tx of blockAudit.transactions) { + inBlock[tx.txid] = true; + } + for (const txid of blockAudit.addedTxs) { + isAdded[txid] = true; + } + for (const txid of blockAudit.missingTxs) { + isCensored[txid] = true; + } + // set transaction statuses + for (const tx of blockAudit.template) { + if (isCensored[tx.txid]) { + tx.status = 'censored'; + } else if (inBlock[tx.txid]) { + tx.status = 'found'; + } else { + tx.status = 'missing'; + isMissing[tx.txid] = true; + this.numMissing++; + } + } + for (const [index, tx] of blockAudit.transactions.entries()) { + if (index === 0) { + tx.status = null; + } else if (isAdded[tx.txid]) { + tx.status = 'added'; + } else if (inTemplate[tx.txid]) { + tx.status = 'found'; + } else { + tx.status = 'selected'; + isSelected[tx.txid] = true; + this.numUnexpected++; + } + } + for (const tx of blockAudit.transactions) { + inBlock[tx.txid] = true; + } + return blockAudit; }), catchError((err) => { console.log(err); this.error = err; this.isLoading = false; - return null; + return of(null); }), ).subscribe((blockAudit) => { this.blockAudit = blockAudit; From 5b6f713ef3ed7c99143ce512f4eab4caca155399 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 1 Nov 2022 14:01:50 -0600 Subject: [PATCH 0048/1466] Fetch missing block audit scores --- backend/src/api/audit.ts | 50 +++++++++++++++- backend/src/api/blocks.ts | 6 +- backend/src/api/mining/mining-routes.ts | 27 +++++++++ backend/src/mempool.interfaces.ts | 5 ++ .../repositories/BlocksAuditsRepository.ts | 6 +- .../app/components/block/block.component.html | 2 +- .../app/components/block/block.component.ts | 26 +++++++- .../blocks-list/blocks-list.component.html | 15 ++--- .../blocks-list/blocks-list.component.scss | 4 ++ .../blocks-list/blocks-list.component.ts | 59 +++++++++++++++++-- .../src/app/interfaces/node-api.interface.ts | 5 ++ frontend/src/app/services/api.service.ts | 15 ++++- 12 files changed, 194 insertions(+), 26 deletions(-) diff --git a/backend/src/api/audit.ts b/backend/src/api/audit.ts index 9ad37c798..1cbfe7a84 100644 --- a/backend/src/api/audit.ts +++ b/backend/src/api/audit.ts @@ -1,5 +1,10 @@ import config from '../config'; -import { BlockExtended, TransactionExtended, MempoolBlockWithTransactions } from '../mempool.interfaces'; +import bitcoinApi from './bitcoin/bitcoin-api-factory'; +import { Common } from './common'; +import { TransactionExtended, MempoolBlockWithTransactions, AuditScore } from '../mempool.interfaces'; +import blocksRepository from '../repositories/BlocksRepository'; +import blocksAuditsRepository from '../repositories/BlocksAuditsRepository'; +import blocks from '../api/blocks'; const PROPAGATION_MARGIN = 180; // in seconds, time since a transaction is first seen after which it is assumed to have propagated to all miners @@ -81,7 +86,7 @@ class Audit { } overflowWeight += tx.weight; } - totalWeight += tx.weight + totalWeight += tx.weight; } // transactions missing from near the end of our template are probably not being censored @@ -97,7 +102,7 @@ class Audit { } if (mempool[txid].effectiveFeePerVsize > maxOverflowRate) { maxOverflowRate = mempool[txid].effectiveFeePerVsize; - rateThreshold = (Math.ceil(maxOverflowRate * 100) / 100) + 0.005 + rateThreshold = (Math.ceil(maxOverflowRate * 100) / 100) + 0.005; } } else if (mempool[txid].effectiveFeePerVsize <= rateThreshold) { // tolerance of 0.01 sat/vb + rounding if (isCensored[txid]) { @@ -117,6 +122,45 @@ class Audit { score }; } + + public async $getBlockAuditScores(fromHeight?: number, limit: number = 15): Promise { + let currentHeight = fromHeight !== undefined ? fromHeight : await blocksRepository.$mostRecentBlockHeight(); + const returnScores: AuditScore[] = []; + + if (currentHeight < 0) { + return returnScores; + } + + for (let i = 0; i < limit && currentHeight >= 0; i++) { + const block = blocks.getBlocks().find((b) => b.height === currentHeight); + if (block?.extras?.matchRate != null) { + returnScores.push({ + hash: block.id, + matchRate: block.extras.matchRate + }); + } else { + let currentHash; + if (!currentHash && Common.indexingEnabled()) { + const dbBlock = await blocksRepository.$getBlockByHeight(currentHeight); + if (dbBlock && dbBlock['id']) { + currentHash = dbBlock['id']; + } + } + if (!currentHash) { + currentHash = await bitcoinApi.$getBlockHash(currentHeight); + } + if (currentHash) { + const auditScore = await blocksAuditsRepository.$getBlockAuditScore(currentHash); + returnScores.push({ + hash: currentHash, + matchRate: auditScore?.matchRate + }); + } + } + currentHeight--; + } + return returnScores; + } } export default new Audit(); \ No newline at end of file diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index f536ce3d5..ea2aff78b 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -195,9 +195,9 @@ class Blocks { }; } - const auditSummary = await BlocksAuditsRepository.$getShortBlockAudit(block.id); - if (auditSummary) { - blockExtended.extras.matchRate = auditSummary.matchRate; + const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(block.id); + if (auditScore != null) { + blockExtended.extras.matchRate = auditScore.matchRate; } } diff --git a/backend/src/api/mining/mining-routes.ts b/backend/src/api/mining/mining-routes.ts index 591af3f90..73d38d841 100644 --- a/backend/src/api/mining/mining-routes.ts +++ b/backend/src/api/mining/mining-routes.ts @@ -1,6 +1,7 @@ import { Application, Request, Response } from 'express'; import config from "../../config"; import logger from '../../logger'; +import audits from '../audit'; import BlocksAuditsRepository from '../../repositories/BlocksAuditsRepository'; import BlocksRepository from '../../repositories/BlocksRepository'; import DifficultyAdjustmentsRepository from '../../repositories/DifficultyAdjustmentsRepository'; @@ -26,6 +27,9 @@ class MiningRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/sizes-weights/:interval', this.$getHistoricalBlockSizeAndWeight) .get(config.MEMPOOL.API_URL_PREFIX + 'mining/difficulty-adjustments/:interval', this.$getDifficultyAdjustments) .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/predictions/:interval', this.$getHistoricalBlockPrediction) + .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/audit/scores', this.$getBlockAuditScores) + .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/audit/scores/:height', this.$getBlockAuditScores) + .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/audit/score/:hash', this.$getBlockAuditScore) .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/audit/:hash', this.$getBlockAudit) .get(config.MEMPOOL.API_URL_PREFIX + 'mining/blocks/timestamp/:timestamp', this.$getHeightFromTimestamp) ; @@ -276,6 +280,29 @@ class MiningRoutes { res.status(500).send(e instanceof Error ? e.message : e); } } + + private async $getBlockAuditScores(req: Request, res: Response) { + try { + const height = req.params.height === undefined ? undefined : parseInt(req.params.height, 10); + res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString()); + res.json(await audits.$getBlockAuditScores(height, 15)); + } catch (e) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } + + public async $getBlockAuditScore(req: Request, res: Response) { + try { + const audit = await BlocksAuditsRepository.$getBlockAuditScore(req.params.hash); + + res.header('Pragma', 'public'); + res.header('Cache-control', 'public'); + res.setHeader('Expires', new Date(Date.now() + 1000 * 3600 * 24).toUTCString()); + res.json(audit || 'null'); + } catch (e) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } } export default new MiningRoutes(); diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index 32d87f3dc..24bfa1565 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -32,6 +32,11 @@ export interface BlockAudit { matchRate: number, } +export interface AuditScore { + hash: string, + matchRate?: number, +} + export interface MempoolBlock { blockSize: number; blockVSize: number; diff --git a/backend/src/repositories/BlocksAuditsRepository.ts b/backend/src/repositories/BlocksAuditsRepository.ts index 188cf4c38..2aa1fb260 100644 --- a/backend/src/repositories/BlocksAuditsRepository.ts +++ b/backend/src/repositories/BlocksAuditsRepository.ts @@ -1,6 +1,6 @@ import DB from '../database'; import logger from '../logger'; -import { BlockAudit } from '../mempool.interfaces'; +import { BlockAudit, AuditScore } from '../mempool.interfaces'; class BlocksAuditRepositories { public async $saveAudit(audit: BlockAudit): Promise { @@ -72,10 +72,10 @@ class BlocksAuditRepositories { } } - public async $getShortBlockAudit(hash: string): Promise { + public async $getBlockAuditScore(hash: string): Promise { try { const [rows]: any[] = await DB.query( - `SELECT hash as id, match_rate as matchRate + `SELECT hash, match_rate as matchRate FROM blocks_audits WHERE blocks_audits.hash = "${hash}" `); diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 819b05c81..ba8f3aef3 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -114,7 +114,7 @@ Block health {{ block.extras.matchRate }}% - Unknown + Unknown diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 8f977b81d..aff07a95e 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -4,7 +4,7 @@ import { ActivatedRoute, ParamMap, Router } from '@angular/router'; import { ElectrsApiService } from '../../services/electrs-api.service'; import { switchMap, tap, throttleTime, catchError, map, shareReplay, startWith, pairwise } from 'rxjs/operators'; import { Transaction, Vout } from '../../interfaces/electrs.interface'; -import { Observable, of, Subscription, asyncScheduler, EMPTY } from 'rxjs'; +import { Observable, of, Subscription, asyncScheduler, EMPTY, Subject } from 'rxjs'; import { StateService } from '../../services/state.service'; import { SeoService } from '../../services/seo.service'; import { WebsocketService } from '../../services/websocket.service'; @@ -60,6 +60,8 @@ export class BlockComponent implements OnInit, OnDestroy { nextBlockTxListSubscription: Subscription = undefined; timeLtrSubscription: Subscription; timeLtr: boolean; + fetchAuditScore$ = new Subject(); + fetchAuditScoreSubscription: Subscription; @ViewChild('blockGraph') blockGraph: BlockOverviewGraphComponent; @@ -105,12 +107,30 @@ export class BlockComponent implements OnInit, OnDestroy { if (block.id === this.blockHash) { this.block = block; + if (this.block.id && this.block?.extras?.matchRate == null) { + this.fetchAuditScore$.next(this.block.id); + } if (block?.extras?.reward != undefined) { this.fees = block.extras.reward / 100000000 - this.blockSubsidy; } } }); + if (this.indexingAvailable) { + this.fetchAuditScoreSubscription = this.fetchAuditScore$ + .pipe( + switchMap((hash) => this.apiService.getBlockAuditScore$(hash)), + catchError(() => EMPTY), + ) + .subscribe((score) => { + if (score && score.hash === this.block.id) { + this.block.extras.matchRate = score.matchRate || null; + } else { + this.block.extras.matchRate = null; + } + }); + } + const block$ = this.route.paramMap.pipe( switchMap((params: ParamMap) => { const blockHash: string = params.get('id') || ''; @@ -209,6 +229,9 @@ export class BlockComponent implements OnInit, OnDestroy { this.fees = block.extras.reward / 100000000 - this.blockSubsidy; } this.stateService.markBlock$.next({ blockHeight: this.blockHeight }); + if (this.block.id && this.block?.extras?.matchRate == null) { + this.fetchAuditScore$.next(this.block.id); + } this.isLoadingTransactions = true; this.transactions = null; this.transactionsError = null; @@ -311,6 +334,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.networkChangedSubscription.unsubscribe(); this.queryParamsSubscription.unsubscribe(); this.timeLtrSubscription.unsubscribe(); + this.fetchAuditScoreSubscription?.unsubscribe(); this.unsubscribeNextBlockSubscriptions(); } diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.html b/frontend/src/app/components/blocks-list/blocks-list.component.html index 68acf71ea..69bcf3141 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.html +++ b/frontend/src/app/components/blocks-list/blocks-list.component.html @@ -46,22 +46,17 @@ - +
+ [ngStyle]="{'width': (100 - (auditScores[block.id] || 0)) + '%' }">
- {{ block.extras.matchRate }}% + {{ auditScores[block.id] }}% + + ~
-
-
-
- ~ -
-
diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.scss b/frontend/src/app/components/blocks-list/blocks-list.component.scss index 6617cec58..713e59640 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.scss +++ b/frontend/src/app/components/blocks-list/blocks-list.component.scss @@ -196,6 +196,10 @@ tr, td, th { @media (max-width: 950px) { display: none; } + + .progress-text .skeleton-loader { + top: -8.5px; + } } .health.widget { width: 25%; diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.ts b/frontend/src/app/components/blocks-list/blocks-list.component.ts index 7e4c34eb4..700032225 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.ts +++ b/frontend/src/app/components/blocks-list/blocks-list.component.ts @@ -1,6 +1,6 @@ -import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core'; -import { BehaviorSubject, combineLatest, concat, Observable, timer } from 'rxjs'; -import { delayWhen, map, retryWhen, scan, skip, switchMap, tap } from 'rxjs/operators'; +import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input } from '@angular/core'; +import { BehaviorSubject, combineLatest, concat, Observable, timer, EMPTY, Subscription, of } from 'rxjs'; +import { catchError, delayWhen, map, retryWhen, scan, skip, switchMap, tap } from 'rxjs/operators'; import { BlockExtended } from '../../interfaces/node-api.interface'; import { ApiService } from '../../services/api.service'; import { StateService } from '../../services/state.service'; @@ -12,10 +12,14 @@ import { WebsocketService } from '../../services/websocket.service'; styleUrls: ['./blocks-list.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class BlocksList implements OnInit { +export class BlocksList implements OnInit, OnDestroy { @Input() widget: boolean = false; blocks$: Observable = undefined; + auditScores: { [hash: string]: number | void } = {}; + + auditScoreSubscription: Subscription; + latestScoreSubscription: Subscription; indexingAvailable = false; isLoading = true; @@ -105,6 +109,53 @@ export class BlocksList implements OnInit { return acc; }, []) ); + + if (this.indexingAvailable) { + this.auditScoreSubscription = this.fromHeightSubject.pipe( + switchMap((fromBlockHeight) => { + return this.apiService.getBlockAuditScores$(this.page === 1 ? undefined : fromBlockHeight) + .pipe( + catchError(() => { + return EMPTY; + }) + ); + }) + ).subscribe((scores) => { + Object.values(scores).forEach(score => { + this.auditScores[score.hash] = score?.matchRate != null ? score.matchRate : null; + }); + }); + + this.latestScoreSubscription = this.stateService.blocks$.pipe( + switchMap((block) => { + if (block[0]?.extras?.matchRate != null) { + return of({ + hash: block[0].id, + matchRate: block[0]?.extras?.matchRate, + }); + } + else if (block[0]?.id && this.auditScores[block[0].id] === undefined) { + return this.apiService.getBlockAuditScore$(block[0].id) + .pipe( + catchError(() => { + return EMPTY; + }) + ); + } else { + return EMPTY; + } + }), + ).subscribe((score) => { + if (score && score.hash) { + this.auditScores[score.hash] = score?.matchRate != null ? score.matchRate : null; + } + }); + } + } + + ngOnDestroy(): void { + this.auditScoreSubscription?.unsubscribe(); + this.latestScoreSubscription?.unsubscribe(); } pageChange(page: number) { diff --git a/frontend/src/app/interfaces/node-api.interface.ts b/frontend/src/app/interfaces/node-api.interface.ts index 8e04c8635..39d0c3d5d 100644 --- a/frontend/src/app/interfaces/node-api.interface.ts +++ b/frontend/src/app/interfaces/node-api.interface.ts @@ -152,6 +152,11 @@ export interface RewardStats { totalTx: number; } +export interface AuditScore { + hash: string; + matchRate?: number; +} + export interface ITopNodesPerChannels { publicKey: string, alias: string, diff --git a/frontend/src/app/services/api.service.ts b/frontend/src/app/services/api.service.ts index 8c0f5ecd0..dfed35d72 100644 --- a/frontend/src/app/services/api.service.ts +++ b/frontend/src/app/services/api.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; import { CpfpInfo, OptimizedMempoolStats, AddressInformation, LiquidPegs, ITranslators, - PoolStat, BlockExtended, TransactionStripped, RewardStats } from '../interfaces/node-api.interface'; + PoolStat, BlockExtended, TransactionStripped, RewardStats, AuditScore } from '../interfaces/node-api.interface'; import { Observable } from 'rxjs'; import { StateService } from './state.service'; import { WebsocketResponse } from '../interfaces/websocket.interface'; @@ -234,6 +234,19 @@ export class ApiService { ); } + getBlockAuditScores$(from: number): Observable { + return this.httpClient.get( + this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/blocks/audit/scores` + + (from !== undefined ? `/${from}` : ``) + ); + } + + getBlockAuditScore$(hash: string) : Observable { + return this.httpClient.get( + this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/blocks/audit/score/` + hash + ); + } + getRewardStats$(blockCount: number = 144): Observable { return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/reward-stats/${blockCount}`); } From 373e02a5b05fd811e28f556e03108d680af382fe Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 4 Nov 2022 18:21:08 -0600 Subject: [PATCH 0049/1466] Store & expose node extension TLV data in backend --- backend/src/api/database-migration.ts | 19 +++++- backend/src/api/explorer/nodes.api.ts | 12 ++++ .../clightning/clightning-convert.ts | 10 +++ .../api/lightning/lightning-api.interface.ts | 1 + .../src/repositories/NodeRecordsRepository.ts | 67 +++++++++++++++++++ .../tasks/lightning/network-sync.service.ts | 19 +++++- 6 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 backend/src/repositories/NodeRecordsRepository.ts diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 20e5ab339..3bbd501fc 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -4,7 +4,7 @@ import logger from '../logger'; import { Common } from './common'; class DatabaseMigration { - private static currentVersion = 42; + private static currentVersion = 43; private queryTimeout = 120000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -356,6 +356,10 @@ class DatabaseMigration { if (databaseSchemaVersion < 42 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `channels` ADD closing_resolved tinyint(1) DEFAULT 0'); } + + if (databaseSchemaVersion < 43 && isBitcoin === true) { + await this.$executeQuery(this.getCreateLNNodeRecordsTableQuery(), await this.$checkIfTableExists('nodes_records')); + } } /** @@ -791,6 +795,19 @@ class DatabaseMigration { ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; } + private getCreateLNNodeRecordsTableQuery(): string { + return `CREATE TABLE IF NOT EXISTS nodes_records ( + public_key varchar(66) NOT NULL, + type int(10) unsigned NOT NULL, + payload blob NOT NULL, + UNIQUE KEY public_key_type (public_key, type), + INDEX (public_key), + FOREIGN KEY (public_key) + REFERENCES nodes (public_key) + ON DELETE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; + } + public async $truncateIndexedData(tables: string[]) { const allowedTables = ['blocks', 'hashrates', 'prices']; diff --git a/backend/src/api/explorer/nodes.api.ts b/backend/src/api/explorer/nodes.api.ts index d8dceab19..b21544e4b 100644 --- a/backend/src/api/explorer/nodes.api.ts +++ b/backend/src/api/explorer/nodes.api.ts @@ -105,6 +105,18 @@ class NodesApi { node.closed_channel_count = rows[0].closed_channel_count; } + // Custom records + query = ` + SELECT type, payload + FROM nodes_records + WHERE public_key = ? + `; + [rows] = await DB.query(query, [public_key]); + node.custom_records = {}; + for (const record of rows) { + node.custom_records[record.type] = Buffer.from(record.payload, 'binary').toString('hex'); + } + return node; } catch (e) { logger.err(`Cannot get node information for ${public_key}. Reason: ${(e instanceof Error ? e.message : e)}`); diff --git a/backend/src/api/lightning/clightning/clightning-convert.ts b/backend/src/api/lightning/clightning/clightning-convert.ts index 9b3c62f04..92ae1f0a7 100644 --- a/backend/src/api/lightning/clightning/clightning-convert.ts +++ b/backend/src/api/lightning/clightning/clightning-convert.ts @@ -7,6 +7,15 @@ import { Common } from '../../common'; * Convert a clightning "listnode" entry to a lnd node entry */ export function convertNode(clNode: any): ILightningApi.Node { + let custom_records: { [type: number]: string } | undefined = undefined; + if (clNode.option_will_fund) { + try { + custom_records = { '1': Buffer.from(clNode.option_will_fund.compact_lease || '', 'hex').toString('base64') }; + } catch (e) { + logger.err(`Cannot decode option_will_fund compact_lease for ${clNode.nodeid}). Reason: ` + (e instanceof Error ? e.message : e)); + custom_records = undefined; + } + } return { alias: clNode.alias ?? '', color: `#${clNode.color ?? ''}`, @@ -23,6 +32,7 @@ export function convertNode(clNode: any): ILightningApi.Node { }; }) ?? [], last_update: clNode?.last_timestamp ?? 0, + custom_records }; } diff --git a/backend/src/api/lightning/lightning-api.interface.ts b/backend/src/api/lightning/lightning-api.interface.ts index 1a5e2793f..6e3ea0de3 100644 --- a/backend/src/api/lightning/lightning-api.interface.ts +++ b/backend/src/api/lightning/lightning-api.interface.ts @@ -49,6 +49,7 @@ export namespace ILightningApi { }[]; color: string; features: { [key: number]: Feature }; + custom_records?: { [type: number]: string }; } export interface Info { diff --git a/backend/src/repositories/NodeRecordsRepository.ts b/backend/src/repositories/NodeRecordsRepository.ts new file mode 100644 index 000000000..cf676e35e --- /dev/null +++ b/backend/src/repositories/NodeRecordsRepository.ts @@ -0,0 +1,67 @@ +import { ResultSetHeader, RowDataPacket } from 'mysql2'; +import DB from '../database'; +import logger from '../logger'; + +export interface NodeRecord { + publicKey: string; // node public key + type: number; // TLV extension record type + payload: string; // base64 record payload +} + +class NodesRecordsRepository { + public async $saveRecord(record: NodeRecord): Promise { + try { + const payloadBytes = Buffer.from(record.payload, 'base64'); + await DB.query(` + INSERT INTO nodes_records(public_key, type, payload) + VALUE (?, ?, ?) + ON DUPLICATE KEY UPDATE + payload = ? + `, [record.publicKey, record.type, payloadBytes, payloadBytes]); + } catch (e: any) { + if (e.errno !== 1062) { // ER_DUP_ENTRY - Not an issue, just ignore this + logger.err(`Cannot save node record (${[record.publicKey, record.type, record.payload]}) into db. Reason: ` + (e instanceof Error ? e.message : e)); + // We don't throw, not a critical issue if we miss some nodes records + } + } + } + + public async $getRecordTypes(publicKey: string): Promise { + try { + const query = ` + SELECT type FROM nodes_records + WHERE public_key = ? + `; + const [rows] = await DB.query(query, [publicKey]); + return rows.map(row => row['type']); + } catch (e) { + logger.err(`Cannot retrieve custom records for ${publicKey} from db. Reason: ` + (e instanceof Error ? e.message : e)); + return []; + } + } + + public async $deleteUnusedRecords(publicKey: string, recordTypes: number[]): Promise { + try { + let query; + if (recordTypes.length) { + query = ` + DELETE FROM nodes_records + WHERE public_key = ? + AND type NOT IN (${recordTypes.map(type => `${type}`).join(',')}) + `; + } else { + query = ` + DELETE FROM nodes_records + WHERE public_key = ? + `; + } + const [result] = await DB.query(query, [publicKey]); + return result.affectedRows; + } catch (e) { + logger.err(`Cannot delete unused custom records for ${publicKey} from db. Reason: ` + (e instanceof Error ? e.message : e)); + return 0; + } + } +} + +export default new NodesRecordsRepository(); diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index 70173d6bc..2910f0f9c 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -13,6 +13,7 @@ import fundingTxFetcher from './sync-tasks/funding-tx-fetcher'; import NodesSocketsRepository from '../../repositories/NodesSocketsRepository'; import { Common } from '../../api/common'; import blocks from '../../api/blocks'; +import NodeRecordsRepository from '../../repositories/NodeRecordsRepository'; class NetworkSyncService { loggerTimer = 0; @@ -63,6 +64,7 @@ class NetworkSyncService { let progress = 0; let deletedSockets = 0; + let deletedRecords = 0; const graphNodesPubkeys: string[] = []; for (const node of nodes) { const latestUpdated = await channelsApi.$getLatestChannelUpdateForNode(node.pub_key); @@ -84,8 +86,23 @@ class NetworkSyncService { addresses.push(socket.addr); } deletedSockets += await NodesSocketsRepository.$deleteUnusedSockets(node.pub_key, addresses); + + const oldRecordTypes = await NodeRecordsRepository.$getRecordTypes(node.pub_key); + const customRecordTypes: number[] = []; + for (const [type, payload] of Object.entries(node.custom_records || {})) { + const numericalType = parseInt(type); + await NodeRecordsRepository.$saveRecord({ + publicKey: node.pub_key, + type: numericalType, + payload, + }); + customRecordTypes.push(numericalType); + } + if (oldRecordTypes.reduce((changed, type) => changed || customRecordTypes.indexOf(type) === -1, false)) { + deletedRecords += await NodeRecordsRepository.$deleteUnusedRecords(node.pub_key, customRecordTypes); + } } - logger.info(`${progress} nodes updated. ${deletedSockets} sockets deleted`); + logger.info(`${progress} nodes updated. ${deletedSockets} sockets deleted. ${deletedRecords} custom records deleted.`); // If a channel if not present in the graph, mark it as inactive await nodesApi.$setNodesInactive(graphNodesPubkeys); From 010e9f2bb148854de8ea4b8263b0eca7484ac912 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 4 Nov 2022 21:59:54 -0600 Subject: [PATCH 0050/1466] Display extension TLV data on node page --- .../app/lightning/node/node.component.html | 22 +++++++++++++++++++ .../app/lightning/node/node.component.scss | 15 +++++++++++++ .../src/app/lightning/node/node.component.ts | 11 +++++++++- 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/lightning/node/node.component.html b/frontend/src/app/lightning/node/node.component.html index 7d506e6b0..9c8fc6149 100644 --- a/frontend/src/app/lightning/node/node.component.html +++ b/frontend/src/app/lightning/node/node.component.html @@ -125,6 +125,28 @@ +
+
+
TLV extension records
+
+
+ + + + + + + +
{{ recordItem.key }}{{ recordItem.value }}
+
+
+
+
+ +
+ +
+
diff --git a/frontend/src/app/lightning/node/node.component.scss b/frontend/src/app/lightning/node/node.component.scss index 3803ce2fb..fe9737b85 100644 --- a/frontend/src/app/lightning/node/node.component.scss +++ b/frontend/src/app/lightning/node/node.component.scss @@ -72,3 +72,18 @@ app-fiat { height: 28px !important; }; } + +.details tbody { + font-size: 12px; + + .tlv-type { + color: #ffffff66; + } + + .tlv-payload { + width: 100%; + word-break: break-all; + white-space: normal; + font-family: "Courier New", Courier, monospace; + } +} diff --git a/frontend/src/app/lightning/node/node.component.ts b/frontend/src/app/lightning/node/node.component.ts index e2a8123ac..161a53e37 100644 --- a/frontend/src/app/lightning/node/node.component.ts +++ b/frontend/src/app/lightning/node/node.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { ActivatedRoute, ParamMap } from '@angular/router'; import { Observable } from 'rxjs'; -import { catchError, map, switchMap } from 'rxjs/operators'; +import { catchError, map, switchMap, tap } from 'rxjs/operators'; import { SeoService } from '../../services/seo.service'; import { LightningApiService } from '../lightning-api.service'; import { GeolocationData } from '../../shared/components/geolocation/geolocation.component'; @@ -24,6 +24,8 @@ export class NodeComponent implements OnInit { channelListLoading = false; clearnetSocketCount = 0; torSocketCount = 0; + hasDetails = false; + showDetails = false; constructor( private lightningApiService: LightningApiService, @@ -79,6 +81,9 @@ export class NodeComponent implements OnInit { return node; }), + tap((node) => { + this.hasDetails = Object.keys(node.custom_records).length > 0; + }), catchError(err => { this.error = err; return [{ @@ -89,6 +94,10 @@ export class NodeComponent implements OnInit { ); } + toggleShowDetails(): void { + this.showDetails = !this.showDetails; + } + changeSocket(index: number) { this.selectedSocketIndex = index; } From c2ab0bc7155ad2aa0cbc10a578e270904359536c Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 4 Nov 2022 23:24:44 -0600 Subject: [PATCH 0051/1466] Parse & display liquidity ads on node page --- .../src/app/lightning/node/liquidity-ad.ts | 31 +++++++ .../app/lightning/node/node.component.html | 89 ++++++++++++++++--- .../app/lightning/node/node.component.scss | 18 +++- .../src/app/lightning/node/node.component.ts | 27 ++++++ 4 files changed, 151 insertions(+), 14 deletions(-) create mode 100644 frontend/src/app/lightning/node/liquidity-ad.ts diff --git a/frontend/src/app/lightning/node/liquidity-ad.ts b/frontend/src/app/lightning/node/liquidity-ad.ts new file mode 100644 index 000000000..4b0e04b0b --- /dev/null +++ b/frontend/src/app/lightning/node/liquidity-ad.ts @@ -0,0 +1,31 @@ +export interface ILiquidityAd { + funding_weight: number; + lease_fee_basis: number; // lease fee rate in parts-per-thousandth + lease_fee_base_sat: number; // fixed lease fee in sats + channel_fee_max_rate: number; // max routing fee rate in parts-per-thousandth + channel_fee_max_base: number; // max routing base fee in milli-sats + compact_lease?: string; +} + +export function parseLiquidityAdHex(compact_lease: string): ILiquidityAd | false { + if (!compact_lease || compact_lease.length < 20 || compact_lease.length > 28) { + return false; + } + try { + const liquidityAd: ILiquidityAd = { + funding_weight: parseInt(compact_lease.slice(0, 4), 16), + lease_fee_basis: parseInt(compact_lease.slice(4, 8), 16), + channel_fee_max_rate: parseInt(compact_lease.slice(8, 12), 16), + lease_fee_base_sat: parseInt(compact_lease.slice(12, 20), 16), + channel_fee_max_base: compact_lease.length > 20 ? parseInt(compact_lease.slice(20), 16) : 0, + } + if (Object.values(liquidityAd).reduce((valid: boolean, value: number): boolean => (valid && !isNaN(value) && value >= 0), true)) { + liquidityAd.compact_lease = compact_lease; + return liquidityAd; + } else { + return false; + } + } catch (err) { + return false; + } +} \ No newline at end of file diff --git a/frontend/src/app/lightning/node/node.component.html b/frontend/src/app/lightning/node/node.component.html index 9c8fc6149..858aa9b48 100644 --- a/frontend/src/app/lightning/node/node.component.html +++ b/frontend/src/app/lightning/node/node.component.html @@ -127,19 +127,84 @@
-
TLV extension records
-
-
- - - - - - - -
{{ recordItem.key }}{{ recordItem.value }}
+ +
+
Liquidity ad
+
+
+ + + + + + + + + + + + + + + +
Lease fee rate + + {{ liquidityAd.lease_fee_basis !== null ? ((liquidityAd.lease_fee_basis * 1000) | amountShortener : 2 : undefined : true) : '-' }} ppm {{ liquidityAd.lease_fee_basis !== null ? '(' + (liquidityAd.lease_fee_basis / 10 | amountShortener : 2 : undefined : true) + '%)' : '' }} + +
Lease base fee + +
Funding weight
+
+
+ + + + + + + + + + + + + + + +
Channel fee rate + + {{ liquidityAd.channel_fee_max_rate !== null ? ((liquidityAd.channel_fee_max_rate * 1000) | amountShortener : 2 : undefined : true) : '-' }} ppm {{ liquidityAd.channel_fee_max_rate !== null ? '(' + (liquidityAd.channel_fee_max_rate / 10 | amountShortener : 2 : undefined : true) + '%)' : '' }} + +
Channel base fee + + {{ liquidityAd.channel_fee_max_base | amountShortener : 0 }} + mSats + + + - + +
Compact lease{{ liquidityAd.compact_lease }}
+
+
-
+ + +
+
TLV extension records
+
+
+ + + + + + + +
{{ recordItem.type }}{{ recordItem.payload }}
+
+
+
+
diff --git a/frontend/src/app/lightning/node/node.component.scss b/frontend/src/app/lightning/node/node.component.scss index fe9737b85..d54b1851b 100644 --- a/frontend/src/app/lightning/node/node.component.scss +++ b/frontend/src/app/lightning/node/node.component.scss @@ -73,17 +73,31 @@ app-fiat { }; } -.details tbody { - font-size: 12px; +.details { + + .detail-section { + margin-bottom: 1.5rem; + &:last-child { + margin-bottom: 0; + } + } .tlv-type { + font-size: 12px; color: #ffffff66; } .tlv-payload { + font-size: 12px; width: 100%; word-break: break-all; white-space: normal; font-family: "Courier New", Courier, monospace; } + + .compact-lease { + word-break: break-all; + white-space: normal; + font-family: "Courier New", Courier, monospace; + } } diff --git a/frontend/src/app/lightning/node/node.component.ts b/frontend/src/app/lightning/node/node.component.ts index 161a53e37..ec2edd252 100644 --- a/frontend/src/app/lightning/node/node.component.ts +++ b/frontend/src/app/lightning/node/node.component.ts @@ -5,6 +5,12 @@ import { catchError, map, switchMap, tap } from 'rxjs/operators'; import { SeoService } from '../../services/seo.service'; import { LightningApiService } from '../lightning-api.service'; import { GeolocationData } from '../../shared/components/geolocation/geolocation.component'; +import { ILiquidityAd, parseLiquidityAdHex } from './liquidity-ad'; + +interface CustomRecord { + type: string; + payload: string; +} @Component({ selector: 'app-node', @@ -26,6 +32,8 @@ export class NodeComponent implements OnInit { torSocketCount = 0; hasDetails = false; showDetails = false; + liquidityAd: ILiquidityAd; + tlvRecords: CustomRecord[]; constructor( private lightningApiService: LightningApiService, @@ -38,6 +46,8 @@ export class NodeComponent implements OnInit { .pipe( switchMap((params: ParamMap) => { this.publicKey = params.get('public_key'); + this.tlvRecords = []; + this.liquidityAd = null; return this.lightningApiService.getNode$(params.get('public_key')); }), map((node) => { @@ -83,6 +93,23 @@ export class NodeComponent implements OnInit { }), tap((node) => { this.hasDetails = Object.keys(node.custom_records).length > 0; + for (const [type, payload] of Object.entries(node.custom_records)) { + if (typeof payload !== 'string') { + break; + } + + let parsed = false; + if (type === '1') { + const ad = parseLiquidityAdHex(payload); + if (ad) { + parsed = true; + this.liquidityAd = ad; + } + } + if (!parsed) { + this.tlvRecords.push({ type, payload }); + } + } }), catchError(err => { this.error = err; From eb2abefabc4673b2fbacfd23427bd04f526a5000 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 21 Nov 2022 12:28:26 +0900 Subject: [PATCH 0052/1466] Add shapes to flow diagram to indicate spent txos --- .../transaction-preview.component.html | 2 +- .../transaction-preview.component.scss | 2 +- .../transaction/transaction.component.html | 1 + .../transaction/transaction.component.scss | 2 +- .../transaction/transaction.component.ts | 2 +- .../tx-bowtie-graph.component.html | 24 +++++++++++++ .../tx-bowtie-graph.component.scss | 11 ++++++ .../tx-bowtie-graph.component.ts | 35 ++++++++++++++----- 8 files changed, 67 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction-preview.component.html b/frontend/src/app/components/transaction/transaction-preview.component.html index f023a77b1..cb273b16c 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.html +++ b/frontend/src/app/components/transaction/transaction-preview.component.html @@ -29,7 +29,7 @@
- +

diff --git a/frontend/src/app/components/transaction/transaction-preview.component.scss b/frontend/src/app/components/transaction/transaction-preview.component.scss index 65c0ca75e..75eceb99e 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.scss +++ b/frontend/src/app/components/transaction/transaction-preview.component.scss @@ -69,7 +69,7 @@ .graph-wrapper { position: relative; background: #181b2d; - padding: 10px; + padding: 10px 0; padding-bottom: 0; .above-bow { diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index ec0e824c8..2f4fb7ba2 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -209,6 +209,7 @@ [maxStrands]="graphExpanded ? maxInOut : 24" [network]="network" [tooltip]="true" + [connectors]="true" [inputIndex]="inputIndex" [outputIndex]="outputIndex" > diff --git a/frontend/src/app/components/transaction/transaction.component.scss b/frontend/src/app/components/transaction/transaction.component.scss index 7127a898a..619cac89a 100644 --- a/frontend/src/app/components/transaction/transaction.component.scss +++ b/frontend/src/app/components/transaction/transaction.component.scss @@ -86,7 +86,7 @@ position: relative; width: 100%; background: #181b2d; - padding: 10px; + padding: 10px 0; padding-bottom: 0; } diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 0235dd887..787abe935 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -402,7 +402,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { @HostListener('window:resize', ['$event']) setGraphSize(): void { if (this.graphContainer) { - this.graphWidth = this.graphContainer.nativeElement.clientWidth - 24; + this.graphWidth = this.graphContainer.nativeElement.clientWidth; } } diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html index a85f62c65..c09064201 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html @@ -29,6 +29,14 @@ + + + + + + + + @@ -65,6 +73,14 @@ + + = new ReplaySubject(); gradientColors = { - '': ['#9339f4', '#105fb0'], - bisq: ['#9339f4', '#105fb0'], + '': ['#9339f4', '#105fb0', '#9339f433'], + bisq: ['#9339f4', '#105fb0', '#9339f433'], // liquid: ['#116761', '#183550'], - liquid: ['#09a197', '#0f62af'], + liquid: ['#09a197', '#0f62af', '#09a19733'], // 'liquidtestnet': ['#494a4a', '#272e46'], - 'liquidtestnet': ['#d2d2d2', '#979797'], + 'liquidtestnet': ['#d2d2d2', '#979797', '#d2d2d233'], // testnet: ['#1d486f', '#183550'], - testnet: ['#4edf77', '#10a0af'], + testnet: ['#4edf77', '#10a0af', '#4edf7733'], // signet: ['#6f1d5d', '#471850'], - signet: ['#d24fc8', '#a84fd2'], + signet: ['#d24fc8', '#a84fd2', '#d24fc833'], }; gradient: string[] = ['#105fb0', '#105fb0']; @@ -308,13 +310,14 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { return { path: this.makePath(side, line.outerY, line.innerY, line.thickness, line.offset, pad + maxOffset), style: this.makeStyle(line.thickness, xputs[i].type), - class: xputs[i].type + class: xputs[i].type, + connectorPath: this.connectors ? this.makeConnectorPath(side, line.outerY, line.innerY, line.thickness): null, }; }); } makePath(side: 'in' | 'out', outer: number, inner: number, weight: number, offset: number, pad: number): string { - const start = (weight * 0.5); + const start = (weight * 0.5) + 10; const curveStart = Math.max(start + 1, pad - offset); const end = this.width / 2 - (this.midWidth * 0.9) + 1; const curveEnd = end - offset - 10; @@ -332,6 +335,22 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } } + makeConnectorPath(side: 'in' | 'out', y: number, inner, weight: number): string { + const halfWidth = weight * 0.5; + const offset = Math.max(2, halfWidth * 0.2); + + // align with for svg horizontal gradient bug correction + if (Math.round(y) === Math.round(inner)) { + y -= 1; + } + + if (side === 'in') { + return `M ${10 - offset} ${y - halfWidth} L ${halfWidth + 10 - offset} ${y} L ${10 - offset} ${y + halfWidth} L -10 ${ y + halfWidth} L -10 ${y - halfWidth}`; + } else { + return `M ${this.width - halfWidth - 10 + offset} ${y - halfWidth} L ${this.width - 10 + offset} ${y} L ${this.width - halfWidth - 10 + offset} ${y + halfWidth} L ${this.width + 10} ${ y + halfWidth} L ${this.width + 10} ${y - halfWidth}`; + } + } + makeStyle(minWeight, type): string { if (type === 'fee') { return `stroke-width: ${minWeight}`; From 2c1f38aa9d7e277bdbb5d2e26ede3e673fe116fd Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 21 Nov 2022 12:28:39 +0900 Subject: [PATCH 0053/1466] Fix clash w/ liquid unblinding and vin/vout syntax --- .../src/app/components/transaction/liquid-ublinding.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/transaction/liquid-ublinding.ts b/frontend/src/app/components/transaction/liquid-ublinding.ts index 338e9013c..a53edeb4c 100644 --- a/frontend/src/app/components/transaction/liquid-ublinding.ts +++ b/frontend/src/app/components/transaction/liquid-ublinding.ts @@ -126,9 +126,13 @@ export class LiquidUnblinding { } async checkUnblindedTx(tx: Transaction) { - const windowLocationHash = window.location.hash.substring('#blinded='.length); - if (windowLocationHash.length > 0) { - const blinders = this.parseBlinders(windowLocationHash); + if (!window.location.hash?.length) { + return tx; + } + const fragmentParams = new URLSearchParams(window.location.hash.slice(1) || ''); + const blinderStr = fragmentParams.get('blinded'); + if (blinderStr && blinderStr.length) { + const blinders = this.parseBlinders(blinderStr); if (blinders) { this.commitments = await this.makeCommitmentMap(blinders); return this.tryUnblindTx(tx); From 14ec427f5ef372365e04e78045c4a1d8d8708625 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 21 Nov 2022 12:28:46 +0900 Subject: [PATCH 0054/1466] Mouse events for flow diagram endcaps & connectors --- .../tx-bowtie-graph.component.html | 16 +++++++++ .../tx-bowtie-graph.component.scss | 33 +++++++++++-------- .../tx-bowtie-graph.component.ts | 18 ++++++++++ 3 files changed, 54 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html index c09064201..c736e5548 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html @@ -81,6 +81,14 @@ (pointerout)="onBlur($event, 'input', i);" (click)="onClick($event, 'input', inputData[i].index);" /> + + Date: Tue, 22 Nov 2022 10:05:14 +0900 Subject: [PATCH 0055/1466] longer input/output connectors on flow diagram & new nav logic --- .../tx-bowtie-graph-tooltip.component.html | 17 +++++- .../tx-bowtie-graph-tooltip.component.ts | 4 ++ .../tx-bowtie-graph.component.html | 21 +++++-- .../tx-bowtie-graph.component.scss | 11 +++- .../tx-bowtie-graph.component.ts | 57 ++++++++++++------- 5 files changed, 80 insertions(+), 30 deletions(-) diff --git a/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html b/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html index cbf2f7d5a..6262c56a7 100644 --- a/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html +++ b/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -22,13 +22,13 @@ -

Peg In

+

Peg In

-

Peg Out

+

Peg Out

{{ line.pegout.slice(0, -4) }} @@ -38,7 +38,7 @@ -

+

Input Output @@ -46,6 +46,17 @@ #{{ line.index + 1 }}

+ +

+ Transaction  + {{ line.txid.slice(0, 8) }}... + {{ line.txid.slice(-4) }} +

+ +

Output  #{{ line.vout + 1 }}

+

Input  #{{ line.vin + 1 }}

+
+

Confidential

diff --git a/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts b/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts index 4e450a7dc..54c58ffab 100644 --- a/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts +++ b/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts @@ -5,6 +5,9 @@ interface Xput { type: 'input' | 'output' | 'fee'; value?: number; index?: number; + txid?: string; + vin?: number; + vout?: number; address?: string; rest?: number; coinbase?: boolean; @@ -21,6 +24,7 @@ interface Xput { export class TxBowtieGraphTooltipComponent implements OnChanges { @Input() line: Xput | void; @Input() cursorPosition: { x: number, y: number }; + @Input() isConnector: boolean = false; tooltipPosition = { x: 0, y: 0 }; diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html index c736e5548..23346f405 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html @@ -49,6 +49,14 @@ + + + + + + + + @@ -77,9 +85,9 @@ [attr.d]="input.connectorPath" class="input connector {{input.class}}" [class.highlight]="inputData[i].index === inputIndex" - (pointerover)="onHover($event, 'input', i);" - (pointerout)="onBlur($event, 'input', i);" - (click)="onClick($event, 'input', inputData[i].index);" + (pointerover)="onHover($event, 'input-connector', i);" + (pointerout)="onBlur($event, 'input-connector', i);" + (click)="onClick($event, 'input-connector', inputData[i].index);" />

diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss index 71bf5e97b..7c9ecf0ce 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss @@ -24,7 +24,7 @@ } } - .line:hover, .connector:hover + .marker-target + .line, .marker-target:hover + .line { + .line:hover, .marker-target:hover + .line { z-index: 10; cursor: pointer; &.input { @@ -50,6 +50,15 @@ } } + .connector:hover { + &.input { + fill: url(#input-hover-connector-gradient); + } + &.output { + fill: url(#output-hover-connector-gradient); + } + } + .marker-target { stroke: none; fill: transparent; diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts index f6deb496c..39164314a 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts @@ -19,6 +19,9 @@ interface Xput { type: 'input' | 'output' | 'fee'; value?: number; index?: number; + txid?: string; + vin?: number; + vout?: number; address?: string; rest?: number; coinbase?: boolean; @@ -52,9 +55,12 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { outputs: SvgLine[]; middle: SvgLine; midWidth: number; + txWidth: number; + connectorWidth: number; combinedWeight: number; isLiquid: boolean = false; hoverLine: Xput | void = null; + hoverConnector: boolean = false; tooltipPosition = { x: 0, y: 0 }; outspends: Outspend[] = []; @@ -62,16 +68,16 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { refreshOutspends$: ReplaySubject = new ReplaySubject(); gradientColors = { - '': ['#9339f4', '#105fb0', '#9339f433'], - bisq: ['#9339f4', '#105fb0', '#9339f433'], + '': ['#9339f4', '#105fb0', '#9339f400'], + bisq: ['#9339f4', '#105fb0', '#9339f400'], // liquid: ['#116761', '#183550'], - liquid: ['#09a197', '#0f62af', '#09a19733'], + liquid: ['#09a197', '#0f62af', '#09a19700'], // 'liquidtestnet': ['#494a4a', '#272e46'], - 'liquidtestnet': ['#d2d2d2', '#979797', '#d2d2d233'], + 'liquidtestnet': ['#d2d2d2', '#979797', '#d2d2d200'], // testnet: ['#1d486f', '#183550'], - testnet: ['#4edf77', '#10a0af', '#4edf7733'], + testnet: ['#4edf77', '#10a0af', '#4edf7700'], // signet: ['#6f1d5d', '#471850'], - signet: ['#d24fc8', '#a84fd2', '#d24fc833'], + signet: ['#d24fc8', '#a84fd2', '#d24fc800'], }; gradient: string[] = ['#105fb0', '#105fb0']; @@ -121,7 +127,9 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { this.isLiquid = (this.network === 'liquid' || this.network === 'liquidtestnet'); this.gradient = this.gradientColors[this.network]; this.midWidth = Math.min(10, Math.ceil(this.width / 100)); - this.combinedWeight = Math.min(this.maxCombinedWeight, Math.floor((this.width - (2 * this.midWidth)) / 6)); + this.txWidth = this.connectors ? Math.max(this.width - 200, this.width * 0.8) : this.width - 20; + this.combinedWeight = Math.min(this.maxCombinedWeight, Math.floor((this.txWidth - (2 * this.midWidth)) / 6)); + this.connectorWidth = (this.width - this.txWidth) / 2; const totalValue = this.calcTotalValue(this.tx); let voutWithFee = this.tx.vout.map((v, i) => { @@ -144,6 +152,8 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { return { type: 'input', value: v?.prevout?.value, + txid: v.txid, + vout: v.vout, address: v?.prevout?.scriptpubkey_address || v?.prevout?.scriptpubkey_type?.toUpperCase(), index: i, coinbase: v?.is_coinbase, @@ -271,7 +281,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { // required to prevent this line overlapping its neighbor if (this.tooltip || !xputs[i].rest) { - const w = (this.width - Math.max(lastWeight, line.weight)) / 2; // approximate horizontal width of the curved section of the line + const w = (this.width - Math.max(lastWeight, line.weight) - (2 * this.connectorWidth)) / 2; // approximate horizontal width of the curved section of the line const y1 = line.outerY; const y2 = line.innerY; const t = (lastWeight + line.weight) / 2; // distance between center of this line and center of previous line @@ -319,7 +329,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } makePath(side: 'in' | 'out', outer: number, inner: number, weight: number, offset: number, pad: number): string { - const start = (weight * 0.5) + 10; + const start = (weight * 0.5) + this.connectorWidth; const curveStart = Math.max(start + 1, pad - offset); const end = this.width / 2 - (this.midWidth * 0.9) + 1; const curveEnd = end - offset - 10; @@ -339,7 +349,8 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { makeConnectorPath(side: 'in' | 'out', y: number, inner, weight: number): string { const halfWidth = weight * 0.5; - const offset = Math.max(2, halfWidth * 0.2); + const offset = 10; //Math.max(2, halfWidth * 0.2); + const lineEnd = this.connectorWidth; // align with for svg horizontal gradient bug correction if (Math.round(y) === Math.round(inner)) { @@ -347,15 +358,16 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } if (side === 'in') { - return `M ${10 - offset} ${y - halfWidth} L ${halfWidth + 10 - offset} ${y} L ${10 - offset} ${y + halfWidth} L -10 ${ y + halfWidth} L -10 ${y - halfWidth}`; + return `M ${lineEnd - offset} ${y - halfWidth} L ${halfWidth + lineEnd - offset} ${y} L ${lineEnd - offset} ${y + halfWidth} L -${10} ${ y + halfWidth} L -${10} ${y - halfWidth}`; } else { - return `M ${this.width - halfWidth - 10 + offset} ${y - halfWidth} L ${this.width - 10 + offset} ${y} L ${this.width - halfWidth - 10 + offset} ${y + halfWidth} L ${this.width + 10} ${ y + halfWidth} L ${this.width + 10} ${y - halfWidth}`; + return `M ${this.width - halfWidth - lineEnd + offset} ${y - halfWidth} L ${this.width - lineEnd + offset} ${y} L ${this.width - halfWidth - lineEnd + offset} ${y + halfWidth} L ${this.width + 10} ${ y + halfWidth} L ${this.width + 10} ${y - halfWidth}`; } } makeMarkerPath(side: 'in' | 'out', y: number, inner, weight: number): string { const halfWidth = weight * 0.5; - const offset = Math.max(2, halfWidth * 0.2); + const offset = 10; //Math.max(2, halfWidth * 0.2); + const lineEnd = this.connectorWidth; // align with for svg horizontal gradient bug correction if (Math.round(y) === Math.round(inner)) { @@ -363,9 +375,9 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } if (side === 'in') { - return `M ${10 - offset} ${y - halfWidth} L ${halfWidth + 10 - offset} ${y} L ${10 - offset} ${y + halfWidth} L ${offset + weight} ${ y + halfWidth} L ${offset + weight} ${y - halfWidth}`; + return `M ${lineEnd - offset} ${y - halfWidth} L ${halfWidth + lineEnd - offset} ${y} L ${lineEnd - offset} ${y + halfWidth} L ${weight + lineEnd} ${ y + halfWidth} L ${weight + lineEnd} ${y - halfWidth}`; } else { - return `M ${this.width - halfWidth - 10 + offset} ${y - halfWidth} L ${this.width - 10 + offset} ${y} L ${this.width - halfWidth - 10 + offset} ${y + halfWidth} L ${this.width - halfWidth - 10} ${ y + halfWidth} L ${this.width - halfWidth - 10} ${y - halfWidth}`; + return `M ${this.width - halfWidth - lineEnd + offset} ${y - halfWidth} L ${this.width - lineEnd + offset} ${y} L ${this.width - halfWidth - lineEnd + offset} ${y + halfWidth} L ${this.width - halfWidth - lineEnd} ${ y + halfWidth} L ${this.width - halfWidth - lineEnd} ${y - halfWidth}`; } } @@ -383,26 +395,31 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } onHover(event, side, index): void { - if (side === 'input') { + if (side.startsWith('input')) { this.hoverLine = { ...this.inputData[index], index }; + this.hoverConnector = (side === 'input-connector'); + } else { this.hoverLine = { - ...this.outputData[index] + ...this.outputData[index], + ...this.outspends[this.outputData[index].index] }; + this.hoverConnector = (side === 'output-connector'); } } onBlur(event, side, index): void { this.hoverLine = null; + this.hoverConnector = false; } onClick(event, side, index): void { - if (side === 'input') { + if (side.startsWith('input')) { const input = this.tx.vin[index]; - if (input && !input.is_coinbase && !input.is_pegin && input.txid && input.vout != null) { + if (side === 'input-connector' && input && !input.is_coinbase && !input.is_pegin && input.txid && input.vout != null) { this.router.navigate([this.relativeUrlPipe.transform('/tx'), input.txid], { queryParamsHandling: 'merge', fragment: (new URLSearchParams({ @@ -422,7 +439,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } else { const output = this.tx.vout[index]; const outspend = this.outspends[index]; - if (output && outspend && outspend.spent && outspend.txid) { + if (side === 'output-connector' && output && outspend && outspend.spent && outspend.txid) { this.router.navigate([this.relativeUrlPipe.transform('/tx'), outspend.txid], { queryParamsHandling: 'merge', fragment: (new URLSearchParams({ From 672001af72baf555881ebf22e5b7b51321c978c3 Mon Sep 17 00:00:00 2001 From: nymkappa Date: Tue, 22 Nov 2022 11:03:28 +0900 Subject: [PATCH 0056/1466] Update mining pool color --- frontend/src/app/app.constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/app.constants.ts b/frontend/src/app/app.constants.ts index 232578e6b..9cd374cd0 100644 --- a/frontend/src/app/app.constants.ts +++ b/frontend/src/app/app.constants.ts @@ -79,7 +79,7 @@ export const poolsColor = { 'binancepool': '#1E88E5', 'viabtc': '#039BE5', 'btccom': '#00897B', - 'slushpool': '#00ACC1', + 'braiinspool': '#00ACC1', 'sbicrypto': '#43A047', 'marapool': '#7CB342', 'luxor': '#C0CA33', From 9d5717f30de14b2aefe6e3091a6321600b35043a Mon Sep 17 00:00:00 2001 From: nymkappa Date: Tue, 22 Nov 2022 11:58:16 +0900 Subject: [PATCH 0057/1466] Make sure we handle all isp id in the queried list --- backend/src/api/explorer/nodes.api.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/src/api/explorer/nodes.api.ts b/backend/src/api/explorer/nodes.api.ts index 4d49b1d67..f7b283213 100644 --- a/backend/src/api/explorer/nodes.api.ts +++ b/backend/src/api/explorer/nodes.api.ts @@ -524,15 +524,20 @@ class NodesApi { ORDER BY short_id DESC `; - const [rows]: any = await DB.query(query, [ISPId.split(','), ISPId.split(',')]); + const IPSIds = ISPId.split(','); + const [rows]: any = await DB.query(query, [IPSIds, IPSIds]); const nodes = {}; - const intIspId = parseInt(ISPId); + const intISPIds: number[] = []; + for (const ispId of IPSIds) { + intISPIds.push(parseInt(ispId, 10)); + } + for (const channel of rows) { - if (channel.isp1ID === intIspId) { + if (intISPIds.includes(channel.isp1ID)) { nodes[channel.node1PublicKey] = true; } - if (channel.isp2ID === intIspId) { + if (intISPIds.includes(channel.isp2ID)) { nodes[channel.node2PublicKey] = true; } } From ed184824d43b15d931ed09df114d236696975f20 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 15 Nov 2022 11:04:33 -0600 Subject: [PATCH 0058/1466] calculate & show avg channel distance on node page --- .../app/lightning/node/node.component.html | 4 +++ .../app/lightning/node/node.component.scss | 4 +++ .../src/app/lightning/node/node.component.ts | 26 +++++++++++++++++++ frontend/src/app/shared/common.utils.ts | 18 +++++++++++++ 4 files changed, 52 insertions(+) diff --git a/frontend/src/app/lightning/node/node.component.html b/frontend/src/app/lightning/node/node.component.html index 858aa9b48..b5d472d2c 100644 --- a/frontend/src/app/lightning/node/node.component.html +++ b/frontend/src/app/lightning/node/node.component.html @@ -52,6 +52,10 @@ Unknown + + Avg channel distance + {{ avgDistance | number : '1.0-0' }} km / {{ kmToMiles(avgDistance) | number : '1.0-0' }} mi +
diff --git a/frontend/src/app/lightning/node/node.component.scss b/frontend/src/app/lightning/node/node.component.scss index d54b1851b..77b9cabb7 100644 --- a/frontend/src/app/lightning/node/node.component.scss +++ b/frontend/src/app/lightning/node/node.component.scss @@ -101,3 +101,7 @@ app-fiat { font-family: "Courier New", Courier, monospace; } } + +.separator { + margin: 0 1em; +} diff --git a/frontend/src/app/lightning/node/node.component.ts b/frontend/src/app/lightning/node/node.component.ts index ec2edd252..411246d2b 100644 --- a/frontend/src/app/lightning/node/node.component.ts +++ b/frontend/src/app/lightning/node/node.component.ts @@ -3,9 +3,11 @@ import { ActivatedRoute, ParamMap } from '@angular/router'; import { Observable } from 'rxjs'; import { catchError, map, switchMap, tap } from 'rxjs/operators'; import { SeoService } from '../../services/seo.service'; +import { ApiService } from '../../services/api.service'; import { LightningApiService } from '../lightning-api.service'; import { GeolocationData } from '../../shared/components/geolocation/geolocation.component'; import { ILiquidityAd, parseLiquidityAdHex } from './liquidity-ad'; +import { haversineDistance, kmToMiles } from 'src/app/shared/common.utils'; interface CustomRecord { type: string; @@ -34,8 +36,12 @@ export class NodeComponent implements OnInit { showDetails = false; liquidityAd: ILiquidityAd; tlvRecords: CustomRecord[]; + avgChannelDistance$: Observable; + + kmToMiles = kmToMiles; constructor( + private apiService: ApiService, private lightningApiService: LightningApiService, private activatedRoute: ActivatedRoute, private seoService: SeoService, @@ -119,6 +125,26 @@ export class NodeComponent implements OnInit { }]; }) ); + + this.avgChannelDistance$ = this.activatedRoute.paramMap + .pipe( + switchMap((params: ParamMap) => { + return this.apiService.getChannelsGeo$(params.get('public_key'), 'nodepage'); + }), + map((channelsGeo) => { + if (channelsGeo?.length) { + const totalDistance = channelsGeo.reduce((sum, chan) => { + return sum + haversineDistance(chan[3], chan[2], chan[7], chan[6]); + }, 0); + return totalDistance / channelsGeo.length; + } else { + return null; + } + }), + catchError(() => { + return null; + }) + ) as Observable; } toggleShowDetails(): void { diff --git a/frontend/src/app/shared/common.utils.ts b/frontend/src/app/shared/common.utils.ts index d38583217..7d206f4b5 100644 --- a/frontend/src/app/shared/common.utils.ts +++ b/frontend/src/app/shared/common.utils.ts @@ -118,3 +118,21 @@ export function convertRegion(input, to: 'name' | 'abbreviated'): string { } } } + +export function haversineDistance(lat1: number, lon1: number, lat2: number, lon2: number): number { + const rlat1 = lat1 * Math.PI / 180; + const rlon1 = lon1 * Math.PI / 180; + const rlat2 = lat2 * Math.PI / 180; + const rlon2 = lon2 * Math.PI / 180; + + const dlat = Math.sin((rlat2 - rlat1) / 2); + const dlon = Math.sin((rlon2 - rlon1) / 2); + const a = Math.min(1, Math.max(0, (dlat * dlat) + (Math.cos(rlat1) * Math.cos(rlat2) * dlon * dlon))); + const d = 2 * 6371 * Math.asin(Math.sqrt(a)); + + return d; +} + +export function kmToMiles(km: number): number { + return km * 0.62137119; +} \ No newline at end of file From a32f960c4af1b4a11d306d9b2865a19c38830c34 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 31 Oct 2022 11:07:28 -0600 Subject: [PATCH 0059/1466] db migration to clear obsolete audit data --- backend/src/api/database-migration.ts | 7 ++++++- backend/src/api/websocket-handler.ts | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 3bbd501fc..441ad2785 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -4,7 +4,7 @@ import logger from '../logger'; import { Common } from './common'; class DatabaseMigration { - private static currentVersion = 43; + private static currentVersion = 44; private queryTimeout = 120000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -360,6 +360,11 @@ class DatabaseMigration { if (databaseSchemaVersion < 43 && isBitcoin === true) { await this.$executeQuery(this.getCreateLNNodeRecordsTableQuery(), await this.$checkIfTableExists('nodes_records')); } + + if (databaseSchemaVersion < 44 && isBitcoin === true) { + await this.$executeQuery('TRUNCATE TABLE `blocks_audits`'); + await this.$executeQuery('UPDATE blocks_summaries SET template = NULL'); + } } /** diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 4bd7cfc8d..ed29646ef 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -416,7 +416,7 @@ class WebsocketHandler { let matchRate; const _memPool = memPool.getMempool(); - if (Common.indexingEnabled()) { + if (Common.indexingEnabled() && memPool.isInSync()) { const mempoolCopy = cloneMempool(_memPool); const projectedBlocks = mempoolBlocks.makeBlockTemplates(mempoolCopy, 2); From 24dba5a2ef1f5cab603dfacdd50257eda517be09 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 22 Nov 2022 14:25:57 +0900 Subject: [PATCH 0060/1466] Bump db migration query timeout to 900s --- backend/src/api/database-migration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 441ad2785..6dbfab723 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -5,7 +5,7 @@ import { Common } from './common'; class DatabaseMigration { private static currentVersion = 44; - private queryTimeout = 120000; + private queryTimeout = 900_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; From 08ad6a0da31b0bfa733f16df695a73025dea8d3f Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 16 Nov 2022 18:17:07 -0600 Subject: [PATCH 0061/1466] move new tx selection algorithm into thread worker --- backend/src/api/mempool-blocks.ts | 307 +++------------------- backend/src/api/tx-selection-worker.ts | 336 +++++++++++++++++++++++++ backend/src/api/websocket-handler.ts | 15 +- 3 files changed, 366 insertions(+), 292 deletions(-) create mode 100644 backend/src/api/tx-selection-worker.ts diff --git a/backend/src/api/mempool-blocks.ts b/backend/src/api/mempool-blocks.ts index d0c2a4f63..334362458 100644 --- a/backend/src/api/mempool-blocks.ts +++ b/backend/src/api/mempool-blocks.ts @@ -1,12 +1,17 @@ import logger from '../logger'; -import { MempoolBlock, TransactionExtended, AuditTransaction, TransactionStripped, MempoolBlockWithTransactions, MempoolBlockDelta, Ancestor } from '../mempool.interfaces'; +import { MempoolBlock, TransactionExtended, TransactionStripped, MempoolBlockWithTransactions, MempoolBlockDelta } from '../mempool.interfaces'; import { Common } from './common'; import config from '../config'; -import { PairingHeap } from '../utils/pairing-heap'; +import { StaticPool } from 'node-worker-threads-pool'; +import path from 'path'; class MempoolBlocks { private mempoolBlocks: MempoolBlockWithTransactions[] = []; private mempoolBlockDeltas: MempoolBlockDelta[] = []; + private makeTemplatesPool = new StaticPool({ + size: 1, + task: path.resolve(__dirname, './tx-selection-worker.js'), + }); constructor() {} @@ -72,16 +77,15 @@ class MempoolBlocks { const time = end - start; logger.debug('Mempool blocks calculated in ' + time / 1000 + ' seconds'); - const { blocks, deltas } = this.calculateMempoolBlocks(memPoolArray, this.mempoolBlocks); + const blocks = this.calculateMempoolBlocks(memPoolArray, this.mempoolBlocks); + const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, blocks); this.mempoolBlocks = blocks; this.mempoolBlockDeltas = deltas; } - private calculateMempoolBlocks(transactionsSorted: TransactionExtended[], prevBlocks: MempoolBlockWithTransactions[]): - { blocks: MempoolBlockWithTransactions[], deltas: MempoolBlockDelta[] } { + private calculateMempoolBlocks(transactionsSorted: TransactionExtended[], prevBlocks: MempoolBlockWithTransactions[]): MempoolBlockWithTransactions[] { const mempoolBlocks: MempoolBlockWithTransactions[] = []; - const mempoolBlockDeltas: MempoolBlockDelta[] = []; let blockWeight = 0; let blockSize = 0; let transactions: TransactionExtended[] = []; @@ -102,7 +106,11 @@ class MempoolBlocks { mempoolBlocks.push(this.dataToMempoolBlocks(transactions, blockSize, blockWeight, mempoolBlocks.length)); } - // Calculate change from previous block states + return mempoolBlocks; + } + + private calculateMempoolDeltas(prevBlocks: MempoolBlockWithTransactions[], mempoolBlocks: MempoolBlockWithTransactions[]): MempoolBlockDelta[] { + const mempoolBlockDeltas: MempoolBlockDelta[] = []; for (let i = 0; i < Math.max(mempoolBlocks.length, prevBlocks.length); i++) { let added: TransactionStripped[] = []; let removed: string[] = []; @@ -135,284 +143,25 @@ class MempoolBlocks { removed }); } - - return { - blocks: mempoolBlocks, - deltas: mempoolBlockDeltas - }; + return mempoolBlockDeltas; } - /* - * Build projected mempool blocks using an approximation of the transaction selection algorithm from Bitcoin Core - * (see BlockAssembler in https://github.com/bitcoin/bitcoin/blob/master/src/node/miner.cpp) - * - * blockLimit: number of blocks to build in total. - * weightLimit: maximum weight of transactions to consider using the selection algorithm. - * if weightLimit is significantly lower than the mempool size, results may start to diverge from getBlockTemplate - * condenseRest: whether to ignore excess transactions or append them to the final block. - */ - public makeBlockTemplates(mempool: { [txid: string]: TransactionExtended }, blockLimit: number, weightLimit: number | null = null, condenseRest = false): MempoolBlockWithTransactions[] { - const start = Date.now(); - const auditPool: { [txid: string]: AuditTransaction } = {}; - const mempoolArray: AuditTransaction[] = []; - const restOfArray: TransactionExtended[] = []; - - let weight = 0; - const maxWeight = weightLimit ? Math.max(4_000_000 * blockLimit, weightLimit) : Infinity; - // grab the top feerate txs up to maxWeight - Object.values(mempool).sort((a, b) => b.feePerVsize - a.feePerVsize).forEach(tx => { - weight += tx.weight; - if (weight >= maxWeight) { - restOfArray.push(tx); - return; - } - // initializing everything up front helps V8 optimize property access later - auditPool[tx.txid] = { - txid: tx.txid, - fee: tx.fee, - size: tx.size, - weight: tx.weight, - feePerVsize: tx.feePerVsize, - vin: tx.vin, - relativesSet: false, - ancestorMap: new Map(), - children: new Set(), - ancestorFee: 0, - ancestorWeight: 0, - score: 0, - used: false, - modified: false, - modifiedNode: null, - } - mempoolArray.push(auditPool[tx.txid]); - }) + public async makeBlockTemplates(newMempool: { [txid: string]: TransactionExtended }, blockLimit: number, weightLimit: number | null = null, condenseRest = false): Promise { + const { mempool, blocks } = await this.makeTemplatesPool.exec({ mempool: newMempool, blockLimit, weightLimit, condenseRest }); + const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, blocks); - // Build relatives graph & calculate ancestor scores - for (const tx of mempoolArray) { - if (!tx.relativesSet) { - this.setRelatives(tx, auditPool); - } - } - - // Sort by descending ancestor score - mempoolArray.sort((a, b) => (b.score || 0) - (a.score || 0)); - - // Build blocks by greedily choosing the highest feerate package - // (i.e. the package rooted in the transaction with the best ancestor score) - const blocks: MempoolBlockWithTransactions[] = []; - let blockWeight = 4000; - let blockSize = 0; - let transactions: AuditTransaction[] = []; - const modified: PairingHeap = new PairingHeap((a, b): boolean => (a.score || 0) > (b.score || 0)); - let overflow: AuditTransaction[] = []; - let failures = 0; - let top = 0; - while ((top < mempoolArray.length || !modified.isEmpty()) && (condenseRest || blocks.length < blockLimit)) { - // skip invalid transactions - while (top < mempoolArray.length && (mempoolArray[top].used || mempoolArray[top].modified)) { - top++; - } - - // Select best next package - let nextTx; - const nextPoolTx = mempoolArray[top]; - const nextModifiedTx = modified.peek(); - if (nextPoolTx && (!nextModifiedTx || (nextPoolTx.score || 0) > (nextModifiedTx.score || 0))) { - nextTx = nextPoolTx; - top++; - } else { - modified.pop(); - if (nextModifiedTx) { - nextTx = nextModifiedTx; - nextTx.modifiedNode = undefined; - } - } - - if (nextTx && !nextTx?.used) { - // Check if the package fits into this block - if (blockWeight + nextTx.ancestorWeight < config.MEMPOOL.BLOCK_WEIGHT_UNITS) { - blockWeight += nextTx.ancestorWeight; - const ancestors: AuditTransaction[] = Array.from(nextTx.ancestorMap.values()); - // sort ancestors by dependency graph (equivalent to sorting by ascending ancestor count) - const sortedTxSet = [...ancestors.sort((a, b) => { return (a.ancestorMap.size || 0) - (b.ancestorMap.size || 0); }), nextTx]; - const effectiveFeeRate = nextTx.ancestorFee / (nextTx.ancestorWeight / 4); - sortedTxSet.forEach((ancestor, i, arr) => { - const mempoolTx = mempool[ancestor.txid]; - if (ancestor && !ancestor?.used) { - ancestor.used = true; - // update original copy of this tx with effective fee rate & relatives data - mempoolTx.effectiveFeePerVsize = effectiveFeeRate; - mempoolTx.ancestors = (Array.from(ancestor.ancestorMap?.values()) as AuditTransaction[]).map((a) => { - return { - txid: a.txid, - fee: a.fee, - weight: a.weight, - } - }) - if (i < arr.length - 1) { - mempoolTx.bestDescendant = { - txid: arr[arr.length - 1].txid, - fee: arr[arr.length - 1].fee, - weight: arr[arr.length - 1].weight, - }; - } - transactions.push(ancestor); - blockSize += ancestor.size; - } - }); - - // remove these as valid package ancestors for any descendants remaining in the mempool - if (sortedTxSet.length) { - sortedTxSet.forEach(tx => { - this.updateDescendants(tx, auditPool, modified); - }); - } - - failures = 0; - } else { - // hold this package in an overflow list while we check for smaller options - overflow.push(nextTx); - failures++; - } - } - - // this block is full - const exceededPackageTries = failures > 1000 && blockWeight > (config.MEMPOOL.BLOCK_WEIGHT_UNITS - 4000); - if (exceededPackageTries && (!condenseRest || blocks.length < blockLimit - 1)) { - // construct this block - if (transactions.length) { - blocks.push(this.dataToMempoolBlocks(transactions.map(t => mempool[t.txid]), blockSize, blockWeight, blocks.length)); - } - // reset for the next block - transactions = []; - blockSize = 0; - blockWeight = 4000; - - // 'overflow' packages didn't fit in this block, but are valid candidates for the next - for (const overflowTx of overflow.reverse()) { - if (overflowTx.modified) { - overflowTx.modifiedNode = modified.add(overflowTx); - } else { - top--; - mempoolArray[top] = overflowTx; - } - } - overflow = []; - } - } - if (condenseRest) { - // pack any leftover transactions into the last block - for (const tx of overflow) { - if (!tx || tx?.used) { - continue; - } - blockWeight += tx.weight; - blockSize += tx.size; - transactions.push(tx); - tx.used = true; - } - const blockTransactions = transactions.map(t => mempool[t.txid]) - restOfArray.forEach(tx => { - blockWeight += tx.weight; - blockSize += tx.size; - blockTransactions.push(tx); - }); - if (blockTransactions.length) { - blocks.push(this.dataToMempoolBlocks(blockTransactions, blockSize, blockWeight, blocks.length)); - } - transactions = []; - } else if (transactions.length) { - blocks.push(this.dataToMempoolBlocks(transactions.map(t => mempool[t.txid]), blockSize, blockWeight, blocks.length)); - } - - const end = Date.now(); - const time = end - start; - logger.debug('Mempool templates calculated in ' + time / 1000 + ' seconds'); - - return blocks; - } - - // traverse in-mempool ancestors - // recursion unavoidable, but should be limited to depth < 25 by mempool policy - public setRelatives( - tx: AuditTransaction, - mempool: { [txid: string]: AuditTransaction }, - ): void { - for (const parent of tx.vin) { - const parentTx = mempool[parent.txid]; - if (parentTx && !tx.ancestorMap!.has(parent.txid)) { - tx.ancestorMap.set(parent.txid, parentTx); - parentTx.children.add(tx); - // visit each node only once - if (!parentTx.relativesSet) { - this.setRelatives(parentTx, mempool); - } - parentTx.ancestorMap.forEach((ancestor) => { - tx.ancestorMap.set(ancestor.txid, ancestor); - }); - } - }; - tx.ancestorFee = tx.fee || 0; - tx.ancestorWeight = tx.weight || 0; - tx.ancestorMap.forEach((ancestor) => { - tx.ancestorFee += ancestor.fee; - tx.ancestorWeight += ancestor.weight; - }); - tx.score = tx.ancestorFee / (tx.ancestorWeight || 1); - tx.relativesSet = true; - } - - // iterate over remaining descendants, removing the root as a valid ancestor & updating the ancestor score - // avoids recursion to limit call stack depth - private updateDescendants( - rootTx: AuditTransaction, - mempool: { [txid: string]: AuditTransaction }, - modified: PairingHeap, - ): void { - const descendantSet: Set = new Set(); - // stack of nodes left to visit - const descendants: AuditTransaction[] = []; - let descendantTx; - let ancestorIndex; - let tmpScore; - rootTx.children.forEach(childTx => { - if (!descendantSet.has(childTx)) { - descendants.push(childTx); - descendantSet.add(childTx); + // copy CPFP info across to main thread's mempool + Object.keys(newMempool).forEach((txid) => { + if (newMempool[txid] && mempool[txid]) { + newMempool[txid].effectiveFeePerVsize = mempool[txid].effectiveFeePerVsize; + newMempool[txid].ancestors = mempool[txid].ancestors; + newMempool[txid].bestDescendant = mempool[txid].bestDescendant; + newMempool[txid].cpfpChecked = mempool[txid].cpfpChecked; } }); - while (descendants.length) { - descendantTx = descendants.pop(); - if (descendantTx && descendantTx.ancestorMap && descendantTx.ancestorMap.has(rootTx.txid)) { - // remove tx as ancestor - descendantTx.ancestorMap.delete(rootTx.txid); - descendantTx.ancestorFee -= rootTx.fee; - descendantTx.ancestorWeight -= rootTx.weight; - tmpScore = descendantTx.score; - descendantTx.score = descendantTx.ancestorFee / descendantTx.ancestorWeight; - if (!descendantTx.modifiedNode) { - descendantTx.modified = true; - descendantTx.modifiedNode = modified.add(descendantTx); - } else { - // rebalance modified heap if score has changed - if (descendantTx.score < tmpScore) { - modified.decreasePriority(descendantTx.modifiedNode); - } else if (descendantTx.score > tmpScore) { - modified.increasePriority(descendantTx.modifiedNode); - } - } - - // add this node's children to the stack - descendantTx.children.forEach(childTx => { - // visit each node only once - if (!descendantSet.has(childTx)) { - descendants.push(childTx); - descendantSet.add(childTx); - } - }); - } - } + this.mempoolBlocks = blocks; + this.mempoolBlockDeltas = deltas; } private dataToMempoolBlocks(transactions: TransactionExtended[], diff --git a/backend/src/api/tx-selection-worker.ts b/backend/src/api/tx-selection-worker.ts new file mode 100644 index 000000000..09d9b9102 --- /dev/null +++ b/backend/src/api/tx-selection-worker.ts @@ -0,0 +1,336 @@ +import config from '../config'; +import logger from '../logger'; +import { TransactionExtended, MempoolBlockWithTransactions, AuditTransaction } from '../mempool.interfaces'; +import { PairingHeap } from '../utils/pairing-heap'; +import { Common } from './common'; +import { parentPort } from 'worker_threads'; + +if (parentPort) { + parentPort.on('message', (params: { mempool: { [txid: string]: TransactionExtended }, blockLimit: number, weightLimit: number | null, condenseRest: boolean}) => { + const { mempool, blocks } = makeBlockTemplates(params); + + // return the result to main thread. + if (parentPort) { + parentPort.postMessage({ mempool, blocks }); + } + }); +} + +/* +* Build projected mempool blocks using an approximation of the transaction selection algorithm from Bitcoin Core +* (see BlockAssembler in https://github.com/bitcoin/bitcoin/blob/master/src/node/miner.cpp) +* +* blockLimit: number of blocks to build in total. +* weightLimit: maximum weight of transactions to consider using the selection algorithm. +* if weightLimit is significantly lower than the mempool size, results may start to diverge from getBlockTemplate +* condenseRest: whether to ignore excess transactions or append them to the final block. +*/ +function makeBlockTemplates({ mempool, blockLimit, weightLimit, condenseRest }: { mempool: { [txid: string]: TransactionExtended }, blockLimit: number, weightLimit?: number | null, condenseRest?: boolean | null }) + : { mempool: { [txid: string]: TransactionExtended }, blocks: MempoolBlockWithTransactions[] } { + const start = Date.now(); + const auditPool: { [txid: string]: AuditTransaction } = {}; + const mempoolArray: AuditTransaction[] = []; + const restOfArray: TransactionExtended[] = []; + + let weight = 0; + const maxWeight = weightLimit ? Math.max(4_000_000 * blockLimit, weightLimit) : Infinity; + // grab the top feerate txs up to maxWeight + Object.values(mempool).sort((a, b) => b.feePerVsize - a.feePerVsize).forEach(tx => { + weight += tx.weight; + if (weight >= maxWeight) { + restOfArray.push(tx); + return; + } + // initializing everything up front helps V8 optimize property access later + auditPool[tx.txid] = { + txid: tx.txid, + fee: tx.fee, + size: tx.size, + weight: tx.weight, + feePerVsize: tx.feePerVsize, + vin: tx.vin, + relativesSet: false, + ancestorMap: new Map(), + children: new Set(), + ancestorFee: 0, + ancestorWeight: 0, + score: 0, + used: false, + modified: false, + modifiedNode: null, + }; + mempoolArray.push(auditPool[tx.txid]); + }); + + // Build relatives graph & calculate ancestor scores + for (const tx of mempoolArray) { + if (!tx.relativesSet) { + setRelatives(tx, auditPool); + } + } + + // Sort by descending ancestor score + mempoolArray.sort((a, b) => (b.score || 0) - (a.score || 0)); + + // Build blocks by greedily choosing the highest feerate package + // (i.e. the package rooted in the transaction with the best ancestor score) + const blocks: MempoolBlockWithTransactions[] = []; + let blockWeight = 4000; + let blockSize = 0; + let transactions: AuditTransaction[] = []; + const modified: PairingHeap = new PairingHeap((a, b): boolean => (a.score || 0) > (b.score || 0)); + let overflow: AuditTransaction[] = []; + let failures = 0; + let top = 0; + while ((top < mempoolArray.length || !modified.isEmpty()) && (condenseRest || blocks.length < blockLimit)) { + // skip invalid transactions + while (top < mempoolArray.length && (mempoolArray[top].used || mempoolArray[top].modified)) { + top++; + } + + // Select best next package + let nextTx; + const nextPoolTx = mempoolArray[top]; + const nextModifiedTx = modified.peek(); + if (nextPoolTx && (!nextModifiedTx || (nextPoolTx.score || 0) > (nextModifiedTx.score || 0))) { + nextTx = nextPoolTx; + top++; + } else { + modified.pop(); + if (nextModifiedTx) { + nextTx = nextModifiedTx; + nextTx.modifiedNode = undefined; + } + } + + if (nextTx && !nextTx?.used) { + // Check if the package fits into this block + if (blockWeight + nextTx.ancestorWeight < config.MEMPOOL.BLOCK_WEIGHT_UNITS) { + blockWeight += nextTx.ancestorWeight; + const ancestors: AuditTransaction[] = Array.from(nextTx.ancestorMap.values()); + // sort ancestors by dependency graph (equivalent to sorting by ascending ancestor count) + const sortedTxSet = [...ancestors.sort((a, b) => { return (a.ancestorMap.size || 0) - (b.ancestorMap.size || 0); }), nextTx]; + const effectiveFeeRate = nextTx.ancestorFee / (nextTx.ancestorWeight / 4); + sortedTxSet.forEach((ancestor, i, arr) => { + const mempoolTx = mempool[ancestor.txid]; + if (ancestor && !ancestor?.used) { + ancestor.used = true; + // update original copy of this tx with effective fee rate & relatives data + mempoolTx.effectiveFeePerVsize = effectiveFeeRate; + mempoolTx.ancestors = (Array.from(ancestor.ancestorMap?.values()) as AuditTransaction[]).map((a) => { + return { + txid: a.txid, + fee: a.fee, + weight: a.weight, + }; + }); + mempoolTx.cpfpChecked = true; + if (i < arr.length - 1) { + mempoolTx.bestDescendant = { + txid: arr[arr.length - 1].txid, + fee: arr[arr.length - 1].fee, + weight: arr[arr.length - 1].weight, + }; + } else { + mempoolTx.bestDescendant = null; + } + transactions.push(ancestor); + blockSize += ancestor.size; + } + }); + + // remove these as valid package ancestors for any descendants remaining in the mempool + if (sortedTxSet.length) { + sortedTxSet.forEach(tx => { + updateDescendants(tx, auditPool, modified); + }); + } + + failures = 0; + } else { + // hold this package in an overflow list while we check for smaller options + overflow.push(nextTx); + failures++; + } + } + + // this block is full + const exceededPackageTries = failures > 1000 && blockWeight > (config.MEMPOOL.BLOCK_WEIGHT_UNITS - 4000); + if (exceededPackageTries && (!condenseRest || blocks.length < blockLimit - 1)) { + // construct this block + if (transactions.length) { + blocks.push(dataToMempoolBlocks(transactions.map(t => mempool[t.txid]), blockSize, blockWeight, blocks.length)); + } + // reset for the next block + transactions = []; + blockSize = 0; + blockWeight = 4000; + + // 'overflow' packages didn't fit in this block, but are valid candidates for the next + for (const overflowTx of overflow.reverse()) { + if (overflowTx.modified) { + overflowTx.modifiedNode = modified.add(overflowTx); + } else { + top--; + mempoolArray[top] = overflowTx; + } + } + overflow = []; + } + } + if (condenseRest) { + // pack any leftover transactions into the last block + for (const tx of overflow) { + if (!tx || tx?.used) { + continue; + } + blockWeight += tx.weight; + blockSize += tx.size; + const mempoolTx = mempool[tx.txid]; + // update original copy of this tx with effective fee rate & relatives data + mempoolTx.effectiveFeePerVsize = tx.score; + mempoolTx.ancestors = (Array.from(tx.ancestorMap?.values()) as AuditTransaction[]).map((a) => { + return { + txid: a.txid, + fee: a.fee, + weight: a.weight, + }; + }); + mempoolTx.bestDescendant = null; + mempoolTx.cpfpChecked = true; + transactions.push(tx); + tx.used = true; + } + const blockTransactions = transactions.map(t => mempool[t.txid]); + restOfArray.forEach(tx => { + blockWeight += tx.weight; + blockSize += tx.size; + tx.effectiveFeePerVsize = tx.feePerVsize; + tx.cpfpChecked = false; + tx.ancestors = []; + tx.bestDescendant = null; + tx.ancestors + blockTransactions.push(tx); + }); + if (blockTransactions.length) { + blocks.push(dataToMempoolBlocks(blockTransactions, blockSize, blockWeight, blocks.length)); + } + transactions = []; + } else if (transactions.length) { + blocks.push(dataToMempoolBlocks(transactions.map(t => mempool[t.txid]), blockSize, blockWeight, blocks.length)); + } + + const end = Date.now(); + const time = end - start; + logger.debug('Mempool templates calculated in ' + time / 1000 + ' seconds'); + + return { + mempool, + blocks + }; +} + +// traverse in-mempool ancestors +// recursion unavoidable, but should be limited to depth < 25 by mempool policy +function setRelatives( + tx: AuditTransaction, + mempool: { [txid: string]: AuditTransaction }, +): void { + for (const parent of tx.vin) { + const parentTx = mempool[parent.txid]; + if (parentTx && !tx.ancestorMap?.has(parent.txid)) { + tx.ancestorMap.set(parent.txid, parentTx); + parentTx.children.add(tx); + // visit each node only once + if (!parentTx.relativesSet) { + setRelatives(parentTx, mempool); + } + parentTx.ancestorMap.forEach((ancestor) => { + tx.ancestorMap.set(ancestor.txid, ancestor); + }); + } + }; + tx.ancestorFee = tx.fee || 0; + tx.ancestorWeight = tx.weight || 0; + tx.ancestorMap.forEach((ancestor) => { + tx.ancestorFee += ancestor.fee; + tx.ancestorWeight += ancestor.weight; + }); + tx.score = tx.ancestorFee / ((tx.ancestorWeight / 4) || 1); + tx.relativesSet = true; +} + +// iterate over remaining descendants, removing the root as a valid ancestor & updating the ancestor score +// avoids recursion to limit call stack depth +function updateDescendants( + rootTx: AuditTransaction, + mempool: { [txid: string]: AuditTransaction }, + modified: PairingHeap, +): void { + const descendantSet: Set = new Set(); + // stack of nodes left to visit + const descendants: AuditTransaction[] = []; + let descendantTx; + let tmpScore; + rootTx.children.forEach(childTx => { + if (!descendantSet.has(childTx)) { + descendants.push(childTx); + descendantSet.add(childTx); + } + }); + while (descendants.length) { + descendantTx = descendants.pop(); + if (descendantTx && descendantTx.ancestorMap && descendantTx.ancestorMap.has(rootTx.txid)) { + // remove tx as ancestor + descendantTx.ancestorMap.delete(rootTx.txid); + descendantTx.ancestorFee -= rootTx.fee; + descendantTx.ancestorWeight -= rootTx.weight; + tmpScore = descendantTx.score; + descendantTx.score = descendantTx.ancestorFee / (descendantTx.ancestorWeight / 4); + + if (!descendantTx.modifiedNode) { + descendantTx.modified = true; + descendantTx.modifiedNode = modified.add(descendantTx); + } else { + // rebalance modified heap if score has changed + if (descendantTx.score < tmpScore) { + modified.decreasePriority(descendantTx.modifiedNode); + } else if (descendantTx.score > tmpScore) { + modified.increasePriority(descendantTx.modifiedNode); + } + } + + // add this node's children to the stack + descendantTx.children.forEach(childTx => { + // visit each node only once + if (!descendantSet.has(childTx)) { + descendants.push(childTx); + descendantSet.add(childTx); + } + }); + } + } +} + +function dataToMempoolBlocks(transactions: TransactionExtended[], + blockSize: number, blockWeight: number, blocksIndex: number): MempoolBlockWithTransactions { + let rangeLength = 4; + if (blocksIndex === 0) { + rangeLength = 8; + } + if (transactions.length > 4000) { + rangeLength = 6; + } else if (transactions.length > 10000) { + rangeLength = 8; + } + return { + blockSize: blockSize, + blockVSize: blockWeight / 4, + nTx: transactions.length, + totalFees: transactions.reduce((acc, cur) => acc + cur.fee, 0), + medianFee: Common.percentile(transactions.map((tx) => tx.effectiveFeePerVsize), config.MEMPOOL.RECOMMENDED_FEE_PERCENTILE), + feeRange: Common.getFeesInRange(transactions, rangeLength), + transactionIds: transactions.map((tx) => tx.txid), + transactions: transactions.map((tx) => Common.stripTransaction(tx)), + }; +} \ No newline at end of file diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index ed29646ef..84fe50f36 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -417,10 +417,9 @@ class WebsocketHandler { const _memPool = memPool.getMempool(); if (Common.indexingEnabled() && memPool.isInSync()) { - const mempoolCopy = cloneMempool(_memPool); - const projectedBlocks = mempoolBlocks.makeBlockTemplates(mempoolCopy, 2); + const projectedBlocks = mempoolBlocks.getMempoolBlocksWithTransactions(); - const { censored, added, score } = Audit.auditBlock(transactions, projectedBlocks, mempoolCopy); + const { censored, added, score } = Audit.auditBlock(transactions, projectedBlocks, _memPool); matchRate = Math.round(score * 100 * 100) / 100; const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => { @@ -569,14 +568,4 @@ class WebsocketHandler { } } -function cloneMempool(mempool: { [txid: string]: TransactionExtended }): { [txid: string]: TransactionExtended } { - const cloned = {}; - Object.keys(mempool).forEach(id => { - cloned[id] = { - ...mempool[id] - }; - }); - return cloned; -} - export default new WebsocketHandler(); From 786d73625a934b829701f2cfd8fc3b38fcc63956 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 16 Nov 2022 18:18:59 -0600 Subject: [PATCH 0062/1466] guard new tx selection algo behind config setting --- backend/mempool-config.sample.json | 3 +- backend/src/api/blocks.ts | 11 +++ backend/src/api/mempool.ts | 11 +++ backend/src/api/websocket-handler.ts | 111 ++++++++++++++++++++++++--- backend/src/config.ts | 2 + backend/src/index.ts | 2 + 6 files changed, 129 insertions(+), 11 deletions(-) diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index c4227adce..fe5f2e213 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -24,7 +24,8 @@ "STDOUT_LOG_MIN_PRIORITY": "debug", "AUTOMATIC_BLOCK_REINDEXING": false, "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json", - "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master" + "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", + "ADVANCED_TRANSACTION_SELECTION": false }, "CORE_RPC": { "HOST": "127.0.0.1", diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index eb8f75bf4..562f49de1 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -34,6 +34,7 @@ class Blocks { private lastDifficultyAdjustmentTime = 0; private previousDifficultyRetarget = 0; private newBlockCallbacks: ((block: BlockExtended, txIds: string[], transactions: TransactionExtended[]) => void)[] = []; + private newAsyncBlockCallbacks: ((block: BlockExtended, txIds: string[], transactions: TransactionExtended[]) => Promise)[] = []; constructor() { } @@ -57,6 +58,10 @@ class Blocks { this.newBlockCallbacks.push(fn); } + public setNewAsyncBlockCallback(fn: (block: BlockExtended, txIds: string[], transactions: TransactionExtended[]) => Promise) { + this.newAsyncBlockCallbacks.push(fn); + } + /** * Return the list of transaction for a block * @param blockHash @@ -444,6 +449,9 @@ class Blocks { const blockExtended: BlockExtended = await this.$getBlockExtended(block, transactions); const blockSummary: BlockSummary = this.summarizeBlock(verboseBlock); + // start async callbacks + const callbackPromises = this.newAsyncBlockCallbacks.map((cb) => cb(blockExtended, txIds, transactions)); + if (Common.indexingEnabled()) { if (!fastForwarded) { const lastBlock = await blocksRepository.$getBlockByHeight(blockExtended.height - 1); @@ -514,6 +522,9 @@ class Blocks { if (!memPool.hasPriority()) { diskCache.$saveCacheToDisk(); } + + // wait for pending async callbacks to finish + await Promise.all(callbackPromises); } } diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 76c8b169f..86538f51d 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -20,6 +20,7 @@ class Mempool { maxmempool: 300000000, mempoolminfee: 0.00001000, minrelaytxfee: 0.00001000 }; private mempoolChangedCallback: ((newMempool: {[txId: string]: TransactionExtended; }, newTransactions: TransactionExtended[], deletedTransactions: TransactionExtended[]) => void) | undefined; + private asyncMempoolChangedCallback: ((newMempool: {[txId: string]: TransactionExtended; }) => void) | undefined; private txPerSecondArray: number[] = []; private txPerSecond: number = 0; @@ -63,6 +64,10 @@ class Mempool { this.mempoolChangedCallback = fn; } + public setAsyncMempoolChangedCallback(fn: (newMempool: { [txId: string]: TransactionExtended; }) => void) { + this.asyncMempoolChangedCallback = fn; + } + public getMempool(): { [txid: string]: TransactionExtended } { return this.mempoolCache; } @@ -72,6 +77,9 @@ class Mempool { if (this.mempoolChangedCallback) { this.mempoolChangedCallback(this.mempoolCache, [], []); } + if (this.asyncMempoolChangedCallback) { + this.asyncMempoolChangedCallback(this.mempoolCache); + } } public async $updateMemPoolInfo() { @@ -187,6 +195,9 @@ class Mempool { if (this.mempoolChangedCallback && (hasChange || deletedTransactions.length)) { this.mempoolChangedCallback(this.mempoolCache, newTransactions, deletedTransactions); } + if (this.asyncMempoolChangedCallback && (hasChange || deletedTransactions.length)) { + await this.asyncMempoolChangedCallback(this.mempoolCache); + } const end = new Date().getTime(); const time = end - start; diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 84fe50f36..73db85fe6 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -244,15 +244,59 @@ class WebsocketHandler { }); } - handleMempoolChange(newMempool: { [txid: string]: TransactionExtended }, - newTransactions: TransactionExtended[], deletedTransactions: TransactionExtended[]) { + async handleAsyncMempoolChange(newMempool: { [txid: string]: TransactionExtended }): Promise { if (!this.wss) { throw new Error('WebSocket.Server is not set'); } - mempoolBlocks.updateMempoolBlocks(newMempool); + if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + return; + } + + await mempoolBlocks.makeBlockTemplates(newMempool, 8, null, true); const mBlocks = mempoolBlocks.getMempoolBlocks(); const mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); + + this.wss.clients.forEach(async (client) => { + if (client.readyState !== WebSocket.OPEN) { + return; + } + + const response = {}; + + if (client['want-mempool-blocks']) { + response['mempool-blocks'] = mBlocks; + } + + if (client['track-mempool-block'] >= 0) { + const index = client['track-mempool-block']; + if (mBlockDeltas[index]) { + response['projected-block-transactions'] = { + index: index, + delta: mBlockDeltas[index], + }; + } + } + + if (Object.keys(response).length) { + client.send(JSON.stringify(response)); + } + }); + } + + handleMempoolChange(newMempool: { [txid: string]: TransactionExtended }, + newTransactions: TransactionExtended[], deletedTransactions: TransactionExtended[]): void { + if (!this.wss) { + throw new Error('WebSocket.Server is not set'); + } + + let mBlocks; + let mBlockDeltas; + if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + mempoolBlocks.updateMempoolBlocks(newMempool); + mBlocks = mempoolBlocks.getMempoolBlocks(); + mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); + } const mempoolInfo = memPool.getMempoolInfo(); const vBytesPerSecond = memPool.getVBytesPerSecond(); const rbfTransactions = Common.findRbfTransactions(newTransactions, deletedTransactions); @@ -275,7 +319,7 @@ class WebsocketHandler { response['fees'] = recommendedFees; } - if (client['want-mempool-blocks']) { + if (client['want-mempool-blocks'] && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { response['mempool-blocks'] = mBlocks; } @@ -390,7 +434,7 @@ class WebsocketHandler { } } - if (client['track-mempool-block'] >= 0) { + if (client['track-mempool-block'] >= 0 && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { const index = client['track-mempool-block']; if (mBlockDeltas[index]) { response['projected-block-transactions'] = { @@ -406,6 +450,51 @@ class WebsocketHandler { }); } + async handleNewAsyncBlock(block: BlockExtended, txIds: string[], transactions: TransactionExtended[]): Promise { + if (!this.wss) { + throw new Error('WebSocket.Server is not set'); + } + + if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + return; + } + + const _memPool = memPool.getMempool(); + + await mempoolBlocks.makeBlockTemplates(_memPool, 2); + const mBlocks = mempoolBlocks.getMempoolBlocks(); + const mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); + + this.wss.clients.forEach((client) => { + if (client.readyState !== WebSocket.OPEN) { + return; + } + + if (!client['want-blocks']) { + return; + } + + const response = {}; + + if (mBlocks && client['want-mempool-blocks']) { + response['mempool-blocks'] = mBlocks; + } + + if (client['track-mempool-block'] >= 0) { + const index = client['track-mempool-block']; + if (mBlockDeltas && mBlockDeltas[index]) { + response['projected-block-transactions'] = { + index: index, + delta: mBlockDeltas[index], + }; + } + } + + client.send(JSON.stringify(response)); + }); + } + + handleNewBlock(block: BlockExtended, txIds: string[], transactions: TransactionExtended[]): void { if (!this.wss) { throw new Error('WebSocket.Server is not set'); @@ -458,9 +547,11 @@ class WebsocketHandler { delete _memPool[txId]; } - mempoolBlocks.updateMempoolBlocks(_memPool); - mBlocks = mempoolBlocks.getMempoolBlocks(); - mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); + if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + mempoolBlocks.updateMempoolBlocks(_memPool); + mBlocks = mempoolBlocks.getMempoolBlocks(); + mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); + } const da = difficultyAdjustment.getDifficultyAdjustment(); const fees = feeApi.getRecommendedFee(); @@ -481,7 +572,7 @@ class WebsocketHandler { 'fees': fees, }; - if (mBlocks && client['want-mempool-blocks']) { + if (mBlocks && client['want-mempool-blocks'] && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { response['mempool-blocks'] = mBlocks; } @@ -553,7 +644,7 @@ class WebsocketHandler { } } - if (client['track-mempool-block'] >= 0) { + if (client['track-mempool-block'] >= 0 && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { const index = client['track-mempool-block']; if (mBlockDeltas && mBlockDeltas[index]) { response['projected-block-transactions'] = { diff --git a/backend/src/config.ts b/backend/src/config.ts index 052affb45..4aab7a306 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -29,6 +29,7 @@ interface IConfig { AUTOMATIC_BLOCK_REINDEXING: boolean; POOLS_JSON_URL: string, POOLS_JSON_TREE_URL: string, + ADVANCED_TRANSACTION_SELECTION: boolean; }; ESPLORA: { REST_API_URL: string; @@ -145,6 +146,7 @@ const defaults: IConfig = { 'AUTOMATIC_BLOCK_REINDEXING': false, 'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', 'POOLS_JSON_TREE_URL': 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', + 'ADVANCED_TRANSACTION_SELECTION': false, }, 'ESPLORA': { 'REST_API_URL': 'http://127.0.0.1:3000', diff --git a/backend/src/index.ts b/backend/src/index.ts index 2bcb98de1..2c15aa81a 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -217,7 +217,9 @@ class Server { if (config.MEMPOOL.ENABLED) { statistics.setNewStatisticsEntryCallback(websocketHandler.handleNewStatistic.bind(websocketHandler)); blocks.setNewBlockCallback(websocketHandler.handleNewBlock.bind(websocketHandler)); + blocks.setNewAsyncBlockCallback(websocketHandler.handleNewAsyncBlock.bind(websocketHandler)); memPool.setMempoolChangedCallback(websocketHandler.handleMempoolChange.bind(websocketHandler)); + memPool.setAsyncMempoolChangedCallback(websocketHandler.handleAsyncMempoolChange.bind(websocketHandler)); } fiatConversion.setProgressChangedCallback(websocketHandler.handleNewConversionRates.bind(websocketHandler)); loadingIndicators.setProgressChangedCallback(websocketHandler.handleLoadingChanged.bind(websocketHandler)); From b1d490972bc321181ad6f9b6d3a443ac8c48a870 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 20 Nov 2022 16:12:39 +0900 Subject: [PATCH 0063/1466] refactor async mempool/block update callbacks --- backend/src/api/mempool.ts | 10 +- backend/src/api/tx-selection-worker.ts | 4 +- backend/src/api/websocket-handler.ts | 126 +++++-------------------- backend/src/index.ts | 6 +- 4 files changed, 34 insertions(+), 112 deletions(-) diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 86538f51d..584ddf816 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -20,7 +20,8 @@ class Mempool { maxmempool: 300000000, mempoolminfee: 0.00001000, minrelaytxfee: 0.00001000 }; private mempoolChangedCallback: ((newMempool: {[txId: string]: TransactionExtended; }, newTransactions: TransactionExtended[], deletedTransactions: TransactionExtended[]) => void) | undefined; - private asyncMempoolChangedCallback: ((newMempool: {[txId: string]: TransactionExtended; }) => void) | undefined; + private asyncMempoolChangedCallback: ((newMempool: {[txId: string]: TransactionExtended; }, newTransactions: TransactionExtended[], + deletedTransactions: TransactionExtended[]) => void) | undefined; private txPerSecondArray: number[] = []; private txPerSecond: number = 0; @@ -64,7 +65,8 @@ class Mempool { this.mempoolChangedCallback = fn; } - public setAsyncMempoolChangedCallback(fn: (newMempool: { [txId: string]: TransactionExtended; }) => void) { + public setAsyncMempoolChangedCallback(fn: (newMempool: { [txId: string]: TransactionExtended; }, + newTransactions: TransactionExtended[], deletedTransactions: TransactionExtended[]) => Promise) { this.asyncMempoolChangedCallback = fn; } @@ -78,7 +80,7 @@ class Mempool { this.mempoolChangedCallback(this.mempoolCache, [], []); } if (this.asyncMempoolChangedCallback) { - this.asyncMempoolChangedCallback(this.mempoolCache); + this.asyncMempoolChangedCallback(this.mempoolCache, [], []); } } @@ -196,7 +198,7 @@ class Mempool { this.mempoolChangedCallback(this.mempoolCache, newTransactions, deletedTransactions); } if (this.asyncMempoolChangedCallback && (hasChange || deletedTransactions.length)) { - await this.asyncMempoolChangedCallback(this.mempoolCache); + await this.asyncMempoolChangedCallback(this.mempoolCache, newTransactions, deletedTransactions); } const end = new Date().getTime(); diff --git a/backend/src/api/tx-selection-worker.ts b/backend/src/api/tx-selection-worker.ts index 09d9b9102..10f65000b 100644 --- a/backend/src/api/tx-selection-worker.ts +++ b/backend/src/api/tx-selection-worker.ts @@ -156,7 +156,8 @@ function makeBlockTemplates({ mempool, blockLimit, weightLimit, condenseRest }: // this block is full const exceededPackageTries = failures > 1000 && blockWeight > (config.MEMPOOL.BLOCK_WEIGHT_UNITS - 4000); - if (exceededPackageTries && (!condenseRest || blocks.length < blockLimit - 1)) { + const queueEmpty = top >= mempoolArray.length && modified.isEmpty(); + if ((exceededPackageTries || queueEmpty) && (!condenseRest || blocks.length < blockLimit - 1)) { // construct this block if (transactions.length) { blocks.push(dataToMempoolBlocks(transactions.map(t => mempool[t.txid]), blockSize, blockWeight, blocks.length)); @@ -209,7 +210,6 @@ function makeBlockTemplates({ mempool, blockLimit, weightLimit, condenseRest }: tx.cpfpChecked = false; tx.ancestors = []; tx.bestDescendant = null; - tx.ancestors blockTransactions.push(tx); }); if (blockTransactions.length) { diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 73db85fe6..375869902 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -244,59 +244,20 @@ class WebsocketHandler { }); } - async handleAsyncMempoolChange(newMempool: { [txid: string]: TransactionExtended }): Promise { + async handleMempoolChange(newMempool: { [txid: string]: TransactionExtended }, + newTransactions: TransactionExtended[], deletedTransactions: TransactionExtended[]): Promise { if (!this.wss) { throw new Error('WebSocket.Server is not set'); } - if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { - return; + if (config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + await mempoolBlocks.makeBlockTemplates(newMempool, 8, null, true); + } + else { + mempoolBlocks.updateMempoolBlocks(newMempool); } - - await mempoolBlocks.makeBlockTemplates(newMempool, 8, null, true); const mBlocks = mempoolBlocks.getMempoolBlocks(); const mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); - - this.wss.clients.forEach(async (client) => { - if (client.readyState !== WebSocket.OPEN) { - return; - } - - const response = {}; - - if (client['want-mempool-blocks']) { - response['mempool-blocks'] = mBlocks; - } - - if (client['track-mempool-block'] >= 0) { - const index = client['track-mempool-block']; - if (mBlockDeltas[index]) { - response['projected-block-transactions'] = { - index: index, - delta: mBlockDeltas[index], - }; - } - } - - if (Object.keys(response).length) { - client.send(JSON.stringify(response)); - } - }); - } - - handleMempoolChange(newMempool: { [txid: string]: TransactionExtended }, - newTransactions: TransactionExtended[], deletedTransactions: TransactionExtended[]): void { - if (!this.wss) { - throw new Error('WebSocket.Server is not set'); - } - - let mBlocks; - let mBlockDeltas; - if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { - mempoolBlocks.updateMempoolBlocks(newMempool); - mBlocks = mempoolBlocks.getMempoolBlocks(); - mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); - } const mempoolInfo = memPool.getMempoolInfo(); const vBytesPerSecond = memPool.getVBytesPerSecond(); const rbfTransactions = Common.findRbfTransactions(newTransactions, deletedTransactions); @@ -319,7 +280,7 @@ class WebsocketHandler { response['fees'] = recommendedFees; } - if (client['want-mempool-blocks'] && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (client['want-mempool-blocks']) { response['mempool-blocks'] = mBlocks; } @@ -434,7 +395,7 @@ class WebsocketHandler { } } - if (client['track-mempool-block'] >= 0 && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (client['track-mempool-block'] >= 0) { const index = client['track-mempool-block']; if (mBlockDeltas[index]) { response['projected-block-transactions'] = { @@ -449,61 +410,20 @@ class WebsocketHandler { } }); } - - async handleNewAsyncBlock(block: BlockExtended, txIds: string[], transactions: TransactionExtended[]): Promise { - if (!this.wss) { - throw new Error('WebSocket.Server is not set'); - } - - if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { - return; - } - - const _memPool = memPool.getMempool(); - - await mempoolBlocks.makeBlockTemplates(_memPool, 2); - const mBlocks = mempoolBlocks.getMempoolBlocks(); - const mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); - - this.wss.clients.forEach((client) => { - if (client.readyState !== WebSocket.OPEN) { - return; - } - - if (!client['want-blocks']) { - return; - } - - const response = {}; - - if (mBlocks && client['want-mempool-blocks']) { - response['mempool-blocks'] = mBlocks; - } - - if (client['track-mempool-block'] >= 0) { - const index = client['track-mempool-block']; - if (mBlockDeltas && mBlockDeltas[index]) { - response['projected-block-transactions'] = { - index: index, - delta: mBlockDeltas[index], - }; - } - } - - client.send(JSON.stringify(response)); - }); - } - - handleNewBlock(block: BlockExtended, txIds: string[], transactions: TransactionExtended[]): void { + async handleNewBlock(block: BlockExtended, txIds: string[], transactions: TransactionExtended[]): Promise { if (!this.wss) { throw new Error('WebSocket.Server is not set'); } - let mBlocks: undefined | MempoolBlock[]; - let mBlockDeltas: undefined | MempoolBlockDelta[]; - let matchRate; const _memPool = memPool.getMempool(); + let matchRate; + + if (config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + await mempoolBlocks.makeBlockTemplates(_memPool, 2); + } else { + mempoolBlocks.updateMempoolBlocks(_memPool); + } if (Common.indexingEnabled() && memPool.isInSync()) { const projectedBlocks = mempoolBlocks.getMempoolBlocksWithTransactions(); @@ -547,11 +467,13 @@ class WebsocketHandler { delete _memPool[txId]; } - if (!config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + await mempoolBlocks.makeBlockTemplates(_memPool, 2); + } else { mempoolBlocks.updateMempoolBlocks(_memPool); - mBlocks = mempoolBlocks.getMempoolBlocks(); - mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); } + const mBlocks = mempoolBlocks.getMempoolBlocks(); + const mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); const da = difficultyAdjustment.getDifficultyAdjustment(); const fees = feeApi.getRecommendedFee(); @@ -572,7 +494,7 @@ class WebsocketHandler { 'fees': fees, }; - if (mBlocks && client['want-mempool-blocks'] && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (mBlocks && client['want-mempool-blocks']) { response['mempool-blocks'] = mBlocks; } @@ -644,7 +566,7 @@ class WebsocketHandler { } } - if (client['track-mempool-block'] >= 0 && !config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (client['track-mempool-block'] >= 0) { const index = client['track-mempool-block']; if (mBlockDeltas && mBlockDeltas[index]) { response['projected-block-transactions'] = { diff --git a/backend/src/index.ts b/backend/src/index.ts index 2c15aa81a..09a12e200 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -216,10 +216,8 @@ class Server { websocketHandler.setupConnectionHandling(); if (config.MEMPOOL.ENABLED) { statistics.setNewStatisticsEntryCallback(websocketHandler.handleNewStatistic.bind(websocketHandler)); - blocks.setNewBlockCallback(websocketHandler.handleNewBlock.bind(websocketHandler)); - blocks.setNewAsyncBlockCallback(websocketHandler.handleNewAsyncBlock.bind(websocketHandler)); - memPool.setMempoolChangedCallback(websocketHandler.handleMempoolChange.bind(websocketHandler)); - memPool.setAsyncMempoolChangedCallback(websocketHandler.handleAsyncMempoolChange.bind(websocketHandler)); + memPool.setAsyncMempoolChangedCallback(websocketHandler.handleMempoolChange.bind(websocketHandler)); + blocks.setNewAsyncBlockCallback(websocketHandler.handleNewBlock.bind(websocketHandler)); } fiatConversion.setProgressChangedCallback(websocketHandler.handleNewConversionRates.bind(websocketHandler)); loadingIndicators.setProgressChangedCallback(websocketHandler.handleLoadingChanged.bind(websocketHandler)); From b9a761fb88452f69cf03f51127514dceadf58972 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 22 Nov 2022 14:50:08 +0900 Subject: [PATCH 0064/1466] add ADVANCED_TRANSACTION_SELECTION default to config test --- backend/src/__fixtures__/mempool-config.template.json | 3 ++- backend/src/__tests__/config.test.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index e6c5428e5..d54365cda 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -25,7 +25,8 @@ "STDOUT_LOG_MIN_PRIORITY": "__MEMPOOL_STDOUT_LOG_MIN_PRIORITY__", "INDEXING_BLOCKS_AMOUNT": 14, "POOLS_JSON_TREE_URL": "__POOLS_JSON_TREE_URL__", - "POOLS_JSON_URL": "__POOLS_JSON_URL__" + "POOLS_JSON_URL": "__POOLS_JSON_URL__", + "ADVANCED_TRANSACTION_SELECTION": "__ADVANCED_TRANSACTION_SELECTION__" }, "CORE_RPC": { "HOST": "__CORE_RPC_HOST__", diff --git a/backend/src/__tests__/config.test.ts b/backend/src/__tests__/config.test.ts index 650beaac1..9bb06c58a 100644 --- a/backend/src/__tests__/config.test.ts +++ b/backend/src/__tests__/config.test.ts @@ -37,7 +37,8 @@ describe('Mempool Backend Config', () => { USER_AGENT: 'mempool', STDOUT_LOG_MIN_PRIORITY: 'debug', POOLS_JSON_TREE_URL: 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', - POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json' + POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', + ADVANCED_TRANSACTION_SELECTION: false, }); expect(config.ELECTRUM).toStrictEqual({ HOST: '127.0.0.1', PORT: 3306, TLS_ENABLED: true }); From cb7e25d6461461accaccdf1746e6ec818d50b0bf Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 20 Nov 2022 11:32:03 +0900 Subject: [PATCH 0065/1466] disconnect zero value outputs from flow diagram --- .../tx-bowtie-graph.component.html | 23 ++++++++- .../tx-bowtie-graph.component.scss | 10 ++++ .../tx-bowtie-graph.component.ts | 47 +++++++++++++++---- 3 files changed, 69 insertions(+), 11 deletions(-) diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html index 23346f405..18b2b0eb2 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html @@ -21,6 +21,15 @@ markerWidth="1.5" markerHeight="1" orient="auto"> + + + + + + + + + @@ -117,7 +126,7 @@ (pointerout)="onBlur($event, 'output-connector', i);" (click)="onClick($event, 'output-connector', outputData[i].index);" /> - - + diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss index 7c9ecf0ce..6ba76d5de 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.scss @@ -11,6 +11,10 @@ &.fee { stroke: url(#fee-gradient); } + &.zerovalue { + stroke: url(#gradient0); + stroke-linecap: round; + } &.highlight { z-index: 8; @@ -21,6 +25,9 @@ &.output { stroke: url(#output-highlight-gradient); } + &.zerovalue { + stroke: #1bd8f4; + } } } @@ -36,6 +43,9 @@ &.fee { stroke: url(#fee-hover-gradient); } + &.zerovalue { + stroke: white; + } } .connector { diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts index 39164314a..2802b4a45 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts @@ -13,6 +13,7 @@ interface SvgLine { class?: string; connectorPath?: string; markerPath?: string; + zeroValue?: boolean; } interface Xput { @@ -63,6 +64,8 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { hoverConnector: boolean = false; tooltipPosition = { x: 0, y: 0 }; outspends: Outspend[] = []; + zeroValueWidth = 60; + zeroValueThickness = 20; outspendsSubscription: Subscription; refreshOutspends$: ReplaySubject = new ReplaySubject(); @@ -130,6 +133,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { this.txWidth = this.connectors ? Math.max(this.width - 200, this.width * 0.8) : this.width - 20; this.combinedWeight = Math.min(this.maxCombinedWeight, Math.floor((this.txWidth - (2 * this.midWidth)) / 6)); this.connectorWidth = (this.width - this.txWidth) / 2; + this.zeroValueWidth = Math.max(20, Math.min((this.txWidth / 2) - this.midWidth - 110, 60)); const totalValue = this.calcTotalValue(this.tx); let voutWithFee = this.tx.vout.map((v, i) => { @@ -236,10 +240,10 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } linesFromWeights(side: 'in' | 'out', xputs: Xput[], weights: number[], maxVisibleStrands: number): SvgLine[] { - const lineParams = weights.map((w) => { + const lineParams = weights.map((w, i) => { return { weight: w, - thickness: Math.max(this.minWeight - 1, w) + 1, + thickness: xputs[i].value === 0 ? this.zeroValueThickness : Math.max(this.minWeight - 1, w) + 1, offset: 0, innerY: 0, outerY: 0, @@ -265,6 +269,12 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { let lastWeight = 0; let pad = 0; lineParams.forEach((line, i) => { + if (xputs[i].value === 0) { + line.outerY = lastOuter + this.zeroValueThickness / 2; + lastOuter += this.zeroValueThickness + spacing; + return; + } + // set the vertical position of the (center of the) outer side of the line line.outerY = lastOuter + (line.thickness / 2); line.innerY = Math.min(innerBottom + (line.thickness / 2), Math.max(innerTop + (line.thickness / 2), lastInner + (line.weight / 2))); @@ -318,13 +328,22 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { maxOffset -= minOffset; return lineParams.map((line, i) => { - return { - path: this.makePath(side, line.outerY, line.innerY, line.thickness, line.offset, pad + maxOffset), - style: this.makeStyle(line.thickness, xputs[i].type), - class: xputs[i].type, - connectorPath: this.connectors ? this.makeConnectorPath(side, line.outerY, line.innerY, line.thickness): null, - markerPath: this.makeMarkerPath(side, line.outerY, line.innerY, line.thickness), - }; + if (xputs[i].value === 0) { + return { + path: this.makeZeroValuePath(side, line.outerY), + style: this.makeStyle(this.zeroValueThickness, xputs[i].type), + class: xputs[i].type, + zeroValue: true, + }; + } else { + return { + path: this.makePath(side, line.outerY, line.innerY, line.thickness, line.offset, pad + maxOffset), + style: this.makeStyle(line.thickness, xputs[i].type), + class: xputs[i].type, + connectorPath: this.connectors ? this.makeConnectorPath(side, line.outerY, line.innerY, line.thickness): null, + markerPath: this.makeMarkerPath(side, line.outerY, line.innerY, line.thickness), + }; + } }); } @@ -347,6 +366,16 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { } } + makeZeroValuePath(side: 'in' | 'out', y: number): string { + const offset = this.zeroValueThickness / 2; + const start = this.connectorWidth + 10; + if (side === 'in') { + return `M ${start + offset} ${y} L ${start + this.zeroValueWidth + offset} ${y + 1}`; + } else { // mirrored in y-axis for the right hand side + return `M ${this.width - start - offset} ${y} L ${this.width - start - this.zeroValueWidth - offset} ${y + 1}`; + } + } + makeConnectorPath(side: 'in' | 'out', y: number, inner, weight: number): string { const halfWidth = weight * 0.5; const offset = 10; //Math.max(2, halfWidth * 0.2); From 7e01a22265f6157782acc2ea02f226c96ff09987 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 22 Nov 2022 15:54:26 +0900 Subject: [PATCH 0066/1466] fix rendering of many zero value outputs --- .../tx-bowtie-graph/tx-bowtie-graph.component.html | 6 +++--- .../tx-bowtie-graph/tx-bowtie-graph.component.ts | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html index 18b2b0eb2..c58e77335 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html @@ -21,13 +21,13 @@ markerWidth="1.5" markerHeight="1" orient="auto"> - + - + - + diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts index 2802b4a45..1f9602512 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts @@ -260,7 +260,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { let lastOuter = 0; let lastInner = innerTop; // gap between strands - const spacing = (this.height - visibleWeight) / gaps; + const spacing = Math.max(4, (this.height - visibleWeight) / gaps); // curve adjustments to prevent overlaps let offset = 0; @@ -270,7 +270,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { let pad = 0; lineParams.forEach((line, i) => { if (xputs[i].value === 0) { - line.outerY = lastOuter + this.zeroValueThickness / 2; + line.outerY = lastOuter + (this.zeroValueThickness / 2); lastOuter += this.zeroValueThickness + spacing; return; } @@ -349,7 +349,7 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { makePath(side: 'in' | 'out', outer: number, inner: number, weight: number, offset: number, pad: number): string { const start = (weight * 0.5) + this.connectorWidth; - const curveStart = Math.max(start + 1, pad - offset); + const curveStart = Math.max(start + 5, pad - offset); const end = this.width / 2 - (this.midWidth * 0.9) + 1; const curveEnd = end - offset - 10; const midpoint = (curveStart + curveEnd) / 2; @@ -368,11 +368,11 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { makeZeroValuePath(side: 'in' | 'out', y: number): string { const offset = this.zeroValueThickness / 2; - const start = this.connectorWidth + 10; + const start = (this.connectorWidth / 2) + 10; if (side === 'in') { - return `M ${start + offset} ${y} L ${start + this.zeroValueWidth + offset} ${y + 1}`; + return `M ${start + offset} ${y} L ${start + this.zeroValueWidth + offset} ${y}`; } else { // mirrored in y-axis for the right hand side - return `M ${this.width - start - offset} ${y} L ${this.width - start - this.zeroValueWidth - offset} ${y + 1}`; + return `M ${this.width - start - offset} ${y} L ${this.width - start - this.zeroValueWidth - offset} ${y}`; } } From 6c1457e2574fda7ad7f75e7be333e8f5686a4e2e Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 21 Nov 2022 11:59:45 +0900 Subject: [PATCH 0067/1466] Reverse tx flow diagram for RTL locales --- .../tx-bowtie-graph.component.html | 2 +- .../tx-bowtie-graph.component.scss | 4 ++++ .../tx-bowtie-graph.component.ts | 17 ++++++++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html index c58e77335..f7484fb70 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.html @@ -1,5 +1,5 @@
- + Date: Sun, 20 Nov 2022 15:35:03 +0900 Subject: [PATCH 0068/1466] Support Maxmind Lite fixes #2553 --- .../src/tasks/lightning/sync-tasks/node-locations.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backend/src/tasks/lightning/sync-tasks/node-locations.ts b/backend/src/tasks/lightning/sync-tasks/node-locations.ts index ba59e9e48..afd280ec7 100644 --- a/backend/src/tasks/lightning/sync-tasks/node-locations.ts +++ b/backend/src/tasks/lightning/sync-tasks/node-locations.ts @@ -6,6 +6,7 @@ import DB from '../../../database'; import logger from '../../../logger'; import { ResultSetHeader } from 'mysql2'; import * as IPCheck from '../../../utils/ipcheck.js'; +import { Reader } from 'mmdb-lib'; export async function $lookupNodeLocation(): Promise { let loggerTimer = new Date().getTime() / 1000; @@ -18,7 +19,10 @@ export async function $lookupNodeLocation(): Promise { const nodes = await nodesApi.$getAllNodes(); const lookupCity = await maxmind.open(config.MAXMIND.GEOLITE2_CITY); const lookupAsn = await maxmind.open(config.MAXMIND.GEOLITE2_ASN); - const lookupIsp = await maxmind.open(config.MAXMIND.GEOIP2_ISP); + let lookupIsp: Reader | null = null; + try { + lookupIsp = await maxmind.open(config.MAXMIND.GEOIP2_ISP); + } catch (e) { } for (const node of nodes) { const sockets: string[] = node.sockets.split(','); @@ -29,7 +33,10 @@ export async function $lookupNodeLocation(): Promise { if (hasClearnet && ip !== '127.0.1.1' && ip !== '127.0.0.1') { const city = lookupCity.get(ip); const asn = lookupAsn.get(ip); - const isp = lookupIsp.get(ip); + let isp: IspResponse | null = null; + if (lookupIsp) { + isp = lookupIsp.get(ip); + } let asOverwrite: any | undefined; if (asn && (IPCheck.match(ip, '170.75.160.0/20') || IPCheck.match(ip, '172.81.176.0/21'))) { From 5198cc51dce519d22fe4803d92db622439f709bf Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sat, 19 Nov 2022 20:27:39 +0900 Subject: [PATCH 0069/1466] ellipsis for long op_return messages in tx preview --- .../transaction-preview.component.html | 28 +++++++---------- .../transaction-preview.component.scss | 31 +++++++++++++------ 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction-preview.component.html b/frontend/src/app/components/transaction/transaction-preview.component.html index cb273b16c..40ef94dde 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.html +++ b/frontend/src/app/components/transaction/transaction-preview.component.html @@ -41,24 +41,20 @@
- - - - - - - -
Coinbase{{ tx.vin[0].scriptsig | hex2ascii }}
- - +
+
+ Coinbase + {{ tx.vin[0].scriptsig | hex2ascii }} +
+
+
-
- - - +
+ OP_RETURN + {{ vout.scriptpubkey_asm | hex2ascii }} +
- -
OP_RETURN{{ vout.scriptpubkey_asm | hex2ascii }}
+
diff --git a/frontend/src/app/components/transaction/transaction-preview.component.scss b/frontend/src/app/components/transaction/transaction-preview.component.scss index 75eceb99e..9c0d75c2a 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.scss +++ b/frontend/src/app/components/transaction/transaction-preview.component.scss @@ -92,26 +92,37 @@ max-width: 90%; margin: auto; overflow: hidden; + display: flex; + flex-direction: row; + justify-content: center; .opreturns { + display: inline-block; width: auto; + max-width: 100%; margin: auto; table-layout: auto; background: #2d3348af; border-top-left-radius: 5px; border-top-right-radius: 5px; - td { - padding: 10px 10px; + .opreturn-row { + width: 100%; + display: flex; + flex-direction: row; + justify-content: flex-start; + padding: 0 10px; + } - &.message { - overflow: hidden; - display: inline-block; - vertical-align: bottom; - text-overflow: ellipsis; - white-space: nowrap; - text-align: left; - } + .label { + margin-right: 1em; + } + + .message { + flex-shrink: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } } } From 43bb3aa50be27e4d4998b641f21ccf60c5bace56 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sat, 19 Nov 2022 20:27:44 +0900 Subject: [PATCH 0070/1466] align elements of tx preview --- .../transaction/transaction-preview.component.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/src/app/components/transaction/transaction-preview.component.scss b/frontend/src/app/components/transaction/transaction-preview.component.scss index 9c0d75c2a..4fa8b661a 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.scss +++ b/frontend/src/app/components/transaction/transaction-preview.component.scss @@ -29,6 +29,8 @@ .features { font-size: 24px; margin-left: 1em; + margin-top: 0.5em; + margin-right: -4px; } .top-data { @@ -60,6 +62,15 @@ } } +.top-data .field { + &:first-child { + padding-left: 0; + } + &:last-child { + padding-right: 0; + } +} + .tx-link { display: inline; font-size: 28px; From 7bafeefa9569e720469a5837b0ddd2303a793bad Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 22 Nov 2022 16:30:04 +0900 Subject: [PATCH 0071/1466] fix squashed tx flow diagram --- .../app/components/transaction/transaction.component.html | 2 +- .../src/app/components/transaction/transaction.component.ts | 5 ++++- .../components/tx-bowtie-graph/tx-bowtie-graph.component.ts | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index cd0cd716d..d478da053 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -204,7 +204,7 @@ Date: Mon, 7 Nov 2022 20:02:59 -0600 Subject: [PATCH 0072/1466] "show more" instead of "show all" txos in lists --- .../transactions-list.component.html | 12 ++++++------ .../transactions-list.component.ts | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index 96f792f82..80bec2d28 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -20,7 +20,7 @@
- + inputRowLimit && tx['@vinLimit']"> + @@ -158,7 +158,7 @@
- +
- + outputRowLimit && tx['@voutLimit']"> + diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.ts b/frontend/src/app/components/transactions-list/transactions-list.component.ts index 9f1245532..e81a79c71 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.ts +++ b/frontend/src/app/components/transactions-list/transactions-list.component.ts @@ -18,6 +18,7 @@ import { ApiService } from '../../services/api.service'; export class TransactionsListComponent implements OnInit, OnChanges { network = ''; nativeAssetId = this.stateService.network === 'liquidtestnet' ? environment.nativeTestAssetId : environment.nativeAssetId; + showMoreIncrement = 40; @Input() transactions: Transaction[]; @Input() showConfirmations = false; @@ -218,6 +219,22 @@ export class TransactionsListComponent implements OnInit, OnChanges { }); } + showMoreInputs(tx: Transaction): void { + tx['@vinLimit'] = this.getVinLimit(tx, true); + } + + showMoreOutputs(tx: Transaction): void { + tx['@voutLimit'] = this.getVoutLimit(tx, true); + } + + getVinLimit(tx: Transaction, next = false): number { + return Math.min(Math.max(tx['@vinLimit'] || 0, this.inputRowLimit) + (next ? this.showMoreIncrement : 0), tx.vin.length); + } + + getVoutLimit(tx: Transaction, next = false): number { + return Math.min(Math.max(tx['@voutLimit'] || 0, this.outputRowLimit) + (next ? this.showMoreIncrement : 0), tx.vout.length); + } + ngOnDestroy(): void { this.outspendsSubscription.unsubscribe(); } From d1072863449dacc3f521982eebedad6aa7c9c7c8 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 22 Nov 2022 14:47:31 +0900 Subject: [PATCH 0073/1466] Load 1000 more inputs/outputs per click. Fix label i18n. --- .../transactions-list.component.html | 16 ++++++++++++++-- .../transactions-list.component.ts | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index 80bec2d28..cd2d58f2f 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -148,7 +148,13 @@ @@ -259,7 +265,13 @@ diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.ts b/frontend/src/app/components/transactions-list/transactions-list.component.ts index e81a79c71..0d9d60c95 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.ts +++ b/frontend/src/app/components/transactions-list/transactions-list.component.ts @@ -18,7 +18,7 @@ import { ApiService } from '../../services/api.service'; export class TransactionsListComponent implements OnInit, OnChanges { network = ''; nativeAssetId = this.stateService.network === 'liquidtestnet' ? environment.nativeTestAssetId : environment.nativeAssetId; - showMoreIncrement = 40; + showMoreIncrement = 1000; @Input() transactions: Transaction[]; @Input() showConfirmations = false; From 6cd1f9e8703d78d9ada0b6d2905d4eae02b2d0d4 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 22 Nov 2022 14:48:34 +0900 Subject: [PATCH 0074/1466] Fix load more inputs for non-esplora backends --- .../transactions-list.component.html | 2 +- .../transactions-list.component.ts | 30 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index cd2d58f2f..139da368b 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -283,7 +283,7 @@
{{ tx.fee / (tx.weight / 4) | feeRounding }} sat/vB  – {{ tx.fee | number }} sat
-
Show all inputs to reveal fee data
+
Show more inputs to reveal fee data
diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.ts b/frontend/src/app/components/transactions-list/transactions-list.component.ts index 0d9d60c95..be5bd5343 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.ts +++ b/frontend/src/app/components/transactions-list/transactions-list.component.ts @@ -209,17 +209,19 @@ export class TransactionsListComponent implements OnInit, OnChanges { } loadMoreInputs(tx: Transaction): void { - tx['@vinLimit'] = false; - - this.electrsApiService.getTransaction$(tx.txid) - .subscribe((newTx) => { - tx.vin = newTx.vin; - tx.fee = newTx.fee; - this.ref.markForCheck(); - }); + if (!tx['@vinLoaded']) { + this.electrsApiService.getTransaction$(tx.txid) + .subscribe((newTx) => { + tx['@vinLoaded'] = true; + tx.vin = newTx.vin; + tx.fee = newTx.fee; + this.ref.markForCheck(); + }); + } } showMoreInputs(tx: Transaction): void { + this.loadMoreInputs(tx); tx['@vinLimit'] = this.getVinLimit(tx, true); } @@ -228,11 +230,19 @@ export class TransactionsListComponent implements OnInit, OnChanges { } getVinLimit(tx: Transaction, next = false): number { - return Math.min(Math.max(tx['@vinLimit'] || 0, this.inputRowLimit) + (next ? this.showMoreIncrement : 0), tx.vin.length); + if ((tx['@vinLimit'] || 0) > this.inputRowLimit) { + return Math.min(tx['@vinLimit'] + (next ? this.showMoreIncrement : 0), tx.vin.length); + } else { + return Math.min((next ? this.showMoreIncrement : this.inputRowLimit), tx.vin.length); + } } getVoutLimit(tx: Transaction, next = false): number { - return Math.min(Math.max(tx['@voutLimit'] || 0, this.outputRowLimit) + (next ? this.showMoreIncrement : 0), tx.vout.length); + if ((tx['@voutLimit'] || 0) > this.outputRowLimit) { + return Math.min(tx['@voutLimit'] + (next ? this.showMoreIncrement : 0), tx.vout.length); + } else { + return Math.min((next ? this.showMoreIncrement : this.outputRowLimit), tx.vout.length); + } } ngOnDestroy(): void { From 01a727a344d961527a8156a03244e944d28270ca Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 22 Nov 2022 18:05:20 +0900 Subject: [PATCH 0075/1466] fix stray space, automatically show more outputs if <5 remaining --- .../transactions-list.component.html | 4 ++-- .../transactions-list.component.ts | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index 139da368b..8368a62c4 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -153,7 +153,7 @@ Show more - ({{ tx.vin.length - getVinLimit(tx) }} remaining ) + ({{ tx.vin.length - getVinLimit(tx) }} remaining) @@ -270,7 +270,7 @@ Show more - ({{ tx.vout.length - getVoutLimit(tx) }} remaining ) + ({{ tx.vout.length - getVoutLimit(tx) }} remaining) diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.ts b/frontend/src/app/components/transactions-list/transactions-list.component.ts index be5bd5343..b09226f33 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.ts +++ b/frontend/src/app/components/transactions-list/transactions-list.component.ts @@ -230,19 +230,29 @@ export class TransactionsListComponent implements OnInit, OnChanges { } getVinLimit(tx: Transaction, next = false): number { + let limit; if ((tx['@vinLimit'] || 0) > this.inputRowLimit) { - return Math.min(tx['@vinLimit'] + (next ? this.showMoreIncrement : 0), tx.vin.length); + limit = Math.min(tx['@vinLimit'] + (next ? this.showMoreIncrement : 0), tx.vin.length); } else { - return Math.min((next ? this.showMoreIncrement : this.inputRowLimit), tx.vin.length); + limit = Math.min((next ? this.showMoreIncrement : this.inputRowLimit), tx.vin.length); } + if (tx.vin.length - limit <= 5) { + limit = tx.vin.length; + } + return limit; } getVoutLimit(tx: Transaction, next = false): number { + let limit; if ((tx['@voutLimit'] || 0) > this.outputRowLimit) { - return Math.min(tx['@voutLimit'] + (next ? this.showMoreIncrement : 0), tx.vout.length); + limit = Math.min(tx['@voutLimit'] + (next ? this.showMoreIncrement : 0), tx.vout.length); } else { - return Math.min((next ? this.showMoreIncrement : this.outputRowLimit), tx.vout.length); + limit = Math.min((next ? this.showMoreIncrement : this.outputRowLimit), tx.vout.length); } + if (tx.vout.length - limit <= 5) { + limit = tx.vout.length; + } + return limit; } ngOnDestroy(): void { From 4f3296566af0801e0243df64433fa53269a45478 Mon Sep 17 00:00:00 2001 From: softsimon Date: Tue, 22 Nov 2022 19:08:09 +0900 Subject: [PATCH 0076/1466] Make api available on all backends --- backend/src/api/bitcoin/bitcoin.routes.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index e774a0ded..433f4bdb7 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -88,7 +88,8 @@ class BitcoinRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'blocks', this.getBlocks.bind(this)) .get(config.MEMPOOL.API_URL_PREFIX + 'blocks/:height', this.getBlocks.bind(this)) .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash', this.getBlock) - .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash/summary', this.getStrippedBlockTransactions); + .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash/summary', this.getStrippedBlockTransactions) + .post(config.MEMPOOL.API_URL_PREFIX + 'psbt/addparents', this.postPsbtCompletion) ; if (config.MEMPOOL.BACKEND !== 'esplora') { @@ -96,7 +97,6 @@ class BitcoinRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'mempool', this.getMempool) .get(config.MEMPOOL.API_URL_PREFIX + 'mempool/txids', this.getMempoolTxIds) .get(config.MEMPOOL.API_URL_PREFIX + 'mempool/recent', this.getRecentMempoolTransactions) - .post(config.MEMPOOL.API_URL_PREFIX + 'psbt/addparents', this.postPsbtCompletion) .get(config.MEMPOOL.API_URL_PREFIX + 'tx/:txId', this.getTransaction) .post(config.MEMPOOL.API_URL_PREFIX + 'tx', this.$postTransaction) .get(config.MEMPOOL.API_URL_PREFIX + 'tx/:txId/hex', this.getRawTransaction) From 584f443f56cad1f7297bd5d4b646100b5d384c19 Mon Sep 17 00:00:00 2001 From: softsimon Date: Tue, 22 Nov 2022 21:45:05 +0900 Subject: [PATCH 0077/1466] Adding new getTransactionHex api --- .../src/api/bitcoin/bitcoin-api-abstract-factory.ts | 1 + backend/src/api/bitcoin/bitcoin-api.ts | 5 +++++ backend/src/api/bitcoin/bitcoin.routes.ts | 10 +++++----- backend/src/api/bitcoin/esplora-api.ts | 5 +++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts b/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts index 358bd29e4..aa9fe5d15 100644 --- a/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts +++ b/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts @@ -3,6 +3,7 @@ import { IEsploraApi } from './esplora-api.interface'; export interface AbstractBitcoinApi { $getRawMempool(): Promise; $getRawTransaction(txId: string, skipConversion?: boolean, addPrevout?: boolean, lazyPrevouts?: boolean): Promise; + $getTransactionHex(txId: string): Promise; $getBlockHeightTip(): Promise; $getBlockHashTip(): Promise; $getTxIdsForBlock(hash: string): Promise; diff --git a/backend/src/api/bitcoin/bitcoin-api.ts b/backend/src/api/bitcoin/bitcoin-api.ts index ebde5cc07..0a3d674ec 100644 --- a/backend/src/api/bitcoin/bitcoin-api.ts +++ b/backend/src/api/bitcoin/bitcoin-api.ts @@ -57,6 +57,11 @@ class BitcoinApi implements AbstractBitcoinApi { }); } + $getTransactionHex(txId: string): Promise { + return this.$getRawTransaction(txId, true) + .then((tx) => tx.hex || ''); + } + $getBlockHeightTip(): Promise { return this.bitcoindClient.getChainTips() .then((result: IBitcoinApi.ChainTips[]) => { diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 433f4bdb7..3740cccd4 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -250,7 +250,7 @@ class BitcoinRoutes { * the full parent transaction even with segwit inputs. * It will respond with a text/plain PSBT in the same format (hex|base64). */ - private async postPsbtCompletion(req: Request, res: Response) { + private async postPsbtCompletion(req: Request, res: Response): Promise { res.setHeader('content-type', 'text/plain'); const notFoundError = `Couldn't get transaction hex for parent of input`; try { @@ -275,11 +275,11 @@ class BitcoinRoutes { .reverse() .toString('hex'); - let transaction: IEsploraApi.Transaction; + let transactionHex: string; // If missing transaction, return 404 status error try { - transaction = await bitcoinApi.$getRawTransaction(txid, true); - if (!transaction.hex) { + transactionHex = await bitcoinApi.$getTransactionHex(txid); + if (!transactionHex) { throw new Error(''); } } catch (err) { @@ -287,7 +287,7 @@ class BitcoinRoutes { } psbt.updateInput(index, { - nonWitnessUtxo: Buffer.from(transaction.hex, 'hex'), + nonWitnessUtxo: Buffer.from(transactionHex, 'hex'), }); if (!isModified) { isModified = true; diff --git a/backend/src/api/bitcoin/esplora-api.ts b/backend/src/api/bitcoin/esplora-api.ts index ebaf2f6a0..3662347d6 100644 --- a/backend/src/api/bitcoin/esplora-api.ts +++ b/backend/src/api/bitcoin/esplora-api.ts @@ -20,6 +20,11 @@ class ElectrsApi implements AbstractBitcoinApi { .then((response) => response.data); } + $getTransactionHex(txId: string): Promise { + return axios.get(config.ESPLORA.REST_API_URL + '/tx/' + txId + '/hex', this.axiosConfig) + .then((response) => response.data); + } + $getBlockHeightTip(): Promise { return axios.get(config.ESPLORA.REST_API_URL + '/blocks/tip/height', this.axiosConfig) .then((response) => response.data); From 7d3ec633359d434ce058f16464280a20c0dcda69 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 23 Nov 2022 10:38:24 +0900 Subject: [PATCH 0078/1466] move long-running forensics scans to separate service, throttle backend calls --- backend/mempool-config.sample.json | 3 +- .../__fixtures__/mempool-config.template.json | 3 +- backend/src/config.ts | 2 + backend/src/index.ts | 2 + .../src/tasks/lightning/forensics.service.ts | 223 ++++++++++++++++++ .../tasks/lightning/network-sync.service.ts | 173 +------------- 6 files changed, 235 insertions(+), 171 deletions(-) create mode 100644 backend/src/tasks/lightning/forensics.service.ts diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index fe5f2e213..3b416255a 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -82,7 +82,8 @@ "BACKEND": "lnd", "STATS_REFRESH_INTERVAL": 600, "GRAPH_REFRESH_INTERVAL": 600, - "LOGGER_UPDATE_INTERVAL": 30 + "LOGGER_UPDATE_INTERVAL": 30, + "FORENSICS_INTERVAL": 43200 }, "LND": { "TLS_CERT_PATH": "tls.cert", diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index d54365cda..ec6be20d8 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -98,7 +98,8 @@ "TOPOLOGY_FOLDER": "__LIGHTNING_TOPOLOGY_FOLDER__", "STATS_REFRESH_INTERVAL": 600, "GRAPH_REFRESH_INTERVAL": 600, - "LOGGER_UPDATE_INTERVAL": 30 + "LOGGER_UPDATE_INTERVAL": 30, + "FORENSICS_INTERVAL": 43200 }, "LND": { "TLS_CERT_PATH": "", diff --git a/backend/src/config.ts b/backend/src/config.ts index 4aab7a306..f7d1ee60a 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -41,6 +41,7 @@ interface IConfig { STATS_REFRESH_INTERVAL: number; GRAPH_REFRESH_INTERVAL: number; LOGGER_UPDATE_INTERVAL: number; + FORENSICS_INTERVAL: number; }; LND: { TLS_CERT_PATH: string; @@ -199,6 +200,7 @@ const defaults: IConfig = { 'STATS_REFRESH_INTERVAL': 600, 'GRAPH_REFRESH_INTERVAL': 600, 'LOGGER_UPDATE_INTERVAL': 30, + 'FORENSICS_INTERVAL': 43200, }, 'LND': { 'TLS_CERT_PATH': '', diff --git a/backend/src/index.ts b/backend/src/index.ts index 09a12e200..00afad8bf 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -35,6 +35,7 @@ import bisqRoutes from './api/bisq/bisq.routes'; import liquidRoutes from './api/liquid/liquid.routes'; import bitcoinRoutes from './api/bitcoin/bitcoin.routes'; import fundingTxFetcher from './tasks/lightning/sync-tasks/funding-tx-fetcher'; +import forensicsService from './tasks/lightning/forensics.service'; class Server { private wss: WebSocket.Server | undefined; @@ -192,6 +193,7 @@ class Server { try { await fundingTxFetcher.$init(); await networkSyncService.$startService(); + await forensicsService.$startService(); await lightningStatsUpdater.$startService(); } catch(e) { logger.err(`Nodejs lightning backend crashed. Restarting in 1 minute. Reason: ${(e instanceof Error ? e.message : e)}`); diff --git a/backend/src/tasks/lightning/forensics.service.ts b/backend/src/tasks/lightning/forensics.service.ts new file mode 100644 index 000000000..b69088505 --- /dev/null +++ b/backend/src/tasks/lightning/forensics.service.ts @@ -0,0 +1,223 @@ +import DB from '../../database'; +import logger from '../../logger'; +import channelsApi from '../../api/explorer/channels.api'; +import bitcoinApi from '../../api/bitcoin/bitcoin-api-factory'; +import config from '../../config'; +import { IEsploraApi } from '../../api/bitcoin/esplora-api.interface'; +import { Common } from '../../api/common'; + +class ForensicsService { + loggerTimer = 0; + closedChannelsScanBlock = 0; + txCache: { [txid: string]: IEsploraApi.Transaction } = {}; + + constructor() {} + + public async $startService(): Promise { + logger.info('Starting lightning network forensics service'); + + this.loggerTimer = new Date().getTime() / 1000; + + await this.$runTasks(); + } + + private async $runTasks(): Promise { + try { + logger.info(`Running forensics scans`); + + if (config.MEMPOOL.BACKEND === 'esplora') { + await this.$runClosedChannelsForensics(false); + } + + } catch (e) { + logger.err('ForensicsService.$runTasks() error: ' + (e instanceof Error ? e.message : e)); + } + + setTimeout(() => { this.$runTasks(); }, 1000 * config.LIGHTNING.FORENSICS_INTERVAL); + } + + /* + 1. Mutually closed + 2. Forced closed + 3. Forced closed with penalty + + ┌────────────────────────────────────┐ ┌────────────────────────────┐ + │ outputs contain revocation script? ├──yes──► force close w/ penalty = 3 │ + └──────────────┬─────────────────────┘ └────────────────────────────┘ + no + ┌──────────────▼──────────────────────────┐ + │ outputs contain other lightning script? ├──┐ + └──────────────┬──────────────────────────┘ │ + no yes + ┌──────────────▼─────────────┐ │ + │ sequence starts with 0x80 │ ┌────────▼────────┐ + │ and ├──────► force close = 2 │ + │ locktime starts with 0x20? │ └─────────────────┘ + └──────────────┬─────────────┘ + no + ┌─────────▼────────┐ + │ mutual close = 1 │ + └──────────────────┘ + */ + + public async $runClosedChannelsForensics(onlyNewChannels: boolean = false): Promise { + if (!config.ESPLORA.REST_API_URL) { + return; + } + + let progress = 0; + + try { + logger.info(`Started running closed channel forensics...`); + let channels; + if (onlyNewChannels) { + channels = await channelsApi.$getClosedChannelsWithoutReason(); + } else { + channels = await channelsApi.$getUnresolvedClosedChannels(); + } + + for (const channel of channels) { + let reason = 0; + let resolvedForceClose = false; + // Only Esplora backend can retrieve spent transaction outputs + const cached: string[] = []; + try { + let outspends: IEsploraApi.Outspend[] | undefined; + try { + outspends = await bitcoinApi.$getOutspends(channel.closing_transaction_id); + await Common.sleep$(100); + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + channel.closing_transaction_id + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); + continue; + } + const lightningScriptReasons: number[] = []; + for (const outspend of outspends) { + if (outspend.spent && outspend.txid) { + let spendingTx: IEsploraApi.Transaction | undefined = this.txCache[outspend.txid]; + if (!spendingTx) { + try { + spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); + await Common.sleep$(100); + this.txCache[outspend.txid] = spendingTx; + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); + continue; + } + } + cached.push(spendingTx.txid); + const lightningScript = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); + lightningScriptReasons.push(lightningScript); + } + } + const filteredReasons = lightningScriptReasons.filter((r) => r !== 1); + if (filteredReasons.length) { + if (filteredReasons.some((r) => r === 2 || r === 4)) { + reason = 3; + } else { + reason = 2; + resolvedForceClose = true; + } + } else { + /* + We can detect a commitment transaction (force close) by reading Sequence and Locktime + https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction + */ + let closingTx: IEsploraApi.Transaction | undefined = this.txCache[channel.closing_transaction_id]; + if (!closingTx) { + try { + closingTx = await bitcoinApi.$getRawTransaction(channel.closing_transaction_id); + await Common.sleep$(100); + this.txCache[channel.closing_transaction_id] = closingTx; + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + channel.closing_transaction_id}. Reason ${e instanceof Error ? e.message : e}`); + continue; + } + } + cached.push(closingTx.txid); + const sequenceHex: string = closingTx.vin[0].sequence.toString(16); + const locktimeHex: string = closingTx.locktime.toString(16); + if (sequenceHex.substring(0, 2) === '80' && locktimeHex.substring(0, 2) === '20') { + reason = 2; // Here we can't be sure if it's a penalty or not + } else { + reason = 1; + } + } + if (reason) { + logger.debug('Setting closing reason ' + reason + ' for channel: ' + channel.id + '.'); + await DB.query(`UPDATE channels SET closing_reason = ? WHERE id = ?`, [reason, channel.id]); + if (reason === 2 && resolvedForceClose) { + await DB.query(`UPDATE channels SET closing_resolved = ? WHERE id = ?`, [true, channel.id]); + } + if (reason !== 2 || resolvedForceClose) { + cached.forEach(txid => { + delete this.txCache[txid]; + }); + } + } + } catch (e) { + logger.err(`$runClosedChannelsForensics() failed for channel ${channel.short_id}. Reason: ${e instanceof Error ? e.message : e}`); + } + + ++progress; + const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer); + if (elapsedSeconds > 10) { + logger.info(`Updating channel closed channel forensics ${progress}/${channels.length}`); + this.loggerTimer = new Date().getTime() / 1000; + } + } + logger.info(`Closed channels forensics scan complete.`); + } catch (e) { + logger.err('$runClosedChannelsForensics() error: ' + (e instanceof Error ? e.message : e)); + } + } + + private findLightningScript(vin: IEsploraApi.Vin): number { + const topElement = vin.witness[vin.witness.length - 2]; + if (/^OP_IF OP_PUSHBYTES_33 \w{66} OP_ELSE OP_PUSH(NUM_\d+|BYTES_(1 \w{2}|2 \w{4})) OP_CSV OP_DROP OP_PUSHBYTES_33 \w{66} OP_ENDIF OP_CHECKSIG$/.test(vin.inner_witnessscript_asm)) { + // https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs + if (topElement === '01') { + // top element is '01' to get in the revocation path + // 'Revoked Lightning Force Close'; + // Penalty force closed + return 2; + } else { + // top element is '', this is a delayed to_local output + // 'Lightning Force Close'; + return 3; + } + } else if ( + /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_NOTIF OP_DROP OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) || + /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_IF OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_DROP OP_PUSHBYTES_3 \w{6} OP_CLTV OP_DROP OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) + ) { + // https://github.com/lightning/bolts/blob/master/03-transactions.md#offered-htlc-outputs + // https://github.com/lightning/bolts/blob/master/03-transactions.md#received-htlc-outputs + if (topElement.length === 66) { + // top element is a public key + // 'Revoked Lightning HTLC'; Penalty force closed + return 4; + } else if (topElement) { + // top element is a preimage + // 'Lightning HTLC'; + return 5; + } else { + // top element is '' to get in the expiry of the script + // 'Expired Lightning HTLC'; + return 6; + } + } else if (/^OP_PUSHBYTES_33 \w{66} OP_CHECKSIG OP_IFDUP OP_NOTIF OP_PUSHNUM_16 OP_CSV OP_ENDIF$/.test(vin.inner_witnessscript_asm)) { + // https://github.com/lightning/bolts/blob/master/03-transactions.md#to_local_anchor-and-to_remote_anchor-output-option_anchors + if (topElement) { + // top element is a signature + // 'Lightning Anchor'; + return 7; + } else { + // top element is '', it has been swept after 16 blocks + // 'Swept Lightning Anchor'; + return 8; + } + } + return 1; + } +} + +export default new ForensicsService(); diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index 2910f0f9c..9f40a350a 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -14,6 +14,7 @@ import NodesSocketsRepository from '../../repositories/NodesSocketsRepository'; import { Common } from '../../api/common'; import blocks from '../../api/blocks'; import NodeRecordsRepository from '../../repositories/NodeRecordsRepository'; +import forensicsService from './forensics.service'; class NetworkSyncService { loggerTimer = 0; @@ -46,8 +47,10 @@ class NetworkSyncService { await this.$lookUpCreationDateFromChain(); await this.$updateNodeFirstSeen(); await this.$scanForClosedChannels(); + if (config.MEMPOOL.BACKEND === 'esplora') { - await this.$runClosedChannelsForensics(); + // run forensics on new channels only + await forensicsService.$runClosedChannelsForensics(true); } } catch (e) { @@ -301,174 +304,6 @@ class NetworkSyncService { logger.err('$scanForClosedChannels() error: ' + (e instanceof Error ? e.message : e)); } } - - /* - 1. Mutually closed - 2. Forced closed - 3. Forced closed with penalty - - ┌────────────────────────────────────┐ ┌────────────────────────────┐ - │ outputs contain revocation script? ├──yes──► force close w/ penalty = 3 │ - └──────────────┬─────────────────────┘ └────────────────────────────┘ - no - ┌──────────────▼──────────────────────────┐ - │ outputs contain other lightning script? ├──┐ - └──────────────┬──────────────────────────┘ │ - no yes - ┌──────────────▼─────────────┐ │ - │ sequence starts with 0x80 │ ┌────────▼────────┐ - │ and ├──────► force close = 2 │ - │ locktime starts with 0x20? │ └─────────────────┘ - └──────────────┬─────────────┘ - no - ┌─────────▼────────┐ - │ mutual close = 1 │ - └──────────────────┘ - */ - - private async $runClosedChannelsForensics(skipUnresolved: boolean = false): Promise { - if (!config.ESPLORA.REST_API_URL) { - return; - } - - let progress = 0; - - try { - logger.info(`Started running closed channel forensics...`); - let channels; - const closedChannels = await channelsApi.$getClosedChannelsWithoutReason(); - if (skipUnresolved) { - channels = closedChannels; - } else { - const unresolvedChannels = await channelsApi.$getUnresolvedClosedChannels(); - channels = [...closedChannels, ...unresolvedChannels]; - } - - for (const channel of channels) { - let reason = 0; - let resolvedForceClose = false; - // Only Esplora backend can retrieve spent transaction outputs - try { - let outspends: IEsploraApi.Outspend[] | undefined; - try { - outspends = await bitcoinApi.$getOutspends(channel.closing_transaction_id); - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + channel.closing_transaction_id + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); - continue; - } - const lightningScriptReasons: number[] = []; - for (const outspend of outspends) { - if (outspend.spent && outspend.txid) { - let spendingTx: IEsploraApi.Transaction | undefined; - try { - spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); - continue; - } - const lightningScript = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); - lightningScriptReasons.push(lightningScript); - } - } - const filteredReasons = lightningScriptReasons.filter((r) => r !== 1); - if (filteredReasons.length) { - if (filteredReasons.some((r) => r === 2 || r === 4)) { - reason = 3; - } else { - reason = 2; - resolvedForceClose = true; - } - } else { - /* - We can detect a commitment transaction (force close) by reading Sequence and Locktime - https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction - */ - let closingTx: IEsploraApi.Transaction | undefined; - try { - closingTx = await bitcoinApi.$getRawTransaction(channel.closing_transaction_id); - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + channel.closing_transaction_id}. Reason ${e instanceof Error ? e.message : e}`); - continue; - } - const sequenceHex: string = closingTx.vin[0].sequence.toString(16); - const locktimeHex: string = closingTx.locktime.toString(16); - if (sequenceHex.substring(0, 2) === '80' && locktimeHex.substring(0, 2) === '20') { - reason = 2; // Here we can't be sure if it's a penalty or not - } else { - reason = 1; - } - } - if (reason) { - logger.debug('Setting closing reason ' + reason + ' for channel: ' + channel.id + '.'); - await DB.query(`UPDATE channels SET closing_reason = ? WHERE id = ?`, [reason, channel.id]); - if (reason === 2 && resolvedForceClose) { - await DB.query(`UPDATE channels SET closing_resolved = ? WHERE id = ?`, [true, channel.id]); - } - } - } catch (e) { - logger.err(`$runClosedChannelsForensics() failed for channel ${channel.short_id}. Reason: ${e instanceof Error ? e.message : e}`); - } - - ++progress; - const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer); - if (elapsedSeconds > 10) { - logger.info(`Updating channel closed channel forensics ${progress}/${channels.length}`); - this.loggerTimer = new Date().getTime() / 1000; - } - } - logger.info(`Closed channels forensics scan complete.`); - } catch (e) { - logger.err('$runClosedChannelsForensics() error: ' + (e instanceof Error ? e.message : e)); - } - } - - private findLightningScript(vin: IEsploraApi.Vin): number { - const topElement = vin.witness[vin.witness.length - 2]; - if (/^OP_IF OP_PUSHBYTES_33 \w{66} OP_ELSE OP_PUSH(NUM_\d+|BYTES_(1 \w{2}|2 \w{4})) OP_CSV OP_DROP OP_PUSHBYTES_33 \w{66} OP_ENDIF OP_CHECKSIG$/.test(vin.inner_witnessscript_asm)) { - // https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs - if (topElement === '01') { - // top element is '01' to get in the revocation path - // 'Revoked Lightning Force Close'; - // Penalty force closed - return 2; - } else { - // top element is '', this is a delayed to_local output - // 'Lightning Force Close'; - return 3; - } - } else if ( - /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_NOTIF OP_DROP OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) || - /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_IF OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_DROP OP_PUSHBYTES_3 \w{6} OP_CLTV OP_DROP OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) - ) { - // https://github.com/lightning/bolts/blob/master/03-transactions.md#offered-htlc-outputs - // https://github.com/lightning/bolts/blob/master/03-transactions.md#received-htlc-outputs - if (topElement.length === 66) { - // top element is a public key - // 'Revoked Lightning HTLC'; Penalty force closed - return 4; - } else if (topElement) { - // top element is a preimage - // 'Lightning HTLC'; - return 5; - } else { - // top element is '' to get in the expiry of the script - // 'Expired Lightning HTLC'; - return 6; - } - } else if (/^OP_PUSHBYTES_33 \w{66} OP_CHECKSIG OP_IFDUP OP_NOTIF OP_PUSHNUM_16 OP_CSV OP_ENDIF$/.test(vin.inner_witnessscript_asm)) { - // https://github.com/lightning/bolts/blob/master/03-transactions.md#to_local_anchor-and-to_remote_anchor-output-option_anchors - if (topElement) { - // top element is a signature - // 'Lightning Anchor'; - return 7; - } else { - // top element is '', it has been swept after 16 blocks - // 'Swept Lightning Anchor'; - return 8; - } - } - return 1; - } } export default new NetworkSyncService(); From e08902b85b2d605d9fa2f0b7889789b8813d0e4f Mon Sep 17 00:00:00 2001 From: wiz Date: Wed, 23 Nov 2022 14:09:54 +0900 Subject: [PATCH 0079/1466] Fix nginx redirects for /liquid etc. --- production/nginx/location-redirects.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/production/nginx/location-redirects.conf b/production/nginx/location-redirects.conf index c6f20e7ad..d330b9deb 100644 --- a/production/nginx/location-redirects.conf +++ b/production/nginx/location-redirects.conf @@ -1,12 +1,12 @@ # redirect mempool.space/liquid to liquid.network -location /liquid { +location = /liquid { rewrite /liquid/(.*) https://liquid.network/$1; rewrite /liquid https://liquid.network/; return 308; } # redirect mempool.space/liquidtestnet to liquid.network/testnet -location /liquidtestnet { +location = /liquidtestnet { rewrite /liquidtestnet/(.*) https://liquid.network/testnet/$1; rewrite /liquidtestnet/ https://liquid.network/testnet/; rewrite /liquidtestnet https://liquid.network/testnet; @@ -14,7 +14,7 @@ location /liquidtestnet { } # redirect mempool.space/bisq to bisq.markets -location /bisq { +location = /bisq { rewrite /bisq/(.*) https://bisq.markets/$1; rewrite /bisq https://bisq.markets/; return 308; From 74dbd6cee12be3ac7096b2b19da1066fa18dd01c Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 23 Nov 2022 18:43:37 +0900 Subject: [PATCH 0080/1466] Add support for application/base64 content type --- backend/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index 09a12e200..cd81e4994 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -83,7 +83,7 @@ class Server { next(); }) .use(express.urlencoded({ extended: true })) - .use(express.text()) + .use(express.text({ type: ['text/plain', 'application/base64'] })) ; this.server = http.createServer(this.app); From 7de068368c3e5f88fed83d7fb28eae7d096b95f1 Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 23 Nov 2022 19:24:41 +0900 Subject: [PATCH 0081/1466] Update backend/src/tasks/lightning/forensics.service.ts --- backend/src/tasks/lightning/forensics.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/tasks/lightning/forensics.service.ts b/backend/src/tasks/lightning/forensics.service.ts index b69088505..5d77aee97 100644 --- a/backend/src/tasks/lightning/forensics.service.ts +++ b/backend/src/tasks/lightning/forensics.service.ts @@ -61,7 +61,7 @@ class ForensicsService { */ public async $runClosedChannelsForensics(onlyNewChannels: boolean = false): Promise { - if (!config.ESPLORA.REST_API_URL) { + if (config.MEMPOOL.BACKEND !== 'esplora') { return; } From 6ada839282c53f2e8f2324872c7dc4355b1136cc Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 23 Nov 2022 19:32:14 +0900 Subject: [PATCH 0082/1466] reduce forensics throttle delay from 100ms to 20ms --- backend/src/tasks/lightning/forensics.service.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/src/tasks/lightning/forensics.service.ts b/backend/src/tasks/lightning/forensics.service.ts index 5d77aee97..9b999fca1 100644 --- a/backend/src/tasks/lightning/forensics.service.ts +++ b/backend/src/tasks/lightning/forensics.service.ts @@ -6,6 +6,8 @@ import config from '../../config'; import { IEsploraApi } from '../../api/bitcoin/esplora-api.interface'; import { Common } from '../../api/common'; +const throttleDelay = 20; //ms + class ForensicsService { loggerTimer = 0; closedChannelsScanBlock = 0; @@ -85,7 +87,7 @@ class ForensicsService { let outspends: IEsploraApi.Outspend[] | undefined; try { outspends = await bitcoinApi.$getOutspends(channel.closing_transaction_id); - await Common.sleep$(100); + await Common.sleep$(throttleDelay); } catch (e) { logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + channel.closing_transaction_id + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); continue; @@ -97,7 +99,7 @@ class ForensicsService { if (!spendingTx) { try { spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); - await Common.sleep$(100); + await Common.sleep$(throttleDelay); this.txCache[outspend.txid] = spendingTx; } catch (e) { logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); @@ -126,7 +128,7 @@ class ForensicsService { if (!closingTx) { try { closingTx = await bitcoinApi.$getRawTransaction(channel.closing_transaction_id); - await Common.sleep$(100); + await Common.sleep$(throttleDelay); this.txCache[channel.closing_transaction_id] = closingTx; } catch (e) { logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + channel.closing_transaction_id}. Reason ${e instanceof Error ? e.message : e}`); From c2b6316c8b721323759a3996ae7c0afcee634aa9 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 15 Nov 2022 11:23:36 -0600 Subject: [PATCH 0083/1466] Fix "Genesis" header while block page loading --- frontend/src/app/components/block/block.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index ba8f3aef3..be1de7a26 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -2,7 +2,7 @@

- Block + Block Genesis
- -
- - - -
-
- -
-

- +
- +
- +
- - - - - - - - - - - - - - - - - - -
Hash{{ blockHash | shortenString : 13 }} - -
Timestamp - ‎{{ blockAudit.timestamp * 1000 | date:'yyyy-MM-dd HH:mm' }} -
- ( - ) -
-
Size
Weight
-
- - -
- - - - - - - - - - - - - - - - - - - -
Transactions{{ blockAudit.tx_count }}
Block health{{ blockAudit.matchRate }}%
Removed txs{{ blockAudit.missingTxs.length }}
Added txs{{ blockAudit.addedTxs.length }}
-
-
-
- - - - - - - -
-
- -
- - - - - - - -
-
- - -
- - - - - - - -
-
-
-
- - - -
- - -
-
- audit unavailable -

- {{ error.error }} -
-
-
- -
-
- Error loading data. -

- {{ error }} -
-
-
-
-
- - -
-
- -
-

Projected Block

- -
- - -
-

Actual Block

- -
-
-
- - \ No newline at end of file diff --git a/frontend/src/app/components/block-audit/block-audit.component.scss b/frontend/src/app/components/block-audit/block-audit.component.scss deleted file mode 100644 index 1e35b7c63..000000000 --- a/frontend/src/app/components/block-audit/block-audit.component.scss +++ /dev/null @@ -1,44 +0,0 @@ -.title-block { - border-top: none; -} - -.table { - tr td { - &:last-child { - text-align: right; - @media (min-width: 768px) { - text-align: left; - } - } - } -} - -.block-tx-title { - display: flex; - justify-content: space-between; - flex-direction: column; - position: relative; - @media (min-width: 550px) { - flex-direction: row; - } - h2 { - line-height: 1; - margin: 0; - position: relative; - padding-bottom: 10px; - @media (min-width: 550px) { - padding-bottom: 0px; - align-self: end; - } - } -} - -.menu-button { - @media (min-width: 768px) { - max-width: 150px; - } -} - -.block-subtitle { - text-align: center; -} \ No newline at end of file diff --git a/frontend/src/app/components/block-audit/block-audit.component.ts b/frontend/src/app/components/block-audit/block-audit.component.ts deleted file mode 100644 index 3787796fd..000000000 --- a/frontend/src/app/components/block-audit/block-audit.component.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { Component, OnDestroy, OnInit, AfterViewInit, ViewChildren, QueryList } from '@angular/core'; -import { ActivatedRoute, ParamMap, Router } from '@angular/router'; -import { Subscription, combineLatest, of } from 'rxjs'; -import { map, switchMap, startWith, catchError, filter } from 'rxjs/operators'; -import { BlockAudit, TransactionStripped } from '../../interfaces/node-api.interface'; -import { ApiService } from '../../services/api.service'; -import { ElectrsApiService } from '../../services/electrs-api.service'; -import { StateService } from '../../services/state.service'; -import { detectWebGL } from '../../shared/graphs.utils'; -import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe'; -import { BlockOverviewGraphComponent } from '../block-overview-graph/block-overview-graph.component'; - -@Component({ - selector: 'app-block-audit', - templateUrl: './block-audit.component.html', - styleUrls: ['./block-audit.component.scss'], - styles: [` - .loadingGraphs { - position: absolute; - top: 50%; - left: calc(50% - 15px); - z-index: 100; - } - `], -}) -export class BlockAuditComponent implements OnInit, AfterViewInit, OnDestroy { - blockAudit: BlockAudit = undefined; - transactions: string[]; - auditSubscription: Subscription; - urlFragmentSubscription: Subscription; - - paginationMaxSize: number; - page = 1; - itemsPerPage: number; - - mode: 'projected' | 'actual' = 'projected'; - error: any; - isLoading = true; - webGlEnabled = true; - isMobile = window.innerWidth <= 767.98; - hoverTx: string; - - childChangeSubscription: Subscription; - - blockHash: string; - numMissing: number = 0; - numUnexpected: number = 0; - - @ViewChildren('blockGraphProjected') blockGraphProjected: QueryList; - @ViewChildren('blockGraphActual') blockGraphActual: QueryList; - - constructor( - private route: ActivatedRoute, - public stateService: StateService, - private router: Router, - private apiService: ApiService, - private electrsApiService: ElectrsApiService, - ) { - this.webGlEnabled = detectWebGL(); - } - - ngOnDestroy() { - this.childChangeSubscription.unsubscribe(); - this.urlFragmentSubscription.unsubscribe(); - } - - ngOnInit(): void { - this.paginationMaxSize = window.matchMedia('(max-width: 670px)').matches ? 3 : 5; - this.itemsPerPage = this.stateService.env.ITEMS_PER_PAGE; - - this.urlFragmentSubscription = this.route.fragment.subscribe((fragment) => { - if (fragment === 'actual') { - this.mode = 'actual'; - } else { - this.mode = 'projected' - } - this.setupBlockGraphs(); - }); - - this.auditSubscription = this.route.paramMap.pipe( - switchMap((params: ParamMap) => { - const blockHash = params.get('id') || null; - if (!blockHash) { - return null; - } - - let isBlockHeight = false; - if (/^[0-9]+$/.test(blockHash)) { - isBlockHeight = true; - } else { - this.blockHash = blockHash; - } - - if (isBlockHeight) { - return this.electrsApiService.getBlockHashFromHeight$(parseInt(blockHash, 10)) - .pipe( - switchMap((hash: string) => { - if (hash) { - this.blockHash = hash; - return this.apiService.getBlockAudit$(this.blockHash) - } else { - return null; - } - }), - catchError((err) => { - this.error = err; - return of(null); - }), - ); - } - return this.apiService.getBlockAudit$(this.blockHash) - }), - filter((response) => response != null), - map((response) => { - const blockAudit = response.body; - const inTemplate = {}; - const inBlock = {}; - const isAdded = {}; - const isCensored = {}; - const isMissing = {}; - const isSelected = {}; - this.numMissing = 0; - this.numUnexpected = 0; - for (const tx of blockAudit.template) { - inTemplate[tx.txid] = true; - } - for (const tx of blockAudit.transactions) { - inBlock[tx.txid] = true; - } - for (const txid of blockAudit.addedTxs) { - isAdded[txid] = true; - } - for (const txid of blockAudit.missingTxs) { - isCensored[txid] = true; - } - // set transaction statuses - for (const tx of blockAudit.template) { - if (isCensored[tx.txid]) { - tx.status = 'censored'; - } else if (inBlock[tx.txid]) { - tx.status = 'found'; - } else { - tx.status = 'missing'; - isMissing[tx.txid] = true; - this.numMissing++; - } - } - for (const [index, tx] of blockAudit.transactions.entries()) { - if (index === 0) { - tx.status = null; - } else if (isAdded[tx.txid]) { - tx.status = 'added'; - } else if (inTemplate[tx.txid]) { - tx.status = 'found'; - } else { - tx.status = 'selected'; - isSelected[tx.txid] = true; - this.numUnexpected++; - } - } - for (const tx of blockAudit.transactions) { - inBlock[tx.txid] = true; - } - return blockAudit; - }), - catchError((err) => { - console.log(err); - this.error = err; - this.isLoading = false; - return of(null); - }), - ).subscribe((blockAudit) => { - this.blockAudit = blockAudit; - this.setupBlockGraphs(); - this.isLoading = false; - }); - } - - ngAfterViewInit() { - this.childChangeSubscription = combineLatest([this.blockGraphProjected.changes.pipe(startWith(null)), this.blockGraphActual.changes.pipe(startWith(null))]).subscribe(() => { - this.setupBlockGraphs(); - }) - } - - setupBlockGraphs() { - if (this.blockAudit) { - this.blockGraphProjected.forEach(graph => { - graph.destroy(); - if (this.isMobile && this.mode === 'actual') { - graph.setup(this.blockAudit.transactions); - } else { - graph.setup(this.blockAudit.template); - } - }) - this.blockGraphActual.forEach(graph => { - graph.destroy(); - graph.setup(this.blockAudit.transactions); - }) - } - } - - onResize(event: any) { - const isMobile = event.target.innerWidth <= 767.98; - const changed = isMobile !== this.isMobile; - this.isMobile = isMobile; - this.paginationMaxSize = event.target.innerWidth < 670 ? 3 : 5; - - if (changed) { - this.changeMode(this.mode); - } - } - - changeMode(mode: 'projected' | 'actual') { - this.router.navigate([], { fragment: mode }); - } - - onTxClick(event: TransactionStripped): void { - const url = new RelativeUrlPipe(this.stateService).transform(`/tx/${event.txid}`); - this.router.navigate([url]); - } - - onTxHover(txid: string): void { - if (txid && txid.length) { - this.hoverTx = txid; - } else { - this.hoverTx = null; - } - } -} diff --git a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html index 782cbe25e..77ee62cae 100644 --- a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html +++ b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html @@ -1,7 +1,8 @@
-
-
+
+
+
not available
(); @Output() txHoverEvent = new EventEmitter(); @Output() readyEvent = new EventEmitter(); diff --git a/frontend/src/app/components/block-overview-graph/tx-view.ts b/frontend/src/app/components/block-overview-graph/tx-view.ts index f07d96eb0..f73b83fd4 100644 --- a/frontend/src/app/components/block-overview-graph/tx-view.ts +++ b/frontend/src/app/components/block-overview-graph/tx-view.ts @@ -3,12 +3,13 @@ import { FastVertexArray } from './fast-vertex-array'; import { TransactionStripped } from '../../interfaces/websocket.interface'; import { SpriteUpdateParams, Square, Color, ViewUpdateParams } from './sprite-types'; import { feeLevels, mempoolFeeColors } from '../../app.constants'; +import BlockScene from './block-scene'; const hoverTransitionTime = 300; const defaultHoverColor = hexToColor('1bd8f4'); const feeColors = mempoolFeeColors.map(hexToColor); -const auditFeeColors = feeColors.map((color) => desaturate(color, 0.3)); +const auditFeeColors = feeColors.map((color) => darken(desaturate(color, 0.3), 0.9)); const auditColors = { censored: hexToColor('f344df'), missing: darken(desaturate(hexToColor('f344df'), 0.3), 0.7), @@ -34,7 +35,8 @@ export default class TxView implements TransactionStripped { vsize: number; value: number; feerate: number; - status?: 'found' | 'missing' | 'added' | 'censored' | 'selected'; + status?: 'found' | 'missing' | 'fresh' | 'added' | 'censored' | 'selected'; + context?: 'projected' | 'actual'; initialised: boolean; vertexArray: FastVertexArray; @@ -48,6 +50,7 @@ export default class TxView implements TransactionStripped { dirty: boolean; constructor(tx: TransactionStripped, vertexArray: FastVertexArray) { + this.context = tx.context; this.txid = tx.txid; this.fee = tx.fee; this.vsize = tx.vsize; @@ -159,12 +162,18 @@ export default class TxView implements TransactionStripped { return auditColors.censored; case 'missing': return auditColors.missing; + case 'fresh': + return auditColors.missing; case 'added': return auditColors.added; case 'selected': return auditColors.selected; case 'found': - return auditFeeColors[feeLevelIndex] || auditFeeColors[mempoolFeeColors.length - 1]; + if (this.context === 'projected') { + return auditFeeColors[feeLevelIndex] || auditFeeColors[mempoolFeeColors.length - 1]; + } else { + return feeLevelColor; + } default: return feeLevelColor; } diff --git a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html index 8c1002025..71801bfb4 100644 --- a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html +++ b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html @@ -37,9 +37,10 @@ match removed - omitted + marginal fee rate + recently broadcast added - extra + marginal fee rate diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index ba8f3aef3..51f1162e3 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -54,7 +54,19 @@ Weight - + + Block health + + {{ blockAudit.matchRate }}% + Unknown + + + + + + Fee span + {{ block.extras.feeRange[0] | number:'1.0-0' }} - {{ block.extras.feeRange[block.extras.feeRange.length - 1] | number:'1.0-0' }} sat/vB + Median fee ~{{ block?.extras?.medianFee | number:'1.0-0' }} sat/vB @@ -98,26 +110,19 @@ Miner - {{ block.extras.pool.name }} - {{ block.extras.pool.name }} - - Block health - - {{ block.extras.matchRate }}% - Unknown - - - +
@@ -138,7 +143,11 @@ - + + + + + @@ -148,17 +157,25 @@ - + - + + + +
-
- +
+
+ + + + + @@ -216,8 +233,9 @@
Fee span{{ block.extras.feeRange[0] | number:'1.0-0' }} - {{ block.extras.feeRange[block.extras.feeRange.length - 1] | number:'1.0-0' }} sat/vB
Median fee ~{{ block?.extras?.medianFee | number:'1.0-0' }} sat/vB
- +
+ @@ -230,22 +248,54 @@ + + +
-
-
- +
+ +
+ + + +
+ + +
+ +
+
+

Projected Block

+ +
+
+

Actual Block

+ +
+
+
+

@@ -273,6 +323,7 @@
+ diff --git a/frontend/src/app/components/block/block.component.scss b/frontend/src/app/components/block/block.component.scss index d6c4d65b4..69002de79 100644 --- a/frontend/src/app/components/block/block.component.scss +++ b/frontend/src/app/components/block/block.component.scss @@ -171,3 +171,35 @@ h1 { margin: auto; } } + +.menu-button { + @media (min-width: 768px) { + max-width: 150px; + } +} + +.block-subtitle { + text-align: center; +} + +.nav-tabs { + border-color: white; + border-width: 1px; +} + +.nav-tabs .nav-link { + background: inherit; + border-width: 1px; + border-bottom: none; + border-color: transparent; + margin-bottom: -1px; + cursor: pointer; + + &.active { + background: #24273e; + } + + &.active, &:hover { + border-color: white; + } +} \ No newline at end of file diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index aff07a95e..66dad6d4b 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -1,15 +1,15 @@ -import { Component, OnInit, OnDestroy, ViewChild, ElementRef } from '@angular/core'; +import { Component, OnInit, OnDestroy, ViewChildren, QueryList } from '@angular/core'; import { Location } from '@angular/common'; import { ActivatedRoute, ParamMap, Router } from '@angular/router'; import { ElectrsApiService } from '../../services/electrs-api.service'; -import { switchMap, tap, throttleTime, catchError, map, shareReplay, startWith, pairwise } from 'rxjs/operators'; +import { switchMap, tap, throttleTime, catchError, map, shareReplay, startWith, pairwise, filter } from 'rxjs/operators'; import { Transaction, Vout } from '../../interfaces/electrs.interface'; -import { Observable, of, Subscription, asyncScheduler, EMPTY, Subject } from 'rxjs'; +import { Observable, of, Subscription, asyncScheduler, EMPTY, combineLatest } from 'rxjs'; import { StateService } from '../../services/state.service'; import { SeoService } from '../../services/seo.service'; import { WebsocketService } from '../../services/websocket.service'; import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe'; -import { BlockExtended, TransactionStripped } from '../../interfaces/node-api.interface'; +import { BlockAudit, BlockExtended, TransactionStripped } from '../../interfaces/node-api.interface'; import { ApiService } from '../../services/api.service'; import { BlockOverviewGraphComponent } from '../../components/block-overview-graph/block-overview-graph.component'; import { detectWebGL } from '../../shared/graphs.utils'; @@ -17,11 +17,20 @@ import { detectWebGL } from '../../shared/graphs.utils'; @Component({ selector: 'app-block', templateUrl: './block.component.html', - styleUrls: ['./block.component.scss'] + styleUrls: ['./block.component.scss'], + styles: [` + .loadingGraphs { + position: absolute; + top: 50%; + left: calc(50% - 15px); + z-index: 100; + } + `], }) export class BlockComponent implements OnInit, OnDestroy { network = ''; block: BlockExtended; + blockAudit: BlockAudit = undefined; blockHeight: number; lastBlockHeight: number; nextBlockHeight: number; @@ -48,9 +57,16 @@ export class BlockComponent implements OnInit, OnDestroy { overviewError: any = null; webGlEnabled = true; indexingAvailable = false; + auditEnabled = true; + isMobile = window.innerWidth <= 767.98; + hoverTx: string; + numMissing: number = 0; + numUnexpected: number = 0; + mode: 'projected' | 'actual' = 'projected'; transactionSubscription: Subscription; overviewSubscription: Subscription; + auditSubscription: Subscription; keyNavigationSubscription: Subscription; blocksSubscription: Subscription; networkChangedSubscription: Subscription; @@ -60,10 +76,10 @@ export class BlockComponent implements OnInit, OnDestroy { nextBlockTxListSubscription: Subscription = undefined; timeLtrSubscription: Subscription; timeLtr: boolean; - fetchAuditScore$ = new Subject(); - fetchAuditScoreSubscription: Subscription; + childChangeSubscription: Subscription; - @ViewChild('blockGraph') blockGraph: BlockOverviewGraphComponent; + @ViewChildren('blockGraphProjected') blockGraphProjected: QueryList; + @ViewChildren('blockGraphActual') blockGraphActual: QueryList; constructor( private route: ActivatedRoute, @@ -89,8 +105,8 @@ export class BlockComponent implements OnInit, OnDestroy { this.timeLtr = !!ltr; }); - this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && - this.stateService.env.MINING_DASHBOARD === true); + this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); + this.auditEnabled = this.indexingAvailable; this.txsLoadingStatus$ = this.route.paramMap .pipe( @@ -107,30 +123,12 @@ export class BlockComponent implements OnInit, OnDestroy { if (block.id === this.blockHash) { this.block = block; - if (this.block.id && this.block?.extras?.matchRate == null) { - this.fetchAuditScore$.next(this.block.id); - } if (block?.extras?.reward != undefined) { this.fees = block.extras.reward / 100000000 - this.blockSubsidy; } } }); - if (this.indexingAvailable) { - this.fetchAuditScoreSubscription = this.fetchAuditScore$ - .pipe( - switchMap((hash) => this.apiService.getBlockAuditScore$(hash)), - catchError(() => EMPTY), - ) - .subscribe((score) => { - if (score && score.hash === this.block.id) { - this.block.extras.matchRate = score.matchRate || null; - } else { - this.block.extras.matchRate = null; - } - }); - } - const block$ = this.route.paramMap.pipe( switchMap((params: ParamMap) => { const blockHash: string = params.get('id') || ''; @@ -212,7 +210,11 @@ export class BlockComponent implements OnInit, OnDestroy { setTimeout(() => { this.nextBlockSubscription = this.apiService.getBlock$(block.previousblockhash).subscribe(); this.nextBlockTxListSubscription = this.electrsApiService.getBlockTransactions$(block.previousblockhash).subscribe(); - this.nextBlockSummarySubscription = this.apiService.getStrippedBlockTransactions$(block.previousblockhash).subscribe(); + if (this.indexingAvailable) { + this.apiService.getBlockAudit$(block.previousblockhash); + } else { + this.nextBlockSummarySubscription = this.apiService.getStrippedBlockTransactions$(block.previousblockhash).subscribe(); + } }, 100); } @@ -229,9 +231,6 @@ export class BlockComponent implements OnInit, OnDestroy { this.fees = block.extras.reward / 100000000 - this.blockSubsidy; } this.stateService.markBlock$.next({ blockHeight: this.blockHeight }); - if (this.block.id && this.block?.extras?.matchRate == null) { - this.fetchAuditScore$.next(this.block.id); - } this.isLoadingTransactions = true; this.transactions = null; this.transactionsError = null; @@ -263,40 +262,126 @@ export class BlockComponent implements OnInit, OnDestroy { this.isLoadingOverview = false; }); - this.overviewSubscription = block$.pipe( - startWith(null), - pairwise(), - switchMap(([prevBlock, block]) => this.apiService.getStrippedBlockTransactions$(block.id) - .pipe( - catchError((err) => { - this.overviewError = err; - return of([]); - }), - switchMap((transactions) => { - if (prevBlock) { - return of({ transactions, direction: (prevBlock.height < block.height) ? 'right' : 'left' }); - } else { - return of({ transactions, direction: 'down' }); + if (!this.indexingAvailable) { + this.overviewSubscription = block$.pipe( + startWith(null), + pairwise(), + switchMap(([prevBlock, block]) => this.apiService.getStrippedBlockTransactions$(block.id) + .pipe( + catchError((err) => { + this.overviewError = err; + return of([]); + }), + switchMap((transactions) => { + if (prevBlock) { + return of({ transactions, direction: (prevBlock.height < block.height) ? 'right' : 'left' }); + } else { + return of({ transactions, direction: 'down' }); + } + }) + ) + ), + ) + .subscribe(({transactions, direction}: {transactions: TransactionStripped[], direction: string}) => { + this.strippedTransactions = transactions; + this.isLoadingOverview = false; + this.setupBlockGraphs(); + }, + (error) => { + this.error = error; + this.isLoadingOverview = false; + }); + } + + if (this.indexingAvailable) { + this.auditSubscription = block$.pipe( + startWith(null), + pairwise(), + switchMap(([prevBlock, block]) => this.apiService.getBlockAudit$(block.id) + .pipe( + catchError((err) => { + this.overviewError = err; + return of([]); + }) + ) + ), + filter((response) => response != null), + map((response) => { + const blockAudit = response.body; + const inTemplate = {}; + const inBlock = {}; + const isAdded = {}; + const isCensored = {}; + const isMissing = {}; + const isSelected = {}; + const isFresh = {}; + this.numMissing = 0; + this.numUnexpected = 0; + + if (blockAudit.template) { + for (const tx of blockAudit.template) { + inTemplate[tx.txid] = true; } - }) - ) - ), - ) - .subscribe(({transactions, direction}: {transactions: TransactionStripped[], direction: string}) => { - this.strippedTransactions = transactions; - this.isLoadingOverview = false; - if (this.blockGraph) { - this.blockGraph.destroy(); - this.blockGraph.setup(this.strippedTransactions); - } - }, - (error) => { - this.error = error; - this.isLoadingOverview = false; - if (this.blockGraph) { - this.blockGraph.destroy(); - } - }); + for (const tx of blockAudit.transactions) { + inBlock[tx.txid] = true; + } + for (const txid of blockAudit.addedTxs) { + isAdded[txid] = true; + } + for (const txid of blockAudit.missingTxs) { + isCensored[txid] = true; + } + for (const txid of blockAudit.freshTxs || []) { + isFresh[txid] = true; + } + // set transaction statuses + for (const tx of blockAudit.template) { + tx.context = 'projected'; + if (isCensored[tx.txid]) { + tx.status = 'censored'; + } else if (inBlock[tx.txid]) { + tx.status = 'found'; + } else { + tx.status = isFresh[tx.txid] ? 'fresh' : 'missing'; + isMissing[tx.txid] = true; + this.numMissing++; + } + } + for (const [index, tx] of blockAudit.transactions.entries()) { + tx.context = 'actual'; + if (index === 0) { + tx.status = null; + } else if (isAdded[tx.txid]) { + tx.status = 'added'; + } else if (inTemplate[tx.txid]) { + tx.status = 'found'; + } else { + tx.status = 'selected'; + isSelected[tx.txid] = true; + this.numUnexpected++; + } + } + for (const tx of blockAudit.transactions) { + inBlock[tx.txid] = true; + } + this.auditEnabled = true; + } else { + this.auditEnabled = false; + } + return blockAudit; + }), + catchError((err) => { + console.log(err); + this.error = err; + this.isLoadingOverview = false; + return of(null); + }), + ).subscribe((blockAudit) => { + this.blockAudit = blockAudit; + this.setupBlockGraphs(); + this.isLoadingOverview = false; + }); + } this.networkChangedSubscription = this.stateService.networkChanged$ .subscribe((network) => this.network = network); @@ -307,6 +392,12 @@ export class BlockComponent implements OnInit, OnDestroy { } else { this.showDetails = false; } + if (params.view === 'projected') { + this.mode = 'projected'; + } else { + this.mode = 'actual'; + } + this.setupBlockGraphs(); }); this.keyNavigationSubscription = this.stateService.keyNavigation$.subscribe((event) => { @@ -325,17 +416,24 @@ export class BlockComponent implements OnInit, OnDestroy { }); } + ngAfterViewInit(): void { + this.childChangeSubscription = combineLatest([this.blockGraphProjected.changes.pipe(startWith(null)), this.blockGraphActual.changes.pipe(startWith(null))]).subscribe(() => { + this.setupBlockGraphs(); + }); + } + ngOnDestroy() { this.stateService.markBlock$.next({}); this.transactionSubscription.unsubscribe(); - this.overviewSubscription.unsubscribe(); + this.overviewSubscription?.unsubscribe(); + this.auditSubscription?.unsubscribe(); this.keyNavigationSubscription.unsubscribe(); this.blocksSubscription.unsubscribe(); this.networkChangedSubscription.unsubscribe(); this.queryParamsSubscription.unsubscribe(); this.timeLtrSubscription.unsubscribe(); - this.fetchAuditScoreSubscription?.unsubscribe(); this.unsubscribeNextBlockSubscriptions(); + this.childChangeSubscription.unsubscribe(); } unsubscribeNextBlockSubscriptions() { @@ -382,7 +480,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.showDetails = false; this.router.navigate([], { relativeTo: this.route, - queryParams: { showDetails: false }, + queryParams: { showDetails: false, view: this.mode }, queryParamsHandling: 'merge', fragment: 'block' }); @@ -390,7 +488,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.showDetails = true; this.router.navigate([], { relativeTo: this.route, - queryParams: { showDetails: true }, + queryParams: { showDetails: true, view: this.mode }, queryParamsHandling: 'merge', fragment: 'details' }); @@ -409,10 +507,6 @@ export class BlockComponent implements OnInit, OnDestroy { return this.block && this.block.height > 681393 && (new Date().getTime() / 1000) < 1628640000; } - onResize(event: any) { - this.paginationMaxSize = event.target.innerWidth < 670 ? 3 : 5; - } - navigateToPreviousBlock() { if (!this.block) { return; @@ -443,8 +537,53 @@ export class BlockComponent implements OnInit, OnDestroy { } } + setupBlockGraphs(): void { + if (this.blockAudit || this.strippedTransactions) { + this.blockGraphProjected.forEach(graph => { + graph.destroy(); + if (this.isMobile && this.mode === 'actual') { + graph.setup(this.blockAudit?.transactions || this.strippedTransactions || []); + } else { + graph.setup(this.blockAudit?.template || []); + } + }); + this.blockGraphActual.forEach(graph => { + graph.destroy(); + graph.setup(this.blockAudit?.transactions || this.strippedTransactions || []); + }); + } + } + + onResize(event: any): void { + const isMobile = event.target.innerWidth <= 767.98; + const changed = isMobile !== this.isMobile; + this.isMobile = isMobile; + this.paginationMaxSize = event.target.innerWidth < 670 ? 3 : 5; + + if (changed) { + this.changeMode(this.mode); + } + } + + changeMode(mode: 'projected' | 'actual'): void { + this.router.navigate([], { + relativeTo: this.route, + queryParams: { showDetails: this.showDetails, view: mode }, + queryParamsHandling: 'merge', + fragment: 'overview' + }); + } + onTxClick(event: TransactionStripped): void { const url = new RelativeUrlPipe(this.stateService).transform(`/tx/${event.txid}`); this.router.navigate([url]); } + + onTxHover(txid: string): void { + if (txid && txid.length) { + this.hoverTx = txid; + } else { + this.hoverTx = null; + } + } } \ No newline at end of file diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.html b/frontend/src/app/components/blocks-list/blocks-list.component.html index 69bcf3141..7cc55a815 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.html +++ b/frontend/src/app/components/blocks-list/blocks-list.component.html @@ -46,7 +46,7 @@ - + @@ -172,7 +172,7 @@
Difficulty {{ block.difficulty }} - +
diff --git a/frontend/src/app/interfaces/node-api.interface.ts b/frontend/src/app/interfaces/node-api.interface.ts index 39d0c3d5d..5df095432 100644 --- a/frontend/src/app/interfaces/node-api.interface.ts +++ b/frontend/src/app/interfaces/node-api.interface.ts @@ -141,7 +141,7 @@ export interface TransactionStripped { fee: number; vsize: number; value: number; - status?: 'found' | 'missing' | 'added' | 'censored' | 'selected'; + status?: 'found' | 'missing' | 'fresh' | 'added' | 'censored' | 'selected'; } export interface RewardStats { diff --git a/frontend/src/app/interfaces/websocket.interface.ts b/frontend/src/app/interfaces/websocket.interface.ts index 67cc0ffc7..96f7530c9 100644 --- a/frontend/src/app/interfaces/websocket.interface.ts +++ b/frontend/src/app/interfaces/websocket.interface.ts @@ -70,7 +70,8 @@ export interface TransactionStripped { fee: number; vsize: number; value: number; - status?: 'found' | 'missing' | 'added' | 'censored' | 'selected'; + status?: 'found' | 'missing' | 'fresh' | 'added' | 'censored' | 'selected'; + context?: 'projected' | 'actual'; } export interface IBackendInfo { diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index 9e9e2e2a5..ca4501d58 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -45,7 +45,6 @@ import { StartComponent } from '../components/start/start.component'; import { TransactionComponent } from '../components/transaction/transaction.component'; import { TransactionsListComponent } from '../components/transactions-list/transactions-list.component'; import { BlockComponent } from '../components/block/block.component'; -import { BlockAuditComponent } from '../components/block-audit/block-audit.component'; import { BlockOverviewGraphComponent } from '../components/block-overview-graph/block-overview-graph.component'; import { BlockOverviewTooltipComponent } from '../components/block-overview-tooltip/block-overview-tooltip.component'; import { AddressComponent } from '../components/address/address.component'; @@ -120,7 +119,6 @@ import { GeolocationComponent } from '../shared/components/geolocation/geolocati StartComponent, TransactionComponent, BlockComponent, - BlockAuditComponent, BlockOverviewGraphComponent, BlockOverviewTooltipComponent, TransactionsListComponent, @@ -223,7 +221,6 @@ import { GeolocationComponent } from '../shared/components/geolocation/geolocati StartComponent, TransactionComponent, BlockComponent, - BlockAuditComponent, BlockOverviewGraphComponent, BlockOverviewTooltipComponent, TransactionsListComponent, From de04914851133b46b105f0fe89342d89b22c128e Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 24 Nov 2022 17:03:54 +0900 Subject: [PATCH 0088/1466] optimize block audit scores db query --- backend/src/api/audit.ts | 39 ------------------- backend/src/api/mining/mining-routes.ts | 7 +++- .../repositories/BlocksAuditsRepository.ts | 14 +++++++ .../blocks-list/blocks-list.component.html | 3 +- 4 files changed, 20 insertions(+), 43 deletions(-) diff --git a/backend/src/api/audit.ts b/backend/src/api/audit.ts index e520cf470..6aafc9ded 100644 --- a/backend/src/api/audit.ts +++ b/backend/src/api/audit.ts @@ -133,45 +133,6 @@ class Audit { score }; } - - public async $getBlockAuditScores(fromHeight?: number, limit: number = 15): Promise { - let currentHeight = fromHeight !== undefined ? fromHeight : await blocksRepository.$mostRecentBlockHeight(); - const returnScores: AuditScore[] = []; - - if (currentHeight < 0) { - return returnScores; - } - - for (let i = 0; i < limit && currentHeight >= 0; i++) { - const block = blocks.getBlocks().find((b) => b.height === currentHeight); - if (block?.extras?.matchRate != null) { - returnScores.push({ - hash: block.id, - matchRate: block.extras.matchRate - }); - } else { - let currentHash; - if (!currentHash && Common.indexingEnabled()) { - const dbBlock = await blocksRepository.$getBlockByHeight(currentHeight); - if (dbBlock && dbBlock['id']) { - currentHash = dbBlock['id']; - } - } - if (!currentHash) { - currentHash = await bitcoinApi.$getBlockHash(currentHeight); - } - if (currentHash) { - const auditScore = await blocksAuditsRepository.$getBlockAuditScore(currentHash); - returnScores.push({ - hash: currentHash, - matchRate: auditScore?.matchRate - }); - } - } - currentHeight--; - } - return returnScores; - } } export default new Audit(); \ No newline at end of file diff --git a/backend/src/api/mining/mining-routes.ts b/backend/src/api/mining/mining-routes.ts index 73d38d841..81c7b5a99 100644 --- a/backend/src/api/mining/mining-routes.ts +++ b/backend/src/api/mining/mining-routes.ts @@ -283,9 +283,12 @@ class MiningRoutes { private async $getBlockAuditScores(req: Request, res: Response) { try { - const height = req.params.height === undefined ? undefined : parseInt(req.params.height, 10); + let height = req.params.height === undefined ? undefined : parseInt(req.params.height, 10); + if (height == null) { + height = await BlocksRepository.$mostRecentBlockHeight(); + } res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString()); - res.json(await audits.$getBlockAuditScores(height, 15)); + res.json(await BlocksAuditsRepository.$getBlockAuditScores(height, height - 15)); } catch (e) { res.status(500).send(e instanceof Error ? e.message : e); } diff --git a/backend/src/repositories/BlocksAuditsRepository.ts b/backend/src/repositories/BlocksAuditsRepository.ts index 6f914ca0b..831a33e3d 100644 --- a/backend/src/repositories/BlocksAuditsRepository.ts +++ b/backend/src/repositories/BlocksAuditsRepository.ts @@ -93,6 +93,20 @@ class BlocksAuditRepositories { throw e; } } + + public async $getBlockAuditScores(maxHeight: number, minHeight: number): Promise { + try { + const [rows]: any[] = await DB.query( + `SELECT hash, match_rate as matchRate + FROM blocks_audits + WHERE blocks_audits.height BETWEEN ? AND ? + `, [minHeight, maxHeight]); + return rows; + } catch (e: any) { + logger.err(`Cannot fetch block audit from db. Reason: ` + (e instanceof Error ? e.message : e)); + throw e; + } + } } export default new BlocksAuditRepositories(); diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.html b/frontend/src/app/components/blocks-list/blocks-list.component.html index 7cc55a815..628efb51b 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.html +++ b/frontend/src/app/components/blocks-list/blocks-list.component.html @@ -52,8 +52,7 @@ [ngStyle]="{'width': (100 - (auditScores[block.id] || 0)) + '%' }">
{{ auditScores[block.id] }}% - - ~ + ~
From 6ec9c2f816f0d60ae8b6d3526f8f537534139a21 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 25 Nov 2022 10:16:06 +0900 Subject: [PATCH 0089/1466] fix 'unavailable' msg on block page on mobile --- frontend/src/app/components/block/block.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 51f1162e3..91b20278c 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -285,13 +285,13 @@

Projected Block

+ (txClickEvent)="onTxClick($event)" (txHoverEvent)="onTxHover($event)" [unavailable]="!isMobile && !auditEnabled">

Actual Block

+ (txClickEvent)="onTxClick($event)" (txHoverEvent)="onTxHover($event)" [unavailable]="isMobile && !auditEnabled">
From 201b32bdcdc8c69cd8c90f9c81b8bf95ba4702c8 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 25 Nov 2022 10:16:58 +0900 Subject: [PATCH 0090/1466] better fallbacks for missing block summaries data --- backend/src/api/blocks.ts | 4 ++-- .../src/repositories/BlocksAuditsRepository.ts | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 562f49de1..6f036e533 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -590,7 +590,7 @@ class Blocks { if (skipMemoryCache === false) { // Check the memory cache const cachedSummary = this.getBlockSummaries().find((b) => b.id === hash); - if (cachedSummary) { + if (cachedSummary?.transactions?.length) { return cachedSummary.transactions; } } @@ -598,7 +598,7 @@ class Blocks { // Check if it's indexed in db if (skipDBLookup === false && Common.blocksSummariesIndexingEnabled() === true) { const indexedSummary = await BlocksSummariesRepository.$getByBlockId(hash); - if (indexedSummary !== undefined) { + if (indexedSummary !== undefined && indexedSummary?.transactions?.length) { return indexedSummary.transactions; } } diff --git a/backend/src/repositories/BlocksAuditsRepository.ts b/backend/src/repositories/BlocksAuditsRepository.ts index 831a33e3d..81e68b67f 100644 --- a/backend/src/repositories/BlocksAuditsRepository.ts +++ b/backend/src/repositories/BlocksAuditsRepository.ts @@ -65,15 +65,16 @@ class BlocksAuditRepositories { rows[0].freshTxs = JSON.parse(rows[0].freshTxs); rows[0].transactions = JSON.parse(rows[0].transactions); rows[0].template = JSON.parse(rows[0].template); - } else { - // fallback to non-audited transaction summary - const strippedTransactions = await blocks.$getStrippedBlockTransactions(hash); - return { - transactions: strippedTransactions + + if (rows[0].transactions.length) { + return rows[0]; } } - - return rows[0]; + // fallback to non-audited transaction summary + const strippedTransactions = await blocks.$getStrippedBlockTransactions(hash); + return { + transactions: strippedTransactions + }; } catch (e: any) { logger.err(`Cannot fetch block audit from db. Reason: ` + (e instanceof Error ? e.message : e)); throw e; From e627122239fa668a790795541f280c3858462e75 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 25 Nov 2022 19:32:50 +0900 Subject: [PATCH 0091/1466] move block audit endpoint from mining to bitcoin routes --- backend/src/api/bitcoin/bitcoin.routes.ts | 15 +++++++++++++-- backend/src/api/blocks.ts | 13 +++++++++++++ .../src/repositories/BlocksAuditsRepository.ts | 6 +----- .../src/app/components/block/block.component.ts | 8 ++------ frontend/src/app/services/api.service.ts | 2 +- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 3740cccd4..cdcc589fd 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -89,6 +89,7 @@ class BitcoinRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'blocks/:height', this.getBlocks.bind(this)) .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash', this.getBlock) .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash/summary', this.getStrippedBlockTransactions) + .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash/audit-summary', this.getBlockAuditSummary) .post(config.MEMPOOL.API_URL_PREFIX + 'psbt/addparents', this.postPsbtCompletion) ; @@ -324,6 +325,16 @@ class BitcoinRoutes { } } + private async getStrippedBlockTransactions(req: Request, res: Response) { + try { + const transactions = await blocks.$getStrippedBlockTransactions(req.params.hash); + res.setHeader('Expires', new Date(Date.now() + 1000 * 3600 * 24 * 30).toUTCString()); + res.json(transactions); + } catch (e) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } + private async getBlock(req: Request, res: Response) { try { const block = await blocks.$getBlock(req.params.hash); @@ -356,9 +367,9 @@ class BitcoinRoutes { } } - private async getStrippedBlockTransactions(req: Request, res: Response) { + private async getBlockAuditSummary(req: Request, res: Response) { try { - const transactions = await blocks.$getStrippedBlockTransactions(req.params.hash); + const transactions = await blocks.$getBlockAuditSummary(req.params.hash); res.setHeader('Expires', new Date(Date.now() + 1000 * 3600 * 24 * 30).toUTCString()); res.json(transactions); } catch (e) { diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 6f036e533..111d0fa1e 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -651,6 +651,19 @@ class Blocks { return returnBlocks; } + public async $getBlockAuditSummary(hash: string): Promise { + let summary = await BlocksAuditsRepository.$getBlockAudit(hash); + + // fallback to non-audited transaction summary + if (!summary?.transactions?.length) { + const strippedTransactions = await this.$getStrippedBlockTransactions(hash); + summary = { + transactions: strippedTransactions + }; + } + return summary; + } + public getLastDifficultyAdjustmentTime(): number { return this.lastDifficultyAdjustmentTime; } diff --git a/backend/src/repositories/BlocksAuditsRepository.ts b/backend/src/repositories/BlocksAuditsRepository.ts index 81e68b67f..c6156334b 100644 --- a/backend/src/repositories/BlocksAuditsRepository.ts +++ b/backend/src/repositories/BlocksAuditsRepository.ts @@ -70,11 +70,7 @@ class BlocksAuditRepositories { return rows[0]; } } - // fallback to non-audited transaction summary - const strippedTransactions = await blocks.$getStrippedBlockTransactions(hash); - return { - transactions: strippedTransactions - }; + return null; } catch (e: any) { logger.err(`Cannot fetch block audit from db. Reason: ` + (e instanceof Error ? e.message : e)); throw e; diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 66dad6d4b..916904375 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -210,11 +210,7 @@ export class BlockComponent implements OnInit, OnDestroy { setTimeout(() => { this.nextBlockSubscription = this.apiService.getBlock$(block.previousblockhash).subscribe(); this.nextBlockTxListSubscription = this.electrsApiService.getBlockTransactions$(block.previousblockhash).subscribe(); - if (this.indexingAvailable) { - this.apiService.getBlockAudit$(block.previousblockhash); - } else { - this.nextBlockSummarySubscription = this.apiService.getStrippedBlockTransactions$(block.previousblockhash).subscribe(); - } + this.apiService.getBlockAudit$(block.previousblockhash); }, 100); } @@ -318,7 +314,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.numMissing = 0; this.numUnexpected = 0; - if (blockAudit.template) { + if (blockAudit?.template) { for (const tx of blockAudit.template) { inTemplate[tx.txid] = true; } diff --git a/frontend/src/app/services/api.service.ts b/frontend/src/app/services/api.service.ts index dfed35d72..f813959e3 100644 --- a/frontend/src/app/services/api.service.ts +++ b/frontend/src/app/services/api.service.ts @@ -230,7 +230,7 @@ export class ApiService { getBlockAudit$(hash: string) : Observable { return this.httpClient.get( - this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/blocks/audit/` + hash, { observe: 'response' } + this.apiBaseUrl + this.apiBasePath + `/api/v1/block/${hash}/audit-summary`, { observe: 'response' } ); } From 2290f980114d87741011859354f08d2f74d8757c Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 28 Nov 2022 14:26:28 +0900 Subject: [PATCH 0092/1466] only query blocks_audits on bitcoin networks --- backend/src/api/blocks.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 111d0fa1e..411777393 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -652,7 +652,10 @@ class Blocks { } public async $getBlockAuditSummary(hash: string): Promise { - let summary = await BlocksAuditsRepository.$getBlockAudit(hash); + let summary; + if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { + summary = await BlocksAuditsRepository.$getBlockAudit(hash); + } // fallback to non-audited transaction summary if (!summary?.transactions?.length) { From 0e8e5dc3a9d2d05bed69103ce4fc99c463e55dcc Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 28 Nov 2022 15:01:30 +0900 Subject: [PATCH 0093/1466] update proxy.conf.staging target --- frontend/proxy.conf.staging.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/proxy.conf.staging.js b/frontend/proxy.conf.staging.js index 0cf366ca7..a99ead7a4 100644 --- a/frontend/proxy.conf.staging.js +++ b/frontend/proxy.conf.staging.js @@ -3,9 +3,9 @@ const fs = require('fs'); let PROXY_CONFIG = require('./proxy.conf'); PROXY_CONFIG.forEach(entry => { - entry.target = entry.target.replace("mempool.space", "mempool-staging.fra.mempool.space"); - entry.target = entry.target.replace("liquid.network", "liquid-staging.fra.mempool.space"); - entry.target = entry.target.replace("bisq.markets", "bisq-staging.fra.mempool.space"); + entry.target = entry.target.replace("mempool.space", "mempool-staging.tk7.mempool.space"); + entry.target = entry.target.replace("liquid.network", "liquid-staging.tk7.mempool.space"); + entry.target = entry.target.replace("bisq.markets", "bisq-staging.tk7.mempool.space"); }); module.exports = PROXY_CONFIG; From c2f45f9bc1d499934abd856b028cf9c5dd6d9f2b Mon Sep 17 00:00:00 2001 From: softsimon Date: Mon, 28 Nov 2022 11:55:23 +0900 Subject: [PATCH 0094/1466] Upgrade to Angular 14 --- frontend/angular.json | 3 +- frontend/package-lock.json | 10342 ++++++++++------ frontend/package.json | 34 +- frontend/src/app/app-routing.module.ts | 2 +- .../bisq/bisq-market/bisq-market.component.ts | 6 +- .../bisq-transactions.component.ts | 6 +- .../assets/assets-nav/assets-nav.component.ts | 6 +- .../app/components/assets/assets.component.ts | 4 +- .../block-fee-rates-graph.component.ts | 6 +- .../block-fees-graph.component.ts | 6 +- .../block-prediction-graph.component.ts | 6 +- .../block-rewards-graph.component.ts | 6 +- .../block-sizes-weights-graph.component.ts | 6 +- .../hashrate-chart.component.ts | 6 +- .../hashrate-chart-pools.component.ts | 6 +- .../language-selector.component.ts | 6 +- .../ngx-bootstrap-multiselect.component.ts | 8 +- .../pool-ranking/pool-ranking.component.ts | 6 +- .../push-transaction.component.ts | 6 +- .../search-form/search-form.component.ts | 6 +- .../statistics/statistics.component.ts | 6 +- frontend/src/app/docs/docs.routing.module.ts | 1 + .../src/app/graphs/graphs.routing.module.ts | 1 + .../channels-list/channels-list.component.ts | 6 +- .../app/lightning/group/group.component.ts | 6 +- .../node-statistics-chart.component.ts | 4 +- .../nodes-networks-chart.component.ts | 6 +- .../lightning-statistics-chart.component.ts | 6 +- 28 files changed, 6615 insertions(+), 3898 deletions(-) diff --git a/frontend/angular.json b/frontend/angular.json index dedf52d81..d9cb72f12 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -339,6 +339,5 @@ } } } - }, - "defaultProject": "mempool" + } } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 04682aac5..eb7555b28 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -9,25 +9,25 @@ "version": "2.5.0-dev", "license": "GNU Affero General Public License v3.0", "dependencies": { - "@angular-devkit/build-angular": "~13.3.7", - "@angular/animations": "~13.3.10", - "@angular/cli": "~13.3.7", - "@angular/common": "~13.3.10", - "@angular/compiler": "~13.3.10", - "@angular/core": "~13.3.10", - "@angular/forms": "~13.3.10", - "@angular/localize": "~13.3.10", - "@angular/platform-browser": "~13.3.10", - "@angular/platform-browser-dynamic": "~13.3.10", - "@angular/platform-server": "~13.3.10", - "@angular/router": "~13.3.10", + "@angular-devkit/build-angular": "^14.2.10", + "@angular/animations": "^14.2.12", + "@angular/cli": "^14.2.10", + "@angular/common": "^14.2.12", + "@angular/compiler": "^14.2.12", + "@angular/core": "^14.2.12", + "@angular/forms": "^14.2.12", + "@angular/localize": "^14.2.12", + "@angular/platform-browser": "^14.2.12", + "@angular/platform-browser-dynamic": "^14.2.12", + "@angular/platform-server": "^14.2.12", + "@angular/router": "^14.2.12", "@fortawesome/angular-fontawesome": "~0.10.2", "@fortawesome/fontawesome-common-types": "~6.1.1", "@fortawesome/fontawesome-svg-core": "~6.1.1", "@fortawesome/free-solid-svg-icons": "~6.1.1", "@mempool/mempool.js": "2.3.0", "@ng-bootstrap/ng-bootstrap": "^11.0.0", - "@nguniversal/express-engine": "~13.1.1", + "@nguniversal/express-engine": "^13.1.1", "@types/qrcode": "~1.4.2", "bootstrap": "~4.5.0", "browserify": "^17.0.0", @@ -47,9 +47,9 @@ "zone.js": "~0.11.5" }, "devDependencies": { - "@angular/compiler-cli": "~13.3.10", - "@angular/language-service": "~13.3.10", - "@nguniversal/builders": "~13.1.1", + "@angular/compiler-cli": "^14.2.12", + "@angular/language-service": "^14.2.12", + "@nguniversal/builders": "^13.1.1", "@types/express": "^4.17.0", "@types/node": "^12.11.1", "@typescript-eslint/eslint-plugin": "^5.30.5", @@ -69,6 +69,11 @@ "start-server-and-test": "~1.14.0" } }, + "node_modules/@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==" + }, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -85,6 +90,7 @@ "version": "0.1303.7", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.7.tgz", "integrity": "sha512-xr35v7AuJygRdiaFhgoBSLN2ZMUri8x8Qx9jkmCkD3WLKz33TSFyAyqwdNNmOO9riK8ePXMH/QcSv0wY12pFBw==", + "dev": true, "dependencies": { "@angular-devkit/core": "13.3.7", "rxjs": "6.6.7" @@ -99,6 +105,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, "dependencies": { "tslib": "^1.9.0" }, @@ -109,95 +116,94 @@ "node_modules/@angular-devkit/architect/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@angular-devkit/build-angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.7.tgz", - "integrity": "sha512-XUmiq/3zpuna+r0UOqNSvA9kEcPwsLblEmNLUYyZXL9v/aGWUHOSH0nhGVrNRrSud4ryklEnxfkxkxlZlT4mjQ==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.10.tgz", + "integrity": "sha512-VCeZAyq4uPCJukKInaSiD4i/GgxgcU4jFlLFQtoYNmaBS4xbPOymL19forRIihiV0dwNEa2L694vRTAPMBxIfw==", "dependencies": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/build-webpack": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@babel/core": "7.16.12", - "@babel/generator": "7.16.8", - "@babel/helper-annotate-as-pure": "7.16.7", - "@babel/plugin-proposal-async-generator-functions": "7.16.8", - "@babel/plugin-transform-async-to-generator": "7.16.8", - "@babel/plugin-transform-runtime": "7.16.10", - "@babel/preset-env": "7.16.11", - "@babel/runtime": "7.16.7", - "@babel/template": "7.16.7", - "@discoveryjs/json-ext": "0.5.6", - "@ngtools/webpack": "13.3.7", - "ansi-colors": "4.1.1", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/build-webpack": "0.1402.10", + "@angular-devkit/core": "14.2.10", + "@babel/core": "7.18.10", + "@babel/generator": "7.18.12", + "@babel/helper-annotate-as-pure": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.18.10", + "@babel/plugin-transform-async-to-generator": "7.18.6", + "@babel/plugin-transform-runtime": "7.18.10", + "@babel/preset-env": "7.18.10", + "@babel/runtime": "7.18.9", + "@babel/template": "7.18.10", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "14.2.10", + "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.9.1", - "cacache": "15.3.0", - "circular-dependency-plugin": "5.2.2", - "copy-webpack-plugin": "10.2.1", - "core-js": "3.20.3", + "cacache": "16.1.2", + "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", - "css-loader": "6.5.1", - "esbuild-wasm": "0.14.22", - "glob": "7.2.0", - "https-proxy-agent": "5.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", + "css-loader": "6.7.1", + "esbuild-wasm": "0.15.5", + "glob": "8.0.3", + "https-proxy-agent": "5.0.1", + "inquirer": "8.2.4", + "jsonc-parser": "3.1.0", "karma-source-map-support": "1.4.0", - "less": "4.1.2", - "less-loader": "10.2.0", + "less": "4.1.3", + "less-loader": "11.0.0", "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.0", - "mini-css-extract-plugin": "2.5.3", - "minimatch": "3.0.5", + "loader-utils": "3.2.1", + "mini-css-extract-plugin": "2.6.1", + "minimatch": "5.1.0", "open": "8.4.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", - "postcss": "8.4.5", - "postcss-import": "14.0.2", - "postcss-loader": "6.2.1", - "postcss-preset-env": "7.2.3", + "postcss": "8.4.16", + "postcss-import": "15.0.0", + "postcss-loader": "7.0.1", + "postcss-preset-env": "7.8.0", "regenerator-runtime": "0.13.9", "resolve-url-loader": "5.0.0", "rxjs": "6.6.7", - "sass": "1.49.9", - "sass-loader": "12.4.0", - "semver": "7.3.5", - "source-map-loader": "3.0.1", + "sass": "1.54.4", + "sass-loader": "13.0.2", + "semver": "7.3.7", + "source-map-loader": "4.0.0", "source-map-support": "0.5.21", - "stylus": "0.56.0", - "stylus-loader": "6.2.0", - "terser": "5.11.0", + "stylus": "0.59.0", + "stylus-loader": "7.0.0", + "terser": "5.14.2", "text-table": "0.2.0", "tree-kill": "1.2.2", - "tslib": "2.3.1", - "webpack": "5.70.0", - "webpack-dev-middleware": "5.3.0", - "webpack-dev-server": "4.7.3", + "tslib": "2.4.0", + "webpack": "5.74.0", + "webpack-dev-middleware": "5.3.3", + "webpack-dev-server": "4.11.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.14.22" + "esbuild": "0.15.5" }, "peerDependencies": { - "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", - "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", - "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", + "@angular/compiler-cli": "^14.0.0", + "@angular/localize": "^14.0.0", + "@angular/service-worker": "^14.0.0", "karma": "^6.3.0", - "ng-packagr": "^13.0.0", + "ng-packagr": "^14.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.4.3 <4.7" + "typescript": ">=4.6.2 <4.9" }, "peerDependenciesMeta": { "@angular/localize": { @@ -220,29 +226,168 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", - "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", + "dependencies": { + "@angular-devkit/core": "14.2.10", + "rxjs": "6.6.7" + }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^13.0.0", - "typescript": ">=4.4.3 <4.7", - "webpack": "^5.30.0" + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } } }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/@angular-devkit/build-angular/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==" + }, "node_modules/@angular-devkit/build-angular/node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "engines": { "node": ">= 12.13.0" } }, + "node_modules/@angular-devkit/build-angular/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -259,21 +404,38 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1303.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.7.tgz", - "integrity": "sha512-5vF399cPdwuCbzbxS4yNGgChdAzEM0/By21P0uiqBcIe/Zxuz3IUPapjvcyhkAo5OTu+d7smY9eusLHqoq1WFQ==", + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.10.tgz", + "integrity": "sha512-h+2MaSY7QSvoJ3R+Hvin21jVCfPGOTLdASIUk4Jmq6J3y5BSku3KSSaV8dWoBOBkFCwQyPQMRjiHoHKLpC1K7g==", "dependencies": { - "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/architect": "0.1402.10", "rxjs": "6.6.7" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -282,6 +444,86 @@ "webpack-dev-server": "^4.0.0" } }, + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", + "dependencies": { + "@angular-devkit/core": "14.2.10", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/@angular-devkit/build-webpack/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==" + }, "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -293,6 +535,14 @@ "npm": ">=2.0.0" } }, + "node_modules/@angular-devkit/build-webpack/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -302,6 +552,7 @@ "version": "13.3.7", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", + "dev": true, "dependencies": { "ajv": "8.9.0", "ajv-formats": "2.1.1", @@ -328,6 +579,7 @@ "version": "8.9.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -343,6 +595,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, "dependencies": { "ajv": "^8.0.0" }, @@ -358,12 +611,14 @@ "node_modules/@angular-devkit/core/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/@angular-devkit/core/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, "dependencies": { "tslib": "^1.9.0" }, @@ -374,7 +629,8 @@ "node_modules/@angular-devkit/core/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@angular-devkit/schematics": { "version": "12.2.17", @@ -452,90 +708,200 @@ "optional": true }, "node_modules/@angular/animations": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.10.tgz", - "integrity": "sha512-V/0h3xepWPBRjWroFXYrNIE3iZPREjv0hiB3gskF/2KLlx5jvpUWlaBx0rEYRa8XXIPJyAaKBGwWSBnT/Z88TQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.12.tgz", + "integrity": "sha512-gwdnFZkvVUr+enUNfhfCGRGGqNHn1+vTA81apLfHYhJxgjiLUtETc4KTOrQevtDm022pEd+LSrvr8r+7ag+jkw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "13.3.10" + "@angular/core": "14.2.12" } }, "node_modules/@angular/cli": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.7.tgz", - "integrity": "sha512-XIp0w0YOwhHp4Je3npHAs0W4rjHvFnG2w/lDO2M/UNp5634S4PRMFmVVMt6DQBj1cbffYVKFqffqesyCqNuvAQ==", - "hasInstallScript": true, + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.10.tgz", + "integrity": "sha512-gX9sAKOwq4lKdPWeABB7TzKDHdjQXvkUU8NmPJA6mEAVXvm3lhQtFvHDalZstwK8au2LY0LaXTcEtcKYOt3AXQ==", "dependencies": { - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "@schematics/angular": "13.3.7", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", + "@schematics/angular": "14.2.10", "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.3.3", - "ini": "2.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", - "npm-package-arg": "8.1.5", - "npm-pick-manifest": "6.1.1", + "ansi-colors": "4.1.3", + "debug": "4.3.4", + "ini": "3.0.0", + "inquirer": "8.2.4", + "jsonc-parser": "3.1.0", + "npm-package-arg": "9.1.0", + "npm-pick-manifest": "7.0.1", "open": "8.4.0", "ora": "5.4.1", - "pacote": "12.0.3", - "resolve": "1.22.0", - "semver": "7.3.5", + "pacote": "13.6.2", + "resolve": "1.22.1", + "semver": "7.3.7", "symbol-observable": "4.0.0", - "uuid": "8.3.2" + "uuid": "8.3.2", + "yargs": "17.5.1" }, "bin": { "ng": "bin/ng.js" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.7.tgz", - "integrity": "sha512-6TKpFMwiiXmPhiVdbkSJrkBXj8n7SVVhsHl2GodDLVTb8OT3fxYIB9EU8Il07AMfDcjpydOcJduCFPOsQYd7BA==", + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", "dependencies": { - "@angular-devkit/core": "13.3.7", - "jsonc-parser": "3.0.0", - "magic-string": "0.25.7", + "@angular-devkit/core": "14.2.10", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.10.tgz", + "integrity": "sha512-MMp31KpJTwKHisXOq+6VOXYApq97hZxFaFmZk396X5aIFTCELUwjcezQDk+u2nEs5iK/COUfnN3plGcfJxYhQA==", + "dependencies": { + "@angular-devkit/core": "14.2.10", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", "ora": "5.4.1", "rxjs": "6.6.7" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/cli/node_modules/@schematics/angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", - "integrity": "sha512-OAny1e/yliku52xG7vfWs1hNYSgCNTPpMv9fS8zz9eF5/GrKv28WFSy20mUXqLZ91VsbGSs6X0mI6pdNnpVtJA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.10.tgz", + "integrity": "sha512-YFTc/9QJdx422XcApizEcVLKoyknu8b9zHIlAepZCu7WkV8GPT0hvVEHQ7KBWys5aQ7pPZMT0JpZLeAz0F2xYQ==", "dependencies": { - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "jsonc-parser": "3.0.0" + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", + "jsonc-parser": "3.1.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular/cli/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@angular/cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@angular/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/@angular/cli/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -548,12 +914,25 @@ } } }, - "node_modules/@angular/cli/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "node_modules/@angular/cli/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/@angular/cli/node_modules/jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==" + }, + "node_modules/@angular/cli/node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/@angular/cli/node_modules/rxjs": { @@ -567,41 +946,120 @@ "npm": ">=2.0.0" } }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, "node_modules/@angular/cli/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/@angular/cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@angular/cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/@angular/common": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.10.tgz", - "integrity": "sha512-KWw91QzmCDZ6uq1Z58v7vQQ57Ux7A2UkPdIBOyvpOgtQPTvlvKsePkUVCC+dum+W9mOy4kq2falO5T7Gi7SJgw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.12.tgz", + "integrity": "sha512-oZunh9wfInFWhNO1P8uoEs/o4u8kerKMhw8GruywKm1TV7gHDP2Fi5WHGjFqq3XYptgBTPCTSEfyLX6Cwq1PUw==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "13.3.10", + "@angular/core": "14.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", - "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.12.tgz", + "integrity": "sha512-u2MH9+NRwbbFDRNiPWPexed9CnCq9+pGHLuyACSP2uR6Ik68cE6cayeZbIeoEV5vWpda/XsLmJgPJysw7dAZLQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "14.2.12" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } } }, "node_modules/@angular/compiler-cli": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.10.tgz", - "integrity": "sha512-cGFQyUOxOLVnehczdP4L7KXbKQTe/aQgbXmacQYgqcP/AnpJs7QfZbw1/k1wJtXrhzbGBh3JSWnpme74bnF3dQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.12.tgz", + "integrity": "sha512-9Gkb9KFkaQPz8XaS8ZwwTioRZ4ywykdAWyceICEi78/Y9ConYrTX2SbFogzI2dPUZU8a04tMlbqTSmHjVbJftQ==", "dependencies": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -620,61 +1078,11 @@ "ngcc": "bundles/ngcc/main-ngcc.js" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "13.3.10", - "typescript": ">=4.4.2 <4.7" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" + "@angular/compiler": "14.2.12", + "typescript": ">=4.6.2 <4.9" } }, "node_modules/@angular/compiler-cli/node_modules/ansi-styles": { @@ -728,14 +1136,6 @@ "node": ">=12" } }, - "node_modules/@angular/compiler-cli/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@angular/compiler-cli/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -786,53 +1186,53 @@ } }, "node_modules/@angular/core": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.10.tgz", - "integrity": "sha512-7jH1a5wZdE6Ki2Dow7s6v1/5SfUcXsjAu3n523QSDlM078QG0p95npcqPseO9mNftG9MfRqBE7sl1Nb+ZK7eBg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.12.tgz", + "integrity": "sha512-sGQxU5u4uawwvJa6jOTmGoisJiQ5HIN/RoBw99CmoqZIVyUSg9IRJJC1KVdH8gbpWBNLkElZv21lwJTL/msWyg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4" + "zone.js": "~0.11.4 || ~0.12.0" } }, "node_modules/@angular/forms": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.10.tgz", - "integrity": "sha512-2cREi8nvCdspYHk6KJ5xjIgq8Dgh/kfwPIVjpLQBZFNC03Q6GvOLVoVm8ye6ToOpQFjvjpjndqU93JXSLMANgA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.12.tgz", + "integrity": "sha512-7abYlGIT2JnAtutQUlH3fQS6QEpbfftgvsVcZJCyvX0rXL3u2w2vUQkDHJH4YJJp3AHFVCH4/l7R4VcaPnrwvA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10", + "@angular/common": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-13.3.10.tgz", - "integrity": "sha512-TQwVIEFTWOlX9Jy2PhOT52Eo3ApNWSkjQavAuIU4uNQRCyoKMTywJ6MlQiQlMoWPH77Yn5EZyCwRoWFVWg3q0w==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.12.tgz", + "integrity": "sha512-YmW6simyEVmpDmbYVUhZ2IxSP6pmsWrV120rB9Y21/BeM39WIXA4NCNirVWlAd/KAKY9O7Sbn1nXI6rSDfhopQ==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" } }, "node_modules/@angular/localize": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-13.3.10.tgz", - "integrity": "sha512-DNSOLJd8SkYHWKWyBm/piYnjurYRsgXTmWoVXTrfEuALEHxz3cwnVUPvoiWwJVMKklFr76D61pDY4mz5muPxog==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.12.tgz", + "integrity": "sha512-6TTnuvubvYL1LDIJhDfd7ygxTaj0ShTILCDXT4URBhZKQbQ3HAorDqsc6SXqZVGCHdqF0hGTaeN/7zVvgP9kzA==", "dependencies": { - "@babel/core": "7.17.2", - "glob": "7.2.0", + "@babel/core": "7.18.9", + "glob": "8.0.3", "yargs": "^17.2.1" }, "bin": { @@ -841,53 +1241,11 @@ "localize-translate": "tools/bundles/src/translate/cli.js" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "13.3.10", - "@angular/compiler-cli": "13.3.10" - } - }, - "node_modules/@angular/localize/node_modules/@babel/core": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", - "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", - "dependencies": { - "@ampproject/remapping": "^2.0.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/localize/node_modules/@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" + "@angular/compiler": "14.2.12", + "@angular/compiler-cli": "14.2.12" } }, "node_modules/@angular/localize/node_modules/ansi-styles": { @@ -904,6 +1262,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@angular/localize/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@angular/localize/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -930,20 +1296,33 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@angular/localize/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "node_modules/@angular/localize/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@angular/localize/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@angular/localize/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, "node_modules/@angular/localize/node_modules/wrap-ansi": { @@ -996,19 +1375,19 @@ } }, "node_modules/@angular/platform-browser": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.10.tgz", - "integrity": "sha512-zi0FrA8zZRiHLBfKlfIxikG06wMF2KcSp6oqrIblrc1VrHgPRVRABz8vryH84lasDssjYdIS9AvbQnCCdgCzJA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.12.tgz", + "integrity": "sha512-vOarWym8ucl1gjYWCzdwyBha+MTvL381mvTTUu8aUx6nVhHFjv4bvpjlZnZgojecqUPyxOwmPLLHvCZPJVHZYg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/animations": "13.3.10", - "@angular/common": "13.3.10", - "@angular/core": "13.3.10" + "@angular/animations": "14.2.12", + "@angular/common": "14.2.12", + "@angular/core": "14.2.12" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1017,57 +1396,57 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.10.tgz", - "integrity": "sha512-hygsEjTaS+VDUrBZZiRJFo5J7AHCS/EcAc1IWvb69EnVqA9RwqM4hWbuy3y/cmLEeHLLmRldIlS6xRPt8fTNQg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.12.tgz", + "integrity": "sha512-oZhNJeaBmgw8+KBSYpKz2RYqEDyETC+HJXH8dwIFcP6BqqwL2NE70FdSR7EnOa5c41MEtTmMCGhrJSFR60x5/w==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/compiler": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10" + "@angular/common": "14.2.12", + "@angular/compiler": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12" } }, "node_modules/@angular/platform-server": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-13.3.10.tgz", - "integrity": "sha512-KekOeqzdL9tL9h7bDuYoz1utnd6p6y6qAvAvCGm2Qa1fX3f/NQQ12pngtVqhvIgB5PpROCNypla/ejcBmNsQ2g==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-14.2.12.tgz", + "integrity": "sha512-RDxNh47Rp0EYrimbzviqhagdbL58Z3S88PDYybYbshFwV+MgWsvWasK/WntTMP/JtRP4FBU0Uiwxy7mgVdxb0g==", "dependencies": { "domino": "^2.1.2", "tslib": "^2.3.0", "xhr2": "^0.2.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/animations": "13.3.10", - "@angular/common": "13.3.10", - "@angular/compiler": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10", - "@angular/platform-browser-dynamic": "13.3.10" + "@angular/animations": "14.2.12", + "@angular/common": "14.2.12", + "@angular/compiler": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12", + "@angular/platform-browser-dynamic": "14.2.12" } }, "node_modules/@angular/router": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.10.tgz", - "integrity": "sha512-neGaeiHravXlCbNbyGJecwQyu/91Pj/E9/ohVFzBBE4V9BrNx9v7Ntc4ugqgpnrV2wtonPP7TQDqXxrPk4QVfg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.12.tgz", + "integrity": "sha512-r5tVus5RJDNc4U2v0jMtjPiAS1xDsVsJ70lS313DgZmBDHIVZP1cWIehdxwgNlGwQQtAA36eG7toBwqUU3gb/A==", "dependencies": { "tslib": "^2.3.0" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10", + "@angular/common": "14.2.12", + "@angular/core": "14.2.12", + "@angular/platform-browser": "14.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1077,44 +1456,44 @@ "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==" }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -1132,66 +1511,63 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "engines": { @@ -1210,17 +1586,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", + "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1230,12 +1606,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" }, "engines": { "node": ">=6.9.0" @@ -1245,14 +1621,12 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -1271,219 +1645,228 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dependencies": { - "@babel/types": "^7.16.7" - }, + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -1492,9 +1875,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1503,11 +1886,11 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1517,13 +1900,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1533,12 +1916,13 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1549,12 +1933,12 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1564,12 +1948,12 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1580,11 +1964,11 @@ } }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1595,11 +1979,11 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1610,11 +1994,11 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1625,11 +2009,11 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1640,11 +2024,11 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1655,11 +2039,11 @@ } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1670,15 +2054,15 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.20.1" }, "engines": { "node": ">=6.9.0" @@ -1688,11 +2072,11 @@ } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1703,12 +2087,12 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1719,12 +2103,12 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1734,13 +2118,13 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1751,12 +2135,12 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=4" @@ -1823,6 +2207,20 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -1929,11 +2327,11 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1943,13 +2341,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1959,11 +2357,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1973,11 +2371,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", + "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1987,17 +2385,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, "engines": { @@ -2008,11 +2407,11 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2022,11 +2421,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -2036,12 +2435,12 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2051,11 +2450,11 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2065,12 +2464,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2080,11 +2479,11 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2094,13 +2493,13 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2110,11 +2509,11 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2124,11 +2523,11 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2138,13 +2537,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -2154,14 +2552,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -2171,15 +2568,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -2189,12 +2585,12 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2204,11 +2600,12 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -2218,11 +2615,11 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2232,12 +2629,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2247,11 +2644,11 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", + "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -2261,11 +2658,11 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2275,11 +2672,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" }, "engines": { "node": ">=6.9.0" @@ -2289,11 +2687,11 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2303,15 +2701,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", + "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "semver": "^6.3.0" }, "engines": { @@ -2330,11 +2728,11 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2344,12 +2742,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2359,11 +2757,11 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2373,11 +2771,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2387,11 +2785,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2401,11 +2799,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2415,12 +2813,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2430,36 +2828,37 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -2469,44 +2868,44 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, "engines": { @@ -2540,9 +2939,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -2551,31 +2950,31 @@ } }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2584,32 +2983,38 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2638,10 +3043,177 @@ "node": ">=12" } }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.2.0.tgz", - "integrity": "sha512-YLpFPK5OaLIRKZhUfnrZPT9s9cmtqltIOg7W6jPcxmiDpnZ4lk+odfufZttOAgcg6IHWvNLgcITSLpJxIQB/qQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2652,6 +3224,91 @@ "postcss": "^8.3" } }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, "node_modules/@cypress/request": { "version": "2.88.10", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", @@ -2844,13 +3501,28 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "engines": { "node": ">=10.0.0" } }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", + "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -2973,9 +3645,9 @@ } }, "node_modules/@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "node_modules/@goto-bus-stop/common-shake": { "version": "2.4.0", @@ -3110,6 +3782,28 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.11", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", @@ -3124,6 +3818,11 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, "node_modules/@mempool/mempool.js": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@mempool/mempool.js/-/mempool.js-2.3.0.tgz", @@ -3176,6 +3875,21 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@ngtools/webpack": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", + "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^14.0.0", + "typescript": ">=4.6.2 <4.9", + "webpack": "^5.54.0" + } + }, "node_modules/@nguniversal/builders": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@nguniversal/builders/-/builders-13.1.1.tgz", @@ -3201,6 +3915,273 @@ "@angular-devkit/build-angular": "^13.3.4" } }, + "node_modules/@nguniversal/builders/node_modules/@angular/common": { + "version": "13.3.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.12.tgz", + "integrity": "sha512-Nk4zNKfda92aFe+cucHRv2keyryR7C1ZnsurwZW9WZSobpY3z2tTT81F+yy35lGoMt5BDBAIpfh1b4j9Ue/vMg==", + "dev": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.12", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@nguniversal/builders/node_modules/@angular/common/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true, + "peer": true + }, + "node_modules/@nguniversal/builders/node_modules/@angular/core": { + "version": "13.3.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.12.tgz", + "integrity": "sha512-jx0YC+NbPMbxGr5bXECkCEQv2RdVxR8AJNnabkPk8ZjwCpDzROrbELwwS1kunrZUhffcD15IhWGBvf1EGHAYDw==", + "dev": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.11.4" + } + }, + "node_modules/@nguniversal/builders/node_modules/@angular/core/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true, + "peer": true + }, + "node_modules/@nguniversal/builders/node_modules/@nguniversal/common": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-13.1.1.tgz", + "integrity": "sha512-DoAPA7+kUz+qMgCTUtRPFcMGY0zz8OSkOTZnxqO5sUYntD6mCEQImHU0WF4ud88j71o0Hv+AISJD1evAAANCdw==", + "dev": true, + "dependencies": { + "critters": "0.0.16", + "jsdom": "19.0.0", + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "^13.3.4", + "@angular/core": "^13.3.4" + } + }, + "node_modules/@nguniversal/builders/node_modules/@nguniversal/common/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + }, + "node_modules/@nguniversal/builders/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nguniversal/builders/node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@nguniversal/builders/node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/@nguniversal/builders/node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/data-urls/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/@nguniversal/builders/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nguniversal/builders/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nguniversal/builders/node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nguniversal/builders/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@nguniversal/builders/node_modules/jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, "node_modules/@nguniversal/builders/node_modules/piscina": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", @@ -3227,13 +4208,138 @@ "npm": ">=2.0.0" } }, + "node_modules/@nguniversal/builders/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@nguniversal/builders/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@nguniversal/builders/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/@nguniversal/common": { + "node_modules/@nguniversal/builders/node_modules/w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/builders/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@nguniversal/builders/node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nguniversal/express-engine": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.1.tgz", + "integrity": "sha512-NdiBP0IRbPrNYEMLy3a6os2mNgRNE84tsMn+mV2uF4wv1JNs3YyoXcucWvhgHdODbDtc6z4CGn8t/6KagRqmvA==", + "dependencies": { + "@nguniversal/common": "13.1.1", + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "^13.3.4", + "@angular/core": "^13.3.4", + "@angular/platform-server": "^13.3.4", + "express": "^4.15.2" + } + }, + "node_modules/@nguniversal/express-engine/node_modules/@nguniversal/common": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-13.1.1.tgz", "integrity": "sha512-DoAPA7+kUz+qMgCTUtRPFcMGY0zz8OSkOTZnxqO5sUYntD6mCEQImHU0WF4ud88j71o0Hv+AISJD1evAAANCdw==", @@ -3250,7 +4356,7 @@ "@angular/core": "^13.3.4" } }, - "node_modules/@nguniversal/common/node_modules/@tootallnate/once": { + "node_modules/@nguniversal/express-engine/node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", @@ -3258,10 +4364,10 @@ "node": ">= 10" } }, - "node_modules/@nguniversal/common/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "node_modules/@nguniversal/express-engine/node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "bin": { "acorn": "bin/acorn" }, @@ -3269,12 +4375,12 @@ "node": ">=0.4.0" } }, - "node_modules/@nguniversal/common/node_modules/cssom": { + "node_modules/@nguniversal/express-engine/node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" }, - "node_modules/@nguniversal/common/node_modules/data-urls": { + "node_modules/@nguniversal/express-engine/node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", @@ -3287,7 +4393,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/data-urls/node_modules/whatwg-url": { + "node_modules/@nguniversal/express-engine/node_modules/data-urls/node_modules/whatwg-url": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", @@ -3299,7 +4405,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/domexception": { + "node_modules/@nguniversal/express-engine/node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", @@ -3310,7 +4416,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/escodegen": { + "node_modules/@nguniversal/express-engine/node_modules/escodegen": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", @@ -3331,7 +4437,7 @@ "source-map": "~0.6.1" } }, - "node_modules/@nguniversal/common/node_modules/estraverse": { + "node_modules/@nguniversal/express-engine/node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -3339,7 +4445,7 @@ "node": ">=4.0" } }, - "node_modules/@nguniversal/common/node_modules/form-data": { + "node_modules/@nguniversal/express-engine/node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", @@ -3352,7 +4458,7 @@ "node": ">= 6" } }, - "node_modules/@nguniversal/common/node_modules/html-encoding-sniffer": { + "node_modules/@nguniversal/express-engine/node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", @@ -3363,7 +4469,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/http-proxy-agent": { + "node_modules/@nguniversal/express-engine/node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", @@ -3376,7 +4482,7 @@ "node": ">= 6" } }, - "node_modules/@nguniversal/common/node_modules/iconv-lite": { + "node_modules/@nguniversal/express-engine/node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", @@ -3387,7 +4493,7 @@ "node": ">=0.10.0" } }, - "node_modules/@nguniversal/common/node_modules/jsdom": { + "node_modules/@nguniversal/express-engine/node_modules/jsdom": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", @@ -3432,7 +4538,7 @@ } } }, - "node_modules/@nguniversal/common/node_modules/source-map": { + "node_modules/@nguniversal/express-engine/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", @@ -3441,7 +4547,7 @@ "node": ">=0.10.0" } }, - "node_modules/@nguniversal/common/node_modules/tr46": { + "node_modules/@nguniversal/express-engine/node_modules/tr46": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", @@ -3452,7 +4558,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/w3c-xmlserializer": { + "node_modules/@nguniversal/express-engine/node_modules/w3c-xmlserializer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", @@ -3463,7 +4569,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/webidl-conversions": { + "node_modules/@nguniversal/express-engine/node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", @@ -3471,7 +4577,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/whatwg-encoding": { + "node_modules/@nguniversal/express-engine/node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", @@ -3482,7 +4588,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/whatwg-mimetype": { + "node_modules/@nguniversal/express-engine/node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", @@ -3490,7 +4596,7 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/whatwg-url": { + "node_modules/@nguniversal/express-engine/node_modules/whatwg-url": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", @@ -3502,10 +4608,10 @@ "node": ">=12" } }, - "node_modules/@nguniversal/common/node_modules/ws": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", - "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", + "node_modules/@nguniversal/express-engine/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -3522,7 +4628,7 @@ } } }, - "node_modules/@nguniversal/common/node_modules/xml-name-validator": { + "node_modules/@nguniversal/express-engine/node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", @@ -3530,24 +4636,6 @@ "node": ">=12" } }, - "node_modules/@nguniversal/express-engine": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.1.tgz", - "integrity": "sha512-NdiBP0IRbPrNYEMLy3a6os2mNgRNE84tsMn+mV2uF4wv1JNs3YyoXcucWvhgHdODbDtc6z4CGn8t/6KagRqmvA==", - "dependencies": { - "@nguniversal/common": "13.1.1", - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "^13.3.4", - "@angular/core": "^13.3.4", - "@angular/platform-server": "^13.3.4", - "express": "^4.15.2" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3581,27 +4669,42 @@ } }, "node_modules/@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dependencies": { - "@gar/promisify": "^1.0.1", + "@gar/promisify": "^1.1.3", "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", + "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "lru-cache": "^7.4.4", "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "engines": { + "node": ">=12" } }, "node_modules/@npmcli/git/node_modules/mkdirp": { @@ -3615,20 +4718,6 @@ "node": ">=10" } }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", @@ -3645,15 +4734,16 @@ } }, "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@npmcli/move-file/node_modules/mkdirp": { @@ -3668,27 +4758,37 @@ } }, "node_modules/@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz", + "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } }, "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz", + "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==", "dependencies": { "infer-owner": "^1.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@npmcli/run-script": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", - "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", + "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", "dependencies": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@scarf/scarf": { @@ -3847,6 +4947,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, "engines": { "node": ">= 6" } @@ -4031,9 +5132,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dependencies": { "@types/mime": "*", "@types/node": "*" @@ -4709,12 +5810,12 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -4886,9 +5987,9 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "engines": { "node": ">=6" } @@ -4975,15 +6076,15 @@ "optional": true }, "node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/are-we-there-yet/node_modules/readable-stream": { @@ -5033,17 +6134,6 @@ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" }, - "node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -5122,6 +6212,7 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, "dependencies": { "lodash": "^4.17.14" } @@ -5149,25 +6240,24 @@ "node": ">= 4.0.0" } }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -5178,10 +6268,6 @@ "engines": { "node": "^10 || ^12 || >=14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.1.0" } @@ -5242,14 +6328,6 @@ "webpack": ">=2" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -5266,12 +6344,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "peerDependencies": { @@ -5287,11 +6365,11 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/helper-define-polyfill-provider": "^0.3.2", "core-js-compat": "^3.21.0" }, "peerDependencies": { @@ -5299,11 +6377,11 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -5413,23 +6491,26 @@ "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { - "bytes": "3.1.0", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/debug": { @@ -5440,47 +6521,65 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/body-parser/node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "node_modules/body-parser/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "ee-first": "1.1.1" }, "engines": { "node": ">= 0.8" } }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/bonjour/node_modules/array-flatten": { + "node_modules/bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/bonjour-service/node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" @@ -6062,25 +7161,30 @@ } }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/bs-recipes": { @@ -6132,11 +7236,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -6148,9 +7247,12 @@ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dependencies": { + "semver": "^7.0.0" + } }, "node_modules/bundle-collapser": { "version": "1.4.0", @@ -6169,39 +7271,84 @@ } }, "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } }, "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz", + "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==", "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", "unique-filename": "^1.1.1" }, "engines": { - "node": ">= 10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/cacache/node_modules/mkdirp": { @@ -6268,13 +7415,19 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "version": "1.0.30001434", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz", + "integrity": "sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/caseless": { "version": "0.12.0", @@ -6336,9 +7489,15 @@ } }, "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6386,17 +7545,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/circular-dependency-plugin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", - "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.1" - } - }, "node_modules/claygl": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/claygl/-/claygl-1.3.0.tgz", @@ -6523,7 +7671,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/color-support": { "version": "1.1.3", @@ -6672,7 +7820,7 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -6712,6 +7860,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, "engines": { "node": ">=0.8" } @@ -6739,7 +7888,7 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "node_modules/constants-browserify": { "version": "1.0.0", @@ -6747,16 +7896,35 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dependencies": { - "safe-buffer": "5.1.2" + "safe-buffer": "5.2.1" }, "engines": { "node": ">= 0.6" } }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -6774,9 +7942,9 @@ } }, "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -6787,27 +7955,30 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "node_modules/copy-anything": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", - "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dependencies": { - "is-what": "^3.12.0" + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, "node_modules/copy-webpack-plugin": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", - "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dependencies": { - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", - "globby": "^12.0.2", + "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "engines": { - "node": ">= 12.20.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -6818,9 +7989,9 @@ } }, "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -6893,38 +8064,18 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/core-js": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", - "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" + "browserslist": "^4.21.4" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -6944,9 +8095,9 @@ } }, "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -7101,20 +8252,6 @@ "node": ">= 8" } }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -7136,16 +8273,6 @@ "node": "*" } }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, "node_modules/css-blank-pseudo": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", @@ -7181,17 +8308,17 @@ } }, "node_modules/css-loader": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", - "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.2.15", + "postcss": "^8.4.7", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", + "postcss-value-parser": "^4.2.0", "semver": "^7.3.5" }, "engines": { @@ -7245,18 +8372,14 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cssdb": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", - "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.1.0.tgz", + "integrity": "sha512-Sd99PrFgx28ez4GHu8yoQIufc/70h9oYowDf4EjeIKi8mac9whxRjhM3IaMr6EllP6KKKWtJrMfN6C7T9tIWvQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } }, "node_modules/cssesc": { "version": "3.0.0", @@ -7631,14 +8754,6 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -7720,62 +8835,6 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/del/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -7792,7 +8851,7 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "node_modules/depd": { "version": "1.1.2", @@ -7836,7 +8895,8 @@ "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true }, "node_modules/detect-node": { "version": "2.1.0", @@ -7927,23 +8987,17 @@ "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" }, "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dependencies": { - "buffer-indexof": "^1.0.0" + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, "node_modules/doctrine": { @@ -8136,9 +9190,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/electron-to-chromium": { - "version": "1.4.41", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.41.tgz", - "integrity": "sha512-VQEXEJc+8rJIva85H8EPtB5Ux9g8TzkNGBanqphM9ZWMZ34elueKJ+5g+BPhz3Lk8gkujfQRcIZ+fpA0btUIuw==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -8312,9 +9366,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -8508,9 +9562,9 @@ } }, "node_modules/esbuild": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", - "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", + "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", "hasInstallScript": true, "optional": true, "bin": { @@ -8520,31 +9574,138 @@ "node": ">=12" }, "optionalDependencies": { - "esbuild-android-arm64": "0.14.22", - "esbuild-darwin-64": "0.14.22", - "esbuild-darwin-arm64": "0.14.22", - "esbuild-freebsd-64": "0.14.22", - "esbuild-freebsd-arm64": "0.14.22", - "esbuild-linux-32": "0.14.22", - "esbuild-linux-64": "0.14.22", - "esbuild-linux-arm": "0.14.22", - "esbuild-linux-arm64": "0.14.22", - "esbuild-linux-mips64le": "0.14.22", - "esbuild-linux-ppc64le": "0.14.22", - "esbuild-linux-riscv64": "0.14.22", - "esbuild-linux-s390x": "0.14.22", - "esbuild-netbsd-64": "0.14.22", - "esbuild-openbsd-64": "0.14.22", - "esbuild-sunos-64": "0.14.22", - "esbuild-windows-32": "0.14.22", - "esbuild-windows-64": "0.14.22", - "esbuild-windows-arm64": "0.14.22" + "@esbuild/linux-loong64": "0.15.5", + "esbuild-android-64": "0.15.5", + "esbuild-android-arm64": "0.15.5", + "esbuild-darwin-64": "0.15.5", + "esbuild-darwin-arm64": "0.15.5", + "esbuild-freebsd-64": "0.15.5", + "esbuild-freebsd-arm64": "0.15.5", + "esbuild-linux-32": "0.15.5", + "esbuild-linux-64": "0.15.5", + "esbuild-linux-arm": "0.15.5", + "esbuild-linux-arm64": "0.15.5", + "esbuild-linux-mips64le": "0.15.5", + "esbuild-linux-ppc64le": "0.15.5", + "esbuild-linux-riscv64": "0.15.5", + "esbuild-linux-s390x": "0.15.5", + "esbuild-netbsd-64": "0.15.5", + "esbuild-openbsd-64": "0.15.5", + "esbuild-sunos-64": "0.15.5", + "esbuild-windows-32": "0.15.5", + "esbuild-windows-64": "0.15.5", + "esbuild-windows-arm64": "0.15.5" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", + "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", + "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", + "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", + "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", + "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", + "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", + "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, "node_modules/esbuild-linux-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", - "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", + "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", "cpu": [ "x64" ], @@ -8556,10 +9717,145 @@ "node": ">=12" } }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", + "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", + "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", + "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", + "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", + "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", + "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", + "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", + "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", + "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/esbuild-wasm": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", - "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz", + "integrity": "sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A==", "bin": { "esbuild": "bin/esbuild" }, @@ -8567,6 +9863,51 @@ "node": ">=12" } }, + "node_modules/esbuild-windows-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", + "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", + "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", + "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -9194,47 +10535,39 @@ "node": ">=4" } }, - "node_modules/executable/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -9251,17 +10584,34 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/express/node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -9282,58 +10632,102 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, "engines": { - "node": ">=0.6" + "node": ">= 0.8" } }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/express/node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/express/node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/express/node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", @@ -9435,9 +10829,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.10.tgz", - "integrity": "sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -9666,17 +11060,17 @@ } }, "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "engines": { "node": ">= 0.6" } }, "node_modules/fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "engines": { "node": "*" }, @@ -9762,6 +11156,19 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -9774,11 +11181,10 @@ "dev": true }, "node_modules/gauge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.2.tgz", - "integrity": "sha512-aSPRm2CvA9R8QyU5eXMFPd+cYkyxLsXHd2l5/FOH2V/eml//M04G6KZOmTap07O1PvEwNcl2NndyLfK8g3QrKA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dependencies": { - "ansi-regex": "^5.0.1", "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", @@ -9789,7 +11195,7 @@ "wide-align": "^1.1.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/gensync": { @@ -9946,14 +11352,13 @@ } }, "node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", "dependencies": { - "array-union": "^3.0.1", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^4.0.0" }, @@ -10035,7 +11440,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } @@ -10054,7 +11459,7 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "node_modules/hash-base": { "version": "3.1.0", @@ -10136,20 +11541,28 @@ } }, "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", + "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^7.5.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "engines": { + "node": ">=12" } }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -10190,32 +11603,43 @@ "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" }, "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "node_modules/http-errors/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } }, "node_modules/http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, "node_modules/http-proxy": { "version": "1.18.1", @@ -10234,6 +11658,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -10272,9 +11697,9 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { "agent-base": "6", "debug": "4" @@ -10295,7 +11720,7 @@ "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dependencies": { "ms": "^2.0.0" } @@ -10350,11 +11775,30 @@ } }, "node_modules/ignore-walk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", - "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", "dependencies": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" @@ -10363,7 +11807,7 @@ "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "optional": true, "bin": { "image-size": "bin/image-size.js" @@ -10439,6 +11883,14 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/ini": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz", + "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", @@ -10456,9 +11908,9 @@ } }, "node_modules/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -10470,13 +11922,14 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" } }, "node_modules/inquirer/node_modules/ansi-styles": { @@ -10543,6 +11996,22 @@ "node": ">=8" } }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/insert-module-globals": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", @@ -10564,16 +12033,16 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "engines": { - "node": ">= 0.10" + "node": ">= 10" } }, "node_modules/is-arguments": { @@ -10593,7 +12062,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.1", @@ -10657,9 +12126,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -10757,7 +12226,7 @@ "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, "node_modules/is-negative-zero": { "version": "2.0.1", @@ -10798,18 +12267,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "optional": true, "engines": { "node": ">=8" } @@ -11212,11 +12674,6 @@ "node": ">=4" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -11259,7 +12716,8 @@ "node_modules/jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "optional": true }, "node_modules/jsonfile": { "version": "6.1.0", @@ -11498,9 +12956,9 @@ } }, "node_modules/less": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", - "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -11518,19 +12976,19 @@ "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", - "needle": "^2.5.2", + "needle": "^3.1.0", "source-map": "~0.6.0" } }, "node_modules/less-loader": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", - "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.0.0.tgz", + "integrity": "sha512-9+LOWWjuoectIEx3zrfN83NAGxSUB5pWEabbbidVQVgZhN+wN68pOvuyirVlH1IK4VT1f3TmlyvAnCXh8O5KEw==", "dependencies": { "klona": "^2.0.4" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -11566,6 +13024,15 @@ "node": ">=4" } }, + "node_modules/less/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "optional": true, + "engines": { + "node": ">=6" + } + }, "node_modules/less/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -11875,7 +13342,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.get": { "version": "4.4.2", @@ -12098,6 +13565,7 @@ "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "devOptional": true, "dependencies": { "sourcemap-codec": "^1.4.4" } @@ -12131,31 +13599,60 @@ "dev": true }, "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "engines": { "node": ">= 10" } }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "engines": { + "node": ">=12" + } + }, "node_modules/map-stream": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", @@ -12181,11 +13678,11 @@ } }, "node_modules/memfs": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.3.tgz", - "integrity": "sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", "dependencies": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" }, "engines": { "node": ">= 4.0.0" @@ -12260,19 +13757,19 @@ } }, "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "1.49.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -12287,9 +13784,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "dependencies": { "schema-utils": "^4.0.0" }, @@ -12305,9 +13802,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -12474,9 +13971,9 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { "yallist": "^4.0.0" }, @@ -12496,19 +13993,19 @@ } }, "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dependencies": { - "minipass": "^3.1.0", + "minipass": "^3.1.6", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" }, "optionalDependencies": { - "encoding": "^0.1.12" + "encoding": "^0.1.13" } }, "node_modules/minipass-flush": { @@ -12575,6 +14072,8 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "optional": true, + "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -12649,22 +14148,17 @@ } }, "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dependencies": { - "dns-packet": "^1.3.1", + "dns-packet": "^5.2.2", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, "node_modules/multisplice": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/multisplice/-/multisplice-1.0.0.tgz", @@ -12751,9 +14245,9 @@ } }, "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12768,13 +14262,13 @@ "dev": true }, "node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", "optional": true, "dependencies": { "debug": "^3.2.6", - "iconv-lite": "^0.4.4", + "iconv-lite": "^0.6.3", "sax": "^1.2.4" }, "bin": { @@ -12793,10 +14287,22 @@ "ms": "^2.1.1" } }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "engines": { "node": ">= 0.6" } @@ -12889,15 +14395,15 @@ } }, "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", + "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", @@ -12908,7 +14414,7 @@ "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">= 10.12.0" + "node": "^12.22 || ^14.13 || >=16" } }, "node_modules/node-gyp-build": { @@ -12922,37 +14428,37 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", "dependencies": { - "abbrev": "1" + "abbrev": "^1.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": ">=6" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/normalize-path": { @@ -12966,7 +14472,7 @@ "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "engines": { "node": ">=0.10.0" } @@ -12980,14 +14486,14 @@ } }, "node_modules/npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz", + "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==", "dependencies": { "semver": "^7.1.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm-normalize-package-bin": { @@ -12996,124 +14502,121 @@ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" }, "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm-packlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", - "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" }, "bin": { "npm-packlist": "bin/index.js" }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-packlist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-packlist/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-packlist/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { "node": ">=10" } }, - "node_modules/npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "node_modules/npm-packlist/node_modules/npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", "dependencies": { - "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz", + "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==", + "dependencies": { + "npm-install-checks": "^5.0.0", "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm-registry-fetch": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", - "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", + "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", "dependencies": { - "make-fetch-happen": "^10.0.1", + "make-fetch-happen": "^10.0.6", "minipass": "^3.1.6", - "minipass-fetch": "^1.4.1", + "minipass-fetch": "^2.0.3", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^8.1.5" + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.4.0.tgz", - "integrity": "sha512-YOfuyWa/Ee+PXbDm40j9WXyJrzQUynVbgn4Km643UYcWNcrSfRkKL0WaiUcxcIbkXcVTgNpDqSnPXntWXT75cw==", - "deprecated": "Please update to latest patch version to fix memory leak https://github.com/isaacs/node-lru-cache/issues/227", - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.3.tgz", - "integrity": "sha512-CzarPHynPpHjhF5in/YapnO44rSZeYX5VCMfdXa99+gLwpbfFLh20CWa6dP/taV9Net9PWJwXNKtp/4ZTCQnag==", - "dependencies": { - "agentkeepalive": "^4.2.0", - "cacache": "^15.3.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.3.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.4.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.1.1", - "ssri": "^8.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npm-registry-fetch/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm-run-path": { @@ -13128,17 +14631,17 @@ } }, "node_modules/npmlog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", - "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", + "gauge": "^4.0.3", "set-blocking": "^2.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/nth-check": { @@ -13231,6 +14734,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "devOptional": true, "dependencies": { "ee-first": "1.1.1" }, @@ -13429,7 +14933,7 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "engines": { "node": ">=0.10.0" } @@ -13522,35 +15026,37 @@ } }, "node_modules/pacote": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", - "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", + "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", "dependencies": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", - "cacache": "^15.0.5", + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/run-script": "^4.1.0", + "cacache": "^16.0.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^3.0.0", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^12.0.0", + "minipass": "^3.1.6", + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^5.1.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" + "ssri": "^9.0.0", + "tar": "^6.1.11" }, "bin": { "pacote": "lib/bin.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/pacote/node_modules/mkdirp": { @@ -13775,12 +15281,11 @@ } }, "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "optional": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, "node_modules/piscina": { @@ -13826,27 +15331,6 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", @@ -13862,132 +15346,190 @@ } }, "node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], "dependencies": { - "nanoid": "^3.1.30", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", "dependencies": { - "postcss-selector-parser": "^6.0.2" + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.0.2" + "postcss": "^8.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" } }, "node_modules/postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } }, "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.3" } }, - "node_modules/postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", + "version": "12.1.10", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.10.tgz", + "integrity": "sha512-U3BHdgrYhCrwTVcByFHs9EOBoqcKq4Lf3kXwbTi4hhq0qWhl/pDWq2THbv/ICX/Fl9KqeHBb8OVrTf2OaYF07A==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", "dependencies": { "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": ">=10.0.0" + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.2" + "postcss": "^8.3" } }, "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-double-position-gradients": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.0.tgz", - "integrity": "sha512-oz73I08yMN3oxjj0s8mED1rG+uOYoK3H8N9RjQofyg52KBRNmePJKg3fVwTpL2U5ZFbCzXoZBsUD/CvZdlqE4Q==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -13995,14 +15537,18 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14050,41 +15596,49 @@ } }, "node_modules/postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-import": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", - "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.0.tgz", + "integrity": "sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { "postcss": "^8.0.0" @@ -14099,9 +15653,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.1.tgz", - "integrity": "sha512-j3Z0WQCimY2tMle++YcmygnnVbt6XdnrCV1FO2IpzaCSmtTF2oO8h4ZYUA1Q+QHYroIiaWPvNHt9uBR4riCksQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -14109,21 +15663,25 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", + "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", - "semver": "^7.3.5" + "semver": "^7.3.7" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -14134,6 +15692,20 @@ "webpack": "^5.0.0" } }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/postcss-logical": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", @@ -14212,28 +15784,58 @@ } }, "node_modules/postcss-nesting": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", - "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", "dependencies": { - "postcss-selector-parser": "^6.0.8" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.3" + "postcss": "^8.2" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" } }, "node_modules/postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-page-break": { @@ -14245,77 +15847,105 @@ } }, "node_modules/postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-preset-env": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", - "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz", + "integrity": "sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA==", "dependencies": { - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001299", - "css-blank-pseudo": "^3.0.2", - "css-has-pseudo": "^3.0.3", - "css-prefers-color-scheme": "^6.0.2", - "cssdb": "^5.0.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.1", - "postcss-color-hex-alpha": "^8.0.2", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.2", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.3", - "postcss-double-position-gradients": "^3.0.4", - "postcss-env-function": "^4.0.4", - "postcss-focus-visible": "^6.0.3", - "postcss-focus-within": "^5.0.3", + "@csstools/postcss-cascade-layers": "^1.0.5", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.8", + "browserslist": "^4.21.3", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.0.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.8", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.2", - "postcss-image-set-function": "^4.0.4", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.0.3", - "postcss-logical": "^5.0.3", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-overflow-shorthand": "^3.0.2", + "postcss-nesting": "^10.1.10", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.3", - "postcss-pseudo-class-any-link": "^7.0.2", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-replace-overflow-wrap": { @@ -14327,20 +15957,27 @@ } }, "node_modules/postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", "dependencies": { - "balanced-match": "^1.0.0" + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.2" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14396,6 +16033,14 @@ "node": ">= 0.8" } }, + "node_modules/proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -14412,7 +16057,7 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" }, "node_modules/promise-retry": { "version": "2.0.1", @@ -14427,17 +16072,25 @@ } }, "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dependencies": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, "engines": { "node": ">= 0.10" } }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/proxy-from-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", @@ -14447,7 +16100,7 @@ "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "optional": true }, "node_modules/ps-tree": { @@ -14625,13 +16278,12 @@ } }, "node_modules/raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "dev": true, + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.3", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -14639,38 +16291,14 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dependencies": { "pify": "^2.3.0" } }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", @@ -14679,6 +16307,20 @@ "readable-stream": "^2.0.2" } }, + "node_modules/read-package-json": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", + "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", + "dependencies": { + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/read-package-json-fast": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", @@ -14691,6 +16333,51 @@ "node": ">=10" } }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -14732,9 +16419,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dependencies": { "regenerate": "^1.4.2" }, @@ -14748,9 +16435,9 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -14788,30 +16475,30 @@ } }, "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" }, "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dependencies": { "jsesc": "~0.5.0" }, @@ -14822,7 +16509,7 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "bin": { "jsesc": "bin/jsesc" } @@ -14863,11 +16550,11 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -14952,7 +16639,7 @@ "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "engines": { "node": ">= 4" } @@ -15051,9 +16738,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "version": "1.54.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", + "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -15067,15 +16754,15 @@ } }, "node_modules/sass-loader": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", - "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", + "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -15085,6 +16772,7 @@ "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", + "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { @@ -15096,13 +16784,16 @@ }, "sass": { "optional": true + }, + "sass-embedded": { + "optional": true } } }, "node_modules/sass/node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==" }, "node_modules/sax": { "version": "1.2.4", @@ -15159,12 +16850,12 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dependencies": { "node-forge": "^1" }, @@ -15359,9 +17050,9 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/sha.js": { "version": "2.4.11", @@ -15418,6 +17109,19 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -15643,11 +17347,11 @@ } }, "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dependencies": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, "engines": { @@ -15656,18 +17360,34 @@ } }, "node_modules/socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dependencies": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" }, "engines": { "node": ">= 10" } }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", @@ -15685,23 +17405,23 @@ } }, "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.0.tgz", + "integrity": "sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw==", "dependencies": { - "abab": "^2.0.5", + "abab": "^2.0.6", "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.0.0" + "webpack": "^5.72.1" } }, "node_modules/source-map-loader/node_modules/iconv-lite": { @@ -15715,16 +17435,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -15747,6 +17457,34 @@ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==" + }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -15826,14 +17564,14 @@ } }, "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dependencies": { "minipass": "^3.1.1" }, "engines": { - "node": ">= 8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/start-server-and-test": { @@ -16007,14 +17745,13 @@ } }, "node_modules/stylus": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", - "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", + "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==", "dependencies": { - "css": "^3.0.0", + "@adobe/css-tools": "^4.0.1", "debug": "^4.3.2", "glob": "^7.1.6", - "safer-buffer": "^2.1.2", "sax": "~1.2.4", "source-map": "^0.7.3" }, @@ -16023,19 +17760,22 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://opencollective.com/stylus" } }, "node_modules/stylus-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", - "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-7.0.0.tgz", + "integrity": "sha512-WTbtLrNfOfLgzTaR9Lj/BPhQroKk/LC1hfTXSUbrxmxgfUo3Y3LpmKRVA2R1XbjvTAvOfaian9vOyfv1z99E+A==", "dependencies": { - "fast-glob": "^3.2.7", - "klona": "^2.0.4", + "fast-glob": "^3.2.11", + "klona": "^2.0.5", "normalize-path": "^3.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -16106,9 +17846,9 @@ } }, "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", + "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -16118,7 +17858,7 @@ "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" } }, "node_modules/tar/node_modules/mkdirp": { @@ -16133,13 +17873,13 @@ } }, "node_modules/terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dependencies": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "bin": { @@ -16367,7 +18107,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { "node": ">=4" } @@ -16384,9 +18124,9 @@ } }, "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { "node": ">=0.6" } @@ -16797,17 +18537,17 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "engines": { "node": ">=4" } @@ -16853,6 +18593,31 @@ "node": ">=8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", @@ -16908,12 +18673,24 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dependencies": { - "builtins": "^1.0.3" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/vary": { @@ -16993,9 +18770,9 @@ } }, "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -17030,33 +18807,33 @@ } }, "node_modules/webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -17076,12 +18853,12 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", - "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.2.2", + "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" @@ -17098,9 +18875,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -17140,9 +18917,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { "version": "1.0.0", @@ -17168,39 +18945,39 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", - "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", + "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.2", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", + "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", + "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", + "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", + "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", + "selfsigned": "^2.0.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.0", - "ws": "^8.1.0" + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" @@ -17208,6 +18985,10 @@ "engines": { "node": ">= 12.13.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, @@ -17218,9 +18999,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -17259,28 +19040,17 @@ "ajv": "^8.8.2" } }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/webpack-dev-server/node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "engines": { - "node": ">= 10" + "node": ">=0.8" } }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { @@ -17306,24 +19076,10 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -17381,9 +19137,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "bin": { "acorn": "bin/acorn" }, @@ -17466,6 +19222,20 @@ "node": ">=10" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -17825,6 +19595,11 @@ } }, "dependencies": { + "@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==" + }, "@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -17838,6 +19613,7 @@ "version": "0.1303.7", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.7.tgz", "integrity": "sha512-xr35v7AuJygRdiaFhgoBSLN2ZMUri8x8Qx9jkmCkD3WLKz33TSFyAyqwdNNmOO9riK8ePXMH/QcSv0wY12pFBw==", + "dev": true, "requires": { "@angular-devkit/core": "13.3.7", "rxjs": "6.6.7" @@ -17847,6 +19623,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, "requires": { "tslib": "^1.9.0" } @@ -17854,92 +19631,192 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, "@angular-devkit/build-angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.7.tgz", - "integrity": "sha512-XUmiq/3zpuna+r0UOqNSvA9kEcPwsLblEmNLUYyZXL9v/aGWUHOSH0nhGVrNRrSud4ryklEnxfkxkxlZlT4mjQ==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.10.tgz", + "integrity": "sha512-VCeZAyq4uPCJukKInaSiD4i/GgxgcU4jFlLFQtoYNmaBS4xbPOymL19forRIihiV0dwNEa2L694vRTAPMBxIfw==", "requires": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/build-webpack": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@babel/core": "7.16.12", - "@babel/generator": "7.16.8", - "@babel/helper-annotate-as-pure": "7.16.7", - "@babel/plugin-proposal-async-generator-functions": "7.16.8", - "@babel/plugin-transform-async-to-generator": "7.16.8", - "@babel/plugin-transform-runtime": "7.16.10", - "@babel/preset-env": "7.16.11", - "@babel/runtime": "7.16.7", - "@babel/template": "7.16.7", - "@discoveryjs/json-ext": "0.5.6", - "@ngtools/webpack": "13.3.7", - "ansi-colors": "4.1.1", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/build-webpack": "0.1402.10", + "@angular-devkit/core": "14.2.10", + "@babel/core": "7.18.10", + "@babel/generator": "7.18.12", + "@babel/helper-annotate-as-pure": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.18.10", + "@babel/plugin-transform-async-to-generator": "7.18.6", + "@babel/plugin-transform-runtime": "7.18.10", + "@babel/preset-env": "7.18.10", + "@babel/runtime": "7.18.9", + "@babel/template": "7.18.10", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "14.2.10", + "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.9.1", - "cacache": "15.3.0", - "circular-dependency-plugin": "5.2.2", - "copy-webpack-plugin": "10.2.1", - "core-js": "3.20.3", + "cacache": "16.1.2", + "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", - "css-loader": "6.5.1", - "esbuild": "0.14.22", - "esbuild-wasm": "0.14.22", - "glob": "7.2.0", - "https-proxy-agent": "5.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", + "css-loader": "6.7.1", + "esbuild": "0.15.5", + "esbuild-wasm": "0.15.5", + "glob": "8.0.3", + "https-proxy-agent": "5.0.1", + "inquirer": "8.2.4", + "jsonc-parser": "3.1.0", "karma-source-map-support": "1.4.0", - "less": "4.1.2", - "less-loader": "10.2.0", + "less": "4.1.3", + "less-loader": "11.0.0", "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.0", - "mini-css-extract-plugin": "2.5.3", - "minimatch": "3.0.5", + "loader-utils": "3.2.1", + "mini-css-extract-plugin": "2.6.1", + "minimatch": "5.1.0", "open": "8.4.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", - "postcss": "8.4.5", - "postcss-import": "14.0.2", - "postcss-loader": "6.2.1", - "postcss-preset-env": "7.2.3", + "postcss": "8.4.16", + "postcss-import": "15.0.0", + "postcss-loader": "7.0.1", + "postcss-preset-env": "7.8.0", "regenerator-runtime": "0.13.9", "resolve-url-loader": "5.0.0", "rxjs": "6.6.7", - "sass": "1.49.9", - "sass-loader": "12.4.0", - "semver": "7.3.5", - "source-map-loader": "3.0.1", + "sass": "1.54.4", + "sass-loader": "13.0.2", + "semver": "7.3.7", + "source-map-loader": "4.0.0", "source-map-support": "0.5.21", - "stylus": "0.56.0", - "stylus-loader": "6.2.0", - "terser": "5.11.0", + "stylus": "0.59.0", + "stylus-loader": "7.0.0", + "terser": "5.14.2", "text-table": "0.2.0", "tree-kill": "1.2.2", - "tslib": "2.3.1", - "webpack": "5.70.0", - "webpack-dev-middleware": "5.3.0", - "webpack-dev-server": "4.7.3", + "tslib": "2.4.0", + "webpack": "5.74.0", + "webpack-dev-middleware": "5.3.3", + "webpack-dev-server": "4.11.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "dependencies": { - "@ngtools/webpack": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", - "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "requires": {} + "@angular-devkit/architect": { + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", + "requires": { + "@angular-devkit/core": "14.2.10", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, + "@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==" }, "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==" + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } }, "rxjs": { "version": "6.6.7", @@ -17956,54 +19833,55 @@ } } }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" } } }, "@angular-devkit/build-webpack": { - "version": "0.1303.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.7.tgz", - "integrity": "sha512-5vF399cPdwuCbzbxS4yNGgChdAzEM0/By21P0uiqBcIe/Zxuz3IUPapjvcyhkAo5OTu+d7smY9eusLHqoq1WFQ==", + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.10.tgz", + "integrity": "sha512-h+2MaSY7QSvoJ3R+Hvin21jVCfPGOTLdASIUk4Jmq6J3y5BSku3KSSaV8dWoBOBkFCwQyPQMRjiHoHKLpC1K7g==", "requires": { - "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/architect": "0.1402.10", "rxjs": "6.6.7" }, "dependencies": { - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "@angular-devkit/architect": { + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", "requires": { - "tslib": "^1.9.0" + "@angular-devkit/core": "14.2.10", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" } }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@angular-devkit/core": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", - "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", - "requires": { - "ajv": "8.9.0", - "ajv-formats": "2.1.1", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.6.7", - "source-map": "0.7.3" - }, - "dependencies": { "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -18024,6 +19902,11 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==" + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -18032,6 +19915,11 @@ "tslib": "^1.9.0" } }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -18039,6 +19927,64 @@ } } }, + "@angular-devkit/core": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", + "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", + "dev": true, + "requires": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "dependencies": { + "ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, "@angular-devkit/schematics": { "version": "12.2.17", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.17.tgz", @@ -18100,73 +20046,158 @@ } }, "@angular/animations": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.10.tgz", - "integrity": "sha512-V/0h3xepWPBRjWroFXYrNIE3iZPREjv0hiB3gskF/2KLlx5jvpUWlaBx0rEYRa8XXIPJyAaKBGwWSBnT/Z88TQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.2.12.tgz", + "integrity": "sha512-gwdnFZkvVUr+enUNfhfCGRGGqNHn1+vTA81apLfHYhJxgjiLUtETc4KTOrQevtDm022pEd+LSrvr8r+7ag+jkw==", "requires": { "tslib": "^2.3.0" } }, "@angular/cli": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.7.tgz", - "integrity": "sha512-XIp0w0YOwhHp4Je3npHAs0W4rjHvFnG2w/lDO2M/UNp5634S4PRMFmVVMt6DQBj1cbffYVKFqffqesyCqNuvAQ==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.10.tgz", + "integrity": "sha512-gX9sAKOwq4lKdPWeABB7TzKDHdjQXvkUU8NmPJA6mEAVXvm3lhQtFvHDalZstwK8au2LY0LaXTcEtcKYOt3AXQ==", "requires": { - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "@schematics/angular": "13.3.7", + "@angular-devkit/architect": "0.1402.10", + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", + "@schematics/angular": "14.2.10", "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.3.3", - "ini": "2.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", - "npm-package-arg": "8.1.5", - "npm-pick-manifest": "6.1.1", + "ansi-colors": "4.1.3", + "debug": "4.3.4", + "ini": "3.0.0", + "inquirer": "8.2.4", + "jsonc-parser": "3.1.0", + "npm-package-arg": "9.1.0", + "npm-pick-manifest": "7.0.1", "open": "8.4.0", "ora": "5.4.1", - "pacote": "12.0.3", - "resolve": "1.22.0", - "semver": "7.3.5", + "pacote": "13.6.2", + "resolve": "1.22.1", + "semver": "7.3.7", "symbol-observable": "4.0.0", - "uuid": "8.3.2" + "uuid": "8.3.2", + "yargs": "17.5.1" }, "dependencies": { - "@angular-devkit/schematics": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.7.tgz", - "integrity": "sha512-6TKpFMwiiXmPhiVdbkSJrkBXj8n7SVVhsHl2GodDLVTb8OT3fxYIB9EU8Il07AMfDcjpydOcJduCFPOsQYd7BA==", + "@angular-devkit/architect": { + "version": "0.1402.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.10.tgz", + "integrity": "sha512-/6YmPrgataj1jD2Uqd1ED+CG4DaZGacoeZd/89hH7hF76Nno8K18DrSOqJAEmDnOWegpSRGVLd0qP09IHmaG5w==", "requires": { - "@angular-devkit/core": "13.3.7", - "jsonc-parser": "3.0.0", - "magic-string": "0.25.7", + "@angular-devkit/core": "14.2.10", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.10.tgz", + "integrity": "sha512-K4AO7mROTdbhQ7chtyQd6oPwmuL+BPUh+wn6Aq1qrmYJK4UZYFOPp8fi/Ehs8meCEeywtrssOPfrOE4Gsre9dg==", + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, + "@angular-devkit/schematics": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.10.tgz", + "integrity": "sha512-MMp31KpJTwKHisXOq+6VOXYApq97hZxFaFmZk396X5aIFTCELUwjcezQDk+u2nEs5iK/COUfnN3plGcfJxYhQA==", + "requires": { + "@angular-devkit/core": "14.2.10", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", "ora": "5.4.1", "rxjs": "6.6.7" } }, "@schematics/angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", - "integrity": "sha512-OAny1e/yliku52xG7vfWs1hNYSgCNTPpMv9fS8zz9eF5/GrKv28WFSy20mUXqLZ91VsbGSs6X0mI6pdNnpVtJA==", + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.10.tgz", + "integrity": "sha512-YFTc/9QJdx422XcApizEcVLKoyknu8b9zHIlAepZCu7WkV8GPT0hvVEHQ7KBWys5aQ7pPZMT0JpZLeAz0F2xYQ==", "requires": { - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "jsonc-parser": "3.0.0" + "@angular-devkit/core": "14.2.10", + "@angular-devkit/schematics": "14.2.10", + "jsonc-parser": "3.1.0" } }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "jsonc-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==" + }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "requires": { + "sourcemap-codec": "^1.4.8" + } }, "rxjs": { "version": "6.6.7", @@ -18176,33 +20207,80 @@ "tslib": "^1.9.0" } }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" } } }, "@angular/common": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.10.tgz", - "integrity": "sha512-KWw91QzmCDZ6uq1Z58v7vQQ57Ux7A2UkPdIBOyvpOgtQPTvlvKsePkUVCC+dum+W9mOy4kq2falO5T7Gi7SJgw==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.12.tgz", + "integrity": "sha512-oZunh9wfInFWhNO1P8uoEs/o4u8kerKMhw8GruywKm1TV7gHDP2Fi5WHGjFqq3XYptgBTPCTSEfyLX6Cwq1PUw==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", - "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.12.tgz", + "integrity": "sha512-u2MH9+NRwbbFDRNiPWPexed9CnCq9+pGHLuyACSP2uR6Ik68cE6cayeZbIeoEV5vWpda/XsLmJgPJysw7dAZLQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.10.tgz", - "integrity": "sha512-cGFQyUOxOLVnehczdP4L7KXbKQTe/aQgbXmacQYgqcP/AnpJs7QfZbw1/k1wJtXrhzbGBh3JSWnpme74bnF3dQ==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.12.tgz", + "integrity": "sha512-9Gkb9KFkaQPz8XaS8ZwwTioRZ4ywykdAWyceICEi78/Y9ConYrTX2SbFogzI2dPUZU8a04tMlbqTSmHjVbJftQ==", "requires": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -18216,45 +20294,6 @@ "yargs": "^17.2.1" }, "dependencies": { - "@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -18294,11 +20333,6 @@ "sourcemap-codec": "^1.4.8" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -18336,69 +20370,37 @@ } }, "@angular/core": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.10.tgz", - "integrity": "sha512-7jH1a5wZdE6Ki2Dow7s6v1/5SfUcXsjAu3n523QSDlM078QG0p95npcqPseO9mNftG9MfRqBE7sl1Nb+ZK7eBg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.12.tgz", + "integrity": "sha512-sGQxU5u4uawwvJa6jOTmGoisJiQ5HIN/RoBw99CmoqZIVyUSg9IRJJC1KVdH8gbpWBNLkElZv21lwJTL/msWyg==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.10.tgz", - "integrity": "sha512-2cREi8nvCdspYHk6KJ5xjIgq8Dgh/kfwPIVjpLQBZFNC03Q6GvOLVoVm8ye6ToOpQFjvjpjndqU93JXSLMANgA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.12.tgz", + "integrity": "sha512-7abYlGIT2JnAtutQUlH3fQS6QEpbfftgvsVcZJCyvX0rXL3u2w2vUQkDHJH4YJJp3AHFVCH4/l7R4VcaPnrwvA==", "requires": { "tslib": "^2.3.0" } }, "@angular/language-service": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-13.3.10.tgz", - "integrity": "sha512-TQwVIEFTWOlX9Jy2PhOT52Eo3ApNWSkjQavAuIU4uNQRCyoKMTywJ6MlQiQlMoWPH77Yn5EZyCwRoWFVWg3q0w==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.2.12.tgz", + "integrity": "sha512-YmW6simyEVmpDmbYVUhZ2IxSP6pmsWrV120rB9Y21/BeM39WIXA4NCNirVWlAd/KAKY9O7Sbn1nXI6rSDfhopQ==", "dev": true }, "@angular/localize": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-13.3.10.tgz", - "integrity": "sha512-DNSOLJd8SkYHWKWyBm/piYnjurYRsgXTmWoVXTrfEuALEHxz3cwnVUPvoiWwJVMKklFr76D61pDY4mz5muPxog==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.12.tgz", + "integrity": "sha512-6TTnuvubvYL1LDIJhDfd7ygxTaj0ShTILCDXT4URBhZKQbQ3HAorDqsc6SXqZVGCHdqF0hGTaeN/7zVvgP9kzA==", "requires": { - "@babel/core": "7.17.2", - "glob": "7.2.0", + "@babel/core": "7.18.9", + "glob": "8.0.3", "yargs": "^17.2.1" }, "dependencies": { - "@babel/core": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", - "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", - "requires": { - "@ampproject/remapping": "^2.0.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -18407,6 +20409,14 @@ "color-convert": "^2.0.1" } }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -18430,15 +20440,25 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } }, "wrap-ansi": { "version": "7.0.0", @@ -18477,25 +20497,25 @@ } }, "@angular/platform-browser": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.10.tgz", - "integrity": "sha512-zi0FrA8zZRiHLBfKlfIxikG06wMF2KcSp6oqrIblrc1VrHgPRVRABz8vryH84lasDssjYdIS9AvbQnCCdgCzJA==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.12.tgz", + "integrity": "sha512-vOarWym8ucl1gjYWCzdwyBha+MTvL381mvTTUu8aUx6nVhHFjv4bvpjlZnZgojecqUPyxOwmPLLHvCZPJVHZYg==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.10.tgz", - "integrity": "sha512-hygsEjTaS+VDUrBZZiRJFo5J7AHCS/EcAc1IWvb69EnVqA9RwqM4hWbuy3y/cmLEeHLLmRldIlS6xRPt8fTNQg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.12.tgz", + "integrity": "sha512-oZhNJeaBmgw8+KBSYpKz2RYqEDyETC+HJXH8dwIFcP6BqqwL2NE70FdSR7EnOa5c41MEtTmMCGhrJSFR60x5/w==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-server": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-13.3.10.tgz", - "integrity": "sha512-KekOeqzdL9tL9h7bDuYoz1utnd6p6y6qAvAvCGm2Qa1fX3f/NQQ12pngtVqhvIgB5PpROCNypla/ejcBmNsQ2g==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-14.2.12.tgz", + "integrity": "sha512-RDxNh47Rp0EYrimbzviqhagdbL58Z3S88PDYybYbshFwV+MgWsvWasK/WntTMP/JtRP4FBU0Uiwxy7mgVdxb0g==", "requires": { "domino": "^2.1.2", "tslib": "^2.3.0", @@ -18503,9 +20523,9 @@ } }, "@angular/router": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.10.tgz", - "integrity": "sha512-neGaeiHravXlCbNbyGJecwQyu/91Pj/E9/ohVFzBBE4V9BrNx9v7Ntc4ugqgpnrV2wtonPP7TQDqXxrPk4QVfg==", + "version": "14.2.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.12.tgz", + "integrity": "sha512-r5tVus5RJDNc4U2v0jMtjPiAS1xDsVsJ70lS313DgZmBDHIVZP1cWIehdxwgNlGwQQtAA36eG7toBwqUU3gb/A==", "requires": { "tslib": "^2.3.0" } @@ -18516,94 +20536,94 @@ "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==" }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==" }, "@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } } } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" } }, "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "dependencies": { @@ -18615,37 +20635,35 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", + "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -18660,333 +20678,337 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" }, "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.9" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.20.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" } }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==" + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.20.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-async-generators": { @@ -19029,6 +21051,14 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -19102,239 +21132,239 @@ } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", + "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" } }, "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", + "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", + "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "semver": "^6.3.0" }, "dependencies": { @@ -19346,94 +21376,95 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -19443,44 +21474,44 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, "dependencies": { @@ -19504,63 +21535,69 @@ } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } } } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -19580,14 +21617,127 @@ "@jridgewell/trace-mapping": "0.3.9" } }, - "@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.2.0.tgz", - "integrity": "sha512-YLpFPK5OaLIRKZhUfnrZPT9s9cmtqltIOg7W6jPcxmiDpnZ4lk+odfufZttOAgcg6IHWvNLgcITSLpJxIQB/qQ==", + "@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "requires": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", "requires": { "postcss-value-parser": "^4.2.0" } }, + "@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "requires": {} + }, + "@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "requires": {} + }, "@cypress/request": { "version": "2.88.10", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", @@ -19750,9 +21900,15 @@ } }, "@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==" + }, + "@esbuild/linux-loong64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", + "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", + "optional": true }, "@eslint/eslintrc": { "version": "1.3.0", @@ -19842,9 +21998,9 @@ } }, "@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "@goto-bus-stop/common-shake": { "version": "2.4.0", @@ -19962,6 +22118,27 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz", "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==" }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, "@jridgewell/sourcemap-codec": { "version": "1.4.11", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", @@ -19976,6 +22153,11 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, "@mempool/mempool.js": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@mempool/mempool.js/-/mempool.js-2.3.0.tgz", @@ -20009,6 +22191,12 @@ "tslib": "^2.3.0" } }, + "@ngtools/webpack": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", + "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", + "requires": {} + }, "@nguniversal/builders": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@nguniversal/builders/-/builders-13.1.1.tgz", @@ -20028,6 +22216,207 @@ "tree-kill": "^1.2.2" }, "dependencies": { + "@angular/common": { + "version": "13.3.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.12.tgz", + "integrity": "sha512-Nk4zNKfda92aFe+cucHRv2keyryR7C1ZnsurwZW9WZSobpY3z2tTT81F+yy35lGoMt5BDBAIpfh1b4j9Ue/vMg==", + "dev": true, + "peer": true, + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true, + "peer": true + } + } + }, + "@angular/core": { + "version": "13.3.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.12.tgz", + "integrity": "sha512-jx0YC+NbPMbxGr5bXECkCEQv2RdVxR8AJNnabkPk8ZjwCpDzROrbELwwS1kunrZUhffcD15IhWGBvf1EGHAYDw==", + "dev": true, + "peer": true, + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true, + "peer": true + } + } + }, + "@nguniversal/common": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-13.1.1.tgz", + "integrity": "sha512-DoAPA7+kUz+qMgCTUtRPFcMGY0zz8OSkOTZnxqO5sUYntD6mCEQImHU0WF4ud88j71o0Hv+AISJD1evAAANCdw==", + "dev": true, + "requires": { + "critters": "0.0.16", + "jsdom": "19.0.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true + } + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } + } + }, + "domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "requires": { + "webidl-conversions": "^7.0.0" + } + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "requires": { + "whatwg-encoding": "^2.0.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + } + }, "piscina": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", @@ -20049,33 +22438,111 @@ "tslib": "^1.9.0" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true + }, + "w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "requires": { + "xml-name-validator": "^4.0.0" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true + }, + "whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true } } }, - "@nguniversal/common": { + "@nguniversal/express-engine": { "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-13.1.1.tgz", - "integrity": "sha512-DoAPA7+kUz+qMgCTUtRPFcMGY0zz8OSkOTZnxqO5sUYntD6mCEQImHU0WF4ud88j71o0Hv+AISJD1evAAANCdw==", + "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.1.tgz", + "integrity": "sha512-NdiBP0IRbPrNYEMLy3a6os2mNgRNE84tsMn+mV2uF4wv1JNs3YyoXcucWvhgHdODbDtc6z4CGn8t/6KagRqmvA==", "requires": { - "critters": "0.0.16", - "jsdom": "19.0.0", + "@nguniversal/common": "13.1.1", "tslib": "^2.3.0" }, "dependencies": { + "@nguniversal/common": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-13.1.1.tgz", + "integrity": "sha512-DoAPA7+kUz+qMgCTUtRPFcMGY0zz8OSkOTZnxqO5sUYntD6mCEQImHU0WF4ud88j71o0Hv+AISJD1evAAANCdw==", + "requires": { + "critters": "0.0.16", + "jsdom": "19.0.0", + "tslib": "^2.3.0" + } + }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" }, "cssom": { "version": "0.5.0", @@ -20248,9 +22715,9 @@ } }, "ws": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", - "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "requires": {} }, "xml-name-validator": { @@ -20260,15 +22727,6 @@ } } }, - "@nguniversal/express-engine": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.1.tgz", - "integrity": "sha512-NdiBP0IRbPrNYEMLy3a6os2mNgRNE84tsMn+mV2uF4wv1JNs3YyoXcucWvhgHdODbDtc6z4CGn8t/6KagRqmvA==", - "requires": { - "@nguniversal/common": "13.1.1", - "tslib": "^2.3.0" - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -20293,41 +22751,39 @@ } }, "@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "requires": { - "@gar/promisify": "^1.0.1", + "@gar/promisify": "^1.1.3", "semver": "^7.3.5" } }, "@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", + "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", "requires": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "lru-cache": "^7.4.4", "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" }, "dependencies": { + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==" + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -20341,9 +22797,9 @@ } }, "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -20357,27 +22813,28 @@ } }, "@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz", + "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==" }, "@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz", + "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==", "requires": { "infer-owner": "^1.0.4" } }, "@npmcli/run-script": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", - "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", + "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", "requires": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3", + "which": "^2.0.2" } }, "@scarf/scarf": { @@ -20516,7 +22973,8 @@ "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true }, "@tsconfig/node10": { "version": "1.0.9", @@ -20698,9 +23156,9 @@ } }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "requires": { "@types/mime": "*", "@types/node": "*" @@ -21191,12 +23649,12 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "acorn": { @@ -21323,9 +23781,9 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, "ansi-escapes": { "version": "4.3.1", @@ -21374,9 +23832,9 @@ "optional": true }, "are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -21430,11 +23888,6 @@ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" }, - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -21508,6 +23961,7 @@ "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, "requires": { "lodash": "^4.17.14" } @@ -21529,19 +23983,14 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "optional": true }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, "autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -21587,14 +24036,6 @@ "schema-utils": "^2.6.5" } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -21608,12 +24049,12 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "dependencies": { @@ -21625,20 +24066,20 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/helper-define-polyfill-provider": "^0.3.2", "core-js-compat": "^3.21.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, "balanced-match": { @@ -21721,20 +24162,22 @@ "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "requires": { - "bytes": "3.1.0", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { "debug": { @@ -21745,40 +24188,48 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" } } } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", + "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" }, "dependencies": { "array-flatten": { @@ -22287,15 +24738,14 @@ } }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" } }, "bs-recipes": { @@ -22330,11 +24780,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -22346,9 +24791,12 @@ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "requires": { + "semver": "^7.0.0" + } }, "bundle-collapser": { "version": "1.4.0", @@ -22364,35 +24812,68 @@ } }, "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz", + "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==", "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", "unique-filename": "^1.1.1" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==" + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -22441,9 +24922,9 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" + "version": "1.0.30001434", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz", + "integrity": "sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==" }, "caseless": { "version": "0.12.0", @@ -22493,9 +24974,9 @@ "optional": true }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -22532,12 +25013,6 @@ "safe-buffer": "^5.0.1" } }, - "circular-dependency-plugin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", - "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "requires": {} - }, "claygl": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/claygl/-/claygl-1.3.0.tgz", @@ -22632,7 +25107,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "color-support": { "version": "1.1.3", @@ -22759,7 +25234,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -22811,7 +25286,8 @@ "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true }, "console-browserify": { "version": "1.2.0", @@ -22821,7 +25297,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "constants-browserify": { "version": "1.0.0", @@ -22829,11 +25305,18 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "content-type": { @@ -22850,9 +25333,9 @@ } }, "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-signature": { "version": "1.0.6", @@ -22860,30 +25343,30 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "copy-anything": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", - "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "requires": { - "is-what": "^3.12.0" + "is-what": "^3.14.1" } }, "copy-webpack-plugin": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", - "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "requires": { - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", - "globby": "^12.0.2", + "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -22933,25 +25416,12 @@ } } }, - "core-js": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", - "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==" - }, "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } + "browserslist": "^4.21.4" } }, "core-util-is": { @@ -22970,9 +25440,9 @@ } }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -23099,16 +25569,6 @@ "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } } }, "crypto-browserify": { @@ -23129,23 +25589,6 @@ "randomfill": "^1.0.3" } }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, "css-blank-pseudo": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", @@ -23163,17 +25606,17 @@ } }, "css-loader": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", - "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.2.15", + "postcss": "^8.4.7", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", + "postcss-value-parser": "^4.2.0", "semver": "^7.3.5" } }, @@ -23201,9 +25644,9 @@ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "cssdb": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", - "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.1.0.tgz", + "integrity": "sha512-Sd99PrFgx28ez4GHu8yoQIufc/70h9oYowDf4EjeIKi8mac9whxRjhM3IaMr6EllP6KKKWtJrMfN6C7T9tIWvQ==" }, "cssesc": { "version": "3.0.0", @@ -23497,11 +25940,6 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -23568,46 +26006,6 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - } - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -23621,7 +26019,7 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "depd": { "version": "1.1.2", @@ -23656,7 +26054,8 @@ "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true }, "detect-node": { "version": "2.1.0", @@ -23731,23 +26130,14 @@ "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" }, "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" + "@leichtgewicht/ip-codec": "^2.0.1" } }, "doctrine": { @@ -23904,9 +26294,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.4.41", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.41.tgz", - "integrity": "sha512-VQEXEJc+8rJIva85H8EPtB5Ux9g8TzkNGBanqphM9ZWMZ34elueKJ+5g+BPhz3Lk8gkujfQRcIZ+fpA0btUIuw==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "elliptic": { "version": "6.5.4", @@ -24042,9 +26432,9 @@ } }, "enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -24213,42 +26603,158 @@ } }, "esbuild": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", - "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", + "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", "optional": true, "requires": { - "esbuild-android-arm64": "0.14.22", - "esbuild-darwin-64": "0.14.22", - "esbuild-darwin-arm64": "0.14.22", - "esbuild-freebsd-64": "0.14.22", - "esbuild-freebsd-arm64": "0.14.22", - "esbuild-linux-32": "0.14.22", - "esbuild-linux-64": "0.14.22", - "esbuild-linux-arm": "0.14.22", - "esbuild-linux-arm64": "0.14.22", - "esbuild-linux-mips64le": "0.14.22", - "esbuild-linux-ppc64le": "0.14.22", - "esbuild-linux-riscv64": "0.14.22", - "esbuild-linux-s390x": "0.14.22", - "esbuild-netbsd-64": "0.14.22", - "esbuild-openbsd-64": "0.14.22", - "esbuild-sunos-64": "0.14.22", - "esbuild-windows-32": "0.14.22", - "esbuild-windows-64": "0.14.22", - "esbuild-windows-arm64": "0.14.22" + "@esbuild/linux-loong64": "0.15.5", + "esbuild-android-64": "0.15.5", + "esbuild-android-arm64": "0.15.5", + "esbuild-darwin-64": "0.15.5", + "esbuild-darwin-arm64": "0.15.5", + "esbuild-freebsd-64": "0.15.5", + "esbuild-freebsd-arm64": "0.15.5", + "esbuild-linux-32": "0.15.5", + "esbuild-linux-64": "0.15.5", + "esbuild-linux-arm": "0.15.5", + "esbuild-linux-arm64": "0.15.5", + "esbuild-linux-mips64le": "0.15.5", + "esbuild-linux-ppc64le": "0.15.5", + "esbuild-linux-riscv64": "0.15.5", + "esbuild-linux-s390x": "0.15.5", + "esbuild-netbsd-64": "0.15.5", + "esbuild-openbsd-64": "0.15.5", + "esbuild-sunos-64": "0.15.5", + "esbuild-windows-32": "0.15.5", + "esbuild-windows-64": "0.15.5", + "esbuild-windows-arm64": "0.15.5" } }, + "esbuild-android-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", + "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", + "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", + "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", + "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", + "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", + "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", + "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", + "optional": true + }, "esbuild-linux-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", - "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", + "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", + "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", + "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", + "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", + "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", + "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", + "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", + "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", + "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", + "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", "optional": true }, "esbuild-wasm": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", - "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==" + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz", + "integrity": "sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A==" + }, + "esbuild-windows-32": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", + "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", + "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", + "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", + "optional": true }, "escalade": { "version": "3.1.1", @@ -24725,48 +27231,41 @@ "optional": true, "requires": { "pify": "^2.2.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "optional": true - } } }, "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -24780,17 +27279,27 @@ "ms": "2.0.0" } }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" } }, @@ -24802,50 +27311,71 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" } } }, "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.18.0" } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" } } }, @@ -24931,9 +27461,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.10.tgz", - "integrity": "sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -25108,14 +27638,14 @@ } }, "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" }, "fresh": { "version": "0.5.2", @@ -25184,6 +27714,12 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -25196,11 +27732,10 @@ "dev": true }, "gauge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.2.tgz", - "integrity": "sha512-aSPRm2CvA9R8QyU5eXMFPd+cYkyxLsXHd2l5/FOH2V/eml//M04G6KZOmTap07O1PvEwNcl2NndyLfK8g3QrKA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "requires": { - "ansi-regex": "^5.0.1", "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", @@ -25327,14 +27862,13 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", "requires": { - "array-union": "^3.0.1", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^4.0.0" } @@ -25397,7 +27931,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-symbols": { "version": "1.0.2", @@ -25407,7 +27941,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "hash-base": { "version": "3.1.0", @@ -25471,17 +28005,24 @@ } }, "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", + "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", "requires": { - "lru-cache": "^6.0.0" + "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==" + } } }, "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "requires": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -25516,31 +28057,36 @@ "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" }, "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" } } }, "http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, "http-proxy": { "version": "1.18.1", @@ -25556,6 +28102,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -25580,9 +28127,9 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { "agent-base": "6", "debug": "4" @@ -25597,7 +28144,7 @@ "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "requires": { "ms": "^2.0.0" } @@ -25627,17 +28174,35 @@ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" }, "ignore-walk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", - "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", "requires": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "optional": true }, "immutable": { @@ -25691,6 +28256,11 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz", + "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==" + }, "inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", @@ -25707,9 +28277,9 @@ } }, "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -25721,10 +28291,11 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -25769,6 +28340,16 @@ "requires": { "has-flag": "^4.0.0" } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, @@ -25790,14 +28371,14 @@ } }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" }, "is-arguments": { "version": "1.1.0", @@ -25810,7 +28391,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.1", @@ -25853,9 +28434,9 @@ } }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } @@ -25911,7 +28492,7 @@ "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, "is-negative-zero": { "version": "2.0.1", @@ -25937,15 +28518,11 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "optional": true }, "is-plain-obj": { "version": "3.0.0", @@ -26229,11 +28806,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -26270,7 +28842,8 @@ "jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "optional": true }, "jsonfile": { "version": "6.1.0", @@ -26463,9 +29036,9 @@ "optional": true }, "less": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", - "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", "requires": { "copy-anything": "^2.0.1", "errno": "^0.1.1", @@ -26473,7 +29046,7 @@ "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", - "needle": "^2.5.2", + "needle": "^3.1.0", "parse-node-version": "^1.0.1", "source-map": "~0.6.0", "tslib": "^2.3.0" @@ -26495,6 +29068,12 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "optional": true }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "optional": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -26510,9 +29089,9 @@ } }, "less-loader": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", - "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.0.0.tgz", + "integrity": "sha512-9+LOWWjuoectIEx3zrfN83NAGxSUB5pWEabbbidVQVgZhN+wN68pOvuyirVlH1IK4VT1f3TmlyvAnCXh8O5KEw==", "requires": { "klona": "^2.0.4" } @@ -26738,7 +29317,7 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "lodash.get": { "version": "4.4.2", @@ -26905,6 +29484,7 @@ "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "devOptional": true, "requires": { "sourcemap-codec": "^1.4.4" } @@ -26931,26 +29511,48 @@ "dev": true }, "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "dependencies": { + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "lru-cache": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", + "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==" + } } }, "map-stream": { @@ -26975,11 +29577,11 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "memfs": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.3.tgz", - "integrity": "sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", "requires": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" } }, "merge-descriptors": { @@ -27035,16 +29637,16 @@ "peer": true }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.52.0" } }, "mimic-fn": { @@ -27053,17 +29655,17 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "requires": { "schema-utils": "^4.0.0" }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -27191,9 +29793,9 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "requires": { "yallist": "^4.0.0" } @@ -27207,14 +29809,14 @@ } }, "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", + "encoding": "^0.1.13", + "minipass": "^3.1.6", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" } }, "minipass-flush": { @@ -27269,6 +29871,8 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "optional": true, + "peer": true, "requires": { "minimist": "^1.2.5" } @@ -27330,19 +29934,14 @@ } }, "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "requires": { - "dns-packet": "^1.3.1", + "dns-packet": "^5.2.2", "thunky": "^1.0.2" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, "multisplice": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/multisplice/-/multisplice-1.0.0.tgz", @@ -27412,9 +30011,9 @@ } }, "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "natural-compare": { "version": "1.4.0", @@ -27423,13 +30022,13 @@ "dev": true }, "needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", + "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", "optional": true, "requires": { "debug": "^3.2.6", - "iconv-lite": "^0.4.4", + "iconv-lite": "^0.6.3", "sax": "^1.2.4" }, "dependencies": { @@ -27441,13 +30040,22 @@ "requires": { "ms": "^2.1.1" } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } } } }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "neo-async": { "version": "2.6.2", @@ -27528,30 +30136,20 @@ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" }, "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", + "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.2", "which": "^2.0.2" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } } }, "node-gyp-build": { @@ -27561,16 +30159,27 @@ "optional": true }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", "requires": { - "abbrev": "1" + "abbrev": "^1.0.0" + } + }, + "normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "requires": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" } }, "normalize-path": { @@ -27581,7 +30190,7 @@ "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" }, "npm-bundled": { "version": "1.1.2", @@ -27592,9 +30201,9 @@ } }, "npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz", + "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==", "requires": { "semver": "^7.1.1" } @@ -27605,98 +30214,93 @@ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" }, "npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "requires": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" } }, "npm-packlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", - "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", "requires": { - "glob": "^7.1.6", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "requires": { + "npm-normalize-package-bin": "^2.0.0" + } + }, + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==" + } } }, "npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz", + "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==", "requires": { - "npm-install-checks": "^4.0.0", + "npm-install-checks": "^5.0.0", "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" } }, "npm-registry-fetch": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", - "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", + "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", "requires": { - "make-fetch-happen": "^10.0.1", + "make-fetch-happen": "^10.0.6", "minipass": "^3.1.6", - "minipass-fetch": "^1.4.1", + "minipass-fetch": "^2.0.3", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^8.1.5" - }, - "dependencies": { - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "lru-cache": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.4.0.tgz", - "integrity": "sha512-YOfuyWa/Ee+PXbDm40j9WXyJrzQUynVbgn4Km643UYcWNcrSfRkKL0WaiUcxcIbkXcVTgNpDqSnPXntWXT75cw==" - }, - "make-fetch-happen": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.3.tgz", - "integrity": "sha512-CzarPHynPpHjhF5in/YapnO44rSZeYX5VCMfdXa99+gLwpbfFLh20CWa6dP/taV9Net9PWJwXNKtp/4ZTCQnag==", - "requires": { - "agentkeepalive": "^4.2.0", - "cacache": "^15.3.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.3.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.4.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.1.1", - "ssri": "^8.0.1" - } - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - } + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" } }, "npm-run-path": { @@ -27708,13 +30312,13 @@ } }, "npmlog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", - "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "requires": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", + "gauge": "^4.0.3", "set-blocking": "^2.0.0" } }, @@ -27781,6 +30385,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "devOptional": true, "requires": { "ee-first": "1.1.1" } @@ -27926,7 +30531,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "ospath": { "version": "1.2.2", @@ -27990,29 +30595,31 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pacote": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", - "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", + "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", "requires": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", - "cacache": "^15.0.5", + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/run-script": "^4.1.0", + "cacache": "^16.0.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^3.0.0", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^12.0.0", + "minipass": "^3.1.6", + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^5.1.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" + "ssri": "^9.0.0", + "tar": "^6.1.11" }, "dependencies": { "mkdirp": { @@ -28191,10 +30798,9 @@ "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "optional": true + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" }, "piscina": { "version": "3.2.0", @@ -28226,26 +30832,6 @@ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "peer": true }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, "portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", @@ -28257,90 +30843,100 @@ } }, "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "requires": { - "nanoid": "^3.1.30", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" } }, "postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", "requires": { - "postcss-selector-parser": "^6.0.2" + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "requires": { + "postcss-value-parser": "^4.2.0" } }, "postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "requires": {} + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } }, "postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", + "version": "12.1.10", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.10.tgz", + "integrity": "sha512-U3BHdgrYhCrwTVcByFHs9EOBoqcKq4Lf3kXwbTi4hhq0qWhl/pDWq2THbv/ICX/Fl9KqeHBb8OVrTf2OaYF07A==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", "requires": { "postcss-selector-parser": "^6.0.4" } }, "postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", "requires": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" } }, "postcss-double-position-gradients": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.0.tgz", - "integrity": "sha512-oz73I08yMN3oxjj0s8mED1rG+uOYoK3H8N9RjQofyg52KBRNmePJKg3fVwTpL2U5ZFbCzXoZBsUD/CvZdlqE4Q==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", "requires": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" } }, "postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", "requires": { "postcss-value-parser": "^4.2.0" } @@ -28368,23 +30964,23 @@ "requires": {} }, "postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", "requires": {} }, "postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-import": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", - "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.0.0.tgz", + "integrity": "sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==", "requires": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -28398,22 +30994,32 @@ "requires": {} }, "postcss-lab-function": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.1.tgz", - "integrity": "sha512-j3Z0WQCimY2tMle++YcmygnnVbt6XdnrCV1FO2IpzaCSmtTF2oO8h4ZYUA1Q+QHYroIiaWPvNHt9uBR4riCksQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", "requires": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" } }, "postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", + "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", "requires": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", - "semver": "^7.3.5" + "semver": "^7.3.7" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "postcss-logical": { @@ -28461,18 +31067,26 @@ } }, "postcss-nesting": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", - "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", "requires": { - "postcss-selector-parser": "^6.0.8" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" } }, + "postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" + }, "postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "requires": {} + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "requires": { + "postcss-value-parser": "^4.2.0" + } }, "postcss-page-break": { "version": "3.0.4", @@ -28481,59 +31095,75 @@ "requires": {} }, "postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-preset-env": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", - "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz", + "integrity": "sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA==", "requires": { - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001299", - "css-blank-pseudo": "^3.0.2", - "css-has-pseudo": "^3.0.3", - "css-prefers-color-scheme": "^6.0.2", - "cssdb": "^5.0.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.1", - "postcss-color-hex-alpha": "^8.0.2", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.2", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.3", - "postcss-double-position-gradients": "^3.0.4", - "postcss-env-function": "^4.0.4", - "postcss-focus-visible": "^6.0.3", - "postcss-focus-within": "^5.0.3", + "@csstools/postcss-cascade-layers": "^1.0.5", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.8", + "browserslist": "^4.21.3", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.0.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.8", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.2", - "postcss-image-set-function": "^4.0.4", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.0.3", - "postcss-logical": "^5.0.3", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-overflow-shorthand": "^3.0.2", + "postcss-nesting": "^10.1.10", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.3", - "postcss-pseudo-class-any-link": "^7.0.2", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" } }, "postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", "requires": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" } }, "postcss-replace-overflow-wrap": { @@ -28543,17 +31173,17 @@ "requires": {} }, "postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", "requires": { - "balanced-match": "^1.0.0" + "postcss-selector-parser": "^6.0.10" } }, "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -28585,6 +31215,11 @@ "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" }, + "proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==" + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -28598,7 +31233,7 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" }, "promise-retry": { "version": "2.0.1", @@ -28610,12 +31245,19 @@ } }, "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + } } }, "proxy-from-env": { @@ -28627,7 +31269,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "optional": true }, "ps-tree": { @@ -28761,45 +31403,22 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "dev": true, + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" - }, - "dependencies": { - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - } } }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "requires": { "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "read-only-stream": { @@ -28810,6 +31429,52 @@ "readable-stream": "^2.0.2" } }, + "read-package-json": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", + "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", + "requires": { + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==" + } + } + }, "read-package-json-fast": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", @@ -28859,9 +31524,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "requires": { "regenerate": "^1.4.2" } @@ -28872,9 +31537,9 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "requires": { "@babel/runtime": "^7.8.4" } @@ -28900,27 +31565,27 @@ "dev": true }, "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "requires": { "jsesc": "~0.5.0" }, @@ -28928,7 +31593,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" } } }, @@ -28962,11 +31627,11 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -29034,7 +31699,7 @@ "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" }, "reusify": { "version": "1.0.4", @@ -29103,9 +31768,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "version": "1.54.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", + "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -29113,16 +31778,16 @@ }, "dependencies": { "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==" } } }, "sass-loader": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", - "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", + "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", "requires": { "klona": "^2.0.4", "neo-async": "^2.6.2" @@ -29173,12 +31838,12 @@ "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "requires": { "node-forge": "^1" } @@ -29347,9 +32012,9 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "sha.js": { "version": "2.4.11", @@ -29394,6 +32059,16 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -29561,22 +32236,32 @@ } }, "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "requires": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "requires": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + } } }, "source-map": { @@ -29590,13 +32275,13 @@ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.0.tgz", + "integrity": "sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw==", "requires": { - "abab": "^2.0.5", + "abab": "^2.0.6", "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "dependencies": { "iconv-lite": { @@ -29609,15 +32294,6 @@ } } }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -29639,6 +32315,34 @@ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==" + }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -29703,9 +32407,9 @@ } }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "requires": { "minipass": "^3.1.1" } @@ -29840,25 +32544,24 @@ "dev": true }, "stylus": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", - "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", + "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==", "requires": { - "css": "^3.0.0", + "@adobe/css-tools": "^4.0.1", "debug": "^4.3.2", "glob": "^7.1.6", - "safer-buffer": "^2.1.2", "sax": "~1.2.4", "source-map": "^0.7.3" } }, "stylus-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", - "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-7.0.0.tgz", + "integrity": "sha512-WTbtLrNfOfLgzTaR9Lj/BPhQroKk/LC1hfTXSUbrxmxgfUo3Y3LpmKRVA2R1XbjvTAvOfaian9vOyfv1z99E+A==", "requires": { - "fast-glob": "^3.2.7", - "klona": "^2.0.4", + "fast-glob": "^3.2.11", + "klona": "^2.0.5", "normalize-path": "^3.0.0" } }, @@ -29907,9 +32610,9 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", + "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -29927,13 +32630,13 @@ } }, "terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "requires": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "dependencies": { @@ -30116,7 +32819,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-regex-range": { "version": "5.0.1", @@ -30127,9 +32830,9 @@ } }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "tough-cookie": { "version": "4.0.0", @@ -30417,14 +33120,14 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==" }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" }, "unique-filename": { "version": "1.1.1", @@ -30458,6 +33161,15 @@ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "optional": true }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", @@ -30509,12 +33221,21 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "builtins": "^1.0.3" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "requires": { + "builtins": "^5.0.0" } }, "vary": { @@ -30576,9 +33297,9 @@ } }, "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -30607,40 +33328,40 @@ "dev": true }, "webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==" + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" }, "acorn-import-assertions": { "version": "1.7.6", @@ -30661,21 +33382,21 @@ } }, "webpack-dev-middleware": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", - "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "requires": { "colorette": "^2.0.10", - "memfs": "^3.2.2", + "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -30700,9 +33421,9 @@ } }, "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, "json-schema-traverse": { "version": "1.0.0", @@ -30723,45 +33444,45 @@ } }, "webpack-dev-server": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", - "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "requires": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", + "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.2", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", + "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", + "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", + "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", + "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", + "selfsigned": "^2.0.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.0", - "ws": "^8.1.0" + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -30785,20 +33506,15 @@ "fast-deep-equal": "^3.1.3" } }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" }, "json-schema-traverse": { "version": "1.0.0", @@ -30816,18 +33532,10 @@ "ajv-keywords": "^5.0.0" } }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, "ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "requires": {} } } @@ -30895,6 +33603,14 @@ "webidl-conversions": "^6.1.0" } }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index 9423eb901..27c40da57 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -64,25 +64,25 @@ "cypress:run:ci:staging": "node update-config.js TESTNET_ENABLED=true SIGNET_ENABLED=true LIQUID_ENABLED=true BISQ_ENABLED=true ITEMS_PER_PAGE=25 && npm run generate-config && start-server-and-test serve:local-staging 4200 cypress:run:record" }, "dependencies": { - "@angular-devkit/build-angular": "~13.3.7", - "@angular/animations": "~13.3.10", - "@angular/cli": "~13.3.7", - "@angular/common": "~13.3.10", - "@angular/compiler": "~13.3.10", - "@angular/core": "~13.3.10", - "@angular/forms": "~13.3.10", - "@angular/localize": "~13.3.10", - "@angular/platform-browser": "~13.3.10", - "@angular/platform-browser-dynamic": "~13.3.10", - "@angular/platform-server": "~13.3.10", - "@angular/router": "~13.3.10", + "@angular-devkit/build-angular": "^14.2.10", + "@angular/animations": "^14.2.12", + "@angular/cli": "^14.2.10", + "@angular/common": "^14.2.12", + "@angular/compiler": "^14.2.12", + "@angular/core": "^14.2.12", + "@angular/forms": "^14.2.12", + "@angular/localize": "^14.2.12", + "@angular/platform-browser": "^14.2.12", + "@angular/platform-browser-dynamic": "^14.2.12", + "@angular/platform-server": "^14.2.12", + "@angular/router": "^14.2.12", "@fortawesome/angular-fontawesome": "~0.10.2", "@fortawesome/fontawesome-common-types": "~6.1.1", "@fortawesome/fontawesome-svg-core": "~6.1.1", "@fortawesome/free-solid-svg-icons": "~6.1.1", "@mempool/mempool.js": "2.3.0", "@ng-bootstrap/ng-bootstrap": "^11.0.0", - "@nguniversal/express-engine": "~13.1.1", + "@nguniversal/express-engine": "^13.1.1", "@types/qrcode": "~1.4.2", "bootstrap": "~4.5.0", "browserify": "^17.0.0", @@ -102,9 +102,9 @@ "zone.js": "~0.11.5" }, "devDependencies": { - "@angular/compiler-cli": "~13.3.10", - "@angular/language-service": "~13.3.10", - "@nguniversal/builders": "~13.1.1", + "@angular/compiler-cli": "^14.2.12", + "@angular/language-service": "^14.2.12", + "@nguniversal/builders": "^13.1.1", "@types/express": "^4.17.0", "@types/node": "^12.11.1", "@typescript-eslint/eslint-plugin": "^5.30.5", @@ -126,4 +126,4 @@ "scarfSettings": { "enabled": false } -} +} \ No newline at end of file diff --git a/frontend/src/app/app-routing.module.ts b/frontend/src/app/app-routing.module.ts index d9c6a93bb..90ea84a82 100644 --- a/frontend/src/app/app-routing.module.ts +++ b/frontend/src/app/app-routing.module.ts @@ -627,7 +627,7 @@ if (browserWindowEnv && browserWindowEnv.BASE_MODULE === 'liquid') { @NgModule({ imports: [RouterModule.forRoot(routes, { - initialNavigation: 'enabled', + initialNavigation: 'enabledBlocking', scrollPositionRestoration: 'enabled', anchorScrolling: 'enabled', preloadingStrategy: AppPreloadingStrategy diff --git a/frontend/src/app/bisq/bisq-market/bisq-market.component.ts b/frontend/src/app/bisq/bisq-market/bisq-market.component.ts index fb5967c63..c9dde4115 100644 --- a/frontend/src/app/bisq/bisq-market/bisq-market.component.ts +++ b/frontend/src/app/bisq/bisq-market/bisq-market.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { combineLatest, merge, Observable, of } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; @@ -19,7 +19,7 @@ export class BisqMarketComponent implements OnInit, OnDestroy { currency$: Observable; offers$: Observable; trades$: Observable; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; defaultInterval = 'day'; isLoadingGraph = false; @@ -28,7 +28,7 @@ export class BisqMarketComponent implements OnInit, OnDestroy { private websocketService: WebsocketService, private route: ActivatedRoute, private bisqApiService: BisqApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private seoService: SeoService, private router: Router, ) { } diff --git a/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.ts b/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.ts index 9c58577e3..212030e77 100644 --- a/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.ts +++ b/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.ts @@ -5,7 +5,7 @@ import { Observable, Subscription } from 'rxjs'; import { switchMap, map, tap } from 'rxjs/operators'; import { BisqApiService } from '../bisq-api.service'; import { SeoService } from '../../services/seo.service'; -import { FormGroup, FormBuilder } from '@angular/forms'; +import { UntypedFormGroup, UntypedFormBuilder } from '@angular/forms'; import { Router, ActivatedRoute } from '@angular/router'; import { IMultiSelectOption, IMultiSelectSettings, IMultiSelectTexts } from '../../components/ngx-bootstrap-multiselect/types' import { WebsocketService } from '../../services/websocket.service'; @@ -23,7 +23,7 @@ export class BisqTransactionsComponent implements OnInit, OnDestroy { fiveItemsPxSize = 250; isLoading = true; loadingItems: number[]; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; types: string[] = []; radioGroupSubscription: Subscription; @@ -70,7 +70,7 @@ export class BisqTransactionsComponent implements OnInit, OnDestroy { private websocketService: WebsocketService, private bisqApiService: BisqApiService, private seoService: SeoService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private route: ActivatedRoute, private router: Router, private cd: ChangeDetectorRef, diff --git a/frontend/src/app/components/assets/assets-nav/assets-nav.component.ts b/frontend/src/app/components/assets/assets-nav/assets-nav.component.ts index acac8bafb..bc38d3c10 100644 --- a/frontend/src/app/components/assets/assets-nav/assets-nav.component.ts +++ b/frontend/src/app/components/assets/assets-nav/assets-nav.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { Router } from '@angular/router'; import { NgbTypeahead } from '@ng-bootstrap/ng-bootstrap'; import { merge, Observable, of, Subject } from 'rxjs'; @@ -19,7 +19,7 @@ import { environment } from '../../../../environments/environment'; export class AssetsNavComponent implements OnInit { @ViewChild('instance', {static: true}) instance: NgbTypeahead; nativeAssetId = this.stateService.network === 'liquidtestnet' ? environment.nativeTestAssetId : environment.nativeAssetId; - searchForm: FormGroup; + searchForm: UntypedFormGroup; assetsCache: AssetExtended[]; typeaheadSearchFn: ((text: Observable) => Observable); @@ -30,7 +30,7 @@ export class AssetsNavComponent implements OnInit { itemsPerPage = 15; constructor( - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private seoService: SeoService, private router: Router, private assetsService: AssetsService, diff --git a/frontend/src/app/components/assets/assets.component.ts b/frontend/src/app/components/assets/assets.component.ts index bd046ae7a..85d236bca 100644 --- a/frontend/src/app/components/assets/assets.component.ts +++ b/frontend/src/app/components/assets/assets.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core'; import { AssetsService } from '../../services/assets.service'; import { environment } from '../../../environments/environment'; -import { FormGroup } from '@angular/forms'; +import { UntypedFormGroup } from '@angular/forms'; import { filter, map, switchMap, take } from 'rxjs/operators'; import { ActivatedRoute, Router } from '@angular/router'; import { combineLatest, Observable } from 'rxjs'; @@ -22,7 +22,7 @@ export class AssetsComponent implements OnInit { assets: AssetExtended[]; assetsCache: AssetExtended[]; - searchForm: FormGroup; + searchForm: UntypedFormGroup; assets$: Observable; page = 1; diff --git a/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts b/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts index d05fbdfb9..762e49c74 100644 --- a/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts +++ b/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts @@ -5,7 +5,7 @@ import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { SeoService } from '../../services/seo.service'; import { formatNumber } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { download, formatterXAxis, formatterXAxisLabel, formatterXAxisTimeCategory } from '../../shared/graphs.utils'; import { StorageService } from '../../services/storage.service'; import { MiningService } from '../../services/mining.service'; @@ -33,7 +33,7 @@ export class BlockFeeRatesGraphComponent implements OnInit { @Input() left: number | string = 75; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -50,7 +50,7 @@ export class BlockFeeRatesGraphComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private apiService: ApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private storageService: StorageService, private miningService: MiningService, private stateService: StateService, diff --git a/frontend/src/app/components/block-fees-graph/block-fees-graph.component.ts b/frontend/src/app/components/block-fees-graph/block-fees-graph.component.ts index c88e43019..0c2f228b8 100644 --- a/frontend/src/app/components/block-fees-graph/block-fees-graph.component.ts +++ b/frontend/src/app/components/block-fees-graph/block-fees-graph.component.ts @@ -5,7 +5,7 @@ import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { SeoService } from '../../services/seo.service'; import { formatCurrency, formatNumber, getCurrencySymbol } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { download, formatterXAxis, formatterXAxisLabel, formatterXAxisTimeCategory } from '../../shared/graphs.utils'; import { StorageService } from '../../services/storage.service'; import { MiningService } from '../../services/mining.service'; @@ -31,7 +31,7 @@ export class BlockFeesGraphComponent implements OnInit { @Input() left: number | string = 75; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -48,7 +48,7 @@ export class BlockFeesGraphComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private apiService: ApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private storageService: StorageService, private miningService: MiningService, private route: ActivatedRoute, diff --git a/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.ts b/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.ts index 289a1e2d3..e04565751 100644 --- a/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.ts +++ b/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.ts @@ -5,7 +5,7 @@ import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { SeoService } from '../../services/seo.service'; import { formatNumber } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { download, formatterXAxis, formatterXAxisLabel, formatterXAxisTimeCategory } from '../../shared/graphs.utils'; import { StorageService } from '../../services/storage.service'; import { ActivatedRoute, Router } from '@angular/router'; @@ -31,7 +31,7 @@ export class BlockPredictionGraphComponent implements OnInit { @Input() left: number | string = 75; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -48,7 +48,7 @@ export class BlockPredictionGraphComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private apiService: ApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private storageService: StorageService, private zone: NgZone, private route: ActivatedRoute, diff --git a/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.ts b/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.ts index cba39eae5..fe80b0c97 100644 --- a/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.ts +++ b/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.ts @@ -5,7 +5,7 @@ import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { SeoService } from '../../services/seo.service'; import { formatCurrency, formatNumber, getCurrencySymbol } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { download, formatterXAxis, formatterXAxisLabel, formatterXAxisTimeCategory } from '../../shared/graphs.utils'; import { MiningService } from '../../services/mining.service'; import { StorageService } from '../../services/storage.service'; @@ -31,7 +31,7 @@ export class BlockRewardsGraphComponent implements OnInit { @Input() left: number | string = 75; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -48,7 +48,7 @@ export class BlockRewardsGraphComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private apiService: ApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private miningService: MiningService, private storageService: StorageService, private route: ActivatedRoute, diff --git a/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts b/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts index 6b5b1f047..bc3c642db 100644 --- a/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts +++ b/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts @@ -5,7 +5,7 @@ import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { SeoService } from '../../services/seo.service'; import { formatNumber } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { StorageService } from '../../services/storage.service'; import { MiningService } from '../../services/mining.service'; import { ActivatedRoute } from '@angular/router'; @@ -30,7 +30,7 @@ export class BlockSizesWeightsGraphComponent implements OnInit { @Input() left: number | string = 75; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -49,7 +49,7 @@ export class BlockSizesWeightsGraphComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private apiService: ApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private storageService: StorageService, private miningService: MiningService, private route: ActivatedRoute, diff --git a/frontend/src/app/components/hashrate-chart/hashrate-chart.component.ts b/frontend/src/app/components/hashrate-chart/hashrate-chart.component.ts index 50479f5d1..53bb33be3 100644 --- a/frontend/src/app/components/hashrate-chart/hashrate-chart.component.ts +++ b/frontend/src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -5,7 +5,7 @@ import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { SeoService } from '../../services/seo.service'; import { formatNumber } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { selectPowerOfTen } from '../../bitcoin.utils'; import { StorageService } from '../../services/storage.service'; import { MiningService } from '../../services/mining.service'; @@ -34,7 +34,7 @@ export class HashrateChartComponent implements OnInit { @Input() left: number | string = 75; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -54,7 +54,7 @@ export class HashrateChartComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private apiService: ApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private storageService: StorageService, private miningService: MiningService, private route: ActivatedRoute, diff --git a/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts b/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts index dc0d5b5ed..ed3683e9b 100644 --- a/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts +++ b/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts @@ -4,7 +4,7 @@ import { Observable } from 'rxjs'; import { delay, map, retryWhen, share, startWith, switchMap, tap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { SeoService } from '../../services/seo.service'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { poolsColor } from '../../app.constants'; import { StorageService } from '../../services/storage.service'; import { MiningService } from '../../services/mining.service'; @@ -30,7 +30,7 @@ export class HashrateChartPoolsComponent implements OnInit { @Input() left: number | string = 25; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -48,7 +48,7 @@ export class HashrateChartPoolsComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private apiService: ApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private cd: ChangeDetectorRef, private storageService: StorageService, private miningService: MiningService, diff --git a/frontend/src/app/components/language-selector/language-selector.component.ts b/frontend/src/app/components/language-selector/language-selector.component.ts index 9fc2be6f7..2b9e559f0 100644 --- a/frontend/src/app/components/language-selector/language-selector.component.ts +++ b/frontend/src/app/components/language-selector/language-selector.component.ts @@ -1,6 +1,6 @@ import { DOCUMENT } from '@angular/common'; import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { languages } from '../../app.constants'; import { LanguageService } from '../../services/language.service'; @@ -11,12 +11,12 @@ import { LanguageService } from '../../services/language.service'; changeDetection: ChangeDetectionStrategy.OnPush }) export class LanguageSelectorComponent implements OnInit { - languageForm: FormGroup; + languageForm: UntypedFormGroup; languages = languages; constructor( @Inject(DOCUMENT) private document: Document, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private languageService: LanguageService, ) { } diff --git a/frontend/src/app/components/ngx-bootstrap-multiselect/ngx-bootstrap-multiselect.component.ts b/frontend/src/app/components/ngx-bootstrap-multiselect/ngx-bootstrap-multiselect.component.ts index 50b195905..8c5dcbfcb 100644 --- a/frontend/src/app/components/ngx-bootstrap-multiselect/ngx-bootstrap-multiselect.component.ts +++ b/frontend/src/app/components/ngx-bootstrap-multiselect/ngx-bootstrap-multiselect.component.ts @@ -17,8 +17,8 @@ import { import { AbstractControl, ControlValueAccessor, - FormBuilder, - FormControl, + UntypedFormBuilder, + UntypedFormControl, NG_VALUE_ACCESSOR, Validator, } from '@angular/forms'; @@ -52,7 +52,7 @@ export class NgxDropdownMultiselectComponent implements OnInit, private localIsVisible = false; private workerDocClicked = false; - filterControl: FormControl = this.fb.control(''); + filterControl: UntypedFormControl = this.fb.control(''); @Input() options: Array; @Input() settings: IMultiSelectSettings; @@ -151,7 +151,7 @@ export class NgxDropdownMultiselectComponent implements OnInit, } constructor( - private fb: FormBuilder, + private fb: UntypedFormBuilder, private searchFilter: MultiSelectSearchFilter, differs: IterableDiffers, private cdRef: ChangeDetectorRef diff --git a/frontend/src/app/components/pool-ranking/pool-ranking.component.ts b/frontend/src/app/components/pool-ranking/pool-ranking.component.ts index 57542fd30..3460470ce 100644 --- a/frontend/src/app/components/pool-ranking/pool-ranking.component.ts +++ b/frontend/src/app/components/pool-ranking/pool-ranking.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, Input, NgZone, OnInit, HostBinding } from '@angular/core'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { EChartsOption, PieSeriesOption } from 'echarts'; import { concat, Observable } from 'rxjs'; @@ -24,7 +24,7 @@ export class PoolRankingComponent implements OnInit { @Input() widget = false; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; isLoading = true; chartOptions: EChartsOption = {}; @@ -41,7 +41,7 @@ export class PoolRankingComponent implements OnInit { constructor( private stateService: StateService, private storageService: StorageService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private miningService: MiningService, private seoService: SeoService, private router: Router, diff --git a/frontend/src/app/components/push-transaction/push-transaction.component.ts b/frontend/src/app/components/push-transaction/push-transaction.component.ts index a4eb375a6..8ee2af3f7 100644 --- a/frontend/src/app/components/push-transaction/push-transaction.component.ts +++ b/frontend/src/app/components/push-transaction/push-transaction.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { ApiService } from '../../services/api.service'; @Component({ @@ -8,13 +8,13 @@ import { ApiService } from '../../services/api.service'; styleUrls: ['./push-transaction.component.scss'] }) export class PushTransactionComponent implements OnInit { - pushTxForm: FormGroup; + pushTxForm: UntypedFormGroup; error: string = ''; txId: string = ''; isLoading = false; constructor( - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private apiService: ApiService, ) { } diff --git a/frontend/src/app/components/search-form/search-form.component.ts b/frontend/src/app/components/search-form/search-form.component.ts index fe64b0f39..a4dbf5985 100644 --- a/frontend/src/app/components/search-form/search-form.component.ts +++ b/frontend/src/app/components/search-form/search-form.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, ChangeDetectionStrategy, EventEmitter, Output, ViewChild, HostListener, ElementRef } from '@angular/core'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { Router } from '@angular/router'; import { AssetsService } from '../../services/assets.service'; import { StateService } from '../../services/state.service'; @@ -22,7 +22,7 @@ export class SearchFormComponent implements OnInit { isSearching = false; isTypeaheading$ = new BehaviorSubject(false); typeAhead$: Observable; - searchForm: FormGroup; + searchForm: UntypedFormGroup; dropdownHidden = false; @HostListener('document:click', ['$event']) @@ -48,7 +48,7 @@ export class SearchFormComponent implements OnInit { } constructor( - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private router: Router, private assetsService: AssetsService, private stateService: StateService, diff --git a/frontend/src/app/components/statistics/statistics.component.ts b/frontend/src/app/components/statistics/statistics.component.ts index 2a2b5c058..13f3df0bc 100644 --- a/frontend/src/app/components/statistics/statistics.component.ts +++ b/frontend/src/app/components/statistics/statistics.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, LOCALE_ID, Inject, ViewChild, ElementRef } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { FormGroup, FormBuilder } from '@angular/forms'; +import { UntypedFormGroup, UntypedFormBuilder } from '@angular/forms'; import { of, merge} from 'rxjs'; import { switchMap } from 'rxjs/operators'; @@ -39,7 +39,7 @@ export class StatisticsComponent implements OnInit { mempoolUnconfirmedTransactionsData: any; mempoolTransactionsWeightPerSecondData: any; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; graphWindowPreference: string; inverted: boolean; feeLevelDropdownData = []; @@ -47,7 +47,7 @@ export class StatisticsComponent implements OnInit { constructor( @Inject(LOCALE_ID) private locale: string, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private route: ActivatedRoute, private websocketService: WebsocketService, private apiService: ApiService, diff --git a/frontend/src/app/docs/docs.routing.module.ts b/frontend/src/app/docs/docs.routing.module.ts index 0f01016de..e58ddecd7 100644 --- a/frontend/src/app/docs/docs.routing.module.ts +++ b/frontend/src/app/docs/docs.routing.module.ts @@ -31,6 +31,7 @@ if (browserWindowEnv.BASE_MODULE && (browserWindowEnv.BASE_MODULE === 'bisq' || routes = [ { path: '', + pathMatch: 'full', redirectTo: 'faq' }, { diff --git a/frontend/src/app/graphs/graphs.routing.module.ts b/frontend/src/app/graphs/graphs.routing.module.ts index bf0e0a0a7..a31f3a30a 100644 --- a/frontend/src/app/graphs/graphs.routing.module.ts +++ b/frontend/src/app/graphs/graphs.routing.module.ts @@ -139,6 +139,7 @@ const routes: Routes = [ }, { path: '', + pathMatch: 'full', redirectTo: 'mempool', }, { diff --git a/frontend/src/app/lightning/channels-list/channels-list.component.ts b/frontend/src/app/lightning/channels-list/channels-list.component.ts index 230202d76..d083178c0 100644 --- a/frontend/src/app/lightning/channels-list/channels-list.component.ts +++ b/frontend/src/app/lightning/channels-list/channels-list.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { BehaviorSubject, merge, Observable } from 'rxjs'; import { map, switchMap, tap } from 'rxjs/operators'; import { isMobile } from '../../shared/common.utils'; @@ -23,7 +23,7 @@ export class ChannelsListComponent implements OnInit, OnChanges { itemsPerPage = 10; page = 1; channelsPage$ = new BehaviorSubject(1); - channelStatusForm: FormGroup; + channelStatusForm: UntypedFormGroup; defaultStatus = 'open'; status = 'open'; publicKeySize = 25; @@ -31,7 +31,7 @@ export class ChannelsListComponent implements OnInit, OnChanges { constructor( private lightningApiService: LightningApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, ) { this.channelStatusForm = this.formBuilder.group({ status: [this.defaultStatus], diff --git a/frontend/src/app/lightning/group/group.component.ts b/frontend/src/app/lightning/group/group.component.ts index 0517bea32..71ca17a4a 100644 --- a/frontend/src/app/lightning/group/group.component.ts +++ b/frontend/src/app/lightning/group/group.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { map, Observable, share } from 'rxjs'; import { SeoService } from '../../services/seo.service'; import { GeolocationData } from '../../shared/components/geolocation/geolocation.component'; @@ -17,12 +17,12 @@ export class GroupComponent implements OnInit { skeletonLines: number[] = []; selectedSocketIndex = 0; qrCodeVisible = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - socketToggleForm: FormGroup; + socketToggleForm: UntypedFormGroup; constructor( private lightningApiService: LightningApiService, private seoService: SeoService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, ) { for (let i = 0; i < 20; ++i) { this.skeletonLines.push(i); diff --git a/frontend/src/app/lightning/node-statistics-chart/node-statistics-chart.component.ts b/frontend/src/app/lightning/node-statistics-chart/node-statistics-chart.component.ts index d4aca013c..91384b31b 100644 --- a/frontend/src/app/lightning/node-statistics-chart/node-statistics-chart.component.ts +++ b/frontend/src/app/lightning/node-statistics-chart/node-statistics-chart.component.ts @@ -3,7 +3,7 @@ import { EChartsOption } from 'echarts'; import { Observable } from 'rxjs'; import { switchMap, tap } from 'rxjs/operators'; import { formatNumber } from '@angular/common'; -import { FormGroup } from '@angular/forms'; +import { UntypedFormGroup } from '@angular/forms'; import { StorageService } from '../../services/storage.service'; import { download } from '../../shared/graphs.utils'; import { LightningApiService } from '../lightning-api.service'; @@ -29,7 +29,7 @@ export class NodeStatisticsChartComponent implements OnInit { @Input() widget = false; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { diff --git a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts index 70e32cfe8..46f8b12e8 100644 --- a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts +++ b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -3,7 +3,7 @@ import { EChartsOption, graphic, LineSeriesOption} from 'echarts'; import { Observable } from 'rxjs'; import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { formatNumber } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { StorageService } from '../../services/storage.service'; import { MiningService } from '../../services/mining.service'; import { download } from '../../shared/graphs.utils'; @@ -32,7 +32,7 @@ export class NodesNetworksChartComponent implements OnInit { @Input() widget = false; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -51,7 +51,7 @@ export class NodesNetworksChartComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private lightningApiService: LightningApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private storageService: StorageService, private miningService: MiningService, private amountShortenerPipe: AmountShortenerPipe, diff --git a/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts b/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts index 7667f57bb..4f209e7a0 100644 --- a/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts +++ b/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -4,7 +4,7 @@ import { Observable } from 'rxjs'; import { map, share, startWith, switchMap, tap } from 'rxjs/operators'; import { SeoService } from '../../services/seo.service'; import { formatNumber } from '@angular/common'; -import { FormBuilder, FormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { StorageService } from '../../services/storage.service'; import { MiningService } from '../../services/mining.service'; import { download } from '../../shared/graphs.utils'; @@ -31,7 +31,7 @@ export class LightningStatisticsChartComponent implements OnInit { @Input() widget = false; miningWindowPreference: string; - radioGroupForm: FormGroup; + radioGroupForm: UntypedFormGroup; chartOptions: EChartsOption = {}; chartInitOptions = { @@ -50,7 +50,7 @@ export class LightningStatisticsChartComponent implements OnInit { @Inject(LOCALE_ID) public locale: string, private seoService: SeoService, private lightningApiService: LightningApiService, - private formBuilder: FormBuilder, + private formBuilder: UntypedFormBuilder, private storageService: StorageService, private miningService: MiningService, private amountShortenerPipe: AmountShortenerPipe, From c8aea18c5e6fd5fb1fd209e5d50f18d73a679890 Mon Sep 17 00:00:00 2001 From: softsimon Date: Mon, 28 Nov 2022 16:00:50 +0900 Subject: [PATCH 0095/1466] Refactored ngb components --- frontend/package-lock.json | 859 ++++-------------- frontend/package.json | 7 +- .../bisq-market/bisq-market.component.html | 30 +- .../block-fee-rates-graph.component.html | 42 +- .../block-fees-graph.component.html | 30 +- .../block-prediction-graph.component.html | 42 +- .../block-rewards-graph.component.html | 30 +- .../block-sizes-weights-graph.component.html | 42 +- .../hashrate-chart.component.html | 26 +- .../hashrate-chart-pools.component.html | 22 +- .../pool-ranking/pool-ranking.component.html | 42 +- .../statistics/statistics.component.html | 44 +- .../channels-list.component.html | 10 +- .../app/lightning/group/group.component.html | 10 +- .../nodes-networks-chart.component.html | 30 +- .../lightning-statistics-chart.component.html | 44 +- frontend/src/app/shared/shared.module.ts | 6 +- 17 files changed, 384 insertions(+), 932 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index eb7555b28..5918f8ad3 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -26,10 +26,9 @@ "@fortawesome/fontawesome-svg-core": "~6.1.1", "@fortawesome/free-solid-svg-icons": "~6.1.1", "@mempool/mempool.js": "2.3.0", - "@ng-bootstrap/ng-bootstrap": "^11.0.0", - "@nguniversal/express-engine": "^13.1.1", + "@ng-bootstrap/ng-bootstrap": "^13.1.1", "@types/qrcode": "~1.4.2", - "bootstrap": "~4.5.0", + "bootstrap": "~4.6.1", "browserify": "^17.0.0", "clipboard": "^2.0.10", "domino": "^2.1.6", @@ -38,7 +37,7 @@ "express": "^4.17.1", "lightweight-charts": "~3.8.0", "ngx-echarts": "8.0.1", - "ngx-infinite-scroll": "^10.0.1", + "ngx-infinite-scroll": "^14.0.1", "qrcode": "1.5.0", "rxjs": "~7.5.5", "tinyify": "^3.0.0", @@ -3861,17 +3860,18 @@ } }, "node_modules/@ng-bootstrap/ng-bootstrap": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-11.0.0.tgz", - "integrity": "sha512-qDnB0+jbpQ4wjXpM4NPRAtwmgTDUCjGavoeRDZHOvFfYvx/MBf1RTjZEqTJ1Yqq1pKP4BWpzxCgVTunfnpmsjA==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-13.1.1.tgz", + "integrity": "sha512-R6qnmFKT2EwwijBHw7rUXqyo5W90OImHOv7BlsxMNnZLIksWIhqwU00k4UBTfRTnd6JsTPuj/co3MaP61ajILA==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/common": "^13.0.0", - "@angular/core": "^13.0.0", - "@angular/forms": "^13.0.0", - "@angular/localize": "^13.0.0", + "@angular/common": "^14.1.0", + "@angular/core": "^14.1.0", + "@angular/forms": "^14.1.0", + "@angular/localize": "^14.1.0", + "@popperjs/core": "^2.10.2", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -4321,321 +4321,6 @@ "node": ">=12" } }, - "node_modules/@nguniversal/express-engine": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.1.tgz", - "integrity": "sha512-NdiBP0IRbPrNYEMLy3a6os2mNgRNE84tsMn+mV2uF4wv1JNs3YyoXcucWvhgHdODbDtc6z4CGn8t/6KagRqmvA==", - "dependencies": { - "@nguniversal/common": "13.1.1", - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "^13.3.4", - "@angular/core": "^13.3.4", - "@angular/platform-server": "^13.3.4", - "express": "^4.15.2" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/@nguniversal/common": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-13.1.1.tgz", - "integrity": "sha512-DoAPA7+kUz+qMgCTUtRPFcMGY0zz8OSkOTZnxqO5sUYntD6mCEQImHU0WF4ud88j71o0Hv+AISJD1evAAANCdw==", - "dependencies": { - "critters": "0.0.16", - "jsdom": "19.0.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "^13.3.4", - "@angular/core": "^13.3.4" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" - }, - "node_modules/@nguniversal/express-engine/node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/data-urls/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/jsdom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", - "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.5.0", - "acorn-globals": "^6.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.1", - "decimal.js": "^10.3.1", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^3.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0", - "ws": "^8.2.3", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/@nguniversal/express-engine/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/whatwg-url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", - "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nguniversal/express-engine/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@nguniversal/express-engine/node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "engines": { - "node": ">=12" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4791,11 +4476,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@scarf/scarf": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.0.tgz", - "integrity": "sha512-b2iE8kjjzzUo2WZ0xuE2N77kfnTds7ClrDxcz3Atz7h2XrNVoAPUoT75i7CY0st5x++70V91Y+c6RpBX9MX7Jg==", - "hasInstallScript": true + "node_modules/@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } }, "node_modules/@schematics/angular": { "version": "12.2.17", @@ -4941,7 +4630,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true + "devOptional": true }, "node_modules/@tootallnate/once": { "version": "1.1.2", @@ -4993,12 +4682,6 @@ "@types/node": "*" } }, - "node_modules/@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "devOptional": true - }, "node_modules/@types/connect": { "version": "3.4.33", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", @@ -5836,6 +5519,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -6229,7 +5913,8 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "devOptional": true }, "node_modules/at-least-node": { "version": "1.0.0", @@ -6590,16 +6275,22 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "node_modules/bootstrap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.0.tgz", - "integrity": "sha512-Z93QoXvodoVslA+PWNdk23Hze4RBYIkpb5h8I2HY2Tu2h7A0LpAgLcyrhrSUyo2/Oxm2l1fRZPs1e5hnxnliXA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], "peerDependencies": { "jquery": "1.9.1 - 3", - "popper.js": "^1.16.0" + "popper.js": "^1.16.1" } }, "node_modules/brace-expansion": { @@ -6671,7 +6362,8 @@ "node_modules/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true }, "node_modules/browser-resolve": { "version": "2.0.0", @@ -7729,6 +7421,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "devOptional": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -7767,12 +7460,6 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "devOptional": true - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -8402,6 +8089,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, "dependencies": { "cssom": "~0.3.6" }, @@ -8412,7 +8100,8 @@ "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true }, "node_modules/custom-event": { "version": "1.0.1", @@ -8752,7 +8441,8 @@ "node_modules/decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true }, "node_modules/dedent": { "version": "0.7.0", @@ -8839,6 +8529,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "devOptional": true, "engines": { "node": ">=0.4.0" } @@ -9269,9 +8960,9 @@ } }, "node_modules/engine.io": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", - "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", + "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", "devOptional": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -12301,7 +11992,8 @@ "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true }, "node_modules/is-regex": { "version": "1.1.2", @@ -13196,9 +12888,9 @@ } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -13929,9 +13621,9 @@ } }, "node_modules/minify-stream/node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -14329,13 +14021,15 @@ } }, "node_modules/ngx-infinite-scroll": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz", - "integrity": "sha512-7is0eJZ9kJPsaHohRmMhJ/QFHAW9jp9twO5HcHRvFM/Yl/R8QCiokgjwmH0/CR3MuxUanxfHZMfO3PbYTwlBEg==", - "hasInstallScript": true, + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-14.0.1.tgz", + "integrity": "sha512-PlGL29d2PxNJTn6qdXs4Es0HlJTZ/ZqOVvFWECWm7mK2fN/q+q62s0iUQ7xRf76NuqoNovXvrjZ1zwLFT6c0Wg==", "dependencies": { - "@scarf/scarf": "^1.1.0", - "opencollective-postinstall": "^2.0.2" + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=14.0.0 <15.0.0", + "@angular/core": ">=14.0.0 <15.0.0" } }, "node_modules/nice-napi": { @@ -14658,7 +14352,8 @@ "node_modules/nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true }, "node_modules/object-assign": { "version": "4.1.1", @@ -14788,14 +14483,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "bin": { - "opencollective-postinstall": "index.js" - } - }, "node_modules/openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", @@ -16121,7 +15808,8 @@ "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "devOptional": true }, "node_modules/public-encrypt": { "version": "4.0.3", @@ -16804,6 +16492,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -17272,26 +16961,26 @@ } }, "node_modules/socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz", + "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==", "devOptional": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" + "engine.io": "~6.2.1", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.1" }, "engines": { "node": ">=10.0.0" } }, "node_modules/socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", "devOptional": true }, "node_modules/socket.io-client": { @@ -17309,27 +16998,13 @@ "node": ">=10.0.0" } }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz", - "integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==", - "dev": true, - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", "devOptional": true, "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" }, "engines": { @@ -17827,7 +17502,8 @@ "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true }, "node_modules/syntax-error": { "version": "1.4.0", @@ -18135,6 +17811,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -18572,6 +18249,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "engines": { "node": ">= 4.0.0" } @@ -18734,6 +18412,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -19388,7 +19067,8 @@ "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true }, "node_modules/xmlhttprequest-ssl": { "version": "2.0.0", @@ -22184,9 +21864,9 @@ } }, "@ng-bootstrap/ng-bootstrap": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-11.0.0.tgz", - "integrity": "sha512-qDnB0+jbpQ4wjXpM4NPRAtwmgTDUCjGavoeRDZHOvFfYvx/MBf1RTjZEqTJ1Yqq1pKP4BWpzxCgVTunfnpmsjA==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-13.1.1.tgz", + "integrity": "sha512-R6qnmFKT2EwwijBHw7rUXqyo5W90OImHOv7BlsxMNnZLIksWIhqwU00k4UBTfRTnd6JsTPuj/co3MaP61ajILA==", "requires": { "tslib": "^2.3.0" } @@ -22515,218 +22195,6 @@ } } }, - "@nguniversal/express-engine": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-13.1.1.tgz", - "integrity": "sha512-NdiBP0IRbPrNYEMLy3a6os2mNgRNE84tsMn+mV2uF4wv1JNs3YyoXcucWvhgHdODbDtc6z4CGn8t/6KagRqmvA==", - "requires": { - "@nguniversal/common": "13.1.1", - "tslib": "^2.3.0" - }, - "dependencies": { - "@nguniversal/common": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-13.1.1.tgz", - "integrity": "sha512-DoAPA7+kUz+qMgCTUtRPFcMGY0zz8OSkOTZnxqO5sUYntD6mCEQImHU0WF4ud88j71o0Hv+AISJD1evAAANCdw==", - "requires": { - "critters": "0.0.16", - "jsdom": "19.0.0", - "tslib": "^2.3.0" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" - }, - "cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" - }, - "data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "requires": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - } - } - }, - "domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "requires": { - "webidl-conversions": "^7.0.0" - } - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "requires": { - "whatwg-encoding": "^2.0.0" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "jsdom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", - "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.5.0", - "acorn-globals": "^6.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.1", - "decimal.js": "^10.3.1", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^3.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0", - "ws": "^8.2.3", - "xml-name-validator": "^4.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "requires": { - "punycode": "^2.1.1" - } - }, - "w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "requires": { - "xml-name-validator": "^4.0.0" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" - }, - "whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "requires": { - "iconv-lite": "0.6.3" - } - }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==" - }, - "whatwg-url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", - "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "requires": {} - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" - } - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -22837,10 +22305,11 @@ "which": "^2.0.2" } }, - "@scarf/scarf": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.0.tgz", - "integrity": "sha512-b2iE8kjjzzUo2WZ0xuE2N77kfnTds7ClrDxcz3Atz7h2XrNVoAPUoT75i7CY0st5x++70V91Y+c6RpBX9MX7Jg==" + "@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "peer": true }, "@schematics/angular": { "version": "12.2.17", @@ -22968,7 +22437,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true + "devOptional": true }, "@tootallnate/once": { "version": "1.1.2", @@ -23017,12 +22486,6 @@ "@types/node": "*" } }, - "@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "devOptional": true - }, "@types/connect": { "version": "3.4.33", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", @@ -23666,6 +23129,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -23975,7 +23439,8 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "devOptional": true }, "at-least-node": { "version": "1.0.0", @@ -24245,9 +23710,9 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "bootstrap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.0.tgz", - "integrity": "sha512-Z93QoXvodoVslA+PWNdk23Hze4RBYIkpb5h8I2HY2Tu2h7A0LpAgLcyrhrSUyo2/Oxm2l1fRZPs1e5hnxnliXA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", "requires": {} }, "brace-expansion": { @@ -24310,7 +23775,8 @@ "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true }, "browser-resolve": { "version": "2.0.0", @@ -25158,6 +24624,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "devOptional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -25190,12 +24657,6 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "devOptional": true - }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -25663,6 +25124,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, "requires": { "cssom": "~0.3.6" }, @@ -25670,7 +25132,8 @@ "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true } } }, @@ -25938,7 +25401,8 @@ "decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true }, "dedent": { "version": "0.7.0", @@ -26009,7 +25473,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "devOptional": true }, "delegate": { "version": "3.2.0", @@ -26368,9 +25833,9 @@ } }, "engine.io": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", - "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", + "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", "devOptional": true, "requires": { "@types/cookie": "^0.4.1", @@ -28540,7 +28005,8 @@ "is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true }, "is-regex": { "version": "1.1.2", @@ -29205,9 +28671,9 @@ "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" }, "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -29758,9 +29224,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -30076,12 +29542,11 @@ } }, "ngx-infinite-scroll": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz", - "integrity": "sha512-7is0eJZ9kJPsaHohRmMhJ/QFHAW9jp9twO5HcHRvFM/Yl/R8QCiokgjwmH0/CR3MuxUanxfHZMfO3PbYTwlBEg==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-14.0.1.tgz", + "integrity": "sha512-PlGL29d2PxNJTn6qdXs4Es0HlJTZ/ZqOVvFWECWm7mK2fN/q+q62s0iUQ7xRf76NuqoNovXvrjZ1zwLFT6c0Wg==", "requires": { - "@scarf/scarf": "^1.1.0", - "opencollective-postinstall": "^2.0.2" + "tslib": "^2.3.0" } }, "nice-napi": { @@ -30333,7 +29798,8 @@ "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true }, "object-assign": { "version": "4.1.1", @@ -30421,11 +29887,6 @@ "is-wsl": "^2.2.0" } }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - }, "openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", @@ -31284,7 +30745,8 @@ "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "devOptional": true }, "public-encrypt": { "version": "4.0.3", @@ -31802,6 +31264,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, "requires": { "xmlchars": "^2.2.0" } @@ -32171,23 +31634,23 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz", + "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==", "devOptional": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" + "engine.io": "~6.2.1", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.2.1" } }, "socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", "devOptional": true }, "socket.io-client": { @@ -32200,28 +31663,15 @@ "debug": "~4.3.2", "engine.io-client": "~6.2.1", "socket.io-parser": "~4.2.0" - }, - "dependencies": { - "socket.io-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.0.tgz", - "integrity": "sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - } } }, "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", "devOptional": true, "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" } }, @@ -32594,7 +32044,8 @@ "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true }, "syntax-error": { "version": "1.4.0", @@ -32838,6 +32289,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -33148,7 +32600,8 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true }, "unpipe": { "version": "1.0.0", @@ -33270,6 +32723,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, "requires": { "browser-process-hrtime": "^1.0.0" } @@ -33724,7 +33178,8 @@ "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true }, "xmlhttprequest-ssl": { "version": "2.0.0", diff --git a/frontend/package.json b/frontend/package.json index 27c40da57..f21c0a0c3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -81,10 +81,9 @@ "@fortawesome/fontawesome-svg-core": "~6.1.1", "@fortawesome/free-solid-svg-icons": "~6.1.1", "@mempool/mempool.js": "2.3.0", - "@ng-bootstrap/ng-bootstrap": "^11.0.0", - "@nguniversal/express-engine": "^13.1.1", + "@ng-bootstrap/ng-bootstrap": "^13.1.1", "@types/qrcode": "~1.4.2", - "bootstrap": "~4.5.0", + "bootstrap": "~4.6.1", "browserify": "^17.0.0", "clipboard": "^2.0.10", "domino": "^2.1.6", @@ -93,7 +92,7 @@ "express": "^4.17.1", "lightweight-charts": "~3.8.0", "ngx-echarts": "8.0.1", - "ngx-infinite-scroll": "^10.0.1", + "ngx-infinite-scroll": "^14.0.1", "qrcode": "1.5.0", "rxjs": "~7.5.5", "tinyify": "^3.0.0", diff --git a/frontend/src/app/bisq/bisq-market/bisq-market.component.html b/frontend/src/app/bisq/bisq-market/bisq-market.component.html index 2f352f58e..bcf890d40 100644 --- a/frontend/src/app/bisq/bisq-market/bisq-market.component.html +++ b/frontend/src/app/bisq/bisq-market/bisq-market.component.html @@ -10,27 +10,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Fee span {{ block.extras.feeRange[0] | number:'1.0-0' }} - {{ block.extras.feeRange[block.extras.feeRange.length - 1] | number:'1.0-0' }} sat/vB
- + From 9b6a0124762a2c3a44ea70f4c8c26fb9f0d65b19 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 27 Nov 2022 13:46:23 +0900 Subject: [PATCH 0101/1466] calculate & index cpfp packages --- backend/mempool-config.sample.json | 3 +- .../__fixtures__/mempool-config.template.json | 3 +- backend/src/__tests__/config.test.ts | 1 + backend/src/api/bitcoin/bitcoin.routes.ts | 38 ++++---- backend/src/api/blocks.ts | 93 ++++++++++++++++++- backend/src/api/common.ts | 7 ++ backend/src/api/database-migration.ts | 27 +++++- backend/src/config.ts | 2 + backend/src/indexer.ts | 1 + backend/src/mempool.interfaces.ts | 4 +- backend/src/repositories/BlocksRepository.ts | 17 ++++ backend/src/repositories/CpfpRepository.ts | 43 +++++++++ .../src/repositories/TransactionRepository.ts | 77 +++++++++++++++ 13 files changed, 295 insertions(+), 21 deletions(-) create mode 100644 backend/src/repositories/CpfpRepository.ts create mode 100644 backend/src/repositories/TransactionRepository.ts diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index 3b416255a..b0b157c42 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -25,7 +25,8 @@ "AUTOMATIC_BLOCK_REINDEXING": false, "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json", "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", - "ADVANCED_TRANSACTION_SELECTION": false + "ADVANCED_TRANSACTION_SELECTION": false, + "TRANSACTION_INDEXING": false }, "CORE_RPC": { "HOST": "127.0.0.1", diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index ec6be20d8..8b368a43a 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -26,7 +26,8 @@ "INDEXING_BLOCKS_AMOUNT": 14, "POOLS_JSON_TREE_URL": "__POOLS_JSON_TREE_URL__", "POOLS_JSON_URL": "__POOLS_JSON_URL__", - "ADVANCED_TRANSACTION_SELECTION": "__ADVANCED_TRANSACTION_SELECTION__" + "ADVANCED_TRANSACTION_SELECTION": "__ADVANCED_TRANSACTION_SELECTION__", + "TRANSACTION_INDEXING": "__TRANSACTION_INDEXING__" }, "CORE_RPC": { "HOST": "__CORE_RPC_HOST__", diff --git a/backend/src/__tests__/config.test.ts b/backend/src/__tests__/config.test.ts index 9bb06c58a..c95888cf2 100644 --- a/backend/src/__tests__/config.test.ts +++ b/backend/src/__tests__/config.test.ts @@ -39,6 +39,7 @@ describe('Mempool Backend Config', () => { POOLS_JSON_TREE_URL: 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', ADVANCED_TRANSACTION_SELECTION: false, + TRANSACTION_INDEXING: false, }); expect(config.ELECTRUM).toStrictEqual({ HOST: '127.0.0.1', PORT: 3306, TLS_ENABLED: true }); diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index cdcc589fd..5d0a89787 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -17,13 +17,14 @@ import logger from '../../logger'; import blocks from '../blocks'; import bitcoinClient from './bitcoin-client'; import difficultyAdjustment from '../difficulty-adjustment'; +import transactionRepository from '../../repositories/TransactionRepository'; class BitcoinRoutes { public initRoutes(app: Application) { app .get(config.MEMPOOL.API_URL_PREFIX + 'transaction-times', this.getTransactionTimes) .get(config.MEMPOOL.API_URL_PREFIX + 'outspends', this.$getBatchedOutspends) - .get(config.MEMPOOL.API_URL_PREFIX + 'cpfp/:txId', this.getCpfpInfo) + .get(config.MEMPOOL.API_URL_PREFIX + 'cpfp/:txId', this.$getCpfpInfo) .get(config.MEMPOOL.API_URL_PREFIX + 'difficulty-adjustment', this.getDifficultyChange) .get(config.MEMPOOL.API_URL_PREFIX + 'fees/recommended', this.getRecommendedFees) .get(config.MEMPOOL.API_URL_PREFIX + 'fees/mempool-blocks', this.getMempoolBlocks) @@ -188,29 +189,34 @@ class BitcoinRoutes { } } - private getCpfpInfo(req: Request, res: Response) { + private async $getCpfpInfo(req: Request, res: Response) { if (!/^[a-fA-F0-9]{64}$/.test(req.params.txId)) { res.status(501).send(`Invalid transaction ID.`); return; } const tx = mempool.getMempool()[req.params.txId]; - if (!tx) { - res.status(404).send(`Transaction doesn't exist in the mempool.`); + if (tx) { + if (tx?.cpfpChecked) { + res.json({ + ancestors: tx.ancestors, + bestDescendant: tx.bestDescendant || null, + }); + return; + } + + const cpfpInfo = Common.setRelativesAndGetCpfpInfo(tx, mempool.getMempool()); + + res.json(cpfpInfo); return; + } else { + const cpfpInfo = await transactionRepository.$getCpfpInfo(req.params.txId); + if (cpfpInfo) { + res.json(cpfpInfo); + return; + } } - - if (tx.cpfpChecked) { - res.json({ - ancestors: tx.ancestors, - bestDescendant: tx.bestDescendant || null, - }); - return; - } - - const cpfpInfo = Common.setRelativesAndGetCpfpInfo(tx, mempool.getMempool()); - - res.json(cpfpInfo); + res.status(404).send(`Transaction has no CPFP info available.`); } private getBackendInfo(req: Request, res: Response) { diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 411777393..eed362623 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -21,6 +21,8 @@ import fiatConversion from './fiat-conversion'; import poolsParser from './pools-parser'; import BlocksSummariesRepository from '../repositories/BlocksSummariesRepository'; import BlocksAuditsRepository from '../repositories/BlocksAuditsRepository'; +import cpfpRepository from '../repositories/CpfpRepository'; +import transactionRepository from '../repositories/TransactionRepository'; import mining from './mining/mining'; import DifficultyAdjustmentsRepository from '../repositories/DifficultyAdjustmentsRepository'; import PricesRepository from '../repositories/PricesRepository'; @@ -260,7 +262,7 @@ class Blocks { /** * [INDEXING] Index all blocks summaries for the block txs visualization */ - public async $generateBlocksSummariesDatabase() { + public async $generateBlocksSummariesDatabase(): Promise { if (Common.blocksSummariesIndexingEnabled() === false) { return; } @@ -316,6 +318,56 @@ class Blocks { } } + /** + * [INDEXING] Index transaction CPFP data for all blocks + */ + public async $generateCPFPDatabase(): Promise { + if (Common.cpfpIndexingEnabled() === false) { + return; + } + + try { + // Get all indexed block hash + const unindexedBlocks = await blocksRepository.$getCPFPUnindexedBlocks(); + + if (!unindexedBlocks?.length) { + return; + } + + // Logging + let count = 0; + let countThisRun = 0; + let timer = new Date().getTime() / 1000; + const startedAt = new Date().getTime() / 1000; + + for (const block of unindexedBlocks) { + // Logging + const elapsedSeconds = Math.max(1, Math.round((new Date().getTime() / 1000) - timer)); + if (elapsedSeconds > 5) { + const runningFor = Math.max(1, Math.round((new Date().getTime() / 1000) - startedAt)); + const blockPerSeconds = Math.max(1, countThisRun / elapsedSeconds); + const progress = Math.round(count / unindexedBlocks.length * 10000) / 100; + logger.debug(`Indexing cpfp clusters for #${block.height} | ~${blockPerSeconds.toFixed(2)} blocks/sec | total: ${count}/${unindexedBlocks.length} (${progress}%) | elapsed: ${runningFor} seconds`); + timer = new Date().getTime() / 1000; + countThisRun = 0; + } + + await this.$indexCPFP(block.hash); // Calculate and save CPFP data for transactions in this block + + // Logging + count++; + } + if (count > 0) { + logger.notice(`CPFP indexing completed: indexed ${count} blocks`); + } else { + logger.debug(`CPFP indexing completed: indexed ${count} blocks`); + } + } catch (e) { + logger.err(`CPFP indexing failed. Trying again in 10 seconds. Reason: ${(e instanceof Error ? e.message : e)}`); + throw e; + } + } + /** * [INDEXING] Index all blocks metadata for the mining dashboard */ @@ -461,9 +513,13 @@ class Blocks { await BlocksRepository.$deleteBlocksFrom(lastBlock['height'] - 10); await HashratesRepository.$deleteLastEntries(); await BlocksSummariesRepository.$deleteBlocksFrom(lastBlock['height'] - 10); + await cpfpRepository.$deleteClustersFrom(lastBlock['height'] - 10); for (let i = 10; i >= 0; --i) { const newBlock = await this.$indexBlock(lastBlock['height'] - i); await this.$getStrippedBlockTransactions(newBlock.id, true, true); + if (config.MEMPOOL.TRANSACTION_INDEXING) { + await this.$indexCPFP(newBlock.id); + } } await mining.$indexDifficultyAdjustments(); await DifficultyAdjustmentsRepository.$deleteLastAdjustment(); @@ -489,6 +545,9 @@ class Blocks { if (Common.blocksSummariesIndexingEnabled() === true) { await this.$getStrippedBlockTransactions(blockExtended.id, true); } + if (config.MEMPOOL.TRANSACTION_INDEXING) { + this.$indexCPFP(blockExtended.id); + } } } @@ -678,6 +737,38 @@ class Blocks { public getCurrentBlockHeight(): number { return this.currentBlockHeight; } + + public async $indexCPFP(hash: string): Promise { + const block = await bitcoinClient.getBlock(hash, 2); + const transactions = block.tx; + let cluster: IBitcoinApi.VerboseTransaction[] = []; + let ancestors: { [txid: string]: boolean } = {}; + for (let i = transactions.length - 1; i >= 0; i--) { + const tx = transactions[i]; + if (!ancestors[tx.txid]) { + let totalFee = 0; + let totalWeight = 0; + cluster.forEach(tx => { + totalFee += tx?.fee || 0; + totalWeight += tx.weight; + }); + const effectiveFeePerVsize = (totalFee * 100_000_000) / (totalWeight / 4); + if (cluster.length > 1) { + await cpfpRepository.$saveCluster(block.height, cluster.map(tx => { return { txid: tx.txid, weight: tx.weight, fee: (tx.fee || 0) * 100_000_000 }; }), effectiveFeePerVsize); + for (const tx of cluster) { + await transactionRepository.$setCluster(tx.txid, cluster[0].txid); + } + } + cluster = []; + ancestors = {}; + } + cluster.push(tx); + tx.vin.forEach(vin => { + ancestors[vin.txid] = true; + }); + } + await blocksRepository.$setCPFPIndexed(hash); + } } export default new Blocks(); diff --git a/backend/src/api/common.ts b/backend/src/api/common.ts index b9cc1453c..621f021ba 100644 --- a/backend/src/api/common.ts +++ b/backend/src/api/common.ts @@ -187,6 +187,13 @@ export class Common { ); } + static cpfpIndexingEnabled(): boolean { + return ( + Common.indexingEnabled() && + config.MEMPOOL.TRANSACTION_INDEXING === true + ); + } + static setDateMidnight(date: Date): void { date.setUTCHours(0); date.setUTCMinutes(0); diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index d8e96d57d..e51a374f1 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -4,7 +4,7 @@ import logger from '../logger'; import { Common } from './common'; class DatabaseMigration { - private static currentVersion = 45; + private static currentVersion = 46; private queryTimeout = 900_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -369,6 +369,12 @@ class DatabaseMigration { if (databaseSchemaVersion < 45 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `blocks_audits` ADD fresh_txs JSON DEFAULT "[]"'); } + + if (databaseSchemaVersion < 46 && isBitcoin === true) { + await this.$executeQuery('ALTER TABLE `blocks` ADD cpfp_indexed tinyint(1) DEFAULT 0'); + await this.$executeQuery(this.getCreateCPFPTableQuery(), await this.$checkIfTableExists('cpfp_clusters')); + await this.$executeQuery(this.getCreateTransactionsTableQuery(), await this.$checkIfTableExists('transactions')); + } } /** @@ -817,6 +823,25 @@ class DatabaseMigration { ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; } + private getCreateCPFPTableQuery(): string { + return `CREATE TABLE IF NOT EXISTS cpfp_clusters ( + root varchar(65) NOT NULL, + height int(10) NOT NULL, + txs JSON DEFAULT NULL, + fee_rate double unsigned NOT NULL, + PRIMARY KEY (root) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; + } + + private getCreateTransactionsTableQuery(): string { + return `CREATE TABLE IF NOT EXISTS transactions ( + txid varchar(65) NOT NULL, + cluster varchar(65) DEFAULT NULL, + PRIMARY KEY (txid), + FOREIGN KEY (cluster) REFERENCES cpfp_clusters (root) ON DELETE SET NULL + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; + } + public async $truncateIndexedData(tables: string[]) { const allowedTables = ['blocks', 'hashrates', 'prices']; diff --git a/backend/src/config.ts b/backend/src/config.ts index f7d1ee60a..808e1406b 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -30,6 +30,7 @@ interface IConfig { POOLS_JSON_URL: string, POOLS_JSON_TREE_URL: string, ADVANCED_TRANSACTION_SELECTION: boolean; + TRANSACTION_INDEXING: boolean; }; ESPLORA: { REST_API_URL: string; @@ -148,6 +149,7 @@ const defaults: IConfig = { 'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', 'POOLS_JSON_TREE_URL': 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', 'ADVANCED_TRANSACTION_SELECTION': false, + 'TRANSACTION_INDEXING': false, }, 'ESPLORA': { 'REST_API_URL': 'http://127.0.0.1:3000', diff --git a/backend/src/indexer.ts b/backend/src/indexer.ts index 26a407291..22f3ce319 100644 --- a/backend/src/indexer.ts +++ b/backend/src/indexer.ts @@ -77,6 +77,7 @@ class Indexer { await mining.$generateNetworkHashrateHistory(); await mining.$generatePoolHashrateHistory(); await blocks.$generateBlocksSummariesDatabase(); + await blocks.$generateCPFPDatabase(); } catch (e) { this.indexerRunning = false; logger.err(`Indexer failed, trying again in 10 seconds. Reason: ` + (e instanceof Error ? e.message : e)); diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index 0e68d2ed5..01bc45742 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -119,7 +119,9 @@ interface BestDescendant { export interface CpfpInfo { ancestors: Ancestor[]; - bestDescendant: BestDescendant | null; + bestDescendant?: BestDescendant | null; + descendants?: Ancestor[]; + effectiveFeePerVsize?: number; } export interface TransactionStripped { diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index 590e9de37..78a8fcce2 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -662,6 +662,23 @@ class BlocksRepository { } } + /** + * Get a list of blocks that have not had CPFP data indexed + */ + public async $getCPFPUnindexedBlocks(): Promise { + try { + const [rows]: any = await DB.query(`SELECT height, hash FROM blocks WHERE cpfp_indexed = 0 ORDER BY height DESC`); + return rows; + } catch (e) { + logger.err('Cannot fetch CPFP unindexed blocks. Reason: ' + (e instanceof Error ? e.message : e)); + throw e; + } + } + + public async $setCPFPIndexed(hash: string): Promise { + await DB.query(`UPDATE blocks SET cpfp_indexed = 1 WHERE hash = ?`, [hash]); + } + /** * Return the oldest block from a consecutive chain of block from the most recent one */ diff --git a/backend/src/repositories/CpfpRepository.ts b/backend/src/repositories/CpfpRepository.ts new file mode 100644 index 000000000..563e6ede1 --- /dev/null +++ b/backend/src/repositories/CpfpRepository.ts @@ -0,0 +1,43 @@ +import DB from '../database'; +import logger from '../logger'; +import { Ancestor } from '../mempool.interfaces'; + +class CpfpRepository { + public async $saveCluster(height: number, txs: Ancestor[], effectiveFeePerVsize: number): Promise { + try { + const txsJson = JSON.stringify(txs); + await DB.query( + ` + INSERT INTO cpfp_clusters(root, height, txs, fee_rate) + VALUE (?, ?, ?, ?) + ON DUPLICATE KEY UPDATE + height = ?, + txs = ?, + fee_rate = ? + `, + [txs[0].txid, height, txsJson, effectiveFeePerVsize, height, txsJson, effectiveFeePerVsize, height] + ); + } catch (e: any) { + logger.err(`Cannot save cpfp cluster into db. Reason: ` + (e instanceof Error ? e.message : e)); + throw e; + } + } + + public async $deleteClustersFrom(height: number): Promise { + logger.info(`Delete newer cpfp clusters from height ${height} from the database`); + try { + await DB.query( + ` + DELETE from cpfp_clusters + WHERE height >= ? + `, + [height] + ); + } catch (e: any) { + logger.err(`Cannot delete cpfp clusters from db. Reason: ` + (e instanceof Error ? e.message : e)); + throw e; + } + } +} + +export default new CpfpRepository(); \ No newline at end of file diff --git a/backend/src/repositories/TransactionRepository.ts b/backend/src/repositories/TransactionRepository.ts new file mode 100644 index 000000000..1c6e3719f --- /dev/null +++ b/backend/src/repositories/TransactionRepository.ts @@ -0,0 +1,77 @@ +import DB from '../database'; +import logger from '../logger'; +import { Ancestor, CpfpInfo } from '../mempool.interfaces'; + +interface CpfpSummary { + txid: string; + cluster: string; + root: string; + txs: Ancestor[]; + height: number; + fee_rate: number; +} + +class TransactionRepository { + public async $setCluster(txid: string, cluster: string): Promise { + try { + await DB.query( + ` + INSERT INTO transactions + ( + txid, + cluster + ) + VALUE (?, ?) + ON DUPLICATE KEY UPDATE + cluster = ? + ;`, + [txid, cluster, cluster] + ); + } catch (e: any) { + logger.err(`Cannot save transaction cpfp cluster into db. Reason: ` + (e instanceof Error ? e.message : e)); + throw e; + } + } + + public async $getCpfpInfo(txid: string): Promise { + try { + let query = ` + SELECT * + FROM transactions + LEFT JOIN cpfp_clusters AS cluster ON cluster.root = transactions.cluster + WHERE transactions.txid = ? + `; + const [rows]: any = await DB.query(query, [txid]); + if (rows.length) { + rows[0].txs = JSON.parse(rows[0].txs) as Ancestor[]; + return this.convertCpfp(rows[0]); + } + } catch (e) { + logger.err('Cannot get transaction cpfp info from db. Reason: ' + (e instanceof Error ? e.message : e)); + throw e; + } + } + + private convertCpfp(cpfp: CpfpSummary): CpfpInfo { + const descendants: Ancestor[] = []; + const ancestors: Ancestor[] = []; + let matched = false; + for (const tx of cpfp.txs) { + if (tx.txid === cpfp.txid) { + matched = true; + } else if (!matched) { + descendants.push(tx); + } else { + ancestors.push(tx); + } + } + return { + descendants, + ancestors, + effectiveFeePerVsize: cpfp.fee_rate + }; + } +} + +export default new TransactionRepository(); + From fa515402bfffb77aea8da06772e5d40fac948043 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 27 Nov 2022 13:46:54 +0900 Subject: [PATCH 0102/1466] display indexed cpfp info on non-mempool txs --- .../transaction/transaction.component.html | 21 ++++++++-- .../transaction/transaction.component.ts | 41 +++++++++++-------- .../src/app/interfaces/node-api.interface.ts | 4 +- 3 files changed, 44 insertions(+), 22 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index d478da053..b6ed2868f 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -156,7 +156,20 @@ - + + + + + + + + + + - + - + + + + +
Fee span {{ block.extras.feeRange[0] | number:'1.0-0' }} - {{ block.extras.feeRange[block.extras.feeRange.length - 1] | number:'1.0-0' }} sat/vB
Descendant + {{ cpfpTx.txid | shortenString : 8 }} + {{ cpfpTx.txid }} + + {{ cpfpTx.fee / (cpfpTx.weight / 4) | feeRounding }} sat/vB
Descendant @@ -170,7 +183,7 @@
Ancestor @@ -468,11 +481,11 @@ {{ tx.feePerVsize | feeRounding }} sat/vB   - +
Effective fee rate
diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 1c20be732..3e04b0ad9 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -117,25 +117,31 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { if (!this.tx) { return; } - const lowerFeeParents = cpfpInfo.ancestors.filter( - (parent) => parent.fee / (parent.weight / 4) < this.tx.feePerVsize - ); - let totalWeight = - this.tx.weight + - lowerFeeParents.reduce((prev, val) => prev + val.weight, 0); - let totalFees = - this.tx.fee + - lowerFeeParents.reduce((prev, val) => prev + val.fee, 0); + if (cpfpInfo.effectiveFeePerVsize) { + this.tx.effectiveFeePerVsize = cpfpInfo.effectiveFeePerVsize; + } else { + const lowerFeeParents = cpfpInfo.ancestors.filter( + (parent) => parent.fee / (parent.weight / 4) < this.tx.feePerVsize + ); + let totalWeight = + this.tx.weight + + lowerFeeParents.reduce((prev, val) => prev + val.weight, 0); + let totalFees = + this.tx.fee + + lowerFeeParents.reduce((prev, val) => prev + val.fee, 0); - if (cpfpInfo.bestDescendant) { - totalWeight += cpfpInfo.bestDescendant.weight; - totalFees += cpfpInfo.bestDescendant.fee; + if (cpfpInfo?.bestDescendant) { + totalWeight += cpfpInfo?.bestDescendant.weight; + totalFees += cpfpInfo?.bestDescendant.fee; + } + + this.tx.effectiveFeePerVsize = totalFees / (totalWeight / 4); + } + if (!this.tx.status.confirmed) { + this.stateService.markBlock$.next({ + txFeePerVSize: this.tx.effectiveFeePerVsize, + }); } - - this.tx.effectiveFeePerVsize = totalFees / (totalWeight / 4); - this.stateService.markBlock$.next({ - txFeePerVSize: this.tx.effectiveFeePerVsize, - }); this.cpfpInfo = cpfpInfo; }); @@ -239,6 +245,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { this.stateService.markBlock$.next({ blockHeight: tx.status.block_height, }); + this.fetchCpfp$.next(this.tx.txid); } else { if (tx.cpfpChecked) { this.stateService.markBlock$.next({ diff --git a/frontend/src/app/interfaces/node-api.interface.ts b/frontend/src/app/interfaces/node-api.interface.ts index 5df095432..d32e641f7 100644 --- a/frontend/src/app/interfaces/node-api.interface.ts +++ b/frontend/src/app/interfaces/node-api.interface.ts @@ -22,7 +22,9 @@ interface BestDescendant { export interface CpfpInfo { ancestors: Ancestor[]; - bestDescendant: BestDescendant | null; + descendants?: Ancestor[]; + bestDescendant?: BestDescendant | null; + effectiveFeePerVsize?: number; } export interface DifficultyAdjustment { From 3e7270d1c5808bc272162f883f09928fc0110f49 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 27 Nov 2022 13:47:26 +0900 Subject: [PATCH 0103/1466] show cpfp badges on non-mempool tx previews --- .../transaction-preview.component.html | 4 +- .../transaction-preview.component.ts | 51 ++++++++++++------- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction-preview.component.html b/frontend/src/app/components/transaction/transaction-preview.component.html index 40ef94dde..8feb980a3 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.html +++ b/frontend/src/app/components/transaction/transaction-preview.component.html @@ -8,10 +8,10 @@
- + CPFP - + CPFP
diff --git a/frontend/src/app/components/transaction/transaction-preview.component.ts b/frontend/src/app/components/transaction/transaction-preview.component.ts index 6c04af0ab..bd4260244 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.ts +++ b/frontend/src/app/components/transaction/transaction-preview.component.ts @@ -72,25 +72,31 @@ export class TransactionPreviewComponent implements OnInit, OnDestroy { if (!this.tx) { return; } - const lowerFeeParents = cpfpInfo.ancestors.filter( - (parent) => parent.fee / (parent.weight / 4) < this.tx.feePerVsize - ); - let totalWeight = - this.tx.weight + - lowerFeeParents.reduce((prev, val) => prev + val.weight, 0); - let totalFees = - this.tx.fee + - lowerFeeParents.reduce((prev, val) => prev + val.fee, 0); + if (cpfpInfo.effectiveFeePerVsize) { + this.tx.effectiveFeePerVsize = cpfpInfo.effectiveFeePerVsize; + } else { + const lowerFeeParents = cpfpInfo.ancestors.filter( + (parent) => parent.fee / (parent.weight / 4) < this.tx.feePerVsize + ); + let totalWeight = + this.tx.weight + + lowerFeeParents.reduce((prev, val) => prev + val.weight, 0); + let totalFees = + this.tx.fee + + lowerFeeParents.reduce((prev, val) => prev + val.fee, 0); - if (cpfpInfo.bestDescendant) { - totalWeight += cpfpInfo.bestDescendant.weight; - totalFees += cpfpInfo.bestDescendant.fee; + if (cpfpInfo?.bestDescendant) { + totalWeight += cpfpInfo?.bestDescendant.weight; + totalFees += cpfpInfo?.bestDescendant.fee; + } + + this.tx.effectiveFeePerVsize = totalFees / (totalWeight / 4); + } + if (!this.tx.status.confirmed) { + this.stateService.markBlock$.next({ + txFeePerVSize: this.tx.effectiveFeePerVsize, + }); } - - this.tx.effectiveFeePerVsize = totalFees / (totalWeight / 4); - this.stateService.markBlock$.next({ - txFeePerVSize: this.tx.effectiveFeePerVsize, - }); this.cpfpInfo = cpfpInfo; this.openGraphService.waitOver('cpfp-data-' + this.txId); }); @@ -176,8 +182,17 @@ export class TransactionPreviewComponent implements OnInit, OnDestroy { this.getTransactionTime(); } - if (!this.tx.status.confirmed) { + if (this.tx.status.confirmed) { + this.stateService.markBlock$.next({ + blockHeight: tx.status.block_height, + }); + this.openGraphService.waitFor('cpfp-data-' + this.txId); + this.fetchCpfp$.next(this.tx.txid); + } else { if (tx.cpfpChecked) { + this.stateService.markBlock$.next({ + txFeePerVSize: tx.effectiveFeePerVsize, + }); this.cpfpInfo = { ancestors: tx.ancestors, bestDescendant: tx.bestDescendant, From 205d832d3144cc68324b5481c12184393cce1824 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 27 Nov 2022 17:48:25 +0900 Subject: [PATCH 0104/1466] return more complete cpfp data for mempool transactions --- backend/src/api/bitcoin/bitcoin.routes.ts | 2 ++ backend/src/api/mempool-blocks.ts | 1 + backend/src/api/tx-selection-worker.ts | 26 ++++++++++++----------- backend/src/mempool.interfaces.ts | 1 + 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 5d0a89787..55500d0c9 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -201,6 +201,8 @@ class BitcoinRoutes { res.json({ ancestors: tx.ancestors, bestDescendant: tx.bestDescendant || null, + descendants: tx.descendants || null, + effectiveFeePerVsize: tx.effectiveFeePerVsize || null, }); return; } diff --git a/backend/src/api/mempool-blocks.ts b/backend/src/api/mempool-blocks.ts index 334362458..e8ab48230 100644 --- a/backend/src/api/mempool-blocks.ts +++ b/backend/src/api/mempool-blocks.ts @@ -155,6 +155,7 @@ class MempoolBlocks { if (newMempool[txid] && mempool[txid]) { newMempool[txid].effectiveFeePerVsize = mempool[txid].effectiveFeePerVsize; newMempool[txid].ancestors = mempool[txid].ancestors; + newMempool[txid].descendants = mempool[txid].descendants; newMempool[txid].bestDescendant = mempool[txid].bestDescendant; newMempool[txid].cpfpChecked = mempool[txid].cpfpChecked; } diff --git a/backend/src/api/tx-selection-worker.ts b/backend/src/api/tx-selection-worker.ts index 10f65000b..206d26fe3 100644 --- a/backend/src/api/tx-selection-worker.ts +++ b/backend/src/api/tx-selection-worker.ts @@ -108,36 +108,38 @@ function makeBlockTemplates({ mempool, blockLimit, weightLimit, condenseRest }: if (blockWeight + nextTx.ancestorWeight < config.MEMPOOL.BLOCK_WEIGHT_UNITS) { blockWeight += nextTx.ancestorWeight; const ancestors: AuditTransaction[] = Array.from(nextTx.ancestorMap.values()); + const descendants: AuditTransaction[] = []; // sort ancestors by dependency graph (equivalent to sorting by ascending ancestor count) const sortedTxSet = [...ancestors.sort((a, b) => { return (a.ancestorMap.size || 0) - (b.ancestorMap.size || 0); }), nextTx]; const effectiveFeeRate = nextTx.ancestorFee / (nextTx.ancestorWeight / 4); - sortedTxSet.forEach((ancestor, i, arr) => { + + while (sortedTxSet.length) { + const ancestor = sortedTxSet.pop(); const mempoolTx = mempool[ancestor.txid]; if (ancestor && !ancestor?.used) { ancestor.used = true; // update original copy of this tx with effective fee rate & relatives data mempoolTx.effectiveFeePerVsize = effectiveFeeRate; - mempoolTx.ancestors = (Array.from(ancestor.ancestorMap?.values()) as AuditTransaction[]).map((a) => { + mempoolTx.ancestors = sortedTxSet.map((a) => { + return { + txid: a.txid, + fee: a.fee, + weight: a.weight, + }; + }).reverse(); + mempoolTx.descendants = descendants.map((a) => { return { txid: a.txid, fee: a.fee, weight: a.weight, }; }); + descendants.push(ancestor); mempoolTx.cpfpChecked = true; - if (i < arr.length - 1) { - mempoolTx.bestDescendant = { - txid: arr[arr.length - 1].txid, - fee: arr[arr.length - 1].fee, - weight: arr[arr.length - 1].weight, - }; - } else { - mempoolTx.bestDescendant = null; - } transactions.push(ancestor); blockSize += ancestor.size; } - }); + } // remove these as valid package ancestors for any descendants remaining in the mempool if (sortedTxSet.length) { diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index 01bc45742..11de304b8 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -72,6 +72,7 @@ export interface TransactionExtended extends IEsploraApi.Transaction { firstSeen?: number; effectiveFeePerVsize: number; ancestors?: Ancestor[]; + descendants?: Ancestor[]; bestDescendant?: BestDescendant | null; cpfpChecked?: boolean; deleteAfter?: number; From ab5308e1c8da9042f7d94f06dc8e654446211b75 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 28 Nov 2022 14:35:25 +0900 Subject: [PATCH 0105/1466] adjust database migration compatibility --- backend/src/api/database-migration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index e51a374f1..cd8f6488c 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -370,7 +370,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `blocks_audits` ADD fresh_txs JSON DEFAULT "[]"'); } - if (databaseSchemaVersion < 46 && isBitcoin === true) { + if (databaseSchemaVersion < 46) { await this.$executeQuery('ALTER TABLE `blocks` ADD cpfp_indexed tinyint(1) DEFAULT 0'); await this.$executeQuery(this.getCreateCPFPTableQuery(), await this.$checkIfTableExists('cpfp_clusters')); await this.$executeQuery(this.getCreateTransactionsTableQuery(), await this.$checkIfTableExists('transactions')); From f2ad184d1fd88b0673e77c54bec6e63016819056 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 28 Nov 2022 17:56:50 +0900 Subject: [PATCH 0106/1466] optimize cpfp indexing --- backend/src/api/blocks.ts | 52 +++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index eed362623..828c86c31 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -27,6 +27,7 @@ import mining from './mining/mining'; import DifficultyAdjustmentsRepository from '../repositories/DifficultyAdjustmentsRepository'; import PricesRepository from '../repositories/PricesRepository'; import priceUpdater from '../tasks/price-updater'; +import { Block } from 'bitcoinjs-lib'; class Blocks { private blocks: BlockExtended[] = []; @@ -342,7 +343,7 @@ class Blocks { for (const block of unindexedBlocks) { // Logging - const elapsedSeconds = Math.max(1, Math.round((new Date().getTime() / 1000) - timer)); + const elapsedSeconds = Math.max(1, new Date().getTime() / 1000 - timer); if (elapsedSeconds > 5) { const runningFor = Math.max(1, Math.round((new Date().getTime() / 1000) - startedAt)); const blockPerSeconds = Math.max(1, countThisRun / elapsedSeconds); @@ -352,10 +353,11 @@ class Blocks { countThisRun = 0; } - await this.$indexCPFP(block.hash); // Calculate and save CPFP data for transactions in this block + await this.$indexCPFP(block.hash, block.height); // Calculate and save CPFP data for transactions in this block // Logging count++; + countThisRun++; } if (count > 0) { logger.notice(`CPFP indexing completed: indexed ${count} blocks`); @@ -411,7 +413,7 @@ class Blocks { } ++indexedThisRun; ++totalIndexed; - const elapsedSeconds = Math.max(1, Math.round((new Date().getTime() / 1000) - timer)); + const elapsedSeconds = Math.max(1, new Date().getTime() / 1000 - timer); if (elapsedSeconds > 5 || blockHeight === lastBlockToIndex) { const runningFor = Math.max(1, Math.round((new Date().getTime() / 1000) - startedAt)); const blockPerSeconds = Math.max(1, indexedThisRun / elapsedSeconds); @@ -518,7 +520,7 @@ class Blocks { const newBlock = await this.$indexBlock(lastBlock['height'] - i); await this.$getStrippedBlockTransactions(newBlock.id, true, true); if (config.MEMPOOL.TRANSACTION_INDEXING) { - await this.$indexCPFP(newBlock.id); + await this.$indexCPFP(newBlock.id, lastBlock['height'] - i); } } await mining.$indexDifficultyAdjustments(); @@ -546,7 +548,7 @@ class Blocks { await this.$getStrippedBlockTransactions(blockExtended.id, true); } if (config.MEMPOOL.TRANSACTION_INDEXING) { - this.$indexCPFP(blockExtended.id); + this.$indexCPFP(blockExtended.id, this.currentBlockHeight); } } } @@ -738,23 +740,47 @@ class Blocks { return this.currentBlockHeight; } - public async $indexCPFP(hash: string): Promise { - const block = await bitcoinClient.getBlock(hash, 2); - const transactions = block.tx; - let cluster: IBitcoinApi.VerboseTransaction[] = []; + public async $indexCPFP(hash: string, height: number): Promise { + let transactions; + if (Common.blocksSummariesIndexingEnabled()) { + transactions = await this.$getStrippedBlockTransactions(hash); + const rawBlock = await bitcoinClient.getBlock(hash, 0); + const block = Block.fromHex(rawBlock); + const txMap = {}; + for (const tx of block.transactions || []) { + txMap[tx.getId()] = tx; + } + for (const tx of transactions) { + if (txMap[tx.txid]?.ins) { + tx.vin = txMap[tx.txid].ins.map(vin => { + return { + txid: vin.hash + }; + }); + } + } + } else { + const block = await bitcoinClient.getBlock(hash, 2); + transactions = block.tx.map(tx => { + tx.vsize = tx.weight / 4; + return tx; + }); + } + + let cluster: TransactionStripped[] = []; let ancestors: { [txid: string]: boolean } = {}; for (let i = transactions.length - 1; i >= 0; i--) { const tx = transactions[i]; if (!ancestors[tx.txid]) { let totalFee = 0; - let totalWeight = 0; + let totalVSize = 0; cluster.forEach(tx => { totalFee += tx?.fee || 0; - totalWeight += tx.weight; + totalVSize += tx.vsize; }); - const effectiveFeePerVsize = (totalFee * 100_000_000) / (totalWeight / 4); + const effectiveFeePerVsize = (totalFee * 100_000_000) / totalVSize; if (cluster.length > 1) { - await cpfpRepository.$saveCluster(block.height, cluster.map(tx => { return { txid: tx.txid, weight: tx.weight, fee: (tx.fee || 0) * 100_000_000 }; }), effectiveFeePerVsize); + await cpfpRepository.$saveCluster(height, cluster.map(tx => { return { txid: tx.txid, weight: tx.vsize * 4, fee: (tx.fee || 0) * 100_000_000 }; }), effectiveFeePerVsize); for (const tx of cluster) { await transactionRepository.$setCluster(tx.txid, cluster[0].txid); } From 6d6dd09d116a5e0d66c363b120eda469e0c90acd Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 29 Nov 2022 11:37:51 +0900 Subject: [PATCH 0107/1466] get blocks from esplora for cpfp indexer --- backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts | 2 +- backend/src/api/bitcoin/bitcoin-api.ts | 2 +- backend/src/api/bitcoin/esplora-api.ts | 6 +++--- backend/src/api/blocks.ts | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts b/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts index aa9fe5d15..7b2802d1b 100644 --- a/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts +++ b/backend/src/api/bitcoin/bitcoin-api-abstract-factory.ts @@ -10,7 +10,7 @@ export interface AbstractBitcoinApi { $getBlockHash(height: number): Promise; $getBlockHeader(hash: string): Promise; $getBlock(hash: string): Promise; - $getRawBlock(hash: string): Promise; + $getRawBlock(hash: string): Promise; $getAddress(address: string): Promise; $getAddressTransactions(address: string, lastSeenTxId: string): Promise; $getAddressPrefix(prefix: string): string[]; diff --git a/backend/src/api/bitcoin/bitcoin-api.ts b/backend/src/api/bitcoin/bitcoin-api.ts index 0a3d674ec..cad11aeda 100644 --- a/backend/src/api/bitcoin/bitcoin-api.ts +++ b/backend/src/api/bitcoin/bitcoin-api.ts @@ -81,7 +81,7 @@ class BitcoinApi implements AbstractBitcoinApi { .then((rpcBlock: IBitcoinApi.Block) => rpcBlock.tx); } - $getRawBlock(hash: string): Promise { + $getRawBlock(hash: string): Promise { return this.bitcoindClient.getBlock(hash, 0) .then((raw: string) => Buffer.from(raw, "hex")); } diff --git a/backend/src/api/bitcoin/esplora-api.ts b/backend/src/api/bitcoin/esplora-api.ts index 3662347d6..37f6e5892 100644 --- a/backend/src/api/bitcoin/esplora-api.ts +++ b/backend/src/api/bitcoin/esplora-api.ts @@ -55,9 +55,9 @@ class ElectrsApi implements AbstractBitcoinApi { .then((response) => response.data); } - $getRawBlock(hash: string): Promise { - return axios.get(config.ESPLORA.REST_API_URL + '/block/' + hash + "/raw", this.axiosConfig) - .then((response) => response.data); + $getRawBlock(hash: string): Promise { + return axios.get(config.ESPLORA.REST_API_URL + '/block/' + hash + "/raw", { ...this.axiosConfig, responseType: 'arraybuffer' }) + .then((response) => { return Buffer.from(response.data); }); } $getAddress(address: string): Promise { diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 828c86c31..f247617de 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -744,8 +744,8 @@ class Blocks { let transactions; if (Common.blocksSummariesIndexingEnabled()) { transactions = await this.$getStrippedBlockTransactions(hash); - const rawBlock = await bitcoinClient.getBlock(hash, 0); - const block = Block.fromHex(rawBlock); + const rawBlock = await bitcoinApi.$getRawBlock(hash); + const block = Block.fromBuffer(rawBlock); const txMap = {}; for (const tx of block.transactions || []) { txMap[tx.getId()] = tx; From 272b6d2437f0fe817b954e71def3c12d70ab1a48 Mon Sep 17 00:00:00 2001 From: wiz Date: Tue, 29 Nov 2022 23:47:43 +0900 Subject: [PATCH 0108/1466] Disable optimization in CPFP indexing when block summaries indexing is enabled --- backend/src/api/blocks.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index f247617de..8c8272262 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -742,7 +742,7 @@ class Blocks { public async $indexCPFP(hash: string, height: number): Promise { let transactions; - if (Common.blocksSummariesIndexingEnabled()) { + if (false/*Common.blocksSummariesIndexingEnabled()*/) { transactions = await this.$getStrippedBlockTransactions(hash); const rawBlock = await bitcoinApi.$getRawBlock(hash); const block = Block.fromBuffer(rawBlock); From 95e8789ba97f98b7b2c3a844b8ef235e88aa47e9 Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 30 Nov 2022 12:56:07 +0900 Subject: [PATCH 0109/1466] Upgrading some more frontend packages --- frontend/package-lock.json | 867 ++++++++++++++++++------------------- frontend/package.json | 14 +- 2 files changed, 419 insertions(+), 462 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 0e74d8c05..a0f9a97d8 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -35,9 +35,9 @@ "echarts": "~5.3.2", "echarts-gl": "^2.0.9", "lightweight-charts": "~3.8.0", - "ngx-echarts": "8.0.1", + "ngx-echarts": "~14.0.0", "ngx-infinite-scroll": "^14.0.1", - "qrcode": "1.5.0", + "qrcode": "1.5.1", "rxjs": "~7.5.7", "tinyify": "^3.1.0", "tlite": "^0.1.9", @@ -47,13 +47,13 @@ "devDependencies": { "@angular/compiler-cli": "^14.2.12", "@angular/language-service": "^14.2.12", - "@types/node": "^12.11.1", - "@typescript-eslint/eslint-plugin": "^5.30.5", - "@typescript-eslint/parser": "^5.30.5", - "eslint": "^8.19.0", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "eslint": "^8.28.0", "http-proxy-middleware": "~2.0.6", "prettier": "^2.7.1", - "ts-node": "~10.8.1", + "ts-node": "~10.9.1", "typescript": "~4.6.4" }, "optionalDependencies": { @@ -265,6 +265,21 @@ "semver": "bin/semver.js" } }, + "node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", + "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^14.0.0", + "typescript": ">=4.6.2 <4.9", + "webpack": "^5.54.0" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/ajv": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", @@ -3366,14 +3381,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", + "espree": "^9.4.0", "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3383,6 +3398,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/argparse": { @@ -3392,9 +3410,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3418,18 +3436,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -3555,19 +3561,32 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -3719,21 +3738,6 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@ngtools/webpack": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", - "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^14.0.0", - "typescript": ">=4.6.2 <4.9", - "webpack": "^5.54.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4196,9 +4200,9 @@ "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" }, "node_modules/@types/node": { - "version": "12.19.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.7.tgz", - "integrity": "sha512-zvjOU1g4CpPilbTDUATnZCUb/6lARMRAqzT7ILwl1P3YvU2leEcZ2+fw9+Jrw/paXB1CgQyXTrN4hWDtqT9O2A==" + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -4228,6 +4232,12 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -4283,17 +4293,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.5.tgz", - "integrity": "sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", + "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/type-utils": "5.30.5", - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/type-utils": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" @@ -4332,51 +4342,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.5.tgz", - "integrity": "sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", + "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "debug": "^4.3.4" }, "engines": { @@ -4413,13 +4387,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.5.tgz", - "integrity": "sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", + "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5" + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4430,12 +4404,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.5.tgz", - "integrity": "sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", + "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4472,31 +4447,10 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.5.tgz", - "integrity": "sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", + "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4507,13 +4461,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz", - "integrity": "sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", + "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4533,15 +4487,6 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -4579,21 +4524,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -4603,39 +4533,20 @@ "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.5.tgz", - "integrity": "sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", + "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4649,12 +4560,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz", - "integrity": "sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", + "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", + "@typescript-eslint/types": "5.45.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5134,6 +5045,15 @@ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -8504,13 +8424,15 @@ } }, "node_modules/eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -8520,18 +8442,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -8542,8 +8467,7 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -8692,6 +8616,22 @@ "node": ">=4.0" } }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -8753,16 +8693,19 @@ "node": ">= 0.8.0" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "p-locate": "^5.0.0" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/optionator": { @@ -8782,6 +8725,21 @@ "node": ">= 0.8.0" } }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -8828,23 +8786,26 @@ } }, "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -9662,12 +9623,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -9878,6 +9833,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -10711,7 +10672,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "optional": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -10962,6 +10923,16 @@ "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", "peer": true }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -12119,9 +12090,9 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -12419,6 +12390,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node_modules/needle": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", @@ -12476,9 +12453,9 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "node_modules/ngx-echarts": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ngx-echarts/-/ngx-echarts-8.0.1.tgz", - "integrity": "sha512-CP+WnCcnMCNpCL9BVmDIZmhGSVPnkJhhFbQEKt0nrwV0L6d4QTAGZ+e4y6G1zTTFKkIMPHpaO0nhtDRgSXAW/w==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/ngx-echarts/-/ngx-echarts-14.0.0.tgz", + "integrity": "sha512-Q8J/DXiWqYM2vqTfQq16A7KyxbWECZSiAApS0rBjsAJCPjG/VZogUe0snZ/i3mA6bV3vYm41imTYOaH+Rl97QA==", "dependencies": { "tslib": "^2.3.0" }, @@ -13790,20 +13767,6 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/postcss-logical": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", @@ -14269,9 +14232,9 @@ } }, "node_modules/qrcode": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz", - "integrity": "sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", + "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", "dependencies": { "dijkstrajs": "^1.0.1", "encode-utf8": "^1.0.3", @@ -14910,9 +14873,9 @@ } }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -16029,9 +15992,9 @@ } }, "node_modules/ts-node": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz", - "integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -16097,6 +16060,27 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -16468,12 +16452,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -17405,6 +17383,12 @@ } } }, + "@ngtools/webpack": { + "version": "14.2.10", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", + "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", + "requires": {} + }, "ajv": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", @@ -19477,14 +19461,14 @@ "optional": true }, "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", + "espree": "^9.4.0", "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -19500,9 +19484,9 @@ "dev": true }, "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -19517,15 +19501,6 @@ "argparse": "^2.0.1" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -19632,16 +19607,22 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" } }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -19757,12 +19738,6 @@ "tslib": "^2.3.0" } }, - "@ngtools/webpack": { - "version": "14.2.10", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.10.tgz", - "integrity": "sha512-sLHapZLVub6mEz5b19tf1VfIV1w3tYfg7FNPLeni79aldxu1FbP1v2WmiFAnMzrswqyK0bhTtxrl+Z/CLKqyoQ==", - "requires": {} - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -20147,9 +20122,9 @@ "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" }, "@types/node": { - "version": "12.19.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.7.tgz", - "integrity": "sha512-zvjOU1g4CpPilbTDUATnZCUb/6lARMRAqzT7ILwl1P3YvU2leEcZ2+fw9+Jrw/paXB1CgQyXTrN4hWDtqT9O2A==" + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" }, "@types/parse-json": { "version": "4.0.0", @@ -20179,6 +20154,12 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -20234,17 +20215,17 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.5.tgz", - "integrity": "sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", + "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/type-utils": "5.30.5", - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/type-utils": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" @@ -20258,42 +20239,18 @@ "requires": { "ms": "2.1.2" } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/parser": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.5.tgz", - "integrity": "sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", + "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "debug": "^4.3.4" }, "dependencies": { @@ -20309,22 +20266,23 @@ } }, "@typescript-eslint/scope-manager": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.5.tgz", - "integrity": "sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", + "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5" + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0" } }, "@typescript-eslint/type-utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.5.tgz", - "integrity": "sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", + "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -20337,38 +20295,23 @@ "requires": { "ms": "2.1.2" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/types": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.5.tgz", - "integrity": "sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", + "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz", - "integrity": "sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", + "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -20376,12 +20319,6 @@ "tsutils": "^3.21.0" }, "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -20405,59 +20342,37 @@ "slash": "^3.0.0" } }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.5.tgz", - "integrity": "sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", + "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz", - "integrity": "sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", + "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", + "@typescript-eslint/types": "5.45.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -20845,6 +20760,12 @@ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -23376,13 +23297,15 @@ } }, "eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -23392,18 +23315,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -23414,8 +23340,7 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -23480,6 +23405,16 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -23523,13 +23458,13 @@ "type-check": "~0.4.0" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "p-locate": "^5.0.0" } }, "optionator": { @@ -23546,6 +23481,15 @@ "word-wrap": "^1.2.3" } }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -23611,20 +23555,20 @@ "dev": true }, "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true } } @@ -24260,12 +24204,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -24426,6 +24364,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -25018,7 +24962,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "optional": true + "devOptional": true }, "is-plain-obj": { "version": "3.0.0", @@ -25192,6 +25136,12 @@ "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", "peer": true }, + "js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -26069,9 +26019,9 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -26304,6 +26254,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "needle": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz", @@ -26351,9 +26307,9 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "ngx-echarts": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ngx-echarts/-/ngx-echarts-8.0.1.tgz", - "integrity": "sha512-CP+WnCcnMCNpCL9BVmDIZmhGSVPnkJhhFbQEKt0nrwV0L6d4QTAGZ+e4y6G1zTTFKkIMPHpaO0nhtDRgSXAW/w==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/ngx-echarts/-/ngx-echarts-14.0.0.tgz", + "integrity": "sha512-Q8J/DXiWqYM2vqTfQq16A7KyxbWECZSiAApS0rBjsAJCPjG/VZogUe0snZ/i3mA6bV3vYm41imTYOaH+Rl97QA==", "requires": { "tslib": "^2.3.0" } @@ -27244,16 +27200,6 @@ "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.7" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "postcss-logical": { @@ -27564,9 +27510,9 @@ "peer": true }, "qrcode": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz", - "integrity": "sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", + "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", "requires": { "dijkstrajs": "^1.0.1", "encode-utf8": "^1.0.3", @@ -28038,9 +27984,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "requires": { "lru-cache": "^6.0.0" } @@ -28890,9 +28836,9 @@ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" }, "ts-node": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz", - "integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", @@ -28929,6 +28875,23 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -29205,12 +29168,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index f491cf49a..4f841e587 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -87,9 +87,9 @@ "echarts": "~5.3.2", "echarts-gl": "^2.0.9", "lightweight-charts": "~3.8.0", - "ngx-echarts": "8.0.1", + "ngx-echarts": "~14.0.0", "ngx-infinite-scroll": "^14.0.1", - "qrcode": "1.5.0", + "qrcode": "1.5.1", "rxjs": "~7.5.7", "tinyify": "^3.1.0", "tlite": "^0.1.9", @@ -99,13 +99,13 @@ "devDependencies": { "@angular/compiler-cli": "^14.2.12", "@angular/language-service": "^14.2.12", - "@types/node": "^12.11.1", - "@typescript-eslint/eslint-plugin": "^5.30.5", - "@typescript-eslint/parser": "^5.30.5", - "eslint": "^8.19.0", + "@types/node": "^18.11.9", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "eslint": "^8.28.0", "http-proxy-middleware": "~2.0.6", "prettier": "^2.7.1", - "ts-node": "~10.8.1", + "ts-node": "~10.9.1", "typescript": "~4.6.4" }, "optionalDependencies": { From 030889250fd225985e524e7c64311843c67a8fb2 Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 30 Nov 2022 17:56:53 +0900 Subject: [PATCH 0110/1466] Mempool GBT config --- backend/mempool-config.sample.json | 3 ++- .../src/__fixtures__/mempool-config.template.json | 3 ++- backend/src/__tests__/config.test.ts | 3 ++- backend/src/api/websocket-handler.ts | 13 ++++++------- backend/src/config.ts | 6 ++++-- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index b0b157c42..6de690ad8 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -25,7 +25,8 @@ "AUTOMATIC_BLOCK_REINDEXING": false, "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json", "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", - "ADVANCED_TRANSACTION_SELECTION": false, + "ADVANCED_GBT_AUDIT": false, + "ADVANCED_GBT_MEMPOOL": false, "TRANSACTION_INDEXING": false }, "CORE_RPC": { diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index 8b368a43a..7a988a70d 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -26,7 +26,8 @@ "INDEXING_BLOCKS_AMOUNT": 14, "POOLS_JSON_TREE_URL": "__POOLS_JSON_TREE_URL__", "POOLS_JSON_URL": "__POOLS_JSON_URL__", - "ADVANCED_TRANSACTION_SELECTION": "__ADVANCED_TRANSACTION_SELECTION__", + "ADVANCED_GBT_AUDIT": "__ADVANCED_GBT_AUDIT__", + "ADVANCED_GBT_MEMPOOL": "__ADVANCED_GBT_MEMPOOL__", "TRANSACTION_INDEXING": "__TRANSACTION_INDEXING__" }, "CORE_RPC": { diff --git a/backend/src/__tests__/config.test.ts b/backend/src/__tests__/config.test.ts index c95888cf2..58cf3a214 100644 --- a/backend/src/__tests__/config.test.ts +++ b/backend/src/__tests__/config.test.ts @@ -38,7 +38,8 @@ describe('Mempool Backend Config', () => { STDOUT_LOG_MIN_PRIORITY: 'debug', POOLS_JSON_TREE_URL: 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', - ADVANCED_TRANSACTION_SELECTION: false, + ADVANCED_GBT_AUDIT: false, + ADVANCED_GBT_MEMPOOL: false, TRANSACTION_INDEXING: false, }); diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 0499fe842..31224fc0c 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -250,12 +250,12 @@ class WebsocketHandler { throw new Error('WebSocket.Server is not set'); } - if (config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (config.MEMPOOL.ADVANCED_GBT_MEMPOOL) { await mempoolBlocks.makeBlockTemplates(newMempool, 8, null, true); - } - else { + } else { mempoolBlocks.updateMempoolBlocks(newMempool); } + const mBlocks = mempoolBlocks.getMempoolBlocks(); const mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); const mempoolInfo = memPool.getMempoolInfo(); @@ -417,9 +417,8 @@ class WebsocketHandler { } const _memPool = memPool.getMempool(); - let matchRate; - if (config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (config.MEMPOOL.ADVANCED_GBT_AUDIT) { await mempoolBlocks.makeBlockTemplates(_memPool, 2); } else { mempoolBlocks.updateMempoolBlocks(_memPool); @@ -429,7 +428,7 @@ class WebsocketHandler { const projectedBlocks = mempoolBlocks.getMempoolBlocksWithTransactions(); const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, _memPool); - matchRate = Math.round(score * 100 * 100) / 100; + const matchRate = Math.round(score * 100 * 100) / 100; const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => { return { @@ -468,7 +467,7 @@ class WebsocketHandler { delete _memPool[txId]; } - if (config.MEMPOOL.ADVANCED_TRANSACTION_SELECTION) { + if (config.MEMPOOL.ADVANCED_GBT_MEMPOOL) { await mempoolBlocks.makeBlockTemplates(_memPool, 2); } else { mempoolBlocks.updateMempoolBlocks(_memPool); diff --git a/backend/src/config.ts b/backend/src/config.ts index 808e1406b..3a3d2b56d 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -29,7 +29,8 @@ interface IConfig { AUTOMATIC_BLOCK_REINDEXING: boolean; POOLS_JSON_URL: string, POOLS_JSON_TREE_URL: string, - ADVANCED_TRANSACTION_SELECTION: boolean; + ADVANCED_GBT_AUDIT: boolean; + ADVANCED_GBT_MEMPOOL: boolean; TRANSACTION_INDEXING: boolean; }; ESPLORA: { @@ -148,7 +149,8 @@ const defaults: IConfig = { 'AUTOMATIC_BLOCK_REINDEXING': false, 'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', 'POOLS_JSON_TREE_URL': 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', - 'ADVANCED_TRANSACTION_SELECTION': false, + 'ADVANCED_GBT_AUDIT': false, + 'ADVANCED_GBT_MEMPOOL': false, 'TRANSACTION_INDEXING': false, }, 'ESPLORA': { From a9e766046f270b5f2afd893b2d874ee3c1f98f15 Mon Sep 17 00:00:00 2001 From: wiz Date: Wed, 30 Nov 2022 18:10:47 +0900 Subject: [PATCH 0111/1466] [ops] Increase nginx max concurrent streams --- production/nginx/http-basic.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/production/nginx/http-basic.conf b/production/nginx/http-basic.conf index 5d707ca42..dc880cad5 100644 --- a/production/nginx/http-basic.conf +++ b/production/nginx/http-basic.conf @@ -35,3 +35,5 @@ gzip_types application/javascript application/json application/ld+json applicati # limit request body size client_max_body_size 10m; +# need to bump this up for about page sponsor images lol +http2_max_concurrent_streams 256; From cf89ded14d138f03c9e8676edcbea8d12faf87e7 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 10 Nov 2022 12:21:19 -0600 Subject: [PATCH 0112/1466] detect links between channel close and open txs --- backend/src/api/database-migration.ts | 28 ++- backend/src/api/explorer/channels.api.ts | 144 ++++++++++- .../api/lightning/lightning-api.interface.ts | 6 + .../tasks/lightning/network-sync.service.ts | 227 ++++++++++++++++++ 4 files changed, 402 insertions(+), 3 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index a9cb14929..0f43580f6 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -4,7 +4,7 @@ import logger from '../logger'; import { Common } from './common'; class DatabaseMigration { - private static currentVersion = 47; + private static currentVersion = 48; private queryTimeout = 900_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -379,7 +379,12 @@ class DatabaseMigration { await this.$executeQuery(this.getCreateCPFPTableQuery(), await this.$checkIfTableExists('cpfp_clusters')); await this.$executeQuery(this.getCreateTransactionsTableQuery(), await this.$checkIfTableExists('transactions')); } -} + + if (databaseSchemaVersion < 48 && isBitcoin === true) { + await this.$executeQuery('ALTER TABLE `channels` ADD source_checked tinyint(1) DEFAULT 0'); + await this.$executeQuery(this.getCreateChannelsForensicsTableQuery(), await this.$checkIfTableExists('channels_forensics')); + } + } /** * Special case here for the `statistics` table - It appeared that somehow some dbs already had the `added` field indexed @@ -759,6 +764,25 @@ class DatabaseMigration { ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; } + private getCreateChannelsForensicsTableQuery(): string { + return `CREATE TABLE IF NOT EXISTS channels_forensics ( + channel_id bigint(11) unsigned NOT NULL, + closing_fee bigint(20) unsigned DEFAULT 0, + node1_funding_balance bigint(20) unsigned DEFAULT 0, + node2_funding_balance bigint(20) unsigned DEFAULT 0, + node1_closing_balance bigint(20) unsigned DEFAULT 0, + node2_closing_balance bigint(20) unsigned DEFAULT 0, + funding_ratio float unsigned DEFAULT NULL, + closed_by varchar(66) DEFAULT NULL, + single_funded tinyint(1) default 0, + outputs JSON NOT NULL, + PRIMARY KEY (channel_id), + FOREIGN KEY (channel_id) + REFERENCES channels (id) + ON DELETE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; + } + private getCreateNodesStatsQuery(): string { return `CREATE TABLE IF NOT EXISTS node_stats ( id int(11) unsigned NOT NULL AUTO_INCREMENT, diff --git a/backend/src/api/explorer/channels.api.ts b/backend/src/api/explorer/channels.api.ts index 787bbe521..22d17476f 100644 --- a/backend/src/api/explorer/channels.api.ts +++ b/backend/src/api/explorer/channels.api.ts @@ -128,6 +128,22 @@ class ChannelsApi { } } + public async $getChannelsWithoutSourceChecked(): Promise { + try { + const query = ` + SELECT channels.*, forensics.* + FROM channels + LEFT JOIN channels_forensics AS forensics ON forensics.channel_id = channels.id + WHERE channels.source_checked != 1 + `; + const [rows]: any = await DB.query(query); + return rows; + } catch (e) { + logger.err('$getUnresolvedClosedChannels error: ' + (e instanceof Error ? e.message : e)); + throw e; + } + } + public async $getChannelsWithoutCreatedDate(): Promise { try { const query = `SELECT * FROM channels WHERE created IS NULL`; @@ -145,12 +161,16 @@ class ChannelsApi { SELECT n1.alias AS alias_left, n1.longitude as node1_longitude, n1.latitude as node1_latitude, n2.alias AS alias_right, n2.longitude as node2_longitude, n2.latitude as node2_latitude, channels.*, - ns1.channels AS channels_left, ns1.capacity AS capacity_left, ns2.channels AS channels_right, ns2.capacity AS capacity_right + ns1.channels AS channels_left, ns1.capacity AS capacity_left, ns2.channels AS channels_right, ns2.capacity AS capacity_right, + forensics.closing_fee as closing_fee, forensics.node1_funding_balance as node1_funding_balance, forensics.node2_funding_balance as node2_funding_balance, + forensics.funding_ratio as funding_ratio, forensics.node1_closing_balance as node1_closing_balance, forensics.node2_closing_balance as node2_closing_balance, + forensics.closed_by as closed_by, forensics.single_funded as single_funded FROM channels LEFT JOIN nodes AS n1 ON n1.public_key = channels.node1_public_key LEFT JOIN nodes AS n2 ON n2.public_key = channels.node2_public_key LEFT JOIN node_stats AS ns1 ON ns1.public_key = channels.node1_public_key LEFT JOIN node_stats AS ns2 ON ns2.public_key = channels.node2_public_key + LEFT JOIN channels_forensics AS forensics ON forensics.channel_id = channels.id WHERE ( ns1.id = ( SELECT MAX(id) @@ -257,6 +277,118 @@ class ChannelsApi { } } + public async $getChannelForensicsByTransactionId(transactionId: string): Promise { + try { + const query = ` + SELECT + channels.id, channels.node1_public_key, channels.node2_public_key, + channels.closing_reason, channels.closing_transaction_id, + forensics.* + FROM channels + LEFT JOIN channels_forensics as forensics ON forensics.channel_id = channels.id + WHERE channels.closing_transaction_id = ? + `; + const [rows]: any = await DB.query(query, [transactionId]); + if (rows.length > 0) { + rows[0].outputs = JSON.parse(rows[0].outputs); + return rows[0]; + } + } catch (e) { + logger.err('$getChannelForensicsByTransactionId error: ' + (e instanceof Error ? e.message : e)); + // don't throw - this data isn't essential + } + } + + public async $updateClosingInfo(channelInfo: { id: string, node1_closing_balance: number, node2_closing_balance: number, closed_by: string | null, closing_fee: number, outputs: ILightningApi.ForensicOutput[]}): Promise { + try { + const query = ` + INSERT INTO channels_forensics + ( + channel_id, + node1_closing_balance, + node2_closing_balance, + closed_by, + closing_fee, + outputs + ) + VALUES (?, ?, ?, ?, ?, ?) + ON DUPLICATE KEY UPDATE + node1_closing_balance = ?, + node2_closing_balance = ?, + closed_by = ?, + closing_fee = ?, + outputs = ? + `; + const jsonOutputs = JSON.stringify(channelInfo.outputs); + await DB.query(query, [ + channelInfo.id, + channelInfo.node1_closing_balance, + channelInfo.node2_closing_balance, + channelInfo.closed_by, + channelInfo.closing_fee, + jsonOutputs, + channelInfo.node1_closing_balance, + channelInfo.node2_closing_balance, + channelInfo.closed_by, + channelInfo.closing_fee, + jsonOutputs + ]); + } catch (e) { + logger.err('$updateClosingInfo error: ' + (e instanceof Error ? e.message : e)); + // don't throw - this data isn't essential + } + } + + public async $updateOpeningInfo(channelInfo: { id: string, node1_funding_balance: number, node2_funding_balance: number, funding_ratio: number, single_funded: boolean | void }): Promise { + try { + const query = ` + INSERT INTO channels_forensics + ( + channel_id, + node1_funding_balance, + node2_funding_balance, + funding_ratio, + single_funded, + outputs + ) + VALUES (?, ?, ?, ?, ?, 'null') + ON DUPLICATE KEY UPDATE + node1_funding_balance = ?, + node2_funding_balance = ?, + funding_ratio = ?, + single_funded = ? + `; + await DB.query(query, [ + channelInfo.id, + channelInfo.node1_funding_balance, + channelInfo.node2_funding_balance, + channelInfo.funding_ratio, + channelInfo.single_funded ? 1 : 0, + channelInfo.node1_funding_balance, + channelInfo.node2_funding_balance, + channelInfo.funding_ratio, + channelInfo.single_funded ? 1 : 0, + ]); + } catch (e) { + logger.err('$updateOpeningInfo error: ' + (e instanceof Error ? e.message : e)); + // don't throw - this data isn't essential + } + } + + public async $markChannelSourceChecked(id: string): Promise { + try { + const query = ` + UPDATE channels + SET source_checked = 1 + WHERE id = ? + `; + await DB.query(query, [id]); + } catch (e) { + logger.err('$markChannelSourceChecked error: ' + (e instanceof Error ? e.message : e)); + // don't throw - this data isn't essential + } + } + public async $getChannelsForNode(public_key: string, index: number, length: number, status: string): Promise { try { let channelStatusFilter; @@ -385,11 +517,15 @@ class ChannelsApi { 'transaction_id': channel.transaction_id, 'transaction_vout': channel.transaction_vout, 'closing_transaction_id': channel.closing_transaction_id, + 'closing_fee': channel.closing_fee, 'closing_reason': channel.closing_reason, 'closing_date': channel.closing_date, 'updated_at': channel.updated_at, 'created': channel.created, 'status': channel.status, + 'funding_ratio': channel.funding_ratio, + 'closed_by': channel.closed_by, + 'single_funded': !!channel.single_funded, 'node_left': { 'alias': channel.alias_left, 'public_key': channel.node1_public_key, @@ -404,6 +540,9 @@ class ChannelsApi { 'updated_at': channel.node1_updated_at, 'longitude': channel.node1_longitude, 'latitude': channel.node1_latitude, + 'funding_balance': channel.node1_funding_balance, + 'closing_balance': channel.node1_closing_balance, + 'initiated_close': channel.closed_by === channel.node1_public_key ? true : undefined, }, 'node_right': { 'alias': channel.alias_right, @@ -419,6 +558,9 @@ class ChannelsApi { 'updated_at': channel.node2_updated_at, 'longitude': channel.node2_longitude, 'latitude': channel.node2_latitude, + 'funding_balance': channel.node2_funding_balance, + 'closing_balance': channel.node2_closing_balance, + 'initiated_close': channel.closed_by === channel.node2_public_key ? true : undefined, }, }; } diff --git a/backend/src/api/lightning/lightning-api.interface.ts b/backend/src/api/lightning/lightning-api.interface.ts index 6e3ea0de3..453e2fffc 100644 --- a/backend/src/api/lightning/lightning-api.interface.ts +++ b/backend/src/api/lightning/lightning-api.interface.ts @@ -83,4 +83,10 @@ export namespace ILightningApi { is_required: boolean; is_known: boolean; } + + export interface ForensicOutput { + node?: 1 | 2; + type: number; + value: number; + } } \ No newline at end of file diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index 9f40a350a..ca10ba919 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -304,6 +304,233 @@ class NetworkSyncService { logger.err('$scanForClosedChannels() error: ' + (e instanceof Error ? e.message : e)); } } + + private findLightningScript(vin: IEsploraApi.Vin): number { + const topElement = vin.witness[vin.witness.length - 2]; + if (/^OP_IF OP_PUSHBYTES_33 \w{66} OP_ELSE OP_PUSH(NUM_\d+|BYTES_(1 \w{2}|2 \w{4})) OP_CSV OP_DROP OP_PUSHBYTES_33 \w{66} OP_ENDIF OP_CHECKSIG$/.test(vin.inner_witnessscript_asm)) { + // https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs + if (topElement === '01') { + // top element is '01' to get in the revocation path + // 'Revoked Lightning Force Close'; + // Penalty force closed + return 2; + } else { + // top element is '', this is a delayed to_local output + // 'Lightning Force Close'; + return 3; + } + } else if ( + /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_NOTIF OP_DROP OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) || + /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_IF OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_DROP OP_PUSHBYTES_3 \w{6} OP_CLTV OP_DROP OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) + ) { + // https://github.com/lightning/bolts/blob/master/03-transactions.md#offered-htlc-outputs + // https://github.com/lightning/bolts/blob/master/03-transactions.md#received-htlc-outputs + if (topElement.length === 66) { + // top element is a public key + // 'Revoked Lightning HTLC'; Penalty force closed + return 4; + } else if (topElement) { + // top element is a preimage + // 'Lightning HTLC'; + return 5; + } else { + // top element is '' to get in the expiry of the script + // 'Expired Lightning HTLC'; + return 6; + } + } else if (/^OP_PUSHBYTES_33 \w{66} OP_CHECKSIG OP_IFDUP OP_NOTIF OP_PUSHNUM_16 OP_CSV OP_ENDIF$/.test(vin.inner_witnessscript_asm)) { + // https://github.com/lightning/bolts/blob/master/03-transactions.md#to_local_anchor-and-to_remote_anchor-output-option_anchors + if (topElement) { + // top element is a signature + // 'Lightning Anchor'; + return 7; + } else { + // top element is '', it has been swept after 16 blocks + // 'Swept Lightning Anchor'; + return 8; + } + } + return 1; + } + + // If a channel open tx spends funds from a closed channel output, + // we can attribute that output to a specific counterparty + private async $runOpenedChannelsForensics(): Promise { + let progress = 0; + + try { + logger.info(`Started running open channel forensics...`); + const channels = await channelsApi.$getChannelsWithoutSourceChecked(); + + for (const openChannel of channels) { + const openTx = await bitcoinApi.$getRawTransaction(openChannel.transaction_id); + for (const input of openTx.vin) { + const closeChannel = await channelsApi.$getChannelForensicsByTransactionId(input.txid); + if (closeChannel) { + // this input directly spends a channel close output + await this.$attributeChannelBalances(closeChannel, openChannel, input); + } else { + // check if this input spends any swept channel close outputs + await this.$attributeSweptChannelCloses(openChannel, input); + } + } + // calculate how much of the total input value is attributable to the channel open output + openChannel.funding_ratio = openTx.vout[openChannel.transaction_vout].value / ((openTx.vout.reduce((sum, v) => sum + v.value, 0) || 1) + openTx.fee); + // save changes to the opening channel, and mark it as checked + if (openTx.vin.length === 1) { + openChannel.single_funded = true; + } + await channelsApi.$updateOpeningInfo(openChannel); + await channelsApi.$markChannelSourceChecked(openChannel.id); + + ++progress; + const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer); + if (elapsedSeconds > 10) { + logger.info(`Updating channel opened channel forensics ${progress}/${channels.length}`); + this.loggerTimer = new Date().getTime() / 1000; + } + } + + logger.info(`Open channels forensics scan complete.`); + } catch (e) { + logger.err('$runOpenedChannelsForensics() error: ' + (e instanceof Error ? e.message : e)); + } + } + + // Check if a channel open tx input spends the result of a swept channel close output + private async $attributeSweptChannelCloses(openChannel: ILightningApi.Channel, input: IEsploraApi.Vin): Promise { + const sweepTx = await bitcoinApi.$getRawTransaction(input.txid); + if (!sweepTx) { + logger.err(`couldn't find input transaction for channel forensics ${openChannel.channel_id} ${input.txid}`); + return; + } + const openContribution = sweepTx.vout[input.vout].value; + for (const sweepInput of sweepTx.vin) { + const lnScriptType = this.findLightningScript(sweepInput); + if (lnScriptType > 1) { + const closeChannel = await channelsApi.$getChannelForensicsByTransactionId(sweepInput.txid); + if (closeChannel) { + const initiator = (lnScriptType === 2 || lnScriptType === 4) ? 'remote' : (lnScriptType === 3 ? 'local' : null); + await this.$attributeChannelBalances(closeChannel, openChannel, sweepInput, openContribution, initiator); + } + } + } + } + + private async $attributeChannelBalances( + closeChannel, openChannel, input: IEsploraApi.Vin, openContribution: number | null = null, + initiator: 'remote' | 'local' | null = null + ): Promise { + // figure out which node controls the input/output + let openSide; + let closeLocal; + let closeRemote; + let matched = false; + let ambiguous = false; // if counterparties are the same in both channels, we can't tell them apart + if (openChannel.node1_public_key === closeChannel.node1_public_key) { + openSide = 1; + closeLocal = 1; + closeRemote = 2; + matched = true; + } else if (openChannel.node1_public_key === closeChannel.node2_public_key) { + openSide = 1; + closeLocal = 2; + closeRemote = 1; + matched = true; + } + if (openChannel.node2_public_key === closeChannel.node1_public_key) { + openSide = 2; + closeLocal = 1; + closeRemote = 2; + if (matched) { + ambiguous = true; + } + matched = true; + } else if (openChannel.node2_public_key === closeChannel.node2_public_key) { + openSide = 2; + closeLocal = 2; + closeRemote = 1; + if (matched) { + ambiguous = true; + } + matched = true; + } + + if (matched && !ambiguous) { + // fetch closing channel transaction and perform forensics on the outputs + let closingTx: IEsploraApi.Transaction | undefined; + let outspends: IEsploraApi.Outspend[] | undefined; + try { + closingTx = await bitcoinApi.$getRawTransaction(input.txid); + outspends = await bitcoinApi.$getOutspends(input.txid); + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + closeChannel.closing_transaction_id + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); + } + if (!outspends || !closingTx) { + return; + } + if (!closeChannel.outputs) { + closeChannel.outputs = closeChannel.outputs || closingTx.vout.map(vout => { + return { + type: 0, + value: vout.value, + }; + }); + } + for (let i = 0; i < outspends.length; i++) { + const outspend = outspends[i]; + const output = closeChannel.outputs[i]; + if (outspend.spent && outspend.txid) { + try { + const spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); + if (spendingTx) { + output.type = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); + } + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); + } + } else { + output.type = 0; + } + } + + // attribute outputs to each counterparty, and sum up total known balances + closeChannel.outputs[input.vout].node = closeLocal; + const isPenalty = closeChannel.outputs.filter((out) => out.type === 2 || out.type === 4).length > 0; + const normalOutput = [1,3].includes(closeChannel.outputs[input.vout].type); + let localClosingBalance = 0; + let remoteClosingBalance = 0; + for (const output of closeChannel.outputs) { + if (isPenalty) { + // penalty close, so local node takes everything + localClosingBalance += output.value; + } else if (output.node) { + // this output determinstically linked to one of the counterparties + if (output.node === closeLocal) { + localClosingBalance += output.value; + } else { + remoteClosingBalance += output.value; + } + } else if (normalOutput && (output.type === 1 || output.type === 3)) { + // local node had one main output, therefore remote node takes the other + remoteClosingBalance += output.value; + } + } + + openChannel[`node${openSide}_funding_balance`] = openChannel[`node${openSide}_funding_balance`] + (openContribution || closingTx?.vout[input.vout]?.value || 0); + closeChannel[`node${closeLocal}_closing_balance`] = localClosingBalance; + closeChannel[`node${closeRemote}_closing_balance`] = remoteClosingBalance; + closeChannel.closing_fee = closingTx.fee; + + if (initiator) { + const initiatorSide = initiator === 'remote' ? closeRemote : closeLocal; + closeChannel.closed_by = closeChannel[`node${initiatorSide}_public_key`]; + } + + // save changes to the closing channel + await channelsApi.$updateClosingInfo(closeChannel); + } + } } export default new NetworkSyncService(); From 0c96a11150583c90f5ffb3261c835b8fe0cd668f Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 10 Nov 2022 18:32:18 -0600 Subject: [PATCH 0113/1466] display channel close forensics results --- .../src/app/interfaces/node-api.interface.ts | 6 +- .../channel-close-box.component.html | 19 ++++++ .../channel-close-box.component.scss | 9 +++ .../channel-close-box.component.spec.ts | 25 ++++++++ .../channel-close-box.component.ts | 58 +++++++++++++++++++ .../lightning/channel/channel.component.html | 11 ++++ .../lightning/channel/channel.component.ts | 5 ++ .../src/app/lightning/lightning.module.ts | 3 + 8 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html create mode 100644 frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.scss create mode 100644 frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.spec.ts create mode 100644 frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.ts diff --git a/frontend/src/app/interfaces/node-api.interface.ts b/frontend/src/app/interfaces/node-api.interface.ts index d32e641f7..2e6b94988 100644 --- a/frontend/src/app/interfaces/node-api.interface.ts +++ b/frontend/src/app/interfaces/node-api.interface.ts @@ -217,8 +217,8 @@ export interface IChannel { updated_at: string; created: string; status: number; - node_left: Node, - node_right: Node, + node_left: INode, + node_right: INode, } @@ -236,4 +236,6 @@ export interface INode { updated_at: string; longitude: number; latitude: number; + funding_balance?: number; + closing_balance?: number; } diff --git a/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html new file mode 100644 index 000000000..ae59767ff --- /dev/null +++ b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html @@ -0,0 +1,19 @@ +
+ + + + + + + + + + + + + + + + +
Starting balance{{ minStartingBalance | number : '1.0-0' }} - {{ maxStartingBalance | number : '1.0-0' }}?
Closing balance{{ minClosingBalance | number : '1.0-0' }} - {{ maxClosingBalance | number : '1.0-0' }}?
+
\ No newline at end of file diff --git a/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.scss b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.scss new file mode 100644 index 000000000..a42871308 --- /dev/null +++ b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.scss @@ -0,0 +1,9 @@ +.box { + margin-top: 20px; +} + +@media (max-width: 768px) { + .box { + margin-bottom: 20px; + } +} \ No newline at end of file diff --git a/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.spec.ts b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.spec.ts new file mode 100644 index 000000000..eea4ee99c --- /dev/null +++ b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ChannelCloseBoxComponent } from './channel-close-box.component'; + +describe('ChannelCloseBoxComponent', () => { + let component: ChannelCloseBoxComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ChannelCloseBoxComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ChannelCloseBoxComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.ts b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.ts new file mode 100644 index 000000000..05cc31434 --- /dev/null +++ b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.ts @@ -0,0 +1,58 @@ +import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core'; + +@Component({ + selector: 'app-channel-close-box', + templateUrl: './channel-close-box.component.html', + styleUrls: ['./channel-close-box.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ChannelCloseBoxComponent implements OnChanges { + @Input() channel: any; + @Input() local: any; + @Input() remote: any; + + showStartingBalance: boolean = false; + showClosingBalance: boolean = false; + minStartingBalance: number; + maxStartingBalance: number; + minClosingBalance: number; + maxClosingBalance: number; + + constructor() { } + + ngOnChanges(changes: SimpleChanges): void { + if (this.channel && this.local && this.remote) { + this.showStartingBalance = (this.local.funding_balance || this.remote.funding_balance) && this.channel.funding_ratio; + this.showClosingBalance = this.local.closing_balance || this.remote.closing_balance; + + if (this.channel.single_funded) { + if (this.local.funding_balance) { + this.minStartingBalance = this.channel.capacity; + this.maxStartingBalance = this.channel.capacity; + } else if (this.remote.funding_balance) { + this.minStartingBalance = 0; + this.maxStartingBalance = 0; + } + } else { + this.minStartingBalance = clampRound(0, this.channel.capacity, this.local.funding_balance * this.channel.funding_ratio); + this.maxStartingBalance = clampRound(0, this.channel.capacity, this.channel.capacity - (this.remote.funding_balance * this.channel.funding_ratio)); + } + + const closingCapacity = this.channel.capacity - this.channel.closing_fee; + this.minClosingBalance = clampRound(0, closingCapacity, this.local.closing_balance); + this.maxClosingBalance = clampRound(0, closingCapacity, closingCapacity - this.remote.closing_balance); + + // margin of error to account for 2 x 330 sat anchor outputs + if (Math.abs(this.minClosingBalance - this.maxClosingBalance) <= 660) { + this.maxClosingBalance = this.minClosingBalance; + } + } else { + this.showStartingBalance = false; + this.showClosingBalance = false; + } + } +} + +function clampRound(min: number, max: number, value: number): number { + return Math.max(0, Math.min(max, Math.round(value))); +} diff --git a/frontend/src/app/lightning/channel/channel.component.html b/frontend/src/app/lightning/channel/channel.component.html index c25af5377..f52b85762 100644 --- a/frontend/src/app/lightning/channel/channel.component.html +++ b/frontend/src/app/lightning/channel/channel.component.html @@ -48,6 +48,15 @@
Capacity
Closed by + + {{ channel.node_left.alias }} + {{ channel.node_right.alias }} + +
@@ -59,9 +68,11 @@
+
+
diff --git a/frontend/src/app/lightning/channel/channel.component.ts b/frontend/src/app/lightning/channel/channel.component.ts index d64d388ea..379e8a005 100644 --- a/frontend/src/app/lightning/channel/channel.component.ts +++ b/frontend/src/app/lightning/channel/channel.component.ts @@ -78,4 +78,9 @@ export class ChannelComponent implements OnInit { ); } + showCloseBoxes(channel: IChannel): boolean { + return !!(channel.node_left.funding_balance || channel.node_left.closing_balance + || channel.node_right.funding_balance || channel.node_right.closing_balance); + } + } diff --git a/frontend/src/app/lightning/lightning.module.ts b/frontend/src/app/lightning/lightning.module.ts index fa2f1a1ec..5d67433c7 100644 --- a/frontend/src/app/lightning/lightning.module.ts +++ b/frontend/src/app/lightning/lightning.module.ts @@ -12,6 +12,7 @@ import { ChannelsListComponent } from './channels-list/channels-list.component'; import { ChannelComponent } from './channel/channel.component'; import { LightningWrapperComponent } from './lightning-wrapper/lightning-wrapper.component'; import { ChannelBoxComponent } from './channel/channel-box/channel-box.component'; +import { ChannelCloseBoxComponent } from './channel/channel-close-box/channel-close-box.component'; import { ClosingTypeComponent } from './channel/closing-type/closing-type.component'; import { LightningStatisticsChartComponent } from './statistics-chart/lightning-statistics-chart.component'; import { NodeStatisticsChartComponent } from './node-statistics-chart/node-statistics-chart.component'; @@ -45,6 +46,7 @@ import { GroupComponent } from './group/group.component'; ChannelComponent, LightningWrapperComponent, ChannelBoxComponent, + ChannelCloseBoxComponent, ClosingTypeComponent, LightningStatisticsChartComponent, NodesNetworksChartComponent, @@ -81,6 +83,7 @@ import { GroupComponent } from './group/group.component'; ChannelComponent, LightningWrapperComponent, ChannelBoxComponent, + ChannelCloseBoxComponent, ClosingTypeComponent, LightningStatisticsChartComponent, NodesNetworksChartComponent, From 8f0830f6d1624a1b6020d8939fdd2c0c92839b36 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 20 Nov 2022 19:11:14 +0900 Subject: [PATCH 0114/1466] detect channels opened from change outputs --- backend/src/api/explorer/channels.api.ts | 26 ++- .../tasks/lightning/network-sync.service.ts | 154 +++++++++--------- 2 files changed, 105 insertions(+), 75 deletions(-) diff --git a/backend/src/api/explorer/channels.api.ts b/backend/src/api/explorer/channels.api.ts index 22d17476f..37edf11d0 100644 --- a/backend/src/api/explorer/channels.api.ts +++ b/backend/src/api/explorer/channels.api.ts @@ -277,7 +277,7 @@ class ChannelsApi { } } - public async $getChannelForensicsByTransactionId(transactionId: string): Promise { + public async $getChannelForensicsByClosingId(transactionId: string): Promise { try { const query = ` SELECT @@ -294,7 +294,29 @@ class ChannelsApi { return rows[0]; } } catch (e) { - logger.err('$getChannelForensicsByTransactionId error: ' + (e instanceof Error ? e.message : e)); + logger.err('$getChannelForensicsByClosingId error: ' + (e instanceof Error ? e.message : e)); + // don't throw - this data isn't essential + } + } + + public async $getChannelForensicsByOpeningId(transactionId: string): Promise { + try { + const query = ` + SELECT + channels.id, channels.node1_public_key, channels.node2_public_key, + channels.status, channels.transaction_id, + forensics.* + FROM channels + LEFT JOIN channels_forensics as forensics ON forensics.channel_id = channels.id + WHERE channels.transaction_id = ? + `; + const [rows]: any = await DB.query(query, [transactionId]); + if (rows.length > 0) { + rows[0].outputs = JSON.parse(rows[0].outputs); + return rows[0]; + } + } catch (e) { + logger.err('$getChannelForensicsByOpeningId error: ' + (e instanceof Error ? e.message : e)); // don't throw - this data isn't essential } } diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index ca10ba919..ac7c7a2ca 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -306,7 +306,7 @@ class NetworkSyncService { } private findLightningScript(vin: IEsploraApi.Vin): number { - const topElement = vin.witness[vin.witness.length - 2]; + const topElement = vin.witness ? vin.witness[vin.witness.length - 2] : ''; if (/^OP_IF OP_PUSHBYTES_33 \w{66} OP_ELSE OP_PUSH(NUM_\d+|BYTES_(1 \w{2}|2 \w{4})) OP_CSV OP_DROP OP_PUSHBYTES_33 \w{66} OP_ENDIF OP_CHECKSIG$/.test(vin.inner_witnessscript_asm)) { // https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs if (topElement === '01') { @@ -325,7 +325,7 @@ class NetworkSyncService { ) { // https://github.com/lightning/bolts/blob/master/03-transactions.md#offered-htlc-outputs // https://github.com/lightning/bolts/blob/master/03-transactions.md#received-htlc-outputs - if (topElement.length === 66) { + if (topElement?.length === 66) { // top element is a public key // 'Revoked Lightning HTLC'; Penalty force closed return 4; @@ -365,28 +365,35 @@ class NetworkSyncService { for (const openChannel of channels) { const openTx = await bitcoinApi.$getRawTransaction(openChannel.transaction_id); for (const input of openTx.vin) { - const closeChannel = await channelsApi.$getChannelForensicsByTransactionId(input.txid); + const closeChannel = await channelsApi.$getChannelForensicsByClosingId(input.txid); if (closeChannel) { // this input directly spends a channel close output await this.$attributeChannelBalances(closeChannel, openChannel, input); } else { - // check if this input spends any swept channel close outputs - await this.$attributeSweptChannelCloses(openChannel, input); + const prevOpenChannel = await channelsApi.$getChannelForensicsByOpeningId(input.txid); + if (prevOpenChannel) { + await this.$attributeChannelBalances(prevOpenChannel, openChannel, input, null, null, true); + } else { + // check if this input spends any swept channel close outputs + await this.$attributeSweptChannelCloses(openChannel, input); + } } } // calculate how much of the total input value is attributable to the channel open output openChannel.funding_ratio = openTx.vout[openChannel.transaction_vout].value / ((openTx.vout.reduce((sum, v) => sum + v.value, 0) || 1) + openTx.fee); // save changes to the opening channel, and mark it as checked - if (openTx.vin.length === 1) { + if (openTx?.vin?.length === 1) { openChannel.single_funded = true; } - await channelsApi.$updateOpeningInfo(openChannel); + if (openChannel.node1_funding_balance || openChannel.node2_funding_balance || openChannel.node1_closing_balance || openChannel.node2_closing_balance || openChannel.closed_by) { + await channelsApi.$updateOpeningInfo(openChannel); + } await channelsApi.$markChannelSourceChecked(openChannel.id); ++progress; const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer); if (elapsedSeconds > 10) { - logger.info(`Updating channel opened channel forensics ${progress}/${channels.length}`); + logger.info(`Updating opened channel forensics ${progress}/${channels?.length}`); this.loggerTimer = new Date().getTime() / 1000; } } @@ -408,7 +415,7 @@ class NetworkSyncService { for (const sweepInput of sweepTx.vin) { const lnScriptType = this.findLightningScript(sweepInput); if (lnScriptType > 1) { - const closeChannel = await channelsApi.$getChannelForensicsByTransactionId(sweepInput.txid); + const closeChannel = await channelsApi.$getChannelForensicsByClosingId(sweepInput.txid); if (closeChannel) { const initiator = (lnScriptType === 2 || lnScriptType === 4) ? 'remote' : (lnScriptType === 3 ? 'local' : null); await this.$attributeChannelBalances(closeChannel, openChannel, sweepInput, openContribution, initiator); @@ -418,8 +425,8 @@ class NetworkSyncService { } private async $attributeChannelBalances( - closeChannel, openChannel, input: IEsploraApi.Vin, openContribution: number | null = null, - initiator: 'remote' | 'local' | null = null + prevChannel, openChannel, input: IEsploraApi.Vin, openContribution: number | null = null, + initiator: 'remote' | 'local' | null = null, linkedOpenings: boolean = false ): Promise { // figure out which node controls the input/output let openSide; @@ -427,18 +434,18 @@ class NetworkSyncService { let closeRemote; let matched = false; let ambiguous = false; // if counterparties are the same in both channels, we can't tell them apart - if (openChannel.node1_public_key === closeChannel.node1_public_key) { + if (openChannel.node1_public_key === prevChannel.node1_public_key) { openSide = 1; closeLocal = 1; closeRemote = 2; matched = true; - } else if (openChannel.node1_public_key === closeChannel.node2_public_key) { + } else if (openChannel.node1_public_key === prevChannel.node2_public_key) { openSide = 1; closeLocal = 2; closeRemote = 1; matched = true; } - if (openChannel.node2_public_key === closeChannel.node1_public_key) { + if (openChannel.node2_public_key === prevChannel.node1_public_key) { openSide = 2; closeLocal = 1; closeRemote = 2; @@ -446,7 +453,7 @@ class NetworkSyncService { ambiguous = true; } matched = true; - } else if (openChannel.node2_public_key === closeChannel.node2_public_key) { + } else if (openChannel.node2_public_key === prevChannel.node2_public_key) { openSide = 2; closeLocal = 2; closeRemote = 1; @@ -458,77 +465,78 @@ class NetworkSyncService { if (matched && !ambiguous) { // fetch closing channel transaction and perform forensics on the outputs - let closingTx: IEsploraApi.Transaction | undefined; + let prevChannelTx: IEsploraApi.Transaction | undefined; let outspends: IEsploraApi.Outspend[] | undefined; try { - closingTx = await bitcoinApi.$getRawTransaction(input.txid); + prevChannelTx = await bitcoinApi.$getRawTransaction(input.txid); outspends = await bitcoinApi.$getOutspends(input.txid); } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + closeChannel.closing_transaction_id + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + input.txid + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); } - if (!outspends || !closingTx) { + if (!outspends || !prevChannelTx) { return; } - if (!closeChannel.outputs) { - closeChannel.outputs = closeChannel.outputs || closingTx.vout.map(vout => { - return { - type: 0, - value: vout.value, - }; - }); - } - for (let i = 0; i < outspends.length; i++) { - const outspend = outspends[i]; - const output = closeChannel.outputs[i]; - if (outspend.spent && outspend.txid) { - try { - const spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); - if (spendingTx) { - output.type = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); - } - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); - } - } else { - output.type = 0; + if (!linkedOpenings) { + if (!prevChannel.outputs) { + prevChannel.outputs = prevChannel.outputs || prevChannelTx.vout.map(vout => { + return { + type: 0, + value: vout.value, + }; + }); } - } - - // attribute outputs to each counterparty, and sum up total known balances - closeChannel.outputs[input.vout].node = closeLocal; - const isPenalty = closeChannel.outputs.filter((out) => out.type === 2 || out.type === 4).length > 0; - const normalOutput = [1,3].includes(closeChannel.outputs[input.vout].type); - let localClosingBalance = 0; - let remoteClosingBalance = 0; - for (const output of closeChannel.outputs) { - if (isPenalty) { - // penalty close, so local node takes everything - localClosingBalance += output.value; - } else if (output.node) { - // this output determinstically linked to one of the counterparties - if (output.node === closeLocal) { - localClosingBalance += output.value; + for (let i = 0; i < outspends?.length; i++) { + const outspend = outspends[i]; + const output = prevChannel.outputs[i]; + if (outspend.spent && outspend.txid) { + try { + const spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); + if (spendingTx) { + output.type = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); + } + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); + } } else { + output.type = 0; + } + } + + // attribute outputs to each counterparty, and sum up total known balances + prevChannel.outputs[input.vout].node = closeLocal; + const isPenalty = prevChannel.outputs.filter((out) => out.type === 2 || out.type === 4)?.length > 0; + const normalOutput = [1,3].includes(prevChannel.outputs[input.vout].type); + let localClosingBalance = 0; + let remoteClosingBalance = 0; + for (const output of prevChannel.outputs) { + if (isPenalty) { + // penalty close, so local node takes everything + localClosingBalance += output.value; + } else if (output.node) { + // this output determinstically linked to one of the counterparties + if (output.node === closeLocal) { + localClosingBalance += output.value; + } else { + remoteClosingBalance += output.value; + } + } else if (normalOutput && (output.type === 1 || output.type === 3)) { + // local node had one main output, therefore remote node takes the other remoteClosingBalance += output.value; } - } else if (normalOutput && (output.type === 1 || output.type === 3)) { - // local node had one main output, therefore remote node takes the other - remoteClosingBalance += output.value; } + prevChannel[`node${closeLocal}_closing_balance`] = localClosingBalance; + prevChannel[`node${closeRemote}_closing_balance`] = remoteClosingBalance; + prevChannel.closing_fee = prevChannelTx.fee; + + if (initiator && !linkedOpenings) { + const initiatorSide = initiator === 'remote' ? closeRemote : closeLocal; + prevChannel.closed_by = prevChannel[`node${initiatorSide}_public_key`]; + } + + // save changes to the closing channel + await channelsApi.$updateClosingInfo(prevChannel); } - - openChannel[`node${openSide}_funding_balance`] = openChannel[`node${openSide}_funding_balance`] + (openContribution || closingTx?.vout[input.vout]?.value || 0); - closeChannel[`node${closeLocal}_closing_balance`] = localClosingBalance; - closeChannel[`node${closeRemote}_closing_balance`] = remoteClosingBalance; - closeChannel.closing_fee = closingTx.fee; - - if (initiator) { - const initiatorSide = initiator === 'remote' ? closeRemote : closeLocal; - closeChannel.closed_by = closeChannel[`node${initiatorSide}_public_key`]; - } - - // save changes to the closing channel - await channelsApi.$updateClosingInfo(closeChannel); + openChannel[`node${openSide}_funding_balance`] = openChannel[`node${openSide}_funding_balance`] + (openContribution || prevChannelTx?.vout[input.vout]?.value || 0); } } } From 35ae67217717e7043f0417aeb797a4674decc8be Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 20 Nov 2022 19:18:33 +0900 Subject: [PATCH 0115/1466] break long-running forensics tasks --- backend/src/tasks/lightning/network-sync.service.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index ac7c7a2ca..7ff49f68b 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -31,6 +31,7 @@ class NetworkSyncService { } private async $runTasks(): Promise { + const taskStartTime = Date.now(); try { logger.info(`Updating nodes and channels`); @@ -57,7 +58,7 @@ class NetworkSyncService { logger.err('$runTasks() error: ' + (e instanceof Error ? e.message : e)); } - setTimeout(() => { this.$runTasks(); }, 1000 * config.LIGHTNING.GRAPH_REFRESH_INTERVAL); + setTimeout(() => { this.$runTasks(); }, Math.max(1, (1000 * config.LIGHTNING.GRAPH_REFRESH_INTERVAL) - (Date.now() - taskStartTime))); } /** @@ -353,9 +354,10 @@ class NetworkSyncService { return 1; } - // If a channel open tx spends funds from a closed channel output, + // If a channel open tx spends funds from a another channel transaction, // we can attribute that output to a specific counterparty private async $runOpenedChannelsForensics(): Promise { + const runTimer = Date.now(); let progress = 0; try { @@ -396,6 +398,9 @@ class NetworkSyncService { logger.info(`Updating opened channel forensics ${progress}/${channels?.length}`); this.loggerTimer = new Date().getTime() / 1000; } + if (Date.now() - runTimer > (config.LIGHTNING.GRAPH_REFRESH_INTERVAL * 1000)) { + break; + } } logger.info(`Open channels forensics scan complete.`); From dc7d5bc94d46090c26b8fffdfa4bcb9f383ad86a Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 21 Nov 2022 09:14:06 +0900 Subject: [PATCH 0116/1466] handle batched channel opens. infer funding balances in both directions. --- backend/src/api/explorer/channels.api.ts | 30 ++++++------ .../tasks/lightning/network-sync.service.ts | 47 ++++++++++++------- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/backend/src/api/explorer/channels.api.ts b/backend/src/api/explorer/channels.api.ts index 37edf11d0..7f76a2971 100644 --- a/backend/src/api/explorer/channels.api.ts +++ b/backend/src/api/explorer/channels.api.ts @@ -282,7 +282,7 @@ class ChannelsApi { const query = ` SELECT channels.id, channels.node1_public_key, channels.node2_public_key, - channels.closing_reason, channels.closing_transaction_id, + channels.closing_reason, channels.closing_transaction_id, channels.capacity, forensics.* FROM channels LEFT JOIN channels_forensics as forensics ON forensics.channel_id = channels.id @@ -304,7 +304,7 @@ class ChannelsApi { const query = ` SELECT channels.id, channels.node1_public_key, channels.node2_public_key, - channels.status, channels.transaction_id, + channels.status, channels.transaction_id, channels.capacity, forensics.* FROM channels LEFT JOIN channels_forensics as forensics ON forensics.channel_id = channels.id @@ -312,8 +312,10 @@ class ChannelsApi { `; const [rows]: any = await DB.query(query, [transactionId]); if (rows.length > 0) { - rows[0].outputs = JSON.parse(rows[0].outputs); - return rows[0]; + return rows.map(row => { + row.outputs = JSON.parse(row.outputs); + return row; + }); } } catch (e) { logger.err('$getChannelForensicsByOpeningId error: ' + (e instanceof Error ? e.message : e)); @@ -344,15 +346,15 @@ class ChannelsApi { const jsonOutputs = JSON.stringify(channelInfo.outputs); await DB.query(query, [ channelInfo.id, - channelInfo.node1_closing_balance, - channelInfo.node2_closing_balance, + channelInfo.node1_closing_balance || 0, + channelInfo.node2_closing_balance || 0, channelInfo.closed_by, - channelInfo.closing_fee, + channelInfo.closing_fee || 0, jsonOutputs, - channelInfo.node1_closing_balance, - channelInfo.node2_closing_balance, + channelInfo.node1_closing_balance || 0, + channelInfo.node2_closing_balance || 0, channelInfo.closed_by, - channelInfo.closing_fee, + channelInfo.closing_fee || 0, jsonOutputs ]); } catch (e) { @@ -382,12 +384,12 @@ class ChannelsApi { `; await DB.query(query, [ channelInfo.id, - channelInfo.node1_funding_balance, - channelInfo.node2_funding_balance, + channelInfo.node1_funding_balance || 0, + channelInfo.node2_funding_balance || 0, channelInfo.funding_ratio, channelInfo.single_funded ? 1 : 0, - channelInfo.node1_funding_balance, - channelInfo.node2_funding_balance, + channelInfo.node1_funding_balance || 0, + channelInfo.node2_funding_balance || 0, channelInfo.funding_ratio, channelInfo.single_funded ? 1 : 0, ]); diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index 7ff49f68b..4c92fb3bb 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -372,9 +372,12 @@ class NetworkSyncService { // this input directly spends a channel close output await this.$attributeChannelBalances(closeChannel, openChannel, input); } else { - const prevOpenChannel = await channelsApi.$getChannelForensicsByOpeningId(input.txid); - if (prevOpenChannel) { - await this.$attributeChannelBalances(prevOpenChannel, openChannel, input, null, null, true); + const prevOpenChannels = await channelsApi.$getChannelForensicsByOpeningId(input.txid); + if (prevOpenChannels?.length) { + // this input spends a channel open change output + for (const prevOpenChannel of prevOpenChannels) { + await this.$attributeChannelBalances(prevOpenChannel, openChannel, input, null, null, true); + } } else { // check if this input spends any swept channel close outputs await this.$attributeSweptChannelCloses(openChannel, input); @@ -435,33 +438,33 @@ class NetworkSyncService { ): Promise { // figure out which node controls the input/output let openSide; - let closeLocal; - let closeRemote; + let prevLocal; + let prevRemote; let matched = false; let ambiguous = false; // if counterparties are the same in both channels, we can't tell them apart if (openChannel.node1_public_key === prevChannel.node1_public_key) { openSide = 1; - closeLocal = 1; - closeRemote = 2; + prevLocal = 1; + prevRemote = 2; matched = true; } else if (openChannel.node1_public_key === prevChannel.node2_public_key) { openSide = 1; - closeLocal = 2; - closeRemote = 1; + prevLocal = 2; + prevRemote = 1; matched = true; } if (openChannel.node2_public_key === prevChannel.node1_public_key) { openSide = 2; - closeLocal = 1; - closeRemote = 2; + prevLocal = 1; + prevRemote = 2; if (matched) { ambiguous = true; } matched = true; } else if (openChannel.node2_public_key === prevChannel.node2_public_key) { openSide = 2; - closeLocal = 2; - closeRemote = 1; + prevLocal = 2; + prevRemote = 1; if (matched) { ambiguous = true; } @@ -508,7 +511,7 @@ class NetworkSyncService { } // attribute outputs to each counterparty, and sum up total known balances - prevChannel.outputs[input.vout].node = closeLocal; + prevChannel.outputs[input.vout].node = prevLocal; const isPenalty = prevChannel.outputs.filter((out) => out.type === 2 || out.type === 4)?.length > 0; const normalOutput = [1,3].includes(prevChannel.outputs[input.vout].type); let localClosingBalance = 0; @@ -519,7 +522,7 @@ class NetworkSyncService { localClosingBalance += output.value; } else if (output.node) { // this output determinstically linked to one of the counterparties - if (output.node === closeLocal) { + if (output.node === prevLocal) { localClosingBalance += output.value; } else { remoteClosingBalance += output.value; @@ -529,17 +532,25 @@ class NetworkSyncService { remoteClosingBalance += output.value; } } - prevChannel[`node${closeLocal}_closing_balance`] = localClosingBalance; - prevChannel[`node${closeRemote}_closing_balance`] = remoteClosingBalance; + prevChannel[`node${prevLocal}_closing_balance`] = localClosingBalance; + prevChannel[`node${prevRemote}_closing_balance`] = remoteClosingBalance; prevChannel.closing_fee = prevChannelTx.fee; if (initiator && !linkedOpenings) { - const initiatorSide = initiator === 'remote' ? closeRemote : closeLocal; + const initiatorSide = initiator === 'remote' ? prevRemote : prevLocal; prevChannel.closed_by = prevChannel[`node${initiatorSide}_public_key`]; } // save changes to the closing channel await channelsApi.$updateClosingInfo(prevChannel); + } else { + if (prevChannelTx.vin.length <= 1) { + prevChannel[`node${prevLocal}_funding_balance`] = prevChannel.capacity; + prevChannel.single_funded = true; + prevChannel.funding_ratio = 1; + // save changes to the closing channel + await channelsApi.$updateOpeningInfo(prevChannel); + } } openChannel[`node${openSide}_funding_balance`] = openChannel[`node${openSide}_funding_balance`] + (openContribution || prevChannelTx?.vout[input.vout]?.value || 0); } From 5e1f54e862c1fe3c42faa1e81fb6098983ec3203 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 21 Nov 2022 09:16:42 +0900 Subject: [PATCH 0117/1466] hide closing balances if channel still open --- .../channel/channel-close-box/channel-close-box.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html index ae59767ff..b5615324b 100644 --- a/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html +++ b/frontend/src/app/lightning/channel/channel-close-box/channel-close-box.component.html @@ -8,7 +8,7 @@ {{ minStartingBalance | number : '1.0-0' }} - {{ maxStartingBalance | number : '1.0-0' }} ? - + Closing balance {{ minClosingBalance | number : '1.0-0' }} - {{ maxClosingBalance | number : '1.0-0' }} From 609f68eb243a365ee65eb924a56a6a3a4bd250e0 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 24 Nov 2022 15:37:05 +0900 Subject: [PATCH 0118/1466] move linked channel scan into forensics task, add backend throttling --- .../src/tasks/lightning/forensics.service.ts | 272 ++++++++++++++++-- .../tasks/lightning/network-sync.service.ts | 250 ---------------- 2 files changed, 252 insertions(+), 270 deletions(-) diff --git a/backend/src/tasks/lightning/forensics.service.ts b/backend/src/tasks/lightning/forensics.service.ts index 9b999fca1..af79a270a 100644 --- a/backend/src/tasks/lightning/forensics.service.ts +++ b/backend/src/tasks/lightning/forensics.service.ts @@ -5,13 +5,16 @@ import bitcoinApi from '../../api/bitcoin/bitcoin-api-factory'; import config from '../../config'; import { IEsploraApi } from '../../api/bitcoin/esplora-api.interface'; import { Common } from '../../api/common'; +import { ILightningApi } from '../../api/lightning/lightning-api.interface'; const throttleDelay = 20; //ms +const tempCacheSize = 10000; class ForensicsService { loggerTimer = 0; closedChannelsScanBlock = 0; txCache: { [txid: string]: IEsploraApi.Transaction } = {}; + tempCached: string[] = []; constructor() {} @@ -29,6 +32,7 @@ class ForensicsService { if (config.MEMPOOL.BACKEND === 'esplora') { await this.$runClosedChannelsForensics(false); + await this.$runOpenedChannelsForensics(); } } catch (e) { @@ -95,16 +99,9 @@ class ForensicsService { const lightningScriptReasons: number[] = []; for (const outspend of outspends) { if (outspend.spent && outspend.txid) { - let spendingTx: IEsploraApi.Transaction | undefined = this.txCache[outspend.txid]; + let spendingTx = await this.fetchTransaction(outspend.txid); if (!spendingTx) { - try { - spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); - await Common.sleep$(throttleDelay); - this.txCache[outspend.txid] = spendingTx; - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); - continue; - } + continue; } cached.push(spendingTx.txid); const lightningScript = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); @@ -124,16 +121,9 @@ class ForensicsService { We can detect a commitment transaction (force close) by reading Sequence and Locktime https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction */ - let closingTx: IEsploraApi.Transaction | undefined = this.txCache[channel.closing_transaction_id]; + let closingTx = await this.fetchTransaction(channel.closing_transaction_id, true); if (!closingTx) { - try { - closingTx = await bitcoinApi.$getRawTransaction(channel.closing_transaction_id); - await Common.sleep$(throttleDelay); - this.txCache[channel.closing_transaction_id] = closingTx; - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + channel.closing_transaction_id}. Reason ${e instanceof Error ? e.message : e}`); - continue; - } + continue; } cached.push(closingTx.txid); const sequenceHex: string = closingTx.vin[0].sequence.toString(16); @@ -174,7 +164,7 @@ class ForensicsService { } private findLightningScript(vin: IEsploraApi.Vin): number { - const topElement = vin.witness[vin.witness.length - 2]; + const topElement = vin.witness?.length > 2 ? vin.witness[vin.witness.length - 2] : null; if (/^OP_IF OP_PUSHBYTES_33 \w{66} OP_ELSE OP_PUSH(NUM_\d+|BYTES_(1 \w{2}|2 \w{4})) OP_CSV OP_DROP OP_PUSHBYTES_33 \w{66} OP_ENDIF OP_CHECKSIG$/.test(vin.inner_witnessscript_asm)) { // https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs if (topElement === '01') { @@ -193,7 +183,7 @@ class ForensicsService { ) { // https://github.com/lightning/bolts/blob/master/03-transactions.md#offered-htlc-outputs // https://github.com/lightning/bolts/blob/master/03-transactions.md#received-htlc-outputs - if (topElement.length === 66) { + if (topElement?.length === 66) { // top element is a public key // 'Revoked Lightning HTLC'; Penalty force closed return 4; @@ -220,6 +210,248 @@ class ForensicsService { } return 1; } + + // If a channel open tx spends funds from a another channel transaction, + // we can attribute that output to a specific counterparty + private async $runOpenedChannelsForensics(): Promise { + const runTimer = Date.now(); + let progress = 0; + + try { + logger.info(`Started running open channel forensics...`); + const channels = await channelsApi.$getChannelsWithoutSourceChecked(); + + for (const openChannel of channels) { + let openTx = await this.fetchTransaction(openChannel.transaction_id, true); + if (!openTx) { + continue; + } + for (const input of openTx.vin) { + const closeChannel = await channelsApi.$getChannelForensicsByClosingId(input.txid); + if (closeChannel) { + // this input directly spends a channel close output + await this.$attributeChannelBalances(closeChannel, openChannel, input); + } else { + const prevOpenChannels = await channelsApi.$getChannelForensicsByOpeningId(input.txid); + if (prevOpenChannels?.length) { + // this input spends a channel open change output + for (const prevOpenChannel of prevOpenChannels) { + await this.$attributeChannelBalances(prevOpenChannel, openChannel, input, null, null, true); + } + } else { + // check if this input spends any swept channel close outputs + await this.$attributeSweptChannelCloses(openChannel, input); + } + } + } + // calculate how much of the total input value is attributable to the channel open output + openChannel.funding_ratio = openTx.vout[openChannel.transaction_vout].value / ((openTx.vout.reduce((sum, v) => sum + v.value, 0) || 1) + openTx.fee); + // save changes to the opening channel, and mark it as checked + if (openTx?.vin?.length === 1) { + openChannel.single_funded = true; + } + if (openChannel.node1_funding_balance || openChannel.node2_funding_balance || openChannel.node1_closing_balance || openChannel.node2_closing_balance || openChannel.closed_by) { + await channelsApi.$updateOpeningInfo(openChannel); + } + await channelsApi.$markChannelSourceChecked(openChannel.id); + + ++progress; + const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer); + if (elapsedSeconds > 10) { + logger.info(`Updating opened channel forensics ${progress}/${channels?.length}`); + this.loggerTimer = new Date().getTime() / 1000; + this.truncateTempCache(); + } + if (Date.now() - runTimer > (config.LIGHTNING.FORENSICS_INTERVAL * 1000)) { + break; + } + } + + logger.info(`Open channels forensics scan complete.`); + } catch (e) { + logger.err('$runOpenedChannelsForensics() error: ' + (e instanceof Error ? e.message : e)); + } finally { + this.clearTempCache(); + } + } + + // Check if a channel open tx input spends the result of a swept channel close output + private async $attributeSweptChannelCloses(openChannel: ILightningApi.Channel, input: IEsploraApi.Vin): Promise { + let sweepTx = await this.fetchTransaction(input.txid, true); + if (!sweepTx) { + logger.err(`couldn't find input transaction for channel forensics ${openChannel.channel_id} ${input.txid}`); + return; + } + const openContribution = sweepTx.vout[input.vout].value; + for (const sweepInput of sweepTx.vin) { + const lnScriptType = this.findLightningScript(sweepInput); + if (lnScriptType > 1) { + const closeChannel = await channelsApi.$getChannelForensicsByClosingId(sweepInput.txid); + if (closeChannel) { + const initiator = (lnScriptType === 2 || lnScriptType === 4) ? 'remote' : (lnScriptType === 3 ? 'local' : null); + await this.$attributeChannelBalances(closeChannel, openChannel, sweepInput, openContribution, initiator); + } + } + } + } + + private async $attributeChannelBalances( + prevChannel, openChannel, input: IEsploraApi.Vin, openContribution: number | null = null, + initiator: 'remote' | 'local' | null = null, linkedOpenings: boolean = false + ): Promise { + // figure out which node controls the input/output + let openSide; + let prevLocal; + let prevRemote; + let matched = false; + let ambiguous = false; // if counterparties are the same in both channels, we can't tell them apart + if (openChannel.node1_public_key === prevChannel.node1_public_key) { + openSide = 1; + prevLocal = 1; + prevRemote = 2; + matched = true; + } else if (openChannel.node1_public_key === prevChannel.node2_public_key) { + openSide = 1; + prevLocal = 2; + prevRemote = 1; + matched = true; + } + if (openChannel.node2_public_key === prevChannel.node1_public_key) { + openSide = 2; + prevLocal = 1; + prevRemote = 2; + if (matched) { + ambiguous = true; + } + matched = true; + } else if (openChannel.node2_public_key === prevChannel.node2_public_key) { + openSide = 2; + prevLocal = 2; + prevRemote = 1; + if (matched) { + ambiguous = true; + } + matched = true; + } + + if (matched && !ambiguous) { + // fetch closing channel transaction and perform forensics on the outputs + let prevChannelTx = await this.fetchTransaction(input.txid, true); + let outspends: IEsploraApi.Outspend[] | undefined; + try { + outspends = await bitcoinApi.$getOutspends(input.txid); + await Common.sleep$(throttleDelay); + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + input.txid + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); + } + if (!outspends || !prevChannelTx) { + return; + } + if (!linkedOpenings) { + if (!prevChannel.outputs) { + prevChannel.outputs = prevChannel.outputs || prevChannelTx.vout.map(vout => { + return { + type: 0, + value: vout.value, + }; + }); + } + for (let i = 0; i < outspends?.length; i++) { + const outspend = outspends[i]; + const output = prevChannel.outputs[i]; + if (outspend.spent && outspend.txid) { + try { + const spendingTx = await this.fetchTransaction(outspend.txid, true); + if (spendingTx) { + output.type = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); + } + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); + } + } else { + output.type = 0; + } + } + + // attribute outputs to each counterparty, and sum up total known balances + prevChannel.outputs[input.vout].node = prevLocal; + const isPenalty = prevChannel.outputs.filter((out) => out.type === 2 || out.type === 4)?.length > 0; + const normalOutput = [1,3].includes(prevChannel.outputs[input.vout].type); + let localClosingBalance = 0; + let remoteClosingBalance = 0; + for (const output of prevChannel.outputs) { + if (isPenalty) { + // penalty close, so local node takes everything + localClosingBalance += output.value; + } else if (output.node) { + // this output determinstically linked to one of the counterparties + if (output.node === prevLocal) { + localClosingBalance += output.value; + } else { + remoteClosingBalance += output.value; + } + } else if (normalOutput && (output.type === 1 || output.type === 3)) { + // local node had one main output, therefore remote node takes the other + remoteClosingBalance += output.value; + } + } + prevChannel[`node${prevLocal}_closing_balance`] = localClosingBalance; + prevChannel[`node${prevRemote}_closing_balance`] = remoteClosingBalance; + prevChannel.closing_fee = prevChannelTx.fee; + + if (initiator && !linkedOpenings) { + const initiatorSide = initiator === 'remote' ? prevRemote : prevLocal; + prevChannel.closed_by = prevChannel[`node${initiatorSide}_public_key`]; + } + + // save changes to the closing channel + await channelsApi.$updateClosingInfo(prevChannel); + } else { + if (prevChannelTx.vin.length <= 1) { + prevChannel[`node${prevLocal}_funding_balance`] = prevChannel.capacity; + prevChannel.single_funded = true; + prevChannel.funding_ratio = 1; + // save changes to the closing channel + await channelsApi.$updateOpeningInfo(prevChannel); + } + } + openChannel[`node${openSide}_funding_balance`] = openChannel[`node${openSide}_funding_balance`] + (openContribution || prevChannelTx?.vout[input.vout]?.value || 0); + } + } + + async fetchTransaction(txid: string, temp: boolean = false): Promise { + let tx = this.txCache[txid]; + if (!tx) { + try { + tx = await bitcoinApi.$getRawTransaction(txid); + this.txCache[txid] = tx; + if (temp) { + this.tempCached.push(txid); + } + await Common.sleep$(throttleDelay); + } catch (e) { + logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + txid + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); + return null; + } + } + return tx; + } + + clearTempCache(): void { + for (const txid of this.tempCached) { + delete this.txCache[txid]; + } + this.tempCached = []; + } + + truncateTempCache(): void { + if (this.tempCached.length > tempCacheSize) { + const removed = this.tempCached.splice(0, this.tempCached.length - tempCacheSize); + for (const txid of removed) { + delete this.txCache[txid]; + } + } + } } export default new ForensicsService(); diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index 4c92fb3bb..c5e5a102d 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -305,256 +305,6 @@ class NetworkSyncService { logger.err('$scanForClosedChannels() error: ' + (e instanceof Error ? e.message : e)); } } - - private findLightningScript(vin: IEsploraApi.Vin): number { - const topElement = vin.witness ? vin.witness[vin.witness.length - 2] : ''; - if (/^OP_IF OP_PUSHBYTES_33 \w{66} OP_ELSE OP_PUSH(NUM_\d+|BYTES_(1 \w{2}|2 \w{4})) OP_CSV OP_DROP OP_PUSHBYTES_33 \w{66} OP_ENDIF OP_CHECKSIG$/.test(vin.inner_witnessscript_asm)) { - // https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction-outputs - if (topElement === '01') { - // top element is '01' to get in the revocation path - // 'Revoked Lightning Force Close'; - // Penalty force closed - return 2; - } else { - // top element is '', this is a delayed to_local output - // 'Lightning Force Close'; - return 3; - } - } else if ( - /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_NOTIF OP_DROP OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) || - /^OP_DUP OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUAL OP_IF OP_CHECKSIG OP_ELSE OP_PUSHBYTES_33 \w{66} OP_SWAP OP_SIZE OP_PUSHBYTES_1 20 OP_EQUAL OP_IF OP_HASH160 OP_PUSHBYTES_20 \w{40} OP_EQUALVERIFY OP_PUSHNUM_2 OP_SWAP OP_PUSHBYTES_33 \w{66} OP_PUSHNUM_2 OP_CHECKMULTISIG OP_ELSE OP_DROP OP_PUSHBYTES_3 \w{6} OP_CLTV OP_DROP OP_CHECKSIG OP_ENDIF (OP_PUSHNUM_1 OP_CSV OP_DROP |)OP_ENDIF$/.test(vin.inner_witnessscript_asm) - ) { - // https://github.com/lightning/bolts/blob/master/03-transactions.md#offered-htlc-outputs - // https://github.com/lightning/bolts/blob/master/03-transactions.md#received-htlc-outputs - if (topElement?.length === 66) { - // top element is a public key - // 'Revoked Lightning HTLC'; Penalty force closed - return 4; - } else if (topElement) { - // top element is a preimage - // 'Lightning HTLC'; - return 5; - } else { - // top element is '' to get in the expiry of the script - // 'Expired Lightning HTLC'; - return 6; - } - } else if (/^OP_PUSHBYTES_33 \w{66} OP_CHECKSIG OP_IFDUP OP_NOTIF OP_PUSHNUM_16 OP_CSV OP_ENDIF$/.test(vin.inner_witnessscript_asm)) { - // https://github.com/lightning/bolts/blob/master/03-transactions.md#to_local_anchor-and-to_remote_anchor-output-option_anchors - if (topElement) { - // top element is a signature - // 'Lightning Anchor'; - return 7; - } else { - // top element is '', it has been swept after 16 blocks - // 'Swept Lightning Anchor'; - return 8; - } - } - return 1; - } - - // If a channel open tx spends funds from a another channel transaction, - // we can attribute that output to a specific counterparty - private async $runOpenedChannelsForensics(): Promise { - const runTimer = Date.now(); - let progress = 0; - - try { - logger.info(`Started running open channel forensics...`); - const channels = await channelsApi.$getChannelsWithoutSourceChecked(); - - for (const openChannel of channels) { - const openTx = await bitcoinApi.$getRawTransaction(openChannel.transaction_id); - for (const input of openTx.vin) { - const closeChannel = await channelsApi.$getChannelForensicsByClosingId(input.txid); - if (closeChannel) { - // this input directly spends a channel close output - await this.$attributeChannelBalances(closeChannel, openChannel, input); - } else { - const prevOpenChannels = await channelsApi.$getChannelForensicsByOpeningId(input.txid); - if (prevOpenChannels?.length) { - // this input spends a channel open change output - for (const prevOpenChannel of prevOpenChannels) { - await this.$attributeChannelBalances(prevOpenChannel, openChannel, input, null, null, true); - } - } else { - // check if this input spends any swept channel close outputs - await this.$attributeSweptChannelCloses(openChannel, input); - } - } - } - // calculate how much of the total input value is attributable to the channel open output - openChannel.funding_ratio = openTx.vout[openChannel.transaction_vout].value / ((openTx.vout.reduce((sum, v) => sum + v.value, 0) || 1) + openTx.fee); - // save changes to the opening channel, and mark it as checked - if (openTx?.vin?.length === 1) { - openChannel.single_funded = true; - } - if (openChannel.node1_funding_balance || openChannel.node2_funding_balance || openChannel.node1_closing_balance || openChannel.node2_closing_balance || openChannel.closed_by) { - await channelsApi.$updateOpeningInfo(openChannel); - } - await channelsApi.$markChannelSourceChecked(openChannel.id); - - ++progress; - const elapsedSeconds = Math.round((new Date().getTime() / 1000) - this.loggerTimer); - if (elapsedSeconds > 10) { - logger.info(`Updating opened channel forensics ${progress}/${channels?.length}`); - this.loggerTimer = new Date().getTime() / 1000; - } - if (Date.now() - runTimer > (config.LIGHTNING.GRAPH_REFRESH_INTERVAL * 1000)) { - break; - } - } - - logger.info(`Open channels forensics scan complete.`); - } catch (e) { - logger.err('$runOpenedChannelsForensics() error: ' + (e instanceof Error ? e.message : e)); - } - } - - // Check if a channel open tx input spends the result of a swept channel close output - private async $attributeSweptChannelCloses(openChannel: ILightningApi.Channel, input: IEsploraApi.Vin): Promise { - const sweepTx = await bitcoinApi.$getRawTransaction(input.txid); - if (!sweepTx) { - logger.err(`couldn't find input transaction for channel forensics ${openChannel.channel_id} ${input.txid}`); - return; - } - const openContribution = sweepTx.vout[input.vout].value; - for (const sweepInput of sweepTx.vin) { - const lnScriptType = this.findLightningScript(sweepInput); - if (lnScriptType > 1) { - const closeChannel = await channelsApi.$getChannelForensicsByClosingId(sweepInput.txid); - if (closeChannel) { - const initiator = (lnScriptType === 2 || lnScriptType === 4) ? 'remote' : (lnScriptType === 3 ? 'local' : null); - await this.$attributeChannelBalances(closeChannel, openChannel, sweepInput, openContribution, initiator); - } - } - } - } - - private async $attributeChannelBalances( - prevChannel, openChannel, input: IEsploraApi.Vin, openContribution: number | null = null, - initiator: 'remote' | 'local' | null = null, linkedOpenings: boolean = false - ): Promise { - // figure out which node controls the input/output - let openSide; - let prevLocal; - let prevRemote; - let matched = false; - let ambiguous = false; // if counterparties are the same in both channels, we can't tell them apart - if (openChannel.node1_public_key === prevChannel.node1_public_key) { - openSide = 1; - prevLocal = 1; - prevRemote = 2; - matched = true; - } else if (openChannel.node1_public_key === prevChannel.node2_public_key) { - openSide = 1; - prevLocal = 2; - prevRemote = 1; - matched = true; - } - if (openChannel.node2_public_key === prevChannel.node1_public_key) { - openSide = 2; - prevLocal = 1; - prevRemote = 2; - if (matched) { - ambiguous = true; - } - matched = true; - } else if (openChannel.node2_public_key === prevChannel.node2_public_key) { - openSide = 2; - prevLocal = 2; - prevRemote = 1; - if (matched) { - ambiguous = true; - } - matched = true; - } - - if (matched && !ambiguous) { - // fetch closing channel transaction and perform forensics on the outputs - let prevChannelTx: IEsploraApi.Transaction | undefined; - let outspends: IEsploraApi.Outspend[] | undefined; - try { - prevChannelTx = await bitcoinApi.$getRawTransaction(input.txid); - outspends = await bitcoinApi.$getOutspends(input.txid); - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + input.txid + '/outspends'}. Reason ${e instanceof Error ? e.message : e}`); - } - if (!outspends || !prevChannelTx) { - return; - } - if (!linkedOpenings) { - if (!prevChannel.outputs) { - prevChannel.outputs = prevChannel.outputs || prevChannelTx.vout.map(vout => { - return { - type: 0, - value: vout.value, - }; - }); - } - for (let i = 0; i < outspends?.length; i++) { - const outspend = outspends[i]; - const output = prevChannel.outputs[i]; - if (outspend.spent && outspend.txid) { - try { - const spendingTx = await bitcoinApi.$getRawTransaction(outspend.txid); - if (spendingTx) { - output.type = this.findLightningScript(spendingTx.vin[outspend.vin || 0]); - } - } catch (e) { - logger.err(`Failed to call ${config.ESPLORA.REST_API_URL + '/tx/' + outspend.txid}. Reason ${e instanceof Error ? e.message : e}`); - } - } else { - output.type = 0; - } - } - - // attribute outputs to each counterparty, and sum up total known balances - prevChannel.outputs[input.vout].node = prevLocal; - const isPenalty = prevChannel.outputs.filter((out) => out.type === 2 || out.type === 4)?.length > 0; - const normalOutput = [1,3].includes(prevChannel.outputs[input.vout].type); - let localClosingBalance = 0; - let remoteClosingBalance = 0; - for (const output of prevChannel.outputs) { - if (isPenalty) { - // penalty close, so local node takes everything - localClosingBalance += output.value; - } else if (output.node) { - // this output determinstically linked to one of the counterparties - if (output.node === prevLocal) { - localClosingBalance += output.value; - } else { - remoteClosingBalance += output.value; - } - } else if (normalOutput && (output.type === 1 || output.type === 3)) { - // local node had one main output, therefore remote node takes the other - remoteClosingBalance += output.value; - } - } - prevChannel[`node${prevLocal}_closing_balance`] = localClosingBalance; - prevChannel[`node${prevRemote}_closing_balance`] = remoteClosingBalance; - prevChannel.closing_fee = prevChannelTx.fee; - - if (initiator && !linkedOpenings) { - const initiatorSide = initiator === 'remote' ? prevRemote : prevLocal; - prevChannel.closed_by = prevChannel[`node${initiatorSide}_public_key`]; - } - - // save changes to the closing channel - await channelsApi.$updateClosingInfo(prevChannel); - } else { - if (prevChannelTx.vin.length <= 1) { - prevChannel[`node${prevLocal}_funding_balance`] = prevChannel.capacity; - prevChannel.single_funded = true; - prevChannel.funding_ratio = 1; - // save changes to the closing channel - await channelsApi.$updateOpeningInfo(prevChannel); - } - } - openChannel[`node${openSide}_funding_balance`] = openChannel[`node${openSide}_funding_balance`] + (openContribution || prevChannelTx?.vout[input.vout]?.value || 0); - } - } } export default new NetworkSyncService(); From ded11892f5faea6628ab6ec94d4e5097339447cf Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 25 Nov 2022 15:54:44 +0900 Subject: [PATCH 0119/1466] merge forensics columns into main channels table --- backend/src/api/database-migration.ts | 29 ++---- backend/src/api/explorer/channels.api.ts | 89 ++++++------------- .../src/tasks/lightning/forensics.service.ts | 10 +-- 3 files changed, 39 insertions(+), 89 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 0f43580f6..a2977d3ba 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -382,7 +382,15 @@ class DatabaseMigration { if (databaseSchemaVersion < 48 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `channels` ADD source_checked tinyint(1) DEFAULT 0'); - await this.$executeQuery(this.getCreateChannelsForensicsTableQuery(), await this.$checkIfTableExists('channels_forensics')); + await this.$executeQuery('ALTER TABLE `channels` ADD closing_fee bigint(20) unsigned DEFAULT 0'); + await this.$executeQuery('ALTER TABLE `channels` ADD node1_funding_balance bigint(20) unsigned DEFAULT 0'); + await this.$executeQuery('ALTER TABLE `channels` ADD node2_funding_balance bigint(20) unsigned DEFAULT 0'); + await this.$executeQuery('ALTER TABLE `channels` ADD node1_closing_balance bigint(20) unsigned DEFAULT 0'); + await this.$executeQuery('ALTER TABLE `channels` ADD node2_closing_balance bigint(20) unsigned DEFAULT 0'); + await this.$executeQuery('ALTER TABLE `channels` ADD funding_ratio float unsigned DEFAULT NULL'); + await this.$executeQuery('ALTER TABLE `channels` ADD closed_by varchar(66) DEFAULT NULL'); + await this.$executeQuery('ALTER TABLE `channels` ADD single_funded tinyint(1) DEFAULT 0'); + await this.$executeQuery('ALTER TABLE `channels` ADD outputs JSON DEFAULT "[]"'); } } @@ -764,25 +772,6 @@ class DatabaseMigration { ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; } - private getCreateChannelsForensicsTableQuery(): string { - return `CREATE TABLE IF NOT EXISTS channels_forensics ( - channel_id bigint(11) unsigned NOT NULL, - closing_fee bigint(20) unsigned DEFAULT 0, - node1_funding_balance bigint(20) unsigned DEFAULT 0, - node2_funding_balance bigint(20) unsigned DEFAULT 0, - node1_closing_balance bigint(20) unsigned DEFAULT 0, - node2_closing_balance bigint(20) unsigned DEFAULT 0, - funding_ratio float unsigned DEFAULT NULL, - closed_by varchar(66) DEFAULT NULL, - single_funded tinyint(1) default 0, - outputs JSON NOT NULL, - PRIMARY KEY (channel_id), - FOREIGN KEY (channel_id) - REFERENCES channels (id) - ON DELETE CASCADE - ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; - } - private getCreateNodesStatsQuery(): string { return `CREATE TABLE IF NOT EXISTS node_stats ( id int(11) unsigned NOT NULL AUTO_INCREMENT, diff --git a/backend/src/api/explorer/channels.api.ts b/backend/src/api/explorer/channels.api.ts index 7f76a2971..e761288a3 100644 --- a/backend/src/api/explorer/channels.api.ts +++ b/backend/src/api/explorer/channels.api.ts @@ -131,9 +131,8 @@ class ChannelsApi { public async $getChannelsWithoutSourceChecked(): Promise { try { const query = ` - SELECT channels.*, forensics.* + SELECT channels.* FROM channels - LEFT JOIN channels_forensics AS forensics ON forensics.channel_id = channels.id WHERE channels.source_checked != 1 `; const [rows]: any = await DB.query(query); @@ -161,16 +160,12 @@ class ChannelsApi { SELECT n1.alias AS alias_left, n1.longitude as node1_longitude, n1.latitude as node1_latitude, n2.alias AS alias_right, n2.longitude as node2_longitude, n2.latitude as node2_latitude, channels.*, - ns1.channels AS channels_left, ns1.capacity AS capacity_left, ns2.channels AS channels_right, ns2.capacity AS capacity_right, - forensics.closing_fee as closing_fee, forensics.node1_funding_balance as node1_funding_balance, forensics.node2_funding_balance as node2_funding_balance, - forensics.funding_ratio as funding_ratio, forensics.node1_closing_balance as node1_closing_balance, forensics.node2_closing_balance as node2_closing_balance, - forensics.closed_by as closed_by, forensics.single_funded as single_funded + ns1.channels AS channels_left, ns1.capacity AS capacity_left, ns2.channels AS channels_right, ns2.capacity AS capacity_right FROM channels LEFT JOIN nodes AS n1 ON n1.public_key = channels.node1_public_key LEFT JOIN nodes AS n2 ON n2.public_key = channels.node2_public_key LEFT JOIN node_stats AS ns1 ON ns1.public_key = channels.node1_public_key LEFT JOIN node_stats AS ns2 ON ns2.public_key = channels.node2_public_key - LEFT JOIN channels_forensics AS forensics ON forensics.channel_id = channels.id WHERE ( ns1.id = ( SELECT MAX(id) @@ -277,15 +272,12 @@ class ChannelsApi { } } - public async $getChannelForensicsByClosingId(transactionId: string): Promise { + public async $getChannelByClosingId(transactionId: string): Promise { try { const query = ` SELECT - channels.id, channels.node1_public_key, channels.node2_public_key, - channels.closing_reason, channels.closing_transaction_id, channels.capacity, - forensics.* + channels.* FROM channels - LEFT JOIN channels_forensics as forensics ON forensics.channel_id = channels.id WHERE channels.closing_transaction_id = ? `; const [rows]: any = await DB.query(query, [transactionId]); @@ -294,20 +286,17 @@ class ChannelsApi { return rows[0]; } } catch (e) { - logger.err('$getChannelForensicsByClosingId error: ' + (e instanceof Error ? e.message : e)); + logger.err('$getChannelByClosingId error: ' + (e instanceof Error ? e.message : e)); // don't throw - this data isn't essential } } - public async $getChannelForensicsByOpeningId(transactionId: string): Promise { + public async $getChannelsByOpeningId(transactionId: string): Promise { try { const query = ` SELECT - channels.id, channels.node1_public_key, channels.node2_public_key, - channels.status, channels.transaction_id, channels.capacity, - forensics.* + channels.* FROM channels - LEFT JOIN channels_forensics as forensics ON forensics.channel_id = channels.id WHERE channels.transaction_id = ? `; const [rows]: any = await DB.query(query, [transactionId]); @@ -318,7 +307,7 @@ class ChannelsApi { }); } } catch (e) { - logger.err('$getChannelForensicsByOpeningId error: ' + (e instanceof Error ? e.message : e)); + logger.err('$getChannelsByOpeningId error: ' + (e instanceof Error ? e.message : e)); // don't throw - this data isn't essential } } @@ -326,36 +315,21 @@ class ChannelsApi { public async $updateClosingInfo(channelInfo: { id: string, node1_closing_balance: number, node2_closing_balance: number, closed_by: string | null, closing_fee: number, outputs: ILightningApi.ForensicOutput[]}): Promise { try { const query = ` - INSERT INTO channels_forensics - ( - channel_id, - node1_closing_balance, - node2_closing_balance, - closed_by, - closing_fee, - outputs - ) - VALUES (?, ?, ?, ?, ?, ?) - ON DUPLICATE KEY UPDATE + UPDATE channels SET node1_closing_balance = ?, node2_closing_balance = ?, closed_by = ?, closing_fee = ?, outputs = ? + WHERE channels.id = ? `; - const jsonOutputs = JSON.stringify(channelInfo.outputs); await DB.query(query, [ + channelInfo.node1_closing_balance || 0, + channelInfo.node2_closing_balance || 0, + channelInfo.closed_by, + channelInfo.closing_fee || 0, + JSON.stringify(channelInfo.outputs), channelInfo.id, - channelInfo.node1_closing_balance || 0, - channelInfo.node2_closing_balance || 0, - channelInfo.closed_by, - channelInfo.closing_fee || 0, - jsonOutputs, - channelInfo.node1_closing_balance || 0, - channelInfo.node2_closing_balance || 0, - channelInfo.closed_by, - channelInfo.closing_fee || 0, - jsonOutputs ]); } catch (e) { logger.err('$updateClosingInfo error: ' + (e instanceof Error ? e.message : e)); @@ -366,32 +340,19 @@ class ChannelsApi { public async $updateOpeningInfo(channelInfo: { id: string, node1_funding_balance: number, node2_funding_balance: number, funding_ratio: number, single_funded: boolean | void }): Promise { try { const query = ` - INSERT INTO channels_forensics - ( - channel_id, - node1_funding_balance, - node2_funding_balance, - funding_ratio, - single_funded, - outputs - ) - VALUES (?, ?, ?, ?, ?, 'null') - ON DUPLICATE KEY UPDATE - node1_funding_balance = ?, - node2_funding_balance = ?, - funding_ratio = ?, - single_funded = ? + UPDATE channels SET + node1_funding_balance = ?, + node2_funding_balance = ?, + funding_ratio = ?, + single_funded = ? + WHERE channels.id = ? `; await DB.query(query, [ + channelInfo.node1_funding_balance || 0, + channelInfo.node2_funding_balance || 0, + channelInfo.funding_ratio, + channelInfo.single_funded ? 1 : 0, channelInfo.id, - channelInfo.node1_funding_balance || 0, - channelInfo.node2_funding_balance || 0, - channelInfo.funding_ratio, - channelInfo.single_funded ? 1 : 0, - channelInfo.node1_funding_balance || 0, - channelInfo.node2_funding_balance || 0, - channelInfo.funding_ratio, - channelInfo.single_funded ? 1 : 0, ]); } catch (e) { logger.err('$updateOpeningInfo error: ' + (e instanceof Error ? e.message : e)); diff --git a/backend/src/tasks/lightning/forensics.service.ts b/backend/src/tasks/lightning/forensics.service.ts index af79a270a..7083ad072 100644 --- a/backend/src/tasks/lightning/forensics.service.ts +++ b/backend/src/tasks/lightning/forensics.service.ts @@ -227,12 +227,12 @@ class ForensicsService { continue; } for (const input of openTx.vin) { - const closeChannel = await channelsApi.$getChannelForensicsByClosingId(input.txid); + const closeChannel = await channelsApi.$getChannelByClosingId(input.txid); if (closeChannel) { // this input directly spends a channel close output await this.$attributeChannelBalances(closeChannel, openChannel, input); } else { - const prevOpenChannels = await channelsApi.$getChannelForensicsByOpeningId(input.txid); + const prevOpenChannels = await channelsApi.$getChannelsByOpeningId(input.txid); if (prevOpenChannels?.length) { // this input spends a channel open change output for (const prevOpenChannel of prevOpenChannels) { @@ -286,7 +286,7 @@ class ForensicsService { for (const sweepInput of sweepTx.vin) { const lnScriptType = this.findLightningScript(sweepInput); if (lnScriptType > 1) { - const closeChannel = await channelsApi.$getChannelForensicsByClosingId(sweepInput.txid); + const closeChannel = await channelsApi.$getChannelByClosingId(sweepInput.txid); if (closeChannel) { const initiator = (lnScriptType === 2 || lnScriptType === 4) ? 'remote' : (lnScriptType === 3 ? 'local' : null); await this.$attributeChannelBalances(closeChannel, openChannel, sweepInput, openContribution, initiator); @@ -348,8 +348,8 @@ class ForensicsService { return; } if (!linkedOpenings) { - if (!prevChannel.outputs) { - prevChannel.outputs = prevChannel.outputs || prevChannelTx.vout.map(vout => { + if (!prevChannel.outputs || !prevChannel.outputs.length) { + prevChannel.outputs = prevChannelTx.vout.map(vout => { return { type: 0, value: vout.value, From ba10df69b7a72c07965a5e44055dbb581d823c1f Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 28 Nov 2022 10:41:48 +0900 Subject: [PATCH 0120/1466] improve precision of output attribution for mutual closes --- backend/src/tasks/lightning/forensics.service.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/tasks/lightning/forensics.service.ts b/backend/src/tasks/lightning/forensics.service.ts index 7083ad072..7acb36e89 100644 --- a/backend/src/tasks/lightning/forensics.service.ts +++ b/backend/src/tasks/lightning/forensics.service.ts @@ -377,6 +377,7 @@ class ForensicsService { prevChannel.outputs[input.vout].node = prevLocal; const isPenalty = prevChannel.outputs.filter((out) => out.type === 2 || out.type === 4)?.length > 0; const normalOutput = [1,3].includes(prevChannel.outputs[input.vout].type); + const mutualClose = ((prevChannel.status === 2 || prevChannel.status === 'closed') && prevChannel.closing_reason === 1); let localClosingBalance = 0; let remoteClosingBalance = 0; for (const output of prevChannel.outputs) { @@ -390,7 +391,7 @@ class ForensicsService { } else { remoteClosingBalance += output.value; } - } else if (normalOutput && (output.type === 1 || output.type === 3)) { + } else if (normalOutput && (output.type === 1 || output.type === 3 || (mutualClose && prevChannel.outputs.length === 2))) { // local node had one main output, therefore remote node takes the other remoteClosingBalance += output.value; } From 734c953714a812acafe06329ac961b3e81d2b474 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Wed, 30 Nov 2022 04:32:10 -0500 Subject: [PATCH 0121/1466] Revert community integration icon size increase From #2700. Narrow column instead. --- frontend/src/app/components/about/about.component.html | 2 +- frontend/src/app/components/about/about.component.scss | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/components/about/about.component.html b/frontend/src/app/components/about/about.component.html index cc24e7893..876bec028 100644 --- a/frontend/src/app/components/about/about.component.html +++ b/frontend/src/app/components/about/about.component.html @@ -129,7 +129,7 @@ Gemini - + diff --git a/frontend/src/app/components/about/about.component.scss b/frontend/src/app/components/about/about.component.scss index 1d1d93214..910ff922b 100644 --- a/frontend/src/app/components/about/about.component.scss +++ b/frontend/src/app/components/about/about.component.scss @@ -3,8 +3,8 @@ text-align: center; .image { - width: 81px; - height: 81px; + width: 80px; + height: 80px; background-size: 100%, 100%; border-radius: 50%; margin: 25px; @@ -191,6 +191,6 @@ } .community-integrations-sponsor { - max-width: 970px; + max-width: 965px; margin: auto; } From afc5c6786bf4e17b100dad6525c713731c182826 Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 30 Nov 2022 22:07:47 +0900 Subject: [PATCH 0122/1466] Remove annoying frontend console log --- .../components/bisq-master-page/bisq-master-page.component.ts | 1 - .../liquid-master-page/liquid-master-page.component.ts | 1 - frontend/src/app/components/master-page/master-page.component.ts | 1 - 3 files changed, 3 deletions(-) diff --git a/frontend/src/app/components/bisq-master-page/bisq-master-page.component.ts b/frontend/src/app/components/bisq-master-page/bisq-master-page.component.ts index 941d9e21e..0ab0259bd 100644 --- a/frontend/src/app/components/bisq-master-page/bisq-master-page.component.ts +++ b/frontend/src/app/components/bisq-master-page/bisq-master-page.component.ts @@ -30,7 +30,6 @@ export class BisqMasterPageComponent implements OnInit { this.connectionState$ = this.stateService.connectionState$; this.urlLanguage = this.languageService.getLanguageForUrl(); this.navigationService.subnetPaths.subscribe((paths) => { - console.log('network paths updated...'); this.networkPaths = paths; }); } diff --git a/frontend/src/app/components/liquid-master-page/liquid-master-page.component.ts b/frontend/src/app/components/liquid-master-page/liquid-master-page.component.ts index c57673529..e5d0aaa0a 100644 --- a/frontend/src/app/components/liquid-master-page/liquid-master-page.component.ts +++ b/frontend/src/app/components/liquid-master-page/liquid-master-page.component.ts @@ -33,7 +33,6 @@ export class LiquidMasterPageComponent implements OnInit { this.network$ = merge(of(''), this.stateService.networkChanged$); this.urlLanguage = this.languageService.getLanguageForUrl(); this.navigationService.subnetPaths.subscribe((paths) => { - console.log('network paths updated...'); this.networkPaths = paths; }); } diff --git a/frontend/src/app/components/master-page/master-page.component.ts b/frontend/src/app/components/master-page/master-page.component.ts index 8f7b4fecc..34c525108 100644 --- a/frontend/src/app/components/master-page/master-page.component.ts +++ b/frontend/src/app/components/master-page/master-page.component.ts @@ -35,7 +35,6 @@ export class MasterPageComponent implements OnInit { this.urlLanguage = this.languageService.getLanguageForUrl(); this.subdomain = this.enterpriseService.getSubdomain(); this.navigationService.subnetPaths.subscribe((paths) => { - console.log('network paths updated...'); this.networkPaths = paths; }); } From 8117b9799c8285edf02ba4d70689d5551ab22948 Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 30 Nov 2022 22:14:15 +0900 Subject: [PATCH 0123/1466] Adding production config to enable gbt audit. --- production/mempool-config.mainnet.json | 2 ++ production/mempool-config.signet.json | 2 ++ production/mempool-config.testnet.json | 2 ++ 3 files changed, 6 insertions(+) diff --git a/production/mempool-config.mainnet.json b/production/mempool-config.mainnet.json index 06a14d223..ab2fa69c1 100644 --- a/production/mempool-config.mainnet.json +++ b/production/mempool-config.mainnet.json @@ -10,6 +10,8 @@ "POLL_RATE_MS": 1000, "INDEXING_BLOCKS_AMOUNT": -1, "BLOCKS_SUMMARIES_INDEXING": true, + "ADVANCED_GBT_AUDIT": true, + "ADVANCED_GBT_MEMPOOL": false, "USE_SECOND_NODE_FOR_MINFEE": true }, "SYSLOG" : { diff --git a/production/mempool-config.signet.json b/production/mempool-config.signet.json index f42c4dc50..313a09679 100644 --- a/production/mempool-config.signet.json +++ b/production/mempool-config.signet.json @@ -7,6 +7,8 @@ "SPAWN_CLUSTER_PROCS": 0, "API_URL_PREFIX": "/api/v1/", "INDEXING_BLOCKS_AMOUNT": -1, + "ADVANCED_GBT_AUDIT": true, + "ADVANCED_GBT_MEMPOOL": false, "POLL_RATE_MS": 1000 }, "SYSLOG" : { diff --git a/production/mempool-config.testnet.json b/production/mempool-config.testnet.json index cc63f93bf..908df7886 100644 --- a/production/mempool-config.testnet.json +++ b/production/mempool-config.testnet.json @@ -7,6 +7,8 @@ "SPAWN_CLUSTER_PROCS": 0, "API_URL_PREFIX": "/api/v1/", "INDEXING_BLOCKS_AMOUNT": -1, + "ADVANCED_GBT_AUDIT": true, + "ADVANCED_GBT_MEMPOOL": false, "POLL_RATE_MS": 1000 }, "SYSLOG" : { From ead60aaa211f90ce99134327142658446ea5f8fd Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 24 Nov 2022 18:50:28 +0900 Subject: [PATCH 0124/1466] save db schema version after each successful migration --- backend/src/api/database-migration.ts | 46 +++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index a2977d3ba..69aaccbdf 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -107,18 +107,22 @@ class DatabaseMigration { await this.$executeQuery(this.getCreateStatisticsQuery(), await this.$checkIfTableExists('statistics')); if (databaseSchemaVersion < 2 && this.statisticsAddedIndexed === false) { await this.$executeQuery(`CREATE INDEX added ON statistics (added);`); + this.updateToSchemaVersion(2); } if (databaseSchemaVersion < 3) { await this.$executeQuery(this.getCreatePoolsTableQuery(), await this.$checkIfTableExists('pools')); + this.updateToSchemaVersion(3); } if (databaseSchemaVersion < 4) { await this.$executeQuery('DROP table IF EXISTS blocks;'); await this.$executeQuery(this.getCreateBlocksTableQuery(), await this.$checkIfTableExists('blocks')); + this.updateToSchemaVersion(4); } if (databaseSchemaVersion < 5 && isBitcoin === true) { this.uniqueLog(logger.notice, this.blocksTruncatedMessage); await this.$executeQuery('TRUNCATE blocks;'); // Need to re-index await this.$executeQuery('ALTER TABLE blocks ADD `reward` double unsigned NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(5); } if (databaseSchemaVersion < 6 && isBitcoin === true) { @@ -141,11 +145,13 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE blocks ADD `nonce` bigint unsigned NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks ADD `merkle_root` varchar(65) NOT NULL DEFAULT ""'); await this.$executeQuery('ALTER TABLE blocks ADD `previous_block_hash` varchar(65) NULL'); + this.updateToSchemaVersion(6); } if (databaseSchemaVersion < 7 && isBitcoin === true) { await this.$executeQuery('DROP table IF EXISTS hashrates;'); await this.$executeQuery(this.getCreateDailyStatsTableQuery(), await this.$checkIfTableExists('hashrates')); + this.updateToSchemaVersion(7); } if (databaseSchemaVersion < 8 && isBitcoin === true) { @@ -155,6 +161,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `hashrates` ADD `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST'); await this.$executeQuery('ALTER TABLE `hashrates` ADD `share` float NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `hashrates` ADD `type` enum("daily", "weekly") DEFAULT "daily"'); + this.updateToSchemaVersion(8); } if (databaseSchemaVersion < 9 && isBitcoin === true) { @@ -162,10 +169,12 @@ class DatabaseMigration { await this.$executeQuery('TRUNCATE hashrates;'); // Need to re-index await this.$executeQuery('ALTER TABLE `state` CHANGE `name` `name` varchar(100)'); await this.$executeQuery('ALTER TABLE `hashrates` ADD UNIQUE `hashrate_timestamp_pool_id` (`hashrate_timestamp`, `pool_id`)'); + this.updateToSchemaVersion(9); } if (databaseSchemaVersion < 10 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `blocks` ADD INDEX `blockTimestamp` (`blockTimestamp`)'); + this.updateToSchemaVersion(10); } if (databaseSchemaVersion < 11 && isBitcoin === true) { @@ -178,11 +187,13 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE blocks MODIFY `reward` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `median_fee` INT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `fees` INT UNSIGNED NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(11); } if (databaseSchemaVersion < 12 && isBitcoin === true) { // No need to re-index because the new data type can contain larger values await this.$executeQuery('ALTER TABLE blocks MODIFY `fees` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(12); } if (databaseSchemaVersion < 13 && isBitcoin === true) { @@ -190,6 +201,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE blocks MODIFY `median_fee` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `avg_fee` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `avg_fee_rate` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(13); } if (databaseSchemaVersion < 14 && isBitcoin === true) { @@ -197,37 +209,45 @@ class DatabaseMigration { await this.$executeQuery('TRUNCATE hashrates;'); // Need to re-index await this.$executeQuery('ALTER TABLE `hashrates` DROP FOREIGN KEY `hashrates_ibfk_1`'); await this.$executeQuery('ALTER TABLE `hashrates` MODIFY `pool_id` SMALLINT UNSIGNED NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(14); } if (databaseSchemaVersion < 16 && isBitcoin === true) { this.uniqueLog(logger.notice, this.hashratesTruncatedMessage); await this.$executeQuery('TRUNCATE hashrates;'); // Need to re-index because we changed timestamps + this.updateToSchemaVersion(16); } if (databaseSchemaVersion < 17 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `pools` ADD `slug` CHAR(50) NULL'); + this.updateToSchemaVersion(17); } if (databaseSchemaVersion < 18 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `blocks` ADD INDEX `hash` (`hash`);'); + this.updateToSchemaVersion(18); } if (databaseSchemaVersion < 19) { await this.$executeQuery(this.getCreateRatesTableQuery(), await this.$checkIfTableExists('rates')); + this.updateToSchemaVersion(19); } if (databaseSchemaVersion < 20 && isBitcoin === true) { await this.$executeQuery(this.getCreateBlocksSummariesTableQuery(), await this.$checkIfTableExists('blocks_summaries')); + this.updateToSchemaVersion(20); } if (databaseSchemaVersion < 21) { await this.$executeQuery('DROP TABLE IF EXISTS `rates`'); await this.$executeQuery(this.getCreatePricesTableQuery(), await this.$checkIfTableExists('prices')); + this.updateToSchemaVersion(21); } if (databaseSchemaVersion < 22 && isBitcoin === true) { await this.$executeQuery('DROP TABLE IF EXISTS `difficulty_adjustments`'); await this.$executeQuery(this.getCreateDifficultyAdjustmentsTableQuery(), await this.$checkIfTableExists('difficulty_adjustments')); + this.updateToSchemaVersion(22); } if (databaseSchemaVersion < 23) { @@ -240,11 +260,13 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `prices` ADD `CHF` float DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `prices` ADD `AUD` float DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `prices` ADD `JPY` float DEFAULT "0"'); + this.updateToSchemaVersion(23); } if (databaseSchemaVersion < 24 && isBitcoin == true) { await this.$executeQuery('DROP TABLE IF EXISTS `blocks_audits`'); await this.$executeQuery(this.getCreateBlocksAuditsTableQuery(), await this.$checkIfTableExists('blocks_audits')); + this.updateToSchemaVersion(24); } if (databaseSchemaVersion < 25 && isBitcoin === true) { @@ -252,6 +274,7 @@ class DatabaseMigration { await this.$executeQuery(this.getCreateNodesQuery(), await this.$checkIfTableExists('nodes')); await this.$executeQuery(this.getCreateChannelsQuery(), await this.$checkIfTableExists('channels')); await this.$executeQuery(this.getCreateNodesStatsQuery(), await this.$checkIfTableExists('node_stats')); + this.updateToSchemaVersion(25); } if (databaseSchemaVersion < 26 && isBitcoin === true) { @@ -262,6 +285,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `lightning_stats` ADD tor_nodes int(11) NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD clearnet_nodes int(11) NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD unannounced_nodes int(11) NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(26); } if (databaseSchemaVersion < 27 && isBitcoin === true) { @@ -271,6 +295,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `lightning_stats` ADD med_capacity bigint(20) unsigned NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD med_fee_rate int(11) unsigned NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD med_base_fee_mtokens bigint(20) unsigned NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(27); } if (databaseSchemaVersion < 28 && isBitcoin === true) { @@ -280,6 +305,7 @@ class DatabaseMigration { await this.$executeQuery(`TRUNCATE lightning_stats`); await this.$executeQuery(`TRUNCATE node_stats`); await this.$executeQuery(`ALTER TABLE lightning_stats MODIFY added DATE`); + this.updateToSchemaVersion(28); } if (databaseSchemaVersion < 29 && isBitcoin === true) { @@ -291,41 +317,50 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `nodes` ADD subdivision_id int(11) unsigned NULL DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD longitude double NULL DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD latitude double NULL DEFAULT NULL'); + this.updateToSchemaVersion(29); } if (databaseSchemaVersion < 30 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `geo_names` CHANGE `type` `type` enum("city","country","division","continent","as_organization") NOT NULL'); + this.updateToSchemaVersion(30); } if (databaseSchemaVersion < 31 && isBitcoin == true) { // Link blocks to prices await this.$executeQuery('ALTER TABLE `prices` ADD `id` int NULL AUTO_INCREMENT UNIQUE'); await this.$executeQuery('DROP TABLE IF EXISTS `blocks_prices`'); await this.$executeQuery(this.getCreateBlocksPricesTableQuery(), await this.$checkIfTableExists('blocks_prices')); + this.updateToSchemaVersion(31); } if (databaseSchemaVersion < 32 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `blocks_summaries` ADD `template` JSON DEFAULT "[]"'); + this.updateToSchemaVersion(32); } if (databaseSchemaVersion < 33 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `geo_names` CHANGE `type` `type` enum("city","country","division","continent","as_organization", "country_iso_code") NOT NULL'); + this.updateToSchemaVersion(33); } if (databaseSchemaVersion < 34 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `lightning_stats` ADD clearnet_tor_nodes int(11) NOT NULL DEFAULT "0"'); + this.updateToSchemaVersion(34); } if (databaseSchemaVersion < 35 && isBitcoin == true) { await this.$executeQuery('DELETE from `lightning_stats` WHERE added > "2021-09-19"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD CONSTRAINT added_unique UNIQUE (added);'); + this.updateToSchemaVersion(35); } if (databaseSchemaVersion < 36 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `nodes` ADD status TINYINT NOT NULL DEFAULT "1"'); + this.updateToSchemaVersion(36); } if (databaseSchemaVersion < 37 && isBitcoin == true) { await this.$executeQuery(this.getCreateLNNodesSocketsTableQuery(), await this.$checkIfTableExists('nodes_sockets')); + this.updateToSchemaVersion(37); } if (databaseSchemaVersion < 38 && isBitcoin == true) { @@ -336,34 +371,41 @@ class DatabaseMigration { await this.$executeQuery(`TRUNCATE node_stats`); await this.$executeQuery('ALTER TABLE `lightning_stats` CHANGE `added` `added` timestamp NULL'); await this.$executeQuery('ALTER TABLE `node_stats` CHANGE `added` `added` timestamp NULL'); + this.updateToSchemaVersion(38); } if (databaseSchemaVersion < 39 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `nodes` ADD alias_search TEXT NULL DEFAULT NULL AFTER `alias`'); await this.$executeQuery('ALTER TABLE nodes ADD FULLTEXT(alias_search)'); + this.updateToSchemaVersion(39); } if (databaseSchemaVersion < 40 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `nodes` ADD capacity bigint(20) unsigned DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD channels int(11) unsigned DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD INDEX `capacity` (`capacity`);'); + this.updateToSchemaVersion(40); } if (databaseSchemaVersion < 41 && isBitcoin === true) { await this.$executeQuery('UPDATE channels SET closing_reason = NULL WHERE closing_reason = 1'); + this.updateToSchemaVersion(41); } if (databaseSchemaVersion < 42 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `channels` ADD closing_resolved tinyint(1) DEFAULT 0'); + this.updateToSchemaVersion(42); } if (databaseSchemaVersion < 43 && isBitcoin === true) { await this.$executeQuery(this.getCreateLNNodeRecordsTableQuery(), await this.$checkIfTableExists('nodes_records')); + this.updateToSchemaVersion(43); } if (databaseSchemaVersion < 44 && isBitcoin === true) { await this.$executeQuery('TRUNCATE TABLE `blocks_audits`'); await this.$executeQuery('UPDATE blocks_summaries SET template = NULL'); + this.updateToSchemaVersion(44); } if (databaseSchemaVersion < 45 && isBitcoin === true) { @@ -529,6 +571,10 @@ class DatabaseMigration { return `UPDATE state SET number = ${DatabaseMigration.currentVersion} WHERE name = 'schema_version';`; } + private async updateToSchemaVersion(version): Promise { + await this.$executeQuery(`UPDATE state SET number = ${version} WHERE name = 'schema_version';`); + } + /** * Print current database version */ From 03a3320e450b3a572623e0e40a69f312085865d0 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 24 Nov 2022 19:31:10 +0900 Subject: [PATCH 0125/1466] block audit truncation in separate db migrations. bump timeout to 1 hour. --- backend/src/api/database-migration.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 69aaccbdf..8693e53cf 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -4,8 +4,8 @@ import logger from '../logger'; import { Common } from './common'; class DatabaseMigration { - private static currentVersion = 48; - private queryTimeout = 900_000; + private static currentVersion = 49; + private queryTimeout = 3600_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -403,23 +403,25 @@ class DatabaseMigration { } if (databaseSchemaVersion < 44 && isBitcoin === true) { - await this.$executeQuery('TRUNCATE TABLE `blocks_audits`'); await this.$executeQuery('UPDATE blocks_summaries SET template = NULL'); this.updateToSchemaVersion(44); } if (databaseSchemaVersion < 45 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `blocks_audits` ADD fresh_txs JSON DEFAULT "[]"'); + this.updateToSchemaVersion(45); } if (databaseSchemaVersion < 46) { await this.$executeQuery(`ALTER TABLE blocks MODIFY blockTimestamp timestamp NOT NULL DEFAULT 0`); + this.updateToSchemaVersion(46); } if (databaseSchemaVersion < 47) { await this.$executeQuery('ALTER TABLE `blocks` ADD cpfp_indexed tinyint(1) DEFAULT 0'); await this.$executeQuery(this.getCreateCPFPTableQuery(), await this.$checkIfTableExists('cpfp_clusters')); await this.$executeQuery(this.getCreateTransactionsTableQuery(), await this.$checkIfTableExists('transactions')); + this.updateToSchemaVersion(47); } if (databaseSchemaVersion < 48 && isBitcoin === true) { @@ -433,6 +435,12 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `channels` ADD closed_by varchar(66) DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `channels` ADD single_funded tinyint(1) DEFAULT 0'); await this.$executeQuery('ALTER TABLE `channels` ADD outputs JSON DEFAULT "[]"'); + this.updateToSchemaVersion(48); + } + + if (databaseSchemaVersion < 49 && isBitcoin === true) { + await this.$executeQuery('TRUNCATE TABLE `blocks_audits`'); + this.updateToSchemaVersion(49); } } From c7d61a3be41d236f7cef4fcb458d0668ba90f184 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 1 Dec 2022 11:34:11 +0900 Subject: [PATCH 0126/1466] only retry fetch CPFP for unconfirmed txs --- .../transaction/transaction.component.ts | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 3e04b0ad9..575c00637 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -7,10 +7,11 @@ import { catchError, retryWhen, delay, - map + map, + mergeMap } from 'rxjs/operators'; import { Transaction } from '../../interfaces/electrs.interface'; -import { of, merge, Subscription, Observable, Subject, timer, combineLatest, from } from 'rxjs'; +import { of, merge, Subscription, Observable, Subject, timer, combineLatest, from, throwError } from 'rxjs'; import { StateService } from '../../services/state.service'; import { WebsocketService } from '../../services/websocket.service'; import { AudioService } from '../../services/audio.service'; @@ -110,11 +111,24 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { switchMap((txId) => this.apiService .getCpfpinfo$(txId) - .pipe(retryWhen((errors) => errors.pipe(delay(2000)))) - ) + .pipe(retryWhen((errors) => errors.pipe( + mergeMap((error) => { + if (!this.tx?.status || this.tx.status.confirmed) { + return throwError(error); + } else { + return of(null); + } + }), + delay(2000) + ))) + ), + catchError(() => { + return of(null); + }) ) .subscribe((cpfpInfo) => { - if (!this.tx) { + if (!cpfpInfo || !this.tx) { + this.cpfpInfo = null; return; } if (cpfpInfo.effectiveFeePerVsize) { From 38c890626be82090569a9455777c9d41dae03e59 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 1 Dec 2022 11:34:44 +0900 Subject: [PATCH 0127/1466] fix CPFP handling in transaction preview --- .../transaction-preview.component.ts | 36 +++---------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction-preview.component.ts b/frontend/src/app/components/transaction/transaction-preview.component.ts index bd4260244..9d2d502b4 100644 --- a/frontend/src/app/components/transaction/transaction-preview.component.ts +++ b/frontend/src/app/components/transaction/transaction-preview.component.ts @@ -63,40 +63,14 @@ export class TransactionPreviewComponent implements OnInit, OnDestroy { this.fetchCpfpSubscription = this.fetchCpfp$ .pipe( switchMap((txId) => - this.apiService - .getCpfpinfo$(txId) - .pipe(retryWhen((errors) => errors.pipe(delay(2000)))) + this.apiService.getCpfpinfo$(txId).pipe( + catchError((err) => { + return of(null); + }) + ) ) ) .subscribe((cpfpInfo) => { - if (!this.tx) { - return; - } - if (cpfpInfo.effectiveFeePerVsize) { - this.tx.effectiveFeePerVsize = cpfpInfo.effectiveFeePerVsize; - } else { - const lowerFeeParents = cpfpInfo.ancestors.filter( - (parent) => parent.fee / (parent.weight / 4) < this.tx.feePerVsize - ); - let totalWeight = - this.tx.weight + - lowerFeeParents.reduce((prev, val) => prev + val.weight, 0); - let totalFees = - this.tx.fee + - lowerFeeParents.reduce((prev, val) => prev + val.fee, 0); - - if (cpfpInfo?.bestDescendant) { - totalWeight += cpfpInfo?.bestDescendant.weight; - totalFees += cpfpInfo?.bestDescendant.fee; - } - - this.tx.effectiveFeePerVsize = totalFees / (totalWeight / 4); - } - if (!this.tx.status.confirmed) { - this.stateService.markBlock$.next({ - txFeePerVSize: this.tx.effectiveFeePerVsize, - }); - } this.cpfpInfo = cpfpInfo; this.openGraphService.waitOver('cpfp-data-' + this.txId); }); From 3d45054e38ba0eb9f9787bd69d6f159574c11e39 Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 1 Dec 2022 14:24:41 +0900 Subject: [PATCH 0128/1466] Update backend npm modules --- backend/package-lock.json | 3701 ++++++++++++++++++++----------------- backend/package.json | 38 +- 2 files changed, 1976 insertions(+), 1763 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index e83ddf252..31cc252bc 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -9,36 +9,36 @@ "version": "2.5.0-dev", "license": "GNU Affero General Public License v3.0", "dependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.20.5", "@mempool/electrum-client": "^1.1.7", "@types/node": "^16.11.41", - "axios": "~0.27.2", - "bitcoinjs-lib": "6.0.2", - "crypto-js": "^4.0.0", - "express": "^4.18.0", - "maxmind": "^4.3.6", - "mysql2": "2.3.3", - "node-worker-threads-pool": "^1.5.1", + "axios": "~1.2.0", + "bitcoinjs-lib": "~6.0.2", + "crypto-js": "~4.1.1", + "express": "~4.18.2", + "maxmind": "~4.3.8", + "mysql2": "~2.3.3", + "node-worker-threads-pool": "~1.5.1", "socks-proxy-agent": "~7.0.0", "typescript": "~4.7.4", - "ws": "~8.8.0" + "ws": "~8.11.0" }, "devDependencies": { "@babel/code-frame": "^7.18.6", - "@babel/core": "^7.18.6", + "@babel/core": "^7.20.5", "@types/compression": "^1.7.2", "@types/crypto-js": "^4.1.1", - "@types/express": "^4.17.13", - "@types/jest": "^28.1.4", + "@types/express": "^4.17.14", + "@types/jest": "^29.2.3", "@types/ws": "~8.5.3", - "@typescript-eslint/eslint-plugin": "^5.30.5", - "@typescript-eslint/parser": "^5.30.5", - "eslint": "^8.19.0", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "jest": "^28.1.2", - "prettier": "^2.7.1", - "ts-jest": "^28.0.5", - "ts-node": "^10.8.2" + "jest": "^29.3.1", + "prettier": "^2.8.0", + "ts-jest": "^29.0.3", + "ts-node": "^10.9.1" } }, "node_modules/@ampproject/remapping": { @@ -67,30 +67,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -129,12 +129,12 @@ "dev": true }, "node_modules/@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dev": true, "dependencies": { - "@babel/types": "^7.18.7", + "@babel/types": "^7.20.5", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -157,14 +157,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.6", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "engines": { @@ -175,22 +175,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -221,40 +221,40 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", - "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -272,10 +272,19 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -291,14 +300,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dev": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" @@ -390,9 +399,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", - "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -461,6 +470,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -549,12 +573,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -564,33 +588,33 @@ } }, "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", - "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -615,15 +639,6 @@ } } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/traverse/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -631,12 +646,13 @@ "dev": true }, "node_modules/@babel/types": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", - "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -672,14 +688,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", + "espree": "^9.4.0", "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -689,14 +705,11 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/@eslint/eslintrc/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -714,16 +727,19 @@ } } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "type-fest": "^0.20.2" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/ms": { @@ -732,15 +748,27 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" @@ -769,6 +797,19 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -791,6 +832,80 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -810,60 +925,59 @@ } }, "node_modules/@jest/console": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz", - "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", "dev": true, "dependencies": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/core": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.2.tgz", - "integrity": "sha512-Xo4E+Sb/nZODMGOPt2G3cMmCBqL4/W2Ijwr7/mrXlq4jdJwcFQ/9KrrJZT2adQRk2otVBXXOz1GRQ4Z5iOgvRQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", "dev": true, "dependencies": { - "@jest/console": "^28.1.1", - "@jest/reporters": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.0.2", - "jest-config": "^28.1.2", - "jest-haste-map": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-resolve-dependencies": "^28.1.2", - "jest-runner": "^28.1.2", - "jest-runtime": "^28.1.2", - "jest-snapshot": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", - "jest-watcher": "^28.1.1", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", "micromatch": "^4.0.4", - "pretty-format": "^28.1.1", - "rimraf": "^3.0.0", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -874,134 +988,90 @@ } } }, - "node_modules/@jest/core/node_modules/jest-config": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.2.tgz", - "integrity": "sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.1", - "@jest/types": "^28.1.1", - "babel-jest": "^28.1.2", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.2", - "jest-environment-node": "^28.1.2", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-runner": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, "node_modules/@jest/environment": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.2.tgz", - "integrity": "sha512-I0CR1RUMmOzd0tRpz10oUfaChBWs+/Hrvn5xYhMEF/ZqrDaaeHwS8yDBqEWCrEnkH2g+WE/6g90oBv3nKpcm8Q==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", "dev": true, "dependencies": { - "@jest/fake-timers": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^28.1.1" + "jest-mock": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.2.tgz", - "integrity": "sha512-HBzyZBeFBiOelNbBKN0pilWbbrGvwDUwAqMC46NVJmWm8AVkuE58NbG1s7DR4cxFt4U5cVLxofAoHxgvC5MyOw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", "dev": true, "dependencies": { - "expect": "^28.1.1", - "jest-snapshot": "^28.1.2" + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.1.tgz", - "integrity": "sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", "dev": true, "dependencies": { - "jest-get-type": "^28.0.2" + "jest-get-type": "^29.2.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.2.tgz", - "integrity": "sha512-xSYEI7Y0D5FbZN2LsCUj/EKRR1zfQYmGuAUVh6xTqhx7V5JhjgMcK5Pa0iR6WIk0GXiHDe0Ke4A+yERKE9saqg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", "dev": true, "dependencies": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^28.1.1", - "jest-mock": "^28.1.1", - "jest-util": "^28.1.1" + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.2.tgz", - "integrity": "sha512-cz0lkJVDOtDaYhvT3Fv2U1B6FtBnV+OpEyJCzTHM1fdoTsU4QNLAt/H4RkiwEUU+dL4g/MFsoTuHeT2pvbo4Hg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", "dev": true, "dependencies": { - "@jest/environment": "^28.1.2", - "@jest/expect": "^28.1.2", - "@jest/types": "^28.1.1" + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.2.tgz", - "integrity": "sha512-/whGLhiwAqeCTmQEouSigUZJPVl7sW8V26EiboImL+UyXznnr1a03/YZ2BX8OlFw0n+Zlwu+EZAITZtaeRTxyA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.1", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", - "@jridgewell/trace-mapping": "^0.3.13", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -1013,17 +1083,16 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1", - "jest-worker": "^28.1.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -1035,94 +1104,100 @@ } }, "node_modules/@jest/schemas": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", - "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.23.3" + "@sinclair/typebox": "^0.24.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.13", + "@jridgewell/trace-mapping": "^0.3.15", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/test-result": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz", - "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", "dev": true, "dependencies": { - "@jest/console": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz", - "integrity": "sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", "dev": true, "dependencies": { - "@jest/test-result": "^28.1.1", + "@jest/test-result": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", + "jest-haste-map": "^29.3.1", "slash": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/transform": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.2.tgz", - "integrity": "sha512-3o+lKF6iweLeJFHBlMJysdaPbpoMmtbHEFsjzSv37HIq/wWt5ijTeO2Yf7MO5yyczCopD507cNwNLeX8Y/CuIg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^28.1.1", - "@jridgewell/trace-mapping": "^0.3.13", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.1", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@jest/types": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz", - "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "dependencies": { - "@jest/schemas": "^28.0.2", + "@jest/schemas": "^29.0.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -1130,7 +1205,7 @@ "chalk": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jridgewell/gen-mapping": { @@ -1171,13 +1246,13 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@mempool/electrum-client": { @@ -1224,15 +1299,15 @@ } }, "node_modules/@sinclair/typebox": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", - "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", "dev": true }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -1272,9 +1347,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -1304,9 +1379,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "dependencies": { "@babel/types": "^7.3.0" @@ -1347,9 +1422,9 @@ "dev": true }, "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "dependencies": { "@types/body-parser": "*", @@ -1403,13 +1478,13 @@ } }, "node_modules/@types/jest": { - "version": "28.1.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.4.tgz", - "integrity": "sha512-telv6G5N7zRJiLcI3Rs3o+ipZ28EnE+7EvF0pSrt2pZOMnAVI/f+6/LucDxOvcBcTeTL3JMF744BbVQAVBUQRA==", + "version": "29.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.3.tgz", + "integrity": "sha512-6XwoEbmatfyoCjWRX7z0fKMmgYKe9+/HrviJ5k0X/tjJWHGAezZOfYaxqQKuzG/TvQyr+ktjm4jgbk0s4/oF2w==", "dev": true, "dependencies": { - "jest-matcher-utils": "^28.0.0", - "pretty-format": "^28.0.0" + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, "node_modules/@types/json-schema": { @@ -1430,9 +1505,9 @@ "integrity": "sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ==" }, "node_modules/@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "dev": true }, "node_modules/@types/qs": { @@ -1447,6 +1522,12 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, "node_modules/@types/serve-static": { "version": "1.13.8", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", @@ -1473,9 +1554,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -1488,17 +1569,17 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.5.tgz", - "integrity": "sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", + "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/type-utils": "5.30.5", - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/type-utils": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" @@ -1558,30 +1639,15 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.5.tgz", - "integrity": "sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", + "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "debug": "^4.3.4" }, "engines": { @@ -1624,13 +1690,13 @@ "dev": true }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.5.tgz", - "integrity": "sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", + "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5" + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1641,12 +1707,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.5.tgz", - "integrity": "sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", + "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -1689,25 +1756,10 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.5.tgz", - "integrity": "sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", + "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1718,13 +1770,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz", - "integrity": "sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", + "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1768,9 +1820,9 @@ "dev": true }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1782,33 +1834,20 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.5.tgz", - "integrity": "sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", + "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1821,13 +1860,28 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz", - "integrity": "sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==", + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", + "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.45.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -1851,9 +1905,9 @@ } }, "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1943,18 +1997,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1980,9 +2022,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -1999,13 +2041,10 @@ "dev": true }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/array-flatten": { "version": "1.1.1", @@ -2027,30 +2066,31 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz", + "integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==", "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/babel-jest": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.2.tgz", - "integrity": "sha512-pfmoo6sh4L/+5/G2OOfQrGJgvH7fTa1oChnuYH2G/6gA+JwDvO8PELwvwnofKBMNrQsam0Wy/Rw+QSrBNewq2Q==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", "dev": true, "dependencies": { - "@jest/transform": "^28.1.2", + "@jest/transform": "^29.3.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.1", + "babel-preset-jest": "^29.2.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" @@ -2073,9 +2113,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz", - "integrity": "sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -2084,7 +2124,7 @@ "@types/babel__traverse": "^7.0.6" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -2111,16 +2151,16 @@ } }, "node_modules/babel-preset-jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz", - "integrity": "sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^28.1.1", + "babel-plugin-jest-hoist": "^29.2.0", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -2172,9 +2212,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -2184,7 +2224,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -2217,9 +2257,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "funding": [ { @@ -2232,10 +2272,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -2328,9 +2368,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "version": "1.0.30001435", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001435.tgz", + "integrity": "sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA==", "dev": true, "funding": [ { @@ -2369,10 +2409,13 @@ } }, "node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/cipher-base": { "version": "1.0.4", @@ -2390,14 +2433,17 @@ "dev": true }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/co": { @@ -2616,12 +2662,12 @@ } }, "node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { @@ -2654,15 +2700,15 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/electron-to-chromium": { - "version": "1.4.182", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.182.tgz", - "integrity": "sha512-OpEjTADzGoXABjqobGhpy0D2YsTncAax7IkER68ycc4adaq0dqEG9//9aenKPy7BGA90bqQdLac0dPp6uMkcSg==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "engines": { "node": ">=12" @@ -2718,13 +2764,15 @@ } }, "node_modules/eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -2734,18 +2782,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -2756,8 +2807,7 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -2830,12 +2880,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/eslint/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2887,16 +2931,19 @@ "node": ">=4.0" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/eslint/node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "type-fest": "^0.20.2" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/ms": { @@ -2905,18 +2952,33 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -3033,29 +3095,29 @@ } }, "node_modules/expect": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.1.tgz", - "integrity": "sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", "dev": true, "dependencies": { - "@jest/expect-utils": "^28.1.1", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1" + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -3074,7 +3136,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -3096,9 +3158,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3145,9 +3207,9 @@ } }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "dependencies": { "bser": "2.1.1" @@ -3195,16 +3257,19 @@ } }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { @@ -3227,9 +3292,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", @@ -3299,12 +3364,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/generate-function": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", @@ -3332,13 +3391,13 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3398,18 +3457,12 @@ } }, "node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/globby": { @@ -3438,6 +3491,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3611,9 +3670,9 @@ "dev": true }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3670,6 +3729,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -3703,9 +3771,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", @@ -3770,9 +3838,9 @@ "dev": true }, "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -3783,21 +3851,21 @@ } }, "node_modules/jest": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.2.tgz", - "integrity": "sha512-Tuf05DwLeCh2cfWCQbcz9UxldoDyiR1E9Igaei5khjonKncYdc6LDfynKCEWozK0oLE3GD+xKAo2u8x/0s6GOg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", "dev": true, "dependencies": { - "@jest/core": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", "import-local": "^3.0.2", - "jest-cli": "^28.1.2" + "jest-cli": "^29.3.1" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -3809,64 +3877,64 @@ } }, "node_modules/jest-changed-files": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", - "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", "dev": true, "dependencies": { "execa": "^5.0.0", - "throat": "^6.0.1" + "p-limit": "^3.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-circus": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.2.tgz", - "integrity": "sha512-E2vdPIJG5/69EMpslFhaA46WkcrN74LI5V/cSJ59L7uS8UNoXbzTxmwhpi9XrIL3zqvMt5T0pl5k2l2u2GwBNQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", "dev": true, "dependencies": { - "@jest/environment": "^28.1.2", - "@jest/expect": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.1", - "jest-matcher-utils": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-runtime": "^28.1.2", - "jest-snapshot": "^28.1.2", - "jest-util": "^28.1.1", - "pretty-format": "^28.1.1", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "stack-utils": "^2.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-cli": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.2.tgz", - "integrity": "sha512-l6eoi5Do/IJUXAFL9qRmDiFpBeEJAnjJb1dcd9i/VWfVWbp3mJhuH50dNtX67Ali4Ecvt4eBkWb4hXhPHkAZTw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", "dev": true, "dependencies": { - "@jest/core": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "prompts": "^2.0.1", "yargs": "^17.3.1" }, @@ -3874,7 +3942,7 @@ "jest": "bin/jest.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -3885,37 +3953,37 @@ } } }, - "node_modules/jest-cli/node_modules/jest-config": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.2.tgz", - "integrity": "sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA==", + "node_modules/jest-config": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.1", - "@jest/types": "^28.1.1", - "babel-jest": "^28.1.2", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.2", - "jest-environment-node": "^28.1.2", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-runner": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^28.1.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@types/node": "*", @@ -3931,164 +3999,165 @@ } }, "node_modules/jest-diff": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz", - "integrity": "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.1" + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-each": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.1.tgz", - "integrity": "sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", "dev": true, "dependencies": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.1", - "pretty-format": "^28.1.1" + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-node": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.2.tgz", - "integrity": "sha512-oYsZz9Qw27XKmOgTtnl0jW7VplJkN2oeof+SwAwKFQacq3CLlG9u4kTGuuLWfvu3J7bVutWlrbEQMOCL/jughw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", "dev": true, "dependencies": { - "@jest/environment": "^28.1.2", - "@jest/fake-timers": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^28.1.1", - "jest-util": "^28.1.1" + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.1.tgz", - "integrity": "sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", "dev": true, "dependencies": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.1", - "jest-worker": "^28.1.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "micromatch": "^4.0.4", "walker": "^1.0.8" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, "node_modules/jest-leak-detector": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz", - "integrity": "sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", "dev": true, "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.1" + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz", - "integrity": "sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.1" + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz", - "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^28.1.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-mock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.1.tgz", - "integrity": "sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", "dev": true, "dependencies": { - "@jest/types": "^28.1.1", - "@types/node": "*" + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" @@ -4103,150 +4172,151 @@ } }, "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.1.tgz", - "integrity": "sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", + "jest-haste-map": "^29.3.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.2.tgz", - "integrity": "sha512-OXw4vbOZuyRTBi3tapWBqdyodU+T33ww5cPZORuTWkg+Y8lmsxQlVu3MWtJh6NMlKRTHQetF96yGPv01Ye7Mbg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", "dev": true, "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.2" + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.2.tgz", - "integrity": "sha512-6/k3DlAsAEr5VcptCMdhtRhOoYClZQmxnVMZvZ/quvPGRpN7OBQYPIC32tWSgOnbgqLXNs5RAniC+nkdFZpD4A==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", "dev": true, "dependencies": { - "@jest/console": "^28.1.1", - "@jest/environment": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.10.2", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.2", - "jest-haste-map": "^28.1.1", - "jest-leak-detector": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-resolve": "^28.1.1", - "jest-runtime": "^28.1.2", - "jest-util": "^28.1.1", - "jest-watcher": "^28.1.1", - "jest-worker": "^28.1.1", - "source-map-support": "0.5.13", - "throat": "^6.0.1" + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runtime": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.2.tgz", - "integrity": "sha512-i4w93OsWzLOeMXSi9epmakb2+3z0AchZtUQVF1hesBmcQQy4vtaql5YdVe9KexdJaVRyPDw8DoBR0j3lYsZVYw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", "dev": true, "dependencies": { - "@jest/environment": "^28.1.2", - "@jest/fake-timers": "^28.1.2", - "@jest/globals": "^28.1.2", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-mock": "^28.1.1", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-snapshot": "^28.1.2", - "jest-util": "^28.1.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-snapshot": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.2.tgz", - "integrity": "sha512-wzrieFttZYfLvrCVRJxX+jwML2YTArOUqFpCoSVy1QUapx+LlV9uLbV/mMEhYj4t7aMeE9aSQFHSvV/oNoDAMA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/babel__traverse": "^7.0.6", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^28.1.1", + "expect": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.1", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.1", - "jest-matcher-utils": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "natural-compare": "^1.4.0", - "pretty-format": "^28.1.1", + "pretty-format": "^29.3.1", "semver": "^7.3.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4259,12 +4329,12 @@ } }, "node_modules/jest-util": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz", - "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "dependencies": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -4272,24 +4342,24 @@ "picomatch": "^2.2.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-validate": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.1.tgz", - "integrity": "sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", "dev": true, "dependencies": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", + "jest-get-type": "^29.2.0", "leven": "^3.1.0", - "pretty-format": "^28.1.1" + "pretty-format": "^29.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-validate/node_modules/camelcase": { @@ -4305,36 +4375,37 @@ } }, "node_modules/jest-watcher": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz", - "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", "dev": true, "dependencies": { - "@jest/test-result": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.1", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", "string-length": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-worker": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.1.tgz", - "integrity": "sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "dependencies": { "@types/node": "*", + "jest-util": "^29.3.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-worker/node_modules/supports-color": { @@ -4352,6 +4423,16 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4359,13 +4440,12 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -4451,15 +4531,18 @@ "dev": true }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash.memoize": { @@ -4521,15 +4604,15 @@ } }, "node_modules/maxmind": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/maxmind/-/maxmind-4.3.6.tgz", - "integrity": "sha512-CwnEZqJX0T6b2rWrc0/V3n9hL/hWAMEn7fY09077YJUHiHx7cn/esA2ZIz8BpYLSJUf7cGVel0oUJa9jMwyQpg==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/maxmind/-/maxmind-4.3.8.tgz", + "integrity": "sha512-HrfxEu5yPBPtTy/OT+W5bPQwEfLUX0EHqe2EbJiB47xQMumHqXvSP7PAwzV8Z++NRCmQwy4moQrTSt0+dH+Jmg==", "dependencies": { "mmdb-lib": "2.0.2", - "tiny-lru": "8.0.2" + "tiny-lru": "9.0.3" }, "engines": { - "node": ">=10", + "node": ">=12", "npm": ">=6" } }, @@ -4546,7 +4629,7 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "engines": { "node": ">= 0.6" } @@ -4717,6 +4800,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -4732,9 +4821,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "node_modules/node-worker-threads-pool": { @@ -4764,9 +4853,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4824,30 +4913,33 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { @@ -4983,6 +5075,58 @@ "node": ">=8" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4993,9 +5137,9 @@ } }, "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", + "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -5008,18 +5152,17 @@ } }, "node_modules/pretty-format": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", - "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", + "@jest/schemas": "^29.0.0", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { @@ -5059,6 +5202,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -5074,9 +5222,9 @@ } }, "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dependencies": { "side-channel": "^1.0.4" }, @@ -5524,9 +5672,9 @@ } }, "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" @@ -5632,19 +5780,6 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -5657,22 +5792,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -5693,16 +5812,10 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, "node_modules/tiny-lru": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-8.0.2.tgz", - "integrity": "sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-9.0.3.tgz", + "integrity": "sha512-/i9GruRjXsnDgehxvy6iZ4AFNVxngEFbwzirhdulomMNPGPVV3ECMZOWSw0w4sRMZ9Al9m4jy08GPvRxRUGYlw==", "engines": { "node": ">=6" } @@ -5743,14 +5856,14 @@ } }, "node_modules/ts-jest": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.5.tgz", - "integrity": "sha512-Sx9FyP9pCY7pUzQpy4FgRZf2bhHY3za576HMKJFs+OnQ9jS96Du5vNsDKkyedQkik+sEabbKAnCliv9BEsHZgQ==", + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz", + "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==", "dev": true, "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", + "jest-util": "^29.0.0", "json5": "^2.2.1", "lodash.memoize": "4.x", "make-error": "1.x", @@ -5761,18 +5874,22 @@ "ts-jest": "cli.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "babel-jest": "^28.0.0", - "jest": "^28.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", "typescript": ">=4.3" }, "peerDependenciesMeta": { "@babel/core": { "optional": true }, + "@jest/types": { + "optional": true + }, "babel-jest": { "optional": true }, @@ -5797,9 +5914,9 @@ } }, "node_modules/ts-node": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz", - "integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -5845,6 +5962,21 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5867,9 +5999,9 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" @@ -5916,9 +6048,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "funding": [ { @@ -5963,12 +6095,6 @@ "node": ">= 0.4.0" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -6070,22 +6196,22 @@ "dev": true }, "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -6117,27 +6243,27 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { "node": ">=12" @@ -6151,6 +6277,18 @@ "engines": { "node": ">=6" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { @@ -6174,27 +6312,27 @@ } }, "@babel/compat-data": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", "dev": true }, "@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -6220,12 +6358,12 @@ } }, "@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dev": true, "requires": { - "@babel/types": "^7.18.7", + "@babel/types": "^7.20.5", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -6244,31 +6382,31 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.6", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" } }, "@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true }, "@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { @@ -6290,34 +6428,34 @@ } }, "@babel/helper-module-transforms": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", - "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" } }, "@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.20.2" } }, "@babel/helper-split-export-declaration": { @@ -6329,10 +6467,16 @@ "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { @@ -6342,14 +6486,14 @@ "dev": true }, "@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" } }, "@babel/highlight": { @@ -6422,9 +6566,9 @@ } }, "@babel/parser": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", - "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -6472,6 +6616,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -6536,39 +6689,39 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", - "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -6582,12 +6735,6 @@ "ms": "2.1.2" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6597,12 +6744,13 @@ } }, "@babel/types": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", - "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -6634,14 +6782,14 @@ } }, "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", + "espree": "^9.4.0", "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -6650,12 +6798,6 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -6665,13 +6807,47 @@ "ms": "2.1.2" } }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "requires": { - "argparse": "^2.0.1" + "type-fest": "^0.20.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" } }, "ms": { @@ -6682,33 +6858,11 @@ } } }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true }, "@humanwhocodes/object-schema": { "version": "1.2.1", @@ -6729,6 +6883,62 @@ "resolve-from": "^5.0.0" }, "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -6744,156 +6954,124 @@ "dev": true }, "@jest/console": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz", - "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", "dev": true, "requires": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0" } }, "@jest/core": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.2.tgz", - "integrity": "sha512-Xo4E+Sb/nZODMGOPt2G3cMmCBqL4/W2Ijwr7/mrXlq4jdJwcFQ/9KrrJZT2adQRk2otVBXXOz1GRQ4Z5iOgvRQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", "dev": true, "requires": { - "@jest/console": "^28.1.1", - "@jest/reporters": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.0.2", - "jest-config": "^28.1.2", - "jest-haste-map": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-resolve-dependencies": "^28.1.2", - "jest-runner": "^28.1.2", - "jest-runtime": "^28.1.2", - "jest-snapshot": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", - "jest-watcher": "^28.1.1", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", "micromatch": "^4.0.4", - "pretty-format": "^28.1.1", - "rimraf": "^3.0.0", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "jest-config": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.2.tgz", - "integrity": "sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.1", - "@jest/types": "^28.1.1", - "babel-jest": "^28.1.2", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.2", - "jest-environment-node": "^28.1.2", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-runner": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - } } }, "@jest/environment": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.2.tgz", - "integrity": "sha512-I0CR1RUMmOzd0tRpz10oUfaChBWs+/Hrvn5xYhMEF/ZqrDaaeHwS8yDBqEWCrEnkH2g+WE/6g90oBv3nKpcm8Q==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", "dev": true, "requires": { - "@jest/fake-timers": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^28.1.1" + "jest-mock": "^29.3.1" } }, "@jest/expect": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.2.tgz", - "integrity": "sha512-HBzyZBeFBiOelNbBKN0pilWbbrGvwDUwAqMC46NVJmWm8AVkuE58NbG1s7DR4cxFt4U5cVLxofAoHxgvC5MyOw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", "dev": true, "requires": { - "expect": "^28.1.1", - "jest-snapshot": "^28.1.2" + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" } }, "@jest/expect-utils": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.1.tgz", - "integrity": "sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", "dev": true, "requires": { - "jest-get-type": "^28.0.2" + "jest-get-type": "^29.2.0" } }, "@jest/fake-timers": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.2.tgz", - "integrity": "sha512-xSYEI7Y0D5FbZN2LsCUj/EKRR1zfQYmGuAUVh6xTqhx7V5JhjgMcK5Pa0iR6WIk0GXiHDe0Ke4A+yERKE9saqg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", "dev": true, "requires": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@sinonjs/fake-timers": "^9.1.2", "@types/node": "*", - "jest-message-util": "^28.1.1", - "jest-mock": "^28.1.1", - "jest-util": "^28.1.1" + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" } }, "@jest/globals": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.2.tgz", - "integrity": "sha512-cz0lkJVDOtDaYhvT3Fv2U1B6FtBnV+OpEyJCzTHM1fdoTsU4QNLAt/H4RkiwEUU+dL4g/MFsoTuHeT2pvbo4Hg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", "dev": true, "requires": { - "@jest/environment": "^28.1.2", - "@jest/expect": "^28.1.2", - "@jest/types": "^28.1.1" + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" } }, "@jest/reporters": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.2.tgz", - "integrity": "sha512-/whGLhiwAqeCTmQEouSigUZJPVl7sW8V26EiboImL+UyXznnr1a03/YZ2BX8OlFw0n+Zlwu+EZAITZtaeRTxyA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.1", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", - "@jridgewell/trace-mapping": "^0.3.13", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -6905,90 +7083,97 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1", - "jest-worker": "^28.1.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", "v8-to-istanbul": "^9.0.1" } }, "@jest/schemas": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", - "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", "dev": true, "requires": { - "@sinclair/typebox": "^0.23.3" + "@sinclair/typebox": "^0.24.1" } }, "@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.13", + "@jridgewell/trace-mapping": "^0.3.15", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz", - "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", "dev": true, "requires": { - "@jest/console": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz", - "integrity": "sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", "dev": true, "requires": { - "@jest/test-result": "^28.1.1", + "@jest/test-result": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", + "jest-haste-map": "^29.3.1", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.2.tgz", - "integrity": "sha512-3o+lKF6iweLeJFHBlMJysdaPbpoMmtbHEFsjzSv37HIq/wWt5ijTeO2Yf7MO5yyczCopD507cNwNLeX8Y/CuIg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^28.1.1", - "@jridgewell/trace-mapping": "^0.3.13", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.1", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + } } }, "@jest/types": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz", - "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "requires": { - "@jest/schemas": "^28.0.2", + "@jest/schemas": "^29.0.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -7025,13 +7210,13 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@mempool/electrum-client": { @@ -7066,15 +7251,15 @@ } }, "@sinclair/typebox": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", - "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", "dev": true }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -7114,9 +7299,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -7146,9 +7331,9 @@ } }, "@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -7189,9 +7374,9 @@ "dev": true }, "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "requires": { "@types/body-parser": "*", @@ -7245,13 +7430,13 @@ } }, "@types/jest": { - "version": "28.1.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.4.tgz", - "integrity": "sha512-telv6G5N7zRJiLcI3Rs3o+ipZ28EnE+7EvF0pSrt2pZOMnAVI/f+6/LucDxOvcBcTeTL3JMF744BbVQAVBUQRA==", + "version": "29.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.3.tgz", + "integrity": "sha512-6XwoEbmatfyoCjWRX7z0fKMmgYKe9+/HrviJ5k0X/tjJWHGAezZOfYaxqQKuzG/TvQyr+ktjm4jgbk0s4/oF2w==", "dev": true, "requires": { - "jest-matcher-utils": "^28.0.0", - "pretty-format": "^28.0.0" + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, "@types/json-schema": { @@ -7272,9 +7457,9 @@ "integrity": "sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ==" }, "@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "dev": true }, "@types/qs": { @@ -7289,6 +7474,12 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, "@types/serve-static": { "version": "1.13.8", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", @@ -7315,9 +7506,9 @@ } }, "@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.15.tgz", + "integrity": "sha512-ZHc4W2dnEQPfhn06TBEdWaiUHEZAocYaiVMfwOipY5jcJt/251wVrKCBWBetGZWO5CF8tdb7L3DmdxVlZ2BOIg==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -7330,17 +7521,17 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.5.tgz", - "integrity": "sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz", + "integrity": "sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/type-utils": "5.30.5", - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/type-utils": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" @@ -7369,27 +7560,18 @@ "requires": { "lru-cache": "^6.0.0" } - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/parser": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.5.tgz", - "integrity": "sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.45.0.tgz", + "integrity": "sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "debug": "^4.3.4" }, "dependencies": { @@ -7411,22 +7593,23 @@ } }, "@typescript-eslint/scope-manager": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.5.tgz", - "integrity": "sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz", + "integrity": "sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5" + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0" } }, "@typescript-eslint/type-utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.5.tgz", - "integrity": "sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz", + "integrity": "sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/typescript-estree": "5.45.0", + "@typescript-eslint/utils": "5.45.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -7445,32 +7628,23 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/types": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.5.tgz", - "integrity": "sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.45.0.tgz", + "integrity": "sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz", - "integrity": "sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz", + "integrity": "sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/visitor-keys": "5.45.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7494,46 +7668,50 @@ "dev": true }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" } - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, "@typescript-eslint/utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.5.tgz", - "integrity": "sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.45.0.tgz", + "integrity": "sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.45.0", + "@typescript-eslint/types": "5.45.0", + "@typescript-eslint/typescript-estree": "5.45.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "@typescript-eslint/visitor-keys": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz", - "integrity": "sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==", + "version": "5.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz", + "integrity": "sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", + "@typescript-eslint/types": "5.45.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -7547,9 +7725,9 @@ } }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true }, "acorn-jsx": { @@ -7607,14 +7785,6 @@ "dev": true, "requires": { "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } } }, "ansi-regex": { @@ -7633,9 +7803,9 @@ } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -7649,13 +7819,10 @@ "dev": true }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "array-flatten": { "version": "1.1.1", @@ -7674,24 +7841,25 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz", + "integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "babel-jest": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.2.tgz", - "integrity": "sha512-pfmoo6sh4L/+5/G2OOfQrGJgvH7fTa1oChnuYH2G/6gA+JwDvO8PELwvwnofKBMNrQsam0Wy/Rw+QSrBNewq2Q==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", "dev": true, "requires": { - "@jest/transform": "^28.1.2", + "@jest/transform": "^29.3.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.1", + "babel-preset-jest": "^29.2.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -7711,9 +7879,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz", - "integrity": "sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -7743,12 +7911,12 @@ } }, "babel-preset-jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz", - "integrity": "sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^28.1.1", + "babel-plugin-jest-hoist": "^29.2.0", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -7792,9 +7960,9 @@ } }, "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -7804,7 +7972,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -7830,15 +7998,15 @@ } }, "browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" } }, "bs-logger": { @@ -7910,9 +8078,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "version": "1.0.30001435", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001435.tgz", + "integrity": "sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA==", "dev": true }, "chalk": { @@ -7932,9 +8100,9 @@ "dev": true }, "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", "dev": true }, "cipher-base": { @@ -7953,13 +8121,13 @@ "dev": true }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, @@ -8137,9 +8305,9 @@ "dev": true }, "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", "dev": true }, "dir-glob": { @@ -8166,15 +8334,15 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.4.182", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.182.tgz", - "integrity": "sha512-OpEjTADzGoXABjqobGhpy0D2YsTncAax7IkER68ycc4adaq0dqEG9//9aenKPy7BGA90bqQdLac0dPp6uMkcSg==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true }, "emoji-regex": { @@ -8215,13 +8383,15 @@ "dev": true }, "eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -8231,18 +8401,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -8253,16 +8426,9 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -8294,13 +8460,13 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "requires": { - "argparse": "^2.0.1" + "type-fest": "^0.20.2" } }, "ms": { @@ -8308,6 +8474,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true } } }, @@ -8352,12 +8524,12 @@ "dev": true }, "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } @@ -8443,26 +8615,26 @@ "dev": true }, "expect": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.1.tgz", - "integrity": "sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", "dev": true, "requires": { - "@jest/expect-utils": "^28.1.1", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1" + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" } }, "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -8481,7 +8653,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -8500,9 +8672,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -8545,9 +8717,9 @@ } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" @@ -8586,12 +8758,12 @@ } }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, @@ -8612,9 +8784,9 @@ "dev": true }, "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "form-data": { "version": "4.0.0", @@ -8654,12 +8826,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "generate-function": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", @@ -8681,13 +8847,13 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "get-package-type": { @@ -8726,13 +8892,10 @@ } }, "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true }, "globby": { "version": "11.1.0", @@ -8754,6 +8917,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -8879,9 +9048,9 @@ "dev": true }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" @@ -8920,6 +9089,12 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -8944,9 +9119,9 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { "@babel/core": "^7.12.3", @@ -8996,9 +9171,9 @@ } }, "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -9006,363 +9181,363 @@ } }, "jest": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.2.tgz", - "integrity": "sha512-Tuf05DwLeCh2cfWCQbcz9UxldoDyiR1E9Igaei5khjonKncYdc6LDfynKCEWozK0oLE3GD+xKAo2u8x/0s6GOg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", "dev": true, "requires": { - "@jest/core": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", "import-local": "^3.0.2", - "jest-cli": "^28.1.2" + "jest-cli": "^29.3.1" } }, "jest-changed-files": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", - "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", "dev": true, "requires": { "execa": "^5.0.0", - "throat": "^6.0.1" + "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.2.tgz", - "integrity": "sha512-E2vdPIJG5/69EMpslFhaA46WkcrN74LI5V/cSJ59L7uS8UNoXbzTxmwhpi9XrIL3zqvMt5T0pl5k2l2u2GwBNQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", "dev": true, "requires": { - "@jest/environment": "^28.1.2", - "@jest/expect": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.1", - "jest-matcher-utils": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-runtime": "^28.1.2", - "jest-snapshot": "^28.1.2", - "jest-util": "^28.1.1", - "pretty-format": "^28.1.1", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "stack-utils": "^2.0.3" } }, "jest-cli": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.2.tgz", - "integrity": "sha512-l6eoi5Do/IJUXAFL9qRmDiFpBeEJAnjJb1dcd9i/VWfVWbp3mJhuH50dNtX67Ali4Ecvt4eBkWb4hXhPHkAZTw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", "dev": true, "requires": { - "@jest/core": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "prompts": "^2.0.1", "yargs": "^17.3.1" - }, - "dependencies": { - "jest-config": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.2.tgz", - "integrity": "sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.1", - "@jest/types": "^28.1.1", - "babel-jest": "^28.1.2", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.2", - "jest-environment-node": "^28.1.2", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-runner": "^28.1.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - } + } + }, + "jest-config": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" } }, "jest-diff": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz", - "integrity": "sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.1" + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" } }, "jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.1.tgz", - "integrity": "sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", "dev": true, "requires": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.1", - "pretty-format": "^28.1.1" + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" } }, "jest-environment-node": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.2.tgz", - "integrity": "sha512-oYsZz9Qw27XKmOgTtnl0jW7VplJkN2oeof+SwAwKFQacq3CLlG9u4kTGuuLWfvu3J7bVutWlrbEQMOCL/jughw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", "dev": true, "requires": { - "@jest/environment": "^28.1.2", - "@jest/fake-timers": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", - "jest-mock": "^28.1.1", - "jest-util": "^28.1.1" + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" } }, "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", "dev": true }, "jest-haste-map": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.1.tgz", - "integrity": "sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", "dev": true, "requires": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.1", - "jest-worker": "^28.1.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz", - "integrity": "sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", "dev": true, "requires": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.1" + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" } }, "jest-matcher-utils": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz", - "integrity": "sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.1" + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" } }, "jest-message-util": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz", - "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^28.1.1", + "pretty-format": "^29.3.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.1.tgz", - "integrity": "sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", "dev": true, "requires": { - "@jest/types": "^28.1.1", - "@types/node": "*" + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" } }, "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "requires": {} }, "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", "dev": true }, "jest-resolve": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.1.tgz", - "integrity": "sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", + "jest-haste-map": "^29.3.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.1", - "jest-validate": "^28.1.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" } }, "jest-resolve-dependencies": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.2.tgz", - "integrity": "sha512-OXw4vbOZuyRTBi3tapWBqdyodU+T33ww5cPZORuTWkg+Y8lmsxQlVu3MWtJh6NMlKRTHQetF96yGPv01Ye7Mbg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", "dev": true, "requires": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.2" + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" } }, "jest-runner": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.2.tgz", - "integrity": "sha512-6/k3DlAsAEr5VcptCMdhtRhOoYClZQmxnVMZvZ/quvPGRpN7OBQYPIC32tWSgOnbgqLXNs5RAniC+nkdFZpD4A==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", "dev": true, "requires": { - "@jest/console": "^28.1.1", - "@jest/environment": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.10.2", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.2", - "jest-haste-map": "^28.1.1", - "jest-leak-detector": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-resolve": "^28.1.1", - "jest-runtime": "^28.1.2", - "jest-util": "^28.1.1", - "jest-watcher": "^28.1.1", - "jest-worker": "^28.1.1", - "source-map-support": "0.5.13", - "throat": "^6.0.1" + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" } }, "jest-runtime": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.2.tgz", - "integrity": "sha512-i4w93OsWzLOeMXSi9epmakb2+3z0AchZtUQVF1hesBmcQQy4vtaql5YdVe9KexdJaVRyPDw8DoBR0j3lYsZVYw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", "dev": true, "requires": { - "@jest/environment": "^28.1.2", - "@jest/fake-timers": "^28.1.2", - "@jest/globals": "^28.1.2", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-mock": "^28.1.1", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.1", - "jest-snapshot": "^28.1.2", - "jest-util": "^28.1.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "jest-snapshot": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.2.tgz", - "integrity": "sha512-wzrieFttZYfLvrCVRJxX+jwML2YTArOUqFpCoSVy1QUapx+LlV9uLbV/mMEhYj4t7aMeE9aSQFHSvV/oNoDAMA==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", "dev": true, "requires": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.1", - "@jest/transform": "^28.1.2", - "@jest/types": "^28.1.1", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", "@types/babel__traverse": "^7.0.6", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^28.1.1", + "expect": "^29.3.1", "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.1", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.1", - "jest-matcher-utils": "^28.1.1", - "jest-message-util": "^28.1.1", - "jest-util": "^28.1.1", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", "natural-compare": "^1.4.0", - "pretty-format": "^28.1.1", + "pretty-format": "^29.3.1", "semver": "^7.3.5" }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -9371,12 +9546,12 @@ } }, "jest-util": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz", - "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "requires": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -9385,17 +9560,17 @@ } }, "jest-validate": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.1.tgz", - "integrity": "sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", "dev": true, "requires": { - "@jest/types": "^28.1.1", + "@jest/types": "^29.3.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", + "jest-get-type": "^29.2.0", "leven": "^3.1.0", - "pretty-format": "^28.1.1" + "pretty-format": "^29.3.1" }, "dependencies": { "camelcase": { @@ -9407,28 +9582,29 @@ } }, "jest-watcher": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz", - "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", "dev": true, "requires": { - "@jest/test-result": "^28.1.1", - "@jest/types": "^28.1.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.1", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", "string-length": "^4.0.1" } }, "jest-worker": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.1.tgz", - "integrity": "sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "requires": { "@types/node": "*", + "jest-util": "^29.3.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -9444,6 +9620,12 @@ } } }, + "js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9451,13 +9633,12 @@ "dev": true }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsesc": { @@ -9519,12 +9700,12 @@ "dev": true }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" } }, "lodash.memoize": { @@ -9577,12 +9758,12 @@ } }, "maxmind": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/maxmind/-/maxmind-4.3.6.tgz", - "integrity": "sha512-CwnEZqJX0T6b2rWrc0/V3n9hL/hWAMEn7fY09077YJUHiHx7cn/esA2ZIz8BpYLSJUf7cGVel0oUJa9jMwyQpg==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/maxmind/-/maxmind-4.3.8.tgz", + "integrity": "sha512-HrfxEu5yPBPtTy/OT+W5bPQwEfLUX0EHqe2EbJiB47xQMumHqXvSP7PAwzV8Z++NRCmQwy4moQrTSt0+dH+Jmg==", "requires": { "mmdb-lib": "2.0.2", - "tiny-lru": "8.0.2" + "tiny-lru": "9.0.3" } }, "md5.js": { @@ -9598,7 +9779,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "merge-descriptors": { "version": "1.0.1", @@ -9730,6 +9911,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -9742,9 +9929,9 @@ "dev": true }, "node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "node-worker-threads-pool": { @@ -9768,9 +9955,9 @@ } }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "on-finished": { "version": "2.4.1", @@ -9813,21 +10000,21 @@ } }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" } }, "p-try": { @@ -9922,6 +10109,45 @@ "dev": true, "requires": { "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } } }, "prelude-ls": { @@ -9931,19 +10157,18 @@ "dev": true }, "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", + "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", "dev": true }, "pretty-format": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz", - "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", "dev": true, "requires": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", + "@jest/schemas": "^29.0.0", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -9975,6 +10200,11 @@ "ipaddr.js": "1.9.1" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -9987,9 +10217,9 @@ "dev": true }, "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "requires": { "side-channel": "^1.0.4" } @@ -10300,9 +10530,9 @@ "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==" }, "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -10378,32 +10608,12 @@ "has-flag": "^4.0.0" } }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -10421,16 +10631,10 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, "tiny-lru": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-8.0.2.tgz", - "integrity": "sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==" + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-9.0.3.tgz", + "integrity": "sha512-/i9GruRjXsnDgehxvy6iZ4AFNVxngEFbwzirhdulomMNPGPVV3ECMZOWSw0w4sRMZ9Al9m4jy08GPvRxRUGYlw==" }, "tmpl": { "version": "1.0.5", @@ -10459,14 +10663,14 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "ts-jest": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.5.tgz", - "integrity": "sha512-Sx9FyP9pCY7pUzQpy4FgRZf2bhHY3za576HMKJFs+OnQ9jS96Du5vNsDKkyedQkik+sEabbKAnCliv9BEsHZgQ==", + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz", + "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==", "dev": true, "requires": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", + "jest-util": "^29.0.0", "json5": "^2.2.1", "lodash.memoize": "4.x", "make-error": "1.x", @@ -10486,9 +10690,9 @@ } }, "ts-node": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz", - "integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", @@ -10512,6 +10716,15 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10528,9 +10741,9 @@ "dev": true }, "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, "type-is": { @@ -10558,9 +10771,9 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -10586,12 +10799,6 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -10672,9 +10879,9 @@ "dev": true }, "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -10682,9 +10889,9 @@ } }, "ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "requires": {} }, "y18n": { @@ -10699,24 +10906,24 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true }, "yn": { @@ -10724,6 +10931,12 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/backend/package.json b/backend/package.json index 3cd05e8ab..e4868ea91 100644 --- a/backend/package.json +++ b/backend/package.json @@ -34,35 +34,35 @@ "prettier": "./node_modules/.bin/prettier --write \"src/**/*.{js,ts}\"" }, "dependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.20.5", "@mempool/electrum-client": "^1.1.7", "@types/node": "^16.11.41", - "axios": "~0.27.2", - "bitcoinjs-lib": "6.0.2", - "crypto-js": "^4.0.0", - "express": "^4.18.0", - "maxmind": "^4.3.6", - "mysql2": "2.3.3", - "node-worker-threads-pool": "^1.5.1", + "axios": "~1.2.0", + "bitcoinjs-lib": "~6.0.2", + "crypto-js": "~4.1.1", + "express": "~4.18.2", + "maxmind": "~4.3.8", + "mysql2": "~2.3.3", + "node-worker-threads-pool": "~1.5.1", "socks-proxy-agent": "~7.0.0", "typescript": "~4.7.4", - "ws": "~8.8.0" + "ws": "~8.11.0" }, "devDependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.20.5", "@babel/code-frame": "^7.18.6", "@types/compression": "^1.7.2", "@types/crypto-js": "^4.1.1", - "@types/express": "^4.17.13", - "@types/jest": "^28.1.4", + "@types/express": "^4.17.14", + "@types/jest": "^29.2.3", "@types/ws": "~8.5.3", - "@typescript-eslint/eslint-plugin": "^5.30.5", - "@typescript-eslint/parser": "^5.30.5", - "eslint": "^8.19.0", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", - "jest": "^28.1.2", - "prettier": "^2.7.1", - "ts-jest": "^28.0.5", - "ts-node": "^10.8.2" + "jest": "^29.3.1", + "prettier": "^2.8.0", + "ts-jest": "^29.0.3", + "ts-node": "^10.9.1" } } From 59f1b031c8958eb20cb984e5d4b0e789732dd13c Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 1 Dec 2022 14:41:37 +0900 Subject: [PATCH 0129/1466] Run schema update synchronously --- backend/src/api/database-migration.ts | 94 +++++++++++++-------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 8693e53cf..6e0e95699 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -107,22 +107,22 @@ class DatabaseMigration { await this.$executeQuery(this.getCreateStatisticsQuery(), await this.$checkIfTableExists('statistics')); if (databaseSchemaVersion < 2 && this.statisticsAddedIndexed === false) { await this.$executeQuery(`CREATE INDEX added ON statistics (added);`); - this.updateToSchemaVersion(2); + await this.updateToSchemaVersion(2); } if (databaseSchemaVersion < 3) { await this.$executeQuery(this.getCreatePoolsTableQuery(), await this.$checkIfTableExists('pools')); - this.updateToSchemaVersion(3); + await this.updateToSchemaVersion(3); } if (databaseSchemaVersion < 4) { await this.$executeQuery('DROP table IF EXISTS blocks;'); await this.$executeQuery(this.getCreateBlocksTableQuery(), await this.$checkIfTableExists('blocks')); - this.updateToSchemaVersion(4); + await this.updateToSchemaVersion(4); } if (databaseSchemaVersion < 5 && isBitcoin === true) { this.uniqueLog(logger.notice, this.blocksTruncatedMessage); await this.$executeQuery('TRUNCATE blocks;'); // Need to re-index await this.$executeQuery('ALTER TABLE blocks ADD `reward` double unsigned NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(5); + await this.updateToSchemaVersion(5); } if (databaseSchemaVersion < 6 && isBitcoin === true) { @@ -145,13 +145,13 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE blocks ADD `nonce` bigint unsigned NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks ADD `merkle_root` varchar(65) NOT NULL DEFAULT ""'); await this.$executeQuery('ALTER TABLE blocks ADD `previous_block_hash` varchar(65) NULL'); - this.updateToSchemaVersion(6); + await this.updateToSchemaVersion(6); } if (databaseSchemaVersion < 7 && isBitcoin === true) { await this.$executeQuery('DROP table IF EXISTS hashrates;'); await this.$executeQuery(this.getCreateDailyStatsTableQuery(), await this.$checkIfTableExists('hashrates')); - this.updateToSchemaVersion(7); + await this.updateToSchemaVersion(7); } if (databaseSchemaVersion < 8 && isBitcoin === true) { @@ -161,7 +161,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `hashrates` ADD `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST'); await this.$executeQuery('ALTER TABLE `hashrates` ADD `share` float NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `hashrates` ADD `type` enum("daily", "weekly") DEFAULT "daily"'); - this.updateToSchemaVersion(8); + await this.updateToSchemaVersion(8); } if (databaseSchemaVersion < 9 && isBitcoin === true) { @@ -169,12 +169,12 @@ class DatabaseMigration { await this.$executeQuery('TRUNCATE hashrates;'); // Need to re-index await this.$executeQuery('ALTER TABLE `state` CHANGE `name` `name` varchar(100)'); await this.$executeQuery('ALTER TABLE `hashrates` ADD UNIQUE `hashrate_timestamp_pool_id` (`hashrate_timestamp`, `pool_id`)'); - this.updateToSchemaVersion(9); + await this.updateToSchemaVersion(9); } if (databaseSchemaVersion < 10 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `blocks` ADD INDEX `blockTimestamp` (`blockTimestamp`)'); - this.updateToSchemaVersion(10); + await this.updateToSchemaVersion(10); } if (databaseSchemaVersion < 11 && isBitcoin === true) { @@ -187,13 +187,13 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE blocks MODIFY `reward` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `median_fee` INT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `fees` INT UNSIGNED NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(11); + await this.updateToSchemaVersion(11); } if (databaseSchemaVersion < 12 && isBitcoin === true) { // No need to re-index because the new data type can contain larger values await this.$executeQuery('ALTER TABLE blocks MODIFY `fees` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(12); + await this.updateToSchemaVersion(12); } if (databaseSchemaVersion < 13 && isBitcoin === true) { @@ -201,7 +201,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE blocks MODIFY `median_fee` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `avg_fee` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE blocks MODIFY `avg_fee_rate` BIGINT UNSIGNED NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(13); + await this.updateToSchemaVersion(13); } if (databaseSchemaVersion < 14 && isBitcoin === true) { @@ -209,45 +209,45 @@ class DatabaseMigration { await this.$executeQuery('TRUNCATE hashrates;'); // Need to re-index await this.$executeQuery('ALTER TABLE `hashrates` DROP FOREIGN KEY `hashrates_ibfk_1`'); await this.$executeQuery('ALTER TABLE `hashrates` MODIFY `pool_id` SMALLINT UNSIGNED NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(14); + await this.updateToSchemaVersion(14); } if (databaseSchemaVersion < 16 && isBitcoin === true) { this.uniqueLog(logger.notice, this.hashratesTruncatedMessage); await this.$executeQuery('TRUNCATE hashrates;'); // Need to re-index because we changed timestamps - this.updateToSchemaVersion(16); + await this.updateToSchemaVersion(16); } if (databaseSchemaVersion < 17 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `pools` ADD `slug` CHAR(50) NULL'); - this.updateToSchemaVersion(17); + await this.updateToSchemaVersion(17); } if (databaseSchemaVersion < 18 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `blocks` ADD INDEX `hash` (`hash`);'); - this.updateToSchemaVersion(18); + await this.updateToSchemaVersion(18); } if (databaseSchemaVersion < 19) { await this.$executeQuery(this.getCreateRatesTableQuery(), await this.$checkIfTableExists('rates')); - this.updateToSchemaVersion(19); + await this.updateToSchemaVersion(19); } if (databaseSchemaVersion < 20 && isBitcoin === true) { await this.$executeQuery(this.getCreateBlocksSummariesTableQuery(), await this.$checkIfTableExists('blocks_summaries')); - this.updateToSchemaVersion(20); + await this.updateToSchemaVersion(20); } if (databaseSchemaVersion < 21) { await this.$executeQuery('DROP TABLE IF EXISTS `rates`'); await this.$executeQuery(this.getCreatePricesTableQuery(), await this.$checkIfTableExists('prices')); - this.updateToSchemaVersion(21); + await this.updateToSchemaVersion(21); } if (databaseSchemaVersion < 22 && isBitcoin === true) { await this.$executeQuery('DROP TABLE IF EXISTS `difficulty_adjustments`'); await this.$executeQuery(this.getCreateDifficultyAdjustmentsTableQuery(), await this.$checkIfTableExists('difficulty_adjustments')); - this.updateToSchemaVersion(22); + await this.updateToSchemaVersion(22); } if (databaseSchemaVersion < 23) { @@ -260,13 +260,13 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `prices` ADD `CHF` float DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `prices` ADD `AUD` float DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `prices` ADD `JPY` float DEFAULT "0"'); - this.updateToSchemaVersion(23); + await this.updateToSchemaVersion(23); } if (databaseSchemaVersion < 24 && isBitcoin == true) { await this.$executeQuery('DROP TABLE IF EXISTS `blocks_audits`'); await this.$executeQuery(this.getCreateBlocksAuditsTableQuery(), await this.$checkIfTableExists('blocks_audits')); - this.updateToSchemaVersion(24); + await this.updateToSchemaVersion(24); } if (databaseSchemaVersion < 25 && isBitcoin === true) { @@ -274,7 +274,7 @@ class DatabaseMigration { await this.$executeQuery(this.getCreateNodesQuery(), await this.$checkIfTableExists('nodes')); await this.$executeQuery(this.getCreateChannelsQuery(), await this.$checkIfTableExists('channels')); await this.$executeQuery(this.getCreateNodesStatsQuery(), await this.$checkIfTableExists('node_stats')); - this.updateToSchemaVersion(25); + await this.updateToSchemaVersion(25); } if (databaseSchemaVersion < 26 && isBitcoin === true) { @@ -285,7 +285,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `lightning_stats` ADD tor_nodes int(11) NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD clearnet_nodes int(11) NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD unannounced_nodes int(11) NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(26); + await this.updateToSchemaVersion(26); } if (databaseSchemaVersion < 27 && isBitcoin === true) { @@ -295,7 +295,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `lightning_stats` ADD med_capacity bigint(20) unsigned NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD med_fee_rate int(11) unsigned NOT NULL DEFAULT "0"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD med_base_fee_mtokens bigint(20) unsigned NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(27); + await this.updateToSchemaVersion(27); } if (databaseSchemaVersion < 28 && isBitcoin === true) { @@ -305,7 +305,7 @@ class DatabaseMigration { await this.$executeQuery(`TRUNCATE lightning_stats`); await this.$executeQuery(`TRUNCATE node_stats`); await this.$executeQuery(`ALTER TABLE lightning_stats MODIFY added DATE`); - this.updateToSchemaVersion(28); + await this.updateToSchemaVersion(28); } if (databaseSchemaVersion < 29 && isBitcoin === true) { @@ -317,50 +317,50 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `nodes` ADD subdivision_id int(11) unsigned NULL DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD longitude double NULL DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD latitude double NULL DEFAULT NULL'); - this.updateToSchemaVersion(29); + await this.updateToSchemaVersion(29); } if (databaseSchemaVersion < 30 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `geo_names` CHANGE `type` `type` enum("city","country","division","continent","as_organization") NOT NULL'); - this.updateToSchemaVersion(30); + await this.updateToSchemaVersion(30); } if (databaseSchemaVersion < 31 && isBitcoin == true) { // Link blocks to prices await this.$executeQuery('ALTER TABLE `prices` ADD `id` int NULL AUTO_INCREMENT UNIQUE'); await this.$executeQuery('DROP TABLE IF EXISTS `blocks_prices`'); await this.$executeQuery(this.getCreateBlocksPricesTableQuery(), await this.$checkIfTableExists('blocks_prices')); - this.updateToSchemaVersion(31); + await this.updateToSchemaVersion(31); } if (databaseSchemaVersion < 32 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `blocks_summaries` ADD `template` JSON DEFAULT "[]"'); - this.updateToSchemaVersion(32); + await this.updateToSchemaVersion(32); } if (databaseSchemaVersion < 33 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `geo_names` CHANGE `type` `type` enum("city","country","division","continent","as_organization", "country_iso_code") NOT NULL'); - this.updateToSchemaVersion(33); + await this.updateToSchemaVersion(33); } if (databaseSchemaVersion < 34 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `lightning_stats` ADD clearnet_tor_nodes int(11) NOT NULL DEFAULT "0"'); - this.updateToSchemaVersion(34); + await this.updateToSchemaVersion(34); } if (databaseSchemaVersion < 35 && isBitcoin == true) { await this.$executeQuery('DELETE from `lightning_stats` WHERE added > "2021-09-19"'); await this.$executeQuery('ALTER TABLE `lightning_stats` ADD CONSTRAINT added_unique UNIQUE (added);'); - this.updateToSchemaVersion(35); + await this.updateToSchemaVersion(35); } if (databaseSchemaVersion < 36 && isBitcoin == true) { await this.$executeQuery('ALTER TABLE `nodes` ADD status TINYINT NOT NULL DEFAULT "1"'); - this.updateToSchemaVersion(36); + await this.updateToSchemaVersion(36); } if (databaseSchemaVersion < 37 && isBitcoin == true) { await this.$executeQuery(this.getCreateLNNodesSocketsTableQuery(), await this.$checkIfTableExists('nodes_sockets')); - this.updateToSchemaVersion(37); + await this.updateToSchemaVersion(37); } if (databaseSchemaVersion < 38 && isBitcoin == true) { @@ -371,57 +371,57 @@ class DatabaseMigration { await this.$executeQuery(`TRUNCATE node_stats`); await this.$executeQuery('ALTER TABLE `lightning_stats` CHANGE `added` `added` timestamp NULL'); await this.$executeQuery('ALTER TABLE `node_stats` CHANGE `added` `added` timestamp NULL'); - this.updateToSchemaVersion(38); + await this.updateToSchemaVersion(38); } if (databaseSchemaVersion < 39 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `nodes` ADD alias_search TEXT NULL DEFAULT NULL AFTER `alias`'); await this.$executeQuery('ALTER TABLE nodes ADD FULLTEXT(alias_search)'); - this.updateToSchemaVersion(39); + await this.updateToSchemaVersion(39); } if (databaseSchemaVersion < 40 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `nodes` ADD capacity bigint(20) unsigned DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD channels int(11) unsigned DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `nodes` ADD INDEX `capacity` (`capacity`);'); - this.updateToSchemaVersion(40); + await this.updateToSchemaVersion(40); } if (databaseSchemaVersion < 41 && isBitcoin === true) { await this.$executeQuery('UPDATE channels SET closing_reason = NULL WHERE closing_reason = 1'); - this.updateToSchemaVersion(41); + await this.updateToSchemaVersion(41); } if (databaseSchemaVersion < 42 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `channels` ADD closing_resolved tinyint(1) DEFAULT 0'); - this.updateToSchemaVersion(42); + await this.updateToSchemaVersion(42); } if (databaseSchemaVersion < 43 && isBitcoin === true) { await this.$executeQuery(this.getCreateLNNodeRecordsTableQuery(), await this.$checkIfTableExists('nodes_records')); - this.updateToSchemaVersion(43); + await this.updateToSchemaVersion(43); } if (databaseSchemaVersion < 44 && isBitcoin === true) { await this.$executeQuery('UPDATE blocks_summaries SET template = NULL'); - this.updateToSchemaVersion(44); + await this.updateToSchemaVersion(44); } if (databaseSchemaVersion < 45 && isBitcoin === true) { await this.$executeQuery('ALTER TABLE `blocks_audits` ADD fresh_txs JSON DEFAULT "[]"'); - this.updateToSchemaVersion(45); + await this.updateToSchemaVersion(45); } if (databaseSchemaVersion < 46) { await this.$executeQuery(`ALTER TABLE blocks MODIFY blockTimestamp timestamp NOT NULL DEFAULT 0`); - this.updateToSchemaVersion(46); + await this.updateToSchemaVersion(46); } if (databaseSchemaVersion < 47) { await this.$executeQuery('ALTER TABLE `blocks` ADD cpfp_indexed tinyint(1) DEFAULT 0'); await this.$executeQuery(this.getCreateCPFPTableQuery(), await this.$checkIfTableExists('cpfp_clusters')); await this.$executeQuery(this.getCreateTransactionsTableQuery(), await this.$checkIfTableExists('transactions')); - this.updateToSchemaVersion(47); + await this.updateToSchemaVersion(47); } if (databaseSchemaVersion < 48 && isBitcoin === true) { @@ -435,12 +435,12 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `channels` ADD closed_by varchar(66) DEFAULT NULL'); await this.$executeQuery('ALTER TABLE `channels` ADD single_funded tinyint(1) DEFAULT 0'); await this.$executeQuery('ALTER TABLE `channels` ADD outputs JSON DEFAULT "[]"'); - this.updateToSchemaVersion(48); + await this.updateToSchemaVersion(48); } if (databaseSchemaVersion < 49 && isBitcoin === true) { await this.$executeQuery('TRUNCATE TABLE `blocks_audits`'); - this.updateToSchemaVersion(49); + await this.updateToSchemaVersion(49); } } From ddc7de0d4a7e3c8288da1b3f703b99cf730c0ca5 Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 1 Dec 2022 15:36:19 +0900 Subject: [PATCH 0130/1466] Update a few more frontend deps --- frontend/package-lock.json | 58 +++++++++++++++++++------------------- frontend/package.json | 6 ++-- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index a0f9a97d8..2efccf07d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -32,7 +32,7 @@ "browserify": "^17.0.0", "clipboard": "^2.0.11", "domino": "^2.1.6", - "echarts": "~5.3.2", + "echarts": "~5.4.0", "echarts-gl": "^2.0.9", "lightweight-charts": "~3.8.0", "ngx-echarts": "~14.0.0", @@ -42,7 +42,7 @@ "tinyify": "^3.1.0", "tlite": "^0.1.9", "tslib": "~2.4.1", - "zone.js": "~0.11.5" + "zone.js": "~0.12.0" }, "devDependencies": { "@angular/compiler-cli": "^14.2.12", @@ -52,7 +52,7 @@ "@typescript-eslint/parser": "^5.45.0", "eslint": "^8.28.0", "http-proxy-middleware": "~2.0.6", - "prettier": "^2.7.1", + "prettier": "^2.8.0", "ts-node": "~10.9.1", "typescript": "~4.6.4" }, @@ -7669,12 +7669,12 @@ } }, "node_modules/echarts": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.2.tgz", - "integrity": "sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.0.tgz", + "integrity": "sha512-uPsO9VRUIKAdFOoH3B0aNg7NRVdN7aM39/OjovjO9MwmWsAkfGyeXJhK+dbRi51iDrQWliXV60/XwLA7kg3z0w==", "dependencies": { "tslib": "2.3.0", - "zrender": "5.3.1" + "zrender": "5.4.0" } }, "node_modules/echarts-gl": { @@ -14061,9 +14061,9 @@ } }, "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", + "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -17227,17 +17227,17 @@ } }, "node_modules/zone.js": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz", - "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", + "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", "dependencies": { "tslib": "^2.3.0" } }, "node_modules/zrender": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.1.tgz", - "integrity": "sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.0.tgz", + "integrity": "sha512-rOS09Z2HSVGFs2dn/TuYk5BlCaZcVe8UDLLjj1ySYF828LATKKdxuakSZMvrDz54yiKPDYVfjdKqcX8Jky3BIA==", "dependencies": { "tslib": "2.3.0" } @@ -22796,12 +22796,12 @@ } }, "echarts": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.2.tgz", - "integrity": "sha512-LWCt7ohOKdJqyiBJ0OGBmE9szLdfA9sGcsMEi+GGoc6+Xo75C+BkcT/6NNGRHAWtnQl2fNow05AQjznpap28TQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.0.tgz", + "integrity": "sha512-uPsO9VRUIKAdFOoH3B0aNg7NRVdN7aM39/OjovjO9MwmWsAkfGyeXJhK+dbRi51iDrQWliXV60/XwLA7kg3z0w==", "requires": { "tslib": "2.3.0", - "zrender": "5.3.1" + "zrender": "5.4.0" }, "dependencies": { "tslib": { @@ -27380,9 +27380,9 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", + "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", "dev": true }, "pretty-bytes": { @@ -29730,17 +29730,17 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" }, "zone.js": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz", - "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.12.0.tgz", + "integrity": "sha512-XtC+I5dXU14HrzidAKBNMqneIVUykLEAA1x+v4KVrd6AUPWlwYORF8KgsVqvgdHiKZ4BkxxjvYi/ksEixTPR0Q==", "requires": { "tslib": "^2.3.0" } }, "zrender": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.1.tgz", - "integrity": "sha512-7olqIjy0gWfznKr6vgfnGBk7y4UtdMvdwFmK92vVQsQeDPyzkHW1OlrLEKg6GHz1W5ePf0FeN1q2vkl/HFqhXw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.0.tgz", + "integrity": "sha512-rOS09Z2HSVGFs2dn/TuYk5BlCaZcVe8UDLLjj1ySYF828LATKKdxuakSZMvrDz54yiKPDYVfjdKqcX8Jky3BIA==", "requires": { "tslib": "2.3.0" }, diff --git a/frontend/package.json b/frontend/package.json index 4f841e587..325bb6bc3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -84,7 +84,7 @@ "browserify": "^17.0.0", "clipboard": "^2.0.11", "domino": "^2.1.6", - "echarts": "~5.3.2", + "echarts": "~5.4.0", "echarts-gl": "^2.0.9", "lightweight-charts": "~3.8.0", "ngx-echarts": "~14.0.0", @@ -94,7 +94,7 @@ "tinyify": "^3.1.0", "tlite": "^0.1.9", "tslib": "~2.4.1", - "zone.js": "~0.11.5" + "zone.js": "~0.12.0" }, "devDependencies": { "@angular/compiler-cli": "^14.2.12", @@ -104,7 +104,7 @@ "@typescript-eslint/parser": "^5.45.0", "eslint": "^8.28.0", "http-proxy-middleware": "~2.0.6", - "prettier": "^2.7.1", + "prettier": "^2.8.0", "ts-node": "~10.9.1", "typescript": "~4.6.4" }, From 1db11d1d675c626c92c48ee7a50fa813c1065405 Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 1 Dec 2022 16:15:19 +0900 Subject: [PATCH 0131/1466] Downgrading axios to latest 0.27.x release --- backend/package-lock.json | 34 +++++++++++----------------------- backend/package.json | 2 +- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 31cc252bc..98811fb27 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -12,7 +12,7 @@ "@babel/core": "^7.20.5", "@mempool/electrum-client": "^1.1.7", "@types/node": "^16.11.41", - "axios": "~1.2.0", + "axios": "~0.27.2", "bitcoinjs-lib": "~6.0.2", "crypto-js": "~4.1.1", "express": "~4.18.2", @@ -2066,13 +2066,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/axios": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz", - "integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "node_modules/babel-jest": { @@ -5202,11 +5201,6 @@ "node": ">= 0.10" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -7841,13 +7835,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "axios": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz", - "integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "babel-jest": { @@ -10200,11 +10193,6 @@ "ipaddr.js": "1.9.1" } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", diff --git a/backend/package.json b/backend/package.json index e4868ea91..bfb523f1b 100644 --- a/backend/package.json +++ b/backend/package.json @@ -37,7 +37,7 @@ "@babel/core": "^7.20.5", "@mempool/electrum-client": "^1.1.7", "@types/node": "^16.11.41", - "axios": "~1.2.0", + "axios": "~0.27.2", "bitcoinjs-lib": "~6.0.2", "crypto-js": "~4.1.1", "express": "~4.18.2", From 75459729adf15db094f2631af8446ed552da6f01 Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 1 Dec 2022 19:17:59 +0900 Subject: [PATCH 0132/1466] Block page audit fallback --- frontend/mempool-frontend-config.sample.json | 1 + .../src/app/components/block/block.component.html | 12 ++++++------ frontend/src/app/components/block/block.component.ts | 10 +++++++++- frontend/src/app/services/state.service.ts | 2 ++ frontend/src/app/shared/graphs.utils.ts | 4 ++-- 5 files changed, 20 insertions(+), 9 deletions(-) diff --git a/frontend/mempool-frontend-config.sample.json b/frontend/mempool-frontend-config.sample.json index 938c71c1b..8b0d79471 100644 --- a/frontend/mempool-frontend-config.sample.json +++ b/frontend/mempool-frontend-config.sample.json @@ -17,5 +17,6 @@ "LIQUID_WEBSITE_URL": "https://liquid.network", "BISQ_WEBSITE_URL": "https://bisq.markets", "MINING_DASHBOARD": true, + "BLOCK_AUDIT_START_HEIGHT": 0, "LIGHTNING": false } diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 05702a428..2c240c250 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -61,7 +61,7 @@ Unknown - + Fee span @@ -146,7 +146,7 @@ - + @@ -169,7 +169,7 @@
- +
@@ -233,7 +233,7 @@
- +
@@ -253,7 +253,7 @@
-
+
-
+
+
+
diff --git a/frontend/src/app/docs/docs/docs.component.html b/frontend/src/app/docs/docs/docs.component.html index 9e7f57c74..b0c51ad16 100644 --- a/frontend/src/app/docs/docs/docs.component.html +++ b/frontend/src/app/docs/docs/docs.component.html @@ -53,5 +53,7 @@ Privacy Policy
+
+
diff --git a/frontend/src/app/lightning/channels-list/channels-list.component.html b/frontend/src/app/lightning/channels-list/channels-list.component.html index 5d40c9b3d..cdc10a63f 100644 --- a/frontend/src/app/lightning/channels-list/channels-list.component.html +++ b/frontend/src/app/lightning/channels-list/channels-list.component.html @@ -28,6 +28,9 @@
No channels to display
+ +
+
From eead4d0af80d546d63a311e9998625881fd3ef12 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 13 Jan 2023 16:33:44 -0600 Subject: [PATCH 0216/1466] Correctly drop legacy cpfp db tables --- backend/src/api/database-migration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 42f223417..66216c64a 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -461,8 +461,8 @@ class DatabaseMigration { await this.$executeQuery(this.getCreateCompactTransactionsTableQuery(), await this.$checkIfTableExists('compact_transactions')); try { await this.$convertCompactCpfpTables(); - await this.$executeQuery('DROP TABLE IF EXISTS `cpfp_clusters`'); await this.$executeQuery('DROP TABLE IF EXISTS `transactions`'); + await this.$executeQuery('DROP TABLE IF EXISTS `cpfp_clusters`'); await this.updateToSchemaVersion(52); } catch(e) { logger.warn('' + (e instanceof Error ? e.message : e)); From c69f2f2bc2997b3b187ee649a48892403379b0ea Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 13 Jan 2023 17:03:02 -0600 Subject: [PATCH 0217/1466] tweak latest transactions txid truncation point --- frontend/src/app/dashboard/dashboard.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/dashboard/dashboard.component.html b/frontend/src/app/dashboard/dashboard.component.html index 882e4f9ad..50c1dc312 100644 --- a/frontend/src/app/dashboard/dashboard.component.html +++ b/frontend/src/app/dashboard/dashboard.component.html @@ -129,7 +129,7 @@ - + Confidential From 2284772f6ad6b28fcf4246b12316a88f0e3c2f9d Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 15 Jan 2023 23:11:01 +0400 Subject: [PATCH 0218/1466] Pull from transifex 01-15 --- frontend/src/locale/messages.cs.xlf | 141 +++++++++++++++++++++++++ frontend/src/locale/messages.lt.xlf | 102 +++++++++--------- frontend/src/locale/messages.pl.xlf | 157 ++++++++++++++++++++++++++-- frontend/src/locale/messages.ru.xlf | 1 + frontend/src/locale/messages.zh.xlf | 101 +++++++++++------- 5 files changed, 407 insertions(+), 95 deletions(-) diff --git a/frontend/src/locale/messages.cs.xlf b/frontend/src/locale/messages.cs.xlf index 323b3e4fe..000de902d 100644 --- a/frontend/src/locale/messages.cs.xlf +++ b/frontend/src/locale/messages.cs.xlf @@ -1471,6 +1471,7 @@ Community Integrations + Komunitní integrace src/app/components/about/about.component.html 191,193 @@ -1544,6 +1545,7 @@ Multisig of + Multisig z src/app/components/address-labels/address-labels.component.ts 105 @@ -2027,6 +2029,7 @@ Block + Blok src/app/components/block-audit/block-audit.component.html 7,9 @@ -2035,6 +2038,7 @@ Template vs Mined + Šablona vs. vytěžené src/app/components/block-audit/block-audit.component.html 11,17 @@ -2121,6 +2125,7 @@ Match rate + Míra shody src/app/components/block-audit/block-audit.component.html 64,67 @@ -2129,6 +2134,7 @@ Missing txs + Chybějící txs src/app/components/block-audit/block-audit.component.html 68,71 @@ -2137,6 +2143,7 @@ Added txs + Přidané txs src/app/components/block-audit/block-audit.component.html 72,75 @@ -2145,6 +2152,7 @@ Missing + Chybějící src/app/components/block-audit/block-audit.component.html 84,85 @@ -2153,6 +2161,7 @@ Added + Přidané src/app/components/block-audit/block-audit.component.html 86,92 @@ -2470,6 +2479,7 @@ No data to display yet. Try again later. + Zatím se nezobrazují žádná data. Zkuste to později. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2523,6 +2533,7 @@ Block + Blok src/app/components/block/block-preview.component.html 3,7 @@ -2535,6 +2546,7 @@ + src/app/components/block/block-preview.component.html 11,12 @@ -3250,6 +3262,7 @@ Hashrate & Difficulty + Hashrate & obtížnost src/app/components/graphs/graphs.component.html 15,16 @@ -3258,6 +3271,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3266,6 +3280,7 @@ Lightning Nodes Per Network + Lightning uzly v síti src/app/components/graphs/graphs.component.html 34 @@ -3286,6 +3301,7 @@ Lightning Network Capacity + Kapacita Lightning sítě src/app/components/graphs/graphs.component.html 36 @@ -3306,6 +3322,7 @@ Lightning Nodes Per ISP + Lightning uzly na jednoho ISP src/app/components/graphs/graphs.component.html 38 @@ -3318,6 +3335,7 @@ Lightning Nodes Per Country + Lightning uzly podle zemí src/app/components/graphs/graphs.component.html 40 @@ -3334,6 +3352,7 @@ Lightning Nodes World Map + Světová mapa Lightning uzlů src/app/components/graphs/graphs.component.html 42 @@ -3350,6 +3369,7 @@ Lightning Nodes Channels World Map + Světová mapa kanálů Lightning uzlů src/app/components/graphs/graphs.component.html 44 @@ -3470,6 +3490,7 @@ Lightning Explorer + Lightning průzkumník src/app/components/master-page/master-page.component.html 44,45 @@ -3482,6 +3503,7 @@ beta + beta src/app/components/master-page/master-page.component.html 45,48 @@ -3737,6 +3759,7 @@ mining pool + těžební pool src/app/components/pool/pool-preview.component.html 3,5 @@ -4067,6 +4090,7 @@ Explore the full Bitcoin ecosystem + Prozkoumejte celý Bitcoin ekosystém src/app/components/search-form/search-form.component.html 4,6 @@ -4427,6 +4451,7 @@ Flow + Tok src/app/components/transaction/transaction.component.html 195,198 @@ -4440,6 +4465,7 @@ Hide diagram + Skrýt diagram src/app/components/transaction/transaction.component.html 198,203 @@ -4448,6 +4474,7 @@ Show more + Zobrazit více src/app/components/transaction/transaction.component.html 219,221 @@ -4456,6 +4483,7 @@ Show less + Zobrazit méně src/app/components/transaction/transaction.component.html 221,227 @@ -4464,6 +4492,7 @@ Show diagram + Zobrazit diagram src/app/components/transaction/transaction.component.html 241,242 @@ -4657,6 +4686,7 @@ other inputs + další vstupy src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4665,6 +4695,7 @@ other outputs + další výstupy src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4673,6 +4704,7 @@ Input + Vstup src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4681,6 +4713,7 @@ Output + Výstup src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 44 @@ -4689,6 +4722,7 @@ This transaction saved % on fees by using native SegWit + Tato transakce ušetřila % na poplatcích díky použití nativního SegWit. src/app/components/tx-features/tx-features.component.html 2 @@ -4715,6 +4749,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + Tato transakce ušetřila % na poplatcích díky použití SegWitu a mohla by ušetřit ještě o % více, kdyby plně přešla na nativní SegWit. src/app/components/tx-features/tx-features.component.html 4 @@ -4723,6 +4758,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + Tato transakce by mohla ušetřit % poplatků přechodem na nativní SegWit nebo % přechodem na SegWit-P2SH. src/app/components/tx-features/tx-features.component.html 6 @@ -4731,6 +4767,7 @@ This transaction uses Taproot and thereby saved at least % on fees + Tato transakce využívá Taproot a ušetřila tak nejméně % na poplatcích. src/app/components/tx-features/tx-features.component.html 12 @@ -4739,6 +4776,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4760,6 +4798,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + Tato transakce využívá Taproot a již ušetřila nejméně % na poplatcích, ale mohla by ušetřit další % při plném využití Taproot. src/app/components/tx-features/tx-features.component.html 14 @@ -4768,6 +4807,7 @@ This transaction could save % on fees by using Taproot + Tato transakce by mohla ušetřit % na poplatcích pomocí Taproot. src/app/components/tx-features/tx-features.component.html 16 @@ -4785,6 +4825,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + Tato transakce podporuje funkci Replace-By-Fee (RBF), která umožňuje zvýšení poplatků. src/app/components/tx-features/tx-features.component.html 25 @@ -5021,6 +5062,7 @@ Base fee + Základní poplatek src/app/lightning/channel/channel-box/channel-box.component.html 30 @@ -5033,6 +5075,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 36 @@ -5049,6 +5092,7 @@ This channel supports zero base fee routing + Tento kanál podporuje směrování s nulovým základním poplatkem src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5057,6 +5101,7 @@ Zero base fee + Nulový základní poplatek src/app/lightning/channel/channel-box/channel-box.component.html 46 @@ -5065,6 +5110,7 @@ This channel does not support zero base fee routing + Tento kanál nepodporuje směrování s nulovým základním poplatkem. src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5073,6 +5119,7 @@ Non-zero base fee + Nenulový základní poplatek src/app/lightning/channel/channel-box/channel-box.component.html 52 @@ -5081,6 +5128,7 @@ Min HTLC + Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html 58 @@ -5089,6 +5137,7 @@ Max HTLC + Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html 64 @@ -5097,6 +5146,7 @@ Timelock delta + Delta časového zámku src/app/lightning/channel/channel-box/channel-box.component.html 70 @@ -5105,6 +5155,7 @@ channels + kanálů src/app/lightning/channel/channel-box/channel-box.component.html 80 @@ -5117,6 +5168,7 @@ lightning channel + Lightning kanál src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5125,6 +5177,7 @@ Inactive + Neaktivní src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5141,6 +5194,7 @@ Active + Aktivní src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5157,6 +5211,7 @@ Closed + Uzavřeno src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5177,6 +5232,7 @@ Created + Vytvořeno src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5189,6 +5245,7 @@ Capacity + Kapacita src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5241,6 +5298,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5261,6 +5319,7 @@ Lightning channel + Lightning kanál src/app/lightning/channel/channel.component.html 2,5 @@ -5273,6 +5332,7 @@ Last update + Poslední aktualizace src/app/lightning/channel/channel.component.html 33,34 @@ -5305,6 +5365,7 @@ Closing date + Datum uzavření src/app/lightning/channel/channel.component.html 37,38 @@ -5317,6 +5378,7 @@ Opening transaction + Otvírací transakce src/app/lightning/channel/channel.component.html 73,74 @@ -5325,6 +5387,7 @@ Closing transaction + Uzavírací transakce src/app/lightning/channel/channel.component.html 82,84 @@ -5333,6 +5396,7 @@ Channel: + Kanál: src/app/lightning/channel/channel.component.ts 37 @@ -5340,6 +5404,7 @@ Open + Otevřeno src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5348,6 +5413,7 @@ No channels to display + Žádné kanály k zobrazení src/app/lightning/channels-list/channels-list.component.html 29,35 @@ -5356,6 +5422,7 @@ Alias + Alias src/app/lightning/channels-list/channels-list.component.html 35,37 @@ -5392,6 +5459,7 @@ Status + Status src/app/lightning/channels-list/channels-list.component.html 37,38 @@ -5400,6 +5468,7 @@ Channel ID + ID kanálu src/app/lightning/channels-list/channels-list.component.html 41,45 @@ -5408,6 +5477,7 @@ sats + sats src/app/lightning/channels-list/channels-list.component.html 61,65 @@ -5460,6 +5530,7 @@ Avg Capacity + Prům. kapacita src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5472,6 +5543,7 @@ Avg Fee Rate + Průměrná sazba poplatků src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5484,6 +5556,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Průměrná sazba poplatků účtovaná směrovacími uzly, přičemž se ignorují sazby poplatků > 0,5% nebo 5000 ppm. src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5492,6 +5565,7 @@ Avg Base Fee + Prům. základní poplatek src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5504,6 +5578,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + Průměrný základní poplatek účtovaný směrovacími uzly, bez ohledu na základní poplatky > 5000ppm. src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5512,6 +5587,7 @@ Med Capacity + Mediánová kapacita src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5520,6 +5596,7 @@ Med Fee Rate + Mediánový poplatek src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5528,6 +5605,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Mediánová sazba poplatků účtovaná směrovacími uzly, přičemž se neberou v úvahu sazby poplatků > 0,5% nebo 5000 ppm. src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5536,6 +5614,7 @@ Med Base Fee + Mediánový základní poplatek src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5544,6 +5623,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + Medián základních poplatků účtovaných směrovacími uzly, přičemž se neberou v úvahu základní poplatky > 5000ppm. src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5552,6 +5632,7 @@ Lightning node group + Skupina Lightning uzlů src/app/lightning/group/group-preview.component.html 3,5 @@ -5564,6 +5645,7 @@ Nodes + Uzly src/app/lightning/group/group-preview.component.html 25,29 @@ -5604,6 +5686,7 @@ Liquidity + Likvidita src/app/lightning/group/group-preview.component.html 29,31 @@ -5640,6 +5723,7 @@ Channels + Kanály src/app/lightning/group/group-preview.component.html 40,43 @@ -5700,6 +5784,7 @@ Average size + Průměrná velikost src/app/lightning/group/group-preview.component.html 44,46 @@ -5712,6 +5797,7 @@ Location + Lokalita src/app/lightning/group/group.component.html 74,77 @@ -5752,6 +5838,7 @@ Network Statistics + Síťové statistiky src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5760,6 +5847,7 @@ Channels Statistics + Statistiky kanálů src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5768,6 +5856,7 @@ Lightning Network History + Historie Lightning sítě src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5776,6 +5865,7 @@ Liquidity Ranking + Žebříček likvidity src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5792,6 +5882,7 @@ Connectivity Ranking + Žebříček konektivity src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5804,6 +5895,7 @@ Percentage change past week + Procentuální změna za poslední týden src/app/lightning/node-statistics/node-statistics.component.html 5,7 @@ -5820,6 +5912,7 @@ Lightning node + Lightning uzel src/app/lightning/node/node-preview.component.html 3,5 @@ -5836,6 +5929,7 @@ Active capacity + Aktivní kapacita src/app/lightning/node/node-preview.component.html 20,22 @@ -5848,6 +5942,7 @@ Active channels + Aktivní kanály src/app/lightning/node/node-preview.component.html 26,30 @@ -5860,6 +5955,7 @@ Country + Země src/app/lightning/node/node-preview.component.html 44,47 @@ -5868,6 +5964,7 @@ No node found for public key "" + Pro veřejný klíč &quot;&quot; nebyl nalezen žádný uzel src/app/lightning/node/node.component.html 17,19 @@ -5876,6 +5973,7 @@ Average channel size + Průměrná velikost kanálu src/app/lightning/node/node.component.html 40,43 @@ -5884,6 +5982,7 @@ Unknown + Neznámo src/app/lightning/node/node.component.html 52,56 @@ -5904,6 +6003,7 @@ Color + Barva src/app/lightning/node/node.component.html 75,77 @@ -5912,6 +6012,7 @@ ISP + ISP src/app/lightning/node/node.component.html 82,83 @@ -5924,6 +6025,7 @@ Exclusively on Tor + Výhradně na Tor src/app/lightning/node/node.component.html 88,90 @@ -5932,6 +6034,7 @@ Open channels + Otevřené kanály src/app/lightning/node/node.component.html 145,148 @@ -5940,6 +6043,7 @@ Closed channels + Uzavřené kanály src/app/lightning/node/node.component.html 149,152 @@ -5948,6 +6052,7 @@ Node: + Uzel: src/app/lightning/node/node.component.ts 42 @@ -5955,6 +6060,7 @@ (Tor nodes excluded) + (bez Tor uzlů) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -5975,6 +6081,7 @@ Lightning Nodes Channels World Map + Světová mapa kanálů Lightning uzlů src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -5982,6 +6089,7 @@ No geolocation data available + Nejsou k dispozici žádné geolokační údaje src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 218,213 @@ -5989,6 +6097,7 @@ Active channels map + Mapa aktivních kanálů src/app/lightning/nodes-channels/node-channels.component.html 2,3 @@ -5997,6 +6106,7 @@ Indexing in progess + Probíhající indexace src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6008,6 +6118,7 @@ Reachable on Clearnet Only + Dostupné pouze přes Clearnet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6019,6 +6130,7 @@ Reachable on Clearnet and Darknet + Dosažitelné na Clearnetu i Darknetu src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6030,6 +6142,7 @@ Reachable on Darknet Only + Dostupné pouze na Darknetu src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6041,6 +6154,7 @@ Share + Sdílet src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6053,6 +6167,7 @@ nodes + uzlů src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6068,6 +6183,7 @@ BTC capacity + BTC kapacita src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6075,6 +6191,7 @@ Lightning nodes in + Lightning uzly v src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6083,6 +6200,7 @@ ISP Count + Počet ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6091,6 +6209,7 @@ Top ISP + Top ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6099,6 +6218,7 @@ Lightning nodes in + Lightning uzly v src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6106,6 +6226,7 @@ Clearnet Capacity + Kapacita clearnetu src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6118,6 +6239,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + Kolik likvidity běží na uzlech, které inzerují alespoň jednu IP adresu clearnetu. src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6126,6 +6248,7 @@ Unknown Capacity + Neznámá kapacita src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6138,6 +6261,7 @@ How much liquidity is running on nodes which ISP was not identifiable + Kolik likvidity běží na uzlech, jejichž ISP nebylo možné identifikovat. src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6146,6 +6270,7 @@ Tor Capacity + Tor kapacita src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6158,6 +6283,7 @@ How much liquidity is running on nodes advertising only Tor addresses + Kolik likvidity běží na uzlech inzerujících pouze Tor adresy src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6166,6 +6292,7 @@ Top 100 ISPs hosting LN nodes + 100 nejlepších ISP hostujících LN uzly src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6174,6 +6301,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6185,6 +6313,7 @@ Lightning ISP + Lightning ISP src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6193,6 +6322,7 @@ Top country + Top země src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6205,6 +6335,7 @@ Top node + Top uzel src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6213,6 +6344,7 @@ Lightning nodes on ISP: [AS] + Lightning uzly na ISP: [AS] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6224,6 +6356,7 @@ Lightning nodes on ISP: + Lightning uzly na ISP: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6232,6 +6365,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6240,6 +6374,7 @@ Top 100 oldest lightning nodes + 100 nejstarších lightning uzlů src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6248,6 +6383,7 @@ Oldest lightning nodes + Nejstarší lightningové uzly src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 @@ -6255,6 +6391,7 @@ Top 100 nodes liquidity ranking + Žebříček likvidity 100 nejlepších uzlů src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html 3,7 @@ -6263,6 +6400,7 @@ Top 100 nodes connectivity ranking + Žebříček konektivity 100 nejlepších uzlů src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 3,7 @@ -6271,6 +6409,7 @@ Oldest nodes + Nejstarší uzly src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6279,6 +6418,7 @@ Top lightning nodes + Top lightning uzly src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6286,6 +6426,7 @@ Indexing in progress + Probíhající indexace src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 diff --git a/frontend/src/locale/messages.lt.xlf b/frontend/src/locale/messages.lt.xlf index 2eaf6764b..af60721b5 100644 --- a/frontend/src/locale/messages.lt.xlf +++ b/frontend/src/locale/messages.lt.xlf @@ -60,7 +60,7 @@ Previous month - Ankstesnis mėnesis + Ankstesnis mėnuo node_modules/src/datepicker/datepicker-navigation.ts 69 @@ -72,7 +72,7 @@ Next month - Kitas mėnesis + Kitas mėnuo node_modules/src/datepicker/datepicker-navigation.ts 69 @@ -293,7 +293,7 @@ Total received - Viso gauta + Iš viso gauta src/app/bisq/bisq-address/bisq-address.component.html 22 @@ -310,7 +310,7 @@ Total sent - Viso išsiųsta + Iš viso išsiųsta src/app/bisq/bisq-address/bisq-address.component.html 26 @@ -503,7 +503,7 @@ BSQ Blocks - BSQ Blokai + BSQ blokai src/app/bisq/bisq-blocks/bisq-blocks.component.html 2,7 @@ -615,7 +615,7 @@ Bisq Trading Volume - Bisq Mainų Apimtis + "Bisq" prekybos apyvarta src/app/bisq/bisq-dashboard/bisq-dashboard.component.html 3,7 @@ -641,7 +641,7 @@ Bitcoin Markets - Bitkoino Rinkos + Bitkoino rinkos src/app/bisq/bisq-dashboard/bisq-dashboard.component.html 21,24 @@ -694,7 +694,7 @@ Volume (7d) - Apimtis (7 d.) + Prekybos apyvarta (7 d.) src/app/bisq/bisq-dashboard/bisq-dashboard.component.html 29 @@ -703,7 +703,7 @@ Trades (7d) - Mainai (7 d.) + Sandoriai (7 d.) src/app/bisq/bisq-dashboard/bisq-dashboard.component.html 30 @@ -716,7 +716,7 @@ Latest Trades - Naujausi Mainai + Naujausi sandoriai src/app/bisq/bisq-dashboard/bisq-dashboard.component.html 52,56 @@ -733,7 +733,7 @@ Bisq Price Index - Bisq Kainos Indeksas + "Bisq" kainos indeksas src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 9,11 @@ -742,7 +742,7 @@ Bisq Market Price - Bisq Rinkos Kaina + "Bisq" rinkos kaina src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 21,23 @@ -751,7 +751,7 @@ View more » - Žiūrėti daugiau » + Parodyti daugiau » src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 92,97 @@ -780,7 +780,7 @@ Terms of Service - Paslaugų Teikimo Sąlygos + Paslaugų teikimo sąlygos src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 111,113 @@ -802,7 +802,7 @@ Privacy Policy - Privatumo Politika + Privatumo politika src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 @@ -877,7 +877,7 @@ Minted amount - Viso išleista + Iš viso išleista src/app/bisq/bisq-stats/bisq-stats.component.html 16 @@ -957,7 +957,7 @@ Spent TXOs - Panaudotos Išvestys + Panaudotos išvestys src/app/bisq/bisq-stats/bisq-stats.component.html 32 @@ -1208,7 +1208,7 @@ Inputs & Outputs - Įvestys ir Išvestys + Įvestys ir išvestys src/app/bisq/bisq-transaction/bisq-transaction.component.html 97,105 @@ -1246,7 +1246,7 @@ BSQ Transactions - BSQ Operacijos + BSQ operacijos src/app/bisq/bisq-transactions/bisq-transactions.component.html 2,5 @@ -1340,7 +1340,7 @@ Pay trade fee - Mokėti mainų mokestį + Mokėti prekybos mokestį src/app/bisq/bisq-transactions/bisq-transactions.component.ts 37 @@ -1412,7 +1412,7 @@ Unselect all - Atšaukti visų pasirinkimą + Atšaukti visus pasirinkimus src/app/bisq/bisq-transactions/bisq-transactions.component.ts 59 @@ -1420,7 +1420,7 @@ Trades - Mainai + Sandoriai src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts 99 @@ -1428,7 +1428,7 @@ Volume - Apimtis + Prekybos apimtis src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts 100 @@ -1436,7 +1436,7 @@ The Mempool Open Source Project - „Mempool“ Atviro Kodo Projektas + „Mempool“ atvirojo kodo projektas src/app/components/about/about.component.html 12,13 @@ -1445,7 +1445,7 @@ 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. - Mūsų Bitkoino bendruomenei skirta atminties ir blokų grandinės naršyklė, daugiausia dėmesio skirianti mokesčių rinkai ir daugiasluoksnei ekosistemai, savarankiškai leidžiama be jokių patikimų trečiųjų šalių. + Nuo trečiųjų šalių prieglobos paslaugų nepriklausoma BTC operacijų mokesčių ir daugiasluoksnės Bitkoino ekosistemos analizei skirta mempulo ir blokų grandinės naršyklė. src/app/components/about/about.component.html 13,17 @@ -1453,7 +1453,7 @@ Enterprise Sponsors 🚀 - Verslo Rėmėjai 🚀 + Rėmėjai iš verslo 🚀 src/app/components/about/about.component.html 29,32 @@ -1462,7 +1462,7 @@ Community Sponsors ❤️ - Bendruomenės Rėmėjai ❤️ + Rėmėjai iš bendruomenės ❤️ src/app/components/about/about.component.html 177,180 @@ -1471,7 +1471,7 @@ Community Integrations - Bendruomenės Integracijos + Bendruomenės integracijos src/app/components/about/about.component.html 191,193 @@ -1480,7 +1480,7 @@ Community Alliances - Bendruomenės Aljansai + Bendruomenės aljansai src/app/components/about/about.component.html 281,283 @@ -1489,7 +1489,7 @@ Project Translators - Projekto Vertėjai + Projekto vertėjai src/app/components/about/about.component.html 297,299 @@ -1498,7 +1498,7 @@ Project Contributors - Projekto Pagalbininkai + Projekto pagalbininkai src/app/components/about/about.component.html 311,313 @@ -1507,7 +1507,7 @@ Project Members - Projekto Nariai + Projekto nariai src/app/components/about/about.component.html 323,325 @@ -1516,7 +1516,7 @@ Project Maintainers - Projekto Prižiūrėtojai + Projekto prižiūrėtojai src/app/components/about/about.component.html 336,338 @@ -1646,7 +1646,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: - Šiuo adresu yra daug operacijų, daugiau nei gali parodyti jūsų vidinė sistema. Žr. daugiau apie , kaip nustatyti galingesnę vidinę sistemą . Apsvarstykite galimybę peržiūrėti šį adresą oficialioje „Mempool“ svetainėje: + Šiuo adresu yra daug operacijų, daugiau nei gali parodyti jūsų vidinė sistema. Žr. daugiau apie , kaip nustatyti galingesnę vidinę sistemą . Patikrinkite šį adresą oficialioje „Mempool“ svetainėje: src/app/components/address/address.component.html 135,138 @@ -1973,7 +1973,7 @@ Layer 2 Networks - 2-tro Sluoksnio Tinklai + 2-ojo sluoksnio tinklai src/app/components/bisq-master-page/bisq-master-page.component.html 50,51 @@ -2170,7 +2170,7 @@ Block Fee Rates - Bloko Mokesčių Tarifai + Bloko mokesčių tarifai src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.html 6,8 @@ -2219,7 +2219,7 @@ Block Fees - Bloko Mokesčiai + Bloko mokesčiai src/app/components/block-fees-graph/block-fees-graph.component.html 6,7 @@ -2462,7 +2462,7 @@ Block Prediction Accuracy - Blokų Numatymo Tikslumas + Blokų mumatymo tikslumas src/app/components/block-prediction-graph/block-prediction-graph.component.html 6,8 @@ -2479,7 +2479,7 @@ No data to display yet. Try again later. - Dar nėra duomenų, kuriuos būtų galima rodyti. Bandyk dar kartą vėliau. + Dar nėra rodytinų duomenų. Bandyk dar kartą vėliau. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2499,7 +2499,7 @@ Block Rewards - Bloko Atlygis + Bloko atlygis src/app/components/block-rewards-graph/block-rewards-graph.component.html 7,8 @@ -2516,7 +2516,7 @@ Block Sizes and Weights - Blokų Dydžiai ir Svoriai + Blokų dydžiai ir svoriai src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.html 5,7 @@ -2635,7 +2635,7 @@ Next Block - Kitas Blokas + Kitas blokas src/app/components/block/block.component.html 8,9 @@ -2648,7 +2648,7 @@ Previous Block - Ankstesnis Blokas + Ankstesnis blokas src/app/components/block/block.component.html 15,16 @@ -2768,7 +2768,7 @@ Block Header Hex - Bloko Antraštės Hex + Bloko antraštės Hex src/app/components/block/block.component.html 278,279 @@ -2828,7 +2828,7 @@ Pool - Telkinys + Pulas src/app/components/blocks-list/blocks-list.component.html 14 @@ -2963,7 +2963,7 @@ Difficulty Adjustment - Sudėtingumo Pokytis + Sudėtingumo pokytis src/app/components/difficulty/difficulty.component.html 1,5 @@ -3053,7 +3053,7 @@ Current Period - Einamasis Periodas + Einamasis periodas src/app/components/difficulty/difficulty.component.html 43,44 @@ -3066,7 +3066,7 @@ Next Halving - Kitas Blokų Atlygio Dalijimas + Kitas blokų atlygio dalijimas src/app/components/difficulty/difficulty.component.html 50,52 @@ -3075,7 +3075,7 @@ Either 2x the minimum, or the Low Priority rate (whichever is lower) - Arba 2 kart daugiau už minimalų, arba Žemo Prioriteto tarifas (atsižvelgiant į tai, kuris mažesnis) + Arba dukart daugiau už minimalų, arba žemo prioriteto tarifas (atsižvelgiant į tai, kuris mažesnis) src/app/components/fees-box/fees-box.component.html 4,7 @@ -3084,7 +3084,7 @@ No Priority - Nėra Prioriteto + Nėra prioriteto src/app/components/fees-box/fees-box.component.html 4,7 @@ -3106,7 +3106,7 @@ Low Priority - Žemas Prioritetas + Žemas prioritetas src/app/components/fees-box/fees-box.component.html 8,9 diff --git a/frontend/src/locale/messages.pl.xlf b/frontend/src/locale/messages.pl.xlf index 0cd2a7ed5..45920f095 100644 --- a/frontend/src/locale/messages.pl.xlf +++ b/frontend/src/locale/messages.pl.xlf @@ -1462,7 +1462,7 @@ Community Sponsors ❤️ - Sponsorzy społecznościowy ❤️ + Sponsorzy społecznościowi ❤️ src/app/components/about/about.component.html 177,180 @@ -1471,6 +1471,7 @@ Community Integrations + Integracje społecznościowe src/app/components/about/about.component.html 191,193 @@ -1544,6 +1545,7 @@ Multisig of + Multisig z src/app/components/address-labels/address-labels.component.ts 105 @@ -2027,6 +2029,7 @@ Block + Blok src/app/components/block-audit/block-audit.component.html 7,9 @@ -2035,6 +2038,7 @@ Template vs Mined + Szablon vs wydobyte src/app/components/block-audit/block-audit.component.html 11,17 @@ -2121,6 +2125,7 @@ Match rate + Częstość dopasowania src/app/components/block-audit/block-audit.component.html 64,67 @@ -2129,6 +2134,7 @@ Missing txs + Brakujące transakcje src/app/components/block-audit/block-audit.component.html 68,71 @@ -2137,6 +2143,7 @@ Added txs + Dodane transakcje src/app/components/block-audit/block-audit.component.html 72,75 @@ -2145,6 +2152,7 @@ Missing + Brakujące src/app/components/block-audit/block-audit.component.html 84,85 @@ -2153,6 +2161,7 @@ Added + Dodane src/app/components/block-audit/block-audit.component.html 86,92 @@ -2470,6 +2479,7 @@ No data to display yet. Try again later. + Brak danych do wyświetlenia. Spróbuj ponownie później. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2523,6 +2533,7 @@ Block + Blok src/app/components/block/block-preview.component.html 3,7 @@ -2535,6 +2546,7 @@ + src/app/components/block/block-preview.component.html 11,12 @@ -2594,7 +2606,7 @@ Miner - Górnik + Wydobywca src/app/components/block/block-preview.component.html 53,55 @@ -3250,6 +3262,7 @@ Hashrate & Difficulty + Prędkość haszowania i trudność src/app/components/graphs/graphs.component.html 15,16 @@ -3258,6 +3271,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3266,6 +3280,7 @@ Lightning Nodes Per Network + Węzły Lightning wg sieci src/app/components/graphs/graphs.component.html 34 @@ -3286,6 +3301,7 @@ Lightning Network Capacity + Pojemność Lightning Network src/app/components/graphs/graphs.component.html 36 @@ -3306,6 +3322,7 @@ Lightning Nodes Per ISP + Węzły Lightning wg ISP src/app/components/graphs/graphs.component.html 38 @@ -3318,6 +3335,7 @@ Lightning Nodes Per Country + Węzły Lightning wg państw src/app/components/graphs/graphs.component.html 40 @@ -3334,6 +3352,7 @@ Lightning Nodes World Map + Mapa światowa węzłów sieci Lightning src/app/components/graphs/graphs.component.html 42 @@ -3350,6 +3369,7 @@ Lightning Nodes Channels World Map + Mapa światowa kanałów węzłów sieci Lightning src/app/components/graphs/graphs.component.html 44 @@ -3470,6 +3490,7 @@ Lightning Explorer + Eksplorator Lightning src/app/components/master-page/master-page.component.html 44,45 @@ -3482,6 +3503,7 @@ beta + beta src/app/components/master-page/master-page.component.html 45,48 @@ -3638,7 +3660,7 @@ Blocks (1w) - Blocków (1t) + Liczba bloków (1t) src/app/components/pool-ranking/pool-ranking.component.html 25 @@ -3725,7 +3747,7 @@ blocks - blocków + bloków src/app/components/pool-ranking/pool-ranking.component.ts 165,163 @@ -3737,6 +3759,7 @@ mining pool + kolektyw wydobywczy src/app/components/pool/pool-preview.component.html 3,5 @@ -3975,7 +3998,7 @@ Miners Reward - Nagroda wydobywców + Zyski wydobywców src/app/components/reward-stats/reward-stats.component.html 5 @@ -4001,7 +4024,7 @@ Reward Per Tx - Nagroda na transakcję + Zyski na transakcję src/app/components/reward-stats/reward-stats.component.html 17 @@ -4067,6 +4090,7 @@ Explore the full Bitcoin ecosystem + Eksploruj cały ekosystem Bitcoina src/app/components/search-form/search-form.component.html 4,6 @@ -4265,7 +4289,7 @@ In ~ - W ~ + Za ~ src/app/components/time-until/time-until.component.ts 66 @@ -4353,7 +4377,7 @@ First seen - Pierwszy raz widziana + Pierwszy raz widziano src/app/components/transaction/transaction.component.html 101,102 @@ -4427,6 +4451,7 @@ Flow + Przepływ src/app/components/transaction/transaction.component.html 195,198 @@ -4440,6 +4465,7 @@ Hide diagram + Schowaj diagram src/app/components/transaction/transaction.component.html 198,203 @@ -4448,6 +4474,7 @@ Show more + Pokaż więcej src/app/components/transaction/transaction.component.html 219,221 @@ -4456,6 +4483,7 @@ Show less + Pokaż mniej src/app/components/transaction/transaction.component.html 221,227 @@ -4464,6 +4492,7 @@ Show diagram + Pokaż diagram src/app/components/transaction/transaction.component.html 241,242 @@ -4657,6 +4686,7 @@ other inputs + inne wejścia src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4665,6 +4695,7 @@ other outputs + inne wyjścia src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4673,6 +4704,7 @@ Input + Wejście src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4681,6 +4713,7 @@ Output + Wyjście src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 44 @@ -4689,6 +4722,7 @@ This transaction saved % on fees by using native SegWit + Ta transakcja zaoszczędziła % na opłatach dzięki zastosowaniu natywnego SegWit src/app/components/tx-features/tx-features.component.html 2 @@ -4715,6 +4749,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + Ta transakcja zaoszczędziła % na opłatach dzięki zastosowaniu Segwit i mogłaby zaoszczędzić % więcej poprzez pełną aktualizację do natywnego SegWit src/app/components/tx-features/tx-features.component.html 4 @@ -4723,6 +4758,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + Ta transakcja mogła zaoszczędzić% na opłatach dzięki zastosowaniu natywnego SegWit lub % dzięki aktualizacji do SegWit-P2SH src/app/components/tx-features/tx-features.component.html 6 @@ -4731,6 +4767,7 @@ This transaction uses Taproot and thereby saved at least % on fees + Ta transakcja używa Taproot i dzięki temu zaoszczędza przynajmniej % na opłatach src/app/components/tx-features/tx-features.component.html 12 @@ -4739,6 +4776,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4760,6 +4798,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + Ta transakcja używa Taproot i już zaoszczędziła przynajmniej % na opłatach, ale mogłaby zaoszczędzić dodatkowe % używając Taproot w pełni src/app/components/tx-features/tx-features.component.html 14 @@ -4768,6 +4807,7 @@ This transaction could save % on fees by using Taproot + Ta transakcja mogła zaoszczędzić % na opłatach dzięki użyciu Taproo src/app/components/tx-features/tx-features.component.html 16 @@ -4785,6 +4825,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + Ta transakcja wspiera Replace-By-Fee (RBF) co umożliwia zwiększenie opłaty src/app/components/tx-features/tx-features.component.html 25 @@ -5021,6 +5062,7 @@ Base fee + Opłata bazowa src/app/lightning/channel/channel-box/channel-box.component.html 30 @@ -5033,6 +5075,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 36 @@ -5049,6 +5092,7 @@ This channel supports zero base fee routing + Ten kanał wspiera routing bez opłaty bazowej src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5057,6 +5101,7 @@ Zero base fee + Zero opłaty bazowej src/app/lightning/channel/channel-box/channel-box.component.html 46 @@ -5065,6 +5110,7 @@ This channel does not support zero base fee routing + Ten kanał nie wspiera routingu bez opłaty bazowej src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5073,6 +5119,7 @@ Non-zero base fee + Niezerowa opłata bazowa src/app/lightning/channel/channel-box/channel-box.component.html 52 @@ -5081,6 +5128,7 @@ Min HTLC + Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html 58 @@ -5089,6 +5137,7 @@ Max HTLC + Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html 64 @@ -5097,6 +5146,7 @@ Timelock delta + Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html 70 @@ -5105,6 +5155,7 @@ channels + kanałów src/app/lightning/channel/channel-box/channel-box.component.html 80 @@ -5117,6 +5168,7 @@ lightning channel + kanał lightning src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5125,6 +5177,7 @@ Inactive + Nieaktywny src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5141,6 +5194,7 @@ Active + Aktywny src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5157,6 +5211,7 @@ Closed + Zamknięty src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5177,6 +5232,7 @@ Created + Stworzony src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5189,6 +5245,7 @@ Capacity + Pojemność src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5241,6 +5298,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5261,6 +5319,7 @@ Lightning channel + Kanał Lightning src/app/lightning/channel/channel.component.html 2,5 @@ -5273,6 +5332,7 @@ Last update + Ostatnia aktualizacja src/app/lightning/channel/channel.component.html 33,34 @@ -5305,6 +5365,7 @@ Closing date + Data zamknięcia src/app/lightning/channel/channel.component.html 37,38 @@ -5317,6 +5378,7 @@ Opening transaction + Transakcja otwarcia src/app/lightning/channel/channel.component.html 73,74 @@ -5325,6 +5387,7 @@ Closing transaction + Transakcja zamknięcia src/app/lightning/channel/channel.component.html 82,84 @@ -5333,6 +5396,7 @@ Channel: + Kanał: src/app/lightning/channel/channel.component.ts 37 @@ -5340,6 +5404,7 @@ Open + Otwarty src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5348,6 +5413,7 @@ No channels to display + Brak kanałów do wyświetlenia src/app/lightning/channels-list/channels-list.component.html 29,35 @@ -5356,6 +5422,7 @@ Alias + Alias src/app/lightning/channels-list/channels-list.component.html 35,37 @@ -5392,6 +5459,7 @@ Status + Stan src/app/lightning/channels-list/channels-list.component.html 37,38 @@ -5400,6 +5468,7 @@ Channel ID + ID kanału src/app/lightning/channels-list/channels-list.component.html 41,45 @@ -5408,6 +5477,7 @@ sats + sats src/app/lightning/channels-list/channels-list.component.html 61,65 @@ -5460,6 +5530,7 @@ Avg Capacity + Średnia pojemność src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5472,6 +5543,7 @@ Avg Fee Rate + Średni poziom opłat src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5484,6 +5556,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Średni poziom opłat pobieranych przez węzły routujące, z wyłączeniem opłat > 0.5% lub 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5492,6 +5565,7 @@ Avg Base Fee + Średnia opłata bazowa src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5504,6 +5578,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + Średni poziom opłaty bazowej pobieranej przez węzły routujące, z wyłączeniem opłat > 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5512,6 +5587,7 @@ Med Capacity + Mediana pojemności src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5520,6 +5596,7 @@ Med Fee Rate + Mediana poziomu opłat src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5528,6 +5605,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Mediana poziomu opłat pobieranych przez węzły routujące, z wyłączeniem opłat > 0.5% lub 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5536,6 +5614,7 @@ Med Base Fee + Mediana opłaty bazowej src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5544,6 +5623,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + Mediana opłaty bazowej pobieranej przez węzły routujące, z wyłączniem opłat > 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5552,6 +5632,7 @@ Lightning node group + Grupa węzłów Lightning src/app/lightning/group/group-preview.component.html 3,5 @@ -5564,6 +5645,7 @@ Nodes + Węzly src/app/lightning/group/group-preview.component.html 25,29 @@ -5604,6 +5686,7 @@ Liquidity + Płynność src/app/lightning/group/group-preview.component.html 29,31 @@ -5640,6 +5723,7 @@ Channels + Kanały src/app/lightning/group/group-preview.component.html 40,43 @@ -5700,6 +5784,7 @@ Average size + Średni rozmiar src/app/lightning/group/group-preview.component.html 44,46 @@ -5712,6 +5797,7 @@ Location + Lokalizacja src/app/lightning/group/group.component.html 74,77 @@ -5752,6 +5838,7 @@ Network Statistics + Statystyki sieci src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5760,6 +5847,7 @@ Channels Statistics + Statystyki kanałów src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5768,6 +5856,7 @@ Lightning Network History + Historia Lightning Network src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5776,6 +5865,7 @@ Liquidity Ranking + Ranking płynności src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5792,6 +5882,7 @@ Connectivity Ranking + Ranking łączności src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5804,6 +5895,7 @@ Percentage change past week + Zmiana procentowa w zeszłym tygodniu src/app/lightning/node-statistics/node-statistics.component.html 5,7 @@ -5820,6 +5912,7 @@ Lightning node + Węzeł lightning src/app/lightning/node/node-preview.component.html 3,5 @@ -5836,6 +5929,7 @@ Active capacity + Aktywna pojemność src/app/lightning/node/node-preview.component.html 20,22 @@ -5848,6 +5942,7 @@ Active channels + Aktywne kanały src/app/lightning/node/node-preview.component.html 26,30 @@ -5860,6 +5955,7 @@ Country + Państwo src/app/lightning/node/node-preview.component.html 44,47 @@ -5868,6 +5964,7 @@ No node found for public key "" + Nie odnaleziono węzła dla klucza publicznego &quot;&quot; src/app/lightning/node/node.component.html 17,19 @@ -5876,6 +5973,7 @@ Average channel size + Średni rozmiar kanału src/app/lightning/node/node.component.html 40,43 @@ -5884,6 +5982,7 @@ Unknown + Nieznany src/app/lightning/node/node.component.html 52,56 @@ -5904,6 +6003,7 @@ Color + Kolor src/app/lightning/node/node.component.html 75,77 @@ -5912,6 +6012,7 @@ ISP + ISP src/app/lightning/node/node.component.html 82,83 @@ -5924,6 +6025,7 @@ Exclusively on Tor + Wyłącznie na sieci Tor src/app/lightning/node/node.component.html 88,90 @@ -5932,6 +6034,7 @@ Open channels + Otwarte kanały src/app/lightning/node/node.component.html 145,148 @@ -5940,6 +6043,7 @@ Closed channels + Zamknięte kanały src/app/lightning/node/node.component.html 149,152 @@ -5948,6 +6052,7 @@ Node: + Węzeł: src/app/lightning/node/node.component.ts 42 @@ -5955,6 +6060,7 @@ (Tor nodes excluded) + (bez węzłów Tor) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -5975,6 +6081,7 @@ Lightning Nodes Channels World Map + Mapa światowa kanałów węzłów sieci Lightning src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -5982,6 +6089,7 @@ No geolocation data available + Brak danych geolokalizacyjnych src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 218,213 @@ -5989,6 +6097,7 @@ Active channels map + Mapa aktywnych kanałów src/app/lightning/nodes-channels/node-channels.component.html 2,3 @@ -5997,6 +6106,7 @@ Indexing in progess + Indeksowanie w toku src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6008,6 +6118,7 @@ Reachable on Clearnet Only + Osiągalny tylko na sieci jawnej src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6019,6 +6130,7 @@ Reachable on Clearnet and Darknet + Osiągalny na sieci jawnej i darknecie src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6030,6 +6142,7 @@ Reachable on Darknet Only + Osiągalny tylko w darknecie src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6041,6 +6154,7 @@ Share + Udostępnij src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6053,6 +6167,7 @@ nodes + węzłów src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6068,6 +6183,7 @@ BTC capacity + pojemność BTC src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6075,6 +6191,7 @@ Lightning nodes in + Węzły Lightning w src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6083,6 +6200,7 @@ ISP Count + Liczba ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6091,6 +6209,7 @@ Top ISP + Pierwszy ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6099,6 +6218,7 @@ Lightning nodes in + Węzły Lightning w src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6106,6 +6226,7 @@ Clearnet Capacity + Pojemność w jawnej sieci src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6118,6 +6239,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + Jaka jest płynność węzłów ogłaszających co najmniej jeden adres IP w clearnecie src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6126,6 +6248,7 @@ Unknown Capacity + Pojemność na nieokreślonej sieci src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6138,6 +6261,7 @@ How much liquidity is running on nodes which ISP was not identifiable + Jaka jest płynność węzłów, których ISP nie został zidentyfikowany src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6146,6 +6270,7 @@ Tor Capacity + Pojemność na sieci Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6158,6 +6283,7 @@ How much liquidity is running on nodes advertising only Tor addresses + Jaka jest płynność węzłów ogłaszających tylko adresy Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6166,6 +6292,7 @@ Top 100 ISPs hosting LN nodes + Ranking 100 ISP hostujących węzły LN src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6174,6 +6301,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6185,6 +6313,7 @@ Lightning ISP + ISP Lightning src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6193,6 +6322,7 @@ Top country + Pierwsze państwo src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6205,6 +6335,7 @@ Top node + Pierwszy węzeł src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6213,6 +6344,7 @@ Lightning nodes on ISP: [AS] + Węzły lightning na ISP: [AS] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6224,6 +6356,7 @@ Lightning nodes on ISP: + Węzły Lightning na ISP: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6232,6 +6365,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6240,6 +6374,7 @@ Top 100 oldest lightning nodes + Ranking 100 węzłów wg wieku src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6248,6 +6383,7 @@ Oldest lightning nodes + Najstarsze węzły Lightning src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 @@ -6255,6 +6391,7 @@ Top 100 nodes liquidity ranking + Ranking 100 węzłów wg płynności src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html 3,7 @@ -6263,6 +6400,7 @@ Top 100 nodes connectivity ranking + Ranking 100 węzłów wg łączności src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 3,7 @@ -6271,6 +6409,7 @@ Oldest nodes + Najstarsze węzły src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6279,6 +6418,7 @@ Top lightning nodes + Ranking węzłów lightning src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6286,6 +6426,7 @@ Indexing in progress + Indeksowanie w toku src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 diff --git a/frontend/src/locale/messages.ru.xlf b/frontend/src/locale/messages.ru.xlf index 2a1561494..53ae56dde 100644 --- a/frontend/src/locale/messages.ru.xlf +++ b/frontend/src/locale/messages.ru.xlf @@ -2038,6 +2038,7 @@ Template vs Mined + Шаблон против майнинга src/app/components/block-audit/block-audit.component.html 11,17 diff --git a/frontend/src/locale/messages.zh.xlf b/frontend/src/locale/messages.zh.xlf index 0c904271a..41ef83763 100644 --- a/frontend/src/locale/messages.zh.xlf +++ b/frontend/src/locale/messages.zh.xlf @@ -1804,6 +1804,7 @@ Group of assets + 个资产 src/app/components/assets/asset-group/asset-group.component.html 8,9 @@ -1836,6 +1837,7 @@ Featured + 精选 src/app/components/assets/assets-nav/assets-nav.component.html 9 @@ -1843,6 +1845,7 @@ All + 全部时间 src/app/components/assets/assets-nav/assets-nav.component.html 13 @@ -2035,6 +2038,7 @@ Template vs Mined + 预期协议与实际协议 src/app/components/block-audit/block-audit.component.html 11,17 @@ -2551,7 +2555,7 @@ Median fee - 中位数矿工手续费 + 中位矿工手续费 src/app/components/block/block-preview.component.html 36,37 @@ -2686,7 +2690,7 @@ Subsidy + fees: - 补贴+手续费: + 奖励+手续费: src/app/components/block/block.component.html 79,81 @@ -2972,7 +2976,7 @@ Remaining - 剩余 + 距离下次调整 src/app/components/difficulty/difficulty.component.html 7,9 @@ -3027,7 +3031,7 @@ Estimate - 预估 + 预估调整量 src/app/components/difficulty/difficulty.component.html 16,17 @@ -3062,7 +3066,7 @@ Next Halving - 下一个减半 + 距离下次奖励减半 src/app/components/difficulty/difficulty.component.html 50,52 @@ -3440,6 +3444,7 @@ Indexing network hashrate + 正在统计网络哈希率 src/app/components/indexing-progress/indexing-progress.component.html 2 @@ -3447,6 +3452,7 @@ Indexing pools hashrate + 正在统计矿池哈希率 src/app/components/indexing-progress/indexing-progress.component.html 3 @@ -3569,7 +3575,7 @@ (144 blocks) - (144个区块) + (近 144 个区块) src/app/components/mining-dashboard/mining-dashboard.component.html 11 @@ -3591,7 +3597,7 @@ Adjustments - 调整 + 难度调整 src/app/components/mining-dashboard/mining-dashboard.component.html 67 @@ -3600,6 +3606,7 @@ Pools luck (1 week) + 矿池幸运度(1 周) src/app/components/pool-ranking/pool-ranking.component.html 9 @@ -3608,6 +3615,7 @@ Pools luck + 矿池幸运度 src/app/components/pool-ranking/pool-ranking.component.html 9,11 @@ -3616,6 +3624,7 @@ 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. + 过去一周所有矿池的整体幸运值超过前一周。幸运值大于 100% 意味着当前阶段的平均出块时间少于 10 分钟 src/app/components/pool-ranking/pool-ranking.component.html 11,15 @@ -3624,7 +3633,7 @@ Pools count (1w) - 矿池数(1周) + 矿池数(近 1 周) src/app/components/pool-ranking/pool-ranking.component.html 17 @@ -3642,7 +3651,7 @@ How many unique pools found at least one block over the past week. - 过去一周挖出至少一个区块的独立矿池数量。 + 近 1 周挖出至少一个区块的独立矿池数量。 src/app/components/pool-ranking/pool-ranking.component.html 19,23 @@ -3651,7 +3660,7 @@ Blocks (1w) - 区块量(1周) + 区块量(近 1 周) src/app/components/pool-ranking/pool-ranking.component.html 25 @@ -3668,7 +3677,7 @@ The number of blocks found over the past week. - 过去一周中发现的区块总数。 + 近 1 周中发现的区块总数。 src/app/components/pool-ranking/pool-ranking.component.html 27,31 @@ -3712,6 +3721,7 @@ Pools Luck (1w) + 矿池幸运度(近 1 周) src/app/components/pool-ranking/pool-ranking.component.html 130,132 @@ -3720,6 +3730,7 @@ Pools Count (1w) + 矿池数(近 1 周) src/app/components/pool-ranking/pool-ranking.component.html 142,144 @@ -3812,7 +3823,7 @@ Hashrate (24h) - 哈希率(24小时) + 哈希率(近 24 小时) src/app/components/pool/pool.component.html 91,93 @@ -3854,6 +3865,7 @@ Reported + 实际 src/app/components/pool/pool.component.html 97,98 @@ -3874,6 +3886,7 @@ Luck + 加成后 src/app/components/pool/pool.component.html 98,101 @@ -3894,6 +3907,7 @@ Mined blocks + 已出块数 src/app/components/pool/pool.component.html 141,143 @@ -3914,7 +3928,7 @@ 24h - 24小时 + 近 24 小时 src/app/components/pool/pool.component.html 147 @@ -3927,7 +3941,7 @@ 1w - 一周 + 近 1 周 src/app/components/pool/pool.component.html 148 @@ -4001,7 +4015,7 @@ Amount being paid to miners in the past 144 blocks - 过去 144 区块已支付的手续费 + 近 144 个区块已支付的手续费 src/app/components/reward-stats/reward-stats.component.html 6,8 @@ -4031,7 +4045,7 @@ Average miners' reward per transaction in the past 144 blocks - 过去 144 个区块单个交易矿工平均奖励额 + 近 144 个区块中每笔交易平均矿工奖励 src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4067,7 +4081,7 @@ Fee paid on average for each transaction in the past 144 blocks - 过去 144 个区块每笔交易平均手续费 + 近 144 个区块每笔交易平均手续费 src/app/components/reward-stats/reward-stats.component.html 31,32 @@ -4811,6 +4825,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + 此交易支持手续费替换(RBF)且允许使用此方法追加费用 src/app/components/tx-features/tx-features.component.html 25 @@ -4833,7 +4848,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method - 此交易不支持按付费更替(RBF)且不能使用此方法增加费用 + 此交易不支持手续费替换(RBF)且不能使用此方法追加费用 src/app/components/tx-features/tx-features.component.html 26 @@ -5018,7 +5033,7 @@ Response - 回复 + 响应 src/app/docs/code-template/code-template.component.html 43,44 @@ -5060,6 +5075,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 36 @@ -5130,6 +5146,7 @@ Timelock delta + 时间锁变化量 src/app/lightning/channel/channel-box/channel-box.component.html 70 @@ -5281,6 +5298,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5395,6 +5413,7 @@ No channels to display + 没有可展示的频道 src/app/lightning/channels-list/channels-list.component.html 29,35 @@ -5403,7 +5422,7 @@ Alias - 别称 + 备注 src/app/lightning/channels-list/channels-list.component.html 35,37 @@ -5458,7 +5477,7 @@ sats - + sats src/app/lightning/channels-list/channels-list.component.html 61,65 @@ -5537,6 +5556,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + 节点平均费率,排除费率大于 0.5% 或 5000ppm 的节点 src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5558,6 +5578,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + 节点平均基础费率,排除费率大于 5000ppm 的节点 src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5566,7 +5587,7 @@ Med Capacity - 中位数容量 + 中位容量 src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5575,7 +5596,7 @@ Med Fee Rate - 中位数费率 + 中位费率 src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5584,6 +5605,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + 节点中位费率,排除费率大于 0.5% 或 5000ppm 的节点 src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5592,7 +5614,7 @@ Med Base Fee - 中位数基础费率 + 中位基础费率 src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5601,6 +5623,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + 节点中位基础费率,排除费率大于 5000ppm 的节点 src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5663,7 +5686,7 @@ Liquidity - 流动性 + 流通量 src/app/lightning/group/group-preview.component.html 29,31 @@ -5842,7 +5865,7 @@ Liquidity Ranking - 流动性排名 + 流通量排名 src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5872,7 +5895,7 @@ Percentage change past week - 过去一周中百分比变化 + 近 1 周中百分比变化 src/app/lightning/node-statistics/node-statistics.component.html 5,7 @@ -5941,6 +5964,7 @@ No node found for public key "" + 没有找到符合该公钥 的节点 src/app/lightning/node/node.component.html 17,19 @@ -5958,7 +5982,7 @@ Unknown - 位置的 + 未知 src/app/lightning/node/node.component.html 52,56 @@ -6001,7 +6025,7 @@ Exclusively on Tor - 仅在 Tor 上 + 仅在 Tor 网络上 src/app/lightning/node/node.component.html 88,90 @@ -6036,7 +6060,7 @@ (Tor nodes excluded) - (包含洋葱节点) + (包含 Tor 网络) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -6082,6 +6106,7 @@ Indexing in progess + 正在统计 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6093,7 +6118,7 @@ Reachable on Clearnet Only - 仅可在公开网络上访问 + 仅可在公网上访问 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6105,7 +6130,7 @@ Reachable on Clearnet and Darknet - 可在公开和暗网上访问 + 可在公网和暗网上访问 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6201,7 +6226,7 @@ Clearnet Capacity - 公开网络容量 + 公网网络容量 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6223,7 +6248,7 @@ Unknown Capacity - 未知容量 + 未知网络容量 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6245,7 +6270,7 @@ Tor Capacity - Tor 容量 + Tor 网络容量 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6258,7 +6283,7 @@ How much liquidity is running on nodes advertising only Tor addresses - 对外仅公布 Tor 地址的节点所提供的流动性 + 对外仅公布 Tor 网络地址的节点所提供的流动性 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6267,6 +6292,7 @@ Top 100 ISPs hosting LN nodes + Top 100 网络节点 ISP src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6309,6 +6335,7 @@ Top node + Top 节点 src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6391,6 +6418,7 @@ Top lightning nodes + Top 闪电网络节点 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6398,6 +6426,7 @@ Indexing in progress + 正在统计 src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 From 05d7ca2cd38b696ad9b1ae1ffa081e3856cf16ec Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 16 Jan 2023 10:23:44 -0600 Subject: [PATCH 0219/1466] Fix lightning page elements obscured by bottom nav --- .../block-fee-rates-graph.component.scss | 1 - .../block-fees-graph/block-fees-graph.component.scss | 1 - .../block-prediction-graph.component.scss | 1 - .../block-rewards-graph/block-rewards-graph.component.scss | 1 - .../block-sizes-weights-graph.component.scss | 1 - .../hashrate-chart/hashrate-chart.component.scss | 1 - .../hashrate-chart-pools.component.scss | 1 - .../lightning-dashboard/lightning-dashboard.component.html | 7 ++++--- .../nodes-networks-chart.component.scss | 1 - .../lightning-statistics-chart.component.scss | 1 - 10 files changed, 4 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.scss b/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.scss index c5a217983..f916bfc79 100644 --- a/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.scss +++ b/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss b/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss index c5a217983..f916bfc79 100644 --- a/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss +++ b/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss b/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss index c5a217983..f916bfc79 100644 --- a/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss +++ b/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss b/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss index c5a217983..f916bfc79 100644 --- a/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss +++ b/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss b/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss index 7b1395d78..e5e4bfd9a 100644 --- a/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss +++ b/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/components/hashrate-chart/hashrate-chart.component.scss b/frontend/src/app/components/hashrate-chart/hashrate-chart.component.scss index 3021cf689..8718caf9b 100644 --- a/frontend/src/app/components/hashrate-chart/hashrate-chart.component.scss +++ b/frontend/src/app/components/hashrate-chart/hashrate-chart.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.scss b/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.scss index c382d9886..b59e21af3 100644 --- a/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.scss +++ b/frontend/src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html index 16d02807c..143356838 100644 --- a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html +++ b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html @@ -83,11 +83,12 @@ - + -
diff --git a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.scss b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.scss index 4ff4dbf3e..366d75a94 100644 --- a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.scss +++ b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } diff --git a/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.scss b/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.scss index c9b835054..7c7d38ed9 100644 --- a/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.scss +++ b/frontend/src/app/lightning/statistics-chart/lightning-statistics-chart.component.scss @@ -23,7 +23,6 @@ min-height: 500px; height: calc(100% - 150px); @media (max-width: 992px) { - height: 100%; padding-bottom: 100px; }; } From f81e11e313aaa0fab1027ee5bc7fa2fefa3f3165 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 16 Jan 2023 12:04:24 -0600 Subject: [PATCH 0220/1466] Fix cpfp observable error --- .../src/app/components/transaction/transaction.component.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index cd85d0f4f..b32be6a8e 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -122,7 +122,11 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { } }), delay(2000) - ))) + )), + catchError(() => { + return of(null); + }) + ) ), catchError(() => { return of(null); From ce7e2e88015d70dc894c2a2f5863686f1e22e84a Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 15 Jan 2023 09:23:41 -0600 Subject: [PATCH 0221/1466] fix missing clipboard icons --- .../components/truncate/truncate.component.html | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/shared/components/truncate/truncate.component.html b/frontend/src/app/shared/components/truncate/truncate.component.html index c6dc17511..728f2e82a 100644 --- a/frontend/src/app/shared/components/truncate/truncate.component.html +++ b/frontend/src/app/shared/components/truncate/truncate.component.html @@ -1,12 +1,9 @@ - - {{text.slice(0,-lastChars)}} - {{text.slice(-lastChars)}} + + {{text.slice(0,-lastChars)}}{{text.slice(-lastChars)}} + + + {{text.slice(lastChars)}}{{text.slice(0,lastChars)}} + - - - {{text.slice(lastChars)}} - {{text.slice(0,lastChars)}} - - From dfd1de67b2e2154745295a1d5f8c1a9ac48c424a Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 16 Jan 2023 16:46:28 -0600 Subject: [PATCH 0222/1466] Fix hidden clipboard toast on transactions page --- .../src/app/components/transaction/transaction.component.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/app/components/transaction/transaction.component.scss b/frontend/src/app/components/transaction/transaction.component.scss index 6881fd14b..2208909ef 100644 --- a/frontend/src/app/components/transaction/transaction.component.scss +++ b/frontend/src/app/components/transaction/transaction.component.scss @@ -25,7 +25,6 @@ align-items: baseline; width: 0; max-width: 100%; - overflow: hidden; margin-right: 0px; margin-bottom: 0px; margin-top: 8px; From 73f2d54a2689d175ce8aaa0e734e6b4b30a9ce57 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 16 Jan 2023 16:47:05 -0600 Subject: [PATCH 0223/1466] support inner links in truncated string component --- .../bisq-address/bisq-address.component.html | 8 +++---- .../bisq-transaction.component.html | 6 ++--- .../address/address-preview.component.html | 4 +--- .../components/address/address.component.html | 16 +++++-------- .../app/components/asset/asset.component.html | 8 +++---- .../transaction/transaction.component.html | 23 +++++++------------ .../channel-box/channel-box.component.html | 8 +++---- .../channels-list.component.html | 8 +++---- .../app/lightning/node/node.component.html | 6 ++--- .../truncate/truncate.component.html | 18 +++++++++++---- .../truncate/truncate.component.scss | 8 +++++++ .../components/truncate/truncate.component.ts | 1 + 12 files changed, 56 insertions(+), 58 deletions(-) diff --git a/frontend/src/app/bisq/bisq-address/bisq-address.component.html b/frontend/src/app/bisq/bisq-address/bisq-address.component.html index 3a66b68b3..c2cbbb76a 100644 --- a/frontend/src/app/bisq/bisq-address/bisq-address.component.html +++ b/frontend/src/app/bisq/bisq-address/bisq-address.component.html @@ -1,11 +1,9 @@

Address

- - - - - + + +
diff --git a/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html b/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html index 0c53bceab..11f981774 100644 --- a/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html +++ b/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -7,11 +7,11 @@
- - + + - +
diff --git a/frontend/src/app/components/address/address-preview.component.html b/frontend/src/app/components/address/address-preview.component.html index 5ff9616af..1924d1a4c 100644 --- a/frontend/src/app/components/address/address-preview.component.html +++ b/frontend/src/app/components/address/address-preview.component.html @@ -14,9 +14,7 @@ Unconfidential - - - + diff --git a/frontend/src/app/components/address/address.component.html b/frontend/src/app/components/address/address.component.html index d6c141efa..d3b23315a 100644 --- a/frontend/src/app/components/address/address.component.html +++ b/frontend/src/app/components/address/address.component.html @@ -2,11 +2,9 @@

Address

@@ -22,11 +20,9 @@ Unconfidential - - - - - + + + diff --git a/frontend/src/app/components/asset/asset.component.html b/frontend/src/app/components/asset/asset.component.html index 1608f2355..862055f22 100644 --- a/frontend/src/app/components/asset/asset.component.html +++ b/frontend/src/app/components/asset/asset.component.html @@ -2,11 +2,9 @@

Asset

diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index 8c0cfe967..b1e9afaf2 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -3,20 +3,18 @@

Transaction

- - + + - +
@@ -158,9 +156,8 @@ Descendant - - - + + {{ cpfpTx.fee / (cpfpTx.weight / 4) | feeRounding }} sat/vB @@ -171,9 +168,7 @@ Descendant - - - + {{ cpfpInfo.bestDescendant.fee / (cpfpInfo.bestDescendant.weight / 4) | feeRounding }} sat/vB @@ -184,9 +179,7 @@ Ancestor - - - + {{ cpfpTx.fee / (cpfpTx.weight / 4) | feeRounding }} sat/vB diff --git a/frontend/src/app/lightning/channel/channel-box/channel-box.component.html b/frontend/src/app/lightning/channel/channel-box/channel-box.component.html index 7f098ac71..9fe9b100b 100644 --- a/frontend/src/app/lightning/channel/channel-box/channel-box.component.html +++ b/frontend/src/app/lightning/channel/channel-box/channel-box.component.html @@ -1,11 +1,9 @@

{{ channel.alias || '?' }}

- - - - - + + +
diff --git a/frontend/src/app/lightning/channels-list/channels-list.component.html b/frontend/src/app/lightning/channels-list/channels-list.component.html index 9fc92401a..f89100666 100644 --- a/frontend/src/app/lightning/channels-list/channels-list.component.html +++ b/frontend/src/app/lightning/channels-list/channels-list.component.html @@ -46,11 +46,9 @@
{{ node.alias || '?' }}
- - - - - + + +
diff --git a/frontend/src/app/lightning/node/node.component.html b/frontend/src/app/lightning/node/node.component.html index bc3f0dc9a..4331767ef 100644 --- a/frontend/src/app/lightning/node/node.component.html +++ b/frontend/src/app/lightning/node/node.component.html @@ -3,11 +3,11 @@

{{ node.alias }}

- - + + - +
diff --git a/frontend/src/app/shared/components/truncate/truncate.component.html b/frontend/src/app/shared/components/truncate/truncate.component.html index 728f2e82a..31d1b1b88 100644 --- a/frontend/src/app/shared/components/truncate/truncate.component.html +++ b/frontend/src/app/shared/components/truncate/truncate.component.html @@ -1,9 +1,19 @@ - - {{text.slice(0,-lastChars)}}{{text.slice(-lastChars)}} + + + + - - {{text.slice(lastChars)}}{{text.slice(0,lastChars)}} + + + + + {{text.slice(0,-lastChars)}}{{text.slice(-lastChars)}} + + + + {{text.slice(lastChars)}}{{text.slice(0,lastChars)}} + \ No newline at end of file diff --git a/frontend/src/app/shared/components/truncate/truncate.component.scss b/frontend/src/app/shared/components/truncate/truncate.component.scss index 357f40762..ea69e32c3 100644 --- a/frontend/src/app/shared/components/truncate/truncate.component.scss +++ b/frontend/src/app/shared/components/truncate/truncate.component.scss @@ -4,6 +4,14 @@ flex-direction: row; align-items: baseline; + .truncate-link { + display: flex; + flex-direction: row; + align-items: baseline; + flex-shrink: 1; + overflow: hidden; + } + .first { flex-grow: 0; flex-shrink: 1; diff --git a/frontend/src/app/shared/components/truncate/truncate.component.ts b/frontend/src/app/shared/components/truncate/truncate.component.ts index da9965be3..27e705997 100644 --- a/frontend/src/app/shared/components/truncate/truncate.component.ts +++ b/frontend/src/app/shared/components/truncate/truncate.component.ts @@ -7,6 +7,7 @@ import { Component, Input, Inject, LOCALE_ID } from '@angular/core'; }) export class TruncateComponent { @Input() text: string; + @Input() link: any = null; @Input() lastChars: number = 4; @Input() maxWidth: number = null; rtl: boolean; From 8e954d59db1622ea20f55693cf01379f4ca532fa Mon Sep 17 00:00:00 2001 From: softsimon Date: Tue, 17 Jan 2023 03:22:18 +0400 Subject: [PATCH 0224/1466] Use OnPush change detection --- .../src/app/shared/components/truncate/truncate.component.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/shared/components/truncate/truncate.component.ts b/frontend/src/app/shared/components/truncate/truncate.component.ts index 27e705997..9edc6ddb2 100644 --- a/frontend/src/app/shared/components/truncate/truncate.component.ts +++ b/frontend/src/app/shared/components/truncate/truncate.component.ts @@ -1,9 +1,10 @@ -import { Component, Input, Inject, LOCALE_ID } from '@angular/core'; +import { Component, Input, Inject, LOCALE_ID, ChangeDetectionStrategy } from '@angular/core'; @Component({ selector: 'app-truncate', templateUrl: './truncate.component.html', - styleUrls: ['./truncate.component.scss'] + styleUrls: ['./truncate.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class TruncateComponent { @Input() text: string; From 0481f5730471608d16315752a82fa8d0673fd846 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 9 Dec 2022 10:32:58 -0600 Subject: [PATCH 0225/1466] cache, serve & display more comprehensive RBF info --- backend/src/api/bitcoin/bitcoin.routes.ts | 25 ++++++++ backend/src/api/common.ts | 2 - backend/src/api/mempool.ts | 2 +- backend/src/api/rbf-cache.ts | 51 +++++++++++++--- backend/src/api/websocket-handler.ts | 2 +- .../transaction/transaction.component.html | 21 +++++-- .../transaction/transaction.component.scss | 6 ++ .../transaction/transaction.component.ts | 58 +++++++++++++++++++ frontend/src/app/services/api.service.ts | 10 +++- 9 files changed, 159 insertions(+), 18 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 2d77969a1..e359fa9a4 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -18,6 +18,7 @@ import blocks from '../blocks'; import bitcoinClient from './bitcoin-client'; import difficultyAdjustment from '../difficulty-adjustment'; import transactionRepository from '../../repositories/TransactionRepository'; +import rbfCache from '../rbf-cache'; class BitcoinRoutes { public initRoutes(app: Application) { @@ -31,6 +32,8 @@ class BitcoinRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'backend-info', this.getBackendInfo) .get(config.MEMPOOL.API_URL_PREFIX + 'init-data', this.getInitData) .get(config.MEMPOOL.API_URL_PREFIX + 'validate-address/:address', this.validateAddress) + .get(config.MEMPOOL.API_URL_PREFIX + 'tx/:txId/replaces', this.getRbfHistory) + .get(config.MEMPOOL.API_URL_PREFIX + 'tx/:txId/cached', this.getCachedTx) .post(config.MEMPOOL.API_URL_PREFIX + 'tx/push', this.$postTransactionForm) .get(config.MEMPOOL.API_URL_PREFIX + 'donations', async (req, res) => { try { @@ -589,6 +592,28 @@ class BitcoinRoutes { } } + private async getRbfHistory(req: Request, res: Response) { + try { + const result = rbfCache.getReplaces(req.params.txId); + res.json(result?.txids || []); + } catch (e) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } + + private async getCachedTx(req: Request, res: Response) { + try { + const result = rbfCache.getTx(req.params.txId); + if (result) { + res.json(result); + } else { + res.status(404).send('not found'); + } + } catch (e) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } + private async getTransactionOutspends(req: Request, res: Response) { try { const result = await bitcoinApi.$getOutspends(req.params.txId); diff --git a/backend/src/api/common.ts b/backend/src/api/common.ts index f0c5c6b88..18961d188 100644 --- a/backend/src/api/common.ts +++ b/backend/src/api/common.ts @@ -51,8 +51,6 @@ export class Common { static findRbfTransactions(added: TransactionExtended[], deleted: TransactionExtended[]): { [txid: string]: TransactionExtended } { const matches: { [txid: string]: TransactionExtended } = {}; deleted - // The replaced tx must have at least one input with nSequence < maxint-1 (That’s the opt-in) - .filter((tx) => tx.vin.some((vin) => vin.sequence < 0xfffffffe)) .forEach((deletedTx) => { const foundMatches = added.find((addedTx) => { // The new tx must, absolutely speaking, pay at least as much fee as the replaced tx. diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 717f4eebb..80dc846d7 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -210,7 +210,7 @@ class Mempool { for (const rbfTransaction in rbfTransactions) { if (this.mempoolCache[rbfTransaction]) { // Store replaced transactions - rbfCache.add(rbfTransaction, rbfTransactions[rbfTransaction].txid); + rbfCache.add(this.mempoolCache[rbfTransaction], rbfTransactions[rbfTransaction].txid); // Erase the replaced transactions from the local mempool delete this.mempoolCache[rbfTransaction]; } diff --git a/backend/src/api/rbf-cache.ts b/backend/src/api/rbf-cache.ts index 3162ad263..a81362655 100644 --- a/backend/src/api/rbf-cache.ts +++ b/backend/src/api/rbf-cache.ts @@ -1,31 +1,64 @@ +import { TransactionExtended } from "../mempool.interfaces"; + export interface CachedRbf { txid: string; expires: Date; } +export interface CachedRbfs { + txids: string[]; + expires: Date; +} + class RbfCache { - private cache: { [txid: string]: CachedRbf; } = {}; + private replacedby: { [txid: string]: CachedRbf; } = {}; + private replaces: { [txid: string]: CachedRbfs } = {}; + private txs: { [txid: string]: TransactionExtended } = {}; constructor() { setInterval(this.cleanup.bind(this), 1000 * 60 * 60); } - public add(replacedTxId: string, newTxId: string): void { - this.cache[replacedTxId] = { - expires: new Date(Date.now() + 1000 * 604800), // 1 week + public add(replacedTx: TransactionExtended, newTxId: string): void { + const expiry = new Date(Date.now() + 1000 * 604800); // 1 week + this.replacedby[replacedTx.txid] = { + expires: expiry, txid: newTxId, }; + this.txs[replacedTx.txid] = replacedTx; + if (!this.replaces[newTxId]) { + this.replaces[newTxId] = { + txids: [], + expires: expiry, + }; + } + this.replaces[newTxId].txids.push(replacedTx.txid); + this.replaces[newTxId].expires = expiry; } - public get(txId: string): CachedRbf | undefined { - return this.cache[txId]; + public getReplacedBy(txId: string): CachedRbf | undefined { + return this.replacedby[txId]; + } + + public getReplaces(txId: string): CachedRbfs | undefined { + return this.replaces[txId]; + } + + public getTx(txId: string): TransactionExtended | undefined { + return this.txs[txId]; } private cleanup(): void { const currentDate = new Date(); - for (const c in this.cache) { - if (this.cache[c].expires < currentDate) { - delete this.cache[c]; + for (const c in this.replacedby) { + if (this.replacedby[c].expires < currentDate) { + delete this.replacedby[c]; + delete this.txs[c]; + } + } + for (const c in this.replaces) { + if (this.replaces[c].expires < currentDate) { + delete this.replaces[c]; } } } diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index b6f32aa05..0007205be 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -58,7 +58,7 @@ class WebsocketHandler { client['track-tx'] = parsedMessage['track-tx']; // Client is telling the transaction wasn't found if (parsedMessage['watch-mempool']) { - const rbfCacheTx = rbfCache.get(client['track-tx']); + const rbfCacheTx = rbfCache.getReplacedBy(client['track-tx']); if (rbfCacheTx) { response['txReplaced'] = { txid: rbfCacheTx.txid, diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index b1e9afaf2..b85f1cd24 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -6,7 +6,17 @@
- + + +

Transaction

@@ -25,7 +35,10 @@ {{ i }} confirmations - + + + +
@@ -88,7 +101,7 @@
- + @@ -100,7 +113,7 @@ - + - + diff --git a/frontend/src/app/dashboard/dashboard.component.ts b/frontend/src/app/dashboard/dashboard.component.ts index 45b402314..1eb305220 100644 --- a/frontend/src/app/dashboard/dashboard.component.ts +++ b/frontend/src/app/dashboard/dashboard.component.ts @@ -1,5 +1,5 @@ -import { ChangeDetectionStrategy, Component, Inject, LOCALE_ID, OnInit } from '@angular/core'; -import { combineLatest, merge, Observable, of } from 'rxjs'; +import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core'; +import { combineLatest, merge, Observable, of, Subscription } from 'rxjs'; import { filter, map, scan, share, switchMap, tap } from 'rxjs/operators'; import { BlockExtended, OptimizedMempoolStats } from '../interfaces/node-api.interface'; import { MempoolInfo, TransactionStripped } from '../interfaces/websocket.interface'; @@ -7,7 +7,6 @@ import { ApiService } from '../services/api.service'; import { StateService } from '../services/state.service'; import { WebsocketService } from '../services/websocket.service'; import { SeoService } from '../services/seo.service'; -import { StorageService } from '../services/storage.service'; interface MempoolBlocksData { blocks: number; @@ -32,7 +31,7 @@ interface MempoolStatsData { styleUrls: ['./dashboard.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) -export class DashboardComponent implements OnInit { +export class DashboardComponent implements OnInit, OnDestroy { featuredAssets$: Observable; network$: Observable; mempoolBlocksData$: Observable; @@ -47,16 +46,20 @@ export class DashboardComponent implements OnInit { transactionsWeightPerSecondOptions: any; isLoadingWebSocket$: Observable; liquidPegsMonth$: Observable; + currencySubscription: Subscription; + currency: string; constructor( - @Inject(LOCALE_ID) private locale: string, public stateService: StateService, private apiService: ApiService, private websocketService: WebsocketService, - private seoService: SeoService, - private storageService: StorageService, + private seoService: SeoService ) { } + ngOnDestroy(): void { + this.currencySubscription.unsubscribe(); + } + ngOnInit(): void { this.isLoadingWebSocket$ = this.stateService.isLoadingWebSocket$; this.seoService.resetTitle(); @@ -213,6 +216,10 @@ export class DashboardComponent implements OnInit { share(), ); } + + this.currencySubscription = this.stateService.fiatCurrency$.subscribe((fiat) => { + this.currency = fiat; + }); } handleNewMempoolData(mempoolStats: OptimizedMempoolStats[]) { From 23636313263798c86537a993ca8ffb10edd3123e Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 12 Feb 2023 21:43:12 -0600 Subject: [PATCH 0300/1466] Add audit / block health config feature flag --- backend/mempool-config.sample.json | 1 + .../__fixtures__/mempool-config.template.json | 1 + backend/src/__tests__/config.test.ts | 1 + backend/src/api/blocks.ts | 8 +- backend/src/api/websocket-handler.ts | 80 ++++++++++--------- backend/src/config.ts | 2 + docker/backend/mempool-config.json | 1 + docker/backend/start.sh | 2 + docker/frontend/entrypoint.sh | 2 + frontend/mempool-frontend-config.sample.json | 1 + .../app/components/block/block.component.ts | 26 +++--- .../blocks-list/blocks-list.component.html | 6 +- .../blocks-list/blocks-list.component.ts | 4 +- .../components/graphs/graphs.component.html | 2 +- frontend/src/app/services/state.service.ts | 2 + production/mempool-config.mainnet.json | 1 + production/mempool-config.signet.json | 1 + production/mempool-config.testnet.json | 1 + .../mempool-frontend-config.mainnet.json | 3 +- 19 files changed, 88 insertions(+), 57 deletions(-) diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index 1f64214ce..f8417f0e7 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -25,6 +25,7 @@ "AUTOMATIC_BLOCK_REINDEXING": false, "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json", "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", + "AUDIT": false, "ADVANCED_GBT_AUDIT": false, "ADVANCED_GBT_MEMPOOL": false, "CPFP_INDEXING": false diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index e699c9458..f15d9c328 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -26,6 +26,7 @@ "INDEXING_BLOCKS_AMOUNT": 14, "POOLS_JSON_TREE_URL": "__POOLS_JSON_TREE_URL__", "POOLS_JSON_URL": "__POOLS_JSON_URL__", + "AUDIT": "__MEMPOOL_AUDIT__", "ADVANCED_GBT_AUDIT": "__MEMPOOL_ADVANCED_GBT_AUDIT__", "ADVANCED_GBT_MEMPOOL": "__MEMPOOL_ADVANCED_GBT_MEMPOOL__", "CPFP_INDEXING": "__MEMPOOL_CPFP_INDEXING__" diff --git a/backend/src/__tests__/config.test.ts b/backend/src/__tests__/config.test.ts index 4158d3df1..88083f479 100644 --- a/backend/src/__tests__/config.test.ts +++ b/backend/src/__tests__/config.test.ts @@ -38,6 +38,7 @@ describe('Mempool Backend Config', () => { STDOUT_LOG_MIN_PRIORITY: 'debug', POOLS_JSON_TREE_URL: 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', + AUDIT: false, ADVANCED_GBT_AUDIT: false, ADVANCED_GBT_MEMPOOL: false, CPFP_INDEXING: false, diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 902f1f13b..84c919e5d 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -211,9 +211,11 @@ class Blocks { }; } - const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(block.id); - if (auditScore != null) { - blockExtended.extras.matchRate = auditScore.matchRate; + if (config.MEMPOOL.AUDIT) { + const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(block.id); + if (auditScore != null) { + blockExtended.extras.matchRate = auditScore.matchRate; + } } } diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 3b6c62513..c1c3b3995 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -419,49 +419,51 @@ class WebsocketHandler { const _memPool = memPool.getMempool(); - let projectedBlocks; - // template calculation functions have mempool side effects, so calculate audits using - // a cloned copy of the mempool if we're running a different algorithm for mempool updates - const auditMempool = (config.MEMPOOL.ADVANCED_GBT_AUDIT === config.MEMPOOL.ADVANCED_GBT_MEMPOOL) ? _memPool : deepClone(_memPool); - if (config.MEMPOOL.ADVANCED_GBT_AUDIT) { - projectedBlocks = await mempoolBlocks.makeBlockTemplates(auditMempool, false); - } else { - projectedBlocks = mempoolBlocks.updateMempoolBlocks(auditMempool, false); - } + if (config.MEMPOOL.AUDIT) { + let projectedBlocks; + // template calculation functions have mempool side effects, so calculate audits using + // a cloned copy of the mempool if we're running a different algorithm for mempool updates + const auditMempool = (config.MEMPOOL.ADVANCED_GBT_AUDIT === config.MEMPOOL.ADVANCED_GBT_MEMPOOL) ? _memPool : deepClone(_memPool); + if (config.MEMPOOL.ADVANCED_GBT_AUDIT) { + projectedBlocks = await mempoolBlocks.makeBlockTemplates(auditMempool, false); + } else { + projectedBlocks = mempoolBlocks.updateMempoolBlocks(auditMempool, false); + } - if (Common.indexingEnabled() && memPool.isInSync()) { - const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, auditMempool); - const matchRate = Math.round(score * 100 * 100) / 100; + if (Common.indexingEnabled() && memPool.isInSync()) { + const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, auditMempool); + const matchRate = Math.round(score * 100 * 100) / 100; - const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => { - return { - txid: tx.txid, - vsize: tx.vsize, - fee: tx.fee ? Math.round(tx.fee) : 0, - value: tx.value, - }; - }) : []; + const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => { + return { + txid: tx.txid, + vsize: tx.vsize, + fee: tx.fee ? Math.round(tx.fee) : 0, + value: tx.value, + }; + }) : []; - BlocksSummariesRepository.$saveTemplate({ - height: block.height, - template: { - id: block.id, - transactions: stripped + BlocksSummariesRepository.$saveTemplate({ + height: block.height, + template: { + id: block.id, + transactions: stripped + } + }); + + BlocksAuditsRepository.$saveAudit({ + time: block.timestamp, + height: block.height, + hash: block.id, + addedTxs: added, + missingTxs: censored, + freshTxs: fresh, + matchRate: matchRate, + }); + + if (block.extras) { + block.extras.matchRate = matchRate; } - }); - - BlocksAuditsRepository.$saveAudit({ - time: block.timestamp, - height: block.height, - hash: block.id, - addedTxs: added, - missingTxs: censored, - freshTxs: fresh, - matchRate: matchRate, - }); - - if (block.extras) { - block.extras.matchRate = matchRate; } } diff --git a/backend/src/config.ts b/backend/src/config.ts index fb06c84fb..a5736996f 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -29,6 +29,7 @@ interface IConfig { AUTOMATIC_BLOCK_REINDEXING: boolean; POOLS_JSON_URL: string, POOLS_JSON_TREE_URL: string, + AUDIT: boolean; ADVANCED_GBT_AUDIT: boolean; ADVANCED_GBT_MEMPOOL: boolean; CPFP_INDEXING: boolean; @@ -150,6 +151,7 @@ const defaults: IConfig = { 'AUTOMATIC_BLOCK_REINDEXING': false, 'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', 'POOLS_JSON_TREE_URL': 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', + 'AUDIT': false, 'ADVANCED_GBT_AUDIT': false, 'ADVANCED_GBT_MEMPOOL': false, 'CPFP_INDEXING': false, diff --git a/docker/backend/mempool-config.json b/docker/backend/mempool-config.json index 2e3826f1d..17901acc4 100644 --- a/docker/backend/mempool-config.json +++ b/docker/backend/mempool-config.json @@ -23,6 +23,7 @@ "INDEXING_BLOCKS_AMOUNT": __MEMPOOL_INDEXING_BLOCKS_AMOUNT__, "BLOCKS_SUMMARIES_INDEXING": __MEMPOOL_BLOCKS_SUMMARIES_INDEXING__, "AUTOMATIC_BLOCK_REINDEXING": __MEMPOOL_AUTOMATIC_BLOCK_REINDEXING__, + "AUDIT": __MEMPOOL_AUDIT__, "ADVANCED_GBT_AUDIT": __MEMPOOL_ADVANCED_GBT_AUDIT__, "ADVANCED_GBT_MEMPOOL": __MEMPOOL_ADVANCED_GBT_MEMPOOL__, "CPFP_INDEXING": __MEMPOOL_CPFP_INDEXING__ diff --git a/docker/backend/start.sh b/docker/backend/start.sh index 5f33df107..e02706bce 100755 --- a/docker/backend/start.sh +++ b/docker/backend/start.sh @@ -27,6 +27,7 @@ __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.json} __MEMPOOL_POOLS_JSON_TREE_URL__=${MEMPOOL_POOLS_JSON_TREE_URL:=https://api.github.com/repos/mempool/mining-pools/git/trees/master} +__MEMPOOL_AUDIT__=${MEMPOOL_AUDIT:=false} __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} @@ -139,6 +140,7 @@ sed -i "s/__MEMPOOL_INDEXING_BLOCKS_AMOUNT__/${__MEMPOOL_INDEXING_BLOCKS_AMOUNT_ 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 +sed -i "s!__MEMPOOL_AUDIT__!${__MEMPOOL_AUDIT__}!g" mempool-config.json sed -i "s!__MEMPOOL_ADVANCED_GBT_MEMPOOL__!${__MEMPOOL_ADVANCED_GBT_MEMPOOL__}!g" mempool-config.json 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 diff --git a/docker/frontend/entrypoint.sh b/docker/frontend/entrypoint.sh index 3e2210360..18cb782e9 100644 --- a/docker/frontend/entrypoint.sh +++ b/docker/frontend/entrypoint.sh @@ -31,6 +31,7 @@ __LIQUID_WEBSITE_URL__=${LIQUID_WEBSITE_URL:=https://liquid.network} __BISQ_WEBSITE_URL__=${BISQ_WEBSITE_URL:=https://bisq.markets} __MINING_DASHBOARD__=${MINING_DASHBOARD:=true} __LIGHTNING__=${LIGHTNING:=false} +__AUDIT__=${AUDIT:=false} __MAINNET_BLOCK_AUDIT_START_HEIGHT__=${MAINNET_BLOCK_AUDIT_START_HEIGHT:=0} __TESTNET_BLOCK_AUDIT_START_HEIGHT__=${TESTNET_BLOCK_AUDIT_START_HEIGHT:=0} __SIGNET_BLOCK_AUDIT_START_HEIGHT__=${SIGNET_BLOCK_AUDIT_START_HEIGHT:=0} @@ -55,6 +56,7 @@ export __LIQUID_WEBSITE_URL__ export __BISQ_WEBSITE_URL__ export __MINING_DASHBOARD__ export __LIGHTNING__ +export __AUDIT__ export __MAINNET_BLOCK_AUDIT_START_HEIGHT__ export __TESTNET_BLOCK_AUDIT_START_HEIGHT__ export __SIGNET_BLOCK_AUDIT_START_HEIGHT__ diff --git a/frontend/mempool-frontend-config.sample.json b/frontend/mempool-frontend-config.sample.json index 5c0f92acf..9035315a4 100644 --- a/frontend/mempool-frontend-config.sample.json +++ b/frontend/mempool-frontend-config.sample.json @@ -17,6 +17,7 @@ "LIQUID_WEBSITE_URL": "https://liquid.network", "BISQ_WEBSITE_URL": "https://bisq.markets", "MINING_DASHBOARD": true, + "AUDIT": false, "MAINNET_BLOCK_AUDIT_START_HEIGHT": 0, "TESTNET_BLOCK_AUDIT_START_HEIGHT": 0, "SIGNET_BLOCK_AUDIT_START_HEIGHT": 0, diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index f1ebfed6a..668d0af48 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -58,7 +58,7 @@ export class BlockComponent implements OnInit, OnDestroy { overviewError: any = null; webGlEnabled = true; indexingAvailable = false; - auditModeEnabled: boolean = !this.stateService.hideAudit.value; + auditModeEnabled: boolean = this.stateService.env.AUDIT && !this.stateService.hideAudit.value; auditAvailable = true; showAudit: boolean; isMobile = window.innerWidth <= 767.98; @@ -110,12 +110,15 @@ export class BlockComponent implements OnInit, OnDestroy { }); this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); - this.setAuditAvailable(this.indexingAvailable); - this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { - this.auditModeEnabled = !hide; - this.showAudit = this.auditAvailable && this.auditModeEnabled; - }); + this.setAuditAvailable(this.stateService.env.AUDIT && this.indexingAvailable); + + if (this.stateService.env.AUDIT) { + this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { + this.auditModeEnabled = !hide; + this.showAudit = this.auditAvailable && this.auditModeEnabled; + }); + } this.txsLoadingStatus$ = this.route.paramMap .pipe( @@ -221,7 +224,9 @@ export class BlockComponent implements OnInit, OnDestroy { setTimeout(() => { this.nextBlockSubscription = this.apiService.getBlock$(block.previousblockhash).subscribe(); this.nextBlockTxListSubscription = this.electrsApiService.getBlockTransactions$(block.previousblockhash).subscribe(); - this.apiService.getBlockAudit$(block.previousblockhash); + if (this.stateService.env.AUDIT) { + this.apiService.getBlockAudit$(block.previousblockhash); + } }, 100); } this.updateAuditAvailableFromBlockHeight(block.height); @@ -269,7 +274,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.isLoadingOverview = false; }); - if (!this.indexingAvailable) { + if (!this.indexingAvailable || !this.stateService.env.AUDIT) { this.overviewSubscription = block$.pipe( startWith(null), pairwise(), @@ -300,7 +305,7 @@ export class BlockComponent implements OnInit, OnDestroy { }); } - if (this.indexingAvailable) { + if (this.indexingAvailable && this.stateService.env.AUDIT) { this.auditSubscription = block$.pipe( startWith(null), pairwise(), @@ -613,6 +618,9 @@ export class BlockComponent implements OnInit, OnDestroy { } updateAuditAvailableFromBlockHeight(blockHeight: number): void { + if (!this.stateService.env.AUDIT) { + this.setAuditAvailable(false); + } switch (this.stateService.network) { case 'testnet': if (blockHeight < this.stateService.env.TESTNET_BLOCK_AUDIT_START_HEIGHT) { diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.html b/frontend/src/app/components/blocks-list/blocks-list.component.html index 424ea2ec4..46da3fa91 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.html +++ b/frontend/src/app/components/blocks-list/blocks-list.component.html @@ -14,7 +14,7 @@ i18n-ngbTooltip="mining.pool-name" ngbTooltip="Pool" placement="bottom" #miningpool [disableTooltip]="!isEllipsisActive(miningpool)">Pool - @@ -45,7 +45,7 @@ - - - @@ -45,7 +45,7 @@ - - - + - + From 3beb85dd4a217008ea1c8bcc3d640708a6b918d8 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 16:41:09 +0900 Subject: [PATCH 0304/1466] Add footer to all dashboards --- .../mining-dashboard.component.html | 20 +++++++++++++++++++ .../mining-dashboard.component.scss | 19 ++++++++++++++++++ .../lightning-dashboard.component.html | 18 +++++++++++++++-- .../lightning-dashboard.component.scss | 19 ++++++++++++++++++ 4 files changed, 74 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/mining-dashboard/mining-dashboard.component.html b/frontend/src/app/components/mining-dashboard/mining-dashboard.component.html index 36aec8906..1a932567c 100644 --- a/frontend/src/app/components/mining-dashboard/mining-dashboard.component.html +++ b/frontend/src/app/components/mining-dashboard/mining-dashboard.component.html @@ -74,4 +74,24 @@ + +
+
+ +
+
+ +
+
+ + + +
+ diff --git a/frontend/src/app/components/mining-dashboard/mining-dashboard.component.scss b/frontend/src/app/components/mining-dashboard/mining-dashboard.component.scss index 303591974..218b8e04d 100644 --- a/frontend/src/app/components/mining-dashboard/mining-dashboard.component.scss +++ b/frontend/src/app/components/mining-dashboard/mining-dashboard.component.scss @@ -103,4 +103,23 @@ margin-bottom: 10px; text-decoration: none; color: inherit; +} + +.terms-of-service { + margin-top: 1rem; +} + +.pref-selectors { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + + .selector { + margin-left: .5em; + margin-bottom: .5em; + &:first { + margin-left: 0; + } + } } \ No newline at end of file diff --git a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html index a371f474d..030019b3c 100644 --- a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html +++ b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html @@ -84,8 +84,22 @@ -
- Connect to our nodes +
+
+ +
+
+ +
+
+ +
diff --git a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.scss b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.scss index 303591974..218b8e04d 100644 --- a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.scss +++ b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.scss @@ -103,4 +103,23 @@ margin-bottom: 10px; text-decoration: none; color: inherit; +} + +.terms-of-service { + margin-top: 1rem; +} + +.pref-selectors { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + + .selector { + margin-left: .5em; + margin-bottom: .5em; + &:first { + margin-left: 0; + } + } } \ No newline at end of file From 5e10b75b87d43da71031718da9708f5ce0e2ef9c Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 17:33:30 +0900 Subject: [PATCH 0305/1466] Fix lightning dashboard btc/fiat UI issue --- .../channels-statistics/channels-statistics.component.html | 4 ++-- .../lightning/node-statistics/node-statistics.component.html | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html b/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html index bedcc0ded..44e19b8f6 100644 --- a/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html +++ b/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html @@ -17,7 +17,7 @@ sats
- + @@ -63,7 +63,7 @@ sats - + diff --git a/frontend/src/app/lightning/node-statistics/node-statistics.component.html b/frontend/src/app/lightning/node-statistics/node-statistics.component.html index 74c14c8b0..97df1f546 100644 --- a/frontend/src/app/lightning/node-statistics/node-statistics.component.html +++ b/frontend/src/app/lightning/node-statistics/node-statistics.component.html @@ -5,11 +5,10 @@
- +
- - +
From 9734052477dff2e59c04c43b93576a3afb946443 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 17:45:29 +0900 Subject: [PATCH 0306/1466] Fix database used when database disabled --- backend/src/api/pools-parser.ts | 2 +- backend/src/index.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index c3cc994a2..e37414bbe 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -127,7 +127,7 @@ class PoolsParser { if (!equals(JSON.parse(existingPool.addresses), poolObj.addresses) || !equals(JSON.parse(existingPool.regexes), poolObj.regexes)) { finalPoolDataUpdate.push(poolObj); } - } else { + } else if (config.DATABASE.ENABLED) { // Double check that if we're not just renaming a pool (same address same regex) const [poolToRename]: any[] = await DB.query(` SELECT * FROM pools diff --git a/backend/src/index.ts b/backend/src/index.ts index cad675e27..a81275066 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -105,7 +105,9 @@ class Server { .use(express.text({ type: ['text/plain', 'application/base64'] })) ; - await priceUpdater.$initializeLatestPriceWithDb(); + if (config.DATABASE.ENABLED) { + await priceUpdater.$initializeLatestPriceWithDb(); + } this.server = http.createServer(this.app); this.wss = new WebSocket.Server({ server: this.server }); From 408b0a23ce992814672d2e127446108c25ee02a9 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 18:06:22 +0900 Subject: [PATCH 0307/1466] Disable fiat display on pools blocks and ln channel component --- frontend/src/app/components/pool/pool.component.html | 4 ++-- .../lightning/channel/channel-box/channel-box.component.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/pool/pool.component.html b/frontend/src/app/components/pool/pool.component.html index ef907215c..53982ca86 100644 --- a/frontend/src/app/components/pool/pool.component.html +++ b/frontend/src/app/components/pool/pool.component.html @@ -235,10 +235,10 @@ - + From d483362a9b60c26ec09ddfa7c9307a05f581e6aa Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 4 Mar 2023 10:51:13 +0900 Subject: [PATCH 0479/1466] Handle missing price (show 0) --- backend/src/api/websocket-handler.ts | 9 +- backend/src/mempool.interfaces.ts | 1 - backend/src/repositories/PricesRepository.ts | 154 ++++++++++++------ backend/src/tasks/price-feeds/bitfinex-api.ts | 3 - backend/src/tasks/price-updater.ts | 36 ++-- .../components/amount/amount.component.html | 8 +- frontend/src/app/fiat/fiat.component.html | 6 +- frontend/src/app/services/price.service.ts | 4 +- 8 files changed, 141 insertions(+), 80 deletions(-) diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index c1c3b3995..a96264825 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -1,8 +1,8 @@ import logger from '../logger'; import * as WebSocket from 'ws'; import { - BlockExtended, TransactionExtended, WebsocketResponse, MempoolBlock, MempoolBlockDelta, - OptimizedStatistic, ILoadingIndicators, IConversionRates + BlockExtended, TransactionExtended, WebsocketResponse, + OptimizedStatistic, ILoadingIndicators } from '../mempool.interfaces'; import blocks from './blocks'; import memPool from './mempool'; @@ -20,6 +20,7 @@ import BlocksSummariesRepository from '../repositories/BlocksSummariesRepository import Audit from './audit'; import { deepClone } from '../utils/clone'; import priceUpdater from '../tasks/price-updater'; +import { ApiPrice } from '../repositories/PricesRepository'; class WebsocketHandler { private wss: WebSocket.Server | undefined; @@ -193,7 +194,7 @@ class WebsocketHandler { }); } - handleNewConversionRates(conversionRates: IConversionRates) { + handleNewConversionRates(conversionRates: ApiPrice) { if (!this.wss) { throw new Error('WebSocket.Server is not set'); } @@ -214,7 +215,7 @@ class WebsocketHandler { 'mempoolInfo': memPool.getMempoolInfo(), 'vBytesPerSecond': memPool.getVBytesPerSecond(), 'blocks': _blocks, - 'conversions': priceUpdater.latestPrices, + 'conversions': priceUpdater.getLatestPrices(), 'mempool-blocks': mempoolBlocks.getMempoolBlocks(), 'transactions': memPool.getLatestTransactions(), 'backendInfo': backendInfo.getBackendInfo(), diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index a7937e01d..8662770bc 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -293,7 +293,6 @@ interface RequiredParams { } export interface ILoadingIndicators { [name: string]: number; } -export interface IConversionRates { [currency: string]: number; } export interface IBackendInfo { hostname: string; diff --git a/backend/src/repositories/PricesRepository.ts b/backend/src/repositories/PricesRepository.ts index 6493735ee..4cbc06afd 100644 --- a/backend/src/repositories/PricesRepository.ts +++ b/backend/src/repositories/PricesRepository.ts @@ -1,6 +1,5 @@ import DB from '../database'; import logger from '../logger'; -import { IConversionRates } from '../mempool.interfaces'; import priceUpdater from '../tasks/price-updater'; export interface ApiPrice { @@ -13,6 +12,16 @@ export interface ApiPrice { AUD: number, JPY: number, } +const ApiPriceFields = ` + UNIX_TIMESTAMP(time) as time, + USD, + EUR, + GBP, + CAD, + CHF, + AUD, + JPY +`; export interface ExchangeRates { USDEUR: number, @@ -39,7 +48,7 @@ export const MAX_PRICES = { }; class PricesRepository { - public async $savePrices(time: number, prices: IConversionRates): Promise { + public async $savePrices(time: number, prices: ApiPrice): Promise { if (prices.USD === -1) { // Some historical price entries have no USD prices, so we just ignore them to avoid future UX issues // As of today there are only 4 (on 2013-09-05, 2013-0909, 2013-09-12 and 2013-09-26) so that's fine @@ -60,77 +69,115 @@ class PricesRepository { VALUE (FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ? )`, [time, prices.USD, prices.EUR, prices.GBP, prices.CAD, prices.CHF, prices.AUD, prices.JPY] ); - } catch (e: any) { + } catch (e) { logger.err(`Cannot save exchange rate into db. Reason: ` + (e instanceof Error ? e.message : e)); throw e; } } public async $getOldestPriceTime(): Promise { - const [oldestRow] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != 0 ORDER BY time LIMIT 1`); + const [oldestRow] = await DB.query(` + SELECT UNIX_TIMESTAMP(time) AS time + FROM prices + ORDER BY time + LIMIT 1 + `); return oldestRow[0] ? oldestRow[0].time : 0; } public async $getLatestPriceId(): Promise { - const [oldestRow] = await DB.query(`SELECT id from prices WHERE USD != 0 ORDER BY time DESC LIMIT 1`); - return oldestRow[0] ? oldestRow[0].id : null; - } - - public async $getLatestPriceTime(): Promise { - const [oldestRow] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != 0 ORDER BY time DESC LIMIT 1`); - return oldestRow[0] ? oldestRow[0].time : 0; - } - - public async $getPricesTimes(): Promise { - const [times]: any[] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != 0 ORDER BY time`); - return times.map(time => time.time); - } - - public async $getPricesTimesAndId(): Promise { - const [times]: any[] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time, id, USD from prices ORDER BY time`); - return times; - } - - public async $getLatestConversionRates(): Promise { - const [rates]: any[] = await DB.query(` - SELECT USD, EUR, GBP, CAD, CHF, AUD, JPY + const [oldestRow] = await DB.query(` + SELECT id FROM prices ORDER BY time DESC LIMIT 1` ); - if (!rates || rates.length === 0) { + return oldestRow[0] ? oldestRow[0].id : null; + } + + public async $getLatestPriceTime(): Promise { + const [oldestRow] = await DB.query(` + SELECT UNIX_TIMESTAMP(time) AS time + FROM prices + ORDER BY time DESC + LIMIT 1` + ); + return oldestRow[0] ? oldestRow[0].time : 0; + } + + public async $getPricesTimes(): Promise { + const [times] = await DB.query(` + SELECT UNIX_TIMESTAMP(time) AS time + FROM prices + WHERE USD != -1 + ORDER BY time + `); + if (!Array.isArray(times)) { + return []; + } + return times.map(time => time.time); + } + + public async $getPricesTimesAndId(): Promise<{time: number, id: number, USD: number}[]> { + const [times] = await DB.query(` + SELECT + UNIX_TIMESTAMP(time) AS time, + id, + USD + FROM prices + ORDER BY time + `); + return times as {time: number, id: number, USD: number}[]; + } + + public async $getLatestConversionRates(): Promise { + const [rates] = await DB.query(` + SELECT ${ApiPriceFields} + FROM prices + ORDER BY time DESC + LIMIT 1` + ); + + if (!Array.isArray(rates) || rates.length === 0) { return priceUpdater.getEmptyPricesObj(); } - return rates[0]; + return rates[0] as ApiPrice; } public async $getNearestHistoricalPrice(timestamp: number | undefined): Promise { try { - const [rates]: any[] = await DB.query(` - SELECT *, UNIX_TIMESTAMP(time) AS time + const [rates] = await DB.query(` + SELECT ${ApiPriceFields} FROM prices WHERE UNIX_TIMESTAMP(time) < ? ORDER BY time DESC LIMIT 1`, [timestamp] ); - if (!rates) { + if (!Array.isArray(rates)) { throw Error(`Cannot get single historical price from the database`); } // Compute fiat exchange rates - const latestPrice = await this.$getLatestConversionRates(); + let latestPrice = rates[0] as ApiPrice; + if (latestPrice.USD === -1) { + latestPrice = priceUpdater.getEmptyPricesObj(); + } + + const computeFx = (usd: number, other: number): number => + Math.round(Math.max(other, 0) / Math.max(usd, 1) * 100) / 100; + const exchangeRates: ExchangeRates = { - USDEUR: Math.round(latestPrice.EUR / latestPrice.USD * 100) / 100, - USDGBP: Math.round(latestPrice.GBP / latestPrice.USD * 100) / 100, - USDCAD: Math.round(latestPrice.CAD / latestPrice.USD * 100) / 100, - USDCHF: Math.round(latestPrice.CHF / latestPrice.USD * 100) / 100, - USDAUD: Math.round(latestPrice.AUD / latestPrice.USD * 100) / 100, - USDJPY: Math.round(latestPrice.JPY / latestPrice.USD * 100) / 100, + USDEUR: computeFx(latestPrice.USD, latestPrice.EUR), + USDGBP: computeFx(latestPrice.USD, latestPrice.GBP), + USDCAD: computeFx(latestPrice.USD, latestPrice.CAD), + USDCHF: computeFx(latestPrice.USD, latestPrice.CHF), + USDAUD: computeFx(latestPrice.USD, latestPrice.AUD), + USDJPY: computeFx(latestPrice.USD, latestPrice.JPY), }; return { - prices: rates, + prices: rates as ApiPrice[], exchangeRates: exchangeRates }; } catch (e) { @@ -141,28 +188,35 @@ class PricesRepository { public async $getHistoricalPrices(): Promise { try { - const [rates]: any[] = await DB.query(` - SELECT *, UNIX_TIMESTAMP(time) AS time + const [rates] = await DB.query(` + SELECT ${ApiPriceFields} FROM prices ORDER BY time DESC `); - if (!rates) { + if (!Array.isArray(rates)) { throw Error(`Cannot get average historical price from the database`); } // Compute fiat exchange rates - const latestPrice: ApiPrice = rates[0]; + let latestPrice = rates[0] as ApiPrice; + if (latestPrice.USD === -1) { + latestPrice = priceUpdater.getEmptyPricesObj(); + } + + const computeFx = (usd: number, other: number): number => + Math.round(Math.max(other, 0) / Math.max(usd, 1) * 100) / 100; + const exchangeRates: ExchangeRates = { - USDEUR: Math.round(latestPrice.EUR / latestPrice.USD * 100) / 100, - USDGBP: Math.round(latestPrice.GBP / latestPrice.USD * 100) / 100, - USDCAD: Math.round(latestPrice.CAD / latestPrice.USD * 100) / 100, - USDCHF: Math.round(latestPrice.CHF / latestPrice.USD * 100) / 100, - USDAUD: Math.round(latestPrice.AUD / latestPrice.USD * 100) / 100, - USDJPY: Math.round(latestPrice.JPY / latestPrice.USD * 100) / 100, + USDEUR: computeFx(latestPrice.USD, latestPrice.EUR), + USDGBP: computeFx(latestPrice.USD, latestPrice.GBP), + USDCAD: computeFx(latestPrice.USD, latestPrice.CAD), + USDCHF: computeFx(latestPrice.USD, latestPrice.CHF), + USDAUD: computeFx(latestPrice.USD, latestPrice.AUD), + USDJPY: computeFx(latestPrice.USD, latestPrice.JPY), }; return { - prices: rates, + prices: rates as ApiPrice[], exchangeRates: exchangeRates }; } catch (e) { diff --git a/backend/src/tasks/price-feeds/bitfinex-api.ts b/backend/src/tasks/price-feeds/bitfinex-api.ts index 0e06c3af7..30b70e9eb 100644 --- a/backend/src/tasks/price-feeds/bitfinex-api.ts +++ b/backend/src/tasks/price-feeds/bitfinex-api.ts @@ -8,9 +8,6 @@ class BitfinexApi implements PriceFeed { public url: string = 'https://api.bitfinex.com/v1/pubticker/BTC'; public urlHist: string = 'https://api-pub.bitfinex.com/v2/candles/trade:{GRANULARITY}:tBTC{CURRENCY}/hist'; - constructor() { - } - public async $fetchPrice(currency): Promise { const response = await query(this.url + currency); if (response && response['last_price']) { diff --git a/backend/src/tasks/price-updater.ts b/backend/src/tasks/price-updater.ts index b39e152ae..ccb8d3e68 100644 --- a/backend/src/tasks/price-updater.ts +++ b/backend/src/tasks/price-updater.ts @@ -2,8 +2,7 @@ import * as fs from 'fs'; import path from 'path'; import config from '../config'; import logger from '../logger'; -import { IConversionRates } from '../mempool.interfaces'; -import PricesRepository, { MAX_PRICES } from '../repositories/PricesRepository'; +import PricesRepository, { ApiPrice, MAX_PRICES } from '../repositories/PricesRepository'; import BitfinexApi from './price-feeds/bitfinex-api'; import BitflyerApi from './price-feeds/bitflyer-api'; import CoinbaseApi from './price-feeds/coinbase-api'; @@ -21,18 +20,18 @@ export interface PriceFeed { } export interface PriceHistory { - [timestamp: number]: IConversionRates; + [timestamp: number]: ApiPrice; } class PriceUpdater { public historyInserted = false; - lastRun = 0; - lastHistoricalRun = 0; - running = false; - feeds: PriceFeed[] = []; - currencies: string[] = ['USD', 'EUR', 'GBP', 'CAD', 'CHF', 'AUD', 'JPY']; - latestPrices: IConversionRates; - private ratesChangedCallback: ((rates: IConversionRates) => void) | undefined; + private lastRun = 0; + private lastHistoricalRun = 0; + private running = false; + private feeds: PriceFeed[] = []; + private currencies: string[] = ['USD', 'EUR', 'GBP', 'CAD', 'CHF', 'AUD', 'JPY']; + private latestPrices: ApiPrice; + private ratesChangedCallback: ((rates: ApiPrice) => void) | undefined; constructor() { this.latestPrices = this.getEmptyPricesObj(); @@ -44,8 +43,13 @@ class PriceUpdater { this.feeds.push(new GeminiApi()); } - public getEmptyPricesObj(): IConversionRates { + public getLatestPrices(): ApiPrice { + return this.latestPrices; + } + + public getEmptyPricesObj(): ApiPrice { return { + time: 0, USD: -1, EUR: -1, GBP: -1, @@ -56,7 +60,7 @@ class PriceUpdater { }; } - public setRatesChangedCallback(fn: (rates: IConversionRates) => void) { + public setRatesChangedCallback(fn: (rates: ApiPrice) => void): void { this.ratesChangedCallback = fn; } @@ -156,6 +160,10 @@ class PriceUpdater { } this.lastRun = new Date().getTime() / 1000; + + if (this.latestPrices.USD === -1) { + this.latestPrices = await PricesRepository.$getLatestConversionRates(); + } } /** @@ -224,7 +232,7 @@ class PriceUpdater { // Group them by timestamp and currency, for example // grouped[123456789]['USD'] = [1, 2, 3, 4]; - const grouped: any = {}; + const grouped = {}; for (const historicalEntry of historicalPrices) { for (const time in historicalEntry) { if (existingPriceTimes.includes(parseInt(time, 10))) { @@ -249,7 +257,7 @@ class PriceUpdater { // Average prices and insert everything into the db let totalInserted = 0; for (const time in grouped) { - const prices: IConversionRates = this.getEmptyPricesObj(); + const prices: ApiPrice = this.getEmptyPricesObj(); for (const currency in grouped[time]) { if (grouped[time][currency].length === 0) { continue; diff --git a/frontend/src/app/components/amount/amount.component.html b/frontend/src/app/components/amount/amount.component.html index ce9c02d78..27fd59110 100644 --- a/frontend/src/app/components/amount/amount.component.html +++ b/frontend/src/app/components/amount/amount.component.html @@ -3,13 +3,15 @@ {{ addPlus && satoshis >= 0 ? '+' : '' }} {{ ( - (blockConversion.price[currency] >= 0 ? blockConversion.price[currency] : null) ?? - (blockConversion.price['USD'] * blockConversion.exchangeRates['USD' + currency]) ?? 0 + (blockConversion.price[currency] > -1 ? blockConversion.price[currency] : null) ?? + (blockConversion.price['USD'] > -1 ? blockConversion.price['USD'] * blockConversion.exchangeRates['USD' + currency] : null) ?? 0 ) * satoshis / 100000000 | fiatCurrency : digitsInfo : currency }} - {{ addPlus && satoshis >= 0 ? '+' : '' }}{{ (conversions ? conversions[currency] : 0) * satoshis / 100000000 | fiatCurrency : digitsInfo : currency }} + {{ addPlus && satoshis >= 0 ? '+' : '' }} + {{ (conversions[currency] > -1 ? conversions[currency] : 0) * satoshis / 100000000 | fiatCurrency : digitsInfo : currency }} + diff --git a/frontend/src/app/fiat/fiat.component.html b/frontend/src/app/fiat/fiat.component.html index 998153d29..00dd1250a 100644 --- a/frontend/src/app/fiat/fiat.component.html +++ b/frontend/src/app/fiat/fiat.component.html @@ -1,14 +1,14 @@ {{ ( - (blockConversion.price[currency] >= 0 ? blockConversion.price[currency] : null) ?? - (blockConversion.price['USD'] * blockConversion.exchangeRates['USD' + currency]) ?? 0 + (blockConversion.price[currency] > -1 ? blockConversion.price[currency] : null) ?? + (blockConversion.price['USD'] > -1 ? blockConversion.price['USD'] * blockConversion.exchangeRates['USD' + currency] : null) ?? 0 ) * value / 100000000 | fiatCurrency : digitsInfo : currency }} - {{ (conversions[currency] ?? conversions['USD'] ?? 0) * value / 100000000 | fiatCurrency : digitsInfo : currency }} + {{ (conversions[currency] > -1 ? conversions[currency] : 0) * value / 100000000 | fiatCurrency : digitsInfo : currency }} \ No newline at end of file diff --git a/frontend/src/app/services/price.service.ts b/frontend/src/app/services/price.service.ts index 93c4ce449..4236205ca 100644 --- a/frontend/src/app/services/price.service.ts +++ b/frontend/src/app/services/price.service.ts @@ -89,7 +89,7 @@ export class PriceService { return this.singlePriceObservable$.pipe( map((conversion) => { if (conversion.prices.length <= 0) { - return this.getEmptyPrice(); + return undefined; } return { price: { @@ -113,7 +113,7 @@ export class PriceService { return this.priceObservable$.pipe( map((conversion) => { - if (!blockTimestamp) { + if (!blockTimestamp || !conversion) { return undefined; } From e0c3c732d17d4c05831245f7f07c85def8a3d19e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 4 Mar 2023 10:55:27 +0900 Subject: [PATCH 0480/1466] Fix incorrect db schema version in db migration script --- backend/src/api/database-migration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index b09380d2f..5063866f4 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -637,7 +637,7 @@ class DatabaseMigration { queries.push(`INSERT INTO state(name, number, string) VALUES ('last_weekly_hashrates_indexing', 0, NULL)`); } - if (version < 55) { + if (version < 58) { queries.push(`DELETE FROM state WHERE name = 'last_hashrates_indexing'`); queries.push(`DELETE FROM state WHERE name = 'last_weekly_hashrates_indexing'`); } From 4e684989791bd2d5719ab4b3e71dbcab1697af48 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 3 Mar 2023 22:45:11 -0600 Subject: [PATCH 0481/1466] blockchain momentum scrolling --- .../app/components/start/start.component.ts | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/start/start.component.ts b/frontend/src/app/components/start/start.component.ts index 22507303e..d83ae2dec 100644 --- a/frontend/src/app/components/start/start.component.ts +++ b/frontend/src/app/components/start/start.component.ts @@ -38,6 +38,9 @@ export class StartComponent implements OnInit, OnDestroy { pageIndex: number = 0; pages: any[] = []; pendingMark: number | void = null; + lastUpdate: number = 0; + lastMouseX: number; + velocity: number = 0; constructor( private stateService: StateService, @@ -136,6 +139,7 @@ export class StartComponent implements OnInit, OnDestroy { onMouseDown(event: MouseEvent) { this.mouseDragStartX = event.clientX; + this.resetMomentum(event.clientX); this.blockchainScrollLeftInit = this.blockchainContainer.nativeElement.scrollLeft; } onPointerDown(event: PointerEvent) { @@ -159,6 +163,7 @@ export class StartComponent implements OnInit, OnDestroy { @HostListener('document:mousemove', ['$event']) onMouseMove(event: MouseEvent): void { if (this.mouseDragStartX != null) { + this.updateVelocity(event.clientX); this.stateService.setBlockScrollingInProgress(true); this.blockchainContainer.nativeElement.scrollLeft = this.blockchainScrollLeftInit + this.mouseDragStartX - event.clientX; @@ -167,7 +172,7 @@ export class StartComponent implements OnInit, OnDestroy { @HostListener('document:mouseup', []) onMouseUp() { this.mouseDragStartX = null; - this.stateService.setBlockScrollingInProgress(false); + this.animateMomentum(); } @HostListener('document:pointermove', ['$event']) onPointerMove(event: PointerEvent): void { @@ -183,6 +188,43 @@ export class StartComponent implements OnInit, OnDestroy { } } + resetMomentum(x: number) { + this.lastUpdate = performance.now(); + this.lastMouseX = x; + this.velocity = 0; + } + + updateVelocity(x: number) { + const now = performance.now(); + const dt = now - this.lastUpdate; + this.lastUpdate = now; + const velocity = (x - this.lastMouseX) / dt; + this.velocity = (0.8 * this.velocity) + (0.2 * velocity); + this.lastMouseX = x; + } + + animateMomentum() { + this.lastUpdate = performance.now(); + requestAnimationFrame(() => { + const now = performance.now(); + const dt = now - this.lastUpdate; + this.lastUpdate = now; + if (Math.abs(this.velocity) < 0.005) { + this.stateService.setBlockScrollingInProgress(false); + } else { + const deceleration = Math.max(0.0025, 0.001 * this.velocity * this.velocity) * (this.velocity > 0 ? -1 : 1); + const displacement = (this.velocity * dt) - (0.5 * (deceleration * dt * dt)); + const dv = (deceleration * dt); + if ((this.velocity < 0 && dv + this.velocity > 0) || (this.velocity > 0 && dv + this.velocity < 0)) { + this.velocity = 0; + } else { + this.velocity += dv; + } + this.blockchainContainer.nativeElement.scrollLeft -= displacement; + this.animateMomentum(); + } + }); + } onScroll(e) { const middlePage = this.pageIndex === 0 ? this.pages[0] : this.pages[1]; From 059139689d05e408772a155f2f0d2390d889b3d0 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 3 Mar 2023 23:39:01 -0600 Subject: [PATCH 0482/1466] Fix blockchain scrolling on high refresh-rate devices --- frontend/src/app/components/start/start.component.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/components/start/start.component.ts b/frontend/src/app/components/start/start.component.ts index d83ae2dec..77c8fd7f2 100644 --- a/frontend/src/app/components/start/start.component.ts +++ b/frontend/src/app/components/start/start.component.ts @@ -196,11 +196,13 @@ export class StartComponent implements OnInit, OnDestroy { updateVelocity(x: number) { const now = performance.now(); - const dt = now - this.lastUpdate; - this.lastUpdate = now; - const velocity = (x - this.lastMouseX) / dt; - this.velocity = (0.8 * this.velocity) + (0.2 * velocity); - this.lastMouseX = x; + let dt = now - this.lastUpdate; + if (dt > 0) { + this.lastUpdate = now; + const velocity = (x - this.lastMouseX) / dt; + this.velocity = (0.8 * this.velocity) + (0.2 * velocity); + this.lastMouseX = x; + } } animateMomentum() { From a37bcfec651350aca47dc21921440186dbe7818f Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sat, 4 Mar 2023 00:10:47 -0600 Subject: [PATCH 0483/1466] drop decimal places from large fiat values --- frontend/src/app/shared/pipes/fiat-currency.pipe.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/shared/pipes/fiat-currency.pipe.ts b/frontend/src/app/shared/pipes/fiat-currency.pipe.ts index 3cd825291..2ae796d2b 100644 --- a/frontend/src/app/shared/pipes/fiat-currency.pipe.ts +++ b/frontend/src/app/shared/pipes/fiat-currency.pipe.ts @@ -23,6 +23,10 @@ export class FiatCurrencyPipe implements PipeTransform { const digits = args[0] || 1; const currency = args[1] || this.currency || 'USD'; - return new Intl.NumberFormat(this.locale, { style: 'currency', currency }).format(num); + if (num >= 1000) { + return new Intl.NumberFormat(this.locale, { style: 'currency', currency, maximumFractionDigits: 0 }).format(num); + } else { + return new Intl.NumberFormat(this.locale, { style: 'currency', currency }).format(num); + } } } \ No newline at end of file From ec2e7a46eb08fede14a7e493c11e35bc289b1eea Mon Sep 17 00:00:00 2001 From: softsimon Date: Sat, 4 Mar 2023 15:19:56 +0900 Subject: [PATCH 0484/1466] Correct incoming transaction progress colors fixes #3216 --- .../src/app/dashboard/dashboard.component.html | 2 +- frontend/src/app/dashboard/dashboard.component.ts | 15 +++------------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/dashboard/dashboard.component.html b/frontend/src/app/dashboard/dashboard.component.html index f3d96e187..7c3caccad 100644 --- a/frontend/src/app/dashboard/dashboard.component.html +++ b/frontend/src/app/dashboard/dashboard.component.html @@ -250,7 +250,7 @@
-
 
+
 
‎{{ mempoolInfoData.value.vBytesPerSecond | ceil | number }} vB/s
diff --git a/frontend/src/app/dashboard/dashboard.component.ts b/frontend/src/app/dashboard/dashboard.component.ts index 1eb305220..7e4645fe0 100644 --- a/frontend/src/app/dashboard/dashboard.component.ts +++ b/frontend/src/app/dashboard/dashboard.component.ts @@ -78,21 +78,12 @@ export class DashboardComponent implements OnInit, OnDestroy { map(([mempoolInfo, vbytesPerSecond]) => { const percent = Math.round((Math.min(vbytesPerSecond, this.vBytesPerSecondLimit) / this.vBytesPerSecondLimit) * 100); - let progressColor = '#7CB342'; + let progressColor = 'bg-success'; if (vbytesPerSecond > 1667) { - progressColor = '#FDD835'; - } - if (vbytesPerSecond > 2000) { - progressColor = '#FFB300'; - } - if (vbytesPerSecond > 2500) { - progressColor = '#FB8C00'; + progressColor = 'bg-warning'; } if (vbytesPerSecond > 3000) { - progressColor = '#F4511E'; - } - if (vbytesPerSecond > 3500) { - progressColor = '#D81B60'; + progressColor = 'bg-danger'; } const mempoolSizePercentage = (mempoolInfo.usage / mempoolInfo.maxmempool * 100); From 269dcb2b16a120a217468b97d852104f8dba2882 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sat, 4 Mar 2023 00:22:50 -0600 Subject: [PATCH 0485/1466] Fix overlapping columns in cpfp table on small screens --- .../app/components/transaction/transaction.component.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frontend/src/app/components/transaction/transaction.component.scss b/frontend/src/app/components/transaction/transaction.component.scss index 47c8baa4a..bea8e82bc 100644 --- a/frontend/src/app/components/transaction/transaction.component.scss +++ b/frontend/src/app/components/transaction/transaction.component.scss @@ -204,6 +204,12 @@ .txids { width: 60%; } + + @media (max-width: 500px) { + .txids { + width: 40%; + } + } } .tx-list { From f8624020e8504d9da98a9b7b5e7f7b4bfef00ac3 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 29 Jan 2023 21:18:44 +0400 Subject: [PATCH 0486/1466] Bisq markets search bar fix fixes #2986 --- .../search-form/search-form.component.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/search-form/search-form.component.ts b/frontend/src/app/components/search-form/search-form.component.ts index a4dbf5985..af5ccc654 100644 --- a/frontend/src/app/components/search-form/search-form.component.ts +++ b/frontend/src/app/components/search-form/search-form.component.ts @@ -107,7 +107,13 @@ export class SearchFormComponent implements OnInit { }))), ); }), - tap((result: any[]) => { + map((result: any[]) => { + if (this.network === 'bisq') { + result[0] = result[0].map((address: string) => 'B' + address); + } + return result; + }), + tap(() => { this.isTypeaheading$.next(false); }) ); @@ -126,7 +132,7 @@ export class SearchFormComponent implements OnInit { ] ).pipe( map((latestData) => { - const searchText = latestData[0]; + let searchText = latestData[0]; if (!searchText.length) { return { searchText: '', @@ -144,15 +150,15 @@ export class SearchFormComponent implements OnInit { const addressPrefixSearchResults = result[0]; const lightningResults = result[1]; - if (this.network === 'bisq') { - return searchText.map((address: string) => 'B' + address); - } - const matchesBlockHeight = this.regexBlockheight.test(searchText); const matchesTxId = this.regexTransaction.test(searchText) && !this.regexBlockhash.test(searchText); const matchesBlockHash = this.regexBlockhash.test(searchText); const matchesAddress = this.regexAddress.test(searchText); + if (matchesAddress && this.network === 'bisq') { + searchText = 'B' + searchText; + } + return { searchText: searchText, hashQuickMatch: +(matchesBlockHeight || matchesBlockHash || matchesTxId || matchesAddress), From 5fb4eac4b754c4f9f8b265b5ccb2b7299c378910 Mon Sep 17 00:00:00 2001 From: wiz Date: Sat, 4 Mar 2023 15:53:49 +0900 Subject: [PATCH 0487/1466] ops: Add missing /api/address-prefix nginx route for bisq --- production/nginx/server-bisq.conf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/production/nginx/server-bisq.conf b/production/nginx/server-bisq.conf index 2ea99843b..76b0d304c 100644 --- a/production/nginx/server-bisq.conf +++ b/production/nginx/server-bisq.conf @@ -9,6 +9,10 @@ location /api/tx/ { rewrite ^/api/(.*) /$1 break; try_files /dev/null @esplora-api-cache-disabled; } +location /api/address-prefix/ { + rewrite ^/api/(.*) /$1 break; + try_files /dev/null @esplora-api-cache-disabled; +} # rewrite APIs to match what backend expects location /api/currencies { From 82b08449284dca91838cc67de9dbe21bbed07928 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Fri, 3 Mar 2023 02:07:36 -0500 Subject: [PATCH 0488/1466] Make faq disclaimer more responsive --- frontend/src/app/docs/api-docs/api-docs.component.html | 3 ++- frontend/src/app/docs/api-docs/api-docs.component.scss | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 8c8d6ac36..1e5494650 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -10,7 +10,8 @@
-
ETA diff --git a/frontend/src/app/components/transaction/transaction.component.scss b/frontend/src/app/components/transaction/transaction.component.scss index 2208909ef..47c8baa4a 100644 --- a/frontend/src/app/components/transaction/transaction.component.scss +++ b/frontend/src/app/components/transaction/transaction.component.scss @@ -204,4 +204,10 @@ .txids { width: 60%; } +} + +.tx-list { + .alert-link { + display: block; + } } \ No newline at end of file diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index b32be6a8e..7e1ae525e 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -40,15 +40,21 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { transactionTime = -1; subscription: Subscription; fetchCpfpSubscription: Subscription; + fetchRbfSubscription: Subscription; + fetchCachedTxSubscription: Subscription; txReplacedSubscription: Subscription; blocksSubscription: Subscription; queryParamsSubscription: Subscription; urlFragmentSubscription: Subscription; fragmentParams: URLSearchParams; rbfTransaction: undefined | Transaction; + replaced: boolean = false; + rbfReplaces: string[]; cpfpInfo: CpfpInfo | null; showCpfpDetails = false; fetchCpfp$ = new Subject(); + fetchRbfHistory$ = new Subject(); + fetchCachedTx$ = new Subject(); now = new Date().getTime(); timeAvg$: Observable; liquidUnblinding = new LiquidUnblinding(); @@ -159,6 +165,49 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { this.cpfpInfo = cpfpInfo; }); + this.fetchRbfSubscription = this.fetchRbfHistory$ + .pipe( + switchMap((txId) => + this.apiService + .getRbfHistory$(txId) + ), + catchError(() => { + return of([]); + }) + ).subscribe((replaces) => { + this.rbfReplaces = replaces; + }); + + this.fetchCachedTxSubscription = this.fetchCachedTx$ + .pipe( + switchMap((txId) => + this.apiService + .getRbfCachedTx$(txId) + ), + catchError(() => { + return of(null); + }) + ).subscribe((tx) => { + if (!tx) { + return; + } + + this.tx = tx; + if (tx.fee === undefined) { + this.tx.fee = 0; + } + this.tx.feePerVsize = tx.fee / (tx.weight / 4); + this.isLoadingTx = false; + this.error = undefined; + this.waitingForTransaction = false; + this.graphExpanded = false; + this.setupGraph(); + + if (!this.tx?.status?.confirmed) { + this.fetchRbfHistory$.next(this.tx.txid); + } + }); + this.subscription = this.route.paramMap .pipe( switchMap((params: ParamMap) => { @@ -272,6 +321,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { } else { this.fetchCpfp$.next(this.tx.txid); } + this.fetchRbfHistory$.next(this.tx.txid); } setTimeout(() => { this.applyFragment(); }, 0); }, @@ -303,6 +353,10 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { } this.rbfTransaction = rbfTransaction; this.cacheService.setTxCache([this.rbfTransaction]); + this.replaced = true; + if (rbfTransaction && !this.tx) { + this.fetchCachedTx$.next(this.txId); + } }); this.queryParamsSubscription = this.route.queryParams.subscribe((params) => { @@ -368,8 +422,10 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { this.waitingForTransaction = false; this.isLoadingTx = true; this.rbfTransaction = undefined; + this.replaced = false; this.transactionTime = -1; this.cpfpInfo = null; + this.rbfReplaces = []; this.showCpfpDetails = false; document.body.scrollTo(0, 0); this.leaveTransaction(); @@ -435,6 +491,8 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { ngOnDestroy() { this.subscription.unsubscribe(); this.fetchCpfpSubscription.unsubscribe(); + this.fetchRbfSubscription.unsubscribe(); + this.fetchCachedTxSubscription.unsubscribe(); this.txReplacedSubscription.unsubscribe(); this.blocksSubscription.unsubscribe(); this.queryParamsSubscription.unsubscribe(); diff --git a/frontend/src/app/services/api.service.ts b/frontend/src/app/services/api.service.ts index f813959e3..6eff41f61 100644 --- a/frontend/src/app/services/api.service.ts +++ b/frontend/src/app/services/api.service.ts @@ -5,7 +5,7 @@ import { CpfpInfo, OptimizedMempoolStats, AddressInformation, LiquidPegs, ITrans import { Observable } from 'rxjs'; import { StateService } from './state.service'; import { WebsocketResponse } from '../interfaces/websocket.interface'; -import { Outspend } from '../interfaces/electrs.interface'; +import { Outspend, Transaction } from '../interfaces/electrs.interface'; @Injectable({ providedIn: 'root' @@ -119,6 +119,14 @@ export class ApiService { return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/validate-address/' + address); } + getRbfHistory$(txid: string): Observable { + return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/tx/' + txid + '/replaces'); + } + + getRbfCachedTx$(txid: string): Observable { + return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/tx/' + txid + '/cached'); + } + listLiquidPegsMonth$(): Observable { return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/liquid/pegs/month'); } From d77853062044de76026162c76e5f2937a481c819 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 9 Dec 2022 14:35:51 -0600 Subject: [PATCH 0226/1466] keep cached RBF info for 24 hours after tx leaves the mempool --- backend/src/api/bitcoin/bitcoin.routes.ts | 2 +- backend/src/api/mempool.ts | 1 + backend/src/api/rbf-cache.ts | 64 +++++++++++------------ backend/src/api/websocket-handler.ts | 7 +-- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index e359fa9a4..ea8154206 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -595,7 +595,7 @@ class BitcoinRoutes { private async getRbfHistory(req: Request, res: Response) { try { const result = rbfCache.getReplaces(req.params.txId); - res.json(result?.txids || []); + res.json(result || []); } catch (e) { res.status(500).send(e instanceof Error ? e.message : e); } diff --git a/backend/src/api/mempool.ts b/backend/src/api/mempool.ts index 80dc846d7..4c475502c 100644 --- a/backend/src/api/mempool.ts +++ b/backend/src/api/mempool.ts @@ -236,6 +236,7 @@ class Mempool { const lazyDeleteAt = this.mempoolCache[tx].deleteAfter; if (lazyDeleteAt && lazyDeleteAt < now) { delete this.mempoolCache[tx]; + rbfCache.evict(tx); } } } diff --git a/backend/src/api/rbf-cache.ts b/backend/src/api/rbf-cache.ts index a81362655..410239e73 100644 --- a/backend/src/api/rbf-cache.ts +++ b/backend/src/api/rbf-cache.ts @@ -1,46 +1,29 @@ import { TransactionExtended } from "../mempool.interfaces"; -export interface CachedRbf { - txid: string; - expires: Date; -} - -export interface CachedRbfs { - txids: string[]; - expires: Date; -} - class RbfCache { - private replacedby: { [txid: string]: CachedRbf; } = {}; - private replaces: { [txid: string]: CachedRbfs } = {}; + private replacedBy: { [txid: string]: string; } = {}; + private replaces: { [txid: string]: string[] } = {}; private txs: { [txid: string]: TransactionExtended } = {}; + private expiring: { [txid: string]: Date } = {}; constructor() { setInterval(this.cleanup.bind(this), 1000 * 60 * 60); } public add(replacedTx: TransactionExtended, newTxId: string): void { - const expiry = new Date(Date.now() + 1000 * 604800); // 1 week - this.replacedby[replacedTx.txid] = { - expires: expiry, - txid: newTxId, - }; + this.replacedBy[replacedTx.txid] = newTxId; this.txs[replacedTx.txid] = replacedTx; if (!this.replaces[newTxId]) { - this.replaces[newTxId] = { - txids: [], - expires: expiry, - }; + this.replaces[newTxId] = []; } - this.replaces[newTxId].txids.push(replacedTx.txid); - this.replaces[newTxId].expires = expiry; + this.replaces[newTxId].push(replacedTx.txid); } - public getReplacedBy(txId: string): CachedRbf | undefined { - return this.replacedby[txId]; + public getReplacedBy(txId: string): string | undefined { + return this.replacedBy[txId]; } - public getReplaces(txId: string): CachedRbfs | undefined { + public getReplaces(txId: string): string[] | undefined { return this.replaces[txId]; } @@ -48,17 +31,32 @@ class RbfCache { return this.txs[txId]; } + // flag a transaction as removed from the mempool + public evict(txid): void { + this.expiring[txid] = new Date(Date.now() + 1000 * 86400); // 24 hours + } + private cleanup(): void { const currentDate = new Date(); - for (const c in this.replacedby) { - if (this.replacedby[c].expires < currentDate) { - delete this.replacedby[c]; - delete this.txs[c]; + for (const txid in this.expiring) { + if (this.expiring[txid] < currentDate) { + delete this.expiring[txid]; + this.remove(txid); } } - for (const c in this.replaces) { - if (this.replaces[c].expires < currentDate) { - delete this.replaces[c]; + } + + // remove a transaction & all previous versions from the cache + private remove(txid): void { + // don't remove a transaction while a newer version remains in the mempool + if (this.replaces[txid] && !this.replacedBy[txid]) { + const replaces = this.replaces[txid]; + delete this.replaces[txid]; + for (const tx of replaces) { + // recursively remove prior versions from the cache + delete this.replacedBy[tx]; + delete this.txs[tx]; + this.remove(tx); } } } diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 0007205be..3ca49293d 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -58,10 +58,10 @@ class WebsocketHandler { client['track-tx'] = parsedMessage['track-tx']; // Client is telling the transaction wasn't found if (parsedMessage['watch-mempool']) { - const rbfCacheTx = rbfCache.getReplacedBy(client['track-tx']); - if (rbfCacheTx) { + const rbfCacheTxid = rbfCache.getReplacedBy(client['track-tx']); + if (rbfCacheTxid) { response['txReplaced'] = { - txid: rbfCacheTx.txid, + txid: rbfCacheTxid, }; client['track-tx'] = null; } else { @@ -467,6 +467,7 @@ class WebsocketHandler { for (const txId of txIds) { delete _memPool[txId]; removed.push(txId); + rbfCache.evict(txId); } if (config.MEMPOOL.ADVANCED_GBT_MEMPOOL) { From 7da308c1e170841e69573ab8d9def877b6738a03 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 14 Dec 2022 08:56:46 -0600 Subject: [PATCH 0227/1466] fix RBF detection --- backend/src/api/common.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/common.ts b/backend/src/api/common.ts index 18961d188..9b647c5b4 100644 --- a/backend/src/api/common.ts +++ b/backend/src/api/common.ts @@ -59,7 +59,7 @@ export class Common { && addedTx.feePerVsize > deletedTx.feePerVsize // Spends one or more of the same inputs && deletedTx.vin.some((deletedVin) => - addedTx.vin.some((vin) => vin.txid === deletedVin.txid)); + addedTx.vin.some((vin) => vin.txid === deletedVin.txid && vin.vout === deletedVin.vout)); }); if (foundMatches) { matches[deletedTx.txid] = foundMatches; From c5f9682b5b8b5986a2b57a9fbfef35c329d753c8 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 18 Jan 2023 15:48:01 -0600 Subject: [PATCH 0228/1466] fix overflowing tables on ln nodes-per-x chart pages --- .../nodes-per-country-chart.component.html | 2 +- .../nodes-per-country-chart.component.scss | 15 ++++++++++----- .../nodes-per-isp-chart.component.html | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html b/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html index 9928d57a8..8279a2d5f 100644 --- a/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html +++ b/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -21,7 +21,7 @@
- +
diff --git a/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.scss b/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.scss index 97a3e76f6..70b01d8b3 100644 --- a/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.scss +++ b/frontend/src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.scss @@ -42,14 +42,14 @@ } .rank { - width: 20%; + width: 8%; @media (max-width: 576px) { display: none } } .name { - width: 20%; + width: 36%; @media (max-width: 576px) { width: 80%; max-width: 150px; @@ -59,21 +59,21 @@ } .share { - width: 20%; + width: 15%; @media (max-width: 576px) { display: none } } .nodes { - width: 20%; + width: 15%; @media (max-width: 576px) { width: 10%; } } .capacity { - width: 20%; + width: 26%; @media (max-width: 576px) { width: 10%; max-width: 100px; @@ -91,3 +91,8 @@ a:hover .link { .flag { font-size: 20px; } + +.text-truncate .link { + overflow: hidden; + text-overflow: ellipsis; +} diff --git a/frontend/src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html b/frontend/src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html index 60f5ca9d4..c73e936c0 100644 --- a/frontend/src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html +++ b/frontend/src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -51,7 +51,7 @@ -
Rank
+
From e842aa814ecaec824c531ed366ca0a6e97f40551 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 18 Jan 2023 15:54:56 -0600 Subject: [PATCH 0229/1466] fix overlapping legend on block fee rates chart --- .../block-fee-rates-graph/block-fee-rates-graph.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts b/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts index 762e49c74..cbf33933c 100644 --- a/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts +++ b/frontend/src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts @@ -213,6 +213,7 @@ export class BlockFeeRatesGraphComponent implements OnInit { }, }, legend: (data.series.length === 0) ? undefined : { + padding: [10, 75], data: data.legends, selected: JSON.parse(this.storageService.getValue('fee_rates_legend')) ?? { 'Min': true, From d89b313db8414937b3cf800831a025cf0d8aee27 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 18 Jan 2023 16:35:14 -0600 Subject: [PATCH 0230/1466] fix overflowing node ranking widgets --- .../lightning-dashboard/lightning-dashboard.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html index 16d02807c..b997b6e6d 100644 --- a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html +++ b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html @@ -56,7 +56,7 @@
Rank
+
@@ -29,10 +29,10 @@ {{ node.channels | number }} - + diff --git a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts index e30f40b9a..6702c4d62 100644 --- a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts +++ b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts @@ -11,6 +11,7 @@ export class BlockOverviewTooltipComponent implements OnChanges { @Input() tx: TransactionStripped | void; @Input() cursorPosition: Position; @Input() clickable: boolean; + @Input() auditEnabled: boolean = false; txid = ''; fee = 0; From 2c2003af5a94ce099ee0a839106bbb1b2e5efc5c Mon Sep 17 00:00:00 2001 From: softsimon Date: Fri, 27 Jan 2023 14:18:50 +0400 Subject: [PATCH 0247/1466] Fix for disabling block audit below block height --- frontend/src/app/components/block/block.component.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 719d38528..05c5db41a 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -616,17 +616,17 @@ export class BlockComponent implements OnInit, OnDestroy { switch (this.stateService.network) { case 'testnet': if (blockHeight < this.stateService.env.TESTNET_BLOCK_AUDIT_START_HEIGHT) { - this.setAuditAvailable(true); + this.setAuditAvailable(false); } break; case 'signet': if (blockHeight < this.stateService.env.SIGNET_BLOCK_AUDIT_START_HEIGHT) { - this.setAuditAvailable(true); + this.setAuditAvailable(false); } break; default: if (blockHeight < this.stateService.env.MAINNET_BLOCK_AUDIT_START_HEIGHT) { - this.setAuditAvailable(true); + this.setAuditAvailable(false); } } } From 92352e145362a10aa030e1a5c033b0b58657eb06 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 27 Jan 2023 18:32:15 -0600 Subject: [PATCH 0248/1466] Fix blockchain gaps when KEEP_BLOCKS_AMOUNT > INITIAL_BLOCKS_AMOUNT --- .../blockchain-blocks.component.ts | 9 ++++++--- .../app/components/start/start.component.ts | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts index 1ee0edb66..fb37cf72a 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts @@ -26,6 +26,7 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy { specialBlocks = specialBlocks; network = ''; blocks: BlockchainBlock[] = []; + dynamicBlocksAmount: number = 8; emptyBlocks: BlockExtended[] = this.mountEmptyBlocks(); markHeight: number; blocksSubscription: Subscription; @@ -70,6 +71,8 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy { } ngOnInit() { + this.dynamicBlocksAmount = Math.min(8, this.stateService.env.KEEP_BLOCKS_AMOUNT); + if (['', 'testnet', 'signet'].includes(this.stateService.network)) { this.enabledMiningInfoIfNeeded(this.location.path()); this.location.onUrlChange((url) => this.enabledMiningInfoIfNeeded(url)); @@ -100,7 +103,7 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy { } this.blocks.unshift(block); - this.blocks = this.blocks.slice(0, this.stateService.env.KEEP_BLOCKS_AMOUNT); + this.blocks = this.blocks.slice(0, this.dynamicBlocksAmount); if (txConfirmed) { this.markHeight = block.height; @@ -121,7 +124,7 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy { this.blocks.forEach((b, i) => this.blockStyles.push(this.getStyleForBlock(b, i))); } - if (this.blocks.length === this.stateService.env.KEEP_BLOCKS_AMOUNT) { + if (this.blocks.length === this.dynamicBlocksAmount) { this.blocksFilled = true; } this.cd.markForCheck(); @@ -312,7 +315,7 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy { mountEmptyBlocks() { const emptyBlocks = []; - for (let i = 0; i < this.stateService.env.KEEP_BLOCKS_AMOUNT; i++) { + for (let i = 0; i < this.dynamicBlocksAmount; i++) { emptyBlocks.push({ id: '', height: 0, diff --git a/frontend/src/app/components/start/start.component.ts b/frontend/src/app/components/start/start.component.ts index f61a780a5..d29372d97 100644 --- a/frontend/src/app/components/start/start.component.ts +++ b/frontend/src/app/components/start/start.component.ts @@ -22,10 +22,13 @@ export class StartComponent implements OnInit, OnDestroy { chainTipSubscription: Subscription; chainTip: number = -1; markBlockSubscription: Subscription; + blockCounterSubscription: Subscription; @ViewChild('blockchainContainer') blockchainContainer: ElementRef; isMobile: boolean = false; blockWidth = 155; + dynamicBlocksAmount: number = 8; + blockCount: number = 0; blocksPerPage: number = 1; pageWidth: number; firstPageWidth: number; @@ -39,7 +42,15 @@ export class StartComponent implements OnInit, OnDestroy { ) { } ngOnInit() { - this.firstPageWidth = 40 + (this.blockWidth * this.stateService.env.KEEP_BLOCKS_AMOUNT); + this.firstPageWidth = 40 + (this.blockWidth * this.dynamicBlocksAmount); + this.blockCounterSubscription = this.stateService.blocks$.subscribe(() => { + this.blockCount++; + this.dynamicBlocksAmount = Math.min(this.blockCount, this.stateService.env.KEEP_BLOCKS_AMOUNT, 8); + this.firstPageWidth = 40 + (this.blockWidth * this.dynamicBlocksAmount); + if (this.blockCount <= Math.min(8, this.stateService.env.KEEP_BLOCKS_AMOUNT)) { + this.onResize(); + } + }); this.onResize(); this.updatePages(); this.timeLtrSubscription = this.stateService.timeLtr.subscribe((ltr) => { @@ -241,7 +252,7 @@ export class StartComponent implements OnInit, OnDestroy { } getPageAt(index: number) { - const height = this.chainTip - 8 - ((index - 1) * this.blocksPerPage) + const height = this.chainTip - this.dynamicBlocksAmount - ((index - 1) * this.blocksPerPage); return { offset: this.firstPageWidth + (this.pageWidth * (index - 1 - this.pageIndex)), height: height, @@ -255,7 +266,7 @@ export class StartComponent implements OnInit, OnDestroy { } getPageIndexOf(height: number): number { - const delta = this.chainTip - 8 - height; + const delta = this.chainTip - this.dynamicBlocksAmount - height; return Math.max(0, Math.floor(delta / this.blocksPerPage) + 1); } @@ -290,5 +301,6 @@ export class StartComponent implements OnInit, OnDestroy { this.timeLtrSubscription.unsubscribe(); this.chainTipSubscription.unsubscribe(); this.markBlockSubscription.unsubscribe(); + this.blockCounterSubscription.unsubscribe(); } } From 05e23b058c210235786b8a3d9307e0f8cfba0619 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 27 Jan 2023 20:01:31 -0600 Subject: [PATCH 0249/1466] Fix navigation-breaking js error on liquid block page --- .../src/app/components/block/block.component.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 05c5db41a..f1ebfed6a 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -439,17 +439,17 @@ export class BlockComponent implements OnInit, OnDestroy { ngOnDestroy() { this.stateService.markBlock$.next({}); - this.transactionSubscription.unsubscribe(); + this.transactionSubscription?.unsubscribe(); this.overviewSubscription?.unsubscribe(); this.auditSubscription?.unsubscribe(); - this.keyNavigationSubscription.unsubscribe(); - this.blocksSubscription.unsubscribe(); - this.networkChangedSubscription.unsubscribe(); - this.queryParamsSubscription.unsubscribe(); - this.timeLtrSubscription.unsubscribe(); - this.auditSubscription.unsubscribe(); + this.keyNavigationSubscription?.unsubscribe(); + this.blocksSubscription?.unsubscribe(); + this.networkChangedSubscription?.unsubscribe(); + this.queryParamsSubscription?.unsubscribe(); + this.timeLtrSubscription?.unsubscribe(); + this.auditSubscription?.unsubscribe(); this.unsubscribeNextBlockSubscriptions(); - this.childChangeSubscription.unsubscribe(); + this.childChangeSubscription?.unsubscribe(); } unsubscribeNextBlockSubscriptions() { From 35d873e7a69a010391b5f017c2f36a5ddb841e24 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 29 Jan 2023 13:09:11 +0400 Subject: [PATCH 0250/1466] More prominent audit status badges --- .../block-overview-tooltip.component.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html index 7a1145a0e..826eaaf8f 100644 --- a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html +++ b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html @@ -35,12 +35,12 @@ - - - - - - + + + + + + From f9026b8f3536c48ca4253146e4a3cbde0c6fba42 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 29 Jan 2023 16:23:35 +0400 Subject: [PATCH 0251/1466] Credit nepalese translator --- frontend/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/README.md b/frontend/README.md index 4bfca4fe8..68fa12e48 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -132,3 +132,4 @@ https://www.transifex.com/mempool/mempool/dashboard/ * Russian @TonyCrusoe @Bitconan * Romanian @mirceavesa * Macedonian @SkechBoy +* Nepalese @kebinm From e858408c4cd09c30381c86ed6b91f1feabb5e3be Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 29 Jan 2023 22:00:45 +0400 Subject: [PATCH 0252/1466] Block health string update --- .../app/components/block/block.component.html | 2 +- frontend/src/locale/messages.xlf | 179 ++++++++++-------- 2 files changed, 97 insertions(+), 84 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 9e204b8e6..828493736 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -53,7 +53,7 @@ - + - + - + - @@ -45,7 +45,7 @@ - - - @@ -45,7 +45,7 @@ - - - + - + From fddbf510841f74653e02d516eb43f10bc5626d3e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 15:01:07 +0900 Subject: [PATCH 0294/1466] Only show supported currencies - Tweak UI --- frontend/src/app/app.constants.ts | 56 ------------------- .../fiat-selector.component.html | 4 +- .../fiat-selector/fiat-selector.component.ts | 11 +++- .../language-selector.component.html | 2 +- 4 files changed, 12 insertions(+), 61 deletions(-) diff --git a/frontend/src/app/app.constants.ts b/frontend/src/app/app.constants.ts index 0456f2647..5cc446dbf 100644 --- a/frontend/src/app/app.constants.ts +++ b/frontend/src/app/app.constants.ts @@ -159,19 +159,11 @@ export const specialBlocks = { }; export const fiatCurrencies = { - AED: { - name: 'UAE Dirham', - code: 'AED' - }, AUD: { name: 'Australian Dollar', code: 'AUD', indexed: true, }, - BRL: { - name: 'Brazilian Real', - code: 'BRL' - }, CAD: { name: 'Canadian Dollar', code: 'CAD', @@ -192,62 +184,14 @@ export const fiatCurrencies = { code: 'GBP', indexed: true, }, - HKD: { - name: 'Hong Kong Dollar', - code: 'HKD' - }, - IDR: { - name: 'Indonesian Rupiah', - code: 'IDR' - }, JPY: { name: 'Japanese Yen', code: 'JPY', indexed: true, }, - KRW: { - name: 'Korean Won', - code: 'KRW' - }, - MYR: { - name: 'Malaysian Ringgit', - code: 'MYR' - }, - NGN: { - name: 'Nigerian Naira', - code: 'NGN' - }, - NZD: { - name: 'New Zealand Dollar', - code: 'NZD' - }, - PLN: { - name: 'Polish Złoty', - code: 'PLN' - }, - RUB: { - name: 'Russian Ruble', - code: 'RUB' - }, - SGD: { - name: 'Singapore Dollar', - code: 'SGD' - }, - TRY: { - name: 'Turkish Lira', - code: 'TRY' - }, - UAH: { - name: 'Ukrainian Hryvnia', - code: 'UAH' - }, USD: { name: 'US Dollar', code: 'USD', indexed: true, }, - ZAR: { - name: 'South African Rand', - code: 'ZAR' - }, }; \ No newline at end of file diff --git a/frontend/src/app/components/fiat-selector/fiat-selector.component.html b/frontend/src/app/components/fiat-selector/fiat-selector.component.html index 7fa8c0d00..dd32b1815 100644 --- a/frontend/src/app/components/fiat-selector/fiat-selector.component.html +++ b/frontend/src/app/components/fiat-selector/fiat-selector.component.html @@ -1,5 +1,5 @@
- +
diff --git a/frontend/src/app/components/fiat-selector/fiat-selector.component.ts b/frontend/src/app/components/fiat-selector/fiat-selector.component.ts index f967b7d77..337ef11f3 100644 --- a/frontend/src/app/components/fiat-selector/fiat-selector.component.ts +++ b/frontend/src/app/components/fiat-selector/fiat-selector.component.ts @@ -12,8 +12,15 @@ import { StateService } from '../../services/state.service'; }) export class FiatSelectorComponent implements OnInit { fiatForm: UntypedFormGroup; - currencies = fiatCurrencies; - currencyList = Object.keys(fiatCurrencies).sort(); + currencies = Object.entries(fiatCurrencies).sort((a: any, b: any) => { + if (a[1].name < b[1].name) { + return -1; + } + if (a[1].name > b[1].name) { + return 1; + } + return 0; + }); constructor( private formBuilder: UntypedFormBuilder, diff --git a/frontend/src/app/components/language-selector/language-selector.component.html b/frontend/src/app/components/language-selector/language-selector.component.html index b23b2b7b7..22839441c 100644 --- a/frontend/src/app/components/language-selector/language-selector.component.html +++ b/frontend/src/app/components/language-selector/language-selector.component.html @@ -1,5 +1,5 @@
-
From 27a962287573cc08cb96b3889874e72f9fcbd765 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Wed, 15 Feb 2023 01:27:43 -0500 Subject: [PATCH 0295/1466] Switch audit faq conditions to env.audit From OFFICIAL_MEMPOOL_SPACE. --- frontend/src/app/docs/api-docs/api-docs-data.ts | 4 ++-- frontend/src/app/docs/api-docs/api-docs-nav.component.html | 2 +- frontend/src/app/docs/api-docs/api-docs-nav.component.ts | 4 ++-- frontend/src/app/docs/api-docs/api-docs.component.html | 2 +- frontend/src/app/docs/api-docs/api-docs.component.ts | 2 ++ 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 5cc5ca3aa..a6e8e418f 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -8671,7 +8671,7 @@ export const faqData = [ type: "endpoint", category: "advanced", showConditions: bitcoinNetworks, - options: { officialOnly: true }, + options: { auditOnly: true }, fragment: "how-do-block-audits-work", title: "How do block audits work?", }, @@ -8679,7 +8679,7 @@ export const faqData = [ type: "endpoint", category: "advanced", showConditions: bitcoinNetworks, - options: { officialOnly: true }, + options: { auditOnly: true }, fragment: "what-is-block-health", title: "What is block health?", }, diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.html b/frontend/src/app/docs/api-docs/api-docs-nav.component.html index 3abdc91be..0353d5fb0 100644 --- a/frontend/src/app/docs/api-docs/api-docs-nav.component.html +++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.html @@ -1,4 +1,4 @@
diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.ts b/frontend/src/app/docs/api-docs/api-docs-nav.component.ts index ad9d0b9a5..439f20339 100644 --- a/frontend/src/app/docs/api-docs/api-docs-nav.component.ts +++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.ts @@ -15,7 +15,7 @@ export class ApiDocsNavComponent implements OnInit { @Output() navLinkClickEvent: EventEmitter = new EventEmitter(); env: Env; tabData: any[]; - officialMempoolInstance: boolean; + auditEnabled: boolean; constructor( private stateService: StateService @@ -23,7 +23,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; } else if (this.whichTab === 'faq') { diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index c984c2b77..e9a905fab 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -15,7 +15,7 @@
-
+

{{ item.title }}

Alias - + - + diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss index 2b927db7f..59151f6b2 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss @@ -1,7 +1,7 @@ .container-xl { max-width: 1400px; padding-bottom: 100px; - @media (min-width: 767.98px) { + @media (min-width: 960px) { padding-left: 50px; padding-right: 50px; } @@ -15,40 +15,44 @@ width: 5%; } .widget .rank { - @media (min-width: 767.98px) { + @media (min-width: 960px) { width: 13%; } - @media (max-width: 767.98px) { + @media (max-width: 960px) { padding-left: 0px; padding-right: 0px; } } .full .alias { - width: 10%; + width: 20%; overflow: hidden; text-overflow: ellipsis; max-width: 350px; - @media (max-width: 767.98px) { - max-width: 175px; + @media (max-width: 960px) { + width: 40%; + max-width: 500px; } } .widget .alias { - width: 55%; + width: 60%; overflow: hidden; text-overflow: ellipsis; max-width: 350px; - @media (max-width: 767.98px) { + @media (max-width: 960px) { max-width: 175px; } } .full .capacity { width: 10%; + @media (max-width: 960px) { + width: 30%; + } } .widget .capacity { width: 32%; - @media (max-width: 767.98px) { + @media (max-width: 960px) { padding-left: 0px; padding-right: 0px; } @@ -57,28 +61,31 @@ .full .channels { width: 15%; padding-right: 50px; - @media (max-width: 767.98px) { + @media (max-width: 960px) { display: none; } } .full .timestamp-first { - width: 15%; - @media (max-width: 767.98px) { + width: 10%; + @media (max-width: 960px) { display: none; } } .full .timestamp-update { - width: 15%; - @media (max-width: 767.98px) { + width: 10%; + @media (max-width: 960px) { display: none; } } .full .location { - width: 10%; - @media (max-width: 767.98px) { + width: 15%; + @media (max-width: 960px) { + width: 30%; + } + @media (max-width: 600px) { display: none; } } \ No newline at end of file diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html index f321573c1..7d02e510f 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html @@ -29,10 +29,10 @@ - + - + diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss index 5af0e8339..59151f6b2 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss @@ -1,7 +1,7 @@ .container-xl { max-width: 1400px; padding-bottom: 100px; - @media (min-width: 767.98px) { + @media (min-width: 960px) { padding-left: 50px; padding-right: 50px; } @@ -15,70 +15,77 @@ width: 5%; } .widget .rank { - @media (min-width: 767.98px) { + @media (min-width: 960px) { width: 13%; } - @media (max-width: 767.98px) { + @media (max-width: 960px) { padding-left: 0px; padding-right: 0px; } } .full .alias { - width: 10%; + width: 20%; overflow: hidden; text-overflow: ellipsis; max-width: 350px; - @media (max-width: 767.98px) { - max-width: 175px; + @media (max-width: 960px) { + width: 40%; + max-width: 500px; } } .widget .alias { - width: 55%; + width: 60%; overflow: hidden; text-overflow: ellipsis; max-width: 350px; - @media (max-width: 767.98px) { + @media (max-width: 960px) { max-width: 175px; } } -.full .channels { +.full .capacity { width: 10%; + @media (max-width: 960px) { + width: 30%; + } } -.widget .channels { +.widget .capacity { width: 32%; - @media (max-width: 767.98px) { + @media (max-width: 960px) { padding-left: 0px; padding-right: 0px; } } -.full .capacity { +.full .channels { width: 15%; padding-right: 50px; - @media (max-width: 767.98px) { + @media (max-width: 960px) { display: none; } } .full .timestamp-first { - width: 15%; - @media (max-width: 767.98px) { + width: 10%; + @media (max-width: 960px) { display: none; } } .full .timestamp-update { - width: 15%; - @media (max-width: 767.98px) { + width: 10%; + @media (max-width: 960px) { display: none; } } .full .location { - width: 10%; - @media (max-width: 767.98px) { + width: 15%; + @media (max-width: 960px) { + width: 30%; + } + @media (max-width: 600px) { display: none; } } \ No newline at end of file diff --git a/frontend/src/app/shared/components/timestamp/timestamp.component.html b/frontend/src/app/shared/components/timestamp/timestamp.component.html index 69abce53f..b0d4f3b3f 100644 --- a/frontend/src/app/shared/components/timestamp/timestamp.component.html +++ b/frontend/src/app/shared/components/timestamp/timestamp.component.html @@ -1,7 +1,7 @@ - ‎{{ seconds * 1000 | date: customFormat ?? 'yyyy-MM-dd HH:mm' }} -
+
()
diff --git a/frontend/src/app/shared/components/timestamp/timestamp.component.ts b/frontend/src/app/shared/components/timestamp/timestamp.component.ts index 120a5dfe4..e3b96c376 100644 --- a/frontend/src/app/shared/components/timestamp/timestamp.component.ts +++ b/frontend/src/app/shared/components/timestamp/timestamp.component.ts @@ -10,6 +10,7 @@ export class TimestampComponent implements OnChanges { @Input() unixTime: number; @Input() dateString: string; @Input() customFormat: string; + @Input() hideTimeSince: boolean = false; seconds: number | undefined = undefined; From 402d9496c3a1991afd6e493ea0a00bb81f2f8a5f Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 18 Jan 2023 16:44:37 -0600 Subject: [PATCH 0232/1466] fix misaligned channel id --- .../src/app/lightning/channel/channel.component.scss | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/lightning/channel/channel.component.scss b/frontend/src/app/lightning/channel/channel.component.scss index 333955212..9405af103 100644 --- a/frontend/src/app/lightning/channel/channel.component.scss +++ b/frontend/src/app/lightning/channel/channel.component.scss @@ -2,7 +2,7 @@ display: flex; flex-direction: row; - @media (max-width: 768px) { + @media (max-width: 767.98px) { flex-direction: column; } } @@ -10,16 +10,13 @@ .tx-link { display: flex; flex-grow: 1; - @media (min-width: 650px) { + @media (min-width: 768px) { + top: 1px; + position: relative; align-self: end; margin-left: 15px; margin-top: 0px; - margin-bottom: -3px; - } - @media (min-width: 768px) { margin-bottom: 4px; - top: 1px; - position: relative; } @media (max-width: 768px) { order: 2; From ec6c96c9973bb2e18d8d4b816435480dcbf4ca45 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 18 Jan 2023 17:10:57 -0600 Subject: [PATCH 0233/1466] make marginal fee audit txs less prominent --- .../src/app/components/block-overview-graph/tx-view.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/block-overview-graph/tx-view.ts b/frontend/src/app/components/block-overview-graph/tx-view.ts index f73b83fd4..a4355870e 100644 --- a/frontend/src/app/components/block-overview-graph/tx-view.ts +++ b/frontend/src/app/components/block-overview-graph/tx-view.ts @@ -10,12 +10,13 @@ const defaultHoverColor = hexToColor('1bd8f4'); const feeColors = mempoolFeeColors.map(hexToColor); const auditFeeColors = feeColors.map((color) => darken(desaturate(color, 0.3), 0.9)); +const marginalFeeColors = feeColors.map((color) => darken(desaturate(color, 0.8), 1.1)); const auditColors = { censored: hexToColor('f344df'), missing: darken(desaturate(hexToColor('f344df'), 0.3), 0.7), added: hexToColor('0099ff'), selected: darken(desaturate(hexToColor('0099ff'), 0.3), 0.7), -} +}; // convert from this class's update format to TxSprite's update format function toSpriteUpdate(params: ViewUpdateParams): SpriteUpdateParams { @@ -161,13 +162,13 @@ export default class TxView implements TransactionStripped { case 'censored': return auditColors.censored; case 'missing': - return auditColors.missing; + return marginalFeeColors[feeLevelIndex] || marginalFeeColors[mempoolFeeColors.length - 1]; case 'fresh': return auditColors.missing; case 'added': return auditColors.added; case 'selected': - return auditColors.selected; + return marginalFeeColors[feeLevelIndex] || marginalFeeColors[mempoolFeeColors.length - 1]; case 'found': if (this.context === 'projected') { return auditFeeColors[feeLevelIndex] || auditFeeColors[mempoolFeeColors.length - 1]; From fc0af50ab57bc1f5d04977cf1b2e17cf2c953433 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 19 Jan 2023 11:09:03 -0600 Subject: [PATCH 0234/1466] Fix bugged mempool block gradients --- backend/src/api/common.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/src/api/common.ts b/backend/src/api/common.ts index f0c5c6b88..29dad1a5d 100644 --- a/backend/src/api/common.ts +++ b/backend/src/api/common.ts @@ -35,16 +35,25 @@ export class Common { } static getFeesInRange(transactions: TransactionExtended[], rangeLength: number) { - const arr = [transactions[transactions.length - 1].effectiveFeePerVsize]; + const filtered: TransactionExtended[] = []; + let lastValidRate = Infinity; + // filter out anomalous fee rates to ensure monotonic range + for (const tx of transactions) { + if (tx.effectiveFeePerVsize <= lastValidRate) { + filtered.push(tx); + lastValidRate = tx.effectiveFeePerVsize; + } + } + const arr = [filtered[filtered.length - 1].effectiveFeePerVsize]; const chunk = 1 / (rangeLength - 1); let itemsToAdd = rangeLength - 2; while (itemsToAdd > 0) { - arr.push(transactions[Math.floor(transactions.length * chunk * itemsToAdd)].effectiveFeePerVsize); + arr.push(filtered[Math.floor(filtered.length * chunk * itemsToAdd)].effectiveFeePerVsize); itemsToAdd--; } - arr.push(transactions[0].effectiveFeePerVsize); + arr.push(filtered[0].effectiveFeePerVsize); return arr; } From a8b162387b096befe2e02fd4b55507b240bdf472 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 23 Jan 2023 10:59:53 -0600 Subject: [PATCH 0235/1466] better frontend handling for very large witnesses --- .../transactions-list.component.html | 20 +++++++-- .../transactions-list.component.scss | 45 +++++++++++++++++-- 2 files changed, 59 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index 56e853f71..da8ab6fe6 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -94,7 +94,7 @@
- +
@@ -106,9 +106,23 @@ - + - + diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.scss b/frontend/src/app/components/transactions-list/transactions-list.component.scss index b093a88fd..08d7d7486 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.scss +++ b/frontend/src/app/components/transactions-list/transactions-list.component.scss @@ -105,9 +105,7 @@ td.amount { &:first-child { color: #ffffff66; white-space: pre-wrap; - @media (min-width: 476px) { - white-space: nowrap; - } + width: 150px; } &:nth-child(2) { word-break: break-all; @@ -152,4 +150,45 @@ h2 { width: 0; flex-grow: 1; margin-inline-end: 2em; +} + +.vin-witness { + .witness-item.accordioned { + max-height: 300px; + overflow: hidden; + } + + input:checked + .witness-item.accordioned { + max-height: none; + } + + .witness-toggle { + display: flex; + flex-direction: row; + align-items: flex-start; + justify-content: space-between; + margin-bottom: 1em; + + .show-all { + display: inline; + } + .show-less { + display: none; + } + .ellipsis { + visibility: visible; + } + } + + input:checked ~ .witness-toggle { + .show-all { + display: none; + } + .show-less { + display: inline; + } + .ellipsis { + visibility: hidden; + } + } } \ No newline at end of file From d8e4d7054b84d1ff8a53605f78ff8275b61a9aac Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 25 Jan 2023 01:13:58 +0400 Subject: [PATCH 0236/1466] Removing absolute path import --- .../blockchain-blocks/blockchain-blocks.component.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts index fd8819a6f..1ee0edb66 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts @@ -4,8 +4,7 @@ import { StateService } from '../../services/state.service'; import { specialBlocks } from '../../app.constants'; import { BlockExtended } from '../../interfaces/node-api.interface'; import { Location } from '@angular/common'; -import { config } from 'process'; -import { CacheService } from 'src/app/services/cache.service'; +import { CacheService } from '../../services/cache.service'; interface BlockchainBlock extends BlockExtended { placeholder?: boolean; From e4fcac93f208ab1b00b1397df3a313ed01e28b89 Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 25 Jan 2023 17:24:00 +0400 Subject: [PATCH 0237/1466] Using truncate component for replaced tx link --- .../app/components/transaction/transaction.component.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index b85f1cd24..dd871a886 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -9,10 +9,7 @@ From 6f3303315b2710f2da089077d5e58adda6c06fa3 Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 26 Jan 2023 03:31:25 +0400 Subject: [PATCH 0238/1466] Extracting i18n strings --- .../block-overview-tooltip.component.html | 12 +- .../reward-stats/reward-stats.component.html | 2 +- .../transactions-list.component.html | 6 +- .../app/lightning/node/node.component.html | 2 +- frontend/src/locale/messages.xlf | 1199 ++++++++++------- 5 files changed, 730 insertions(+), 491 deletions(-) diff --git a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html index 71801bfb4..1a58bfbd9 100644 --- a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html +++ b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html @@ -35,12 +35,12 @@ - - - - - - + + + + + + diff --git a/frontend/src/app/components/reward-stats/reward-stats.component.html b/frontend/src/app/components/reward-stats/reward-stats.component.html index 270c38265..d59280fd1 100644 --- a/frontend/src/app/components/reward-stats/reward-stats.component.html +++ b/frontend/src/app/components/reward-stats/reward-stats.component.html @@ -14,7 +14,7 @@
Avg Block Fees
+ ngbTooltip="Avg Block Fees" placement="bottom" #rewardsperblock [disableTooltip]="!isEllipsisActive(rewardsperblock)">Avg Block Fees
{{ (rewardStats.feePerBlock / 100000000) | amountShortener: 4 }} diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index da8ab6fe6..7602e40cc 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -161,7 +161,7 @@ Show more - ({{ tx.vin.length - getVinLimit(tx) }} remaining) + () @@ -272,7 +272,7 @@ Show more - ({{ tx.vout.length - getVoutLimit(tx) }} remaining) + () @@ -326,3 +326,5 @@
{{ item.asset | shortenString : 13 }} + +{{ x }} remaining diff --git a/frontend/src/app/lightning/node/node.component.html b/frontend/src/app/lightning/node/node.component.html index 4331767ef..575614c10 100644 --- a/frontend/src/app/lightning/node/node.component.html +++ b/frontend/src/app/lightning/node/node.component.html @@ -215,7 +215,7 @@
- +
diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index 43d2dafde..0c0f5e2f6 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -6,14 +6,14 @@ Close node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -21,226 +21,226 @@ Previous node_modules/src/carousel/carousel.ts - 174 + 206,207 Next node_modules/src/carousel/carousel.ts - 195 + 227 Select month node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 Select year node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 Previous month node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 Next month node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 «« node_modules/src/pagination/pagination.ts - 247 + 269,270 « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 First node_modules/src/pagination/pagination.ts - 318,320 + 269,271 Previous node_modules/src/pagination/pagination.ts - 333 + 269,271 Next node_modules/src/pagination/pagination.ts - 343,344 + 269,271 Last node_modules/src/pagination/pagination.ts - 354 + 269,271 - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 Hours node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 Minutes node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 Increment hours node_modules/src/timepicker/timepicker.ts - 200 + 305,309 Decrement hours node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 Increment minutes node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 Decrement minutes node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 SS node_modules/src/timepicker/timepicker.ts - 277 + 410 Seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 Increment seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 Decrement seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 Close node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -263,15 +263,15 @@ Total received src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -279,7 +279,7 @@ Total sent src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -287,11 +287,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -299,15 +299,15 @@ Balance src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -315,7 +315,7 @@ transaction src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -323,11 +323,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -339,7 +339,7 @@ transactions src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -347,11 +347,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,10 +384,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -408,10 +404,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -434,7 +426,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -518,19 +510,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -727,15 +715,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -748,11 +736,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -881,7 +869,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -955,7 +943,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -972,11 +960,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -987,11 +975,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -999,7 +987,7 @@ Transaction src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1015,7 +1003,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1032,11 +1024,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1060,11 +1052,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1077,7 +1069,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1090,11 +1082,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1120,11 +1112,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1140,11 +1132,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1157,11 +1149,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1179,7 +1171,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1194,7 +1186,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1376,7 +1368,7 @@ Community Alliances src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1384,7 +1376,7 @@ Project Translators src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1392,7 +1384,7 @@ Project Contributors src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1400,7 +1392,7 @@ Project Members src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1408,7 +1400,7 @@ Project Maintainers src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1435,7 +1427,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1446,7 +1438,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1454,11 +1446,11 @@ Confidential src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1470,7 +1462,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1478,15 +1470,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1505,7 +1497,7 @@ of transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1513,7 +1505,7 @@ of transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1521,7 +1513,7 @@ Error loading address data. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1529,7 +1521,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1546,7 +1538,7 @@ Name src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1566,7 +1558,7 @@ Precision src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1575,7 +1567,7 @@ Issuer src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1584,7 +1576,7 @@ Issuance TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1593,7 +1585,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1602,7 +1594,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1611,7 +1603,7 @@ Burned amount src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1620,11 +1612,11 @@ Circulating amount src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1633,7 +1625,7 @@ of   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1641,7 +1633,7 @@ Peg In/Out and Burn Transactions src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1649,7 +1641,7 @@ Issuance and Burn Transactions src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1657,7 +1649,7 @@ Error loading asset data. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -1877,138 +1869,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates @@ -2106,6 +1966,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee @@ -2118,11 +1986,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2143,11 +2011,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2160,15 +2028,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2193,19 +2061,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2245,31 +2113,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2282,15 +2154,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2313,6 +2237,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2357,6 +2285,72 @@ mining.block-sizes-weights + + Size + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2387,11 +2381,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2407,19 +2397,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2436,11 +2418,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2452,7 +2430,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2475,15 +2453,59 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2511,28 +2533,52 @@ Subsidy + fees: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2540,7 +2586,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2548,7 +2594,7 @@ Difficulty src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2576,7 +2622,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2584,7 +2630,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2592,19 +2638,23 @@ Details src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2613,11 +2663,11 @@ Error loading data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2625,7 +2675,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2637,6 +2687,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool @@ -2677,8 +2735,8 @@ latest-blocks.mined - - Reward + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2687,6 +2745,18 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2701,7 +2771,7 @@ Fees src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2717,11 +2787,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2737,7 +2807,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2809,7 +2879,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -2958,7 +3028,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -2970,7 +3040,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -2982,7 +3052,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -2995,7 +3065,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3285,14 +3355,6 @@ documentation.title - - Fee span - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks @@ -3539,11 +3601,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3703,7 +3769,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3716,7 +3782,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3744,8 +3810,8 @@ mining.rewards-desc - - Reward Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3754,39 +3820,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -3805,11 +3859,32 @@ mining.average-fee + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -3817,7 +3892,7 @@ Search src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -3837,7 +3912,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4066,15 +4141,33 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4083,11 +4176,11 @@ First seen src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4116,7 +4209,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4125,7 +4218,7 @@ In several hours (or more) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4134,7 +4227,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4143,7 +4240,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4152,11 +4249,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4165,7 +4262,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4173,7 +4270,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4181,7 +4286,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4189,7 +4298,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4197,7 +4306,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4205,7 +4314,7 @@ Transaction not found. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4213,7 +4322,7 @@ Waiting for it to appear in the mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4221,7 +4330,7 @@ Effective fee rate src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4230,7 +4339,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4238,7 +4347,7 @@ (Newly Generated Coins) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4246,7 +4355,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4254,7 +4363,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4263,7 +4372,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4272,7 +4381,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4280,7 +4389,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4288,7 +4397,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4296,7 +4405,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4304,7 +4413,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4312,7 +4421,7 @@ Previous output script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4320,7 +4429,7 @@ Previous output type src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4328,7 +4437,7 @@ Peg-out to src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4336,7 +4445,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4345,19 +4454,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4378,7 +4495,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4386,7 +4507,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4457,6 +4582,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4476,11 +4605,19 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4488,7 +4625,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4496,11 +4633,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4509,7 +4646,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4575,7 +4712,7 @@ Minimum fee src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4584,7 +4721,7 @@ Purging src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4593,7 +4730,7 @@ Memory usage src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4602,7 +4739,7 @@ L-BTC in circulation src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4610,7 +4747,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4618,11 +4755,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4630,18 +4767,18 @@ Description src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4685,25 +4822,29 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -4715,7 +4856,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -4725,13 +4866,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -4739,7 +4884,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -4747,7 +4892,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -4755,7 +4900,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -4763,7 +4908,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -4771,7 +4916,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -4779,7 +4924,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -4787,14 +4932,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -4815,7 +4978,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -4831,7 +4994,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -4851,7 +5014,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -4947,7 +5110,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -4959,7 +5122,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4995,11 +5158,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5007,7 +5178,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5090,11 +5261,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5276,10 +5447,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5482,6 +5649,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5510,7 +5685,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5562,31 +5737,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5594,7 +5757,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5606,15 +5769,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5622,7 +5851,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5630,7 +5859,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5675,8 +5904,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -5918,6 +6147,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes From c191bbe5be1d6f63890e4e35c254e0b7deaff24d Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 26 Jan 2023 15:54:07 +0400 Subject: [PATCH 0239/1466] i18n: adding nepalese --- frontend/angular.json | 4 + frontend/src/app/app.constants.ts | 1 + frontend/src/locale/messages.ar.xlf | 1216 +++-- frontend/src/locale/messages.ca.xlf | 1205 +++-- frontend/src/locale/messages.cs.xlf | 1227 +++-- frontend/src/locale/messages.da.xlf | 6425 ++++++++++++++++++++++ frontend/src/locale/messages.de.xlf | 1227 +++-- frontend/src/locale/messages.en_US.xlf | 1199 +++-- frontend/src/locale/messages.es.xlf | 1216 +++-- frontend/src/locale/messages.fa.xlf | 1216 +++-- frontend/src/locale/messages.fi.xlf | 1216 +++-- frontend/src/locale/messages.fr.xlf | 1227 +++-- frontend/src/locale/messages.he.xlf | 1216 +++-- frontend/src/locale/messages.hi.xlf | 1205 +++-- frontend/src/locale/messages.hr.xlf | 1199 +++-- frontend/src/locale/messages.hu.xlf | 1208 +++-- frontend/src/locale/messages.it.xlf | 1216 +++-- frontend/src/locale/messages.ja.xlf | 1216 +++-- frontend/src/locale/messages.ka.xlf | 1216 +++-- frontend/src/locale/messages.ko.xlf | 1216 +++-- frontend/src/locale/messages.lt.xlf | 1227 +++-- frontend/src/locale/messages.mk.xlf | 1205 +++-- frontend/src/locale/messages.nb.xlf | 1216 +++-- frontend/src/locale/messages.ne.xlf | 6744 ++++++++++++++++++++++++ frontend/src/locale/messages.nl.xlf | 1216 +++-- frontend/src/locale/messages.pl.xlf | 1227 +++-- frontend/src/locale/messages.pt.xlf | 1361 +++-- frontend/src/locale/messages.ro.xlf | 1216 +++-- frontend/src/locale/messages.ru.xlf | 1227 +++-- frontend/src/locale/messages.sl.xlf | 1216 +++-- frontend/src/locale/messages.sv.xlf | 1264 +++-- frontend/src/locale/messages.th.xlf | 1216 +++-- frontend/src/locale/messages.tr.xlf | 1227 +++-- frontend/src/locale/messages.uk.xlf | 1216 +++-- frontend/src/locale/messages.vi.xlf | 1227 +++-- frontend/src/locale/messages.zh.xlf | 1227 +++-- nginx.conf | 2 + 37 files changed, 36515 insertions(+), 15790 deletions(-) create mode 100644 frontend/src/locale/messages.da.xlf create mode 100644 frontend/src/locale/messages.ne.xlf diff --git a/frontend/angular.json b/frontend/angular.json index 25d2a302c..d157cc443 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -138,6 +138,10 @@ "translation": "src/locale/messages.hi.xlf", "baseHref": "/hi/" }, + "ne": { + "translation": "src/locale/messages.ne.xlf", + "baseHref": "/ne/" + }, "lt": { "translation": "src/locale/messages.lt.xlf", "baseHref": "/lt/" diff --git a/frontend/src/app/app.constants.ts b/frontend/src/app/app.constants.ts index 95e1e756e..47e12cfcd 100644 --- a/frontend/src/app/app.constants.ts +++ b/frontend/src/app/app.constants.ts @@ -116,6 +116,7 @@ export const languages: Language[] = [ // { code: 'hr', name: 'Hrvatski' }, // Croatian // { code: 'id', name: 'Bahasa Indonesia' },// Indonesian { code: 'hi', name: 'हिन्दी' }, // Hindi + { code: 'ne', name: 'नेपाली' }, // Nepalese { code: 'it', name: 'Italiano' }, // Italian { code: 'he', name: 'עברית' }, // Hebrew { code: 'ka', name: 'ქართული' }, // Georgian diff --git a/frontend/src/locale/messages.ar.xlf b/frontend/src/locale/messages.ar.xlf index b41e8e6a9..19d82ec97 100644 --- a/frontend/src/locale/messages.ar.xlf +++ b/frontend/src/locale/messages.ar.xlf @@ -6,15 +6,14 @@ مغلق node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - شريحه من + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ السابق node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ التالي node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ اختر الشهر node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ اختر السنة node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ الشهر السابق node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ الشهر التالي node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ أول node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ السابق node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ التالي node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ آخر node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ ساعة node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ ساعات node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ دقيقة node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ دقائق node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ ساعات إضافية node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ انتقاص الساعات node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ دقائق إضافية node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ انتقاص الدقائق node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ ثانية node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ ثوان node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ ثواني اضافيه node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ انتقاص الثوان node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ مغلق node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ مجموع الوارد src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ مجموع المرسل src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ الرصيد src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ حوالة src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ معاملة src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ حوالة src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ التحالفات المجتمعية src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ مترجمي المشروع src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ المساهمون في المشروع src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ أعضاء المشروع src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ فريق صيانة المشروع src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ سري src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ من تحويله src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ من تحويلات src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ خطأ في تحميل بيانات العنوان. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ هناك العديد من المعاملات على هذا العنوان ، أكثر مما تستطيع الواجهة الخلفية التعامل معه. شاهد المزيد على إعداد خلفية أقوى . ضع في اعتبارك عرض هذا العنوان على موقع Mempool الرسمي بدلاً من ذلك: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ الأسم src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ الاحكام src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ المُصدر src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ إصدار TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ مربوط src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ غير مربوط src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ الكمية المحروقه src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ كمية التداول src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ من   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ ربط التحويلات وإخراجها و المعاملات المحروقة src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ إلغاء و إصدار المعاملات. src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ خطأ في تحميل اصل البيانات. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - الحجم - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - الوزن - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates معدلات رسوم الكتل @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee الرسوم @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy دقة توقع الكتلة @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + الحجم + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + الوزن + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + نطاق الرسوم + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes بناءً على متوسط معاملة native segwit التي يبلغ حجمها 140 ف بايت src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ مكافأة الكتلة + الرسوم: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits وحدات صغيرة. src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ جذع ميركيل src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ الصعوبه src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ رمز أحادي فردي الإستخدام. src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ عنوان الكتلة HEX src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ التفاصيل src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ خطأ في تحميل البيانات. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool حوض @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - المكافأة + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + المكافأة + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ الرسوم src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ التحويلات src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - نطاق الرسوم - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks كومة من كتل mempool @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - مكافئة لكل تحويلة + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - متوسط مكافأة المعدنين لكل معاملة في الـ ١٤٤ كتلة الماضية + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - ساتس/حوالة + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - متوسط الرسوم + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + ساتس/حوالة + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + مكافئة لكل تحويلة + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ بحث src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed غير مؤكده src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ اول رؤية src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ الوقت المقدر للوصول src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ بعد عدة ساعات (أو أكثر) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ منحدر src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ الاصل src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ وقت القفل src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ الحوالة غير موجودة. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ في انتظار ظهورها على mempool src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ معدل الرسوم الفعلي src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ كوين بيس src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (عملات تم إنشاؤها حديثًا) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ ربط src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ البرنامج النصي (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ البرنامج النصي. (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ شوهد src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ البرنامج النصي استرداد P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ تاب سكريبت ادفع لتابروت src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ نتائج التجزئة النصية العالقة 2 للشاهد النصي المنفصل. src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ ن التسلسل src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ نص النتائج السابقة. src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ نص النتائج السابقة. src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ إخراج المعاملات الى src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ النتيجة النصية لمعاملات بتكوين(عملية عكسية لإلغاء الرموز النصية) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ النتيجة النصيةلمعاملات بتكوين (سلسلة ارقام سداسية عشرية) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - إظهار كافة المدخلات للكشف عن بيانات الرسوم + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot هذه الحوالة استخدمت التابروت src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ استبدل بالرسوم src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ لا تدعم هذه المعاملة (الاستبدال بالرسوم) ولا يمكن دفع الرسوم باستخدام هذه الطريقة src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ الحد الادنى للعمولة src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ تطهير src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ استخدام الذاكرة src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ L-BTC المتداول src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ اعادة تشغيل خادم API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ نقطة النهاية src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ وصف src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ الدفع الإعتيادي:إجراء:أريد, بيانات:[’الكتل’،...]لتحدديد ما تريد دفعه.متوفر:كتل،;كتل عقود للعمليات غير المعلنة،جدول-2h-مباشر،وإحصاءات .دفع المعاملات المرتبطة بالعنوان:’إتبع-عنوان’: ’3PbJ...bF98’للحصول على معاملة جديدة تحتوي ذلك العنوان كإدخال و إخراج. إرجاع مصفوف المعاملات.عنوان المعاملاتلكتل العقود غير المعلنة الجديدة، و معاملات الكتللالمعاملات المؤكدة في الكتل الجديدة. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ التعليمات src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.ca.xlf b/frontend/src/locale/messages.ca.xlf index a8258142e..50d44b541 100644 --- a/frontend/src/locale/messages.ca.xlf +++ b/frontend/src/locale/messages.ca.xlf @@ -6,14 +6,14 @@ Tancar node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -22,7 +22,7 @@ Anterior node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -30,7 +30,7 @@ Següent node_modules/src/carousel/carousel.ts - 195 + 227 @@ -38,11 +38,11 @@ Seleccioneu el mes node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -50,11 +50,11 @@ Seleccioneu l'any node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -62,11 +62,11 @@ Mes anterior node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -74,11 +74,11 @@ Següent mes node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -86,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -94,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -102,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -110,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -118,7 +118,7 @@ Primer node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -126,7 +126,7 @@ Anterior node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -134,7 +134,7 @@ Següent node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -142,14 +142,14 @@ Últim node_modules/src/pagination/pagination.ts - 354 + 269,271 - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -157,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -165,7 +165,7 @@ Hores node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -173,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -181,7 +181,7 @@ Minuts node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -189,7 +189,7 @@ Incrementar hores node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -197,7 +197,7 @@ Reduir hores node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -205,7 +205,7 @@ Incrementar minuts node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -213,7 +213,7 @@ Reduir minuts node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -221,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -229,7 +229,7 @@ Segons node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -237,7 +237,7 @@ Incrementar segons node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -245,21 +245,21 @@ Reduir segons node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -267,7 +267,7 @@ Tancar node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -292,15 +292,15 @@ Total rebut src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -309,7 +309,7 @@ Total enviat src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -317,11 +317,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -330,15 +330,15 @@ Saldo src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -346,7 +346,7 @@ transaction src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -354,11 +354,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -370,7 +370,7 @@ transactions src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -378,11 +378,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -416,10 +416,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -441,10 +437,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -467,7 +459,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -556,19 +548,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -777,15 +765,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -798,11 +786,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -939,7 +927,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1020,7 +1008,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1038,11 +1026,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1054,11 +1042,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1067,7 +1055,7 @@ Transacció src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1083,7 +1071,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1099,11 +1091,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1120,11 +1112,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1138,7 +1130,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1152,11 +1144,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1184,11 +1176,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1205,11 +1197,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1222,11 +1214,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1246,7 +1238,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1262,7 +1254,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1463,7 +1455,7 @@ Community Alliances src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1471,7 +1463,7 @@ Project Translators src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1480,7 +1472,7 @@ Col·laboradors del projecte src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1488,7 +1480,7 @@ Project Members src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1497,7 +1489,7 @@ Mantenidors del projecte src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1525,7 +1517,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1536,7 +1528,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1545,11 +1537,11 @@ Confidencial src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1561,7 +1553,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1569,15 +1561,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1596,7 +1588,7 @@ of transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1604,7 +1596,7 @@ of transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1613,7 +1605,7 @@ S'ha produït un error en carregar les dades de l'adreça. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1621,7 +1613,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1640,7 +1632,7 @@ Nom src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1660,7 +1652,7 @@ Precision src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1669,7 +1661,7 @@ Issuer src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1678,7 +1670,7 @@ Issuance TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1687,7 +1679,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1696,7 +1688,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1705,7 +1697,7 @@ Burned amount src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1714,11 +1706,11 @@ Circulating amount src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1727,7 +1719,7 @@ of   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1735,7 +1727,7 @@ Peg In/Out and Burn Transactions src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1743,7 +1735,7 @@ Issuance and Burn Transactions src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1751,7 +1743,7 @@ Error loading asset data. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -1983,140 +1975,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Mida - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Pes - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates @@ -2214,6 +2072,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Quota @@ -2227,11 +2093,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2253,11 +2119,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2271,15 +2137,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2305,19 +2171,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2357,31 +2223,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2395,15 +2265,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2426,6 +2348,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2470,6 +2396,74 @@ mining.block-sizes-weights + + Size + Mida + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Pes + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2499,11 +2493,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2520,19 +2510,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2550,11 +2532,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2566,7 +2544,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2589,15 +2567,60 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Rang de quotes + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2626,29 +2649,53 @@ Subvenció + Quota src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2656,7 +2703,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2665,7 +2712,7 @@ Dificultat src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2693,7 +2740,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2701,7 +2748,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2710,19 +2757,23 @@ Detalls src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2731,11 +2782,11 @@ Error loading data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2743,7 +2794,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2755,6 +2806,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool @@ -2796,8 +2855,8 @@ latest-blocks.mined - - Reward + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2806,6 +2865,18 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2820,7 +2891,7 @@ Fees src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2837,11 +2908,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2857,7 +2928,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2931,7 +3002,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3080,7 +3151,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3092,7 +3163,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3105,7 +3176,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3118,7 +3189,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3410,15 +3481,6 @@ documentation.title - - Fee span - Rang de quotes - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks @@ -3666,11 +3728,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3830,7 +3896,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3843,7 +3909,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3871,8 +3937,8 @@ mining.rewards-desc - - Reward Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3881,39 +3947,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -3932,11 +3986,32 @@ mining.average-fee + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -3945,7 +4020,7 @@ Buscar src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -3966,7 +4041,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4197,16 +4272,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Sense confirmar src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4216,11 +4309,11 @@ Vist per primera vegada src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4250,7 +4343,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4260,7 +4353,7 @@ D'aquí unes hores (o més) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4269,7 +4362,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4278,7 +4375,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4287,11 +4384,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4300,7 +4397,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4308,7 +4405,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4316,7 +4421,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4324,7 +4433,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4332,7 +4441,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4340,7 +4449,7 @@ Transaction not found. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4349,7 +4458,7 @@ Esperant a que apareixi a la memòria... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4358,7 +4467,7 @@ Quota efectiva d'intercanvi src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4368,7 +4477,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4377,7 +4486,7 @@ (Noves monedes generades) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4385,7 +4494,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4394,7 +4503,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4404,7 +4513,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4413,7 +4522,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4421,7 +4530,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4429,7 +4538,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4437,7 +4546,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4446,7 +4555,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4454,7 +4563,7 @@ Previous output script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4462,7 +4571,7 @@ Previous output type src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4470,7 +4579,7 @@ Peg-out to src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4479,7 +4588,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4489,19 +4598,27 @@ ScriptPubKey (HEX)  src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4522,7 +4639,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4530,7 +4651,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4602,6 +4727,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4621,11 +4750,19 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4633,7 +4770,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4642,11 +4779,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4655,7 +4792,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4726,7 +4863,7 @@ Quota mínima src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4735,7 +4872,7 @@ Purging src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4745,7 +4882,7 @@ Ús de memòria src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4754,7 +4891,7 @@ L-BTC in circulation src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4762,7 +4899,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4770,11 +4907,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4783,18 +4920,18 @@ Descripció src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4841,7 +4978,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4849,18 +4986,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -4872,7 +5013,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -4882,13 +5023,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -4896,7 +5041,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -4904,7 +5049,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -4912,7 +5057,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -4920,7 +5065,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -4928,7 +5073,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -4936,7 +5081,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -4944,14 +5089,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -4972,7 +5135,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -4988,7 +5151,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5008,7 +5171,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5104,7 +5267,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5116,7 +5279,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5152,11 +5315,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5164,7 +5335,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5247,11 +5418,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5433,10 +5604,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5639,6 +5806,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5667,7 +5842,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5719,31 +5894,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5751,7 +5914,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5763,15 +5926,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5779,7 +6008,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5787,7 +6016,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5832,8 +6061,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6075,6 +6304,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.cs.xlf b/frontend/src/locale/messages.cs.xlf index 000de902d..da26e97e3 100644 --- a/frontend/src/locale/messages.cs.xlf +++ b/frontend/src/locale/messages.cs.xlf @@ -6,15 +6,14 @@ Zavřít node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Snímek z + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Předchozí node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Další node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Vybrat měsíc node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Vybrat rok node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Předchozí měsíc node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Příští měsíc node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ První node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Předchozí node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Další node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Poslední node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Hodiny node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minuty node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Přírůstek hodin node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Snížení hodin node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Přírůstek minut node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Snížení minut node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Sekundy node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Přírůstek sekund node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Snížení sekund node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Zavřít node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Celkem přijato src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Celkem odesláno src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Zůstatek src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transakce src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transakcí src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transakce src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Komunitní aliance src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Překladatelé projektu src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Přispěvatelé projektu src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Členové projektu src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Správci projektu src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Multisig z src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Důvěrné src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ z transakce src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ z transakcí src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Chyba při načítání údajů o adrese. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Na této adrese je mnoho transakcí, více, než váš backend zvládne. Více informací o nastavení silnějšího backendu. Zvažte raději zobrazení této adresy na oficiálních stránkách Mempool: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ Jméno src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Přesnost src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Vydavatel src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ Vydání TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Spálené množství src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Obíhající množství src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ z   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ Peg In/Out a spalování transakcí src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Vydávání a spalování transakcí src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Chyba při načítání dat aktiva. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Blok - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Šablona vs. vytěžené - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Velikost - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Váha - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Míra shody - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Chybějící txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Přidané txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Chybějící - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Přidané - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Sazby poplatků za blok @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Poplatek @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Přidané + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Přesnost předpovědi bloku @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Velikost + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Váha + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Blok @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Neznámo + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Rozsah poplatků + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Na základě průměrné transakce nativního segwitu 140 vBytů src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Vytěžené + poplatky: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bity src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ Merklův kořen src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Obtížnost src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Hlavička bloku Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Detaily src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Chyba při načítání dat. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Odměna + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Odměna + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ Poplatky src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ Počet TX src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - Rozsah poplatků - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Zásobník bloků mempoolu @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - Odměna za Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Průměrná odměna těžařů za transakci v posledních 144 blocích + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Průměrný poplatek + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Odměna za Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Prozkoumejte celý Bitcoin ekosystém src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Vyhledávání src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Nepotvrzeno src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ Poprvé viděna src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ Za několik hodin (nebo více) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Potomek src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Předek src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ Tok src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ Skrýt diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ Zobrazit více src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ Zobrazit méně src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ Zobrazit diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ Transakce nebyla nalezena. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ Čekání na to, až se objeví v mempoolu... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ Efektivní poplatek src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (Nově vytvořené mince) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ P2SH redeem skript src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ P2WSH witness skript src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ Předchozí výstupní skript src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ Předchozí typ výstupu src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ Peg-out na src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Zobrazit všechny vstupy pro odhalení údajů o poplatcích + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs další vstupy @@ -4707,7 +4814,11 @@ Vstup src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ Výstup src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Tato transakce používá Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ Tato transakce podporuje funkci Replace-By-Fee (RBF), která umožňuje zvýšení poplatků. src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ Tato transakce NEPODPORUJE Replace-by-Fee (RBF) a nelze ji pomocí této metody navýšit o poplatek src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ Minimální poplatek src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ Čištění src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ Využití paměti src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ L-BTC v oběhu src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ Služba REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ Popis src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ Výchozí push: akce: 'want', data: ['blocks', ...] pro vyjádření toho, co chcete pushnout. K dispozici: blocks, mempool-blocks, live-2h-chart a stats. Push transakce související s adresou: 'track-address': '3PbJ...bF9B' pro příjem všech nových transakcí obsahujících tuto adresu jako vstup nebo výstup. Vrací pole transakcí. address-transactions pro nové transakce mempoolu a block-transactions pro nové transakce potvrzené blokem. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ Časté dotazy src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ Základní poplatek src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ Tento kanál podporuje směrování s nulovým základním poplatkem src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ Nulový základní poplatek src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ Tento kanál nepodporuje směrování s nulovým základním poplatkem. src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ Nenulový základní poplatek src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ Delta časového zámku src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ kanálů src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel Lightning kanál @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Otvírací transakce src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ Uzavírací transakce src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Procentuální změna za poslední týden @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - Neznámo + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Barva src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ Výhradně na Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Otevřené kanály src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ Uzavřené kanály src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ Uzel: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - Probíhající indexace + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes 100 nejstarších lightning uzlů diff --git a/frontend/src/locale/messages.da.xlf b/frontend/src/locale/messages.da.xlf new file mode 100644 index 000000000..4be32e796 --- /dev/null +++ b/frontend/src/locale/messages.da.xlf @@ -0,0 +1,6425 @@ + + + + + Close + Luk + + node_modules/src/alert/alert.ts + 47,48 + + + + Slide of + + node_modules/src/carousel/carousel.ts + 175,181 + + Currently selected slide number read by screen reader + + + Previous + Forrige + + node_modules/src/carousel/carousel.ts + 206,207 + + + + Next + Næste + + node_modules/src/carousel/carousel.ts + 227 + + + + Select month + Vælg måned + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + + Select year + Vælg år + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + + Previous month + Forrige måned + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + + Next month + Næste måned + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + + «« + «« + + node_modules/src/pagination/pagination.ts + 269,270 + + + + « + « + + node_modules/src/pagination/pagination.ts + 269,270 + + + + » + » + + node_modules/src/pagination/pagination.ts + 269,270 + + + + »» + »» + + node_modules/src/pagination/pagination.ts + 269,270 + + + + First + Første + + node_modules/src/pagination/pagination.ts + 269,271 + + + + Previous + Forrige + + node_modules/src/pagination/pagination.ts + 269,271 + + + + Next + Næste + + node_modules/src/pagination/pagination.ts + 269,271 + + + + Last + Sidste + + node_modules/src/pagination/pagination.ts + 269,271 + + + + + + node_modules/src/progressbar/progressbar.ts + 30,33 + + + + HH + + node_modules/src/timepicker/timepicker.ts + 226 + + + + Hours + + node_modules/src/timepicker/timepicker.ts + 247,250 + + + + MM + + node_modules/src/timepicker/timepicker.ts + 272,274 + + + + Minutes + + node_modules/src/timepicker/timepicker.ts + 288,289 + + + + Increment hours + + node_modules/src/timepicker/timepicker.ts + 305,309 + + + + Decrement hours + + node_modules/src/timepicker/timepicker.ts + 334,337 + + + + Increment minutes + + node_modules/src/timepicker/timepicker.ts + 356,358 + + + + Decrement minutes + + node_modules/src/timepicker/timepicker.ts + 383,384 + + + + SS + + node_modules/src/timepicker/timepicker.ts + 410 + + + + Seconds + + node_modules/src/timepicker/timepicker.ts + 429 + + + + Increment seconds + + node_modules/src/timepicker/timepicker.ts + 429 + + + + Decrement seconds + + node_modules/src/timepicker/timepicker.ts + 429 + + + + + + + node_modules/src/timepicker/timepicker.ts + 429 + + + + + + + node_modules/src/timepicker/timepicker.ts + 429 + + + + Close + Luk + + node_modules/src/toast/toast.ts + 74,75 + + + + Address + Adresse + + src/app/bisq/bisq-address/bisq-address.component.html + 2 + + + src/app/components/address/address-preview.component.html + 3 + + + src/app/components/address/address.component.html + 3 + + shared.address + + + Total received + + src/app/bisq/bisq-address/bisq-address.component.html + 20 + + + src/app/components/address/address-preview.component.html + 22 + + + src/app/components/address/address.component.html + 30 + + address.total-received + + + Total sent + + src/app/bisq/bisq-address/bisq-address.component.html + 24 + + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 14,15 + + + src/app/components/address/address-preview.component.html + 26 + + + src/app/components/address/address.component.html + 34 + + address.total-sent + + + Balance + Balance + + src/app/bisq/bisq-address/bisq-address.component.html + 28 + + + src/app/components/address/address-preview.component.html + 31 + + + src/app/components/address/address.component.html + 39 + + address.balance + + + transaction + transaktion + + src/app/bisq/bisq-address/bisq-address.component.html + 48 + + + src/app/bisq/bisq-block/bisq-block.component.html + 51 + + + src/app/components/block/block.component.html + 290,291 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 26,27 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 21,22 + + shared.transaction-count.singular + + + transactions + transaktioner + + src/app/bisq/bisq-address/bisq-address.component.html + 49 + + + src/app/bisq/bisq-block/bisq-block.component.html + 52 + + + src/app/components/block/block.component.html + 291,292 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 27,28 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 22,23 + + shared.transaction-count.plural + + + Address: + Adresse: + + src/app/bisq/bisq-address/bisq-address.component.ts + 43 + + + + Block + Blok + + src/app/bisq/bisq-block/bisq-block.component.html + 4 + + shared.block-title + + + Hash + + src/app/bisq/bisq-block/bisq-block.component.html + 19 + + + src/app/bisq/bisq-block/bisq-block.component.html + 82 + + + src/app/components/block/block.component.html + 40,41 + + block.hash + + + Timestamp + + src/app/bisq/bisq-block/bisq-block.component.html + 23 + + + src/app/bisq/bisq-block/bisq-block.component.html + 86 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 34,36 + + + src/app/components/block/block-preview.component.html + 26,28 + + + src/app/components/block/block.component.html + 44,46 + + + src/app/components/blocks-list/blocks-list.component.html + 15,16 + + + src/app/components/pool/pool.component.html + 213,215 + + + src/app/components/pool/pool.component.html + 260,262 + + + src/app/components/transaction/transaction.component.html + 56,58 + + block.timestamp + + + Previous hash + + src/app/bisq/bisq-block/bisq-block.component.html + 37 + + + src/app/bisq/bisq-block/bisq-block.component.html + 95 + + Transaction Previous Hash + block.previous_hash + + + Block : + Blok : + + src/app/bisq/bisq-block/bisq-block.component.ts + 89 + + + + BSQ Blocks + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 2,7 + + Bisq blocks header + + + Height + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 12,14 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 22,24 + + + src/app/components/blocks-list/blocks-list.component.html + 12,13 + + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 5,7 + + + src/app/components/pool/pool.component.html + 212,214 + + + src/app/components/pool/pool.component.html + 259,261 + + + src/app/dashboard/dashboard.component.html + 87,88 + + Bisq block height header + + + Confirmed + Bekræftet + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 13,15 + + Bisq block confirmed time header + + + Transactions + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 15,18 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 81 + + + src/app/components/address/address-preview.component.html + 35 + + + src/app/components/bisq-master-page/bisq-master-page.component.html + 63,65 + + + src/app/components/blocks-list/blocks-list.component.html + 24,25 + + + src/app/components/mempool-block/mempool-block.component.html + 28,32 + + Bisq block transactions title + + + Blocks + + src/app/bisq/bisq-blocks/bisq-blocks.component.ts + 38 + + + src/app/components/bisq-master-page/bisq-master-page.component.html + 66,68 + + + src/app/components/blocks-list/blocks-list.component.html + 4,7 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 68,70 + + + src/app/components/master-page/master-page.component.html + 49,51 + + + src/app/components/pool-ranking/pool-ranking.component.html + 94,96 + + + + Bisq Trading Volume + Bisq Handelsvolumen + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 3,7 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 48,50 + + Bisq markets title + + + Markets + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 20,21 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 66,67 + + Bisq All Markets + + + Bitcoin Markets + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 21,24 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 67,71 + + Bisq Bitcoin Markets + + + Currency + Valuta + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 27 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 73 + + + + Price + Pris + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 28,29 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 74,75 + + + src/app/bisq/bisq-market/bisq-market.component.html + 79,80 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 36 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 78 + + + src/app/bisq/bisq-trades/bisq-trades.component.html + 5,6 + + + + Volume (7d) + Volumen (7d) + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 29 + + Trading volume 7D + + + Trades (7d) + Handler (7d) + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 30 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 75 + + Trades amount 7D + + + Latest Trades + Seneste Handler + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 52,56 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 99,101 + + + src/app/bisq/bisq-market/bisq-market.component.html + 59,61 + + Latest Trades header + + + Bisq Price Index + Bisq Prisindeks + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 9,11 + + bisq-dashboard.price-index-title + + + Bisq Market Price + Bisq Markedspris + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 21,23 + + bisq-dashboard.market-price-title + + + View more » + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 92,97 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 101,108 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 33 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 43 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 40 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 52 + + dashboard.view-more + + + Terms of Service + Vilkår og betingelser + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 111,113 + + + src/app/components/about/about.component.html + 385,389 + + + src/app/dashboard/dashboard.component.html + 150,152 + + + src/app/docs/docs/docs.component.html + 51 + + Terms of Service + shared.terms-of-service + + + Privacy Policy + Privatlivspolitik + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 113,120 + + + src/app/dashboard/dashboard.component.html + 152,154 + + + src/app/docs/docs/docs.component.html + 53 + + Privacy Policy + shared.privacy-policy + + + Buy Offers + Købstilbud + + src/app/bisq/bisq-market/bisq-market.component.html + 73,74 + + Bisq Buy Offers + + + Sell Offers + Salgstilbud + + src/app/bisq/bisq-market/bisq-market.component.html + 74,77 + + Bisq Sell Offers + + + Amount () + Beløb () + + src/app/bisq/bisq-market/bisq-market.component.html + 112,113 + + + src/app/bisq/bisq-trades/bisq-trades.component.html + 46,47 + + Trade amount (Symbol) + + + BSQ statistics + BSQ statistik + + src/app/bisq/bisq-stats/bisq-stats.component.html + 2 + + + src/app/bisq/bisq-stats/bisq-stats.component.ts + 28 + + BSQ statistics header + + + Existing amount + Eksisterende mængde + + src/app/bisq/bisq-stats/bisq-stats.component.html + 12 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 54 + + BSQ existing amount + + + Minted amount + Skabt mængde + + src/app/bisq/bisq-stats/bisq-stats.component.html + 16 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 58 + + BSQ minted amount + + + Burnt amount + + src/app/bisq/bisq-stats/bisq-stats.component.html + 20 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 62 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 64,66 + + + src/app/bisq/bisq-transfers/bisq-transfers.component.html + 68 + + BSQ burnt amount + + + Addresses + + src/app/bisq/bisq-stats/bisq-stats.component.html + 24 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 66 + + + src/app/components/pool/pool.component.html + 39,40 + + + src/app/components/pool/pool.component.html + 63,65 + + + src/app/components/pool/pool.component.html + 337,339 + + + src/app/components/pool/pool.component.html + 348,351 + + BSQ addresses + + + Unspent TXOs + + src/app/bisq/bisq-stats/bisq-stats.component.html + 28 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 70 + + + src/app/components/address/address-preview.component.html + 39 + + BSQ unspent transaction outputs + + + Spent TXOs + + src/app/bisq/bisq-stats/bisq-stats.component.html + 32 + + BSQ spent transaction outputs + + + Market cap + + src/app/bisq/bisq-stats/bisq-stats.component.html + 40 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 82 + + BSQ token market cap + + + Date + + src/app/bisq/bisq-trades/bisq-trades.component.html + 4,6 + + + + Amount + + src/app/bisq/bisq-trades/bisq-trades.component.html + 9,12 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 20,21 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 18 + + + src/app/dashboard/dashboard.component.html + 124,125 + + + + Inputs + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 7 + + transaction.inputs + + + Outputs + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 11 + + transaction.outputs + + + Issued amount + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 15 + + + src/app/components/asset/asset.component.html + 45 + + Liquid Asset issued amount + asset.issued-amount + + + Type + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 25 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 19,21 + + + src/app/components/transaction/transaction.component.html + 158,160 + + + src/app/components/transactions-list/transactions-list.component.html + 260,262 + + + + Version + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 29 + + + src/app/components/block/block.component.html + 246,247 + + + src/app/components/transaction/transaction.component.html + 288,290 + + transaction.version + + + Transaction + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 6,11 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 111,117 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 12 + + + src/app/components/transaction/transaction-preview.component.html + 3 + + + src/app/components/transaction/transaction.component.html + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 + + shared.transaction + + + confirmation + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 20,21 + + + src/app/bisq/bisq-transfers/bisq-transfers.component.html + 75,76 + + + src/app/components/transaction/transaction.component.html + 31,32 + + + src/app/components/transactions-list/transactions-list.component.html + 294,295 + + Transaction singular confirmation count + shared.confirmation-count.singular + + + confirmations + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 21,22 + + + src/app/bisq/bisq-transfers/bisq-transfers.component.html + 76,77 + + + src/app/components/transaction/transaction.component.html + 32,33 + + + src/app/components/transactions-list/transactions-list.component.html + 295,296 + + Transaction plural confirmation count + shared.confirmation-count.plural + + + Included in block + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 43,45 + + + src/app/components/transaction/transaction.component.html + 65,67 + + Transaction included in block + transaction.included-in-block + + + Features + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 49,51 + + + src/app/components/transaction/transaction.component.html + 77,80 + + + src/app/components/transaction/transaction.component.html + 135,138 + + Transaction features + transaction.features + + + Fee per vByte + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 69,71 + + Transaction fee + transaction.fee-per-vbyte + + + Details + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 89,92 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 155,159 + + + src/app/components/transaction/transaction.component.html + 262,267 + + + src/app/components/transaction/transaction.component.html + 406,412 + + transaction.details + + + Inputs & Outputs + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 97,105 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 179,185 + + + src/app/components/transaction/transaction.component.html + 249,253 + + + src/app/components/transaction/transaction.component.html + 377,383 + + Transaction inputs and outputs + transaction.inputs-and-outputs + + + Transaction: + + src/app/bisq/bisq-transaction/bisq-transaction.component.ts + 50 + + + src/app/components/transaction/transaction-preview.component.ts + 88 + + + src/app/components/transaction/transaction.component.ts + 241,240 + + + + BSQ Transactions + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 2,5 + + + + TXID + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 18,19 + + + src/app/components/transaction/transaction.component.html + 159,160 + + + src/app/dashboard/dashboard.component.html + 123,125 + + + + Confirmed + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 21,24 + + + src/app/components/transaction/transaction.component.html + 72,73 + + Transaction Confirmed state + transaction.confirmed + + + Asset listing fee + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 31 + + + + Blind vote + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 32 + + + + Compensation request + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 33 + + + + Genesis + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 34 + + + src/app/components/block/block-preview.component.html + 10,11 + + + src/app/components/block/block.component.html + 6,8 + + + + Irregular + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 35 + + + + Lockup + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 36 + + + + Pay trade fee + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 37 + + + + Proof of burn + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 38 + + + + Proposal + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 39 + + + + Reimbursement request + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 40 + + + + Transfer BSQ + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 41 + + + + Unlock + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 42 + + + + Vote reveal + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 43 + + + + Filter + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 57,56 + + + + Select all + Vælg alle + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 58,56 + + + + Unselect all + Fravælg alle + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 59 + + + + Trades + Handler + + src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts + 99 + + + + Volume + Volumen + + src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts + 100 + + + + The Mempool Open Source Project + Mempool Open Source-projektet + + src/app/components/about/about.component.html + 12,13 + + about.about-the-project + + + 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. + + src/app/components/about/about.component.html + 13,17 + + + + Enterprise Sponsors 🚀 + + src/app/components/about/about.component.html + 29,32 + + about.sponsors.enterprise.withRocket + + + Community Sponsors ❤️ + + src/app/components/about/about.component.html + 177,180 + + about.sponsors.withHeart + + + Community Integrations + + src/app/components/about/about.component.html + 191,193 + + about.community-integrations + + + Community Alliances + + src/app/components/about/about.component.html + 285,287 + + about.alliances + + + Project Translators + Oversættere + + src/app/components/about/about.component.html + 301,303 + + about.translators + + + Project Contributors + Bidragsydere + + src/app/components/about/about.component.html + 315,317 + + about.contributors + + + Project Members + Medlemmer + + src/app/components/about/about.component.html + 327,329 + + about.project_members + + + Project Maintainers + Vedligeholdere + + src/app/components/about/about.component.html + 340,342 + + about.maintainers + + + About + Om + + src/app/components/about/about.component.ts + 39 + + + src/app/components/bisq-master-page/bisq-master-page.component.html + 75,78 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 85,88 + + + src/app/components/master-page/master-page.component.html + 58,61 + + + + Multisig of + + src/app/components/address-labels/address-labels.component.ts + 107 + + + + Unconfidential + ikke-fortrolig + + src/app/components/address/address-preview.component.html + 15 + + + src/app/components/address/address.component.html + 21 + + address.unconfidential + + + Confidential + Fortrolig + + src/app/components/address/address-preview.component.html + 55 + + + src/app/components/address/address.component.html + 153 + + + src/app/components/amount/amount.component.html + 6,9 + + + src/app/components/asset-circulation/asset-circulation.component.html + 2,4 + + + src/app/components/asset/asset.component.html + 161 + + + src/app/components/transaction/transaction-preview.component.html + 21 + + + src/app/components/transactions-list/transactions-list.component.html + 302,304 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 58 + + + src/app/dashboard/dashboard.component.html + 135,136 + + shared.confidential + + + Address: + Adresse: + + src/app/components/address/address-preview.component.ts + 70 + + + src/app/components/address/address.component.ts + 78 + + + + of transaction + af transaktion + + src/app/components/address/address.component.html + 59 + + X of X Address Transaction + + + of transactions + af transaktioner + + src/app/components/address/address.component.html + 60 + + X of X Address Transactions (Plural) + + + Error loading address data. + Fejl ved indlæsning af adressedata. + + src/app/components/address/address.component.html + 129 + + address.error.loading-address-data + + + There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: + + src/app/components/address/address.component.html + 134,137 + + Electrum server limit exceeded error + + + Asset + + src/app/components/asset/asset.component.html + 3 + + Liquid Asset page title + asset + + + Name + Navn + + src/app/components/asset/asset.component.html + 21 + + + src/app/components/assets/assets.component.html + 4,6 + + + src/app/components/assets/assets.component.html + 29,31 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 28,30 + + Asset name header + + + Precision + + src/app/components/asset/asset.component.html + 25 + + Liquid Asset precision + asset.precision + + + Issuer + + src/app/components/asset/asset.component.html + 29 + + Liquid Asset issuer + asset.issuer + + + Issuance TX + + src/app/components/asset/asset.component.html + 33 + + Liquid Asset issuance TX + asset.issuance-tx + + + Pegged in + + src/app/components/asset/asset.component.html + 37 + + Liquid Asset pegged-in amount + asset.pegged-in + + + Pegged out + + src/app/components/asset/asset.component.html + 41 + + Liquid Asset pegged-out amount + asset.pegged-out + + + Burned amount + + src/app/components/asset/asset.component.html + 49 + + Liquid Asset burned amount + asset.burned-amount + + + Circulating amount + + src/app/components/asset/asset.component.html + 53 + + + src/app/components/asset/asset.component.html + 57 + + Liquid Asset circulating amount + asset.circulating-amount + + + of   + + src/app/components/asset/asset.component.html + 78 + + asset.M_of_N + + + Peg In/Out and Burn Transactions + + src/app/components/asset/asset.component.html + 79 + + Liquid native asset transactions title + + + Issuance and Burn Transactions + + src/app/components/asset/asset.component.html + 80 + + Default asset transactions title + + + Error loading asset data. + + src/app/components/asset/asset.component.html + 150 + + asset.error.loading-asset-data + + + Asset: + + src/app/components/asset/asset.component.ts + 75 + + + + Group of assets + + src/app/components/assets/asset-group/asset-group.component.html + 8,9 + + + src/app/components/assets/assets-featured/assets-featured.component.html + 9,10 + + + + Assets + + src/app/components/assets/assets-nav/assets-nav.component.html + 3 + + + src/app/components/assets/assets-nav/assets-nav.component.ts + 42 + + + src/app/components/assets/assets.component.ts + 44 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 79,81 + + Assets page header + + + Featured + + src/app/components/assets/assets-nav/assets-nav.component.html + 9 + + + + All + + src/app/components/assets/assets-nav/assets-nav.component.html + 13 + + + src/app/components/pool-ranking/pool-ranking.component.html + 72,78 + + + src/app/components/pool/pool.component.html + 149,151 + + + src/app/components/pool/pool.component.html + 172,174 + + + src/app/components/pool/pool.component.html + 428,430 + + + src/app/components/pool/pool.component.html + 454,456 + + + + Search asset + + src/app/components/assets/assets-nav/assets-nav.component.html + 19 + + Search Assets Placeholder Text + + + Clear + + src/app/components/assets/assets-nav/assets-nav.component.html + 21 + + Search Clear Button + + + Ticker + + src/app/components/assets/assets.component.html + 5,6 + + + src/app/components/assets/assets.component.html + 30,31 + + Asset ticker header + + + Issuer domain + + src/app/components/assets/assets.component.html + 6,9 + + + src/app/components/assets/assets.component.html + 31,34 + + Asset Issuer Domain header + + + Asset ID + + src/app/components/assets/assets.component.html + 7,10 + + + src/app/components/assets/assets.component.html + 32,36 + + Asset ID header + + + Error loading assets data. + + src/app/components/assets/assets.component.html + 48,53 + + Asset data load error + + + Offline + Offline + + src/app/components/bisq-master-page/bisq-master-page.component.html + 36,37 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 41,42 + + + src/app/components/master-page/master-page.component.html + 14,15 + + master-page.offline + + + Reconnecting... + Genopretter forbindelse... + + src/app/components/bisq-master-page/bisq-master-page.component.html + 37,42 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 42,47 + + + src/app/components/master-page/master-page.component.html + 15,20 + + master-page.reconnecting + + + Layer 2 Networks + + src/app/components/bisq-master-page/bisq-master-page.component.html + 50,51 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 55,56 + + + src/app/components/master-page/master-page.component.html + 28,29 + + master-page.layer2-networks-header + + + Dashboard + + src/app/components/bisq-master-page/bisq-master-page.component.html + 60,62 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 65,67 + + + src/app/components/master-page/master-page.component.html + 38,40 + + master-page.dashboard + + + Stats + + src/app/components/bisq-master-page/bisq-master-page.component.html + 69,71 + + master-page.stats + + + Docs + Dokumenter + + src/app/components/bisq-master-page/bisq-master-page.component.html + 72,74 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 82,84 + + master-page.docs + + + Block Fee Rates + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.html + 6,8 + + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts + 66 + + + src/app/components/graphs/graphs.component.html + 18 + + mining.block-fee-rates + + + At block: + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts + 188 + + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 142 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 161 + + + + Around block: + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts + 190 + + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 144 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 163 + + + + Block Fees + + src/app/components/block-fees-graph/block-fees-graph.component.html + 6,7 + + + src/app/components/block-fees-graph/block-fees-graph.component.ts + 62 + + + src/app/components/graphs/graphs.component.html + 20 + + mining.block-fees + + + Indexing blocks + + src/app/components/block-fees-graph/block-fees-graph.component.ts + 110,105 + + + src/app/components/block-rewards-graph/block-rewards-graph.component.ts + 108,103 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 115,110 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 171,166 + + + src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts + 167,162 + + + src/app/components/indexing-progress/indexing-progress.component.html + 1 + + + src/app/components/pool/pool-preview.component.ts + 122,117 + + + src/app/components/pool/pool.component.ts + 114,109 + + + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + + + Fee + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 22 + + + src/app/components/transaction/transaction-preview.component.html + 27 + + + src/app/components/transaction/transaction.component.html + 476 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 44 + + + src/app/dashboard/dashboard.component.html + 127,129 + + Transaction fee + transaction.fee + + + sat + sat + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 23 + + + src/app/components/transaction/transaction-preview.component.html + 27 + + + src/app/components/transaction/transaction.component.html + 476,477 + + + src/app/components/transactions-list/transactions-list.component.html + 286,287 + + sat + shared.sat + + + Fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 26 + + + src/app/components/transaction/transaction.component.html + 161,165 + + + src/app/components/transaction/transaction.component.html + 479,481 + + + src/app/lightning/channel/channel-box/channel-box.component.html + 18 + + + src/app/lightning/channel/channel-preview.component.html + 31,34 + + + src/app/lightning/channels-list/channels-list.component.html + 38,39 + + Transaction fee rate + transaction.fee-rate + + + sat/vB + sat/vB + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 28 + + + src/app/components/block/block-preview.component.html + 37,40 + + + src/app/components/block/block.component.html + 125,128 + + + src/app/components/block/block.component.html + 129 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 12,14 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 15,17 + + + src/app/components/fees-box/fees-box.component.html + 16 + + + src/app/components/fees-box/fees-box.component.html + 22 + + + src/app/components/fees-box/fees-box.component.html + 27 + + + src/app/components/fees-box/fees-box.component.html + 32 + + + src/app/components/mempool-block/mempool-block.component.html + 17 + + + src/app/components/mempool-block/mempool-block.component.html + 21,24 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 10,12 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 13,16 + + + src/app/components/transaction/transaction-preview.component.html + 39 + + + src/app/components/transaction/transaction.component.html + 173,174 + + + src/app/components/transaction/transaction.component.html + 184,185 + + + src/app/components/transaction/transaction.component.html + 195,196 + + + src/app/components/transaction/transaction.component.html + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 + + + src/app/components/transactions-list/transactions-list.component.html + 286 + + + src/app/dashboard/dashboard.component.html + 137,141 + + + src/app/dashboard/dashboard.component.html + 204,208 + + sat/vB + shared.sat-vbyte + + + Virtual size + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 32 + + + src/app/components/transaction/transaction.component.html + 160,162 + + + src/app/components/transaction/transaction.component.html + 274,277 + + Transaction Virtual Size + transaction.vsize + + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + + + Block Prediction Accuracy + + src/app/components/block-prediction-graph/block-prediction-graph.component.html + 6,8 + + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 63 + + + src/app/components/graphs/graphs.component.html + 26 + + mining.block-prediction-accuracy + + + No data to display yet. Try again later. + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 108,103 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + + + src/app/lightning/nodes-map/nodes-map.component.ts + 144,139 + + + + Match rate + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 189,187 + + + + Block Rewards + + src/app/components/block-rewards-graph/block-rewards-graph.component.html + 7,8 + + + src/app/components/block-rewards-graph/block-rewards-graph.component.ts + 60 + + + src/app/components/graphs/graphs.component.html + 22 + + mining.block-rewards + + + Block Sizes and Weights + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.html + 5,7 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 62 + + + src/app/components/graphs/graphs.component.html + 24 + + mining.block-sizes-weights + + + Size + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + + + Block + + src/app/components/block/block-preview.component.html + 3,7 + + + src/app/components/block/block.component.html + 5,6 + + shared.block-title + + + + + src/app/components/block/block-preview.component.html + 11,12 + + shared.block-title + + + Median fee + + src/app/components/block/block-preview.component.html + 36,37 + + + src/app/components/block/block.component.html + 128,129 + + + src/app/components/mempool-block/mempool-block.component.html + 16,17 + + block.median-fee + + + Total fees + Samlede gebyrer + + src/app/components/block/block-preview.component.html + 41,43 + + + src/app/components/block/block.component.html + 133,135 + + + src/app/components/block/block.component.html + 159,162 + + + src/app/components/mempool-block/mempool-block.component.html + 24,25 + + Total fees in a block + block.total-fees + + + Miner + + src/app/components/block/block-preview.component.html + 53,55 + + + src/app/components/block/block.component.html + 168,170 + + block.miner + + + Block : + + src/app/components/block/block-preview.component.ts + 98 + + + src/app/components/block/block.component.ts + 227 + + + + Next Block + + src/app/components/block/block.component.html + 8,9 + + + src/app/components/mempool-block/mempool-block.component.ts + 75 + + Next Block + + + Previous Block + + src/app/components/block/block.component.html + 15,16 + + Previous Block + + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Ukendt + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + + + Based on average native segwit transaction of 140 vBytes + + src/app/components/block/block.component.html + 129,131 + + + src/app/components/fees-box/fees-box.component.html + 16,18 + + + src/app/components/fees-box/fees-box.component.html + 22,24 + + + src/app/components/fees-box/fees-box.component.html + 27,28 + + + src/app/components/fees-box/fees-box.component.html + 32,34 + + + src/app/components/mempool-block/mempool-block.component.html + 17,20 + + Transaction fee tooltip + + + Subsidy + fees: + + src/app/components/block/block.component.html + 148,151 + + + src/app/components/block/block.component.html + 163,167 + + Total subsidy and fees in a block + block.subsidy-and-fees + + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + + + Bits + + src/app/components/block/block.component.html + 250,252 + + block.bits + + + Merkle root + Merkle-træ + + src/app/components/block/block.component.html + 254,256 + + block.merkle-root + + + Difficulty + Sværhedsgrad + + src/app/components/block/block.component.html + 265,268 + + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 7,10 + + + src/app/components/hashrate-chart/hashrate-chart.component.html + 14,16 + + + src/app/components/hashrate-chart/hashrate-chart.component.html + 75,77 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 284,283 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 371,368 + + block.difficulty + + + Nonce + + src/app/components/block/block.component.html + 269,271 + + block.nonce + + + Block Header Hex + + src/app/components/block/block.component.html + 273,274 + + block.header + + + Details + Detaljer + + src/app/components/block/block.component.html + 284,288 + + + src/app/components/transaction/transaction.component.html + 254,259 + + + src/app/lightning/channel/channel.component.html + 86,88 + + + src/app/lightning/channel/channel.component.html + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 + + Transaction Details + transaction.details + + + Error loading data. + Fejl ved indlæsning af data. + + src/app/components/block/block.component.html + 303,305 + + + src/app/components/block/block.component.html + 339,343 + + + src/app/lightning/channel/channel-preview.component.html + 70,75 + + + src/app/lightning/channel/channel.component.html + 109,115 + + + src/app/lightning/node/node-preview.component.html + 66,69 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 61,64 + + error.general-loading-data + + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + + + Pool + + src/app/components/blocks-list/blocks-list.component.html + 14 + + + src/app/components/blocks-list/blocks-list.component.html + 14,15 + + + src/app/components/pool-ranking/pool-ranking.component.html + 92,93 + + + src/app/dashboard/dashboard.component.html + 89,90 + + mining.pool-name + + + Mined + + src/app/components/blocks-list/blocks-list.component.html + 16,17 + + + src/app/components/pool/pool.component.html + 214,215 + + + src/app/components/pool/pool.component.html + 261,262 + + + src/app/dashboard/dashboard.component.html + 88,89 + + latest-blocks.mined + + + Health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health + + + Reward + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/pool/pool.component.html + 216,218 + + + src/app/components/pool/pool.component.html + 263,265 + + latest-blocks.reward + + + Fees + Gebyrer + + src/app/components/blocks-list/blocks-list.component.html + 21,22 + + + src/app/components/pool/pool.component.html + 217,219 + + + src/app/components/pool/pool.component.html + 264,266 + + latest-blocks.fees + + + TXs + + src/app/components/blocks-list/blocks-list.component.html + 23,24 + + + src/app/components/blocks-list/blocks-list.component.html + 24 + + + src/app/components/pool/pool.component.html + 219,221 + + + src/app/components/pool/pool.component.html + 266,268 + + + src/app/dashboard/dashboard.component.html + 91,93 + + + src/app/dashboard/dashboard.component.html + 210,214 + + dashboard.txs + + + Copied! + Kopieret! + + src/app/components/clipboard/clipboard.component.ts + 19 + + + + Adjusted + Justeret + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 6,8 + + mining.adjusted + + + Change + Ændring + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 8,11 + + mining.change + + + Difficulty Adjustment + Sværhedsgrad justering + + src/app/components/difficulty/difficulty.component.html + 1,5 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 24 + + dashboard.difficulty-adjustment + + + Remaining + + src/app/components/difficulty/difficulty.component.html + 7,9 + + + src/app/components/difficulty/difficulty.component.html + 66,69 + + difficulty-box.remaining + + + blocks + + src/app/components/difficulty/difficulty.component.html + 10,11 + + + src/app/components/difficulty/difficulty.component.html + 53,54 + + + src/app/components/footer/footer.component.html + 25,26 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 35,36 + + + src/app/lightning/channel/channel-box/channel-box.component.html + 78 + + shared.blocks + + + block + + src/app/components/difficulty/difficulty.component.html + 11,12 + + + src/app/components/difficulty/difficulty.component.html + 54,55 + + + src/app/components/footer/footer.component.html + 26,27 + + shared.block + + + Estimate + + src/app/components/difficulty/difficulty.component.html + 16,17 + + + src/app/components/difficulty/difficulty.component.html + 73,76 + + difficulty-box.estimate + + + Previous + + src/app/components/difficulty/difficulty.component.html + 31,33 + + difficulty-box.previous + + + Current Period + Nuværende periode + + src/app/components/difficulty/difficulty.component.html + 43,44 + + + src/app/components/difficulty/difficulty.component.html + 80,83 + + difficulty-box.current-period + + + Next Halving + Næste Halvering + + src/app/components/difficulty/difficulty.component.html + 50,52 + + difficulty-box.next-halving + + + Either 2x the minimum, or the Low Priority rate (whichever is lower) + + src/app/components/fees-box/fees-box.component.html + 4,7 + + Transaction feerate tooltip (economy) + + + No Priority + Ingen prioritet + + src/app/components/fees-box/fees-box.component.html + 4,7 + + + src/app/components/fees-box/fees-box.component.html + 41,44 + + fees-box.no-priority + + + Usually places your transaction in between the second and third mempool blocks + + src/app/components/fees-box/fees-box.component.html + 8,9 + + Transaction feerate tooltip (low priority) + + + Low Priority + Lav prioritet + + src/app/components/fees-box/fees-box.component.html + 8,9 + + + src/app/components/fees-box/fees-box.component.html + 45,46 + + fees-box.low-priority + + + Usually places your transaction in between the first and second mempool blocks + + src/app/components/fees-box/fees-box.component.html + 9,10 + + Transaction feerate tooltip (medium priority) + + + Medium Priority + Mellem prioritet + + src/app/components/fees-box/fees-box.component.html + 9,10 + + + src/app/components/fees-box/fees-box.component.html + 46,48 + + fees-box.medium-priority + + + Places your transaction in the first mempool block + + src/app/components/fees-box/fees-box.component.html + 10,14 + + Transaction feerate tooltip (high priority) + + + High Priority + Høj prioritet + + src/app/components/fees-box/fees-box.component.html + 10,15 + + + src/app/components/fees-box/fees-box.component.html + 47,51 + + fees-box.high-priority + + + Incoming transactions + Indgående transaktioner + + src/app/components/footer/footer.component.html + 5,6 + + + src/app/dashboard/dashboard.component.html + 237,238 + + dashboard.incoming-transactions + + + Backend is synchronizing + Backend synkroniserer + + src/app/components/footer/footer.component.html + 8,10 + + + src/app/dashboard/dashboard.component.html + 240,243 + + dashboard.backend-is-synchronizing + + + vB/s + vB/s + + src/app/components/footer/footer.component.html + 13,17 + + + src/app/dashboard/dashboard.component.html + 245,250 + + vB/s + shared.vbytes-per-second + + + Unconfirmed + Ubekræftet + + src/app/components/footer/footer.component.html + 19,21 + + + src/app/dashboard/dashboard.component.html + 208,209 + + Unconfirmed count + dashboard.unconfirmed + + + Mempool size + + src/app/components/footer/footer.component.html + 23,24 + + Mempool size + dashboard.mempool-size + + + Mining + + src/app/components/graphs/graphs.component.html + 8 + + mining + + + Pools Ranking + + src/app/components/graphs/graphs.component.html + 11 + + + src/app/components/pool-ranking/pool-ranking.component.html + 36,37 + + mining.pools + + + Pools Dominance + + src/app/components/graphs/graphs.component.html + 13 + + + src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.html + 7,8 + + mining.pools-dominance + + + Hashrate & Difficulty + + src/app/components/graphs/graphs.component.html + 15,16 + + mining.hashrate-difficulty + + + Lightning + + src/app/components/graphs/graphs.component.html + 31 + + lightning + + + Lightning Nodes Per Network + + src/app/components/graphs/graphs.component.html + 34 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.html + 5,7 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 67 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 131,126 + + lightning.nodes-networks + + + Lightning Network Capacity + + src/app/components/graphs/graphs.component.html + 36 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.html + 5,7 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 66 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 122,117 + + lightning.network-capacity + + + Lightning Nodes Per ISP + + src/app/components/graphs/graphs.component.html + 38 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 51 + + lightning.nodes-per-isp + + + Lightning Nodes Per Country + + src/app/components/graphs/graphs.component.html + 40 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 5,7 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts + 46 + + lightning.nodes-per-country + + + Lightning Nodes World Map + + src/app/components/graphs/graphs.component.html + 42 + + + src/app/lightning/nodes-map/nodes-map.component.html + 5,7 + + + src/app/lightning/nodes-map/nodes-map.component.ts + 50 + + lightning.lightning.nodes-heatmap + + + Lightning Nodes Channels World Map + + src/app/components/graphs/graphs.component.html + 44 + + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.html + 6,8 + + lightning.nodes-channels-world-map + + + Hashrate + + src/app/components/hashrate-chart/hashrate-chart.component.html + 8,10 + + + src/app/components/hashrate-chart/hashrate-chart.component.html + 69,71 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 273,272 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 359,356 + + + src/app/components/pool-ranking/pool-ranking.component.html + 93,95 + + + src/app/components/pool/pool-preview.component.html + 22,23 + + mining.hashrate + + + Hashrate & Difficulty + + src/app/components/hashrate-chart/hashrate-chart.component.html + 27,29 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 73 + + mining.hashrate-difficulty + + + Hashrate (MA) + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 292,291 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 382,380 + + + + Pools Historical Dominance + + src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts + 64 + + + + Indexing network hashrate + + src/app/components/indexing-progress/indexing-progress.component.html + 2 + + + + Indexing pools hashrate + + src/app/components/indexing-progress/indexing-progress.component.html + 3 + + + + Graphs + + src/app/components/liquid-master-page/liquid-master-page.component.html + 71,74 + + + src/app/components/master-page/master-page.component.html + 52,54 + + + src/app/components/statistics/statistics.component.ts + 62 + + master-page.graphs + + + Mining Dashboard + + src/app/components/master-page/master-page.component.html + 41,43 + + + src/app/components/mining-dashboard/mining-dashboard.component.ts + 16 + + mining.mining-dashboard + + + Lightning Explorer + + src/app/components/master-page/master-page.component.html + 44,45 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts + 27 + + master-page.lightning + + + beta + + src/app/components/master-page/master-page.component.html + 45,48 + + beta + + + Documentation + + src/app/components/master-page/master-page.component.html + 55,57 + + + src/app/docs/docs/docs.component.html + 4 + + documentation.title + + + Stack of mempool blocks + + src/app/components/mempool-block/mempool-block.component.ts + 77 + + + + Mempool block + + src/app/components/mempool-block/mempool-block.component.ts + 79 + + + + Range + + src/app/components/mempool-graph/mempool-graph.component.ts + 259 + + + + Sum + + src/app/components/mempool-graph/mempool-graph.component.ts + 261 + + + + Reward stats + + src/app/components/mining-dashboard/mining-dashboard.component.html + 10 + + mining.reward-stats + + + (144 blocks) + + src/app/components/mining-dashboard/mining-dashboard.component.html + 11 + + mining.144-blocks + + + Latest blocks + + src/app/components/mining-dashboard/mining-dashboard.component.html + 53 + + + src/app/dashboard/dashboard.component.html + 81,83 + + dashboard.latest-blocks + + + Adjustments + + src/app/components/mining-dashboard/mining-dashboard.component.html + 67 + + dashboard.adjustments + + + Pools luck (1 week) + + src/app/components/pool-ranking/pool-ranking.component.html + 9 + + mining.miners-luck-1w + + + Pools luck + + src/app/components/pool-ranking/pool-ranking.component.html + 9,11 + + mining.miners-luck + + + 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. + + src/app/components/pool-ranking/pool-ranking.component.html + 11,15 + + mining.pools-luck-desc + + + Pools count (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 17 + + mining.miners-count-1w + + + Pools count + + src/app/components/pool-ranking/pool-ranking.component.html + 17,19 + + mining.miners-count + + + How many unique pools found at least one block over the past week. + + src/app/components/pool-ranking/pool-ranking.component.html + 19,23 + + mining.pools-count-desc + + + Blocks (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 25 + + + src/app/components/pool-ranking/pool-ranking.component.html + 25,27 + + + src/app/components/pool-ranking/pool-ranking.component.html + 136,138 + + master-page.blocks + + + The number of blocks found over the past week. + + src/app/components/pool-ranking/pool-ranking.component.html + 27,31 + + mining.blocks-count-desc + + + Rank + + src/app/components/pool-ranking/pool-ranking.component.html + 90,92 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 27,29 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 57,59 + + mining.rank + + + Empty blocks + + src/app/components/pool-ranking/pool-ranking.component.html + 95,98 + + mining.empty-blocks + + + All miners + + src/app/components/pool-ranking/pool-ranking.component.html + 113,114 + + mining.all-miners + + + Pools Luck (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 130,132 + + mining.miners-luck + + + Pools Count (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 142,144 + + mining.miners-count + + + Mining Pools + + src/app/components/pool-ranking/pool-ranking.component.ts + 57 + + + + blocks + + src/app/components/pool-ranking/pool-ranking.component.ts + 165,163 + + + src/app/components/pool-ranking/pool-ranking.component.ts + 168,167 + + + + mining pool + + src/app/components/pool/pool-preview.component.html + 3,5 + + mining.pools + + + Tags + + src/app/components/pool/pool-preview.component.html + 18,19 + + + src/app/components/pool/pool.component.html + 22,23 + + + src/app/components/pool/pool.component.html + 30,31 + + + src/app/components/pool/pool.component.html + 320,322 + + + src/app/components/pool/pool.component.html + 328,330 + + mining.tags + + + Show all + + src/app/components/pool/pool.component.html + 53,55 + + + src/app/components/pool/pool.component.html + 68,70 + + + src/app/components/transactions-list/transactions-list.component.html + 120,121 + + + src/app/components/transactions-list/transactions-list.component.html + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 + + show-all + + + Hide + + src/app/components/pool/pool.component.html + 55,58 + + hide + + + Hashrate (24h) + + src/app/components/pool/pool.component.html + 91,93 + + + src/app/components/pool/pool.component.html + 114,116 + + + src/app/components/pool/pool.component.html + 367,369 + + + src/app/components/pool/pool.component.html + 394,396 + + mining.hashrate-24h + + + Estimated + + src/app/components/pool/pool.component.html + 96,97 + + + src/app/components/pool/pool.component.html + 118,119 + + + src/app/components/pool/pool.component.html + 372,373 + + + src/app/components/pool/pool.component.html + 398,399 + + mining.estimated + + + Reported + + src/app/components/pool/pool.component.html + 97,98 + + + src/app/components/pool/pool.component.html + 119,120 + + + src/app/components/pool/pool.component.html + 373,374 + + + src/app/components/pool/pool.component.html + 399,400 + + mining.reported + + + Luck + + src/app/components/pool/pool.component.html + 98,101 + + + src/app/components/pool/pool.component.html + 120,123 + + + src/app/components/pool/pool.component.html + 374,377 + + + src/app/components/pool/pool.component.html + 400,403 + + mining.luck + + + Mined blocks + + src/app/components/pool/pool.component.html + 141,143 + + + src/app/components/pool/pool.component.html + 165,167 + + + src/app/components/pool/pool.component.html + 420,422 + + + src/app/components/pool/pool.component.html + 447,449 + + mining.mined-blocks + + + 24h + + src/app/components/pool/pool.component.html + 147 + + + src/app/components/pool/pool.component.html + 170 + + 24h + + + 1w + + src/app/components/pool/pool.component.html + 148 + + + src/app/components/pool/pool.component.html + 171 + + 1w + + + Coinbase tag + + src/app/components/pool/pool.component.html + 215,217 + + + src/app/components/pool/pool.component.html + 262,264 + + latest-blocks.coinbasetag + + + Broadcast Transaction + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 154,161 + + Broadcast Transaction + shared.broadcast-transaction + + + Transaction hex + + src/app/components/push-transaction/push-transaction.component.html + 6 + + + src/app/components/transaction/transaction.component.html + 296,297 + + transaction.hex + + + Miners Reward + + src/app/components/reward-stats/reward-stats.component.html + 5 + + + src/app/components/reward-stats/reward-stats.component.html + 5,6 + + + src/app/components/reward-stats/reward-stats.component.html + 46,49 + + mining.rewards + + + Amount being paid to miners in the past 144 blocks + + src/app/components/reward-stats/reward-stats.component.html + 6,8 + + mining.rewards-desc + + + Avg Block Fees + + src/app/components/reward-stats/reward-stats.component.html + 17 + + + src/app/components/reward-stats/reward-stats.component.html + 17,18 + + mining.fees-per-block + + + Average fees per block in the past 144 blocks + + src/app/components/reward-stats/reward-stats.component.html + 18,20 + + mining.fees-per-block-desc + + + BTC/block + + src/app/components/reward-stats/reward-stats.component.html + 21,24 + + BTC/block + shared.btc-block + + + Avg Tx Fee + + src/app/components/reward-stats/reward-stats.component.html + 30 + + + src/app/components/reward-stats/reward-stats.component.html + 30,31 + + mining.average-fee + + + Fee paid on average for each transaction in the past 144 blocks + + src/app/components/reward-stats/reward-stats.component.html + 31,32 + + mining.average-fee + + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + + + Explore the full Bitcoin ecosystem + + src/app/components/search-form/search-form.component.html + 4,5 + + search-form.searchbar-placeholder + + + Search + + src/app/components/search-form/search-form.component.html + 9,16 + + search-form.search-title + + + Mempool by vBytes (sat/vByte) + + src/app/components/statistics/statistics.component.html + 7 + + statistics.memory-by-vBytes + + + TV view + + src/app/components/statistics/statistics.component.html + 18 + + + src/app/components/television/television.component.ts + 39 + + master-page.tvview + + + Filter + + src/app/components/statistics/statistics.component.html + 57 + + statistics.component-filter.title + + + Invert + + src/app/components/statistics/statistics.component.html + 76 + + statistics.component-invert.title + + + Transaction vBytes per second (vB/s) + + src/app/components/statistics/statistics.component.html + 96 + + statistics.transaction-vbytes-per-second + + + Just now + + src/app/components/time-since/time-since.component.ts + 64 + + + src/app/components/time-span/time-span.component.ts + 57 + + + + ago + + src/app/components/time-since/time-since.component.ts + 74 + + + src/app/components/time-since/time-since.component.ts + 75 + + + src/app/components/time-since/time-since.component.ts + 76 + + + src/app/components/time-since/time-since.component.ts + 77 + + + src/app/components/time-since/time-since.component.ts + 78 + + + src/app/components/time-since/time-since.component.ts + 79 + + + src/app/components/time-since/time-since.component.ts + 80 + + + src/app/components/time-since/time-since.component.ts + 84 + + + src/app/components/time-since/time-since.component.ts + 85 + + + src/app/components/time-since/time-since.component.ts + 86 + + + src/app/components/time-since/time-since.component.ts + 87 + + + src/app/components/time-since/time-since.component.ts + 88 + + + src/app/components/time-since/time-since.component.ts + 89 + + + src/app/components/time-since/time-since.component.ts + 90 + + + + After + + src/app/components/time-span/time-span.component.ts + 67 + + + src/app/components/time-span/time-span.component.ts + 68 + + + src/app/components/time-span/time-span.component.ts + 69 + + + src/app/components/time-span/time-span.component.ts + 70 + + + src/app/components/time-span/time-span.component.ts + 71 + + + src/app/components/time-span/time-span.component.ts + 72 + + + src/app/components/time-span/time-span.component.ts + 73 + + + src/app/components/time-span/time-span.component.ts + 77 + + + src/app/components/time-span/time-span.component.ts + 78 + + + src/app/components/time-span/time-span.component.ts + 79 + + + src/app/components/time-span/time-span.component.ts + 80 + + + src/app/components/time-span/time-span.component.ts + 81 + + + src/app/components/time-span/time-span.component.ts + 82 + + + src/app/components/time-span/time-span.component.ts + 83 + + + + In ~ + + src/app/components/time-until/time-until.component.ts + 66 + + + src/app/components/time-until/time-until.component.ts + 80 + + + src/app/components/time-until/time-until.component.ts + 81 + + + src/app/components/time-until/time-until.component.ts + 82 + + + src/app/components/time-until/time-until.component.ts + 83 + + + src/app/components/time-until/time-until.component.ts + 84 + + + src/app/components/time-until/time-until.component.ts + 85 + + + src/app/components/time-until/time-until.component.ts + 86 + + + src/app/components/time-until/time-until.component.ts + 90 + + + src/app/components/time-until/time-until.component.ts + 91 + + + src/app/components/time-until/time-until.component.ts + 92 + + + src/app/components/time-until/time-until.component.ts + 93 + + + src/app/components/time-until/time-until.component.ts + 94 + + + src/app/components/time-until/time-until.component.ts + 95 + + + src/app/components/time-until/time-until.component.ts + 96 + + + + This transaction has been replaced by: + + src/app/components/transaction/transaction.component.html + 5,6 + + RBF replacement + transaction.rbf.replacement + + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + + + Unconfirmed + + src/app/components/transaction/transaction.component.html + 39,46 + + + src/app/components/transactions-list/transactions-list.component.html + 298,301 + + Transaction unconfirmed state + transaction.unconfirmed + + + First seen + + src/app/components/transaction/transaction.component.html + 108,109 + + + src/app/lightning/node/node.component.html + 67,70 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 61,63 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 58,60 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 11,13 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 13,15 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,15 + + Transaction first seen + transaction.first-seen + + + ETA + + src/app/components/transaction/transaction.component.html + 115,116 + + Transaction ETA + transaction.eta + + + In several hours (or more) + + src/app/components/transaction/transaction.component.html + 121,124 + + Transaction ETA in several hours or more + transaction.eta.in-several-hours + + + Descendant + + src/app/components/transaction/transaction.component.html + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 + + Descendant + transaction.descendant + + + Ancestor + + src/app/components/transaction/transaction.component.html + 190,192 + + Transaction Ancestor + transaction.ancestor + + + Flow + + src/app/components/transaction/transaction.component.html + 208,211 + + + src/app/components/transaction/transaction.component.html + 346,350 + + Transaction flow + transaction.flow + + + Hide diagram + + src/app/components/transaction/transaction.component.html + 211,216 + + hide-diagram + + + Show more + + src/app/components/transaction/transaction.component.html + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 + + show-more + + + Show less + + src/app/components/transaction/transaction.component.html + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 + + show-less + + + Show diagram + + src/app/components/transaction/transaction.component.html + 253,254 + + show-diagram + + + Locktime + + src/app/components/transaction/transaction.component.html + 292,294 + + transaction.locktime + + + Transaction not found. + + src/app/components/transaction/transaction.component.html + 455,456 + + transaction.error.transaction-not-found + + + Waiting for it to appear in the mempool... + + src/app/components/transaction/transaction.component.html + 456,461 + + transaction.error.waiting-for-it-to-appear + + + Effective fee rate + + src/app/components/transaction/transaction.component.html + 489,492 + + Effective transaction fee rate + transaction.effective-fee-rate + + + Coinbase + + src/app/components/transactions-list/transactions-list.component.html + 52 + + transactions-list.coinbase + + + (Newly Generated Coins) + + src/app/components/transactions-list/transactions-list.component.html + 52 + + transactions-list.newly-generated-coins + + + Peg-in + + src/app/components/transactions-list/transactions-list.component.html + 54,56 + + transactions-list.peg-in + + + ScriptSig (ASM) + + src/app/components/transactions-list/transactions-list.component.html + 101,103 + + ScriptSig (ASM) + transactions-list.scriptsig.asm + + + ScriptSig (HEX) + + src/app/components/transactions-list/transactions-list.component.html + 105,108 + + ScriptSig (HEX) + transactions-list.scriptsig.hex + + + Witness + + src/app/components/transactions-list/transactions-list.component.html + 110,112 + + transactions-list.witness + + + P2SH redeem script + + src/app/components/transactions-list/transactions-list.component.html + 128,129 + + transactions-list.p2sh-redeem-script + + + P2TR tapscript + + src/app/components/transactions-list/transactions-list.component.html + 132,134 + + transactions-list.p2tr-tapscript + + + P2WSH witness script + + src/app/components/transactions-list/transactions-list.component.html + 134,136 + + transactions-list.p2wsh-witness-script + + + nSequence + + src/app/components/transactions-list/transactions-list.component.html + 139,141 + + transactions-list.nsequence + + + Previous output script + + src/app/components/transactions-list/transactions-list.component.html + 144,145 + + transactions-list.previous-output-script + + + Previous output type + + src/app/components/transactions-list/transactions-list.component.html + 148,149 + + transactions-list.previous-output-type + + + Peg-out to + + src/app/components/transactions-list/transactions-list.component.html + 189,190 + + transactions-list.peg-out-to + + + ScriptPubKey (ASM) + + src/app/components/transactions-list/transactions-list.component.html + 248,250 + + ScriptPubKey (ASM) + transactions-list.scriptpubkey.asm + + + ScriptPubKey (HEX) + + src/app/components/transactions-list/transactions-list.component.html + 252,255 + + ScriptPubKey (HEX) + transactions-list.scriptpubkey.hex + + + Show more inputs to reveal fee data + + src/app/components/transactions-list/transactions-list.component.html + 288,291 + + transactions-list.load-to-reveal-fee-info + + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + + + other inputs + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 12 + + transaction.other-inputs + + + other outputs + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 13 + + transaction.other-outputs + + + Input + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 + + transaction.input + + + Output + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 + + transaction.output + + + This transaction saved % on fees by using native SegWit + + src/app/components/tx-features/tx-features.component.html + 2 + + ngbTooltip about segwit gains + + + SegWit + + src/app/components/tx-features/tx-features.component.html + 2 + + + src/app/components/tx-features/tx-features.component.html + 4 + + + src/app/components/tx-features/tx-features.component.html + 6 + + SegWit + tx-features.tag.segwit + + + This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + + src/app/components/tx-features/tx-features.component.html + 4 + + ngbTooltip about double segwit gains + + + This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + + src/app/components/tx-features/tx-features.component.html + 6 + + ngbTooltip about missed out gains + + + This transaction uses Taproot and thereby saved at least % on fees + + src/app/components/tx-features/tx-features.component.html + 12 + + Tooltip about fees saved with taproot + + + Taproot + + src/app/components/tx-features/tx-features.component.html + 12 + + + src/app/components/tx-features/tx-features.component.html + 14 + + + src/app/components/tx-features/tx-features.component.html + 16 + + + src/app/components/tx-features/tx-features.component.html + 18 + + + src/app/components/tx-features/tx-features.component.html + 21 + + Taproot + tx-features.tag.taproot + + + This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + + src/app/components/tx-features/tx-features.component.html + 14 + + Tooltip about fees that saved and could be saved with taproot + + + This transaction could save % on fees by using Taproot + + src/app/components/tx-features/tx-features.component.html + 16 + + Tooltip about fees that could be saved with taproot + + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + + + This transaction uses Taproot + + src/app/components/tx-features/tx-features.component.html + 21 + + Tooltip about taproot + + + This transaction supports Replace-By-Fee (RBF) allowing fee bumping + + src/app/components/tx-features/tx-features.component.html + 28 + + RBF tooltip + + + RBF + + src/app/components/tx-features/tx-features.component.html + 28 + + + src/app/components/tx-features/tx-features.component.html + 29 + + RBF + tx-features.tag.rbf + + + This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method + + src/app/components/tx-features/tx-features.component.html + 29 + + RBF disabled tooltip + + + Optimal + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 1 + + TX Fee Rating is Optimal + tx-fee-rating.optimal + + + Only ~ sat/vB was needed to get into this block + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 2 + + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 3 + + tx-fee-rating.warning-tooltip + + + Overpaid x + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 2 + + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 3 + + TX Fee Rating is Warning + tx-fee-rating.overpaid.warning + + + Transaction Fees + + src/app/dashboard/dashboard.component.html + 6,9 + + fees-box.transaction-fees + + + Latest transactions + + src/app/dashboard/dashboard.component.html + 120,123 + + dashboard.latest-transactions + + + USD + + src/app/dashboard/dashboard.component.html + 126,127 + + dashboard.latest-transactions.USD + + + Minimum fee + + src/app/dashboard/dashboard.component.html + 201,202 + + Minimum mempool fee + dashboard.minimum-fee + + + Purging + + src/app/dashboard/dashboard.component.html + 202,203 + + Purgin below fee + dashboard.purging + + + Memory usage + + src/app/dashboard/dashboard.component.html + 214,215 + + Memory usage + dashboard.memory-usage + + + L-BTC in circulation + + src/app/dashboard/dashboard.component.html + 228,230 + + dashboard.lbtc-pegs-in-circulation + + + REST API service + + src/app/docs/api-docs/api-docs.component.html + 39,40 + + api-docs.title + + + Endpoint + + src/app/docs/api-docs/api-docs.component.html + 48,49 + + + src/app/docs/api-docs/api-docs.component.html + 102,105 + + Api docs endpoint + + + Description + + src/app/docs/api-docs/api-docs.component.html + 67,68 + + + src/app/docs/api-docs/api-docs.component.html + 106,107 + + + + Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. + + src/app/docs/api-docs/api-docs.component.html + 107,108 + + api-docs.websocket.websocket + + + Code Example + + src/app/docs/code-template/code-template.component.html + 6,7 + + + src/app/docs/code-template/code-template.component.html + 13,14 + + + src/app/docs/code-template/code-template.component.html + 29,30 + + + src/app/docs/code-template/code-template.component.html + 36,37 + + API Docs code example + + + Install Package + + src/app/docs/code-template/code-template.component.html + 23,24 + + API Docs install lib + + + Response + + src/app/docs/code-template/code-template.component.html + 43,44 + + API Docs API response + + + FAQ + + src/app/docs/docs/docs.component.ts + 34 + + + + API + + src/app/docs/docs/docs.component.ts + 37 + + + src/app/docs/docs/docs.component.ts + 40 + + + src/app/docs/docs/docs.component.ts + 43 + + + + Base fee + + src/app/lightning/channel/channel-box/channel-box.component.html + 29 + + + src/app/lightning/channel/channel-preview.component.html + 41,44 + + lightning.base-fee + + + mSats + + src/app/lightning/channel/channel-box/channel-box.component.html + 35 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 47,50 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 93,96 + + + src/app/lightning/node/node.component.html + 180,182 + + shared.m-sats + + + This channel supports zero base fee routing + + src/app/lightning/channel/channel-box/channel-box.component.html + 44 + + lightning.zero-base-fee-tooltip + + + Zero base fee + + src/app/lightning/channel/channel-box/channel-box.component.html + 45 + + lightning.zero-base-fee + + + This channel does not support zero base fee routing + + src/app/lightning/channel/channel-box/channel-box.component.html + 50 + + lightning.non-zero-base-fee-tooltip + + + Non-zero base fee + + src/app/lightning/channel/channel-box/channel-box.component.html + 51 + + lightning.non-zero-base-fee + + + Min HTLC + + src/app/lightning/channel/channel-box/channel-box.component.html + 57 + + lightning.min-htlc + + + Max HTLC + + src/app/lightning/channel/channel-box/channel-box.component.html + 63 + + lightning.max-htlc + + + Timelock delta + + src/app/lightning/channel/channel-box/channel-box.component.html + 69 + + lightning.timelock-delta + + + channels + + src/app/lightning/channel/channel-box/channel-box.component.html + 79 + + + src/app/lightning/channels-list/channels-list.component.html + 120,121 + + lightning.x-channels + + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + + + lightning channel + + src/app/lightning/channel/channel-preview.component.html + 3,5 + + lightning.channel + + + Inactive + + src/app/lightning/channel/channel-preview.component.html + 10,11 + + + src/app/lightning/channel/channel.component.html + 11,12 + + + src/app/lightning/channels-list/channels-list.component.html + 65,66 + + status.inactive + + + Active + + src/app/lightning/channel/channel-preview.component.html + 11,12 + + + src/app/lightning/channel/channel.component.html + 12,13 + + + src/app/lightning/channels-list/channels-list.component.html + 66,68 + + status.active + + + Closed + Lukket + + src/app/lightning/channel/channel-preview.component.html + 12,14 + + + src/app/lightning/channel/channel.component.html + 13,14 + + + src/app/lightning/channels-list/channels-list.component.html + 8,13 + + + src/app/lightning/channels-list/channels-list.component.html + 68,70 + + status.closed + + + Created + + src/app/lightning/channel/channel-preview.component.html + 23,26 + + + src/app/lightning/channel/channel.component.html + 29,30 + + lightning.created + + + Capacity + + src/app/lightning/channel/channel-preview.component.html + 27,28 + + + src/app/lightning/channel/channel.component.html + 48,49 + + + src/app/lightning/channels-list/channels-list.component.html + 40,43 + + + src/app/lightning/node-statistics/node-statistics.component.html + 4,5 + + + src/app/lightning/node-statistics/node-statistics.component.html + 47,50 + + + src/app/lightning/nodes-list/nodes-list.component.html + 6,7 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 31,34 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 63,65 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 61,64 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 60,62 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 202,201 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 282,279 + + lightning.capacity + + + ppm + + src/app/lightning/channel/channel-preview.component.html + 34,35 + + + src/app/lightning/channel/channel-preview.component.html + 36,41 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 32,35 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 78,81 + + lightning.ppm + + + Lightning channel + + src/app/lightning/channel/channel.component.html + 2,5 + + + src/app/lightning/channel/channel.component.html + 117,119 + + lightning.channel + + + Last update + + src/app/lightning/channel/channel.component.html + 33,34 + + + src/app/lightning/node/node.component.html + 73,75 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 62,64 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 59,61 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 14,15 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 14,15 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 14,15 + + lightning.last-update + + + Closing date + + src/app/lightning/channel/channel.component.html + 37,38 + + + src/app/lightning/channels-list/channels-list.component.html + 39,40 + + lightning.closing_date + + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + + + Opening transaction + + src/app/lightning/channel/channel.component.html + 84,85 + + lightning.opening-transaction + + + Closing transaction + + src/app/lightning/channel/channel.component.html + 93,95 + + lightning.closing-transaction + + + Channel: + + src/app/lightning/channel/channel.component.ts + 37 + + + + Open + + src/app/lightning/channels-list/channels-list.component.html + 5,7 + + open + + + No channels to display + + src/app/lightning/channels-list/channels-list.component.html + 29,35 + + lightning.empty-channels-list + + + Alias + + src/app/lightning/channels-list/channels-list.component.html + 35,37 + + + src/app/lightning/group/group.component.html + 72,74 + + + src/app/lightning/nodes-list/nodes-list.component.html + 5,6 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 60,61 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 57,58 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 10,11 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 10,11 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 10,12 + + lightning.alias + + + Status + + src/app/lightning/channels-list/channels-list.component.html + 37,38 + + status + + + Channel ID + + src/app/lightning/channels-list/channels-list.component.html + 41,45 + + channels.id + + + sats + + src/app/lightning/channels-list/channels-list.component.html + 60,64 + + + src/app/lightning/channels-list/channels-list.component.html + 84,88 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 17,20 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 63,66 + + + src/app/lightning/group/group-preview.component.html + 34,36 + + + src/app/lightning/group/group.component.html + 32,34 + + + src/app/lightning/group/group.component.html + 83,87 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 50,55 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 22,24 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 82,85 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 23,25 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 79,82 + + shared.sats + + + Avg Capacity + + src/app/lightning/channels-statistics/channels-statistics.component.html + 13,15 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 107,110 + + ln.average-capacity + + + Avg Fee Rate + + src/app/lightning/channels-statistics/channels-statistics.component.html + 26,28 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 114,117 + + ln.average-feerate + + + The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 28,30 + + ln.average-feerate-desc + + + Avg Base Fee + + src/app/lightning/channels-statistics/channels-statistics.component.html + 41,43 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 121,124 + + ln.average-basefee + + + The average base fee charged by routing nodes, ignoring base fees > 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 43,45 + + ln.average-basefee-desc + + + Med Capacity + + src/app/lightning/channels-statistics/channels-statistics.component.html + 59,61 + + ln.median-capacity + + + Med Fee Rate + + src/app/lightning/channels-statistics/channels-statistics.component.html + 72,74 + + ln.average-feerate + + + The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 74,76 + + ln.median-feerate-desc + + + Med Base Fee + + src/app/lightning/channels-statistics/channels-statistics.component.html + 87,89 + + ln.median-basefee + + + The median base fee charged by routing nodes, ignoring base fees > 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 89,91 + + ln.median-basefee-desc + + + Lightning node group + + src/app/lightning/group/group-preview.component.html + 3,5 + + + src/app/lightning/group/group.component.html + 2,6 + + lightning.node-group + + + Nodes + + src/app/lightning/group/group-preview.component.html + 25,29 + + + src/app/lightning/group/group.component.html + 23,27 + + + src/app/lightning/node-statistics/node-statistics.component.html + 17,18 + + + src/app/lightning/node-statistics/node-statistics.component.html + 54,57 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 30,32 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 13,16 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 60,62 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 22,26 + + lightning.node-count + + + Liquidity + + src/app/lightning/group/group-preview.component.html + 29,31 + + + src/app/lightning/group/group.component.html + 27,29 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 17,19 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 26,28 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 18,20 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 12,13 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 11,12 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 12,13 + + lightning.liquidity + + + Channels + + src/app/lightning/group/group-preview.component.html + 40,43 + + + src/app/lightning/group/group.component.html + 40,44 + + + src/app/lightning/node-statistics/node-statistics.component.html + 29,30 + + + src/app/lightning/node-statistics/node-statistics.component.html + 61,64 + + + src/app/lightning/nodes-list/nodes-list.component.html + 7,10 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 30,33 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 64,66 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 35,39 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 31,35 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 61,63 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 13,14 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 12,13 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 11,12 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 194,193 + + lightning.channels + + + Average size + + src/app/lightning/group/group-preview.component.html + 44,46 + + + src/app/lightning/node/node-preview.component.html + 32,34 + + lightning.active-channels-avg + + + Location + + src/app/lightning/group/group.component.html + 74,77 + + + src/app/lightning/node/node-preview.component.html + 38,42 + + + src/app/lightning/node/node-preview.component.html + 50,54 + + + src/app/lightning/node/node.component.html + 47,49 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 65,68 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 62,65 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 15,18 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 15,17 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 15,17 + + lightning.location + + + Network Statistics + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 10 + + lightning.network-statistics-title + + + Channels Statistics + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 24 + + lightning.channel-statistics-title + + + Lightning Network History + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 49 + + lightning.network-history + + + Liquidity Ranking + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 62 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts + 29 + + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html + 8 + + lightning.liquidity-ranking + + + Connectivity Ranking + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 76 + + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html + 22 + + lightning.connectivity-ranking + + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + + + Percentage change past week + + src/app/lightning/node-statistics/node-statistics.component.html + 5,7 + + + src/app/lightning/node-statistics/node-statistics.component.html + 18,20 + + + src/app/lightning/node-statistics/node-statistics.component.html + 30,32 + + mining.percentage-change-last-week + + + Lightning node + + src/app/lightning/node/node-preview.component.html + 3,5 + + + src/app/lightning/node/node.component.html + 2,4 + + + src/app/lightning/node/node.component.html + 260,262 + + lightning.node + + + Active capacity + Aktiv kapacitet + + src/app/lightning/node/node-preview.component.html + 20,22 + + + src/app/lightning/node/node.component.html + 27,30 + + lightning.active-capacity + + + Active channels + Aktive kanaler + + src/app/lightning/node/node-preview.component.html + 26,30 + + + src/app/lightning/node/node.component.html + 34,38 + + lightning.active-channels + + + Country + Land + + src/app/lightning/node/node-preview.component.html + 44,47 + + country + + + No node found for public key "" + + src/app/lightning/node/node.component.html + 17,19 + + lightning.node-not-found + + + Average channel size + Gennemsnitlig kanalstørrelse + + src/app/lightning/node/node.component.html + 40,43 + + lightning.active-channels-avg + + + Avg channel distance + + src/app/lightning/node/node.component.html + 56,57 + + lightning.avg-distance + + + Color + Farve + + src/app/lightning/node/node.component.html + 79,81 + + lightning.color + + + ISP + Internetudbyder + + src/app/lightning/node/node.component.html + 86,87 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 59,60 + + isp + + + Exclusively on Tor + Udelukkende på Tor + + src/app/lightning/node/node.component.html + 93,95 + + tor + + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + + + Open channels + Åbne kanaler + + src/app/lightning/node/node.component.html + 240,243 + + lightning.open-channels + + + Closed channels + Lukkede kanaler + + src/app/lightning/node/node.component.html + 244,247 + + lightning.open-channels + + + Node: + + src/app/lightning/node/node.component.ts + 60 + + + + (Tor nodes excluded) + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.html + 8,11 + + + src/app/lightning/nodes-map/nodes-map.component.html + 7,10 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 10,15 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 37,41 + + lightning.tor-nodes-excluded + + + Lightning Nodes Channels World Map + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts + 69 + + + + No geolocation data available + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts + 218,213 + + + + Active channels map + Kort over aktive kanaler + + src/app/lightning/nodes-channels/node-channels.component.html + 2,3 + + lightning.active-channels-map + + + Indexing in progress + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 121,116 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 112,107 + + + + Reachable on Clearnet Only + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 164,161 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 303,302 + + + + Reachable on Clearnet and Darknet + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 185,182 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 295,294 + + + + Reachable on Darknet Only + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 206,203 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 287,286 + + + + Share + Del + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 29,31 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 59,61 + + lightning.share + + + nodes + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts + 103,102 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 157,156 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 189,188 + + + + BTC capacity + BTC kapacitet + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts + 104,102 + + + + Lightning nodes in + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 3,4 + + lightning.nodes-in-country + + + ISP Count + Antal internetudbydere + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 34,38 + + lightning.isp-count + + + Top ISP + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 38,40 + + lightning.top-isp + + + Lightning nodes in + + src/app/lightning/nodes-per-country/nodes-per-country.component.ts + 35 + + + + Clearnet Capacity + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 6,8 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 83,86 + + lightning.clearnet-capacity + + + How much liquidity is running on nodes advertising at least one clearnet IP address + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 8,9 + + lightning.clearnet-capacity-desc + + + Unknown Capacity + Ukendt kapacitet + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 13,15 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 89,92 + + lightning.unknown-capacity + + + How much liquidity is running on nodes which ISP was not identifiable + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 15,16 + + lightning.unknown-capacity-desc + + + Tor Capacity + Tor kapacitet + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 20,22 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 95,97 + + lightning.tor-capacity + + + How much liquidity is running on nodes advertising only Tor addresses + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 22,23 + + lightning.tor-capacity-desc + + + Top 100 ISPs hosting LN nodes + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 31,33 + + lightning.top-100-isp-ln + + + BTC + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 158,156 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 190,188 + + + + Lightning ISP + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 3,5 + + lightning.node-isp + + + Top country + Top land + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 39,41 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 35,37 + + lightning.top-country + + + Top node + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 45,48 + + lightning.top-node + + + Lightning nodes on ISP: [AS] + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts + 44 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.ts + 39 + + + + Lightning nodes on ISP: + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 2,4 + + lightning.nodes-for-isp + + + ASN + ASN + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 11,14 + + lightning.asn + + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + + + Top 100 oldest lightning nodes + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 3,7 + + lightning.top-100-oldest-nodes + + + Oldest lightning nodes + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts + 27 + + + + Top 100 nodes liquidity ranking + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 3,7 + + lightning.top-100-liquidity + + + Top 100 nodes connectivity ranking + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 3,7 + + lightning.top-100-connectivity + + + Oldest nodes + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html + 36 + + lightning.top-channels-age + + + Top lightning nodes + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts + 22 + + + + Indexing in progress + Indeksering i gang + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.html + 52,55 + + lightning.indexing-in-progress + + + year + år + + src/app/shared/i18n/dates.ts + 3 + + + + years + år + + src/app/shared/i18n/dates.ts + 4 + + + + month + måned + + src/app/shared/i18n/dates.ts + 5 + + + + months + måneder + + src/app/shared/i18n/dates.ts + 6 + + + + week + uge + + src/app/shared/i18n/dates.ts + 7 + + + + weeks + uger + + src/app/shared/i18n/dates.ts + 8 + + + + day + dag + + src/app/shared/i18n/dates.ts + 9 + + + + days + dage + + src/app/shared/i18n/dates.ts + 10 + + + + hour + time + + src/app/shared/i18n/dates.ts + 11 + + + + hours + timer + + src/app/shared/i18n/dates.ts + 12 + + + + minute + minut + + src/app/shared/i18n/dates.ts + 13 + + + + minutes + minutter + + src/app/shared/i18n/dates.ts + 14 + + + + second + sekund + + src/app/shared/i18n/dates.ts + 15 + + + + seconds + sekunder + + src/app/shared/i18n/dates.ts + 16 + + + + Transaction fee + Transaktionsgebyr + + src/app/shared/pipes/scriptpubkey-type-pipe/scriptpubkey-type.pipe.ts + 11 + + + + + \ No newline at end of file diff --git a/frontend/src/locale/messages.de.xlf b/frontend/src/locale/messages.de.xlf index 5eb864d93..087c597d4 100644 --- a/frontend/src/locale/messages.de.xlf +++ b/frontend/src/locale/messages.de.xlf @@ -6,15 +6,14 @@ Schließen node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Seite von + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Vorherige node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Nächstes node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Monat auswählen node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Jahr auswählen node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Vorheriger Monat node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Nächster Monat node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Erstes node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Vorheriges node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Nächstes node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Letztes node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Stunden node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minuten node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Stunden erhöhen node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Stunden verringern node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Minuten erhöhen node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Minuten verringern node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Sekunden node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Sekunden erhöhen node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Sekunden verringern node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Schließen node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Insgesamt empfangen src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Insgesamt gesendet src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Guthaben src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ Transaktion src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ Transaktionen src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transaktion src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Community-Allianzen src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Projektübersetzer src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Projektmitwirkende src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Projektmitglieder src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Projektbetreuer src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Multisig von src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Vertraulich src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ von Transaktion src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ von Transaktionen src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Fehler beim Laden der Adressdaten. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Auf dieser Adresse liegen mehr Transaktionen, als dein Backend verkraftet. Schau bei nach, wie man ein robusteres Backend einrichtet. Du könntest diese Adresse auch auf der offiziellen Mempool Webseite anschauen: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ Name src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Nachkommastellen src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Aussteller src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ Ausgabe TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Verbrannte Menge src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Umlaufmenge src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ von   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ Peg In/Out- und Burn-Transaktionen src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Ausgabe und Verbrennung von Transaktionen src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Fehler beim Laden der Vermögenswert-Daten. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Schablone vs Endgültig - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Größe - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Gewicht - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Trefferverhältnis - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Fehlende TXs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Hinzugefügte TXs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Fehlend - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Hinzugefügt - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Blockgebührensätze @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Gebühr @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Hinzugefügt + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Genauigkeit der Blockvorhersage @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Größe + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Gewicht + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Block @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Unbekannt + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Gebührenspanne + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Basierend auf einer durchschnittlichen nativen Segwit-Transaktion von 140 vByte src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Subvention + Gebühr src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Schwierigkeit src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Block-Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Details src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Fehler beim Laden der Daten. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Belohnung + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Belohnung + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ Gebühren src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ TX src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - Gebührenspanne - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Stapel von Mempool-Blöcken @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - Belohnung pro Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Durchschnittliche Miner-Belohnung pro Transaktion in den letzten 144 Blöcken + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Durchschnittsgebühr + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Belohnung pro Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Erkunde das ganze Bitcoin Ökosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Suche src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Unbestätigt src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ Zuerst gesehen src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ Vorauss. Zeit bis Schürfung src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ In mehreren Stunden (oder mehr) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Nachfahre src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Vorfahr src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ Fluss src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ Diagramm ausblenden src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ Mehr anzeigen src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ Weniger anzeigen src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ Diagramm anzeigen src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ Sperrzeit src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ Transaktion nicht gefunden. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ Warten bis sie im Mempool erscheint... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ Effektiver Gebührensatz src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (Neu generierte Coins) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ Vorheriges Output Script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ Vorheriger Ausgabetyp src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ Peg-out zu src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Alle Inputs einblenden, um die Gebührendaten aufzudecken + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs Andere Inputs @@ -4707,7 +4814,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Diese Transaktion verwendet Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ Diese Transaktion unterstützt Replace-By-Fee (RBF), was Gebührenerhöhungen zulässt src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ Diese Transaktion unterstützt NICHT Replace-By-Fee (RBF) und es kann mit dieser Methode nicht die Gebühr erhöht werden src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ Mindestgebühr src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ Streichung src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ Speichernutzung src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ L-BTC im Umlauf src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ REST-API-Dienst src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Endpunkt src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ Beschreibung src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ Standard Senden: action: 'want', data: ['blocks', ...] um auszudrücken, was gepusht werden soll. Verfügbar: blocks, mempool-blocks, live-2h-chart, und stats.Sende Transaktionen bezogen auf die Adresse: 'track-address': '3PbJ...bF9B' um alle neuen Transaktionen mit der Adresse als Input oder Output enthalten zu empfangen. Gibt Array von Tansaktionen zurück. address-transactions für neue Mempool-Transaktionen, und block-transactions src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ Basisgebühr src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ Dieser Kanal unterstützt Routing ohne Basisgebühr src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ Null Basisgebühr src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ Dieser Kanal unterstützt Routing nur mit Basisgebühr src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ Basisgebühr größer als Null src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ Zeitschloss Delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ Kanäle src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel Lightning-Kanal @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Öffnende Transaktion src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ Schließende Transaktion src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Prozentuale Änderung letzte Woche @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - Unbekannt + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Farbe src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ Ausschließlich auf Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Offene Kanäle src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ Geschlossene Kanäle src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - Indizierung läuft + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes Top 100 ältesten Lightning Nodes diff --git a/frontend/src/locale/messages.en_US.xlf b/frontend/src/locale/messages.en_US.xlf index 203b7cd78..c872c44f1 100644 --- a/frontend/src/locale/messages.en_US.xlf +++ b/frontend/src/locale/messages.en_US.xlf @@ -5,14 +5,14 @@ Close node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -20,226 +20,226 @@ Previous node_modules/src/carousel/carousel.ts - 174 + 206,207 Next node_modules/src/carousel/carousel.ts - 195 + 227 Select month node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 Select year node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 Previous month node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 Next month node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 «« node_modules/src/pagination/pagination.ts - 247 + 269,270 « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 First node_modules/src/pagination/pagination.ts - 318,320 + 269,271 Previous node_modules/src/pagination/pagination.ts - 333 + 269,271 Next node_modules/src/pagination/pagination.ts - 343,344 + 269,271 Last node_modules/src/pagination/pagination.ts - 354 + 269,271 - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 Hours node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 Minutes node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 Increment hours node_modules/src/timepicker/timepicker.ts - 200 + 305,309 Decrement hours node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 Increment minutes node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 Decrement minutes node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 SS node_modules/src/timepicker/timepicker.ts - 277 + 410 Seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 Increment seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 Decrement seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 Close node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -262,15 +262,15 @@ Total received src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -278,7 +278,7 @@ Total sent src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -286,11 +286,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -298,15 +298,15 @@ Balance src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -314,7 +314,7 @@ transaction src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -322,11 +322,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -338,7 +338,7 @@ transactions src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -346,11 +346,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -383,10 +383,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -407,10 +403,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -433,7 +425,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -517,19 +509,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -726,15 +714,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -747,11 +735,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -880,7 +868,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -954,7 +942,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -971,11 +959,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -986,11 +974,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -998,7 +986,7 @@ Transaction src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1014,7 +1002,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1030,11 +1022,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1051,11 +1043,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1068,7 +1060,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1081,11 +1073,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1111,11 +1103,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1131,11 +1123,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1148,11 +1140,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1170,7 +1162,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1185,7 +1177,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1367,7 +1359,7 @@ Community Alliances src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1375,7 +1367,7 @@ Project Translators src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1383,7 +1375,7 @@ Project Contributors src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1391,7 +1383,7 @@ Project Members src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1399,7 +1391,7 @@ Project Maintainers src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1426,7 +1418,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1437,7 +1429,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1445,11 +1437,11 @@ Confidential src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1461,7 +1453,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1469,15 +1461,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1496,7 +1488,7 @@ of transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1504,7 +1496,7 @@ of transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1512,7 +1504,7 @@ Error loading address data. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1520,7 +1512,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1537,7 +1529,7 @@ Name src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1557,7 +1549,7 @@ Precision src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1566,7 +1558,7 @@ Issuer src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1575,7 +1567,7 @@ Issuance TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1584,7 +1576,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1593,7 +1585,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1602,7 +1594,7 @@ Burned amount src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1611,11 +1603,11 @@ Circulating amount src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1624,7 +1616,7 @@ of   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1632,7 +1624,7 @@ Peg In/Out and Burn Transactions src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1640,7 +1632,7 @@ Issuance and Burn Transactions src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1648,7 +1640,7 @@ Error loading asset data. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -1868,138 +1860,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates @@ -2097,6 +1957,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee @@ -2109,11 +1977,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2134,11 +2002,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2151,15 +2019,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2184,19 +2052,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2236,31 +2104,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2273,15 +2145,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2304,6 +2228,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2348,6 +2276,72 @@ mining.block-sizes-weights + + Size + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2376,11 +2370,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2396,19 +2386,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2425,11 +2407,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2441,7 +2419,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2464,15 +2442,59 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2500,28 +2522,52 @@ Subsidy + fees: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2529,7 +2575,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2537,7 +2583,7 @@ Difficulty src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2565,7 +2611,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2573,7 +2619,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2581,19 +2627,23 @@ Details src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2602,11 +2652,11 @@ Error loading data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2614,7 +2664,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2626,6 +2676,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool @@ -2666,8 +2724,8 @@ latest-blocks.mined - - Reward + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2676,6 +2734,18 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2690,7 +2760,7 @@ Fees src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2706,11 +2776,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2726,7 +2796,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2797,7 +2867,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -2945,7 +3015,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -2957,7 +3027,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -2969,7 +3039,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -2982,7 +3052,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3272,14 +3342,6 @@ documentation.title - - Fee span - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks @@ -3526,11 +3588,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3690,7 +3756,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3703,7 +3769,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3731,8 +3797,8 @@ mining.rewards-desc - - Reward Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3741,39 +3807,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -3792,11 +3846,32 @@ mining.average-fee + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -3804,7 +3879,7 @@ Search src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -3824,7 +3899,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4053,15 +4128,33 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4070,11 +4163,11 @@ First seen src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4103,7 +4196,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4112,7 +4205,7 @@ In several hours (or more) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4121,7 +4214,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4130,7 +4227,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4139,11 +4236,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4152,7 +4249,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4160,7 +4257,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4168,7 +4273,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4176,7 +4285,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4184,7 +4293,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4192,7 +4301,7 @@ Transaction not found. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4200,7 +4309,7 @@ Waiting for it to appear in the mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4208,7 +4317,7 @@ Effective fee rate src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4217,7 +4326,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4225,7 +4334,7 @@ (Newly Generated Coins) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4233,7 +4342,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4241,7 +4350,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4250,7 +4359,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4259,7 +4368,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4267,7 +4376,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4275,7 +4384,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4283,7 +4392,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4291,7 +4400,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4299,7 +4408,7 @@ Previous output script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4307,7 +4416,7 @@ Previous output type src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4315,7 +4424,7 @@ Peg-out to src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4323,7 +4432,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4332,19 +4441,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4365,7 +4482,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4373,7 +4494,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4444,6 +4569,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4463,11 +4592,19 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4475,7 +4612,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4483,11 +4620,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4496,7 +4633,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4562,7 +4699,7 @@ Minimum fee src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4571,7 +4708,7 @@ Purging src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4580,7 +4717,7 @@ Memory usage src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4589,7 +4726,7 @@ L-BTC in circulation src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4597,7 +4734,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4605,11 +4742,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4617,18 +4754,18 @@ Description src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4672,25 +4809,29 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -4702,7 +4843,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -4712,13 +4853,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -4726,7 +4871,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -4734,7 +4879,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -4742,7 +4887,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -4750,7 +4895,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -4758,7 +4903,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -4766,7 +4911,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -4774,14 +4919,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -4802,7 +4965,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -4818,7 +4981,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -4838,7 +5001,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -4934,7 +5097,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -4946,7 +5109,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4982,11 +5145,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -4994,7 +5165,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5077,11 +5248,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5263,10 +5434,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5469,6 +5636,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5497,7 +5672,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5549,31 +5724,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5581,7 +5744,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5593,15 +5756,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5609,7 +5838,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5617,7 +5846,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5662,8 +5891,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -5905,6 +6134,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.es.xlf b/frontend/src/locale/messages.es.xlf index 9feb89691..e38f8c67e 100644 --- a/frontend/src/locale/messages.es.xlf +++ b/frontend/src/locale/messages.es.xlf @@ -6,15 +6,14 @@ Cerrar node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Diapositiva de + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Previo node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Siguiente node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Seleccionar mes node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Seleccionar año node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Mes anterior node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Siguiente mes node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Primero node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Previo node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Siguiente node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Último node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Horas node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minutos node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Incrementar horas node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Reducir horas node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Incrementar minutos node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Reducir minutos node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Segundos node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Incrementar segundos node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Reducir segundos node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Cerrar node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Total recibido src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Total enviado src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Saldo src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ Transacción src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transacciones src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transacción src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Alianzas de la comunidad src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Traductores del proyecto src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Contribuyentes al proyecto src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Miembros del proyecto src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Mantenedores del proyecto src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Confidencial src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ de transacción src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ de transacciones src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Errar cargando datos de dirección src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ Hay muchas transacciones en esta dirección, más de lo que tu backend puede soportar. Vea más en configurar un más fuerte.. Considere ver esta dirección de la web oficial Mempool: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Nombre src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Precisión src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Emisor src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ TX de emisión src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Cantidad quemada src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Cantidad en circulación src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ de   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Transacciones Peg In/Out y Burn src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Transacciones de emisión y quema src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Error cargando datos del activo src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Tamaño - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Peso - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Ratio de tasas por bloque @@ -2259,6 +2115,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Tasa @@ -2272,11 +2136,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2298,11 +2162,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2316,15 +2180,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2350,19 +2214,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2402,31 +2266,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2440,15 +2308,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2471,6 +2391,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2517,6 +2441,74 @@ mining.block-sizes-weights + + Size + Tamaño + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Peso + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2546,11 +2538,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2567,19 +2555,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2597,11 +2577,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2614,7 +2590,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2639,16 +2615,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Rango de tasas + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Basado en el promedio de 140 vBytes de las transacciones segwit nativas src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2677,29 +2698,53 @@ Subsidio + tasas: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2708,7 +2753,7 @@ Raíz de Merkle src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2717,7 +2762,7 @@ Dificultad src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2746,7 +2791,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2755,7 +2800,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2764,19 +2809,23 @@ Detalles src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2786,11 +2835,11 @@ Error cargando datos src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2798,7 +2847,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2810,6 +2859,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2852,9 +2909,8 @@ latest-blocks.mined - - Reward - Recompensa + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2863,6 +2919,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Recompensa + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2878,7 +2947,7 @@ Tasas src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2895,11 +2964,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2915,7 +2984,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2992,7 +3061,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3152,7 +3221,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3165,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3178,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3192,7 +3261,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3494,15 +3563,6 @@ documentation.title - - Fee span - Rango de tasas - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Montón de bloques mempool @@ -3767,11 +3827,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3942,7 +4006,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3956,7 +4020,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3986,9 +4050,8 @@ mining.rewards-desc - - Reward Per Tx - Recompensa por tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3997,42 +4060,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Recompensa media de mineros por transacción en los últimos 144 bloques + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Tasa media + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4052,11 +4100,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Recompensa por tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4065,7 +4136,7 @@ Buscar src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4087,7 +4158,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4324,16 +4395,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Sin confirmar src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4343,11 +4432,11 @@ Visto por primera vez src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4377,7 +4466,7 @@ Tiempo esparado de llegada src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4387,7 +4476,7 @@ En unas cuantas horas (o más) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4397,7 +4486,11 @@ Descendiente src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4407,7 +4500,7 @@ Ancestro src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4416,11 +4509,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4429,7 +4522,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4437,7 +4530,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4445,7 +4546,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4453,7 +4558,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4462,7 +4567,7 @@ Tiempo de bloque src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4471,7 +4576,7 @@ Transacción no encontrada src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4480,7 +4585,7 @@ Esperando a que aparezca en la mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4489,7 +4594,7 @@ Ratio de tasa efectiva src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4499,7 +4604,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4508,7 +4613,7 @@ (Monedas recién generadas) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4517,7 +4622,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4526,7 +4631,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4536,7 +4641,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4546,7 +4651,7 @@ Testigo src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4555,7 +4660,7 @@ script de canje P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4564,7 +4669,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4573,7 +4678,7 @@ script de testigo P2WSH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4582,7 +4687,7 @@ nSecuencia src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4591,7 +4696,7 @@ Script de salida previo src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4600,7 +4705,7 @@ Anterior tipo de salida src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4609,7 +4714,7 @@ Peg-out a src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4618,7 +4723,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4628,20 +4733,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Mostrar todos los inputs para revelar los datos de tasa + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4662,7 +4774,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4670,7 +4786,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4742,6 +4862,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4761,12 +4885,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Esta transacción utiliza Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4774,7 +4906,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4783,11 +4915,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4797,7 +4929,7 @@ Esta transacción NO soporta Reemplazar-Por-Tasa (RBF) y no puede aumentarse su tasa usando este método src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4870,7 +5002,7 @@ Tarifa mínima src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4880,7 +5012,7 @@ Purga src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4890,7 +5022,7 @@ Uso de memoria src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4900,7 +5032,7 @@ L-BTC en circulación src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4908,7 +5040,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4917,11 +5049,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4930,11 +5062,11 @@ Descripción src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4942,7 +5074,7 @@ Empujar por defecto: acciona: 'want', data: ['blocks', ...] para expresar lo que quiere empujar. Disponible: blocks, mempool-blocks, live-2h-chart, y stats.Empujar transacciones relaccionadas a la direccion: 'track-address': '3PbJ...bF9B' para recibir todas las nuevas transacciones que contengan la direccion como input o output. Devuelve cualquier formación de transacciones. dirección-transacciones para nuevas transacciones mempool, y bloque-transacciones para nuevas transacciones confirmadas en bloque. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4990,7 +5122,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4998,18 +5130,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5021,7 +5157,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5031,13 +5167,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5045,7 +5185,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5053,7 +5193,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5061,7 +5201,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5069,7 +5209,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5077,7 +5217,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5085,7 +5225,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5093,14 +5233,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5121,7 +5279,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5137,7 +5295,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5157,7 +5315,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5253,7 +5411,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5265,7 +5423,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5301,11 +5459,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5313,7 +5479,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5396,11 +5562,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5582,10 +5748,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5788,6 +5950,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5816,7 +5986,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5868,31 +6038,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5900,7 +6058,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5912,15 +6070,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5928,7 +6152,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5936,7 +6160,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5981,8 +6205,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6224,6 +6448,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.fa.xlf b/frontend/src/locale/messages.fa.xlf index 22af650d4..81503f45f 100644 --- a/frontend/src/locale/messages.fa.xlf +++ b/frontend/src/locale/messages.fa.xlf @@ -6,15 +6,14 @@ بستن node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - صفحه از + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ قبلی node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ بعدی node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ انتخاب ماه node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ انتخاب سال node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ ماه قبل node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ ماه بعد node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ اولین node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ قبلی node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ بعدی node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ آخرین node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ ساعت node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ دقیقه node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ افزایش ساعت node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ کاهش ساعت node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ افزایش دقیقه node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ کاهش دقیقه node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ ثانیه node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ افزایش ثانیه node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ کاهش ثانیه node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ بستن node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ مجموع دریافت‌ها src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ مجموع ارسال‌ها src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ موجودی src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ تراکنش src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ تراکنش src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ تراکنش src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ متحدین جامعه src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ مترجم‌های پروژه src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ مشارکت کنندگان src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ اعضای پروژه src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ نگهدارندگان پروژه src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ محرمانه src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ از تراکنش src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ از تراکنش src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ حطا در بازکردن داده‌های آدرس. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ تراکنش‌های زیادی مربوط به این آدرس وجود دارد، بیشتر از حدی که بک‌اند شما بتواند آنها را مدیریت کند. برای راه‌اندازی یک بک‌اند قوی‌تر، اینجا را مطالعه کنید. همچنین می‌توانید این آدرس را در سایت رسمی ممپول هم مشاهده کنید: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ نام src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ دقت src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ صادرکننده src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ تراکنش صدور src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ مبلغ سوزانده‌شده src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ مبلغ در گردش src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ از   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ تراکنش‌های سوزاندن و PegIn/Out src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ تراکنش‌های صدور و سوزاندن src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ خطا در بازکردن داده‌های دارایی. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - اندازه - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - وزن - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates نرخ کارمزد بلاک @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee کارمزد @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy دقت پیش‌بینی بلاک @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + اندازه + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + وزن + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + بازه‌ی کارمزد + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes بر اساس میانگین تراکنش سگویتی اصیل با اندازه 140 ساتوشی بر بایت مجازی src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ یارانه بلاک + کارمزدها src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits بیت src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ ریشه درخت مرکل src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ سختی شبکه src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ نانس src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ سربرگ بلاک به صورت Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ جزئیات src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ خطا در بارگذاری داده‌ها. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool استخر @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - پاداش + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + پاداش + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ کارمزدها src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ تراکنش src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - بازه‌ی کارمزد - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks پشته‌ای از بلاک ممپول @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - پاداش به ازای تراکنش + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - میانگین پاداش ماینرها به ازای هر تراکنش در 144 بلاک گذشته + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sat بر tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - میانگین کارمزد + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + sat بر tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + پاداش به ازای تراکنش + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ جستجو src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed تأییدنشده src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ اولین زمان دیده‌شدن src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ تخمین src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ در چند (یا چندین) ساعت آینده src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ نواده src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ والد src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ قفل‌زمانی src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ تراکنش پیدا نشد. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ منتظر دیده‌شدن در mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ نرخ کارمزد مؤثر src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (سکه‌های تازه تولید شده) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ شاهد src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ اسکریپت نقد کردن P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ اسکریپت شاهد P2WSH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ اسکریپت خروجی قبلی src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ نوع خروجی قبلی src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ ‏Peg-out به src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - نمایش همه ورودی‌ها برای افشای داده‌های کارمزد + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot این تراکنش از تپروت استقاده می‌کند src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ این تراکنش از قابلیت جایگزینی با کارمزد (RBF) پشتیبانی نمی‌کند و امکان افزایش کارمزد آن با این روش وجود ندارد src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ حداقل کارمزد src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ آستانه حذف src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ حافظه مصرف‌شده src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ مقدار L-BTC در گردش src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ خدمات REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ نقطه اتصال src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ توضیحات src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ دستور پیش‌فرض: action: 'want', data: ['blocks', ...] که نشان می‌دهد چه چیزی باید ارسال شود. گزینه‌های در دسترس: blocks, mempool-blocks, live-2h-chart و stats. دستورهای مربوط به آدرس: 'track-address': '3PbJ...bF9B' جهت دریافت تمام تراکنش‌های جدیدی که خروجی یا ورودی‌های آنها شامل این آدرس می‌شود. آرایه‌ای از تراکنش‌ها برمی‌گرداند. address-transactions برای تراکنش‌های جدید ممپول و block-transactions برای تراکنش‌های بلاک تایید شده‌ی جدید. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ سوالات متداول src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ رابط برنامه‌نویسی نرم‌افزار (API) src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.fi.xlf b/frontend/src/locale/messages.fi.xlf index 665b1ad1c..211113e44 100644 --- a/frontend/src/locale/messages.fi.xlf +++ b/frontend/src/locale/messages.fi.xlf @@ -6,15 +6,14 @@ Sulje node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Sivu / + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Edellinen node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Seuraava node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Valitse kuukausi node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Valitse vuosi node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Edellinen kuukausi node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Seuraava kuukausi node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Ensimmäinen node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Edellinen node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Seuraava node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Viimeinen node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Tunnit node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minuutit node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Tuntien lisäys node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Tuntien vähennys node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Minuuttien lisäys node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Minuuttien vähennys node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Sekuntit node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Sekuntien lisäys node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Sekuntien vähennys node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Sulje node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Vastaanotettu yhteensä src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Lähetetty yhteensä src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Saldo src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ siirtotapahtuma src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ siirtotapahtumaa src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Siirtotapahtuma src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Yhteisöliittoumat src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Projektin kääntäjät src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Projektin avustajat src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Projektin jäsenet src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Projektin ylläpitäjät src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Luottamuksellinen src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ / siirtotapahtuma src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ / siirtotapahtumat src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Virhe osoitetietojen lataamisessa. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ Tähän osoitteeseen kohdistuu paljon siirtotapahtumia, enemmän kuin taustajärjestelmäsi pystyy käsittelemään. Katso lisää osoitteesta vahvemman taustajärjestelmän luominen.Harkitse sen sijaan tämän osoitteen katsomista Mempoolin virallisella verkkosivustolla: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Nimi src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Tarkkuus src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Liikkeeseenlaskija src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ Liikkeeseenlasku TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Kiinnitetty src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Irrotettu src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Poltettu määrä src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Liikkuva määrä src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ /   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Kiinnitä/Irrota ja Polta Siirtotapahtumat src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Liikkeeseenlasku- ja Poltto Siirtotapahtumat src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Omaisuuserätietoja ladattaessa tapahtui virhe. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Koko - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Paino - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Siirtokulujen tasot @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Siirtokulu @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Lohkon ennustustarkkuus @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + Koko + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Paino + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Siirtokulu väli + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Perustuu keskimääräiseen natiiviin 140 vByte segwit-siirtotapahtumaan src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ Palkkio + siirtokulut: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bitit src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ Merkle-juuri src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ Vaikeus src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ Nonssi src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ Lohkon järjestysnumero heksa src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ Yksityiskohdat src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ Virhe tietojen lataamisessa. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pooli @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - Palkkio + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Palkkio + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ Siirtokulut src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ Siirtoa src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - Siirtokulu väli - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Mempool-lohkon pino @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - Palkkio per siirto + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Louhijoiden keskimääräinen palkkio siirtotapahtumaa kohti viimeisten 144 lohkon aikana + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - satoshia/siirto + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Keskimääräinen kulu + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + satoshia/siirto + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Palkkio per siirto + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ Hae src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Vahvistamatta src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ Ensimmäiseksi nähty src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ Muutamassa tunnissa (tai enemmän) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ Verso src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ Juuri src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ Lukitusaika src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ Siirtotapahtumaa ei löydy. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ Odotetaan sen ilmestymistä mempooliin... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ Todellinen siirtokulutaso src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ Kolikonluonti src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (Äskettäin luodut kolikot) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ Kiinnitä src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ Todistaja src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ P2SH lunastusskripti src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR taprootskripti src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ P2WSH todistajaskripti src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ Edellinen tulosteskripti src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ Edellinen tulostetyyppi src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ Irrotetaan src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Näytä kaikki syötteet paljastaaksesi siirtokuludatan + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Tässä siirtotapahtumassa käytetään Taproot:ia src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ Tämä siirtotapahtuma EI tue Replace-By-Fee (RBF), eikä sen siirtokuluja voida nostaa tällä menetelmällä src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ Vähimmäiskulu src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ Tyhjennys src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ Muistin käyttö src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ Käytössä olevat L-BTC src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ REST API-palvelu src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ Päätepiste src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ Kuvaus src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ Oletus työntö: action: 'want', data: ['blocks', ...] ilmaisemaan, mitä haluat työnnettävän. Käytettävissä: blocks, mempool-blocks, live-2h-chart ja stats.Työnnä osoitteeseen liittyvät tapahtumat: 'track-address': '3PbJ...bF9B' vastaanottaa kaikki uudet transaktiot, jotka sisältävät kyseisen osoitteen syötteenä tai tulosteena. Palauttaa transaktioiden joukon. address-transactions uusille mempool-transaktioille ja block-transactions uusille lohkon vahvistetuille transaktioille. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ UKK src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.fr.xlf b/frontend/src/locale/messages.fr.xlf index d57c617e6..61342d809 100644 --- a/frontend/src/locale/messages.fr.xlf +++ b/frontend/src/locale/messages.fr.xlf @@ -6,15 +6,14 @@ Fermer node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Diapositive sur + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Précédent node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Suivant node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Sélectionner le mois node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Sélectionner l'année node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Mois précédent node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Mois suivant node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Premier node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Précédent node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Suivant node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Dernier node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Heures node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minutes node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Incrémenter les heures node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Décrémenter les heures node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Incrémenter les minutes node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Décrémenter les minutes node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Secondes node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Incrémenter les secondes node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Décrémenter les secondes node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Fermer node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Total reçu src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Total envoyé src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Solde src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transaction src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transactions src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transaction src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Alliances communautaires src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Traducteurs src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Contributeurs au projet src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Membres du projet src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Mainteneurs de projet src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Multi-signature de src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Confidentiel src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ de transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ de transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Erreur lors du chargement des données de l'adresse src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Il y a beaucoup de transactions sur cette adresse, plus que ce que votre backend supporte. En savoir plus sur la mise en place d'un backend plus puissant. Vous pouvez aussi consulter cette adresse sur le site officiel Mempool : src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ Nom src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Précision src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Émetteur/trice src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ TX d'émission src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Montant brulé src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Montant en circulation src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ de src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ Peg In/out et transactions de brûlage src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Transactions d'émission et de brulâge src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Erreur dans le chargement des données de l'asset src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Bloc - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Modèle vs Miné - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Taille - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Poids - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Taux de correspondance - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Txs manquantes - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Txs ajoutées - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Manquantes - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Ajoutées - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Frais de bloc par tranche @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Frais @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Ajoutées + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Précision de prédiction de bloc @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Taille + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Poids + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Bloc @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Inconnue + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + L'envergure des frais + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Basé sur une transaction segwit standard de 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Subvention + frais: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ racine de Merkle src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Difficulté src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Hex d'en-tête de bloc src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Détails src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Une erreur est survenue lors du chargement. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Récompense + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Récompense + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ Frais src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - L'envergure des frais - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Pile de blocs mempool @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - Récompense par tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Récompense moyenne des mineurs par transaction au cours des 144 derniers blocs + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Frais moyen + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Récompense par tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Explorez tout l'écosystème Bitcoin src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Rechercher src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed non confirmée src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ Vu pour la première fois src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ HAP src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ Dans plusieurs heures (ou plus) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Ancêtre src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ Flux src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ Masquer le diagramme src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ Montrer plus src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ Montrer moins src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ Afficher le diagramme src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ Temps de verrouillage src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ Transaction introuvable. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ Veuillez patienter pendant que nous attendons qu'elle apparaisse dans le mempool src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ Taux de frais effectif src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (Nouveaux bitcoins générés) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Témoin src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ Script de rachat P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ Script témoin PW2SH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ Script de sortie précédent src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ Script de sortie précédent src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ Peg-out vers src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Afficher tous les inputs pour révéler les données de frais + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs autres entrées @@ -4707,7 +4814,11 @@ Entrées src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ Sorties src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Cette transaction utilise Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ Cette transaction prend en charge le Replace-By-Fee/remplacement par frais (RBF), permettant une augmentation des frais src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ Cette transaction ne prend pas en charge Replace-By-Fee (RBF) et les frais ne peuvent donc pas être augmentés en utilisant cette méthode. src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ Frais minimums src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ Purgées src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ Mémoire utilisée src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ L-BTC en circulation src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ Service d'API REST src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Point de terminaison src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ Description src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ Pousser par défaut : action: 'want', data: ['blocks', ...] pour exprimer ce que vous voulez pousser. Disponible: blocks, mempool-blocks, live-2h-chart, et stats.Pousse les transactions liées à l'adresse : 'track-address': '3PbJ...bF9B' pour recevoir toutes les nouvelles transactions contenant cette adresse en entrée ou en sortie. Renvoie un tableau de transactions. address-transactions pour les nouvelles transactions mempool, et block-transactions pour les nouvelles transactions confirmées en bloc. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ Frais de base src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ Ce canal prend en charge le routage sans frais de base src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ Aucun frais de base src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ Ce canal ne prend pas en charge le routage sans frais de base src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ Frais de base non nuls src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ HTLC min. src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ HTLC max. src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ canaux src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel canal Lightning @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Transaction d'ouverture src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ Transaction de clôture src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Variation sur une semaine @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - Inconnue + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Couleur src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ FAI src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ Exclusivement sur Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Canaux ouverts src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ Canaux fermés src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ Nœud : src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - Indexation en cours + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes Top 100 des nœuds Lightning les plus anciens diff --git a/frontend/src/locale/messages.he.xlf b/frontend/src/locale/messages.he.xlf index aafbeea84..6e34702e5 100644 --- a/frontend/src/locale/messages.he.xlf +++ b/frontend/src/locale/messages.he.xlf @@ -6,15 +6,14 @@ סגירה node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - שקף מתוך + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ הקודם node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ הבא node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ בחירת חודש node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ בחירת שנה node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ החודש הקודם node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ החודש הבא node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ ראשון node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ הקודם node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ הבא node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ אחרון node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ שעות node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ דקות node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ תוספת שעות node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ הפחתת שעות node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ תוספת דקות node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ הפחתת דקות node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ שניות node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ תוספת שניות node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ הפחתת שניות node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ סגירה node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ סה"כ התקבל src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ סה״כ נשלח src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ מאזן src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ טרנזקצייה src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ טרנזקציות src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ פעולה src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ בני ברית מהקהילה src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ מתרגמי הפרוייקט src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ תורמי הפרוייקט src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ חברי צוות הפרוייקט src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ מתחזקי הפרוייקט src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ חסוי src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ מתוך טרנזקציות src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ מתוך טרנזקציות src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ שגיאה בטעינת נתוני כתובת. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ כמות הטרנזקציות לכתובת זו גבוה יותר מאשר ניתן להציג. הצג עוד ב או שדרג חמרה . שקול להציג כתובת זו באתר הרשמי במקום: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ שם src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ דיוק src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ מנפיק src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ הנפקת טרנזקציה src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ כמות שרופה src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ סכום במחזור src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ מ src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Peg In/Out and Burn Transactions src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Issuance and Burn Transactions src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ שגיאה בטעינת נתוני נכס. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - גודל - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - משקל - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates גובה עמלות לבלוק @@ -2259,6 +2115,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee עמלה @@ -2272,11 +2136,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2298,11 +2162,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2316,15 +2180,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2350,19 +2214,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2402,31 +2266,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2440,15 +2308,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2471,6 +2391,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2517,6 +2441,74 @@ mining.block-sizes-weights + + Size + גודל + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + משקל + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2546,11 +2538,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2567,19 +2555,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2597,11 +2577,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2614,7 +2590,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2639,16 +2615,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + מרווח עמלה + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes מבוסס על טרנזקציית Native SegWit ממוצעת של 140 בתים src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2677,29 +2698,53 @@ תגמול כולל src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits ביטים src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2708,7 +2753,7 @@ שורש מרקל src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2717,7 +2762,7 @@ קושי src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2746,7 +2791,7 @@ תוספתא src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2755,7 +2800,7 @@ קידוד כותר הבלוק src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2764,19 +2809,23 @@ פרטים src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2786,11 +2835,11 @@ שגיאה בטעינת נתונים src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2798,7 +2847,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2810,6 +2859,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool בריכה @@ -2852,9 +2909,8 @@ latest-blocks.mined - - Reward - פרס + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2863,6 +2919,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + פרס + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2878,7 +2947,7 @@ עמלות src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2895,11 +2964,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2915,7 +2984,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2992,7 +3061,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3152,7 +3221,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3165,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3178,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3192,7 +3261,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3494,15 +3563,6 @@ documentation.title - - Fee span - מרווח עמלה - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks ערימה של בלוקי ממפול @@ -3767,11 +3827,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3941,7 +4005,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3955,7 +4019,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3985,9 +4049,8 @@ mining.rewards-desc - - Reward Per Tx - פרס לטרנזקציה + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3996,42 +4059,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - ממוצע פרסי הכרייה לטרנזקציה ל144 הבלוקים האחרונים + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - סאט/טרנזק׳ + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - עמלה ממוצעת + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4051,11 +4099,34 @@ mining.average-fee + + sats/tx + סאט/טרנזק׳ + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + פרס לטרנזקציה + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4064,7 +4135,7 @@ חפש src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4086,7 +4157,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4323,16 +4394,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed טרם אושרו src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4342,11 +4431,11 @@ נראה לראשונה src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4376,7 +4465,7 @@ זמן אישור משוער src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4386,7 +4475,7 @@ בעוד מספר שעות (או יותר) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4396,7 +4485,11 @@ צאצא src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4406,7 +4499,7 @@ אב קדמון src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4415,11 +4508,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4428,7 +4521,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4436,7 +4529,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4444,7 +4545,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4452,7 +4557,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4461,7 +4566,7 @@ זמן נעילה src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4470,7 +4575,7 @@ טרנזקציה לא נמצאה. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4479,7 +4584,7 @@ ממתין להופעתה בממפול.. src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4488,7 +4593,7 @@ שיעור עמלה אפקטיבי src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4498,7 +4603,7 @@ מטבעה src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4507,7 +4612,7 @@ (מטבעות שזה עתה נוצרו) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4516,7 +4621,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4525,7 +4630,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4535,7 +4640,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4545,7 +4650,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4554,7 +4659,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4563,7 +4668,7 @@ סקריפט P2TR src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4572,7 +4677,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4581,7 +4686,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4590,7 +4695,7 @@ פלט קודם src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4599,7 +4704,7 @@ סוג פלט קודם src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4608,7 +4713,7 @@ התפגר ל src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4617,7 +4722,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4627,20 +4732,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - הצג את כל הקלטים על מנת להציג נתוני העמלה + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4661,7 +4773,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4669,7 +4785,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4741,6 +4861,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4760,12 +4884,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot טרנזקציה זו משתמשת בטאפרוט src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4773,7 +4905,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4782,11 +4914,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4796,7 +4928,7 @@ טרנזקציה זו אינה תומכת בשינוי עמלות (RBF) ולא ניתן להעלות את העמלה src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4869,7 +5001,7 @@ עמלה מינימלית src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4879,7 +5011,7 @@ סף עמלה src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4889,7 +5021,7 @@ שימוש בזיכרון src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4899,7 +5031,7 @@ L-BTC במחזור src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4907,7 +5039,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4916,11 +5048,11 @@ נקודת קצה src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4929,11 +5061,11 @@ תיאור src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4941,7 +5073,7 @@ ברירת מחדל דוחף: פעולה ׳רוצה׳, מידע: [׳בלוקים׳,...] לבטא את מה שרצית לדחוף. זמין בלוקים , בלוקי-ממפול , תצוגה חיה-שעתיים-טבלה , ו סטטיסטיקות . דוחף טרנזקציות הקשורות לכתובת: ׳עקוב-כתובת׳: ׳3PbJ...bF9B' לקבלה של כל הטרנזקציות החדשות המכילות את כתובת זו כקלט או פלט. מאחזר מערך של טרנזקציות. טרנזקציות-כתובת לטרנזקציות ממפול חדשות ו בלוקי-טרנזקציות לבלוקים מאושרים חדשים. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4989,7 +5121,7 @@ שאלות נפוצות src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4997,18 +5129,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5020,7 +5156,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5030,13 +5166,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5044,7 +5184,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5052,7 +5192,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5060,7 +5200,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5068,7 +5208,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5076,7 +5216,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5084,7 +5224,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5092,14 +5232,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5120,7 +5278,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5136,7 +5294,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5156,7 +5314,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5252,7 +5410,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5264,7 +5422,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5300,11 +5458,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5312,7 +5478,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5395,11 +5561,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5581,10 +5747,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5787,6 +5949,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5815,7 +5985,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5867,31 +6037,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5899,7 +6057,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5911,15 +6069,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5927,7 +6151,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5935,7 +6159,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5980,8 +6204,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6223,6 +6447,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.hi.xlf b/frontend/src/locale/messages.hi.xlf index 54a2b7eb4..5eda29125 100644 --- a/frontend/src/locale/messages.hi.xlf +++ b/frontend/src/locale/messages.hi.xlf @@ -6,14 +6,14 @@ बंद node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -22,7 +22,7 @@ पिछला node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -30,7 +30,7 @@ अगला node_modules/src/carousel/carousel.ts - 195 + 227 @@ -38,11 +38,11 @@ महीना चुनिए node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -50,11 +50,11 @@ वर्ष चुनें node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -62,11 +62,11 @@ पिछ्ला महिना node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -74,11 +74,11 @@ अगला महीना node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -86,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -94,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -102,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -110,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -118,7 +118,7 @@ प्रथम node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -126,7 +126,7 @@ पिछला node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -134,7 +134,7 @@ अगला node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -142,14 +142,14 @@ अंतिम node_modules/src/pagination/pagination.ts - 354 + 269,271 - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -157,7 +157,7 @@ एचएच node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -165,7 +165,7 @@ घंटे node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -173,7 +173,7 @@ एम्एम् node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -181,7 +181,7 @@ मिनट node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -189,7 +189,7 @@ घंटे बढ़ाए node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -197,7 +197,7 @@ घंटे घटाये node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -205,7 +205,7 @@ मिनट बढ़ाये node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -213,7 +213,7 @@ मिनट घटाये node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -221,7 +221,7 @@ एसएस node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -229,7 +229,7 @@ सेकंड node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -237,7 +237,7 @@ सेकंड बढ़ाये node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -245,21 +245,21 @@ सेकंड घटाये node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -267,7 +267,7 @@ बंद node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -292,15 +292,15 @@ कुल प्राप्त src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -309,7 +309,7 @@ कुल भेजा गया src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -317,11 +317,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -330,15 +330,15 @@ शेष src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -347,7 +347,7 @@ लेनदेन src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -355,11 +355,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -372,7 +372,7 @@ लेनदेन src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -380,11 +380,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -420,10 +420,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -445,10 +441,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -471,7 +463,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -561,19 +553,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -782,15 +770,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -804,11 +792,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -946,7 +934,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1027,7 +1015,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1045,11 +1033,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1061,11 +1049,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1074,7 +1062,7 @@ ट्रांसेक्शन src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1090,7 +1078,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1107,11 +1099,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1129,11 +1121,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1147,7 +1139,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1161,11 +1153,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1193,11 +1185,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1214,11 +1206,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1232,11 +1224,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1256,7 +1248,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1272,7 +1264,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1476,7 +1468,7 @@ सामुदायिक गठबंधन src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1484,7 +1476,7 @@ Project Translators src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1493,7 +1485,7 @@ परियोजना योगदानकर्ता src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1502,7 +1494,7 @@ परियोजना सदस्य src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1511,7 +1503,7 @@ परियोजना अनुरक्षक src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1539,7 +1531,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1551,7 +1543,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1560,11 +1552,11 @@ गुप्त src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1576,7 +1568,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1584,15 +1576,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1612,7 +1604,7 @@ of transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1620,7 +1612,7 @@ of transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1629,7 +1621,7 @@ डेटा लोड करने में त्रुटि. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1637,7 +1629,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1656,7 +1648,7 @@ नाम src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1677,7 +1669,7 @@ शुद्धता src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1687,7 +1679,7 @@ जारीकर्ता src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1697,7 +1689,7 @@ निर्गम TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1707,7 +1699,7 @@ पेग्गड़ इन src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1717,7 +1709,7 @@ पेग्गड़ आउट src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1727,7 +1719,7 @@ जली हुई राशि src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1737,11 +1729,11 @@ परिसंचारी राशि src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1751,7 +1743,7 @@ का src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1760,7 +1752,7 @@ पेग इन/आउट और बर्न ट्रांजैक्शन src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1769,7 +1761,7 @@ जारी करना और जलाना लेनदेन src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1778,7 +1770,7 @@ एसेट डेटा लोड करने में गड़बड़ी. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2012,140 +2004,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - साइज - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - वेइट - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates @@ -2243,6 +2101,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee शुल्क @@ -2256,11 +2122,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2282,11 +2148,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2300,15 +2166,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2334,19 +2200,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2386,31 +2252,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2424,15 +2294,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2455,6 +2377,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2499,6 +2425,74 @@ mining.block-sizes-weights + + Size + साइज + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + वेइट + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2528,11 +2522,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2549,19 +2539,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2579,11 +2561,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2596,7 +2574,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2621,16 +2599,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + फी स्पेन + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes 140 वीबाइट्स के औसत नेटिव सेगविट लेनदेन के आधार पर src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2659,29 +2682,53 @@ सब्सिडी + शुल्क: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits बिट्स src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2690,7 +2737,7 @@ मर्कल रुट src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2699,7 +2746,7 @@ कठिनाई src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2728,7 +2775,7 @@ नोन्स src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2737,7 +2784,7 @@ ब्लॉक हैडर हेक्स src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2746,19 +2793,23 @@ विवरण src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2767,11 +2818,11 @@ Error loading data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2779,7 +2830,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2791,6 +2842,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool @@ -2832,8 +2891,8 @@ latest-blocks.mined - - Reward + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2842,6 +2901,18 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2856,7 +2927,7 @@ Fees src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2873,11 +2944,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2893,7 +2964,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2967,7 +3038,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3119,7 +3190,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3132,7 +3203,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3145,7 +3216,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3159,7 +3230,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3452,15 +3523,6 @@ documentation.title - - Fee span - फी स्पेन - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks मेमपूल ब्लॉक का ढेर @@ -3712,11 +3774,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3877,7 +3943,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3890,7 +3956,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3918,8 +3984,8 @@ mining.rewards-desc - - Reward Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3928,39 +3994,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -3979,11 +4033,32 @@ mining.average-fee + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -3992,7 +4067,7 @@ सर्च src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4014,7 +4089,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4251,16 +4326,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed अपुष्ट src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4270,11 +4363,11 @@ प्रथम देखा src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4304,7 +4397,7 @@ इटीए src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4314,7 +4407,7 @@ कई घंटों में (या अधिक) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4324,7 +4417,11 @@ वंशज src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4334,7 +4431,7 @@ पूर्वज src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4343,11 +4440,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4356,7 +4453,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4364,7 +4461,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4372,7 +4477,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4380,7 +4489,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4389,7 +4498,7 @@ लॉकटाइम src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4398,7 +4507,7 @@ ट्रांसेक्शन नहीं मिला। src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4407,7 +4516,7 @@ मेमपूल में इसके प्रकट होने की प्रतीक्षा की जा रही है... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4416,7 +4525,7 @@ प्रभावी शुल्क दर src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4426,7 +4535,7 @@ कॉइनबेस src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4435,7 +4544,7 @@ (नए सृजित कोइन्स) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4444,7 +4553,7 @@ पेग-इन src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4453,7 +4562,7 @@ स्क्रिप्टसिग (एएसएम) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4463,7 +4572,7 @@ स्क्रिप्टसिग (हेक्स) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4473,7 +4582,7 @@ विटनेस src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4482,7 +4591,7 @@ P2SH रिडीम स्क्रिप्ट src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4490,7 +4599,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4499,7 +4608,7 @@ P2WSH विटनेस स्क्रिप्ट src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4508,7 +4617,7 @@ nसीक्वेंस src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4517,7 +4626,7 @@ पिछली आउटपुट स्क्रिप्ट src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4526,7 +4635,7 @@ पिछला आउटपुट प्रकार src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4535,7 +4644,7 @@ पेग-आउट से src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4544,7 +4653,7 @@ स्क्रिप्टपबकी (एएसएम) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4554,19 +4663,27 @@ स्क्रिप्टपबकी (हेक्स) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4587,7 +4704,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4595,7 +4716,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4667,6 +4792,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4686,12 +4815,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot यह लेन-देन Taproot का उपयोग करता है src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4699,7 +4836,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4708,11 +4845,11 @@ आरबीएफ src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4722,7 +4859,7 @@ यह लेन-देन प्रतिस्थापन-दर-शुल्क (आरबीएफ) का समर्थन नहीं करता है और इस पद्धति का उपयोग करके शुल्क में बाधा नहीं डाली जा सकती है src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4795,7 +4932,7 @@ न्यूनतम शुल्क src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4805,7 +4942,7 @@ पर्जिंग src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4815,7 +4952,7 @@ मेमोरी उपयोग src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4825,7 +4962,7 @@ प्रचलन में एल-बीटीसी src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4833,7 +4970,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4842,11 +4979,11 @@ ैंडपॉइन्ट src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4855,11 +4992,11 @@ विवरण src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4867,7 +5004,7 @@ डिफ़ॉल्ट पुश: क्रिया: 'चाहते हैं', डेटा: ['ब्लॉक', ...] जो आप चाहते हैं उसे व्यक्त करने के लिए धक्का दिया। उपलब्ध: ब्लॉक, मेमपूल-ब्लॉक, लाइव-2h-चार्ट, और आँकड़े। पते से संबंधित लेनदेन को पुश करें: 'ट्रैक-एड्रेस': '3PbJ...bF9B' इनपुट या आउटपुट के रूप में उस पते वाले सभी नए लेनदेन प्राप्त करने के लिए। लेन-देन की एक सरणी देता है। नए मेमपूल लेनदेन के लिए पता-लेनदेन, और नए ब्लॉक की पुष्टि लेनदेन के लिए ब्लॉक-लेनदेन। src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4914,7 +5051,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4922,18 +5059,22 @@ एपीआई src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -4945,7 +5086,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -4955,13 +5096,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -4969,7 +5114,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -4977,7 +5122,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -4985,7 +5130,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -4993,7 +5138,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5001,7 +5146,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5009,7 +5154,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5017,14 +5162,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5045,7 +5208,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5061,7 +5224,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5081,7 +5244,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5177,7 +5340,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5189,7 +5352,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5225,11 +5388,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5237,7 +5408,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5320,11 +5491,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5506,10 +5677,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5712,6 +5879,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5740,7 +5915,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5792,31 +5967,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5824,7 +5987,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5836,15 +5999,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5852,7 +6081,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5860,7 +6089,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5905,8 +6134,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6148,6 +6377,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.hr.xlf b/frontend/src/locale/messages.hr.xlf index c4a591d5c..4b0691fe3 100644 --- a/frontend/src/locale/messages.hr.xlf +++ b/frontend/src/locale/messages.hr.xlf @@ -5,14 +5,14 @@ Close node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -20,226 +20,226 @@ Previous node_modules/src/carousel/carousel.ts - 174 + 206,207 Next node_modules/src/carousel/carousel.ts - 195 + 227 Select month node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 Select year node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 Previous month node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 Next month node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 «« node_modules/src/pagination/pagination.ts - 247 + 269,270 « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 First node_modules/src/pagination/pagination.ts - 318,320 + 269,271 Previous node_modules/src/pagination/pagination.ts - 333 + 269,271 Next node_modules/src/pagination/pagination.ts - 343,344 + 269,271 Last node_modules/src/pagination/pagination.ts - 354 + 269,271 - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 Hours node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 Minutes node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 Increment hours node_modules/src/timepicker/timepicker.ts - 200 + 305,309 Decrement hours node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 Increment minutes node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 Decrement minutes node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 SS node_modules/src/timepicker/timepicker.ts - 277 + 410 Seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 Increment seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 Decrement seconds node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 Close node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -262,15 +262,15 @@ Total received src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -278,7 +278,7 @@ Total sent src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -286,11 +286,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -298,15 +298,15 @@ Balance src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -314,7 +314,7 @@ transaction src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -322,11 +322,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -338,7 +338,7 @@ transactions src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -346,11 +346,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -383,10 +383,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -407,10 +403,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -433,7 +425,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -517,19 +509,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -726,15 +714,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -747,11 +735,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -880,7 +868,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -954,7 +942,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -971,11 +959,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -986,11 +974,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -999,7 +987,7 @@ Transakcija src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1015,7 +1003,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1031,11 +1023,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1052,11 +1044,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1070,7 +1062,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1083,11 +1075,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1115,11 +1107,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1136,11 +1128,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1153,11 +1145,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1175,7 +1167,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1191,7 +1183,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1373,7 +1365,7 @@ Community Alliances src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1381,7 +1373,7 @@ Project Translators src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1389,7 +1381,7 @@ Project Contributors src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1397,7 +1389,7 @@ Project Members src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1405,7 +1397,7 @@ Project Maintainers src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1432,7 +1424,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1443,7 +1435,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1451,11 +1443,11 @@ Confidential src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1467,7 +1459,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1475,15 +1467,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1502,7 +1494,7 @@ of transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1510,7 +1502,7 @@ of transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1518,7 +1510,7 @@ Error loading address data. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1526,7 +1518,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1543,7 +1535,7 @@ Name src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1563,7 +1555,7 @@ Precision src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1572,7 +1564,7 @@ Issuer src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1581,7 +1573,7 @@ Issuance TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1590,7 +1582,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1599,7 +1591,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1608,7 +1600,7 @@ Burned amount src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1617,11 +1609,11 @@ Circulating amount src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1630,7 +1622,7 @@ of   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1638,7 +1630,7 @@ Peg In/Out and Burn Transactions src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1646,7 +1638,7 @@ Issuance and Burn Transactions src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1654,7 +1646,7 @@ Error loading asset data. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -1874,138 +1866,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates @@ -2103,6 +1963,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Naknada @@ -2116,11 +1984,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2141,11 +2009,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2158,15 +2026,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2192,19 +2060,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2244,31 +2112,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2282,15 +2154,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2313,6 +2237,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2357,6 +2285,72 @@ mining.block-sizes-weights + + Size + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2385,11 +2379,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2405,19 +2395,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2434,11 +2416,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2450,7 +2428,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2473,15 +2451,59 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2509,28 +2531,52 @@ Subsidy + fees: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2538,7 +2584,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2546,7 +2592,7 @@ Difficulty src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2574,7 +2620,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2582,7 +2628,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2591,19 +2637,23 @@ Detalji src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2612,11 +2662,11 @@ Error loading data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2624,7 +2674,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2636,6 +2686,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool @@ -2676,8 +2734,8 @@ latest-blocks.mined - - Reward + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2686,6 +2744,18 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2700,7 +2770,7 @@ Fees src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2716,11 +2786,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2736,7 +2806,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2807,7 +2877,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -2955,7 +3025,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -2967,7 +3037,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -2979,7 +3049,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -2992,7 +3062,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3282,14 +3352,6 @@ documentation.title - - Fee span - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks @@ -3536,11 +3598,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3700,7 +3766,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3713,7 +3779,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3741,8 +3807,8 @@ mining.rewards-desc - - Reward Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3751,39 +3817,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -3802,11 +3856,32 @@ mining.average-fee + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -3814,7 +3889,7 @@ Search src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -3834,7 +3909,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4064,16 +4139,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Nepotvrđeno src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4083,11 +4176,11 @@ Prvo viđeno src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4116,7 +4209,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4125,7 +4218,7 @@ In several hours (or more) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4134,7 +4227,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4143,7 +4240,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4152,11 +4249,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4165,7 +4262,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4173,7 +4270,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4181,7 +4286,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4189,7 +4298,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4197,7 +4306,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4205,7 +4314,7 @@ Transaction not found. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4213,7 +4322,7 @@ Waiting for it to appear in the mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4221,7 +4330,7 @@ Effective fee rate src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4230,7 +4339,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4238,7 +4347,7 @@ (Newly Generated Coins) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4246,7 +4355,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4254,7 +4363,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4263,7 +4372,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4272,7 +4381,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4280,7 +4389,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4288,7 +4397,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4296,7 +4405,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4304,7 +4413,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4312,7 +4421,7 @@ Previous output script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4320,7 +4429,7 @@ Previous output type src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4328,7 +4437,7 @@ Peg-out to src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4336,7 +4445,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4345,19 +4454,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4378,7 +4495,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4386,7 +4507,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4457,6 +4582,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4476,11 +4605,19 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4488,7 +4625,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4496,11 +4633,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4509,7 +4646,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4575,7 +4712,7 @@ Minimum fee src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4584,7 +4721,7 @@ Purging src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4593,7 +4730,7 @@ Memory usage src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4602,7 +4739,7 @@ L-BTC in circulation src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4610,7 +4747,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4618,11 +4755,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4630,18 +4767,18 @@ Description src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4685,25 +4822,29 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -4715,7 +4856,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -4725,13 +4866,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -4739,7 +4884,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -4747,7 +4892,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -4755,7 +4900,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -4763,7 +4908,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -4771,7 +4916,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -4779,7 +4924,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -4787,14 +4932,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -4815,7 +4978,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -4831,7 +4994,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -4851,7 +5014,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -4947,7 +5110,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -4959,7 +5122,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4995,11 +5158,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5007,7 +5178,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5090,11 +5261,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5276,10 +5447,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5482,6 +5649,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5510,7 +5685,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5562,31 +5737,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5594,7 +5757,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5606,15 +5769,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5622,7 +5851,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5630,7 +5859,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5675,8 +5904,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -5918,6 +6147,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.hu.xlf b/frontend/src/locale/messages.hu.xlf index 42851eec5..979573d35 100644 --- a/frontend/src/locale/messages.hu.xlf +++ b/frontend/src/locale/messages.hu.xlf @@ -6,14 +6,14 @@ Bezár node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -22,7 +22,7 @@ Előző node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -30,7 +30,7 @@ Következő node_modules/src/carousel/carousel.ts - 195 + 227 @@ -38,11 +38,11 @@ Hónap kiválasztása node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -50,11 +50,11 @@ Év kiválasztása node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -62,11 +62,11 @@ Előző hónap node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -74,11 +74,11 @@ Következő hónap node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -86,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -94,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -102,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -110,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -118,7 +118,7 @@ Első node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -126,7 +126,7 @@ Előző node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -134,7 +134,7 @@ Következő node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -142,15 +142,14 @@ Utolsó node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -158,7 +157,7 @@ ÓÓ node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -166,7 +165,7 @@ Óra node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -174,7 +173,7 @@ PP node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -182,7 +181,7 @@ Perc node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -190,7 +189,7 @@ Óra növelése node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -198,7 +197,7 @@ Óra csökkentése node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -206,7 +205,7 @@ Perc növelése node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -214,7 +213,7 @@ Perc csökkenése node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -222,7 +221,7 @@ MM node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -230,7 +229,7 @@ Másodpercek node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -238,7 +237,7 @@ Másodperc növelése node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -246,7 +245,7 @@ Másodperc csökkenése node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -254,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -262,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -270,7 +269,7 @@ Bezárás node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -295,15 +294,15 @@ Összes fogadott src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -312,7 +311,7 @@ Összes küldött src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -320,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -333,15 +332,15 @@ Egyenleg src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -350,7 +349,7 @@ tranzakció src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -358,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -375,7 +374,7 @@ tranzakció src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -383,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -423,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -448,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -474,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -564,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -785,15 +772,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -807,11 +794,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -949,7 +936,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1030,7 +1017,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1048,11 +1035,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1064,11 +1051,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1077,7 +1064,7 @@ Tranzakció src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1093,7 +1080,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1110,11 +1101,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1132,11 +1123,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1150,7 +1141,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1164,11 +1155,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1196,11 +1187,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1217,11 +1208,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1235,11 +1226,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1259,7 +1250,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1275,7 +1266,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1479,7 +1470,7 @@ Közösségi Szövetségesek src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1488,7 +1479,7 @@ Projekt Fordítók src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1497,7 +1488,7 @@ Projekt Kontribútorok src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1506,7 +1497,7 @@ Projekt Tagok src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1515,7 +1506,7 @@ Projekt Fenntartók src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1543,7 +1534,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1555,7 +1546,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1564,11 +1555,11 @@ Bizalmas src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1580,7 +1571,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1588,15 +1579,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1616,7 +1607,7 @@ of transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1624,7 +1615,7 @@ of transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1633,7 +1624,7 @@ Hiba történt a cím információ lekérdezésekor. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1641,7 +1632,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1660,7 +1651,7 @@ Név src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1681,7 +1672,7 @@ Pontosság src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1691,7 +1682,7 @@ Kibocsájtó src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1701,7 +1692,7 @@ Kibocsájtó TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1711,7 +1702,7 @@ Betéve src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1721,7 +1712,7 @@ Kivéve src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1731,7 +1722,7 @@ Elégetett mennyiség src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1741,11 +1732,11 @@ Körforgásban lévő mennyiség src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1755,7 +1746,7 @@ a   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1764,7 +1755,7 @@ Betét/Kivét és Elégetési Tranzakciók src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1773,7 +1764,7 @@ Kibocsájtási és Égetési Tranzakciók src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1782,7 +1773,7 @@ Hiba történt az asset adatainak betöltésekor. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2017,140 +2008,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Méret - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Súly - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates @@ -2248,6 +2105,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Díj @@ -2261,11 +2126,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2287,11 +2152,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2305,15 +2170,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2339,19 +2204,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2391,31 +2256,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2429,15 +2298,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2460,6 +2381,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2504,6 +2429,74 @@ mining.block-sizes-weights + + Size + Méret + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Súly + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2533,11 +2526,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2554,19 +2543,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2584,11 +2565,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2601,7 +2578,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2626,16 +2603,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Díj fesztáv + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Az átlag 140 vBájtnyi native segwit tranzakción alapulvéve src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2664,29 +2686,53 @@ Blokk támogatás + Díj: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2695,7 +2741,7 @@ Merkle törzs src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2704,7 +2750,7 @@ Nehézség src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2733,7 +2779,7 @@ Nounce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2742,7 +2788,7 @@ Blokk Fejcím Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2751,19 +2797,23 @@ Részletek src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2772,11 +2822,11 @@ Error loading data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2784,7 +2834,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2796,6 +2846,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool @@ -2837,9 +2895,8 @@ latest-blocks.mined - - Reward - Jutalom + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2848,6 +2905,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Jutalom + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2863,7 +2933,7 @@ Díjjak src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2880,11 +2950,11 @@ TXek src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2900,7 +2970,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2974,7 +3044,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3126,7 +3196,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3139,7 +3209,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3152,7 +3222,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3166,7 +3236,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3459,15 +3529,6 @@ documentation.title - - Fee span - Díj fesztáv - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks mempool blokk @@ -3721,11 +3782,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3891,7 +3956,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3904,7 +3969,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3932,8 +3997,8 @@ mining.rewards-desc - - Reward Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3942,39 +4007,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -3993,11 +4046,32 @@ mining.average-fee + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4006,7 +4080,7 @@ Keresés src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4028,7 +4102,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4265,16 +4339,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Nem megerősített src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4284,11 +4376,11 @@ Először látva src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4318,7 +4410,7 @@ Hátralévő idő src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4328,7 +4420,7 @@ Több órán belül (vagy később) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4338,7 +4430,11 @@ Utód src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4348,7 +4444,7 @@ Felmenő src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4357,11 +4453,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4370,7 +4466,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4378,7 +4474,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4386,7 +4490,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4394,7 +4502,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4403,7 +4511,7 @@ Zárolási idő src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4412,7 +4520,7 @@ Nem található tranzakció. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4421,7 +4529,7 @@ Várakozás arra hogy a mempoolban feltünjön... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4430,7 +4538,7 @@ Effektív díj ráta src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4440,7 +4548,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4449,7 +4557,7 @@ (Újjonnan Létrehozott Érmék) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4458,7 +4566,7 @@ Bekötés src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4467,7 +4575,7 @@ SzkriptSzig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4477,7 +4585,7 @@ SzkriptSzig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4487,7 +4595,7 @@ Szemtanú src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4496,7 +4604,7 @@ P2SH kiváltási szkript src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4504,7 +4612,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4513,7 +4621,7 @@ P2WSH szemtanú szkript src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4522,7 +4630,7 @@ nSzekvencia src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4531,7 +4639,7 @@ Előző kimeneti szkript src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4540,7 +4648,7 @@ Előző kimeneti típúsok src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4549,7 +4657,7 @@ Kiváltás erre src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4558,7 +4666,7 @@ SzkriptPublikusKulcs (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4568,19 +4676,27 @@ SzkriptPublikusKulcs (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4601,7 +4717,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4609,7 +4729,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4681,6 +4805,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4700,12 +4828,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Ez a tranzakció Taproot-ot használ src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4713,7 +4849,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4722,11 +4858,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4736,7 +4872,7 @@ Ez a tranzakció NEM támogatja a tranzakciós díj cserét (RBF), és ezzel a módszerrel nem lehet díj növelést fizetni src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4809,7 +4945,7 @@ Minimum Díj src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4819,7 +4955,7 @@ Törlés src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4829,7 +4965,7 @@ Memória használat src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4839,7 +4975,7 @@ L-BTC forgalomban src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4847,7 +4983,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4856,11 +4992,11 @@ Végpont src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4869,11 +5005,11 @@ Leírás src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4881,7 +5017,7 @@ Alaphelyzeti push: művelet: 'kell', data: ['blocks', ...] hogy kifejezd mit szeretnél pusholni. Elérhető: blocks, mempool-blocks, live-2h-chart, and stats.Pusholjon tranzakciókat címekhez fogva: 'cím-követés': '3PbJ...bF9B' az összes új tranzakció fogadásához, amely ezt a címet tartalmazza bemenetként vagy kimenetként. Tranzakciók tömbjét adja vissza. cím-tranzakciókúj mempool tranzakciókhoz , és block-tranzakciók az új blokk megerősített tranzakciókhoz. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4929,7 +5065,7 @@ GYIK src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4937,18 +5073,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -4960,7 +5100,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -4970,13 +5110,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -4984,7 +5128,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -4992,7 +5136,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5000,7 +5144,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5008,7 +5152,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5016,7 +5160,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5024,7 +5168,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5032,14 +5176,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5060,7 +5222,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5076,7 +5238,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5096,7 +5258,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5192,7 +5354,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5204,7 +5366,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5240,11 +5402,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5252,7 +5422,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5335,11 +5505,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5521,10 +5691,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5727,6 +5893,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5755,7 +5929,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5807,31 +5981,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5839,7 +6001,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5851,15 +6013,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5867,7 +6095,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5875,7 +6103,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5920,8 +6148,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6163,6 +6391,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.it.xlf b/frontend/src/locale/messages.it.xlf index 886433b1f..a51e1f4ad 100644 --- a/frontend/src/locale/messages.it.xlf +++ b/frontend/src/locale/messages.it.xlf @@ -6,15 +6,14 @@ Chiudi node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Diapositiva di + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Precedente node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Successivo node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Seleziona mese node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Seleziona anno node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Scorso mese node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Mese prossimo node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Primo node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Precedente node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Prossimo node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Ultimo node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Ore node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minuti node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Aumentare le ore node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Diminuire le ore node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Aumentare i minuti node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Diminuire i minuti node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Secondi node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Aumentare i secondi node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Diminuire i secondi node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Chiudi node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Totale ricevuto src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Totale inviato src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Saldo src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transazione src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transazioni src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transazione src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Alleanze della comunità src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Traduttori del progetto src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Hanno contribuito al progetto src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Membri del Progetto src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Manutentori del progetto src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Confidenziale src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ di transazione src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ di transazioni src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Errore nel caricamento dei dati dell'indirizzo. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ Ci sono molte transazioni in questo indirizzo, più di quante il tuo backend possa gestire. Vedi di più sull' impostazione di backend più potente... Considera di osservare quest'indirizzo sul sito ufficiale di Mempool. src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Nome src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Precisione src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Emittente src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ TX di emissione src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Quantità bruciata src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Importo circolante src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ di   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Peg In/Out e Transazioni Bruciate src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Transazioni Bruciate e di Emissione src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Errore nel caricamento dei dati dell'asset. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Dimensione - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Peso - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Tariffe Commissione del Blocco @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Commissione @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Precisione di previsione del blocco @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + Dimensione + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Peso + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Intervallo della commissione + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Basandosi su una transazione segwit nativa dal peso medio di 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ Ricompensa + commissioni: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ Difficoltà src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ Dettagli src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ Errore caricamento dati src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - Ricompensa + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Ricompensa + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ Commissioni src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - Intervallo della commissione - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Pila di blocchi mempool @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - Ricompensa Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Ricompensa media dei minatori per transazione negli ultimi 144 blocchi + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Commissione Media + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Ricompensa Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ Ricerca src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Non confermata src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ Vista per la prima volta src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ Tra diverse ore (o più) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ Discendente src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ Antenato src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ Transazione non trovata. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ Aspettando che appaia nella mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ Prezzo effettivo della commissione src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (Bitcoin Appena Generati) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ Testimone src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ Script di riscatto P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ Script testimone P2WSH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ Script output precedente src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ Tipo di output precedente src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ Peg-out a src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Mostra tutti gli input per rivelare i dati sulle commissioni + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Questa transazione utilizza Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ Questa transazione NON supporta Replace-By-Fee (RBF) e quindi la sua commissione non può essere aumentata con questo metodo src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ Commissione minima src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ Eliminazione src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ Memoria in uso src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ L-BTC in circolazione src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ Servizio REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ Descrizione src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ Push predefinito: action: 'want', data: ['blocks', ...] per esprimere cosa vuoi spingere. Disponibile: blocks, mempool-blocks, live-2h-chart, and stats.Spingi transazioni collegate all'indirizzo: 'track-address': '3PbJ...bF9B' per ricevere tutte le nuove transazioni contenenti quell'indirizzo come input o output. Restituisce un array di transazioni. address-transactions per nuove transazioni di mempool e block-transactions per le nuove transazioni confermate nel blocco. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.ja.xlf b/frontend/src/locale/messages.ja.xlf index e29438d70..5985c3086 100644 --- a/frontend/src/locale/messages.ja.xlf +++ b/frontend/src/locale/messages.ja.xlf @@ -6,15 +6,14 @@ 閉じる node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - 枚のスライドのうちの枚目 + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ 月を選択 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ 年を選択 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ 前月 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ 来月 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ 最初 node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ 最終 node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ 時間 node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ 時間をインクリメント node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ 時間をデクリメント node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ 分をインクリメント node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ 分をデクリメント node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ 秒をインクリメント node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ 秒をデクリメント node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ 閉じる node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ 受領合計 src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ 送金合計 src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ 残高 src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ トランザクション src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ トランザクション src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ トランザクション src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ コミュニティーの提携 src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ プロジェクト翻訳者 src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ プロジェクト貢献者 src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ プロジェクトメンバー src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ プロジェクトメンテナー src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ 機密 src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ / トランザクション src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ / トランザクション src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ アドレスデータを読み込み中にエラーが発生しました。 src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ このアドレスにトランザクションが多すぎてバックエンドが処理できません。より強いバックエンドを整えるについて詳しくはここから代わりに、このアドレスをMempoolの公式サイトで閲覧できます: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ アセット名 src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ 精度 src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ 発行者 src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ 発行トランザクション src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ ペグイン src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ ペグアウト src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ バーン額 src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ 流通貨幣額 src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ ペグイン/アウトおよびバーントランザクション src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ 発行およびバーントランザクション src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ アセットデータを読み込み中にエラーが発生しました。 src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - サイズ - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - 重み - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates ブロック手数料率 @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee 手数料 @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy ブロック予測精度 @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + サイズ + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + 重み + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + 料金スパン + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes 140vBytesの平均ネイティブsegwitトランザクションに基づく src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ 補助金+手数料: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits ビット src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ マークル・ルート src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ 難易度 src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ ノンス src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ ブロックヘッダーの16進値 src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ 詳細 src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ データ読み込み中にエラーが発生しました。 src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool プール @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - 報酬 + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + 報酬 + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ 手数料 src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - 料金スパン - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks つmempoolブロックのスタック @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - Txあたりの報酬 + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - 以前の144つブロックに平均マイナー報酬 + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - サトシ/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - 平均手数料 + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + サトシ/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Txあたりの報酬 + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ 検索 src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed 未承認 src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ 最初に見た src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ 数時間(またはそれ以上) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ ロックタイム src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ トランザクションが見つかりません。 src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ mempoolに表示されるのを待っています... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ 実効手数料レート src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ コインベース src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (新しく生成されたコイン) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ ペグイン src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ ウィットネス src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ P2SH引き換えスクリプト src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ P2WSHウィットネススクリプト src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ 前の出力スクリプト src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ 以前の出力タイプ src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ へのペグアウト src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - 手数料データを見るには全インプットを表示する + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot このトランザクションはTaprootを使用します src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ このトランザクションは、Replace-By-Fee(RBF)をサポートしておらず、この方法を使用して料金を引き上げることはできません。 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ 最低料金 src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ 削除中 src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ メモリ使用量 src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ 流通しているL-BTC src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ エンドポイント src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ 記述 src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ デフォルト・プッシュ: 行動: 'want', データ: ['ブロック', ...] プッシュしたいことを表現するために. 利用可能: blocksmempool-blockslive-2h-chartstatsこのアドレスと関係するプッシュトランザクション: 'track-address': '3PbJ...bF9B' インプットまたはアウトプットとしてそのアドレスを含む新トランザクションを得るために。トランザクションの配列を返す。 新しいメモリプールトランザクションの場合はaddress-transactions, そして新しいブロック承認済みトランザクションの場合はblock-transactions src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ よくある質問 src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.ka.xlf b/frontend/src/locale/messages.ka.xlf index c134aa241..c142776da 100644 --- a/frontend/src/locale/messages.ka.xlf +++ b/frontend/src/locale/messages.ka.xlf @@ -6,15 +6,14 @@ დახურვა node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - პირველი დან + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ წინა node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ შემდეგი node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ აირჩიეთ თვე node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ აირჩიეთ წელი node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ წინა თვე node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ შემდეგი თვე node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ პირველი node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ წინა node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ შემდეგი node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ წინა node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ სთ node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ საათი node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ თვე node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ წუთის node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ ზრდადი საათები node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ კლებადი საათები node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ ზრდადი წუთები node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ კლებადი წუთები node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ წმ node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ წამები node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ ზრდადი წამები node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ კლებადი წამები node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ დახურვა node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ სულ მიღებული src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ სულ გაგზავნილი src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Ბალანსი src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ ტრანსაქცია src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ ტრანსაქციები src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ ტრანზაქცია src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ ალიანსი src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ მთარგმნელები src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ მოხალისეები src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ პროექტის წევრები src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ პროექტის შემქმნელები src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ კონფიდენციალური src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ და ტრანზაქცია src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ და ტრანსაქცია src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ შეცდომა მისამართის მონაცემების მოძებვნისას. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ სახელი src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ სიზუსტე src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ გამცემი src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ გამცემის TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ მიბმული src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ განცალკევებული src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ დამწვარი რაოდენობა src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ ცირკულირებული რაოდენობა src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ of   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Peg In/Out and Burn Transactions src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ ემისია და დამწვარი ტრანზაქციები src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ აქტივის მონაცემების მოძებვნისას მოხდა შეცდომა. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - ზომა - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - წონა - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates ბლოკის საკომისიოს მაჩვენებელი @@ -2259,6 +2115,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee საკომისიო @@ -2272,11 +2136,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2298,11 +2162,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2316,15 +2180,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2350,19 +2214,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2402,31 +2266,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2440,15 +2308,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2471,6 +2391,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2517,6 +2441,74 @@ mining.block-sizes-weights + + Size + ზომა + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + წონა + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2546,11 +2538,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2567,19 +2555,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2597,11 +2577,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2614,7 +2590,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2639,16 +2615,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + საკომისიოს დიაპაზონი + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes გამომდინარე საშუალო native segwit 140 vByte ტრანსაქციიდან src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2677,29 +2698,53 @@ სუბსიდია + საკომისიო: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2708,7 +2753,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2717,7 +2762,7 @@ სირთულე src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2746,7 +2791,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2755,7 +2800,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2764,19 +2809,23 @@ დეტალები src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2786,11 +2835,11 @@ მოხდა შეცდომა src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2798,7 +2847,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2810,6 +2859,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2852,9 +2909,8 @@ latest-blocks.mined - - Reward - ანაზღაურება + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2863,6 +2919,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + ანაზღაურება + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2878,7 +2947,7 @@ საკომისიოები src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2895,11 +2964,11 @@ ტრანზაქცია src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2915,7 +2984,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2992,7 +3061,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3152,7 +3221,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3165,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3178,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3192,7 +3261,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3494,15 +3563,6 @@ documentation.title - - Fee span - საკომისიოს დიაპაზონი - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks mempool ის ბლოკების კრება @@ -3767,11 +3827,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3941,7 +4005,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3955,7 +4019,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3985,9 +4049,8 @@ mining.rewards-desc - - Reward Per Tx - ანაზღაურება თითო ტრანსაქ. + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3996,42 +4059,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - მაინერების საშუალო ანაზღაურება 144 ბლოკის შედეგად + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - საშუალო საკომისიო + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4051,11 +4099,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + ანაზღაურება თითო ტრანსაქ. + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4064,7 +4135,7 @@ მოძებვნა src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4086,7 +4157,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4323,16 +4394,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed დაუდასტურებული src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4342,11 +4431,11 @@ პირველი src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4376,7 +4465,7 @@ სავარაუდო ლოდინის დრო src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4386,7 +4475,7 @@ რამდენიმე საათში (ან მეტი) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4396,7 +4485,11 @@ კლებადი src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4406,7 +4499,7 @@ შთამომავალი src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4415,11 +4508,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4428,7 +4521,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4436,7 +4529,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4444,7 +4545,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4452,7 +4557,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4461,7 +4566,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4470,7 +4575,7 @@ ტრანსაქცია ვერ მოიძებნა. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4479,7 +4584,7 @@ დაელოდეთ mempool-ში რომ გამოჩნდეს... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4488,7 +4593,7 @@ ეფექტური საკომისიო src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4498,7 +4603,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4507,7 +4612,7 @@ (ახალი ქოინები) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4516,7 +4621,7 @@ მიბმული src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4525,7 +4630,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4535,7 +4640,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4545,7 +4650,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4554,7 +4659,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4563,7 +4668,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4572,7 +4677,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4581,7 +4686,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4590,7 +4695,7 @@ Previous output script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4599,7 +4704,7 @@ Previous output type src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4608,7 +4713,7 @@ Peg-out to src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4617,7 +4722,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4627,20 +4732,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4661,7 +4773,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4669,7 +4785,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4741,6 +4861,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4760,12 +4884,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot ეს ტრანზაქცია იყენებს Taproot-ს src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4773,7 +4905,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4782,11 +4914,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4796,7 +4928,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4869,7 +5001,7 @@ მინ. საკომისიო src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4879,7 +5011,7 @@ წაშლა src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4889,7 +5021,7 @@ მეხსიერება src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4899,7 +5031,7 @@ L-BTC ბრუნვაში src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4907,7 +5039,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4916,11 +5048,11 @@ დასასრული src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4929,11 +5061,11 @@ აღწერა src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4941,7 +5073,7 @@ Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4989,7 +5121,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4997,18 +5129,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5020,7 +5156,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5030,13 +5166,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5044,7 +5184,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5052,7 +5192,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5060,7 +5200,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5068,7 +5208,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5076,7 +5216,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5084,7 +5224,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5092,14 +5232,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5120,7 +5278,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5136,7 +5294,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5156,7 +5314,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5252,7 +5410,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5264,7 +5422,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5300,11 +5458,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5312,7 +5478,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5395,11 +5561,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5581,10 +5747,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5787,6 +5949,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5815,7 +5985,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5867,31 +6037,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5899,7 +6057,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5911,15 +6069,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5927,7 +6151,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5935,7 +6159,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5980,8 +6204,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6223,6 +6447,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.ko.xlf b/frontend/src/locale/messages.ko.xlf index 1c67ad9dd..2930ca097 100644 --- a/frontend/src/locale/messages.ko.xlf +++ b/frontend/src/locale/messages.ko.xlf @@ -6,15 +6,14 @@ 닫기 node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - 슬라이드 / + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ 이전 node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ 다음 node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ 달/월 선택하기 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ 연/년 선택하기 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ 지난달 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ 다음 달 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ 첫째 node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ 이전 node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ 다음 node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ 마지막 node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ 시간 node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ 증가한 시간 node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ 감소한 시간 node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ 증가한 분 node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ 감소한 분 node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ 증가한 초 node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ 감소한 초 node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ 닫기 node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ 총 받은 양 src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ 총 보낸 양 src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ 잔액 src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ 트랜잭션 src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ 트랜잭션 src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ 트랜잭션 src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ 커뮤니티 연합 src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ 프로젝트 번역자 src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ 프로젝트 참여자 목록 src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ 프로젝트 멤버들 src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ 프로젝트 관리자 목록 src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ 기밀 src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ / 트랜잭션 src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ / 트랜잭션 src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ 주소 데이터 불러오기 실패 src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ 이 주소에는 사용하시고 있는 서버가 처리할 수 있는 것보다 많은 트랜잭션이 있습니다. 성능이 더 좋은 서버 설정하기를 참조하거나 공식 멤풀 웹사이트에서 이 주소를 확인하는 것을 추천드립니다. src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ 이름 src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ 정도 src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ 발급자 src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ 발급 트랜잭션 src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ 페그인 됨 src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ 페그아웃 됨 src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ 소각량 src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ 유통량 src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ /  src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ 페그 인/페그 아웃 및 소각 트랜잭션 src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ 발급 및 소각 트랜잭션 src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ 자산 데이터를 로딩 실패 src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - 사이즈 - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - 무게 - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates 블록 수수료율 @@ -2259,6 +2115,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee 수수료 @@ -2272,11 +2136,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2298,11 +2162,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2316,15 +2180,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2350,19 +2214,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2402,31 +2266,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2440,15 +2308,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2471,6 +2391,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2517,6 +2441,74 @@ mining.block-sizes-weights + + Size + 사이즈 + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + 무게 + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2546,11 +2538,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2567,19 +2555,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2597,11 +2577,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2614,7 +2590,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2639,16 +2615,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + 수수료 범위 + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes 평균 native segwit 트랜잭션의 140 vBytes 기준 src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2677,29 +2698,53 @@ 채굴된 양 + 수수료: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits 비트 src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2708,7 +2753,7 @@ 머클 루트 src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2717,7 +2762,7 @@ 난이도 src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2746,7 +2791,7 @@ 임시값 src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2755,7 +2800,7 @@ 블록헤더 16진수 src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2764,19 +2809,23 @@ 자세히 src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2786,11 +2835,11 @@ 데이터 불러오기 실패. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2798,7 +2847,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2810,6 +2859,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool 채굴풀 @@ -2852,9 +2909,8 @@ latest-blocks.mined - - Reward - 보상 + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2863,6 +2919,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + 보상 + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2878,7 +2947,7 @@ 수수료 src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2895,11 +2964,11 @@ 트랜잭션 src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2915,7 +2984,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2992,7 +3061,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3152,7 +3221,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3165,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3178,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3192,7 +3261,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3494,15 +3563,6 @@ documentation.title - - Fee span - 수수료 범위 - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks 멤풀 블록 스택 @@ -3767,11 +3827,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3941,7 +4005,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3955,7 +4019,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3985,9 +4049,8 @@ mining.rewards-desc - - Reward Per Tx - 트랜잭션당 보상 + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3996,42 +4059,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - 지난 144 블록의 트랜잭션당 평균 채굴자 보상 + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - 평균 수수료 + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4051,11 +4099,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + 트랜잭션당 보상 + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4064,7 +4135,7 @@ 검색 src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4086,7 +4157,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4323,16 +4394,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed 컨펌되지 않음 src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4342,11 +4431,11 @@ 처음으로 감지됨 src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4376,7 +4465,7 @@ 컨펌까지 남은 예상시간 src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4386,7 +4475,7 @@ 몇 시간 후 (또는 그 이상) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4396,7 +4485,11 @@ 자손 src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4406,7 +4499,7 @@ 조상 src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4415,11 +4508,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4428,7 +4521,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4436,7 +4529,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4444,7 +4545,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4452,7 +4557,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4461,7 +4566,7 @@ 잠금 시간 src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4470,7 +4575,7 @@ 트랜잭션을 찾을 수 없음 src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4479,7 +4584,7 @@ 멤풀에 포함될때까지 대기하는 중... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4488,7 +4593,7 @@ 유효 수수료율 src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4498,7 +4603,7 @@ 코인베이스 src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4507,7 +4612,7 @@ (새로 채굴된 코인들) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4516,7 +4621,7 @@ 페그 인 src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4525,7 +4630,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4535,7 +4640,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4545,7 +4650,7 @@ 증인 (디지털 서명) src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4554,7 +4659,7 @@ P2SH 사용 스크립트 src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4563,7 +4668,7 @@ P2TR 탭 스크립트 src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4572,7 +4677,7 @@ P2WSH 증인 스크립트 src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4581,7 +4686,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4590,7 +4695,7 @@ 이전 아웃풋 스크립트 src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4599,7 +4704,7 @@ 이전 아웃풋 유형 src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4608,7 +4713,7 @@ 로 페그아웃 src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4617,7 +4722,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4627,20 +4732,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - 모두 보기를 선택하여 수수료 데이터 표시 + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4661,7 +4773,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4669,7 +4785,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4741,6 +4861,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4760,12 +4884,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot 이 거래는 탭루트를 사용하고 있습니다 src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4773,7 +4905,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4782,11 +4914,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4796,7 +4928,7 @@ 이 트랜잭션은 RBF (Replace-By-Fee)를 지원하지 않으며이 방법을 사용하여 수수료 범핑을(fee bumping) 할 수 없습니다. src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4869,7 +5001,7 @@ 최소 수수료 src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4879,7 +5011,7 @@ 퍼징 src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4889,7 +5021,7 @@ 멤풀 메모리 사용량 src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4899,7 +5031,7 @@ 유통 중인 L-BTC src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4907,7 +5039,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4916,11 +5048,11 @@ 엔드포인트 src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4929,11 +5061,11 @@ 설명 src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4941,7 +5073,7 @@ 기본 푸시: 작업: 'want', 데이터 : [ 'blocks', ...] 을 사용하여 푸시하려는 것을 표시할 수 있습니다. 사용 가능: blocks, mempool-blocks, live-2h-chart, 및stats.주소와 관련된 트랜잭션을 푸시:’track-address’: ‘3PbJ…bF9B’을 사용하여 인풋 또는 아웃풋 주소를 포함한 새로운 트랜잭션을 받을 수 있습니다. 트랜잭션들은 행렬로 반환합니다. 새로운 트랜잭션일 경우address-transactions이고, 새롭게 컨펌된 트랜잭션일 경우block-transactions입니다. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4989,7 +5121,7 @@ 자주 묻는 질문들 src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4997,18 +5129,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5020,7 +5156,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5030,13 +5166,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5044,7 +5184,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5052,7 +5192,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5060,7 +5200,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5068,7 +5208,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5076,7 +5216,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5084,7 +5224,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5092,14 +5232,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5120,7 +5278,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5136,7 +5294,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5156,7 +5314,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5252,7 +5410,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5264,7 +5422,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5300,11 +5458,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5312,7 +5478,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5395,11 +5561,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5581,10 +5747,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5787,6 +5949,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5815,7 +5985,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5867,31 +6037,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5899,7 +6057,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5911,15 +6069,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5927,7 +6151,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5935,7 +6159,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5980,8 +6204,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6223,6 +6447,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.lt.xlf b/frontend/src/locale/messages.lt.xlf index af60721b5..26751732f 100644 --- a/frontend/src/locale/messages.lt.xlf +++ b/frontend/src/locale/messages.lt.xlf @@ -6,15 +6,14 @@ Uždaryti node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Skaidrė + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Ankstesnis node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Kitas node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Pasirinkite mėnesį node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Pasirinkite metus node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Ankstesnis mėnuo node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Kitas mėnuo node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Pirmas node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Ankstesnis node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Kitas node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Paskutinis node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ VV node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Valandos node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minutės node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Padidinti valandas node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Sumažinti valandas node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Padidinti minutes node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Sumažinti minutes node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Sekundės node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Padidinti sekundes node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Sumažinti sekundes node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Uždaryti node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Iš viso gauta src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Iš viso išsiųsta src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Likutis src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ operacija src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ operacijos src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Operacija src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Bendruomenės aljansai src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Projekto vertėjai src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Projekto pagalbininkai src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Projekto nariai src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Projekto prižiūrėtojai src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Multiparašas src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Konfidencialu src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ operacijos src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ operacijų src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Įkeliant adreso duomenis įvyko klaida. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Šiuo adresu yra daug operacijų, daugiau nei gali parodyti jūsų vidinė sistema. Žr. daugiau apie , kaip nustatyti galingesnę vidinę sistemą . Patikrinkite šį adresą oficialioje „Mempool“ svetainėje: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ Pavadinimas src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Tikslumas src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Emitentas src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ Išdavimo TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Prisegta src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Išsegta src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Sudeginta src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Apyvartoje cirkuliuojantis kiekis src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ Prisegimo/išsegimo ir deginimo operacijos src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Išdavimo ir deginimo operacijos src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Įkeliant lėšų duomenis įvyko klaida. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Blokas - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Šablonas vs Iškasimą - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Dydis - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Svoris - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Atitikties rodiklis - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Trūkstamos txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Pridėtos txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Trūksta - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Pridėta - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Bloko mokesčių tarifai @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Mokestis @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Pridėta + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Blokų mumatymo tikslumas @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Dydis + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Svoris + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Blokas @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Nežinoma + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Mokesčio intervalas + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Remiantis vidutine 140 vBaitų 'native segwit' operacija src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Subsidija + mokesčiai: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bitai src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ Merkle šaknis src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Sudėtingumas src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Noncas src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Bloko antraštės Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Detalės src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Įkeliant duomenis įvyko klaida. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pulas @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Atlygis + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Atlygis + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ Mokesčiai src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - Mokesčio intervalas - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks mempool blokų krūva @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - Atlygis už Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Vidutinis gavybos atlygis už operaciją per pastaruosius 144 blokus + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Vidutinis mokestis + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Atlygis už Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Tyrinėkite visą Bitkoino ekosistemą src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Ieškoti src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Nepatvirtinta src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ Pirmą kartą pamatytas src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ Tikimasi src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ Po kelių valandų (ar daugiau) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Palikuonis src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Protėvis src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ Srautas src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ Slėpti diagramą src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ Rodyti daugiau src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ Rodyti mažiau src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ Rodyti diagramą src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ Užrakinimo laikas src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ Operacija nerasta. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ Laukiama pasirodymo atmintinėje... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ Efektyvus mokesčio tarifas src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Monetų bazė src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (Naujai Sugeneruotos Monetos) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ Prisegimas src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Liudytojas src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ P2SH išpirkimo skriptas src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR tapskriptas src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ P2WSH liudininko skriptas src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ Ankstesnis išvesties skriptas src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ Ankstesnis išvesties tipas src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ Atsegti į src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Rodyti visas įvestis, kad būtų atskleisti mokesčių duomenys + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs kitos įvestys @@ -4707,7 +4814,11 @@ Įvestis src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ Išvestis src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Ši operacija naudoja Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ Ši operacija palaiko „Replace-By-Fee“ (RBF), leidžiančią pridėti mokesčius src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ Ši operacija nepalaiko "Replace-By-Fee" (RBF) ir negali būti paspartinta naudojant šį metodą. src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ Minimalus mokestis src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ Valymas src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ Atminties naudojimas src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ L-BTC apyvartoje src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ REST API paslauga src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Galutinis taškas src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ Apibūdinimas src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ Numatytasis siuntimas: veiksmas: 'want', duomenys: ['blocks', ...] , kad išreikštumėte tai, ką norite pastūmėti. Galimi: blokai , mempool blokai , realaus laiko-2val grafikas , ir statistika . Pastūmėti operacijas susietas su adresu: 'track-address': '3PbJ...bF9B' priimti visas naujas operacijas susietas su adresu kaip įvestis ar išvestis. Pateikiama kaip operacijų rinkinys. adreso-operacijosnaujoms mempool operacijoms, ir bloko operacijosnaujoms bloke patvirtintoms operacijoms. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ DUK src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ Bazės mokestis src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ Šis kanalas palaiko nulinio bazinio mokesčio maršrutą src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ Nulinis bazinis mokestis src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ Šis kanalas nepalaiko nulinio bazinio mokesčio src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ Nenulinis bazinis mokestis src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ Min. HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ Maks HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ Laiko užrakto delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ kanalai src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel žaibatinklio kanalas @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Atidarymo operacija src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ Uždarymo operacija src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Praėjusios savaitės procentinis pokytis @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - Nežinoma + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Spalva src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ IPT src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ Tik Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Atviri kanalai src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ Uždaryti kanalai src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ Mazgas: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - Vyksta indeksavimas + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes 100 seniausių žaibatinklio mazgų diff --git a/frontend/src/locale/messages.mk.xlf b/frontend/src/locale/messages.mk.xlf index 435d7582b..61ffc6a69 100644 --- a/frontend/src/locale/messages.mk.xlf +++ b/frontend/src/locale/messages.mk.xlf @@ -6,14 +6,14 @@ Затвори node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -22,7 +22,7 @@ Претходен node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -30,7 +30,7 @@ Наредно node_modules/src/carousel/carousel.ts - 195 + 227 @@ -38,11 +38,11 @@ Избери месец node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -50,11 +50,11 @@ Избери година node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -62,11 +62,11 @@ Претходен месец node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -74,11 +74,11 @@ Нареден месец node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -86,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -94,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -102,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -110,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -118,7 +118,7 @@ Прв node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -126,7 +126,7 @@ Претходен node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -134,7 +134,7 @@ Наредно node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -142,14 +142,14 @@ Последно node_modules/src/pagination/pagination.ts - 354 + 269,271 - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -157,7 +157,7 @@ ЧЧ node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -165,7 +165,7 @@ Часови node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -173,7 +173,7 @@ ММ node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -181,7 +181,7 @@ Минути node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -189,7 +189,7 @@ Зголеми часови node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -197,7 +197,7 @@ Намали часови node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -205,7 +205,7 @@ Зголеми минути node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -213,7 +213,7 @@ Намали минути node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -221,7 +221,7 @@ СС node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -229,7 +229,7 @@ Секунди node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -237,7 +237,7 @@ Зголеми секунди node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -245,21 +245,21 @@ Намали секунди node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -267,7 +267,7 @@ Затвори node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -292,15 +292,15 @@ Вкупно примено src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -309,7 +309,7 @@ Вкупно испратено src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -317,11 +317,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -330,15 +330,15 @@ Состојба src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -347,7 +347,7 @@ трансакција src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -355,11 +355,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -372,7 +372,7 @@ трансакции src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -380,11 +380,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -420,10 +420,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -445,10 +441,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -471,7 +463,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -561,19 +553,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -782,15 +770,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -804,11 +792,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -946,7 +934,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1027,7 +1015,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1045,11 +1033,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1061,11 +1049,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1074,7 +1062,7 @@ Трансакција src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1090,7 +1078,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1107,11 +1099,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1129,11 +1121,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1147,7 +1139,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1161,11 +1153,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1193,11 +1185,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1214,11 +1206,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1232,11 +1224,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1256,7 +1248,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1272,7 +1264,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1476,7 +1468,7 @@ Соработка со Заедницата src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1484,7 +1476,7 @@ Project Translators src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1493,7 +1485,7 @@ Контрибутори src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1502,7 +1494,7 @@ Членови на проектот src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1511,7 +1503,7 @@ Одржувачи на проектот src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1539,7 +1531,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1551,7 +1543,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1560,11 +1552,11 @@ Доверливо src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1576,7 +1568,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1584,15 +1576,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1612,7 +1604,7 @@ of transaction src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1620,7 +1612,7 @@ of transactions src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1629,7 +1621,7 @@ Грешка во вчитување податоци за адресата. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1637,7 +1629,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1656,7 +1648,7 @@ Име src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1677,7 +1669,7 @@ Прецизност src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1687,7 +1679,7 @@ Издавач src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1697,7 +1689,7 @@ Издавачка TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1707,7 +1699,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1717,7 +1709,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1727,7 +1719,7 @@ Уништен износ src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1737,11 +1729,11 @@ Во оптег src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1751,7 +1743,7 @@ од   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1760,7 +1752,7 @@ Peg In/Out и Ликвидирачки Трансакции src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1769,7 +1761,7 @@ Издавачки и Ликвидирачки Трансакции src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1778,7 +1770,7 @@ Грешка во вчитување на податоци за средството. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2012,140 +2004,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Големина - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Тежина - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates @@ -2243,6 +2101,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Провизија @@ -2256,11 +2122,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2282,11 +2148,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2300,15 +2166,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2334,19 +2200,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2386,31 +2252,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2424,15 +2294,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2455,6 +2377,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2499,6 +2425,74 @@ mining.block-sizes-weights + + Size + Големина + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Тежина + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2528,11 +2522,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2549,19 +2539,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2579,11 +2561,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2596,7 +2574,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2621,16 +2599,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Оспег на провизии + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Базирано на просечна segwit трансакција од 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2659,29 +2682,53 @@ Награда + провизија: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Битови src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2690,7 +2737,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2699,7 +2746,7 @@ Сложеност src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2728,7 +2775,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2737,7 +2784,7 @@ Хекс од заглавието на блокот src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2746,19 +2793,23 @@ Детали src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2767,11 +2818,11 @@ Error loading data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2779,7 +2830,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2791,6 +2842,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool @@ -2832,8 +2891,8 @@ latest-blocks.mined - - Reward + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2842,6 +2901,18 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2856,7 +2927,7 @@ Fees src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2873,11 +2944,11 @@ Трансакции src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2893,7 +2964,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2967,7 +3038,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3119,7 +3190,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3132,7 +3203,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3145,7 +3216,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3159,7 +3230,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3452,15 +3523,6 @@ documentation.title - - Fee span - Оспег на провизии - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Збир од mempool блокови @@ -3712,11 +3774,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3877,7 +3943,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3890,7 +3956,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3918,8 +3984,8 @@ mining.rewards-desc - - Reward Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3928,39 +3994,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -3979,11 +4033,32 @@ mining.average-fee + + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -3992,7 +4067,7 @@ Пребарувај src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4014,7 +4089,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4251,16 +4326,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Не е потврдена src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4270,11 +4363,11 @@ Пратена src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4304,7 +4397,7 @@ Потврдена src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4314,7 +4407,7 @@ За неколку часа (или повеќе) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4324,7 +4417,11 @@ Наследник src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4334,7 +4431,7 @@ Претходник src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4343,11 +4440,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4356,7 +4453,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4364,7 +4461,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4372,7 +4477,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4380,7 +4489,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4389,7 +4498,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4398,7 +4507,7 @@ Трансакцијата не е пронајдена src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4407,7 +4516,7 @@ Се чека да се појави во mempool-от... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4416,7 +4525,7 @@ Ефективна профизија src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4426,7 +4535,7 @@ Ковачница src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4435,7 +4544,7 @@ (Ново создадени монети) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4444,7 +4553,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4453,7 +4562,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4463,7 +4572,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4473,7 +4582,7 @@ Сведок src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4482,7 +4591,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4490,7 +4599,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4499,7 +4608,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4508,7 +4617,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4517,7 +4626,7 @@ Претходни излезни скрипти src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4526,7 +4635,7 @@ Претходен тип на излезот src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4535,7 +4644,7 @@ Peg-out кон src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4544,7 +4653,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4554,19 +4663,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4587,7 +4704,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4595,7 +4716,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4667,6 +4792,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4686,12 +4815,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Оваа трансакција користи Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4699,7 +4836,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4708,11 +4845,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4722,7 +4859,7 @@ Оваа трансакција нема подршка за Replace-By-Fee (RBF) и провизијата не може да биде зголемена користејќи го овој метод src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4795,7 +4932,7 @@ Минимум src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4805,7 +4942,7 @@ Отфрлање src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4815,7 +4952,7 @@ Искористена меморија src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4825,7 +4962,7 @@ L-BTC во циркулација src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4833,7 +4970,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4842,11 +4979,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4855,11 +4992,11 @@ Опис src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4867,7 +5004,7 @@ Објавување: action: 'want', data: ['blocks', ...] за да специфираш што да биде објавено. Достапни полиња: blocks, mempool-blocks, live-2h-chart, и stats.Објави трансакции поврзани со адресса: 'track-address': '3PbJ...bF9B' за да ги добиеш сите нови трансакции што ја содржат таа адреса како влез или излез. Враќа низа од транссакции. address-transactions за нови трансакции во mempool-от, и block-transactions за поврдени трансакции во најновиот блок. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4914,7 +5051,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4922,18 +5059,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -4945,7 +5086,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -4955,13 +5096,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -4969,7 +5114,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -4977,7 +5122,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -4985,7 +5130,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -4993,7 +5138,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5001,7 +5146,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5009,7 +5154,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5017,14 +5162,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5045,7 +5208,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5061,7 +5224,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5081,7 +5244,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5177,7 +5340,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5189,7 +5352,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5225,11 +5388,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5237,7 +5408,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5320,11 +5491,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5506,10 +5677,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5712,6 +5879,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5740,7 +5915,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5792,31 +5967,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5824,7 +5987,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5836,15 +5999,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5852,7 +6081,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5860,7 +6089,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5905,8 +6134,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6148,6 +6377,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.nb.xlf b/frontend/src/locale/messages.nb.xlf index 680d0a68d..1d68252a2 100644 --- a/frontend/src/locale/messages.nb.xlf +++ b/frontend/src/locale/messages.nb.xlf @@ -6,15 +6,14 @@ Lukk node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Side av + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Forrige node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Neste node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Velg måned node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Velg år node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Forrige måned node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Neste måned node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Første node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Forrige node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Neste node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Siste node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ TT node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Timer node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minutter node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Øk timer node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Reduser timer node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Øk minutter node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Reduser minutter node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Sekunder node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Øk sekunder node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Reduser sekunder node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Lukk node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Totalt mottatt src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Totalt sendt src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Balanse src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transaksjon src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transaksjoner src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transaksjon src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Samfunnsallianser src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Oversettere src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Bidragsytere til prosjektet src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Prosjektmedlemmer src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Prosjektvedlikeholdere src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Konfidensielt src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ av transaksjon src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ av transaksjoner src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Lasting av adressedata feilet. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ Det er mangen transaksjoner på denne adressen, mer enn bakenden din kan håndtere. Se mer på sette opp en bedre bakende.Vurder å se denne adressen på den offisielle Mempool-nettsiden i stedet: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Navn src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Presisjon src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Utsteder src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ Utstedelse TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Pegged inn src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Pegged ut src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Beløp som er brent src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Sirkulerende beløp src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ av src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Peg inn / ut og brenn transaksjoner src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Utstedelse og forbrennings transaksjoner src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Lasting av ressursdata feilet. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Størrelse - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Vekt - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Blokkavgiftsrater @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Avgift @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Blokkprediksjonsnøyaktighet @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + Størrelse + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Vekt + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Avgiftsintervall + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Basert på gjennomsnittlig native segwit-transaksjon på 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ Subsidie + avgifter: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ Merklerot src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ Vanskelighetsgrad src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ Blokkheader Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ Detaljer src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ Lasting av data feilet. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Gruppe @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - Belønning + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Belønning + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ Avgifter src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - Avgiftsintervall - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Stabel med mempoolblokker @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - Belønning per tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Gjennomsnittlig utvinnerbelønning per transaksjon i de siste 144 blokkene + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Gjennomsnittlig avgift + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Belønning per tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ Søk src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Ubekreftet src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ Først sett src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ Om flere timer(eller mer) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ Etterkommer src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ Forfader src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ Transaksjon ikke funnet src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ Venter på at den kommer inn i mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ Effektiv avgift src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (Nygenererte Mynter) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ Peg-inn src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig(ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig(HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ Forrige utgangs-script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ Tidligere utdatatype src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ Peg-out til src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Vis all inputdata for å se avgiftsinformasjon + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Denne transaksjonen bruker Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ Denne transaksjonen støtter IKKE Replace-By-Fee (RBF), avgiften kan derfor ikke endres. src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ Minimumsavgift src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ Fjerner src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ Minnebruk src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ L-BTC i omløp src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ REST API-tjeneste src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ Endepunkt src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ Beskrivelse src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ Standard push: handling: 'want', data: ['blocks', ...] for å uttrykke hva du vil ha pushet. Tilgjengelig: blocks , mempool-blocks , live-2h-chart , og stats . Push-transaksjoner relatert til adresse: 'track-address': '3PbJ...bF9B' for å motta alle nye transaksjoner som inneholder den adressen som inngang eller utgang. Returnerer en tabell av transaksjoner. adress-transactions for nye mempool-transaksjoner, og block-transactions for nye blokkbekreftede transaksjoner. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.ne.xlf b/frontend/src/locale/messages.ne.xlf new file mode 100644 index 000000000..92be31844 --- /dev/null +++ b/frontend/src/locale/messages.ne.xlf @@ -0,0 +1,6744 @@ + + + + + Close + बन्द + + node_modules/src/alert/alert.ts + 47,48 + + + + Slide of + + node_modules/src/carousel/carousel.ts + 175,181 + + Currently selected slide number read by screen reader + + + Previous + अघिल्लो + + node_modules/src/carousel/carousel.ts + 206,207 + + + + Next + अर्को + + node_modules/src/carousel/carousel.ts + 227 + + + + Select month + महिना छान्नुहोस + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + + Select year + वर्ष छान्नुहोस + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + node_modules/src/datepicker/datepicker-navigation-select.ts + 50,51 + + + + Previous month + अघिल्लो महिना + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + + Next month + अर्को महिना + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + node_modules/src/datepicker/datepicker-navigation.ts + 60,63 + + + + «« + «« + + node_modules/src/pagination/pagination.ts + 269,270 + + + + « + « + + node_modules/src/pagination/pagination.ts + 269,270 + + + + » + » + + node_modules/src/pagination/pagination.ts + 269,270 + + + + »» + »» + + node_modules/src/pagination/pagination.ts + 269,270 + + + + First + पहिलो + + node_modules/src/pagination/pagination.ts + 269,271 + + + + Previous + अघिल्लो + + node_modules/src/pagination/pagination.ts + 269,271 + + + + Next + अर्को + + node_modules/src/pagination/pagination.ts + 269,271 + + + + Last + अन्तिम + + node_modules/src/pagination/pagination.ts + 269,271 + + + + + + node_modules/src/progressbar/progressbar.ts + 30,33 + + + + HH + एचएच + + node_modules/src/timepicker/timepicker.ts + 226 + + + + Hours + घण्टा + + node_modules/src/timepicker/timepicker.ts + 247,250 + + + + MM + एम्एम् + + node_modules/src/timepicker/timepicker.ts + 272,274 + + + + Minutes + मिनेट + + node_modules/src/timepicker/timepicker.ts + 288,289 + + + + Increment hours + घण्टा बढाउनुहोस् + + node_modules/src/timepicker/timepicker.ts + 305,309 + + + + Decrement hours + घण्टा घटाउनुहोस् + + node_modules/src/timepicker/timepicker.ts + 334,337 + + + + Increment minutes + मिनेट बढाउनुहोस् + + node_modules/src/timepicker/timepicker.ts + 356,358 + + + + Decrement minutes + मिनेट घटाउनुहोस् + + node_modules/src/timepicker/timepicker.ts + 383,384 + + + + SS + एसएस + + node_modules/src/timepicker/timepicker.ts + 410 + + + + Seconds + सेकेन्ड + + node_modules/src/timepicker/timepicker.ts + 429 + + + + Increment seconds + सेकेन्ड बढाउनुहोस् + + node_modules/src/timepicker/timepicker.ts + 429 + + + + Decrement seconds + सेकेन्ड घटाउनुहोस् + + node_modules/src/timepicker/timepicker.ts + 429 + + + + + + + node_modules/src/timepicker/timepicker.ts + 429 + + + + + + + node_modules/src/timepicker/timepicker.ts + 429 + + + + Close + बन्द + + node_modules/src/toast/toast.ts + 74,75 + + + + Address + ठेगाना + + src/app/bisq/bisq-address/bisq-address.component.html + 2 + + + src/app/components/address/address-preview.component.html + 3 + + + src/app/components/address/address.component.html + 3 + + shared.address + + + Total received + कुल प्राप्त + + src/app/bisq/bisq-address/bisq-address.component.html + 20 + + + src/app/components/address/address-preview.component.html + 22 + + + src/app/components/address/address.component.html + 30 + + address.total-received + + + Total sent + कुल पठाइयो + + src/app/bisq/bisq-address/bisq-address.component.html + 24 + + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 14,15 + + + src/app/components/address/address-preview.component.html + 26 + + + src/app/components/address/address.component.html + 34 + + address.total-sent + + + Balance + शेष + + src/app/bisq/bisq-address/bisq-address.component.html + 28 + + + src/app/components/address/address-preview.component.html + 31 + + + src/app/components/address/address.component.html + 39 + + address.balance + + + transaction + ट्रांसेक्शन + + src/app/bisq/bisq-address/bisq-address.component.html + 48 + + + src/app/bisq/bisq-block/bisq-block.component.html + 51 + + + src/app/components/block/block.component.html + 290,291 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 26,27 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 21,22 + + shared.transaction-count.singular + + + transactions + ट्रांसेक्शनहरू + + src/app/bisq/bisq-address/bisq-address.component.html + 49 + + + src/app/bisq/bisq-block/bisq-block.component.html + 52 + + + src/app/components/block/block.component.html + 291,292 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 27,28 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 22,23 + + shared.transaction-count.plural + + + Address: + ठेगाना + + src/app/bisq/bisq-address/bisq-address.component.ts + 43 + + + + Block + ब्लक + + src/app/bisq/bisq-block/bisq-block.component.html + 4 + + shared.block-title + + + Hash + ह्यास + + src/app/bisq/bisq-block/bisq-block.component.html + 19 + + + src/app/bisq/bisq-block/bisq-block.component.html + 82 + + + src/app/components/block/block.component.html + 40,41 + + block.hash + + + Timestamp + समय चिन्ह / समय छाप + + src/app/bisq/bisq-block/bisq-block.component.html + 23 + + + src/app/bisq/bisq-block/bisq-block.component.html + 86 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 34,36 + + + src/app/components/block/block-preview.component.html + 26,28 + + + src/app/components/block/block.component.html + 44,46 + + + src/app/components/blocks-list/blocks-list.component.html + 15,16 + + + src/app/components/pool/pool.component.html + 213,215 + + + src/app/components/pool/pool.component.html + 260,262 + + + src/app/components/transaction/transaction.component.html + 56,58 + + block.timestamp + + + Previous hash + अघिल्लो ह्यास + + src/app/bisq/bisq-block/bisq-block.component.html + 37 + + + src/app/bisq/bisq-block/bisq-block.component.html + 95 + + Transaction Previous Hash + block.previous_hash + + + Block : + ब्लक : + + src/app/bisq/bisq-block/bisq-block.component.ts + 89 + + + + BSQ Blocks + BSQ ब्लकहरू + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 2,7 + + Bisq blocks header + + + Height + ऊचाई + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 12,14 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 22,24 + + + src/app/components/blocks-list/blocks-list.component.html + 12,13 + + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 5,7 + + + src/app/components/pool/pool.component.html + 212,214 + + + src/app/components/pool/pool.component.html + 259,261 + + + src/app/dashboard/dashboard.component.html + 87,88 + + Bisq block height header + + + Confirmed + पक्का / पुष्टि + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 13,15 + + Bisq block confirmed time header + + + Transactions + ट्रांसेक्शन + + src/app/bisq/bisq-blocks/bisq-blocks.component.html + 15,18 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 81 + + + src/app/components/address/address-preview.component.html + 35 + + + src/app/components/bisq-master-page/bisq-master-page.component.html + 63,65 + + + src/app/components/blocks-list/blocks-list.component.html + 24,25 + + + src/app/components/mempool-block/mempool-block.component.html + 28,32 + + Bisq block transactions title + + + Blocks + ब्लकहरू + + src/app/bisq/bisq-blocks/bisq-blocks.component.ts + 38 + + + src/app/components/bisq-master-page/bisq-master-page.component.html + 66,68 + + + src/app/components/blocks-list/blocks-list.component.html + 4,7 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 68,70 + + + src/app/components/master-page/master-page.component.html + 49,51 + + + src/app/components/pool-ranking/pool-ranking.component.html + 94,96 + + + + Bisq Trading Volume + Bisq ट्रेडिंग मात्रा + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 3,7 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 48,50 + + Bisq markets title + + + Markets + बजार + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 20,21 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 66,67 + + Bisq All Markets + + + Bitcoin Markets + बिटकॉइन बजार + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 21,24 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 67,71 + + Bisq Bitcoin Markets + + + Currency + मुद्रा + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 27 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 73 + + + + Price + मूल्य + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 28,29 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 74,75 + + + src/app/bisq/bisq-market/bisq-market.component.html + 79,80 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 36 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 78 + + + src/app/bisq/bisq-trades/bisq-trades.component.html + 5,6 + + + + Volume (7d) + मात्रा (7 दिन) + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 29 + + Trading volume 7D + + + Trades (7d) + ट्रेड्स (7 दिन) + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 30 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 75 + + Trades amount 7D + + + Latest Trades + भर्खरका ट्रेड्सहरू + + src/app/bisq/bisq-dashboard/bisq-dashboard.component.html + 52,56 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 99,101 + + + src/app/bisq/bisq-market/bisq-market.component.html + 59,61 + + Latest Trades header + + + Bisq Price Index + बिस्क मूल्य इंडेक्स + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 9,11 + + bisq-dashboard.price-index-title + + + Bisq Market Price + बिस्क बजार इंडेक्स + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 21,23 + + bisq-dashboard.market-price-title + + + View more » + अरु पनि हेर्नुहोस् + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 92,97 + + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 101,108 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 33 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 43 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 40 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 52 + + dashboard.view-more + + + Terms of Service + सेवाका सर्तहरु + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 111,113 + + + src/app/components/about/about.component.html + 385,389 + + + src/app/dashboard/dashboard.component.html + 150,152 + + + src/app/docs/docs/docs.component.html + 51 + + Terms of Service + shared.terms-of-service + + + Privacy Policy + गोपनीयता नीति + + src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html + 113,120 + + + src/app/dashboard/dashboard.component.html + 152,154 + + + src/app/docs/docs/docs.component.html + 53 + + Privacy Policy + shared.privacy-policy + + + Buy Offers + किन्ने प्रस्तावहरू + + src/app/bisq/bisq-market/bisq-market.component.html + 73,74 + + Bisq Buy Offers + + + Sell Offers + बेच्ने प्रस्तावहरू + + src/app/bisq/bisq-market/bisq-market.component.html + 74,77 + + Bisq Sell Offers + + + Amount () + रकम () + + src/app/bisq/bisq-market/bisq-market.component.html + 112,113 + + + src/app/bisq/bisq-trades/bisq-trades.component.html + 46,47 + + Trade amount (Symbol) + + + BSQ statistics + BSQ तथ्याङ्क + + src/app/bisq/bisq-stats/bisq-stats.component.html + 2 + + + src/app/bisq/bisq-stats/bisq-stats.component.ts + 28 + + BSQ statistics header + + + Existing amount + विद्यमान रकम + + src/app/bisq/bisq-stats/bisq-stats.component.html + 12 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 54 + + BSQ existing amount + + + Minted amount + मिन्ट गरिएको रकम + + src/app/bisq/bisq-stats/bisq-stats.component.html + 16 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 58 + + BSQ minted amount + + + Burnt amount + बर्न गरिसकेको रकम + + src/app/bisq/bisq-stats/bisq-stats.component.html + 20 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 62 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 64,66 + + + src/app/bisq/bisq-transfers/bisq-transfers.component.html + 68 + + BSQ burnt amount + + + Addresses + ठेगानाहरू + + src/app/bisq/bisq-stats/bisq-stats.component.html + 24 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 66 + + + src/app/components/pool/pool.component.html + 39,40 + + + src/app/components/pool/pool.component.html + 63,65 + + + src/app/components/pool/pool.component.html + 337,339 + + + src/app/components/pool/pool.component.html + 348,351 + + BSQ addresses + + + Unspent TXOs + खर्च नगरिएको TXOs + + src/app/bisq/bisq-stats/bisq-stats.component.html + 28 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 70 + + + src/app/components/address/address-preview.component.html + 39 + + BSQ unspent transaction outputs + + + Spent TXOs + खर्च गरिएको TXOs + + src/app/bisq/bisq-stats/bisq-stats.component.html + 32 + + BSQ spent transaction outputs + + + Market cap + बजार क्याप + + src/app/bisq/bisq-stats/bisq-stats.component.html + 40 + + + src/app/bisq/bisq-stats/bisq-stats.component.html + 82 + + BSQ token market cap + + + Date + मिति + + src/app/bisq/bisq-trades/bisq-trades.component.html + 4,6 + + + + Amount + रकम + + src/app/bisq/bisq-trades/bisq-trades.component.html + 9,12 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 20,21 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 18 + + + src/app/dashboard/dashboard.component.html + 124,125 + + + + Inputs + इनपुट + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 7 + + transaction.inputs + + + Outputs + आउटपुट + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 11 + + transaction.outputs + + + Issued amount + जारी गरिएको रकम + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 15 + + + src/app/components/asset/asset.component.html + 45 + + Liquid Asset issued amount + asset.issued-amount + + + Type + प्रकार + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 25 + + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 19,21 + + + src/app/components/transaction/transaction.component.html + 158,160 + + + src/app/components/transactions-list/transactions-list.component.html + 260,262 + + + + Version + रुपान्तर + + src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html + 29 + + + src/app/components/block/block.component.html + 246,247 + + + src/app/components/transaction/transaction.component.html + 288,290 + + transaction.version + + + Transaction + ट्रांसेक्शन + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 6,11 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 111,117 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 12 + + + src/app/components/transaction/transaction-preview.component.html + 3 + + + src/app/components/transaction/transaction.component.html + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 + + shared.transaction + + + confirmation + पुष्टिकरण + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 20,21 + + + src/app/bisq/bisq-transfers/bisq-transfers.component.html + 75,76 + + + src/app/components/transaction/transaction.component.html + 31,32 + + + src/app/components/transactions-list/transactions-list.component.html + 294,295 + + Transaction singular confirmation count + shared.confirmation-count.singular + + + confirmations + पुष्टिकरणहरू + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 21,22 + + + src/app/bisq/bisq-transfers/bisq-transfers.component.html + 76,77 + + + src/app/components/transaction/transaction.component.html + 32,33 + + + src/app/components/transactions-list/transactions-list.component.html + 295,296 + + Transaction plural confirmation count + shared.confirmation-count.plural + + + Included in block + ब्लकमा समावेश + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 43,45 + + + src/app/components/transaction/transaction.component.html + 65,67 + + Transaction included in block + transaction.included-in-block + + + Features + विशेषताहरु + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 49,51 + + + src/app/components/transaction/transaction.component.html + 77,80 + + + src/app/components/transaction/transaction.component.html + 135,138 + + Transaction features + transaction.features + + + Fee per vByte + शुल्क प्रति vByte + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 69,71 + + Transaction fee + transaction.fee-per-vbyte + + + Details + विवरण + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 89,92 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 155,159 + + + src/app/components/transaction/transaction.component.html + 262,267 + + + src/app/components/transaction/transaction.component.html + 406,412 + + transaction.details + + + Inputs & Outputs + इनपुट र आउटपुट + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 97,105 + + + src/app/bisq/bisq-transaction/bisq-transaction.component.html + 179,185 + + + src/app/components/transaction/transaction.component.html + 249,253 + + + src/app/components/transaction/transaction.component.html + 377,383 + + Transaction inputs and outputs + transaction.inputs-and-outputs + + + Transaction: + ट्रांसेक्शन: + + src/app/bisq/bisq-transaction/bisq-transaction.component.ts + 50 + + + src/app/components/transaction/transaction-preview.component.ts + 88 + + + src/app/components/transaction/transaction.component.ts + 241,240 + + + + BSQ Transactions + BSQ ट्रांसेक्शनहरू + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 2,5 + + + + TXID + TXID + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 18,19 + + + src/app/components/transaction/transaction.component.html + 159,160 + + + src/app/dashboard/dashboard.component.html + 123,125 + + + + Confirmed + पक्का / पुष्टि + + src/app/bisq/bisq-transactions/bisq-transactions.component.html + 21,24 + + + src/app/components/transaction/transaction.component.html + 72,73 + + Transaction Confirmed state + transaction.confirmed + + + Asset listing fee + एसेट लिस्टिंग शुल्क + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 31 + + + + Blind vote + अन्धो भोट + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 32 + + + + Compensation request + क्षतिपूर्ति अनुरोध + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 33 + + + + Genesis + शुरुवात + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 34 + + + src/app/components/block/block-preview.component.html + 10,11 + + + src/app/components/block/block.component.html + 6,8 + + + + Irregular + अनियमित + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 35 + + + + Lockup + तालाबन्दी + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 36 + + + + Pay trade fee + ट्रेड शुल्क तिर्नुहोस् + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 37 + + + + Proof of burn + बर्न गरिएको प्रमाण + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 38 + + + + Proposal + प्रस्ताव + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 39 + + + + Reimbursement request + प्रतिपूर्ति अनुरोध + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 40 + + + + Transfer BSQ + BSQ ट्रान्सफर + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 41 + + + + Unlock + अनलक + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 42 + + + + Vote reveal + भोट प्रकट + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 43 + + + + Filter + फिल्टर + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 57,56 + + + + Select all + सबै छान्नु + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 58,56 + + + + Unselect all + कुनै पनि नछान्नु + + src/app/bisq/bisq-transactions/bisq-transactions.component.ts + 59 + + + + Trades + ट्रेडहरू + + src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts + 99 + + + + Volume + मात्रा + + src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts + 100 + + + + The Mempool Open Source Project + मेमपूल ओपन सोर्स प्रोजेक्ट + + src/app/components/about/about.component.html + 12,13 + + about.about-the-project + + + 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. + Bitcoin समुदायको लागि हाम्रो mempool र blockchain अन्वेषक, लेनदेन शुल्क बजार र बहु-तह इकोसिस्टममा ध्यान केन्द्रित गर्दै, कुनै पनि विश्वसनीय तेस्रो-पक्ष बिना पूर्ण रूपमा स्व-होस्ट गरिएको। + + src/app/components/about/about.component.html + 13,17 + + + + Enterprise Sponsors 🚀 + एंटरप्राइज़ प्रायोजक 🚀 + + src/app/components/about/about.component.html + 29,32 + + about.sponsors.enterprise.withRocket + + + Community Sponsors ❤️ + समुदाय प्रायोजक ❤️ + + src/app/components/about/about.component.html + 177,180 + + about.sponsors.withHeart + + + Community Integrations + समुदाय एकीकरण + + src/app/components/about/about.component.html + 191,193 + + about.community-integrations + + + Community Alliances + सामुदायिक गठबन्धनहरू + + src/app/components/about/about.component.html + 285,287 + + about.alliances + + + Project Translators + परियोजना अनुवादकहरू + + src/app/components/about/about.component.html + 301,303 + + about.translators + + + Project Contributors + परियोजना योगदानकर्ताहरू + + src/app/components/about/about.component.html + 315,317 + + about.contributors + + + Project Members + परियोजना सदस्यहरू + + src/app/components/about/about.component.html + 327,329 + + about.project_members + + + Project Maintainers + परियोजना संरक्षकहरू + + src/app/components/about/about.component.html + 340,342 + + about.maintainers + + + About + विवरण + + src/app/components/about/about.component.ts + 39 + + + src/app/components/bisq-master-page/bisq-master-page.component.html + 75,78 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 85,88 + + + src/app/components/master-page/master-page.component.html + 58,61 + + + + Multisig of + Multisig of + + src/app/components/address-labels/address-labels.component.ts + 107 + + + + Unconfidential + गोप्य नभएको + + src/app/components/address/address-preview.component.html + 15 + + + src/app/components/address/address.component.html + 21 + + address.unconfidential + + + Confidential + गोप्य + + src/app/components/address/address-preview.component.html + 55 + + + src/app/components/address/address.component.html + 153 + + + src/app/components/amount/amount.component.html + 6,9 + + + src/app/components/asset-circulation/asset-circulation.component.html + 2,4 + + + src/app/components/asset/asset.component.html + 161 + + + src/app/components/transaction/transaction-preview.component.html + 21 + + + src/app/components/transactions-list/transactions-list.component.html + 302,304 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 58 + + + src/app/dashboard/dashboard.component.html + 135,136 + + shared.confidential + + + Address: + ठेगानाहरू: + + src/app/components/address/address-preview.component.ts + 70 + + + src/app/components/address/address.component.ts + 78 + + + + of transaction + को ट्रांसेक्शन + + src/app/components/address/address.component.html + 59 + + X of X Address Transaction + + + of transactions + को ट्रांसेक्शनहरू + + src/app/components/address/address.component.html + 60 + + X of X Address Transactions (Plural) + + + Error loading address data. + डाटा लोड गर्दा त्रुटि। + + src/app/components/address/address.component.html + 129 + + address.error.loading-address-data + + + There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: + + src/app/components/address/address.component.html + 134,137 + + Electrum server limit exceeded error + + + Asset + एसेट + + src/app/components/asset/asset.component.html + 3 + + Liquid Asset page title + asset + + + Name + नाम + + src/app/components/asset/asset.component.html + 21 + + + src/app/components/assets/assets.component.html + 4,6 + + + src/app/components/assets/assets.component.html + 29,31 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 28,30 + + Asset name header + + + Precision + शुद्धता + + src/app/components/asset/asset.component.html + 25 + + Liquid Asset precision + asset.precision + + + Issuer + जारीकर्ता + + src/app/components/asset/asset.component.html + 29 + + Liquid Asset issuer + asset.issuer + + + Issuance TX + जारी TX + + src/app/components/asset/asset.component.html + 33 + + Liquid Asset issuance TX + asset.issuance-tx + + + Pegged in + पेग इन + + src/app/components/asset/asset.component.html + 37 + + Liquid Asset pegged-in amount + asset.pegged-in + + + Pegged out + पेग आउट + + src/app/components/asset/asset.component.html + 41 + + Liquid Asset pegged-out amount + asset.pegged-out + + + Burned amount + बर्न गरिएको रकम + + src/app/components/asset/asset.component.html + 49 + + Liquid Asset burned amount + asset.burned-amount + + + Circulating amount + परिक्रमा रकम + + src/app/components/asset/asset.component.html + 53 + + + src/app/components/asset/asset.component.html + 57 + + Liquid Asset circulating amount + asset.circulating-amount + + + of   + को + + src/app/components/asset/asset.component.html + 78 + + asset.M_of_N + + + Peg In/Out and Burn Transactions + पेग इन/आउट र बर्न ट्रांसेक्शनहरू + + src/app/components/asset/asset.component.html + 79 + + Liquid native asset transactions title + + + Issuance and Burn Transactions + जारी र बर्न ट्रांसेक्शनहरू + + src/app/components/asset/asset.component.html + 80 + + Default asset transactions title + + + Error loading asset data. + एसेट डेटा लोड गर्दा त्रुटि। + + src/app/components/asset/asset.component.html + 150 + + asset.error.loading-asset-data + + + Asset: + एसेट: + + src/app/components/asset/asset.component.ts + 75 + + + + Group of assets + + src/app/components/assets/asset-group/asset-group.component.html + 8,9 + + + src/app/components/assets/assets-featured/assets-featured.component.html + 9,10 + + + + Assets + एसेटहरू / संपत्ति + + src/app/components/assets/assets-nav/assets-nav.component.html + 3 + + + src/app/components/assets/assets-nav/assets-nav.component.ts + 42 + + + src/app/components/assets/assets.component.ts + 44 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 79,81 + + Assets page header + + + Featured + चित्रित + + src/app/components/assets/assets-nav/assets-nav.component.html + 9 + + + + All + सबै + + src/app/components/assets/assets-nav/assets-nav.component.html + 13 + + + src/app/components/pool-ranking/pool-ranking.component.html + 72,78 + + + src/app/components/pool/pool.component.html + 149,151 + + + src/app/components/pool/pool.component.html + 172,174 + + + src/app/components/pool/pool.component.html + 428,430 + + + src/app/components/pool/pool.component.html + 454,456 + + + + Search asset + सम्पत्ति खोज्नुहोस् + + src/app/components/assets/assets-nav/assets-nav.component.html + 19 + + Search Assets Placeholder Text + + + Clear + खाली गर्नुहोस् + + src/app/components/assets/assets-nav/assets-nav.component.html + 21 + + Search Clear Button + + + Ticker + टिकर + + src/app/components/assets/assets.component.html + 5,6 + + + src/app/components/assets/assets.component.html + 30,31 + + Asset ticker header + + + Issuer domain + जारीकर्ता डोमेन + + src/app/components/assets/assets.component.html + 6,9 + + + src/app/components/assets/assets.component.html + 31,34 + + Asset Issuer Domain header + + + Asset ID + सम्पत्ति/एसेट आईडी + + src/app/components/assets/assets.component.html + 7,10 + + + src/app/components/assets/assets.component.html + 32,36 + + Asset ID header + + + Error loading assets data. + एसेट/सम्पत्ति डेटा लोड गर्दा त्रुटि। + + src/app/components/assets/assets.component.html + 48,53 + + Asset data load error + + + Offline + अफलाइन + + src/app/components/bisq-master-page/bisq-master-page.component.html + 36,37 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 41,42 + + + src/app/components/master-page/master-page.component.html + 14,15 + + master-page.offline + + + Reconnecting... + पुन: कनेक्ट गर्दै... + + src/app/components/bisq-master-page/bisq-master-page.component.html + 37,42 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 42,47 + + + src/app/components/master-page/master-page.component.html + 15,20 + + master-page.reconnecting + + + Layer 2 Networks + लेयर 2 नेटवर्क्स + + src/app/components/bisq-master-page/bisq-master-page.component.html + 50,51 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 55,56 + + + src/app/components/master-page/master-page.component.html + 28,29 + + master-page.layer2-networks-header + + + Dashboard + डैशबोर्ड + + src/app/components/bisq-master-page/bisq-master-page.component.html + 60,62 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 65,67 + + + src/app/components/master-page/master-page.component.html + 38,40 + + master-page.dashboard + + + Stats + तथ्याङ्क + + src/app/components/bisq-master-page/bisq-master-page.component.html + 69,71 + + master-page.stats + + + Docs + कागजातहरू + + src/app/components/bisq-master-page/bisq-master-page.component.html + 72,74 + + + src/app/components/liquid-master-page/liquid-master-page.component.html + 82,84 + + master-page.docs + + + Block Fee Rates + ब्लक शुल्क दरहरू + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.html + 6,8 + + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts + 66 + + + src/app/components/graphs/graphs.component.html + 18 + + mining.block-fee-rates + + + At block: + ब्लक: मा + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts + 188 + + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 142 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 161 + + + + Around block: + ब्लक: वरपर + + src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts + 190 + + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 144 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 163 + + + + Block Fees + ब्लक शुल्क + + src/app/components/block-fees-graph/block-fees-graph.component.html + 6,7 + + + src/app/components/block-fees-graph/block-fees-graph.component.ts + 62 + + + src/app/components/graphs/graphs.component.html + 20 + + mining.block-fees + + + Indexing blocks + + src/app/components/block-fees-graph/block-fees-graph.component.ts + 110,105 + + + src/app/components/block-rewards-graph/block-rewards-graph.component.ts + 108,103 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 115,110 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 171,166 + + + src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts + 167,162 + + + src/app/components/indexing-progress/indexing-progress.component.html + 1 + + + src/app/components/pool/pool-preview.component.ts + 122,117 + + + src/app/components/pool/pool.component.ts + 114,109 + + + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + + + Fee + शुल्क + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 22 + + + src/app/components/transaction/transaction-preview.component.html + 27 + + + src/app/components/transaction/transaction.component.html + 476 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 44 + + + src/app/dashboard/dashboard.component.html + 127,129 + + Transaction fee + transaction.fee + + + sat + सैट + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 23 + + + src/app/components/transaction/transaction-preview.component.html + 27 + + + src/app/components/transaction/transaction.component.html + 476,477 + + + src/app/components/transactions-list/transactions-list.component.html + 286,287 + + sat + shared.sat + + + Fee rate + शुल्क दर + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 26 + + + src/app/components/transaction/transaction.component.html + 161,165 + + + src/app/components/transaction/transaction.component.html + 479,481 + + + src/app/lightning/channel/channel-box/channel-box.component.html + 18 + + + src/app/lightning/channel/channel-preview.component.html + 31,34 + + + src/app/lightning/channels-list/channels-list.component.html + 38,39 + + Transaction fee rate + transaction.fee-rate + + + sat/vB + सैट/vB + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 28 + + + src/app/components/block/block-preview.component.html + 37,40 + + + src/app/components/block/block.component.html + 125,128 + + + src/app/components/block/block.component.html + 129 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 12,14 + + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 15,17 + + + src/app/components/fees-box/fees-box.component.html + 16 + + + src/app/components/fees-box/fees-box.component.html + 22 + + + src/app/components/fees-box/fees-box.component.html + 27 + + + src/app/components/fees-box/fees-box.component.html + 32 + + + src/app/components/mempool-block/mempool-block.component.html + 17 + + + src/app/components/mempool-block/mempool-block.component.html + 21,24 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 10,12 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 13,16 + + + src/app/components/transaction/transaction-preview.component.html + 39 + + + src/app/components/transaction/transaction.component.html + 173,174 + + + src/app/components/transaction/transaction.component.html + 184,185 + + + src/app/components/transaction/transaction.component.html + 195,196 + + + src/app/components/transaction/transaction.component.html + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 + + + src/app/components/transactions-list/transactions-list.component.html + 286 + + + src/app/dashboard/dashboard.component.html + 137,141 + + + src/app/dashboard/dashboard.component.html + 204,208 + + sat/vB + shared.sat-vbyte + + + Virtual size + वर्चुअल साइज + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 32 + + + src/app/components/transaction/transaction.component.html + 160,162 + + + src/app/components/transaction/transaction.component.html + 274,277 + + Transaction Virtual Size + transaction.vsize + + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + थपियो + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + + + Block Prediction Accuracy + ब्लक भविष्यवाणी शुद्धता + + src/app/components/block-prediction-graph/block-prediction-graph.component.html + 6,8 + + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 63 + + + src/app/components/graphs/graphs.component.html + 26 + + mining.block-prediction-accuracy + + + No data to display yet. Try again later. + देखाउनको कुनै डाटा छैन। पछि फेरि प्रयास गर्नुहोस्। + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 108,103 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + + + src/app/lightning/nodes-map/nodes-map.component.ts + 144,139 + + + + Match rate + मिलान दर + + src/app/components/block-prediction-graph/block-prediction-graph.component.ts + 189,187 + + + + Block Rewards + ब्लक इनाम + + src/app/components/block-rewards-graph/block-rewards-graph.component.html + 7,8 + + + src/app/components/block-rewards-graph/block-rewards-graph.component.ts + 60 + + + src/app/components/graphs/graphs.component.html + 22 + + mining.block-rewards + + + Block Sizes and Weights + ब्लक साइज र तौल + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.html + 5,7 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 62 + + + src/app/components/graphs/graphs.component.html + 24 + + mining.block-sizes-weights + + + Size + साइज + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + वजन + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + + + Block + ब्लक + + src/app/components/block/block-preview.component.html + 3,7 + + + src/app/components/block/block.component.html + 5,6 + + shared.block-title + + + + + + src/app/components/block/block-preview.component.html + 11,12 + + shared.block-title + + + Median fee + मध्य शुल्क + + src/app/components/block/block-preview.component.html + 36,37 + + + src/app/components/block/block.component.html + 128,129 + + + src/app/components/mempool-block/mempool-block.component.html + 16,17 + + block.median-fee + + + Total fees + कुल शुल्क + + src/app/components/block/block-preview.component.html + 41,43 + + + src/app/components/block/block.component.html + 133,135 + + + src/app/components/block/block.component.html + 159,162 + + + src/app/components/mempool-block/mempool-block.component.html + 24,25 + + Total fees in a block + block.total-fees + + + Miner + माइनर + + src/app/components/block/block-preview.component.html + 53,55 + + + src/app/components/block/block.component.html + 168,170 + + block.miner + + + Block : + ब्लक : + + src/app/components/block/block-preview.component.ts + 98 + + + src/app/components/block/block.component.ts + 227 + + + + Next Block + अर्को ब्लक + + src/app/components/block/block.component.html + 8,9 + + + src/app/components/mempool-block/mempool-block.component.ts + 75 + + Next Block + + + Previous Block + अघिल्लो ब्लक + + src/app/components/block/block.component.html + 15,16 + + Previous Block + + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + अज्ञात + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + शुल्क अवधि + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + + + Based on average native segwit transaction of 140 vBytes + 140 vBytes नेटिव सेगविट ट्रांसेक्शन सरदर को अनुसार + + src/app/components/block/block.component.html + 129,131 + + + src/app/components/fees-box/fees-box.component.html + 16,18 + + + src/app/components/fees-box/fees-box.component.html + 22,24 + + + src/app/components/fees-box/fees-box.component.html + 27,28 + + + src/app/components/fees-box/fees-box.component.html + 32,34 + + + src/app/components/mempool-block/mempool-block.component.html + 17,20 + + Transaction fee tooltip + + + Subsidy + fees: + अनुदान + शुल्क: + + src/app/components/block/block.component.html + 148,151 + + + src/app/components/block/block.component.html + 163,167 + + Total subsidy and fees in a block + block.subsidy-and-fees + + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + + + Bits + बिट्स + + src/app/components/block/block.component.html + 250,252 + + block.bits + + + Merkle root + मर्कल रुट + + src/app/components/block/block.component.html + 254,256 + + block.merkle-root + + + Difficulty + कठिनाई + + src/app/components/block/block.component.html + 265,268 + + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 7,10 + + + src/app/components/hashrate-chart/hashrate-chart.component.html + 14,16 + + + src/app/components/hashrate-chart/hashrate-chart.component.html + 75,77 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 284,283 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 371,368 + + block.difficulty + + + Nonce + नोन्स + + src/app/components/block/block.component.html + 269,271 + + block.nonce + + + Block Header Hex + ब्लक हेडर हेक्स + + src/app/components/block/block.component.html + 273,274 + + block.header + + + Details + विवरण + + src/app/components/block/block.component.html + 284,288 + + + src/app/components/transaction/transaction.component.html + 254,259 + + + src/app/lightning/channel/channel.component.html + 86,88 + + + src/app/lightning/channel/channel.component.html + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 + + Transaction Details + transaction.details + + + Error loading data. + डाटा लोड गर्दा त्रुटि भयो। + + src/app/components/block/block.component.html + 303,305 + + + src/app/components/block/block.component.html + 339,343 + + + src/app/lightning/channel/channel-preview.component.html + 70,75 + + + src/app/lightning/channel/channel.component.html + 109,115 + + + src/app/lightning/node/node-preview.component.html + 66,69 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 61,64 + + error.general-loading-data + + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + + + Pool + पुल + + src/app/components/blocks-list/blocks-list.component.html + 14 + + + src/app/components/blocks-list/blocks-list.component.html + 14,15 + + + src/app/components/pool-ranking/pool-ranking.component.html + 92,93 + + + src/app/dashboard/dashboard.component.html + 89,90 + + mining.pool-name + + + Mined + खानी गरिएको + + src/app/components/blocks-list/blocks-list.component.html + 16,17 + + + src/app/components/pool/pool.component.html + 214,215 + + + src/app/components/pool/pool.component.html + 261,262 + + + src/app/dashboard/dashboard.component.html + 88,89 + + latest-blocks.mined + + + Health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health + + + Reward + इनाम + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/pool/pool.component.html + 216,218 + + + src/app/components/pool/pool.component.html + 263,265 + + latest-blocks.reward + + + Fees + शुल्क + + src/app/components/blocks-list/blocks-list.component.html + 21,22 + + + src/app/components/pool/pool.component.html + 217,219 + + + src/app/components/pool/pool.component.html + 264,266 + + latest-blocks.fees + + + TXs + TXs + + src/app/components/blocks-list/blocks-list.component.html + 23,24 + + + src/app/components/blocks-list/blocks-list.component.html + 24 + + + src/app/components/pool/pool.component.html + 219,221 + + + src/app/components/pool/pool.component.html + 266,268 + + + src/app/dashboard/dashboard.component.html + 91,93 + + + src/app/dashboard/dashboard.component.html + 210,214 + + dashboard.txs + + + Copied! + प्रतिलिपि गरियो! + + src/app/components/clipboard/clipboard.component.ts + 19 + + + + Adjusted + समायोजन गरियो + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 6,8 + + mining.adjusted + + + Change + परिवर्तन + + src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html + 8,11 + + mining.change + + + Difficulty Adjustment + कठिनाई समायोजन / डिफीकल्टी एडजस्टमेंट + + src/app/components/difficulty/difficulty.component.html + 1,5 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 24 + + dashboard.difficulty-adjustment + + + Remaining + बाँकी + + src/app/components/difficulty/difficulty.component.html + 7,9 + + + src/app/components/difficulty/difficulty.component.html + 66,69 + + difficulty-box.remaining + + + blocks + ब्लकहरू + + src/app/components/difficulty/difficulty.component.html + 10,11 + + + src/app/components/difficulty/difficulty.component.html + 53,54 + + + src/app/components/footer/footer.component.html + 25,26 + + + src/app/components/mempool-blocks/mempool-blocks.component.html + 35,36 + + + src/app/lightning/channel/channel-box/channel-box.component.html + 78 + + shared.blocks + + + block + ब्लक + + src/app/components/difficulty/difficulty.component.html + 11,12 + + + src/app/components/difficulty/difficulty.component.html + 54,55 + + + src/app/components/footer/footer.component.html + 26,27 + + shared.block + + + Estimate + अनुमान + + src/app/components/difficulty/difficulty.component.html + 16,17 + + + src/app/components/difficulty/difficulty.component.html + 73,76 + + difficulty-box.estimate + + + Previous + अघिल्लो + + src/app/components/difficulty/difficulty.component.html + 31,33 + + difficulty-box.previous + + + Current Period + वर्तमान अवधि + + src/app/components/difficulty/difficulty.component.html + 43,44 + + + src/app/components/difficulty/difficulty.component.html + 80,83 + + difficulty-box.current-period + + + Next Halving + अर्को हल्विंग + + src/app/components/difficulty/difficulty.component.html + 50,52 + + difficulty-box.next-halving + + + Either 2x the minimum, or the Low Priority rate (whichever is lower) + या त 2x न्यूनतम, वा कम प्राथमिकता दर (जुन कम छ) + + src/app/components/fees-box/fees-box.component.html + 4,7 + + Transaction feerate tooltip (economy) + + + No Priority + कुनै प्राथमिकता छैन + + src/app/components/fees-box/fees-box.component.html + 4,7 + + + src/app/components/fees-box/fees-box.component.html + 41,44 + + fees-box.no-priority + + + Usually places your transaction in between the second and third mempool blocks + सामान्यतया तपाईंको ट्रांसेक्शन लाई दोस्रो र तेस्रो मेम्पपुल ब्लकहरू बीचमा राख्छ + + src/app/components/fees-box/fees-box.component.html + 8,9 + + Transaction feerate tooltip (low priority) + + + Low Priority + कम प्राथमिकता + + src/app/components/fees-box/fees-box.component.html + 8,9 + + + src/app/components/fees-box/fees-box.component.html + 45,46 + + fees-box.low-priority + + + Usually places your transaction in between the first and second mempool blocks + सामान्यतया तपाईंको ट्रांसेक्शन लाई पहिलो र दोस्रो मेम्पुल ब्लकहरू बीचमा राख्छ + + src/app/components/fees-box/fees-box.component.html + 9,10 + + Transaction feerate tooltip (medium priority) + + + Medium Priority + मध्यम प्राथमिकता + + src/app/components/fees-box/fees-box.component.html + 9,10 + + + src/app/components/fees-box/fees-box.component.html + 46,48 + + fees-box.medium-priority + + + Places your transaction in the first mempool block + तपाईंको ट्रांसेक्शन लाई पहिलो मेम्पुल ब्लकमा राख्छ + + src/app/components/fees-box/fees-box.component.html + 10,14 + + Transaction feerate tooltip (high priority) + + + High Priority + उच्च प्राथमिकता + + src/app/components/fees-box/fees-box.component.html + 10,15 + + + src/app/components/fees-box/fees-box.component.html + 47,51 + + fees-box.high-priority + + + Incoming transactions + आगमन ट्रांसेक्शनहरू + + src/app/components/footer/footer.component.html + 5,6 + + + src/app/dashboard/dashboard.component.html + 237,238 + + dashboard.incoming-transactions + + + Backend is synchronizing + ब्याकइन्ड सिङ्क्रोनाइज हुँदैछ + + src/app/components/footer/footer.component.html + 8,10 + + + src/app/dashboard/dashboard.component.html + 240,243 + + dashboard.backend-is-synchronizing + + + vB/s + + src/app/components/footer/footer.component.html + 13,17 + + + src/app/dashboard/dashboard.component.html + 245,250 + + vB/s + shared.vbytes-per-second + + + Unconfirmed + पक्का / पुष्टि नभएको + + src/app/components/footer/footer.component.html + 19,21 + + + src/app/dashboard/dashboard.component.html + 208,209 + + Unconfirmed count + dashboard.unconfirmed + + + Mempool size + मेम्पपुल साइज + + src/app/components/footer/footer.component.html + 23,24 + + Mempool size + dashboard.mempool-size + + + Mining + माईनिंग + + src/app/components/graphs/graphs.component.html + 8 + + mining + + + Pools Ranking + पूल रैंकिंग + + src/app/components/graphs/graphs.component.html + 11 + + + src/app/components/pool-ranking/pool-ranking.component.html + 36,37 + + mining.pools + + + Pools Dominance + पूल सर्वोच्चता + + src/app/components/graphs/graphs.component.html + 13 + + + src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.html + 7,8 + + mining.pools-dominance + + + Hashrate & Difficulty + हैसरेट र कठिनाई + + src/app/components/graphs/graphs.component.html + 15,16 + + mining.hashrate-difficulty + + + Lightning + लाइटनिंग + + src/app/components/graphs/graphs.component.html + 31 + + lightning + + + Lightning Nodes Per Network + + src/app/components/graphs/graphs.component.html + 34 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.html + 5,7 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 67 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 131,126 + + lightning.nodes-networks + + + Lightning Network Capacity + लाइटनिंग नेटवर्क क्षमता + + src/app/components/graphs/graphs.component.html + 36 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.html + 5,7 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 66 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 122,117 + + lightning.network-capacity + + + Lightning Nodes Per ISP + प्रति ISP लाइटनिंग नोडहरू + + src/app/components/graphs/graphs.component.html + 38 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 51 + + lightning.nodes-per-isp + + + Lightning Nodes Per Country + प्रति देश लाइटनिंग नोड्स + + src/app/components/graphs/graphs.component.html + 40 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 5,7 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts + 46 + + lightning.nodes-per-country + + + Lightning Nodes World Map + लाइटनिंग नोड्स विश्व नक्सा + + src/app/components/graphs/graphs.component.html + 42 + + + src/app/lightning/nodes-map/nodes-map.component.html + 5,7 + + + src/app/lightning/nodes-map/nodes-map.component.ts + 50 + + lightning.lightning.nodes-heatmap + + + Lightning Nodes Channels World Map + लाइटनिङ नोड्स च्यानल विश्व नक्सा + + src/app/components/graphs/graphs.component.html + 44 + + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.html + 6,8 + + lightning.nodes-channels-world-map + + + Hashrate + हसरेट + + src/app/components/hashrate-chart/hashrate-chart.component.html + 8,10 + + + src/app/components/hashrate-chart/hashrate-chart.component.html + 69,71 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 273,272 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 359,356 + + + src/app/components/pool-ranking/pool-ranking.component.html + 93,95 + + + src/app/components/pool/pool-preview.component.html + 22,23 + + mining.hashrate + + + Hashrate & Difficulty + हैसरेट र कठिनाई + + src/app/components/hashrate-chart/hashrate-chart.component.html + 27,29 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 73 + + mining.hashrate-difficulty + + + Hashrate (MA) + हसरेट (एमए) + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 292,291 + + + src/app/components/hashrate-chart/hashrate-chart.component.ts + 382,380 + + + + Pools Historical Dominance + पूल ऐतिहासिक सर्वोच्चता + + src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts + 64 + + + + Indexing network hashrate + + src/app/components/indexing-progress/indexing-progress.component.html + 2 + + + + Indexing pools hashrate + + src/app/components/indexing-progress/indexing-progress.component.html + 3 + + + + Graphs + ग्राफहरू + + src/app/components/liquid-master-page/liquid-master-page.component.html + 71,74 + + + src/app/components/master-page/master-page.component.html + 52,54 + + + src/app/components/statistics/statistics.component.ts + 62 + + master-page.graphs + + + Mining Dashboard + माईनिंग ड्यासबोर्ड + + src/app/components/master-page/master-page.component.html + 41,43 + + + src/app/components/mining-dashboard/mining-dashboard.component.ts + 16 + + mining.mining-dashboard + + + Lightning Explorer + लाइटनिङ एक्सप्लोरर + + src/app/components/master-page/master-page.component.html + 44,45 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts + 27 + + master-page.lightning + + + beta + + src/app/components/master-page/master-page.component.html + 45,48 + + beta + + + Documentation + कागजात + + src/app/components/master-page/master-page.component.html + 55,57 + + + src/app/docs/docs/docs.component.html + 4 + + documentation.title + + + Stack of mempool blocks + स्ट्याक मेम्पपुल ब्लकहरू + + src/app/components/mempool-block/mempool-block.component.ts + 77 + + + + Mempool block + मेम्पूल ब्लक + + src/app/components/mempool-block/mempool-block.component.ts + 79 + + + + Range + श्रेणी + + src/app/components/mempool-graph/mempool-graph.component.ts + 259 + + + + Sum + कुल + + src/app/components/mempool-graph/mempool-graph.component.ts + 261 + + + + Reward stats + इनाम तथ्याङ्क + + src/app/components/mining-dashboard/mining-dashboard.component.html + 10 + + mining.reward-stats + + + (144 blocks) + (144 ब्लकहरू) + + src/app/components/mining-dashboard/mining-dashboard.component.html + 11 + + mining.144-blocks + + + Latest blocks + भर्खरका ब्लकहरू + + src/app/components/mining-dashboard/mining-dashboard.component.html + 53 + + + src/app/dashboard/dashboard.component.html + 81,83 + + dashboard.latest-blocks + + + Adjustments + समायोजनहरू + + src/app/components/mining-dashboard/mining-dashboard.component.html + 67 + + dashboard.adjustments + + + Pools luck (1 week) + पूल भाग्य (1 हप्ता) + + src/app/components/pool-ranking/pool-ranking.component.html + 9 + + mining.miners-luck-1w + + + Pools luck + पुल भाग्य + + src/app/components/pool-ranking/pool-ranking.component.html + 9,11 + + mining.miners-luck + + + 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. + + src/app/components/pool-ranking/pool-ranking.component.html + 11,15 + + mining.pools-luck-desc + + + Pools count (1w) + पुल गणना (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 17 + + mining.miners-count-1w + + + Pools count + पुल गणना + + src/app/components/pool-ranking/pool-ranking.component.html + 17,19 + + mining.miners-count + + + How many unique pools found at least one block over the past week. + गत हप्तामा कतिवटा अद्वितीय पुलहरूले कम्तिमा एउटा ब्लक फेला पारे। + + src/app/components/pool-ranking/pool-ranking.component.html + 19,23 + + mining.pools-count-desc + + + Blocks (1w) + ब्लकहरू (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 25 + + + src/app/components/pool-ranking/pool-ranking.component.html + 25,27 + + + src/app/components/pool-ranking/pool-ranking.component.html + 136,138 + + master-page.blocks + + + The number of blocks found over the past week. + गत हप्तामा भेटिएका ब्लकहरूको संख्या। + + src/app/components/pool-ranking/pool-ranking.component.html + 27,31 + + mining.blocks-count-desc + + + Rank + श्रेणी + + src/app/components/pool-ranking/pool-ranking.component.html + 90,92 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 27,29 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 57,59 + + mining.rank + + + Empty blocks + खाली ब्लकहरू + + src/app/components/pool-ranking/pool-ranking.component.html + 95,98 + + mining.empty-blocks + + + All miners + सबै माईनर्स हरू + + src/app/components/pool-ranking/pool-ranking.component.html + 113,114 + + mining.all-miners + + + Pools Luck (1w) + पूल भाग्य (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 130,132 + + mining.miners-luck + + + Pools Count (1w) + पूल गणना (1w) + + src/app/components/pool-ranking/pool-ranking.component.html + 142,144 + + mining.miners-count + + + Mining Pools + माईनिंग पुलहरू + + src/app/components/pool-ranking/pool-ranking.component.ts + 57 + + + + blocks + ब्लकहरू + + src/app/components/pool-ranking/pool-ranking.component.ts + 165,163 + + + src/app/components/pool-ranking/pool-ranking.component.ts + 168,167 + + + + mining pool + माईनिंग पुल + + src/app/components/pool/pool-preview.component.html + 3,5 + + mining.pools + + + Tags + + src/app/components/pool/pool-preview.component.html + 18,19 + + + src/app/components/pool/pool.component.html + 22,23 + + + src/app/components/pool/pool.component.html + 30,31 + + + src/app/components/pool/pool.component.html + 320,322 + + + src/app/components/pool/pool.component.html + 328,330 + + mining.tags + + + Show all + सबै देखाऊ + + src/app/components/pool/pool.component.html + 53,55 + + + src/app/components/pool/pool.component.html + 68,70 + + + src/app/components/transactions-list/transactions-list.component.html + 120,121 + + + src/app/components/transactions-list/transactions-list.component.html + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 + + show-all + + + Hide + लुकाउनुहोस् + + src/app/components/pool/pool.component.html + 55,58 + + hide + + + Hashrate (24h) + हसरेट (24 घन्टा) + + src/app/components/pool/pool.component.html + 91,93 + + + src/app/components/pool/pool.component.html + 114,116 + + + src/app/components/pool/pool.component.html + 367,369 + + + src/app/components/pool/pool.component.html + 394,396 + + mining.hashrate-24h + + + Estimated + अनुमानित + + src/app/components/pool/pool.component.html + 96,97 + + + src/app/components/pool/pool.component.html + 118,119 + + + src/app/components/pool/pool.component.html + 372,373 + + + src/app/components/pool/pool.component.html + 398,399 + + mining.estimated + + + Reported + रिपोर्ट गरिएको + + src/app/components/pool/pool.component.html + 97,98 + + + src/app/components/pool/pool.component.html + 119,120 + + + src/app/components/pool/pool.component.html + 373,374 + + + src/app/components/pool/pool.component.html + 399,400 + + mining.reported + + + Luck + भाग्य + + src/app/components/pool/pool.component.html + 98,101 + + + src/app/components/pool/pool.component.html + 120,123 + + + src/app/components/pool/pool.component.html + 374,377 + + + src/app/components/pool/pool.component.html + 400,403 + + mining.luck + + + Mined blocks + माईन गरिएको ब्लकहरू + + src/app/components/pool/pool.component.html + 141,143 + + + src/app/components/pool/pool.component.html + 165,167 + + + src/app/components/pool/pool.component.html + 420,422 + + + src/app/components/pool/pool.component.html + 447,449 + + mining.mined-blocks + + + 24h + 24 घन्टा + + src/app/components/pool/pool.component.html + 147 + + + src/app/components/pool/pool.component.html + 170 + + 24h + + + 1w + 1 हप्ता + + src/app/components/pool/pool.component.html + 148 + + + src/app/components/pool/pool.component.html + 171 + + 1w + + + Coinbase tag + + src/app/components/pool/pool.component.html + 215,217 + + + src/app/components/pool/pool.component.html + 262,264 + + latest-blocks.coinbasetag + + + Broadcast Transaction + ट्रांसेक्शन प्रसारण गर्नुहोस् + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 154,161 + + Broadcast Transaction + shared.broadcast-transaction + + + Transaction hex + ट्रांसेक्शन हेक्स + + src/app/components/push-transaction/push-transaction.component.html + 6 + + + src/app/components/transaction/transaction.component.html + 296,297 + + transaction.hex + + + Miners Reward + माईनर्स इनाम + + src/app/components/reward-stats/reward-stats.component.html + 5 + + + src/app/components/reward-stats/reward-stats.component.html + 5,6 + + + src/app/components/reward-stats/reward-stats.component.html + 46,49 + + mining.rewards + + + Amount being paid to miners in the past 144 blocks + विगतका 144 ब्लकहरूमा माईनर्सहरूलाई भुक्तान गरिएको रकम + + src/app/components/reward-stats/reward-stats.component.html + 6,8 + + mining.rewards-desc + + + Avg Block Fees + + src/app/components/reward-stats/reward-stats.component.html + 17 + + + src/app/components/reward-stats/reward-stats.component.html + 17,18 + + mining.fees-per-block + + + Average fees per block in the past 144 blocks + + src/app/components/reward-stats/reward-stats.component.html + 18,20 + + mining.fees-per-block-desc + + + BTC/block + + src/app/components/reward-stats/reward-stats.component.html + 21,24 + + BTC/block + shared.btc-block + + + Avg Tx Fee + + src/app/components/reward-stats/reward-stats.component.html + 30 + + + src/app/components/reward-stats/reward-stats.component.html + 30,31 + + mining.average-fee + + + Fee paid on average for each transaction in the past 144 blocks + विगत 144 ब्लकहरूमा प्रत्येक ट्रांसेक्शनको लागि औसतमा भुक्तानी गरिएको शुल्क + + src/app/components/reward-stats/reward-stats.component.html + 31,32 + + mining.average-fee + + + sats/tx + सैटस/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + प्रति Tx इनाम + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + + + Explore the full Bitcoin ecosystem + Bitcoin इकोसिस्टम पूर्ण अन्वेषण गर्नुहोस् + + src/app/components/search-form/search-form.component.html + 4,5 + + search-form.searchbar-placeholder + + + Search + खोज्नुहोस् + + src/app/components/search-form/search-form.component.html + 9,16 + + search-form.search-title + + + Mempool by vBytes (sat/vByte) + vBytes द्वारा मेम्पपुल (sat/vByte) + + src/app/components/statistics/statistics.component.html + 7 + + statistics.memory-by-vBytes + + + TV view + टिभी दृश्य + + src/app/components/statistics/statistics.component.html + 18 + + + src/app/components/television/television.component.ts + 39 + + master-page.tvview + + + Filter + फिल्टर + + src/app/components/statistics/statistics.component.html + 57 + + statistics.component-filter.title + + + Invert + उल्टो + + src/app/components/statistics/statistics.component.html + 76 + + statistics.component-invert.title + + + Transaction vBytes per second (vB/s) + ट्रांसेक्शन vBytes प्रति सेकेन्ड (vB/s) + + src/app/components/statistics/statistics.component.html + 96 + + statistics.transaction-vbytes-per-second + + + Just now + भर्खरै + + src/app/components/time-since/time-since.component.ts + 64 + + + src/app/components/time-span/time-span.component.ts + 57 + + + + ago + पहिले + + src/app/components/time-since/time-since.component.ts + 74 + + + src/app/components/time-since/time-since.component.ts + 75 + + + src/app/components/time-since/time-since.component.ts + 76 + + + src/app/components/time-since/time-since.component.ts + 77 + + + src/app/components/time-since/time-since.component.ts + 78 + + + src/app/components/time-since/time-since.component.ts + 79 + + + src/app/components/time-since/time-since.component.ts + 80 + + + src/app/components/time-since/time-since.component.ts + 84 + + + src/app/components/time-since/time-since.component.ts + 85 + + + src/app/components/time-since/time-since.component.ts + 86 + + + src/app/components/time-since/time-since.component.ts + 87 + + + src/app/components/time-since/time-since.component.ts + 88 + + + src/app/components/time-since/time-since.component.ts + 89 + + + src/app/components/time-since/time-since.component.ts + 90 + + + + After + पछि + + src/app/components/time-span/time-span.component.ts + 67 + + + src/app/components/time-span/time-span.component.ts + 68 + + + src/app/components/time-span/time-span.component.ts + 69 + + + src/app/components/time-span/time-span.component.ts + 70 + + + src/app/components/time-span/time-span.component.ts + 71 + + + src/app/components/time-span/time-span.component.ts + 72 + + + src/app/components/time-span/time-span.component.ts + 73 + + + src/app/components/time-span/time-span.component.ts + 77 + + + src/app/components/time-span/time-span.component.ts + 78 + + + src/app/components/time-span/time-span.component.ts + 79 + + + src/app/components/time-span/time-span.component.ts + 80 + + + src/app/components/time-span/time-span.component.ts + 81 + + + src/app/components/time-span/time-span.component.ts + 82 + + + src/app/components/time-span/time-span.component.ts + 83 + + + + In ~ + ~ मा + + src/app/components/time-until/time-until.component.ts + 66 + + + src/app/components/time-until/time-until.component.ts + 80 + + + src/app/components/time-until/time-until.component.ts + 81 + + + src/app/components/time-until/time-until.component.ts + 82 + + + src/app/components/time-until/time-until.component.ts + 83 + + + src/app/components/time-until/time-until.component.ts + 84 + + + src/app/components/time-until/time-until.component.ts + 85 + + + src/app/components/time-until/time-until.component.ts + 86 + + + src/app/components/time-until/time-until.component.ts + 90 + + + src/app/components/time-until/time-until.component.ts + 91 + + + src/app/components/time-until/time-until.component.ts + 92 + + + src/app/components/time-until/time-until.component.ts + 93 + + + src/app/components/time-until/time-until.component.ts + 94 + + + src/app/components/time-until/time-until.component.ts + 95 + + + src/app/components/time-until/time-until.component.ts + 96 + + + + This transaction has been replaced by: + यो प्रतिस्थापन गरिएको छ: + + src/app/components/transaction/transaction.component.html + 5,6 + + RBF replacement + transaction.rbf.replacement + + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + + + Unconfirmed + पक्का / पुष्टि नभएको + + src/app/components/transaction/transaction.component.html + 39,46 + + + src/app/components/transactions-list/transactions-list.component.html + 298,301 + + Transaction unconfirmed state + transaction.unconfirmed + + + First seen + पहिलो पटक देखियो + + src/app/components/transaction/transaction.component.html + 108,109 + + + src/app/lightning/node/node.component.html + 67,70 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 61,63 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 58,60 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 11,13 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 13,15 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,15 + + Transaction first seen + transaction.first-seen + + + ETA + अनुमानित समय + + src/app/components/transaction/transaction.component.html + 115,116 + + Transaction ETA + transaction.eta + + + In several hours (or more) + केहि घण्टामा (वा बढी) + + src/app/components/transaction/transaction.component.html + 121,124 + + Transaction ETA in several hours or more + transaction.eta.in-several-hours + + + Descendant + वंशज + + src/app/components/transaction/transaction.component.html + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 + + Descendant + transaction.descendant + + + Ancestor + पुर्खा + + src/app/components/transaction/transaction.component.html + 190,192 + + Transaction Ancestor + transaction.ancestor + + + Flow + प्रवाह + + src/app/components/transaction/transaction.component.html + 208,211 + + + src/app/components/transaction/transaction.component.html + 346,350 + + Transaction flow + transaction.flow + + + Hide diagram + रेखाचित्र लुकाउनुहोस् + + src/app/components/transaction/transaction.component.html + 211,216 + + hide-diagram + + + Show more + थप देखाउनुहोस् + + src/app/components/transaction/transaction.component.html + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 + + show-more + + + Show less + कम देखाउनुहोस् + + src/app/components/transaction/transaction.component.html + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 + + show-less + + + Show diagram + रेखाचित्र देखाउनुहोस् + + src/app/components/transaction/transaction.component.html + 253,254 + + show-diagram + + + Locktime + लकटाइम + + src/app/components/transaction/transaction.component.html + 292,294 + + transaction.locktime + + + Transaction not found. + ट्रांसेक्शन फेला परेन। + + src/app/components/transaction/transaction.component.html + 455,456 + + transaction.error.transaction-not-found + + + Waiting for it to appear in the mempool... + मेम्पपुल मा देखिन को लागी प्रतिक्षा गर्दै ... + + src/app/components/transaction/transaction.component.html + 456,461 + + transaction.error.waiting-for-it-to-appear + + + Effective fee rate + प्रभावकारी शुल्क दर + + src/app/components/transaction/transaction.component.html + 489,492 + + Effective transaction fee rate + transaction.effective-fee-rate + + + Coinbase + कॉइनबेस + + src/app/components/transactions-list/transactions-list.component.html + 52 + + transactions-list.coinbase + + + (Newly Generated Coins) + (नयाँ उत्पन्न कोइन्स) + + src/app/components/transactions-list/transactions-list.component.html + 52 + + transactions-list.newly-generated-coins + + + Peg-in + पेग-इन + + src/app/components/transactions-list/transactions-list.component.html + 54,56 + + transactions-list.peg-in + + + ScriptSig (ASM) + स्क्रिप्टसिग (ASM) + + src/app/components/transactions-list/transactions-list.component.html + 101,103 + + ScriptSig (ASM) + transactions-list.scriptsig.asm + + + ScriptSig (HEX) + स्क्रिप्टसिग (HEX) + + src/app/components/transactions-list/transactions-list.component.html + 105,108 + + ScriptSig (HEX) + transactions-list.scriptsig.hex + + + Witness + विटनेस + + src/app/components/transactions-list/transactions-list.component.html + 110,112 + + transactions-list.witness + + + P2SH redeem script + P2SH रिडीम स्क्रिप्ट + + src/app/components/transactions-list/transactions-list.component.html + 128,129 + + transactions-list.p2sh-redeem-script + + + P2TR tapscript + P2TR ट्यापस्क्रिप्ट + + src/app/components/transactions-list/transactions-list.component.html + 132,134 + + transactions-list.p2tr-tapscript + + + P2WSH witness script + P2WSH विटनेस स्क्रिप्ट + + src/app/components/transactions-list/transactions-list.component.html + 134,136 + + transactions-list.p2wsh-witness-script + + + nSequence + nसीक्वेंस + + src/app/components/transactions-list/transactions-list.component.html + 139,141 + + transactions-list.nsequence + + + Previous output script + अघिल्लो आउटपुट स्क्रिप्ट + + src/app/components/transactions-list/transactions-list.component.html + 144,145 + + transactions-list.previous-output-script + + + Previous output type + अघिल्लो आउटपुट प्रकार + + src/app/components/transactions-list/transactions-list.component.html + 148,149 + + transactions-list.previous-output-type + + + Peg-out to + मा पेग-आउट + + src/app/components/transactions-list/transactions-list.component.html + 189,190 + + transactions-list.peg-out-to + + + ScriptPubKey (ASM) + स्क्रिप्टपबकी (ASM) + + src/app/components/transactions-list/transactions-list.component.html + 248,250 + + ScriptPubKey (ASM) + transactions-list.scriptpubkey.asm + + + ScriptPubKey (HEX) + स्क्रिप्टपबकी (HEX) + + src/app/components/transactions-list/transactions-list.component.html + 252,255 + + ScriptPubKey (HEX) + transactions-list.scriptpubkey.hex + + + Show more inputs to reveal fee data + + src/app/components/transactions-list/transactions-list.component.html + 288,291 + + transactions-list.load-to-reveal-fee-info + + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + + + other inputs + अन्य इनपुटहरू + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 12 + + transaction.other-inputs + + + other outputs + अन्य आउटपुटहरू + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 13 + + transaction.other-outputs + + + Input + इनपुट + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 + + transaction.input + + + Output + आउटपुट + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 + + transaction.output + + + This transaction saved % on fees by using native SegWit + यस ट्रांसेक्शनले नेटिभ सेग्विट प्रयोग गरेर शुल्कमा % बचत गर्यो। + + src/app/components/tx-features/tx-features.component.html + 2 + + ngbTooltip about segwit gains + + + SegWit + सेग्विट / SegWit + + src/app/components/tx-features/tx-features.component.html + 2 + + + src/app/components/tx-features/tx-features.component.html + 4 + + + src/app/components/tx-features/tx-features.component.html + 6 + + SegWit + tx-features.tag.segwit + + + This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + यस ट्रांसेक्शनले सेग्विट/SegWit प्रयोग गरेर शुल्कमा % बचत गर्‍यो र मूल सेग्विट/SegWit मा पूर्ण रूपमा स्तरवृद्धि गरेर % बढी बचत गर्न सक्छ। + + src/app/components/tx-features/tx-features.component.html + 4 + + ngbTooltip about double segwit gains + + + This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + यस ट्रांसेक्शनले native SegWit मा अपग्रेड गरेर % बचत गर्न सक्छ। SegWit-P2SH मा अपग्रेड गरेर % बचत गर्न सक्छ। + + src/app/components/tx-features/tx-features.component.html + 6 + + ngbTooltip about missed out gains + + + This transaction uses Taproot and thereby saved at least % on fees + यो ट्रांसेक्शनले Taproot प्रयोग गरेर शुल्क मा कम्तिमा % बचत गरेको छ। + + src/app/components/tx-features/tx-features.component.html + 12 + + Tooltip about fees saved with taproot + + + Taproot + Taproot + + src/app/components/tx-features/tx-features.component.html + 12 + + + src/app/components/tx-features/tx-features.component.html + 14 + + + src/app/components/tx-features/tx-features.component.html + 16 + + + src/app/components/tx-features/tx-features.component.html + 18 + + + src/app/components/tx-features/tx-features.component.html + 21 + + Taproot + tx-features.tag.taproot + + + This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + यो ट्रांसेक्शनले Taproot प्रयोग गरेर कम्तिमा % शुल्क बचत गरेको छ, तर Taproot को पूर्ण प्रयोग गरेर थप % बचत गर्न सक्छ। + + src/app/components/tx-features/tx-features.component.html + 14 + + Tooltip about fees that saved and could be saved with taproot + + + This transaction could save % on fees by using Taproot + यो ट्रांसेक्शनले Taproot प्रयोग गरेर शुल्क मा % बचत गर्न सक्छ + + src/app/components/tx-features/tx-features.component.html + 16 + + Tooltip about fees that could be saved with taproot + + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + + + This transaction uses Taproot + यो ट्रांसेक्शनले Taproot प्रयोग गर्दछ + + src/app/components/tx-features/tx-features.component.html + 21 + + Tooltip about taproot + + + This transaction supports Replace-By-Fee (RBF) allowing fee bumping + यस ट्रांसेक्शनले शुल्क बम्पिङ दिँदै Replace-By-Fee (RBF) लाई समर्थन गर्दछ + + src/app/components/tx-features/tx-features.component.html + 28 + + RBF tooltip + + + RBF + RBF + + src/app/components/tx-features/tx-features.component.html + 28 + + + src/app/components/tx-features/tx-features.component.html + 29 + + RBF + tx-features.tag.rbf + + + This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method + यो ट्रांसेक्शनले Replace-By-Fee (RBF) लाई समर्थन गर्दैन र यो विधि प्रयोग गरेर शुल्क बम्प गर्न सकिँदैन। + + src/app/components/tx-features/tx-features.component.html + 29 + + RBF disabled tooltip + + + Optimal + ओप्तिमल + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 1 + + TX Fee Rating is Optimal + tx-fee-rating.optimal + + + Only ~ sat/vB was needed to get into this block + यो ब्लकमा प्रवेश गर्न केवल ~ sat/vB आवश्यक थियो + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 2 + + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 3 + + tx-fee-rating.warning-tooltip + + + Overpaid x + बढी भुक्तान x + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 2 + + + src/app/components/tx-fee-rating/tx-fee-rating.component.html + 3 + + TX Fee Rating is Warning + tx-fee-rating.overpaid.warning + + + Transaction Fees + ट्रांसेक्शन शुल्क + + src/app/dashboard/dashboard.component.html + 6,9 + + fees-box.transaction-fees + + + Latest transactions + भर्खरका ट्रांसेक्शनहरू + + src/app/dashboard/dashboard.component.html + 120,123 + + dashboard.latest-transactions + + + USD + USD / अमेरिकी डलर + + src/app/dashboard/dashboard.component.html + 126,127 + + dashboard.latest-transactions.USD + + + Minimum fee + न्यूनतम शुल्क + + src/app/dashboard/dashboard.component.html + 201,202 + + Minimum mempool fee + dashboard.minimum-fee + + + Purging + पर्जिंग / सफा + + src/app/dashboard/dashboard.component.html + 202,203 + + Purgin below fee + dashboard.purging + + + Memory usage + मेमोरी उपयोग + + src/app/dashboard/dashboard.component.html + 214,215 + + Memory usage + dashboard.memory-usage + + + L-BTC in circulation + + src/app/dashboard/dashboard.component.html + 228,230 + + dashboard.lbtc-pegs-in-circulation + + + REST API service + + src/app/docs/api-docs/api-docs.component.html + 39,40 + + api-docs.title + + + Endpoint + + src/app/docs/api-docs/api-docs.component.html + 48,49 + + + src/app/docs/api-docs/api-docs.component.html + 102,105 + + Api docs endpoint + + + Description + विवरण + + src/app/docs/api-docs/api-docs.component.html + 67,68 + + + src/app/docs/api-docs/api-docs.component.html + 106,107 + + + + Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. + + src/app/docs/api-docs/api-docs.component.html + 107,108 + + api-docs.websocket.websocket + + + Code Example + + src/app/docs/code-template/code-template.component.html + 6,7 + + + src/app/docs/code-template/code-template.component.html + 13,14 + + + src/app/docs/code-template/code-template.component.html + 29,30 + + + src/app/docs/code-template/code-template.component.html + 36,37 + + API Docs code example + + + Install Package + + src/app/docs/code-template/code-template.component.html + 23,24 + + API Docs install lib + + + Response + प्रतिक्रिया + + src/app/docs/code-template/code-template.component.html + 43,44 + + API Docs API response + + + FAQ + अकसर + + src/app/docs/docs/docs.component.ts + 34 + + + + API + + src/app/docs/docs/docs.component.ts + 37 + + + src/app/docs/docs/docs.component.ts + 40 + + + src/app/docs/docs/docs.component.ts + 43 + + + + Base fee + आधार शुल्क + + src/app/lightning/channel/channel-box/channel-box.component.html + 29 + + + src/app/lightning/channel/channel-preview.component.html + 41,44 + + lightning.base-fee + + + mSats + + src/app/lightning/channel/channel-box/channel-box.component.html + 35 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 47,50 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 93,96 + + + src/app/lightning/node/node.component.html + 180,182 + + shared.m-sats + + + This channel supports zero base fee routing + यो च्यानलले शून्य शुल्क राउटिंग समर्थन गर्दछ + + src/app/lightning/channel/channel-box/channel-box.component.html + 44 + + lightning.zero-base-fee-tooltip + + + Zero base fee + शून्य आधार शुल्क + + src/app/lightning/channel/channel-box/channel-box.component.html + 45 + + lightning.zero-base-fee + + + This channel does not support zero base fee routing + यो च्यानलले शून्य शुल्क रूटिङलाई समर्थन गर्दैन + + src/app/lightning/channel/channel-box/channel-box.component.html + 50 + + lightning.non-zero-base-fee-tooltip + + + Non-zero base fee + गैर-शून्य आधार शुल्क + + src/app/lightning/channel/channel-box/channel-box.component.html + 51 + + lightning.non-zero-base-fee + + + Min HTLC + + src/app/lightning/channel/channel-box/channel-box.component.html + 57 + + lightning.min-htlc + + + Max HTLC + + src/app/lightning/channel/channel-box/channel-box.component.html + 63 + + lightning.max-htlc + + + Timelock delta + + src/app/lightning/channel/channel-box/channel-box.component.html + 69 + + lightning.timelock-delta + + + channels + च्यानलहरू + + src/app/lightning/channel/channel-box/channel-box.component.html + 79 + + + src/app/lightning/channels-list/channels-list.component.html + 120,121 + + lightning.x-channels + + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + + + lightning channel + लाइटनिंग च्यानल + + src/app/lightning/channel/channel-preview.component.html + 3,5 + + lightning.channel + + + Inactive + निष्क्रिय + + src/app/lightning/channel/channel-preview.component.html + 10,11 + + + src/app/lightning/channel/channel.component.html + 11,12 + + + src/app/lightning/channels-list/channels-list.component.html + 65,66 + + status.inactive + + + Active + सक्रिय + + src/app/lightning/channel/channel-preview.component.html + 11,12 + + + src/app/lightning/channel/channel.component.html + 12,13 + + + src/app/lightning/channels-list/channels-list.component.html + 66,68 + + status.active + + + Closed + बन्द + + src/app/lightning/channel/channel-preview.component.html + 12,14 + + + src/app/lightning/channel/channel.component.html + 13,14 + + + src/app/lightning/channels-list/channels-list.component.html + 8,13 + + + src/app/lightning/channels-list/channels-list.component.html + 68,70 + + status.closed + + + Created + सिर्जना गरियो + + src/app/lightning/channel/channel-preview.component.html + 23,26 + + + src/app/lightning/channel/channel.component.html + 29,30 + + lightning.created + + + Capacity + क्षमता + + src/app/lightning/channel/channel-preview.component.html + 27,28 + + + src/app/lightning/channel/channel.component.html + 48,49 + + + src/app/lightning/channels-list/channels-list.component.html + 40,43 + + + src/app/lightning/node-statistics/node-statistics.component.html + 4,5 + + + src/app/lightning/node-statistics/node-statistics.component.html + 47,50 + + + src/app/lightning/nodes-list/nodes-list.component.html + 6,7 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 31,34 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 63,65 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 61,64 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 60,62 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 202,201 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 282,279 + + lightning.capacity + + + ppm + + src/app/lightning/channel/channel-preview.component.html + 34,35 + + + src/app/lightning/channel/channel-preview.component.html + 36,41 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 32,35 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 78,81 + + lightning.ppm + + + Lightning channel + लाइटनिंग च्यानल + + src/app/lightning/channel/channel.component.html + 2,5 + + + src/app/lightning/channel/channel.component.html + 117,119 + + lightning.channel + + + Last update + अन्तिम अपडेट + + src/app/lightning/channel/channel.component.html + 33,34 + + + src/app/lightning/node/node.component.html + 73,75 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 62,64 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 59,61 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 14,15 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 14,15 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 14,15 + + lightning.last-update + + + Closing date + बन्द हुने मिति + + src/app/lightning/channel/channel.component.html + 37,38 + + + src/app/lightning/channels-list/channels-list.component.html + 39,40 + + lightning.closing_date + + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + + + Opening transaction + ट्रांसेक्शन खोल्दै + + src/app/lightning/channel/channel.component.html + 84,85 + + lightning.opening-transaction + + + Closing transaction + बन्द ट्रांसेक्शन + + src/app/lightning/channel/channel.component.html + 93,95 + + lightning.closing-transaction + + + Channel: + च्यानल: + + src/app/lightning/channel/channel.component.ts + 37 + + + + Open + खोल्नु + + src/app/lightning/channels-list/channels-list.component.html + 5,7 + + open + + + No channels to display + देखाउन कुनै च्यानलहरू छैनन् + + src/app/lightning/channels-list/channels-list.component.html + 29,35 + + lightning.empty-channels-list + + + Alias + उपनाम + + src/app/lightning/channels-list/channels-list.component.html + 35,37 + + + src/app/lightning/group/group.component.html + 72,74 + + + src/app/lightning/nodes-list/nodes-list.component.html + 5,6 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 60,61 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 57,58 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 10,11 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 10,11 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 10,12 + + lightning.alias + + + Status + स्थिति + + src/app/lightning/channels-list/channels-list.component.html + 37,38 + + status + + + Channel ID + च्यानल आईडी + + src/app/lightning/channels-list/channels-list.component.html + 41,45 + + channels.id + + + sats + sats / सैटस + + src/app/lightning/channels-list/channels-list.component.html + 60,64 + + + src/app/lightning/channels-list/channels-list.component.html + 84,88 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 17,20 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 63,66 + + + src/app/lightning/group/group-preview.component.html + 34,36 + + + src/app/lightning/group/group.component.html + 32,34 + + + src/app/lightning/group/group.component.html + 83,87 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 50,55 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 22,24 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 82,85 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 23,25 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 79,82 + + shared.sats + + + Avg Capacity + औसत क्षमता + + src/app/lightning/channels-statistics/channels-statistics.component.html + 13,15 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 107,110 + + ln.average-capacity + + + Avg Fee Rate + औसत शुल्क दर + + src/app/lightning/channels-statistics/channels-statistics.component.html + 26,28 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 114,117 + + ln.average-feerate + + + The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 28,30 + + ln.average-feerate-desc + + + Avg Base Fee + औसत आधार शुल्क + + src/app/lightning/channels-statistics/channels-statistics.component.html + 41,43 + + + src/app/lightning/channels-statistics/channels-statistics.component.html + 121,124 + + ln.average-basefee + + + The average base fee charged by routing nodes, ignoring base fees > 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 43,45 + + ln.average-basefee-desc + + + Med Capacity + मध्यम क्षमता + + src/app/lightning/channels-statistics/channels-statistics.component.html + 59,61 + + ln.median-capacity + + + Med Fee Rate + मध्यम शुल्क दर + + src/app/lightning/channels-statistics/channels-statistics.component.html + 72,74 + + ln.average-feerate + + + The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 74,76 + + ln.median-feerate-desc + + + Med Base Fee + मध्यम बेस शुल्क + + src/app/lightning/channels-statistics/channels-statistics.component.html + 87,89 + + ln.median-basefee + + + The median base fee charged by routing nodes, ignoring base fees > 5000ppm + + src/app/lightning/channels-statistics/channels-statistics.component.html + 89,91 + + ln.median-basefee-desc + + + Lightning node group + लाइटनिङ नोड समूह + + src/app/lightning/group/group-preview.component.html + 3,5 + + + src/app/lightning/group/group.component.html + 2,6 + + lightning.node-group + + + Nodes + नोडहरू + + src/app/lightning/group/group-preview.component.html + 25,29 + + + src/app/lightning/group/group.component.html + 23,27 + + + src/app/lightning/node-statistics/node-statistics.component.html + 17,18 + + + src/app/lightning/node-statistics/node-statistics.component.html + 54,57 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 30,32 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 13,16 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 60,62 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 22,26 + + lightning.node-count + + + Liquidity + तरलता + + src/app/lightning/group/group-preview.component.html + 29,31 + + + src/app/lightning/group/group.component.html + 27,29 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 17,19 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 26,28 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 18,20 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 12,13 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 11,12 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 12,13 + + lightning.liquidity + + + Channels + च्यानलहरू + + src/app/lightning/group/group-preview.component.html + 40,43 + + + src/app/lightning/group/group.component.html + 40,44 + + + src/app/lightning/node-statistics/node-statistics.component.html + 29,30 + + + src/app/lightning/node-statistics/node-statistics.component.html + 61,64 + + + src/app/lightning/nodes-list/nodes-list.component.html + 7,10 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 30,33 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 64,66 + + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 35,39 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 31,35 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 61,63 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 13,14 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 12,13 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 11,12 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 194,193 + + lightning.channels + + + Average size + औसत साइज + + src/app/lightning/group/group-preview.component.html + 44,46 + + + src/app/lightning/node/node-preview.component.html + 32,34 + + lightning.active-channels-avg + + + Location + स्थान + + src/app/lightning/group/group.component.html + 74,77 + + + src/app/lightning/node/node-preview.component.html + 38,42 + + + src/app/lightning/node/node-preview.component.html + 50,54 + + + src/app/lightning/node/node.component.html + 47,49 + + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 65,68 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 62,65 + + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 15,18 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 15,17 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 15,17 + + lightning.location + + + Network Statistics + नेटवर्क तथ्याङ्क + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 10 + + lightning.network-statistics-title + + + Channels Statistics + च्यानल तथ्याङ्क + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 24 + + lightning.channel-statistics-title + + + Lightning Network History + लाइटनिङ नेटवर्क इतिहास + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 49 + + lightning.network-history + + + Liquidity Ranking + तरलता रैंकिंग + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 62 + + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts + 29 + + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html + 8 + + lightning.liquidity-ranking + + + Connectivity Ranking + कनेक्टिविटी रैंकिंग + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 76 + + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html + 22 + + lightning.connectivity-ranking + + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + + + Percentage change past week + गत हप्ता प्रतिशत परिवर्तन + + src/app/lightning/node-statistics/node-statistics.component.html + 5,7 + + + src/app/lightning/node-statistics/node-statistics.component.html + 18,20 + + + src/app/lightning/node-statistics/node-statistics.component.html + 30,32 + + mining.percentage-change-last-week + + + Lightning node + लाइटनिंग नोड + + src/app/lightning/node/node-preview.component.html + 3,5 + + + src/app/lightning/node/node.component.html + 2,4 + + + src/app/lightning/node/node.component.html + 260,262 + + lightning.node + + + Active capacity + सक्रिय क्षमता + + src/app/lightning/node/node-preview.component.html + 20,22 + + + src/app/lightning/node/node.component.html + 27,30 + + lightning.active-capacity + + + Active channels + सक्रिय च्यानलहरू + + src/app/lightning/node/node-preview.component.html + 26,30 + + + src/app/lightning/node/node.component.html + 34,38 + + lightning.active-channels + + + Country + देश + + src/app/lightning/node/node-preview.component.html + 44,47 + + country + + + No node found for public key "" + + src/app/lightning/node/node.component.html + 17,19 + + lightning.node-not-found + + + Average channel size + सरदर च्यानल साइज + + src/app/lightning/node/node.component.html + 40,43 + + lightning.active-channels-avg + + + Avg channel distance + + src/app/lightning/node/node.component.html + 56,57 + + lightning.avg-distance + + + Color + रङ + + src/app/lightning/node/node.component.html + 79,81 + + lightning.color + + + ISP + + src/app/lightning/node/node.component.html + 86,87 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 59,60 + + isp + + + Exclusively on Tor + + src/app/lightning/node/node.component.html + 93,95 + + tor + + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + + + Open channels + खुल्ला च्यानलहरू + + src/app/lightning/node/node.component.html + 240,243 + + lightning.open-channels + + + Closed channels + बन्द च्यानलहरू + + src/app/lightning/node/node.component.html + 244,247 + + lightning.open-channels + + + Node: + नोड: + + src/app/lightning/node/node.component.ts + 60 + + + + (Tor nodes excluded) + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.html + 8,11 + + + src/app/lightning/nodes-map/nodes-map.component.html + 7,10 + + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 10,15 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 37,41 + + lightning.tor-nodes-excluded + + + Lightning Nodes Channels World Map + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts + 69 + + + + No geolocation data available + कुनै जियोलोकेशन डाटा उपलब्ध छैन + + src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts + 218,213 + + + + Active channels map + + src/app/lightning/nodes-channels/node-channels.component.html + 2,3 + + lightning.active-channels-map + + + Indexing in progress + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 121,116 + + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts + 112,107 + + + + Reachable on Clearnet Only + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 164,161 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 303,302 + + + + Reachable on Clearnet and Darknet + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 185,182 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 295,294 + + + + Reachable on Darknet Only + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 206,203 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 287,286 + + + + Share + सेयर + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html + 29,31 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 59,61 + + lightning.share + + + nodes + नोडहरू + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts + 103,102 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 157,156 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 189,188 + + + + BTC capacity + BTC क्षमता + + src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts + 104,102 + + + + Lightning nodes in + मा लाइटनिङ नोडहरू + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 3,4 + + lightning.nodes-in-country + + + ISP Count + ISP गणना + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 34,38 + + lightning.isp-count + + + Top ISP + शीर्ष ISP + + src/app/lightning/nodes-per-country/nodes-per-country.component.html + 38,40 + + lightning.top-isp + + + Lightning nodes in + मा लाइटनिङ नोडहरू + + src/app/lightning/nodes-per-country/nodes-per-country.component.ts + 35 + + + + Clearnet Capacity + क्लियरनेट क्षमता + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 6,8 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 83,86 + + lightning.clearnet-capacity + + + How much liquidity is running on nodes advertising at least one clearnet IP address + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 8,9 + + lightning.clearnet-capacity-desc + + + Unknown Capacity + अज्ञात क्षमता + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 13,15 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 89,92 + + lightning.unknown-capacity + + + How much liquidity is running on nodes which ISP was not identifiable + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 15,16 + + lightning.unknown-capacity-desc + + + Tor Capacity + टोर क्षमता + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 20,22 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 95,97 + + lightning.tor-capacity + + + How much liquidity is running on nodes advertising only Tor addresses + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 22,23 + + lightning.tor-capacity-desc + + + Top 100 ISPs hosting LN nodes + LN नोड होस्ट गर्ने शीर्ष 100 ISP हरू + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html + 31,33 + + lightning.top-100-isp-ln + + + BTC + BTC + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 158,156 + + + src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts + 190,188 + + + + Lightning ISP + लाइटनिङ ISP + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 3,5 + + lightning.node-isp + + + Top country + शीर्ष देश + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 39,41 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 35,37 + + lightning.top-country + + + Top node + शीर्ष नोड + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html + 45,48 + + lightning.top-node + + + Lightning nodes on ISP: [AS] + ISP मा लाइटनिङ नोडहरू: [AS ] + + src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts + 44 + + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.ts + 39 + + + + Lightning nodes on ISP: + ISP मा लाइटनिङ नोड्स: + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 2,4 + + lightning.nodes-for-isp + + + ASN + ASN + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 11,14 + + lightning.asn + + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + + + Top 100 oldest lightning nodes + शीर्ष 100 पुरानो लाइटनिंग नोड्स + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html + 3,7 + + lightning.top-100-oldest-nodes + + + Oldest lightning nodes + सबैभन्दा पुरानो लाइटनिंग नोड्स + + src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts + 27 + + + + Top 100 nodes liquidity ranking + शीर्ष 100 नोड्स तरलता रैंकिंग + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 3,7 + + lightning.top-100-liquidity + + + Top 100 nodes connectivity ranking + शीर्ष 100 नोड कनेक्टिविटी रैंकिंग + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 3,7 + + lightning.top-100-connectivity + + + Oldest nodes + सबैभन्दा पुरानो नोड्स + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html + 36 + + lightning.top-channels-age + + + Top lightning nodes + शीर्ष लाइटनिंग नोड्स + + src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts + 22 + + + + Indexing in progress + अनुक्रमणिका प्रगतिमा छ + + src/app/lightning/statistics-chart/lightning-statistics-chart.component.html + 52,55 + + lightning.indexing-in-progress + + + year + वर्ष + + src/app/shared/i18n/dates.ts + 3 + + + + years + वर्ष + + src/app/shared/i18n/dates.ts + 4 + + + + month + महिना + + src/app/shared/i18n/dates.ts + 5 + + + + months + महिना + + src/app/shared/i18n/dates.ts + 6 + + + + week + हप्ता + + src/app/shared/i18n/dates.ts + 7 + + + + weeks + हप्ता + + src/app/shared/i18n/dates.ts + 8 + + + + day + दिन + + src/app/shared/i18n/dates.ts + 9 + + + + days + दिन + + src/app/shared/i18n/dates.ts + 10 + + + + hour + घण्टा + + src/app/shared/i18n/dates.ts + 11 + + + + hours + घण्टा + + src/app/shared/i18n/dates.ts + 12 + + + + minute + मिनेट + + src/app/shared/i18n/dates.ts + 13 + + + + minutes + मिनेट + + src/app/shared/i18n/dates.ts + 14 + + + + second + सेकेन्ड + + src/app/shared/i18n/dates.ts + 15 + + + + seconds + सेकेन्ड + + src/app/shared/i18n/dates.ts + 16 + + + + Transaction fee + ट्रांसेक्शन शुल्क + + src/app/shared/pipes/scriptpubkey-type-pipe/scriptpubkey-type.pipe.ts + 11 + + + + + \ No newline at end of file diff --git a/frontend/src/locale/messages.nl.xlf b/frontend/src/locale/messages.nl.xlf index 93b9e2760..b45b1dc11 100644 --- a/frontend/src/locale/messages.nl.xlf +++ b/frontend/src/locale/messages.nl.xlf @@ -6,15 +6,14 @@ Sluiten node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Dia van + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Vorige node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Volgende node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Selecteer maand node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Selecteer jaar node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Vorige maand node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Volgende maand node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Eerste node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Vorige node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Volgende node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Laatste node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ UU node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Uren node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minuten node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Uren verhogen node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Uren verlagen node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Minuten verhogen node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Minuten verlagen node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Seconden node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Seconden verhogen node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Seconden verlagen node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Sluiten node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Totaal ontvangen src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Totaal verstuurd src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Balans src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transactie src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transacties src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transactie src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Community-allianties src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Projectvertalers src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Projectbijdragers src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Projectleden src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Projectonderhouders src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Vertrouwelijk src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ van transactie src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ van transacties src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Fout bij het laden van adresdata. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ Er zijn veel transacties op dit adres, meer dan je backend aankan. Zie voor meer informatie over het opzetten van een sterkere backend. Overweeg in plaats daarvan dit adres op de officiële Mempool-website te bekijken: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Naam src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Nauwkeurigheid src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Uitgever src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ Uitgifte-TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Erin gezet src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Eruit gehaald src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Vernietigde hoeveelheid src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Circulerend bedrag src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ van   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ In-, Uithaal-, en vernietig-transacties src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Uitgifte- en vernietigtransacties src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Fout bij het laden van activagegevens. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Grootte - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Gewicht - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Blokvergoedingstarieven @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Vergoeding @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Nauwkeurigheid Blokvoorspelling @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + Grootte + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Gewicht + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Vergoedingbereik + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Gebaseerd op een gemiddelde native segwit-transactie van 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ Subsidie + vergoedingen: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ Moeilijkheid src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ Blokheader-hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ Details src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ Fout bij laden van data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - Beloning + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Beloning + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ Vergoedingen src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ TX's src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - Vergoedingbereik - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Stapel van mempoolblokken @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - Beloning Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Gemiddelde minerbeloning per transactie in de laatste 144 blokken + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Gem. Vergoeding + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Beloning Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ Zoek src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Onbevestigd src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ Eerst gezien src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ Verwacht src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ Binnen een aantal uren (of meer) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ Transactie niet gevonden. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ Wachten tot het in de mempool verschijnt... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ Effectief vergoedingstarief src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (Nieuw-gegenereerde munten) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ Getuige-data src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ P2SH claim-script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ P2WSH claim-script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ Vorig output-script src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ Vorig output-type src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ Peg-out naar src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Toon alle inputs om vergoedingsgegevens te laten zien + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Deze transactie gebruikt Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ Deze transactie ondersteund Replace-By-Fee (RBF) NIET en de vergoeding kan niet met deze methode worden verhoogd src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ Minimumvergoeding src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ Weggooien src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ Geheugengebruik src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ L-BTC in circulatie src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ Eindpunt src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ Omschrijving src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ Default push: actie: 'want', data: ['blocks', ...] om uit te drukken wat je gepushed wilt hebben. Beschikbaar: blocks, mempool-blocks, live-2h-chart, en stats.Pushtransacties gerelateerd aan adres: 'track-address': '3PbJ...bF9B' om alle nieuwe transacties met dat adres als invoer of uitvoer te ontvangen. Retourneert een reeks transacties. address-transactions voor nieuwe mempooltransacties, en block-transactions voor nieuwe blokbevestigde transacties. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.pl.xlf b/frontend/src/locale/messages.pl.xlf index 45920f095..58e3b5c19 100644 --- a/frontend/src/locale/messages.pl.xlf +++ b/frontend/src/locale/messages.pl.xlf @@ -6,15 +6,14 @@ Zamknij node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Slajd z + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Poprzednie node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Następne node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Wybierz miesiąc node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Wybierz rok node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Poprzedni miesiąc node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Następny miesiąc node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Pierwsza node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Poprzednia node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Następna node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Ostatnia node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Godzin node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minut node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Zwiększ godziny node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Zmniejsz godziny node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Zwiększ minuty node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Zmniejsz minuty node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Sekund node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Zwiększ sekundy node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Zmniejsz sekundy node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Zamknięcie node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Otrzymano łącznie src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Wysłano łącznie src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Saldo src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transakcja src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transakcji src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transakcja src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Sojusze społecznościowe src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Tłumacze projektu src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Współtwórcy projektu src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Członkowie projektu src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Opiekunowie projektu src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Multisig z src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Poufne src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ z transakcji src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ z transakcji src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Błąd podczas ładowania adresu. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Pod tym adresem jest zbyt wiele transakcji by Twój system backend mógł sobie z tym poradzić. Zobacz więcej na konfigurowanie silniejszego systemu backend. Rozważ obejrzenie tego adresu na oficjalnej stronie Mempool: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ Nazwa src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Dokładność src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Emitent src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ Transakcja emisji src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Transfer do (peg in) src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Transfer z (peg out) src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Spalona ilość src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Ilość w obiegu src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ z   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ Transakcje Peg In/Out oraz spalania src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Transakcje emisji i spalania src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Błąd podczas ładowania danych aktywa. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Blok - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Szablon vs wydobyte - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Rozmiar - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Waga - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Częstość dopasowania - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Brakujące transakcje - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Dodane transakcje - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Brakujące - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Dodane - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Stawki opłat bloku @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Opłata @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Dodane + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Dokładność prognoz bloków @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Rozmiar + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Waga + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Blok @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Nieznany + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Zakres opłat + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Na podstawie przeciętnej transakcji w natywnym segwit o długości 140 vBajtów src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Subsydium + opłaty: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bity src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ Korzeń Merkle'a src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Trudność src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Unikalna liczba src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Nagłówek bloku w postaci szesnastkowej src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Szczegóły src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Błąd ładowania danych. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Nagroda + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Nagroda + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ Opłaty src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ Transakcje src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - Zakres opłat - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Stos bloków mempool @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - Zyski na transakcję + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Średnia nagroda wydobywcy na transakcję w ostatnich 144 blokach + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Średni poziom opłat + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Zyski na transakcję + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Eksploruj cały ekosystem Bitcoina src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Szukaj src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Niepotwierdzone src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ Pierwszy raz widziano src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ Szacowany czas src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ W ciągu kilku godzin (lub dłużej) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Potomek src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Przodek src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ Przepływ src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ Schowaj diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ Pokaż więcej src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ Pokaż mniej src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ Pokaż diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ Czas blokady src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ Transakcja nie odnaleziona. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ Oczekiwanie aż pojawi się w mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ Efektywny poziom opłaty src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (Nowo Wygenerowane Monety) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (Postać szestnastkowa) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Świadek src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ Skrypt realizacji P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ Skrypt świadka P2WSH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ Poprzedni skrypt wyjściowy src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ Poprzedni typ wyjścia src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ Peg-out do src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (Postać szestnastkowa) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Pokaż wszystkie wejścia by ujawnić dane o opłatach + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs inne wejścia @@ -4707,7 +4814,11 @@ Wejście src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ Wyjście src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Ta transakcja wykorzystuje Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ Ta transakcja wspiera Replace-By-Fee (RBF) co umożliwia zwiększenie opłaty src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ Ta transakcja NIE obsługuje Replace-By-Fee (RBF) i opłata nie może zostać podbita używając tej metody src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ Minimalna opłata src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ Próg odrzucenia src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ Zużycie pamięci src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ L-BTC w obiegu src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ Usługa REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Końcówka src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ Opis src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ Domyślny push: action: 'want', data: ['blocks', ...] aby wyrazić co chcesz wysłać. Dostępne: blocks, mempool-blocks, live-2h-chart i stats.Wysłanie transakcji związanych z adresem: 'track-address': '3PbJ...bF9B' aby otrzymać wszystkie nowe transakcje zawierające ten adres jako wejście lub wyjście. Zwraca tablicę transakcji. address-transactions dla nowych transakcji mempool, i block-transactions dla nowo potwierdzonych transakcji w bloku. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ Opłata bazowa src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ Ten kanał wspiera routing bez opłaty bazowej src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ Zero opłaty bazowej src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ Ten kanał nie wspiera routingu bez opłaty bazowej src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ Niezerowa opłata bazowa src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ kanałów src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel kanał lightning @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Transakcja otwarcia src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ Transakcja zamknięcia src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Zmiana procentowa w zeszłym tygodniu @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - Nieznany + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Kolor src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ Wyłącznie na sieci Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Otwarte kanały src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ Zamknięte kanały src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ Węzeł: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - Indeksowanie w toku + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes Ranking 100 węzłów wg wieku diff --git a/frontend/src/locale/messages.pt.xlf b/frontend/src/locale/messages.pt.xlf index 557bc5fcb..d854b5a52 100644 --- a/frontend/src/locale/messages.pt.xlf +++ b/frontend/src/locale/messages.pt.xlf @@ -6,15 +6,14 @@ Fechar node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Slide de + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Anterior node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Próximo node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Selecione o mês node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Selecione o ano node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Mês anterior node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Mês seguinte node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Primeiro node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Anterior node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Próximo node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Último node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ H node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Horas node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ M node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minutos node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Horas incrementadas node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Horas decrementadas node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Minutos incrementados node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Minutos decrementados node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ S node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Segundos node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Segundos incrementados node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Segundos decrementados node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Fechar node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Total recebido src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Total enviado src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Saldo src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transação src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transações src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transação src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1471,6 +1461,7 @@ Community Integrations + Integrações da comunidade src/app/components/about/about.component.html 191,193 @@ -1482,7 +1473,7 @@ Alianças da comunidade src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1482,7 @@ Tradutores do Projeto src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1491,7 @@ Contribuidores do projeto src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1500,7 @@ Membros do Projeto src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1509,7 @@ Mantenedores do projeto src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1544,9 +1535,10 @@ Multisig of + Multisig de src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1559,11 @@ Confidencial src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1612,7 @@ of transação src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1621,7 @@ of transações src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1630,7 @@ Erro ao carregar os dados do endereço. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1639,7 @@ Existem muitas transações neste endereço, mais do que seu backend pode lidar. Veja mais em sobre como configurar um backend mais poderoso. Considere ver este endereço no site oficial do Mempool: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1658,7 @@ Nome src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1679,7 @@ Precisão src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1689,7 @@ Emissor src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1699,7 @@ Emissão da transação src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1709,7 @@ Indexado em src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1719,7 @@ Atrelado src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1729,7 @@ Quantia queimada src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1739,11 @@ Quantidade circulante src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1753,7 @@ de   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1762,7 @@ Transações Indexadas/Atreladas e Queimadas src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1771,7 @@ Transações emitidas e queimadas src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1780,7 @@ Erro ao carregar os dados do ativo. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2017,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Tamanho - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Peso - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Cotas das Taxas dos Blocos @@ -2261,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Taxa @@ -2274,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Adicionado + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Precisão do Bloco Projetado @@ -2470,10 +2393,15 @@ No data to display yet. Try again later. + Sem informações para exibir. Tente novamente mais tarde. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,8 +2449,77 @@ mining.block-sizes-weights + + Size + Tamanho + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Peso + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block + Bloco src/app/components/block/block-preview.component.html 3,7 @@ -2543,18 +2540,14 @@ Median fee - Taxa média + Taxa mediana src/app/components/block/block-preview.component.html 36,37 src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2564,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2586,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2599,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2624,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Desconhecido + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Intervalo de taxas + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Com base na transação segwit nativa média de 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,38 +2708,62 @@ Recompensa + taxas: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits Merkle root - Árvore Merkle + Raiz Merkle src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2772,7 @@ Dificuldade src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2801,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2810,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2819,23 @@ Detalhes src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2845,11 @@ Erro ao carregar dados. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2857,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2869,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2856,9 +2919,8 @@ latest-blocks.mined - - Reward - Recompensa + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2929,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Recompensa + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2957,7 @@ Taxas src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2974,11 @@ Transações src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2994,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3071,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3233,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3246,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,21 +3259,21 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second Unconfirmed - Sem confirmar + Não confirmado src/app/components/footer/footer.component.html 19,21 src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3250,6 +3325,7 @@ Hashrate & Difficulty + Hashrate & Dificuldade src/app/components/graphs/graphs.component.html 15,16 @@ -3266,6 +3342,7 @@ Lightning Nodes Per Network + Nós Lightning por Rede src/app/components/graphs/graphs.component.html 34 @@ -3286,6 +3363,7 @@ Lightning Network Capacity + Capacidade da Rede Lightning src/app/components/graphs/graphs.component.html 36 @@ -3306,6 +3384,7 @@ Lightning Nodes Per ISP + Nós Lightning por Provedora src/app/components/graphs/graphs.component.html 38 @@ -3318,6 +3397,7 @@ Lightning Nodes Per Country + Nós Lightning por País src/app/components/graphs/graphs.component.html 40 @@ -3334,6 +3414,7 @@ Lightning Nodes World Map + Mapa Mundial de Nós Lightning src/app/components/graphs/graphs.component.html 42 @@ -3350,6 +3431,7 @@ Lightning Nodes Channels World Map + Mapa Mundial de Canais Lightning src/app/components/graphs/graphs.component.html 44 @@ -3470,6 +3552,7 @@ Lightning Explorer + Explorador Lightning src/app/components/master-page/master-page.component.html 44,45 @@ -3482,6 +3565,7 @@ beta + beta src/app/components/master-page/master-page.component.html 45,48 @@ -3501,15 +3585,6 @@ documentation.title - - Fee span - Extensão da taxa - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Pilha de blocos mempool @@ -3737,6 +3812,7 @@ mining pool + piscina de mineração src/app/components/pool/pool-preview.component.html 3,5 @@ -3781,11 +3857,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4035,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4049,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4079,8 @@ mining.rewards-desc - - Reward Per Tx - Recompensa por Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4089,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Média da recompensa por transação dos mineradores nos últimos 144 blocos + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Taxa Média + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4129,35 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Recompensa por Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem + Explore o Ecossistema Completo do Bitcoin src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4166,7 @@ Busca src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4188,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4425,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Sem confirmar src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4462,11 @@ Visto pela primeira vez src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4496,7 @@ Tempo estimado src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4506,7 @@ Em várias horas (ou mais) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4516,11 @@ Descendente src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,53 +4530,70 @@ Ancestral src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor Flow + Fluxo src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow Hide diagram + Esconder diagrama src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram Show more + Mostrar mais src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more Show less + Mostrar menos src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less Show diagram + Mostrar diagrama src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4602,7 @@ Tempo travado src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4611,7 @@ Transação não encontrada. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4620,7 @@ Aguardando que apareça no mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4629,7 @@ Taxa de transação efetiva src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4639,7 @@ Conteúdo no bloco src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4648,7 @@ (Moedas Recém-Geradas) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4657,7 @@ Indexado em src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4666,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4676,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4686,7 @@ Testemunho src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4695,7 @@ P2SH script de resgate src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4704,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4713,7 @@ P2WSH script de testemunho src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4722,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4731,7 @@ Script de saída anterior src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4740,7 @@ Tipo de saída anterior src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4749,7 @@ Peg-out para src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4758,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,22 +4768,30 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Exibir todas as entradas para revelar dados de taxas + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs + outras entradas src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4665,6 +4800,7 @@ other outputs + outras saídas src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4673,22 +4809,33 @@ Input + Entrada src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input Output + Saída src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output This transaction saved % on fees by using native SegWit + Esta transação economizou % em taxas ao usar SegWit nativo src/app/components/tx-features/tx-features.component.html 2 @@ -4715,6 +4862,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + Esta transação economizou % em taxas ao usar SegWit e poderia economizar mais % se utilizasse SegWit nativo src/app/components/tx-features/tx-features.component.html 4 @@ -4723,6 +4871,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + Esta transação poderia economizar % em taxas ao usar SegWit ou % ao usar SegWit-P2SH src/app/components/tx-features/tx-features.component.html 6 @@ -4731,6 +4880,7 @@ This transaction uses Taproot and thereby saved at least % on fees + Esta transação utiliza Taproot e portanto economizou ao menos % em taxas src/app/components/tx-features/tx-features.component.html 12 @@ -4739,6 +4889,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4755,11 +4906,16 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + Esta transação utiliza Taproot e já economizou ao menos % em taxas, mas poderia economizar mais % ao utilizar Taproot completamente src/app/components/tx-features/tx-features.component.html 14 @@ -4768,26 +4924,36 @@ This transaction could save % on fees by using Taproot + Esta transação poderia economizar % em taxas ao utilizar Taproot src/app/components/tx-features/tx-features.component.html 16 Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Essa transação usa Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot This transaction supports Replace-By-Fee (RBF) allowing fee bumping + Esta transação suporta Replace-By-Fee (RBF), permitindo priorização por taxa src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4962,11 @@ Replace-by-fee src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4976,7 @@ Essa transação NÃO suporta Replace-By-Fee (RBF) e não pode ter a taxa aumentada usando tal método. src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4880,10 +5046,10 @@ Minimum fee - Mínimo exigido + Taxa mínima src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,17 +5059,17 @@ Mínimo exigido src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging Memory usage - Uso do Mempool + Utilização da memória src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5079,7 @@ L-BTC em circulação src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5088,7 @@ Serviço de API REST src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5097,11 @@ Terminal src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5110,11 @@ Descrição src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5122,7 @@ Push padrão: ação: 'want', data: ['blocks', ...] para expressar o que você deseja push. Disponível: blocks, mempool-blocks, live-2h-chart e stats.Push transações relacionadas ao endereço: 'track-address': '3PbJ ... bF9B' para receber todas as novas transações contendo aquele endereço como entrada ou saída. Retorna uma matriz de transações. address-transactions para novas transações de mempool e block-transactions para novas transações de bloco confirmadas. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5170,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5178,23 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee + Taxa base src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5206,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,53 +5216,63 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing + Este canal suporta roteamento com taxa base zero src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip Zero base fee + Taxa base zero src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee This channel does not support zero base fee routing + Este canal não suporta taxa base zero src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip Non-zero base fee + Taxa base não-nula src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee Min HTLC + HTLC min src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc Max HTLC + HTLC máx src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,24 +5280,44 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta channels + canais src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel + canal lightning src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5125,6 +5326,7 @@ Inactive + Inativo src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5135,12 +5337,13 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive Active + Ativo src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5151,12 +5354,13 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active Closed + Fechado src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5171,12 +5375,13 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed Created + Criado src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5189,6 +5394,7 @@ Capacity + Capacidade src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5241,6 +5447,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5261,25 +5468,27 @@ Lightning channel + Canal lightning src/app/lightning/channel/channel.component.html 2,5 src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel Last update + Última atualização src/app/lightning/channel/channel.component.html 33,34 src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5305,6 +5514,7 @@ Closing date + Data de fechamento src/app/lightning/channel/channel.component.html 37,38 @@ -5315,24 +5525,35 @@ lightning.closing_date - - Opening transaction + + Closed by src/app/lightning/channel/channel.component.html - 73,74 + 52,54 + + lightning.closed_by + + + Opening transaction + Transação de abertura + + src/app/lightning/channel/channel.component.html + 84,85 lightning.opening-transaction Closing transaction + Transação de fechamento src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction Channel: + Canal: src/app/lightning/channel/channel.component.ts 37 @@ -5340,6 +5561,7 @@ Open + Aberto src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5348,6 +5570,7 @@ No channels to display + Sem canais para mostrar src/app/lightning/channels-list/channels-list.component.html 29,35 @@ -5356,6 +5579,7 @@ Alias + Apelido src/app/lightning/channels-list/channels-list.component.html 35,37 @@ -5392,6 +5616,7 @@ Status + Status src/app/lightning/channels-list/channels-list.component.html 37,38 @@ -5400,6 +5625,7 @@ Channel ID + ID do Canal src/app/lightning/channels-list/channels-list.component.html 41,45 @@ -5408,13 +5634,14 @@ sats + sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5460,6 +5687,7 @@ Avg Capacity + Capacidade Média src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5472,6 +5700,7 @@ Avg Fee Rate + Taxa Média src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5484,6 +5713,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Taxa média cobrada por nós de roteamento, ignorando taxas > 0.5% ou 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5492,6 +5722,7 @@ Avg Base Fee + Taxa Base Média src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5504,6 +5735,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + Taxa média cobrada por nós de roteamento, ignorando taxas > 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5512,6 +5744,7 @@ Med Capacity + Capacidade Mediana src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5520,6 +5753,7 @@ Med Fee Rate + Taxa Mediana src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5528,6 +5762,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Taxa mediana cobrada por nós de roteamento, ignorando taxas > 0.5% ou 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5536,6 +5771,7 @@ Med Base Fee + Taxa Base Mediana src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5544,6 +5780,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + Taxa mediana cobrada por nós de roteamento, ignorando taxas > 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5564,6 +5801,7 @@ Nodes + Nós src/app/lightning/group/group-preview.component.html 25,29 @@ -5596,14 +5834,11 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count Liquidity + Liquidez src/app/lightning/group/group-preview.component.html 29,31 @@ -5640,6 +5875,7 @@ Channels + Canais src/app/lightning/group/group-preview.component.html 40,43 @@ -5700,6 +5936,7 @@ Average size + Tamanho Médio src/app/lightning/group/group-preview.component.html 44,46 @@ -5712,6 +5949,7 @@ Location + Localização src/app/lightning/group/group.component.html 74,77 @@ -5752,6 +5990,7 @@ Network Statistics + Estatísticas da Rede src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5760,6 +5999,7 @@ Channels Statistics + Estatísticas de Canais src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5768,6 +6008,7 @@ Lightning Network History + Histórico da Rede Lightning src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5776,6 +6017,7 @@ Liquidity Ranking + Classificação de Liquidez src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5792,6 +6034,7 @@ Connectivity Ranking + Classificação de Conectividade src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5802,8 +6045,17 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week + Mudança percentual na última semana src/app/lightning/node-statistics/node-statistics.component.html 5,7 @@ -5820,6 +6072,7 @@ Lightning node + Nó Lightning src/app/lightning/node/node-preview.component.html 3,5 @@ -5830,12 +6083,13 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node Active capacity + Capacidade Ativa src/app/lightning/node/node-preview.component.html 20,22 @@ -5848,6 +6102,7 @@ Active channels + Canais Ativos src/app/lightning/node/node-preview.component.html 26,30 @@ -5860,6 +6115,7 @@ Country + País src/app/lightning/node/node-preview.component.html 44,47 @@ -5868,6 +6124,7 @@ No node found for public key "" + Nenhum nó encontrado para a chave pública &quot;&quot; src/app/lightning/node/node.component.html 17,19 @@ -5876,45 +6133,36 @@ Average channel size + Tamanho médio de canal src/app/lightning/node/node.component.html 40,43 lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color + Cor src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color ISP + Provedor src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5924,37 +6172,108 @@ Exclusively on Tor + Exclusivamente no Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor - - Open channels + + Liquidity ad src/app/lightning/node/node.component.html - 145,148 + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + + + Open channels + Canais abertos + + src/app/lightning/node/node.component.html + 240,243 lightning.open-channels Closed channels + Canais fechados src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels Node: + Nó: src/app/lightning/node/node.component.ts - 42 + 60 (Tor nodes excluded) + (Nós da rede Tor excluídos) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -5975,6 +6294,7 @@ Lightning Nodes Channels World Map + Mapa Mundial de Canais de Nós Lightning src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -5982,6 +6302,7 @@ No geolocation data available + Informação de geolocalização não disponível src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 218,213 @@ -5989,14 +6310,15 @@ Active channels map + Mapa de canais ativos src/app/lightning/nodes-channels/node-channels.component.html 2,3 lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6008,6 +6330,7 @@ Reachable on Clearnet Only + Alcançável apenas via Clearnet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6019,6 +6342,7 @@ Reachable on Clearnet and Darknet + Alcançável via Clearnet e Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6030,6 +6354,7 @@ Reachable on Darknet Only + Alcançável apenas via Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6041,6 +6366,7 @@ Share + Compartilhar src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6053,6 +6379,7 @@ nodes + nós src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6068,6 +6395,7 @@ BTC capacity + Capacidade de BTC src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6075,6 +6403,7 @@ Lightning nodes in + Nós lightning no(a) src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6083,6 +6412,7 @@ ISP Count + Número de Provedores src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6099,6 +6429,7 @@ Lightning nodes in + Nós lightning no(a) src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6106,6 +6437,7 @@ Clearnet Capacity + Capacidade na Clearnet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6118,6 +6450,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + Quanta liquidez existe em nós anunciando ao menos um endereço IP na clearnet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6126,6 +6459,7 @@ Unknown Capacity + Capacidade Desconhecida src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6138,6 +6472,7 @@ How much liquidity is running on nodes which ISP was not identifiable + Quanta liquidez existe em nós cujo provedor não foi identificado src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6146,6 +6481,7 @@ Tor Capacity + Capacidade no Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6158,6 +6494,7 @@ How much liquidity is running on nodes advertising only Tor addresses + Quanta liquidez existe em nós anunciando apenas endereços Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6166,6 +6503,7 @@ Top 100 ISPs hosting LN nodes + Top 100 provedores hospendando nós lightning src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6174,6 +6512,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6185,6 +6524,7 @@ Lightning ISP + Provedor Lightning src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6193,6 +6533,7 @@ Top country + Melhor país src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6205,6 +6546,7 @@ Top node + Melhor nó src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6213,6 +6555,7 @@ Lightning nodes on ISP: [AS] + Nós lightning no Provedor: [AS] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6224,6 +6567,7 @@ Lightning nodes on ISP: + Nós lightning no Provedor: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6232,14 +6576,24 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes + 100 nós lightning mais antigos src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6248,6 +6602,7 @@ Oldest lightning nodes + Nós lightning mais antigos src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 @@ -6255,6 +6610,7 @@ Top 100 nodes liquidity ranking + Ranking dos Top 100 nós por liquidez src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html 3,7 @@ -6263,6 +6619,7 @@ Top 100 nodes connectivity ranking + Ranking dos Top 100 nós por conectividade src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 3,7 @@ -6271,6 +6628,7 @@ Oldest nodes + Nós mais antigos src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6286,6 +6644,7 @@ Indexing in progress + Indexação em progresso src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 diff --git a/frontend/src/locale/messages.ro.xlf b/frontend/src/locale/messages.ro.xlf index a62f4f174..1eddb2845 100644 --- a/frontend/src/locale/messages.ro.xlf +++ b/frontend/src/locale/messages.ro.xlf @@ -6,15 +6,14 @@ Închide node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Pagina din + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Anterior node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Următorul node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Selectează luna node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Selectează anul node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Luna trecută node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Luna viitoare node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Primul node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Anteriorul node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Următorul node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Ultimul node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Ore node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ LL node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minute node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Incrementează orele node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Decrementează orele node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Incrementează minutele node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Decrementează minutele node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Secunde node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Incrementează secundele node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Decrementează secundele node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Închide node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Total primit src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Total trimis src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Balanță src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ tranzacție src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ tranzacții src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Tranzacţie src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Alianțe din Comunitate src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Traducători ai proiectului src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Contribuitori ai proiectului src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Membrii Proiectului src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Întreținători ai proiectului src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Confidenţial src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ tranzacție din src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ tranzacții din src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Eroare la încărcarea datelor adresei. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ Sunt multe tranzacții în această adresă, mai multe decât poate prelucra nodul tău. Vezi mai multe instalezi un nod mai puternic. Consideră vizualizarea acestei adrese pe site-ul oficial Mempool: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Nume src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Precizie src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Emitent src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ Emitent TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Legat în src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Legat spre src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Cantitatea distrusă src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Cantitatea în circulație src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ din   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Tranzacții Legat În / Spre și Distruse src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Emiterea și Tranzacțiile de Distrugere src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Eroare la încărcarea datelor despre active. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Mărime - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Greutate - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Valori comisioane de bloc @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Comision @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Acuratețe Predicție Blocuri @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + Mărime + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Greutate + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Interval comisioane + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Pe baza valorii medii a tranzacției segwit native de 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ Subvenție + comisioane: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Biți src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ Rădăcină Merkle src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ Dificultate src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ Număr arbitrar src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ Valoarea Hex a antetului blocului src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ Detalii src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ Eroare la încărcarea datelor. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Fond comun @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - Recompensă + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Recompensă + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ Comisioane src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - Interval comisioane - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Stivă de blocuri din mempool @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - Recompensă Per Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Valorea medie a recompensei minerilor pentru ultimele 144 de blocuri + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Comision Mediu + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Recompensă Per Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ Căutare src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Neconfirmate src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ Prima dată văzut src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ În câteva ore (sau mai mult) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ Descendent src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ Strămoş src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ Tranzacția nu a fost găsită. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ Se așteaptă să apară în mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ Rata efectivă a comisionului src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (Monede Nou Generate) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ Legat-în src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ Martor src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ Script valorificare P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ Script martor P2WSH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ Script de ieșire anterior src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ Tip ieșire anterior src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ Legat-spre src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Arată toate intrările pentru a descoperi informațiile despre comision + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Această tranzacție folosește Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ Această tranzacție NU acceptă Replace-By-Fee (RBF) și nu permite creșterea ulterioară a valorii comisionului folosind această metodă src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ Comision minim src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ Înlăturare src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ Utilizarea memoriei src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ L-BTC în circulație src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ Serviciu REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ Terminație src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ Descriere src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ Trimitere implicită: acțiune: 'want', data: ['blocks', ...] pentru a exprima ce dorești să trimiți. Disponibil: blocks, mempool-blocks, live-2h-chart, și stats.Tranzacții de trimitere pentru adresa: 'track-address': '3PbJ...bF9B' pentru a primi toate tranzacțiile noi care conțin acea adresă ca intrare sau iesire. Returnează un șir de tranzacții. address-transactions pentru tranzacții noi din mempool, și block-transactions pentru tranzacții confirmate din blocuri noi. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.ru.xlf b/frontend/src/locale/messages.ru.xlf index 53ae56dde..edfadc114 100644 --- a/frontend/src/locale/messages.ru.xlf +++ b/frontend/src/locale/messages.ru.xlf @@ -6,15 +6,14 @@ Закрыть node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Слайд из + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Предыдущий node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Следующий node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Выберите месяц node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Выберите год node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Предыдущий месяц node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Следующий месяц node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Первый node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Предыдущий node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Следующий node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Последний node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ ч. node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Часы node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ м. node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Минуты node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Добавить часы node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Убавить часы node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Добавить минуты node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Убавить минуты node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ с. node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Секунды node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Добавить секунды node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Убавить секунды node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Закрыть node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Всего получено src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Всего отправлено src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Баланс src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ транзакция src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ транзакции(й) src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Транзакция src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Обьединения Сообщества src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Переводы src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Участники проекта src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Участники проекта src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Разработчики проекта src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Мультиподпись из src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Конфиденциально src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ транзакция из src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ транзакции из src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Ошибка загрузки данных адреса src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Этот адрес ассоциирован с большим количеством транзакций. Бóльшим, чем способен обработать ваш бэкенд. Обратите внимание на настройку более мощного бэкенда. Рассмотрите вариант просмотра этого адреса на официальном сайте Mempool: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ Название src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Уровень точности src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Эмитент src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ Транзакция выпуска src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Привязка src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Отвязка src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Сожжено src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Циркулирующий объем src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ из src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ Привязанные/отвязанные и сожженные транзакции src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Транзакции выпуска и сжигания src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Ошибка при загрузке данных об активе. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Блок - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Шаблон против майнинга - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Размер - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Вес - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Коэффициент соответствия - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Отсутствующие транзакции - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Добавленные транзакции - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Отсутствующие - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Добавленные - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Комиссионные ставки/блок @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Комиссия @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Добавленные + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Точность предсказания блока @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Размер + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Вес + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Блок @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Неизвестно + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Интервал комиссий + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Основано на средней segwit-транзакции в 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Субсидия + комиссии src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Биты src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ Корень Меркла src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Сложность src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Нонс src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Заголовок блока в шестнадцатиричном формате src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Подробности src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Ошибка загрузки src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Пул @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Вознагржадение + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Вознагржадение + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ Комиссии src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ Транзакции src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - Интервал комиссий - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Стек блоков мемпула @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - Награда за транз-ю + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Совокупное вознаграждение майнеров на транзакцию за последние 144 блока + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - сат/транз + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Средняя комиссия + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + сат/транз + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Награда за транз-ю + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Исследуйте всю экосистему Биткоина src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Поиск src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Неподтвержденные src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ Впервые замечен src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ Расчетное время src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ Через несколько часов (или больше) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Потомок src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Предок src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4453,11 +4541,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4467,7 +4555,7 @@ Скрыть диаграмму src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4476,7 +4564,15 @@ Показать больше src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4485,7 +4581,11 @@ Показывай меньше src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4494,7 +4594,7 @@ Показать схему src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4503,7 +4603,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4512,7 +4612,7 @@ Транзакция не найдена. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4521,7 +4621,7 @@ Ожидаем ее появления в мемпуле ... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4530,7 +4630,7 @@ Эффективная комиссионная ставка src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4540,7 +4640,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4549,7 +4649,7 @@ (Новые сгенерированные монеты) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4558,7 +4658,7 @@ Привязка src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4567,7 +4667,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4577,7 +4677,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4587,7 +4687,7 @@ Свидетель src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4596,7 +4696,7 @@ Скрипт оплаты P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4605,7 +4705,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4614,7 +4714,7 @@ Скрипт свидетеля P2WSH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4623,7 +4723,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4632,7 +4732,7 @@ Скрипт предыдущего вывода src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4641,7 +4741,7 @@ Предыдущий тип выхода src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4650,7 +4750,7 @@ Peg-out в src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4659,7 +4759,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4669,20 +4769,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Показать все вводы, раскрыть комиссионные данные + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs другие входы @@ -4706,7 +4813,11 @@ Вход src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4715,7 +4826,11 @@ Выход src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4792,6 +4907,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4813,12 +4932,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Эта транзакция использует Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4827,7 +4954,7 @@ Эта транзакция поддерживает функцию Replace-By-Fee (RBF), что позволяет повышать комиссию. src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4836,11 +4963,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4850,7 +4977,7 @@ Эта транзакция НЕ поддерживает Replace-By-Fee (RBF) и не может в последствии быть ускорена с помощью этого метода. src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4923,7 +5050,7 @@ Мин. комиссия src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4933,7 +5060,7 @@ Очистка src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4943,7 +5070,7 @@ Использование памяти src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4953,7 +5080,7 @@ L-BTC в обращении src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4962,7 +5089,7 @@ Служба REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4971,11 +5098,11 @@ Конечная точка src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4984,11 +5111,11 @@ Описание src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4996,7 +5123,7 @@ Push по умолчанию: действие: 'want', data: ['blocks', ...] , чтобы выразить то, что вы хотите запушить. Доступно: блоки , mempool-blocks , live-2h-chart иstats Пуш транзакций, связанных с адресом: 'track-address': '3PbJ ... bF9B' для получения всех новых транзакционных входных или выходных данных, относящихся к данному адресу. Предоставляет массив транзакций. транзакций данного адреса, для новых транзакций мемпула и транзакций блока для транзакций, подтвержденных в новом блоке. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5044,7 +5171,7 @@ ЧАВО src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5052,11 +5179,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5064,7 +5195,7 @@ Базовая комиссия src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5077,7 +5208,7 @@ мСат src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5087,6 +5218,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5094,7 +5229,7 @@ Этот канал поддерживает маршрутизацию с нулевой базовой комиссией. src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5103,7 +5238,7 @@ Нулевая базовая комиссия src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5112,7 +5247,7 @@ Этот канал не поддерживает маршрутизацию с нулевой базовой комиссией. src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5121,7 +5256,7 @@ Ненулевая базовая комиссия src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5130,7 +5265,7 @@ Мин. HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5139,7 +5274,7 @@ Макс. HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5147,7 +5282,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5156,14 +5291,32 @@ каналов src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel лайтнинг-канал @@ -5186,7 +5339,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5203,7 +5356,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5224,7 +5377,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5323,7 +5476,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5336,7 +5489,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5373,12 +5526,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Транзакция открытия src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5387,7 +5548,7 @@ Транзакция закрытия src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5476,11 +5637,11 @@ сат src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5674,10 +5835,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5889,6 +6046,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Процентное изменение за последнюю неделю @@ -5919,7 +6084,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5976,33 +6141,20 @@ lightning.active-channels-avg - - Unknown - Неизвестно + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Цвет src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6011,7 +6163,7 @@ Интернет-провайдер src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6024,16 +6176,82 @@ Исключительно Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Открытые каналы src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6042,7 +6260,7 @@ Закрытые каналы src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6051,7 +6269,7 @@ Узел: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6100,9 +6318,8 @@ lightning.active-channels-map - - Indexing in progess - Индексирование в процессе + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6368,6 +6585,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes Топ-100 самых старых узлов Lightning diff --git a/frontend/src/locale/messages.sl.xlf b/frontend/src/locale/messages.sl.xlf index 07758ec78..6c5bfc3bb 100644 --- a/frontend/src/locale/messages.sl.xlf +++ b/frontend/src/locale/messages.sl.xlf @@ -6,15 +6,14 @@ Zapri node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Stran od + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Prejšnji node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Naslednji node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Izberi mesec node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Izberi leto node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Prejšnji mesec node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Naslednji mesec node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Prva node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Prejšnja node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Naslednja node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Zadnja node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Ure node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Minute node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Prištej ure node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Odštej ure node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Prištej minute node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Odštej minute node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Sekunde node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Prištej sekunde node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Odštej sekunde node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Zapri node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Skupaj prejeto src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Skupaj poslano src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Stanje src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ transakcija src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ transakcij src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Transakcija src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Zavezništva skupnosti src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Prevajalci src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Sodelujoči src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Člani projekta src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Vzdrževalci src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Zaupno src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ od transakcija src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ od transakcij src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Napaka pri nalaganju podatkov naslova. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ Ta naslov je povezan z več transakcijami kot je zmogljivost zaledja. Oglejte si več o vzpostavitvi močnejšega zaledja. Poskusite si ogledati ta naslov na uradnem spletnem mestu Mempool. src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Naziv src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Decimalna mesta src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Izdajatelj src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ Izdajna transakcija src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Uničeno (burned) src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Znesek v obtoku src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ od   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Peg In/Out in Burn Transakcij src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Izdajnih in Burn Transakcij src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Napaka pri nalaganju podatkov o sredstvu. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Velikost - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Utež - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Stopnje omrežnin v bloku @@ -2261,6 +2117,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Omrežnina @@ -2274,11 +2138,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2300,11 +2164,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2318,15 +2182,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2352,19 +2216,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2404,31 +2268,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2442,15 +2310,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Natančnost napovedi vsebine blokov @@ -2474,6 +2394,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2521,6 +2445,74 @@ mining.block-sizes-weights + + Size + Velikost + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Utež + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2550,11 +2542,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2571,19 +2559,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2601,11 +2581,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2618,7 +2594,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2643,16 +2619,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Razpon omrežnin + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Na podlagi povprečne native segwit transakcije (140 vBajtov). src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2681,29 +2702,53 @@ Novi kovanci + omrežnine: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2712,7 +2757,7 @@ Merkle koren src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2721,7 +2766,7 @@ Težavnost src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2750,7 +2795,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2759,7 +2804,7 @@ Glava bloka (Hex) src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2768,19 +2813,23 @@ Podrobnosti src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2790,11 +2839,11 @@ Napaka pri nalaganju podatkov. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2802,7 +2851,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2814,6 +2863,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Združenje @@ -2856,9 +2913,8 @@ latest-blocks.mined - - Reward - Nagrada + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2867,6 +2923,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Nagrada + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2882,7 +2951,7 @@ Omrežnine src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2899,11 +2968,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2919,7 +2988,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2996,7 +3065,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3158,7 +3227,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3171,7 +3240,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3184,7 +3253,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3198,7 +3267,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3501,15 +3570,6 @@ documentation.title - - Fee span - Razpon omrežnin - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Sklad mempool blokov @@ -3781,11 +3841,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3955,7 +4019,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3969,7 +4033,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3999,9 +4063,8 @@ mining.rewards-desc - - Reward Per Tx - Nagrada na Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4010,42 +4073,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Povprečna nagrada na transakcijo v zadnjih 144 blokih + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sat/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Povp. omrežnina + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4065,11 +4113,34 @@ mining.average-fee + + sats/tx + sat/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Nagrada na Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4078,7 +4149,7 @@ Iskanje src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4100,7 +4171,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4337,16 +4408,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Nepotrjeno src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4356,11 +4445,11 @@ Prejeto src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4390,7 +4479,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4400,7 +4489,7 @@ V nekaj urah (ali več) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4410,7 +4499,11 @@ Potomec src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4420,7 +4513,7 @@ Prednik src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4429,11 +4522,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4442,7 +4535,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4450,7 +4543,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4458,7 +4559,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4466,7 +4571,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4475,7 +4580,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4484,7 +4589,7 @@ Transakcije ni mogoče najti. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4493,7 +4598,7 @@ Čakanje, da se prikaže v mempool-u... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4502,7 +4607,7 @@ Efektivna stopnja omrežnine src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4512,7 +4617,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4521,7 +4626,7 @@ (Novo ustvarjeni kovanci) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4530,7 +4635,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4539,7 +4644,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4549,7 +4654,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4559,7 +4664,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4568,7 +4673,7 @@ P2SH redeem skripta src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4577,7 +4682,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4586,7 +4691,7 @@ P2WSH witness skripta src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4595,7 +4700,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4604,7 +4709,7 @@ Skripta prejšnjega izhoda src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4613,7 +4718,7 @@ Tip prejšnjega izhoda src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4622,7 +4727,7 @@ Peg-out v src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4631,7 +4736,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4641,20 +4746,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Prikaži vse vhode za izračun podatkov o omrežnini + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4675,7 +4787,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4683,7 +4799,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4755,6 +4875,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4774,12 +4898,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Ta transakcija uporablja Taproot. src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4787,7 +4919,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4796,11 +4928,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4810,7 +4942,7 @@ Ta transakcija NE omogoča povečanja omrežnine, z uporabo Replace-By-Fee (RBF). src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4883,7 +5015,7 @@ Najnižja omrežnina src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4893,7 +5025,7 @@ Prag src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4903,7 +5035,7 @@ Velikost src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4913,7 +5045,7 @@ L-BTC v obtoku src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4922,7 +5054,7 @@ REST API storitev src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4931,11 +5063,11 @@ Končna točka src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4944,11 +5076,11 @@ Opis src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4956,7 +5088,7 @@ Začetni potisk: action: 'want', data: ['blocks', ...] za izbiro potisnih podatkov. Razpoložljivo: blocks, mempool-blocks, live-2h-chart in stats.Potisk transakcij povezanih z naslovom: 'track-address': '3PbJ...bF9B' za prejem vseh novih transakcij, ki vsebujejo ta naslov v vhodu ali izhodu. Vrne polje transakcij. address-transactions za nove transakcije v mempool-u in block-transactions za potrjene transakcije v novem bloku. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5004,7 +5136,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5012,18 +5144,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5035,7 +5171,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5045,13 +5181,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5059,7 +5199,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5067,7 +5207,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5075,7 +5215,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5083,7 +5223,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5091,7 +5231,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5099,7 +5239,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5107,14 +5247,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5135,7 +5293,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5151,7 +5309,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5171,7 +5329,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5267,7 +5425,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5279,7 +5437,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5315,11 +5473,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5327,7 +5493,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5410,11 +5576,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5596,10 +5762,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5802,6 +5964,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5830,7 +6000,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5882,31 +6052,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5914,7 +6072,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5926,15 +6084,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5942,7 +6166,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5950,7 +6174,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5995,8 +6219,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6238,6 +6462,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.sv.xlf b/frontend/src/locale/messages.sv.xlf index 5ef866442..c44226663 100644 --- a/frontend/src/locale/messages.sv.xlf +++ b/frontend/src/locale/messages.sv.xlf @@ -6,15 +6,15 @@ Stäng node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Slide of + Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +23,7 @@ Föregående node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +31,7 @@ Nästa node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +39,11 @@ Select month node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +51,11 @@ Select year node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +63,11 @@ Föregående månad node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +75,11 @@ Next month node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +87,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +95,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +103,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +111,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +119,7 @@ Första node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +127,7 @@ Föregående node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +135,7 @@ Nästa node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +143,15 @@ Sista node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +159,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +167,7 @@ Hours node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +175,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +183,7 @@ Minuter node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +191,7 @@ Öka timmar node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +199,7 @@ Minska timmar node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +207,7 @@ Öka minuter node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +215,7 @@ Minska minuter node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +223,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +231,7 @@ Sekunder node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +239,7 @@ Öka sekunder node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +247,7 @@ Minska sekunder node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +255,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +263,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +271,7 @@ Stäng node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +296,15 @@ Totalt mottaget src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +313,7 @@ Totalt skickat src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +321,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +334,15 @@ Balans src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +351,7 @@ transaktion src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +376,7 @@ transaktioner src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +424,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +445,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +467,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +557,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +775,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +797,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +939,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1020,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1038,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1054,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1067,7 @@ Transaktion src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1083,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1104,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1126,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1144,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1158,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1190,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1211,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1229,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1253,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1269,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1475,7 @@ Communityallianser src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1484,7 @@ Projektöversättare src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1493,7 @@ Projektbidragare src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1502,7 @@ Projektmedlemmar src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1511,7 @@ Projektunderhållare src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1540,7 @@ Multisig av src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1552,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1561,11 @@ Konfidentiell src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1577,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1585,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1614,7 @@ av transaktioner src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1623,7 @@ av transaktioner src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1632,7 @@ Kunde inte ladda addressdata. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1641,7 @@ Det är fler transaktioner på denna adressen än din backend kan hantera. Kolla upp om att sätta upp en starkare backend. Överväg att visa den här addressen på den officiella Mempool-sajten istället: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1660,7 @@ Namn src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1681,7 @@ Precision src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1691,7 @@ Utgivare src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1701,7 @@ Ufärdande TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1711,7 @@ Peggad in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1721,7 @@ Peggad ut src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1731,7 @@ Bränt antal src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1741,11 @@ Cirkulerande antal src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1755,7 @@ av   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1764,7 @@ Peg-in/ut och burn-transaktioner src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1773,7 @@ Utfärdande och burn-transaktioner src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1782,7 @@ Fel vid laddandet av asset data src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2019,6 @@ master-page.docs - - Block - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Mall vs Minead - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Storlek - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Viktenheter - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Träffsäkerhet - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Uteblivna txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Tillagda txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Saknade - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Tillagda - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Block avgiftnivåer @@ -2270,6 +2121,15 @@ 114,109 + + not available + Inte tillgängligt + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Avgift @@ -2283,11 +2143,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2169,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2187,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2221,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2273,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2315,73 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + Granskningsstatus + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + Borttagen + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + Marginell avgiftnivå + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + Nyligen utskickad + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Tillagda + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Träffsäkerhet för blockprediktion @@ -2484,6 +2406,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2457,74 @@ mining.block-sizes-weights + + Size + Storlek + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Viktenheter + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Block @@ -2562,11 +2556,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2573,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2595,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2608,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2633,63 @@ Previous Block + + Block health + Blockhälsa + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Okända + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Avgiftspann + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Baserat på en genomsnittlig native segwit-transaktion på 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2718,57 @@ Subvention + avgifter: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + Projekterad + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + Faktiskt + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + Projekterat block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + Faktiskt block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bitar src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2777,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2786,7 @@ Svårighet src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2815,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2824,7 @@ Block Header Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2833,23 @@ Detaljer src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2859,11 @@ Fel vid laddning av data. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2871,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2883,15 @@ error.general-loading-data + + Why is this block empty? + Varför är blocket tomt? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2868,9 +2934,9 @@ latest-blocks.mined - - Reward - Belöning + + Health + Hälsa src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2945,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Belöning + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2973,7 @@ Avgifter src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2990,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +3010,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3087,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3249,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3262,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3275,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3289,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3602,6 @@ documentation.title - - Fee span - Avgiftspann - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Hög av mempoolblock @@ -3804,11 +3874,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4052,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4066,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4096,9 @@ mining.rewards-desc - - Reward Per Tx - Belöning per tx + + Avg Block Fees + Snitt blockavgifter src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4107,30 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Genomsnittlig minerbelöning per transaktion senaste 144 blocken + + Average fees per block in the past 144 blocks + Snitt avgifter per block de senaste 144 blocken src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Snittavgifter + + Avg Tx Fee + Snitt txavgift src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4150,35 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Belöning per tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Utforska hela Bitcoin-ekosystemet src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4187,7 @@ Sök src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4209,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4446,36 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + Denna transaktion ersatte: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + Ersatt + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Obekräftad src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4485,11 @@ Först sedd src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4519,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4529,7 @@ Om flera timmar (eller mer) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4539,11 @@ Ättling src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4553,7 @@ Förfader src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4563,11 @@ Flöde src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4577,7 @@ Dölj diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4586,15 @@ Visa mer src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4603,11 @@ Visa mindre src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4616,7 @@ Visa diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4625,7 @@ Locktime src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4634,7 @@ Transaktionen hittades inte src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4643,7 @@ Väntar på den att dyka upp i mempoolen... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4652,7 @@ Effektiv avgiftssats src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4662,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4671,7 @@ (Nyskapade mynt) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4680,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4689,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4699,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4709,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4718,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4727,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4736,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4745,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4754,7 @@ Föregående outputscript src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4763,7 @@ Föregående output-typ src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4772,7 @@ Peg-out till src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4781,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4791,29 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Visa alla inputs för att avslöja avgiftdata + + Show more inputs to reveal fee data + Visa fler inputs för att visa feedata src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + återstår + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs andra inputs @@ -4707,7 +4837,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4850,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4931,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4956,21 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + Denna transaktion använder inte Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Denna transaktionen använder Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4979,7 @@ Den här transaktionen stöder Replace-By-Fee (RBF) som tillåter ökning av avgiften src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4988,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +5002,7 @@ Denna transaktion stöder INTE Replace-By-Fee (RBF) och kan inte utnyttjas för att höja avgiften src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5075,7 @@ Minimumavgift src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5085,7 @@ Förkastar src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5095,7 @@ Minnesanvändning src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5105,7 @@ L-BTC i cirkulation src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5114,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5123,11 @@ Slutpunkt src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5136,11 @@ Beskrivning src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5148,7 @@ Standard push: action: 'want', data: ['blocks', ...] för att uttrycka vad du vill ha pushat. Tillgängligt: blocks, mempool-blocks, live-2h-chart, och stats.Pusha transaktioner relaterat till address: 'track-address': '3PbJ...bF9B' för att ta emot alla nya transaktioner innehållandes den addressen som input eller output. Returnerar en lista av transaktioner. address-transactions för nya mempooltransaktioner, och block-transactions för nya blockbekräftade transaktioner. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5196,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5204,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5220,7 @@ Grundavgift src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5233,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5243,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5254,7 @@ Den här kanalen stöder routing med noll basavgift src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5263,7 @@ Noll grundavgift src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5272,7 @@ Den här kanalen stöder inte routing med noll i basavgift src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5281,7 @@ Grundavgift inte noll src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5290,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5299,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5308,7 @@ Tidlås delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5317,34 @@ kanaler src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + Startbalans + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + Stängningsbalans + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel lightningkanal @@ -5188,7 +5367,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5384,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5405,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5505,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5518,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5555,21 @@ lightning.closing_date + + Closed by + Stängd av + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Öppningstransaktion src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5578,7 @@ Stängningstransaktion src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5668,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5866,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6077,15 @@ lightning.connectivity-ranking + + Fee distribution + Avgiftdistribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Procentuell förändring senaste veckan @@ -5923,7 +6116,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6173,21 @@ lightning.active-channels-avg - - Unknown - Okända + + Avg channel distance + Snitt kanalavstånd src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Färg src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6196,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6209,90 @@ Exklusivt på Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + Likviditetsannons + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + Lease avgiftnivå + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + Lease basavgift + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + Finansieringsweight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + Kanal avgiftsnivå + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + Kanal basavgift + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + Kompakt lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + TLV-tilläggsposter + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Öppna kanaler src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6301,7 @@ Stängda kanaler src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6310,7 @@ Nod: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,8 +6359,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress Indexering pågår src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -6372,6 +6627,15 @@ lightning.asn + + Active nodes + Aktiva noder + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes Topp 100 äldsta Lightningnoder diff --git a/frontend/src/locale/messages.th.xlf b/frontend/src/locale/messages.th.xlf index f91d9b022..8aea81ea2 100644 --- a/frontend/src/locale/messages.th.xlf +++ b/frontend/src/locale/messages.th.xlf @@ -6,15 +6,14 @@ ปิด node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - สไลด์ จาก + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ ก่อนหน้า node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ ถัดไป node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ เลือกเดือนที่ต้องการ node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ เลือกปีที่ต้องการ node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ เดือนก่อนหน้า node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ เดือนถัดไป node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ หน้าแรก node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ ก่อนหน้า node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ หน้าถัดไป node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ หน้าท้ายสุด node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ ชั่วโมง node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ นาที node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ ชั่วโมงที่เพิ่มขึ้น node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ ชั่วโมงที่ลดลง node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ นาทีที่เพิ่มขึ้น node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ นาทีที่ลดลง node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ วินาที node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ วินาทีที่เพิ่มขึ้น node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ วินาทีที่ลดลง node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ ปิด node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ จำนวนที่ได้รับทั้งหมด src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ จำนวนที่ส่งไปทั้งหมด src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ คงเหลือ src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ ธุรกรรม src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ ธุรกรรม src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ ธุรกรรม src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ พันธมิตรของเรา src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ ผู้แปลโปรเจค src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ ผู้พัฒนาโปรเจค src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ สมาชิกในโปรเจคนี้ src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ ผู้ดูแลโปรเจค src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ เป็นความลับ src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ ธุรกรรม จาก src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ จาก ธุรกรรม src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ เกิดข้อผิดพลาดในการโหลดข้อมูลแอดเดรส src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ แอดเดรสนี้มีธุรกรรมมากเกินกว่าที่ระบบจะรับไหว ดูเพิ่มเติม สำหรับการตั้งค่าระบบที่สามารถรองรับธุรกรรมได้มากขึ้น หรือคุณสามารถดูแอดเดรสนี้ได้ที่เว็ปไซต์ mempool src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ ชื่อ src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ ความแม่นยำ src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ ผู้ออก src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ TX ที่ออก src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Pegged เข้า src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Pegged ออก src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ จำนวนที่เผา src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ อุปทานหมุนเวียน src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ ของ   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Peg In/Out และธุรกรรมการเผา src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ ธุรกรรมการออกและการเผา src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ เกิดข้อผิดพลาดในการโหลดข้อมูลสินทรัพย์ src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - ขนาด - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - น้ำหนัก - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates อัตราค่าธรรมเนียมของบล็อก @@ -2259,6 +2115,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee ค่าธรรมเนียม @@ -2272,11 +2136,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2298,11 +2162,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2316,15 +2180,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2350,19 +2214,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2402,31 +2266,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2440,15 +2308,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2471,6 +2391,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2517,6 +2441,74 @@ mining.block-sizes-weights + + Size + ขนาด + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + น้ำหนัก + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2546,11 +2538,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2567,19 +2555,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2597,11 +2577,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2614,7 +2590,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2639,16 +2615,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + ช่วงของค่าธรรมเนียม + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes อิงตามธุรกรรม Segwit ดั้งเดิมที่มีค่าเฉลี่ย 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2677,29 +2698,53 @@ ธุรกรรม + ค่าธรรมเนียม: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits บิต src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2708,7 +2753,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2717,7 +2762,7 @@ ความยาก src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2746,7 +2791,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2755,7 +2800,7 @@ Hex ส่วนหัวบล็อก src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2764,19 +2809,23 @@ รายละเอียด src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2786,11 +2835,11 @@ เกิดข้อผิดพลาดในการโหลดข้อมูล src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2798,7 +2847,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2810,6 +2859,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool พูล @@ -2852,9 +2909,8 @@ latest-blocks.mined - - Reward - ค่าตอบแทน + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2863,6 +2919,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + ค่าตอบแทน + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2878,7 +2947,7 @@ ค่าธรรมเนียม src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2895,11 +2964,11 @@ TXs src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2915,7 +2984,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2992,7 +3061,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3152,7 +3221,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3165,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3178,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3192,7 +3261,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3494,15 +3563,6 @@ documentation.title - - Fee span - ช่วงของค่าธรรมเนียม - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks ชั้นของ บล็อก mempool @@ -3767,11 +3827,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3941,7 +4005,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3955,7 +4019,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3985,9 +4049,8 @@ mining.rewards-desc - - Reward Per Tx - ค่าตอบแทนต่อ Tx + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3996,42 +4059,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - ค่าตอบแทนที่ผู้ขุดได้ต่อธุรกรรมใน 144 บล็อกที่ผ่านมา + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - ค่าธรรมเนียมเฉลี่ย + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4051,11 +4099,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + ค่าตอบแทนต่อ Tx + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4064,7 +4135,7 @@ ค้นหา src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4086,7 +4157,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4323,16 +4394,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed ยังไม่ได้รับการยืนยัน src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4342,11 +4431,11 @@ พบเห็นครั้งแรก src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4376,7 +4465,7 @@ ETA src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4386,7 +4475,7 @@ ภายในหลายชั่วโมง (หรือมากกว่า) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4396,7 +4485,11 @@ ผู้สืบทอด src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4406,7 +4499,7 @@ บรรพบุรุษ src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4415,11 +4508,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4428,7 +4521,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4436,7 +4529,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4444,7 +4545,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4452,7 +4557,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4461,7 +4566,7 @@ เวลาล็อก src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4470,7 +4575,7 @@ ไม่พบเจอธุรกรรมนี้ src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4479,7 +4584,7 @@ กำลังรอให้ปรากฏใน mempool... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4488,7 +4593,7 @@ อัตราค่าธรรมเนียมที่เหมาะสม src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4498,7 +4603,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4507,7 +4612,7 @@ (เหรียญที่ถูกสร้างใหม่) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4516,7 +4621,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4525,7 +4630,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4535,7 +4640,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4545,7 +4650,7 @@ พยาน src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4554,7 +4659,7 @@ สคริปต์ถอน P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4563,7 +4668,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4572,7 +4677,7 @@ สคริปต์พยาน P2SH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4581,7 +4686,7 @@ nลำดับ src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4590,7 +4695,7 @@ สคริปต์เอาต์พุตก่อนหน้า src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4599,7 +4704,7 @@ ประเภทของ output ก่อนหน้า src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4608,7 +4713,7 @@ Peg-out ไปยัง src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4617,7 +4722,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4627,20 +4732,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - แสดงอินพุตทั้งหมดเพื่อดูข้อมูลค่าธรรมเนียม + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4661,7 +4773,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4669,7 +4785,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4741,6 +4861,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4760,12 +4884,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot ธุรกรรมนี้ใช้ Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4773,7 +4905,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4782,11 +4914,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4796,7 +4928,7 @@ ธุรกรรมนี้ไม่รองรับ Replace-By-Fee (RBF) และไม่สามารถจ่ายค่าธรรมเนียมเพิ่มได้โดยใช้วิธีนี้ src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4869,7 +5001,7 @@ ค่าธรรมเนียมขั้นต่ำ src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4879,7 +5011,7 @@ กำลังล้าง src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4889,7 +5021,7 @@ หน่วยความจำที่ใช้ไป src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4899,7 +5031,7 @@ อุปทานหมุนเวียน L-BTC src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4907,7 +5039,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4916,11 +5048,11 @@ ปลายทาง src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4929,11 +5061,11 @@ คำอธิบาย src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4941,7 +5073,7 @@ ค่าตอบกลับพื้นฐาน: การกระทำ: 'ต้องการ', ข้อมูล: ['บล็อก', ...] เพื่ออธิบายค่าที่ต้องการตอบกลับ. ที่ใช้งานได้: บล็อก, บล็อก-mempool, ชาตสด-2h, และ สถิติ.ส่งธุรกรรมไปยังแอดเดรส: 'track-address': '3PbJ...bF9B' เพื่อที่จะได้รับธุรกรรมใหม่ทั้งหมดที่มี input/output ของแอดเดรสนั้น. ตอบกลับเป็นอาเรย์ของธุรกรรม. แอดเดรส-ธุรกรรม สำหรับธุรกรรม mempool ใหม่, และ ธุรกรรม-บล็อก สำหรับธุรกรรมที่ถูกยืนยันในบล็อกใหม่ src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4989,7 +5121,7 @@ คำถามที่พบบ่อย src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4997,18 +5129,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5020,7 +5156,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5030,13 +5166,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5044,7 +5184,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5052,7 +5192,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5060,7 +5200,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5068,7 +5208,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5076,7 +5216,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5084,7 +5224,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5092,14 +5232,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5120,7 +5278,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5136,7 +5294,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5156,7 +5314,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5252,7 +5410,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5264,7 +5422,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5300,11 +5458,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5312,7 +5478,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5395,11 +5561,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5581,10 +5747,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5787,6 +5949,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5815,7 +5985,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5867,31 +6037,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5899,7 +6057,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5911,15 +6069,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5927,7 +6151,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5935,7 +6159,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5980,8 +6204,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6223,6 +6447,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.tr.xlf b/frontend/src/locale/messages.tr.xlf index 7fe88164c..b74f46bc4 100644 --- a/frontend/src/locale/messages.tr.xlf +++ b/frontend/src/locale/messages.tr.xlf @@ -6,15 +6,14 @@ Kapat node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Sunu / + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Önceki node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Sonraki node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Ay seç node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Yıl Seç node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Önceki ay node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Sonraki ay node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Ilk node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Önceki node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Sonraki node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ En son node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Saat node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Dakika node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Saatlik artış node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Saatlik azalış node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Dakikalık artış node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Dakikalık azalış node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Saniye node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Saniyelik artış node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Saniyelik azalış node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Kapat node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Toplam alınan src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Toplam gönderilen src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Cari toplam src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ işlem src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ işlem src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ İşlem src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Topluluk İşbirlikleri src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Proje Çeviricileri src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Proje Destekçileri src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Proje Üyeleri src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Projeyi ayakta tutanlar src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Çoklu imza / src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Gizli src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ işlemden'i src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ işlemden'i src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Adres verisi yüklenirken hata oluştu. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Bu adreste altyapınız kaldırabileceğinden daha fazla işlem bulunabilir. Daha sağlam bir altyapı kurmak için . Mempool web arayüzünde bu adresi doğrudan görüntülemeyi düşünebilirsiniz. src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ İsim src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Hassasiyet src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Çıkaran src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ Yayınlanma TX'i src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Pegged in src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Pegged out src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Yanan miktar src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Dolaşan miktar src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ / src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ İçeri geçir/dışarı aktar ve Yanan işlemler src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Yaratma ve yakma işlemleri src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Data seti yüklerken hata oldu. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Blok - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Şablon vs Kazılan - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Boyut - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Ağırlık - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Eşleşme oranı - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Eksik işlemler - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Eklenen işlemler - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Eksik - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Eklenen - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Blok İşlem Ücreti Oranları @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Ücret @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Eklenen + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Blok tahmin isabeti @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Boyut + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Ağırlık + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Blok @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + Bilinmiyor + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Ücret aralığı + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes 140 vbytelık ortalama native segwit ücreti baz alınmıştır src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Ödül + ücretler: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bit src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ Merkle kökü src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Zorluk src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Block Başlığı Hex'i src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Detaylar src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Veriyi yüklerken hata oluştu src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Havuz @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Ödüller + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Ödüller + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ İşlem Ücretleri src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ İşlemler src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - Ücret aralığı - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks mempool blok yığını @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - İşlem Başına Ödül + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Son 144 blokta bir madencinin işlem başına ortalama ödülü + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/işlem + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Ortalama İşlem Ücreti + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + sats/işlem + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + İşlem Başına Ödül + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Bütün Bitcoin ekosistemini incele src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Ara src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Onaylanmamış src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ İlk görüldüğü an src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ Tahmini Varış Süresi src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ Bir kaç saat içinde (veya daha sonra) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Azalan src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Ata src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ Akış src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ Diyagramı kapat src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ Daha fazla göster src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ Daha az göster src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ Diyagramı göster src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ Kilit Süresi src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ İşlem bulunamadı. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ Mempool'a dahil olmayı bekliyor. src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ Efektiv işlem ücreti oranı src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (Yeni Kazınmış Koinler) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ Peg-in src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ P2SH alım scripti src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ P2WSH tanık scripti src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ Önceki çıkış scripti src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ Önceki çıkış tipi src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ 'ye çıkar src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Fee ücretini açığa çıkarmak için tüm girdileri göster + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs başka girdiler @@ -4707,7 +4814,11 @@ Girdi src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ Çıktı src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Bu işlem Taprrot kullanıyor. src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ Bu işlem, yeni ücret ile değiştir (RBF) ile ücret arrtırımını destekliyor src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ Bu işlem ücret karşılığı değiştir (RBF)'yi desteklemediğinden ücret arttırmı yapılamaz. src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ Minimum ücret src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ Temizleme src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ Hafıza kullanımı src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ Dolaşımdaki L-BTC miktarı src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ REST API servisi src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Çıkış Noktası src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ Tanım src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ Varsayılan ileti: action: 'want', data: ['blocks', ...] iletmek istediğini belirt. Kullanılabilir alanlar: blocks, mempool-blocks, live-2h-chart ve stats. Takip eden adresle ilişkili işlemleri ileterek: 'track-address': '3PbJ...bF9B' bu adresi içeren bütün giriş ve çıkış işlemlerini al. İşlemleri sırala. Yeni mempool işlemleri içinaddress-transactions ve yeni onaylı blok işlemleri için block-transcations kullan. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ SSS src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ Baz ücret src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ Bu kanal sıfır baz ücreti destekliyor src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ Sıfır baz ücret src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ Bu kanal sıfır baz ücret rotalamayı desteklemiyor src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ Sıfır olmayan baz ücret src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ Zamankilidi deltası src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ kanallar src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel lightning kanalı @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Açılış işlemi src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ Kapanış işlemi src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Geçen haftaya göre yüzdelik değişim @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - Bilinmiyor + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Renk src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ Sadece Tor üzerinde src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Açık kanallar src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ Kapanan kanallar src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - İndeksliyor + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes En eski 100 Lightning Node'u diff --git a/frontend/src/locale/messages.uk.xlf b/frontend/src/locale/messages.uk.xlf index 7378e62da..49b037bcb 100644 --- a/frontend/src/locale/messages.uk.xlf +++ b/frontend/src/locale/messages.uk.xlf @@ -6,15 +6,14 @@ Закрити node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Слайд з + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Попередній node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Наступний node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Оберіть місяць node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Оберіть рік node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Попередній місяць node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Наступний місяць node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Перший node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Попередній node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Наступний node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Останній node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ ГГ node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Години node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ ХХ node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Хвилини node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Збільшити години node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Зменшити години node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Збільшити хвилини node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Зменшити хвилини node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ СС node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Секунди node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Збільшити секунди node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Зменшити секунди node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Закрити node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Всього отримано src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Всього надіслано src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Баланс src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ транзакція src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ транзакції src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Транзакція src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1482,7 +1472,7 @@ Союзи спільноти src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1491,7 +1481,7 @@ Перекладачі проекту src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1500,7 +1490,7 @@ Учасники проекту src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1509,7 +1499,7 @@ Члени проекту src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1518,7 +1508,7 @@ Розробники проекту src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1546,7 +1536,7 @@ Multisig of src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1558,7 +1548,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1567,11 +1557,11 @@ Конфіденційна src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1583,7 +1573,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1591,15 +1581,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1620,7 +1610,7 @@ з транзакція src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1629,7 +1619,7 @@ з транзакцій src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1638,7 +1628,7 @@ Не вдалося завантажити дані про адресу. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1647,7 +1637,7 @@ На цій адресі більше транзакцій, ніж може обробити ваш бекенд. Дізнайтеся більше про налаштування потужного бекенду. Ви також можете переглянути цю адресу на офіційному вебсайті Mempool: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1666,7 +1656,7 @@ Назва src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1687,7 +1677,7 @@ Точність src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1697,7 +1687,7 @@ Емітент src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1707,7 +1697,7 @@ Емісійна транзакція src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1717,7 +1707,7 @@ Закріплено src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1727,7 +1717,7 @@ Розкріплено src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1737,7 +1727,7 @@ Спалена сума src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1747,11 +1737,11 @@ Сума в обігу src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1761,7 +1751,7 @@ з   src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1770,7 +1760,7 @@ Транзакції закріплення/розкріплення та спалення src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1779,7 +1769,7 @@ Транзакції випуску та спалення src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1788,7 +1778,7 @@ Не вдалося завантажити дані про актив. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2025,140 +2015,6 @@ master-page.docs - - Block - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Розмір - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Вага - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Тарифи комісії блоку @@ -2259,6 +2115,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Комісія @@ -2272,11 +2136,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2298,11 +2162,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2316,15 +2180,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2350,19 +2214,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2402,31 +2266,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2440,15 +2308,67 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy @@ -2471,6 +2391,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2517,6 +2441,74 @@ mining.block-sizes-weights + + Size + Розмір + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Вага + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block @@ -2546,11 +2538,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2567,19 +2555,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2597,11 +2577,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2614,7 +2590,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2639,16 +2615,61 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Діапазон комісії + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes На основі середнього розміру segwit транзакції в 140 vByte src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2677,29 +2698,53 @@ Нагорода + комісії: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Біти src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2708,7 +2753,7 @@ Корінь Меркле src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2717,7 +2762,7 @@ Складність src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2746,7 +2791,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2755,7 +2800,7 @@ Заголовок блоку в hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2764,19 +2809,23 @@ Деталі src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2786,11 +2835,11 @@ Не вдалося завантажити дані. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2798,7 +2847,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2810,6 +2859,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Пул @@ -2852,9 +2909,8 @@ latest-blocks.mined - - Reward - Нагорода + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2863,6 +2919,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Нагорода + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2878,7 +2947,7 @@ Комісії src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2895,11 +2964,11 @@ Транзакцій src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2915,7 +2984,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -2992,7 +3061,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3152,7 +3221,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3165,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3178,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3192,7 +3261,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3494,15 +3563,6 @@ documentation.title - - Fee span - Діапазон комісії - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Список з мемпул блоків @@ -3767,11 +3827,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3941,7 +4005,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3955,7 +4019,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -3985,9 +4049,8 @@ mining.rewards-desc - - Reward Per Tx - Нагорода за транзакцію + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -3996,42 +4059,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Середня нагорода майнерів з кожної транзакції за останні 144 блоки + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - sats/tx + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Середня комісія + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4051,11 +4099,34 @@ mining.average-fee + + sats/tx + sats/tx + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Нагорода за транзакцію + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4064,7 +4135,7 @@ Пошук src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4086,7 +4157,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4323,16 +4394,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Непідтверджена src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4342,11 +4431,11 @@ Вперше помічена src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4376,7 +4465,7 @@ Орієнтовний час src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4386,7 +4475,7 @@ За кілька годин (або довше) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4396,7 +4485,11 @@ Нащадок src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4406,7 +4499,7 @@ Предок src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4415,11 +4508,11 @@ Flow src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4428,7 +4521,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4436,7 +4529,15 @@ Show more src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4444,7 +4545,11 @@ Show less src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4452,7 +4557,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4461,7 +4566,7 @@ Час блокування src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4470,7 +4575,7 @@ Транзакція не знайдена. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4479,7 +4584,7 @@ Чекаємо її появи в мемпулі... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4488,7 +4593,7 @@ Поточна ставка комісії src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4498,7 +4603,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4507,7 +4612,7 @@ (Нові монети) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4516,7 +4621,7 @@ Закріплення src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4525,7 +4630,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4535,7 +4640,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4545,7 +4650,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4554,7 +4659,7 @@ P2SH redeem скрипт src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4563,7 +4668,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4572,7 +4677,7 @@ P2WSH witness скрипт src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4581,7 +4686,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4590,7 +4695,7 @@ Скрипт попереднього виходу src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4599,7 +4704,7 @@ Тип попереднього виходу src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4608,7 +4713,7 @@ Розкріплення до src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4617,7 +4722,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4627,20 +4732,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Показати всі входи щоб порахувати комісію + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs @@ -4661,7 +4773,11 @@ Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4669,7 +4785,11 @@ Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4741,6 +4861,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4760,12 +4884,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Ця транзакція використовує Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4773,7 +4905,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4782,11 +4914,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4796,7 +4928,7 @@ Ця транзакція НЕ підтримуює Replace-By-Fee (RBF) і не може бути замінена більшою комісією використовуючи цей метод src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4869,7 +5001,7 @@ Мінімальна комісія src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4879,7 +5011,7 @@ Очищення src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4889,7 +5021,7 @@ Використання пам'яті src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4899,7 +5031,7 @@ L-BTC в обігу src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4907,7 +5039,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4916,11 +5048,11 @@ Ендпоїнт src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4929,11 +5061,11 @@ Опис src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4941,7 +5073,7 @@ Надсилання за замовчуванням за замовчуванням: action: 'want', data: ['blocks', ...] щоб вказати, що має бути надіслано. Доступно: blocks, mempool-blocks, live-2h-chart та stats.Надіслати транзакції пов'язані з адресою: 'track-address': '3PbJ...bF9B' щоб отримати всі нові транзакції які містять дану адресу у входах чи виходах. Повертає масив транзакцій. address-transactions для нових мемпул транзакцій та block-transactions для нових підтверджених транзакцій. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -4989,7 +5121,7 @@ ЧаПи src/app/docs/docs/docs.component.ts - 33 + 34 @@ -4997,18 +5129,22 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 Base fee src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5020,7 +5156,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5030,13 +5166,17 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats This channel supports zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5044,7 +5184,7 @@ Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5052,7 +5192,7 @@ This channel does not support zero base fee routing src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5060,7 +5200,7 @@ Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5068,7 +5208,7 @@ Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5076,7 +5216,7 @@ Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5084,7 +5224,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5092,14 +5232,32 @@ channels src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel @@ -5120,7 +5278,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5136,7 +5294,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5156,7 +5314,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5252,7 +5410,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5264,7 +5422,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5300,11 +5458,19 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5312,7 +5478,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5395,11 +5561,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5581,10 +5747,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5787,6 +5949,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week @@ -5815,7 +5985,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5867,31 +6037,19 @@ lightning.active-channels-avg - - Unknown + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -5899,7 +6057,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5911,15 +6069,81 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -5927,7 +6151,7 @@ Closed channels src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -5935,7 +6159,7 @@ Node: src/app/lightning/node/node.component.ts - 42 + 60 @@ -5980,8 +6204,8 @@ lightning.active-channels-map - - Indexing in progess + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6223,6 +6447,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes diff --git a/frontend/src/locale/messages.vi.xlf b/frontend/src/locale/messages.vi.xlf index f1f93a8d6..4af52e030 100644 --- a/frontend/src/locale/messages.vi.xlf +++ b/frontend/src/locale/messages.vi.xlf @@ -6,15 +6,14 @@ Đóng node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Trang trình bày trong tổng số + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ Trước node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ Kế tiếp node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ Chọn tháng node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ Chọn năm node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ Tháng trước node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ Tháng sau node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ Đầu tiên node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ Trước node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ Kế tiếp node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ Cuối cùng node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ Giờ node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ Phút node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ Giờ tăng dần node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ Giờ giảm dần node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ Phút tăng dần node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ Phút giảm dần node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ Giây node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ Giây tăng dần node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ Giây giảm dần node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ Đóng node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ Tổng nhận src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ Tổng gửi src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ Số dư src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ giao dịch src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ giao dịch src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ Giao dịch src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ Liên minh cộng đồng src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ Dịch giả của Dự án src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ Người đóng góp dự án src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ Thành viên Dự án src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ Người bảo trì dự án src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ Đa chữ kí trong src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ Bảo mật src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ trong giao dịch src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ trong giao dịch src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ Lỗi khi tải dữ liệu địa chỉ. src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ Có nhiều giao dịch trên địa chỉ này, nhiều hơn mức hệ thống của bạn có thể xử lý. Xem thêm trên thiết lập backend mạnh hơn . Thay vào đó, hãy xem xét địa chỉ này trên trang web Mempool chính thức: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ Tên src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ Độ chính xác src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ Người phát hành src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ Phát hành TX src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ Đã chốt vào src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ Đã chốt ra src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ Lượng đã đốt src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ Số lượng luân chuyển src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ trong tổng số src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ Các giao dịch đốt và Peg In/Out src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ Các giao dịch đốt và phát hành src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ Lỗi khi tải dữ liệu tài sản. src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - Khối - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - Mẫu vs. Đã đào - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - Kích thước - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - Khối lượng - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - Tỷ lệ khớp - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - Giao dịch thất lạc - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - Giao dịch đã thêm - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - Thất lạc - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - Đã thêm - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates Tỷ lệ phí khối @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee Phí @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + Đã thêm + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy Độ chính xác của dự đoán khối @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + Kích thước + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + Khối lượng + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block Khối @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + không xác định + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + Khoảng phí + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes Dựa trên giao dịch segwit gốc trung bình là 140 vBytes src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ Trợ cấp + phí: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits Bits src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ Merkle root src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ Độ khó src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ Nonce src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ Khối tiêu đề Hex src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ Chi tiết src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ Lỗi trong lúc tải dữ liệu. src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool Pool @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - Phần thưởng + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + Phần thưởng + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ Phí src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ Các giao dịch src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - Khoảng phí - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks Bộ khối mempool @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - Phần thưởng mỗi giao dịch + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - Phần thưởng trung bình của thợ đào trên mỗi giao dịch trong 144 khối qua + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - satoshi/giao dịch + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - Phí Trung bình + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + satoshi/giao dịch + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + Phần thưởng mỗi giao dịch + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem Khám phá hệ sinh thái Bitcoin trọn vẹn src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ Tìm kiếm src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed Chưa xác nhận src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ Lần đầu thấy src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ Thời gian dự kiến src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ Trong vài giờ (hoặc hơn) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ Descendant src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ lưu lượng src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ Ẩn sơ đồ src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ Hiển thị nhiều hơn src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ Hiển thị ít hơn src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ Hiển thị sơ đồ src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ Thời gian khóa src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ Không tìm thấy giao dịch. src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ Đang đợi nó xuất hiện trong mempool ... src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ Tỷ lệ phí hiệu quả src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (Coin mới được tạo) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ Cố định src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Chứng kiến src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ Mã thu hồi P2SH src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR tapscript src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ Mã chứng kiến P2WSH src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ Mã đầu ra trước đó src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ Loại đầu ra trước đó src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ Peg-out tới src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - Hiện tất cả đầu vào để xem dữ liệu phí + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs các đầu vào khác @@ -4707,7 +4814,11 @@ Đầu vào src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ Đầu ra src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot Giao dịch này sử dụng Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ Giao dịch này hỗ trợ Thay-thế-bằng-phí (RBF) cho phép tăng phí src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ Giao dịch này KHÔNG hỗ trợ Phí thay thế (RBF) và không thể bị tính phí khi sử dụng phương pháp này src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ Phí tối thiểu src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ Thanh lọc src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ Sử dụng bộ nhớ src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ L-BTC đang lưu hành src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ Dịch vụ REST API src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Điểm cuối src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ Sự miêu tả src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ Push mặc định: hành động: 'want', dữ liệu: ['blocks', ...] để thể hiện những gì bạn muốn đẩy. Có sẵn: khối , mempool-khối , live-2h-chart c195a641ez0c195ez0. Đẩy các giao dịch liên quan đến địa chỉ: 'track-address': '3PbJ ... bF9B' a0c95ez0 đầu vào để nhận các giao dịch đầu vào a0c95ez0 a0c95ez0 đó để nhận địa chỉ đầu vào là all95ez0. Trả về một mảng các giao dịch. địa chỉ-giao dịch cho các giao dịch mempool mới và giao dịch khối cho các giao dịch được xác nhận khối mới. src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ API src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ Phí cơ bản src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ Kênh này hỗ trợ định tuyến không tính phí cơ bản src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ Phí cơ bản bằng 0 src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ Kênh này không hỗ trợ định tuyến phí cơ bản bằng 0 src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ Phí cơ bản khác 0 src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ HTLC tối thiểu src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ HTLC tối đa src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ kênh src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel kênh lightning @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction Đang mở giao dịch src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ Đang đóng giao dịch src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ satoshi src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week Phần trăm thay đổi trong tuần trước @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - không xác định + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color Màu sắc src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ Độc quyền trên Tor src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels Mở các kênh src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ Các kênh đã đóng src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ Nút: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - Đang lập chỉ mục + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes 100 nút lightning lâu đời nhất diff --git a/frontend/src/locale/messages.zh.xlf b/frontend/src/locale/messages.zh.xlf index 41ef83763..6704a8cbc 100644 --- a/frontend/src/locale/messages.zh.xlf +++ b/frontend/src/locale/messages.zh.xlf @@ -6,15 +6,14 @@ 关闭 node_modules/src/alert/alert.ts - 77,80 + 47,48 - Slide of - Slide of + Slide of node_modules/src/carousel/carousel.ts - 147,156 + 175,181 Currently selected slide number read by screen reader @@ -23,7 +22,7 @@ 前一个 node_modules/src/carousel/carousel.ts - 174 + 206,207 @@ -31,7 +30,7 @@ 后一个 node_modules/src/carousel/carousel.ts - 195 + 227 @@ -39,11 +38,11 @@ 选择月份 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -51,11 +50,11 @@ 选择年份 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 node_modules/src/datepicker/datepicker-navigation-select.ts - 74 + 50,51 @@ -63,11 +62,11 @@ 前一个月 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -75,11 +74,11 @@ 后一个月 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 node_modules/src/datepicker/datepicker-navigation.ts - 69 + 60,63 @@ -87,7 +86,7 @@ «« node_modules/src/pagination/pagination.ts - 247 + 269,270 @@ -95,7 +94,7 @@ « node_modules/src/pagination/pagination.ts - 264,266 + 269,270 @@ -103,7 +102,7 @@ » node_modules/src/pagination/pagination.ts - 282,285 + 269,270 @@ -111,7 +110,7 @@ »» node_modules/src/pagination/pagination.ts - 301,303 + 269,270 @@ -119,7 +118,7 @@ 第一 node_modules/src/pagination/pagination.ts - 318,320 + 269,271 @@ -127,7 +126,7 @@ node_modules/src/pagination/pagination.ts - 333 + 269,271 @@ -135,7 +134,7 @@ 下一个 node_modules/src/pagination/pagination.ts - 343,344 + 269,271 @@ -143,15 +142,14 @@ 最后 node_modules/src/pagination/pagination.ts - 354 + 269,271 - - + node_modules/src/progressbar/progressbar.ts - 59,63 + 30,33 @@ -159,7 +157,7 @@ HH node_modules/src/timepicker/timepicker.ts - 133,135 + 226 @@ -167,7 +165,7 @@ 小时 node_modules/src/timepicker/timepicker.ts - 154,155 + 247,250 @@ -175,7 +173,7 @@ MM node_modules/src/timepicker/timepicker.ts - 171,172 + 272,274 @@ -183,7 +181,7 @@ 分钟 node_modules/src/timepicker/timepicker.ts - 186,187 + 288,289 @@ -191,7 +189,7 @@ 增加小时 node_modules/src/timepicker/timepicker.ts - 200 + 305,309 @@ -199,7 +197,7 @@ 递减小时 node_modules/src/timepicker/timepicker.ts - 219,222 + 334,337 @@ -207,7 +205,7 @@ 增加分钟 node_modules/src/timepicker/timepicker.ts - 238,239 + 356,358 @@ -215,7 +213,7 @@ 递减分钟 node_modules/src/timepicker/timepicker.ts - 259,261 + 383,384 @@ -223,7 +221,7 @@ SS node_modules/src/timepicker/timepicker.ts - 277 + 410 @@ -231,7 +229,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -239,7 +237,7 @@ 增加秒 node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -247,7 +245,7 @@ 递减秒 node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -255,7 +253,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -263,7 +261,7 @@ node_modules/src/timepicker/timepicker.ts - 295 + 429 @@ -271,7 +269,7 @@ 关闭 node_modules/src/toast/toast.ts - 106,109 + 74,75 @@ -296,15 +294,15 @@ 总接收量 src/app/bisq/bisq-address/bisq-address.component.html - 22 + 20 src/app/components/address/address-preview.component.html - 23 + 22 src/app/components/address/address.component.html - 31 + 30 address.total-received @@ -313,7 +311,7 @@ 总发送量 src/app/bisq/bisq-address/bisq-address.component.html - 26 + 24 src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -321,11 +319,11 @@ src/app/components/address/address-preview.component.html - 27 + 26 src/app/components/address/address.component.html - 35 + 34 address.total-sent @@ -334,15 +332,15 @@ 余额 src/app/bisq/bisq-address/bisq-address.component.html - 30 + 28 src/app/components/address/address-preview.component.html - 32 + 31 src/app/components/address/address.component.html - 40 + 39 address.balance @@ -351,7 +349,7 @@ 个交易 src/app/bisq/bisq-address/bisq-address.component.html - 50 + 48 src/app/bisq/bisq-block/bisq-block.component.html @@ -359,11 +357,11 @@ src/app/components/block/block.component.html - 295,296 + 290,291 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 22,23 + 26,27 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -376,7 +374,7 @@ 个交易 src/app/bisq/bisq-address/bisq-address.component.html - 51 + 49 src/app/bisq/bisq-block/bisq-block.component.html @@ -384,11 +382,11 @@ src/app/components/block/block.component.html - 296,297 + 291,292 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 23,24 + 27,28 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,10 +422,6 @@ src/app/bisq/bisq-block/bisq-block.component.html 82 - - src/app/components/block-audit/block-audit.component.html - 28,29 - src/app/components/block/block.component.html 40,41 @@ -449,10 +443,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 34,36 - - src/app/components/block-audit/block-audit.component.html - 34,36 - src/app/components/block/block-preview.component.html 26,28 @@ -475,7 +465,7 @@ src/app/components/transaction/transaction.component.html - 49,51 + 56,58 block.timestamp @@ -565,19 +555,15 @@ src/app/components/address/address-preview.component.html - 36 + 35 src/app/components/bisq-master-page/bisq-master-page.component.html 63,65 - - src/app/components/block-audit/block-audit.component.html - 60,64 - src/app/components/blocks-list/blocks-list.component.html - 22,23 + 24,25 src/app/components/mempool-block/mempool-block.component.html @@ -787,15 +773,15 @@ src/app/components/about/about.component.html - 381,385 + 385,389 src/app/dashboard/dashboard.component.html - 146,148 + 150,152 src/app/docs/docs/docs.component.html - 42 + 51 Terms of Service shared.terms-of-service @@ -809,11 +795,11 @@ src/app/dashboard/dashboard.component.html - 148,150 + 152,154 src/app/docs/docs/docs.component.html - 44 + 53 Privacy Policy shared.privacy-policy @@ -951,7 +937,7 @@ src/app/components/address/address-preview.component.html - 40 + 39 BSQ unspent transaction outputs @@ -1032,7 +1018,7 @@ src/app/components/asset/asset.component.html - 47 + 45 Liquid Asset issued amount asset.issued-amount @@ -1050,11 +1036,11 @@ src/app/components/transaction/transaction.component.html - 151,153 + 158,160 src/app/components/transactions-list/transactions-list.component.html - 252,254 + 260,262 @@ -1066,11 +1052,11 @@ src/app/components/block/block.component.html - 252,253 + 246,247 src/app/components/transaction/transaction.component.html - 276,278 + 288,290 transaction.version @@ -1079,7 +1065,7 @@ 交易 src/app/bisq/bisq-transaction/bisq-transaction.component.html - 6,10 + 6,11 src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -1095,7 +1081,11 @@ src/app/components/transaction/transaction.component.html - 13,16 + 17,21 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 50 shared.transaction @@ -1112,11 +1102,11 @@ src/app/components/transaction/transaction.component.html - 27,28 + 31,32 src/app/components/transactions-list/transactions-list.component.html - 280,281 + 294,295 Transaction singular confirmation count shared.confirmation-count.singular @@ -1134,11 +1124,11 @@ src/app/components/transaction/transaction.component.html - 28,29 + 32,33 src/app/components/transactions-list/transactions-list.component.html - 281,282 + 295,296 Transaction plural confirmation count shared.confirmation-count.plural @@ -1152,7 +1142,7 @@ src/app/components/transaction/transaction.component.html - 58,60 + 65,67 Transaction included in block transaction.included-in-block @@ -1166,11 +1156,11 @@ src/app/components/transaction/transaction.component.html - 70,73 + 77,80 src/app/components/transaction/transaction.component.html - 128,131 + 135,138 Transaction features transaction.features @@ -1198,11 +1188,11 @@ src/app/components/transaction/transaction.component.html - 250,255 + 262,267 src/app/components/transaction/transaction.component.html - 394,400 + 406,412 transaction.details @@ -1219,11 +1209,11 @@ src/app/components/transaction/transaction.component.html - 237,241 + 249,253 src/app/components/transaction/transaction.component.html - 365,371 + 377,383 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1237,11 +1227,11 @@ src/app/components/transaction/transaction-preview.component.ts - 106 + 88 src/app/components/transaction/transaction.component.ts - 135,134 + 241,240 @@ -1261,7 +1251,7 @@ src/app/components/transaction/transaction.component.html - 152,153 + 159,160 src/app/dashboard/dashboard.component.html @@ -1277,7 +1267,7 @@ src/app/components/transaction/transaction.component.html - 65,66 + 72,73 Transaction Confirmed state transaction.confirmed @@ -1483,7 +1473,7 @@ 社区联盟 src/app/components/about/about.component.html - 281,283 + 285,287 about.alliances @@ -1492,7 +1482,7 @@ 项目翻译者 src/app/components/about/about.component.html - 297,299 + 301,303 about.translators @@ -1501,7 +1491,7 @@ 项目贡献者 src/app/components/about/about.component.html - 311,313 + 315,317 about.contributors @@ -1510,7 +1500,7 @@ 项目成员 src/app/components/about/about.component.html - 323,325 + 327,329 about.project_members @@ -1519,7 +1509,7 @@ 项目维护者 src/app/components/about/about.component.html - 336,338 + 340,342 about.maintainers @@ -1548,7 +1538,7 @@ 个中的个多重签名 src/app/components/address-labels/address-labels.component.ts - 105 + 107 @@ -1560,7 +1550,7 @@ src/app/components/address/address.component.html - 23 + 21 address.unconfidential @@ -1569,11 +1559,11 @@ 机密 src/app/components/address/address-preview.component.html - 56 + 55 src/app/components/address/address.component.html - 154 + 153 src/app/components/amount/amount.component.html @@ -1585,7 +1575,7 @@ src/app/components/asset/asset.component.html - 163 + 161 src/app/components/transaction/transaction-preview.component.html @@ -1593,15 +1583,15 @@ src/app/components/transactions-list/transactions-list.component.html - 288,290 + 302,304 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 49 + 58 src/app/dashboard/dashboard.component.html - 131,132 + 135,136 shared.confidential @@ -1622,7 +1612,7 @@ 笔交易中的 src/app/components/address/address.component.html - 60 + 59 X of X Address Transaction @@ -1631,7 +1621,7 @@ 笔交易中的 src/app/components/address/address.component.html - 61 + 60 X of X Address Transactions (Plural) @@ -1640,7 +1630,7 @@ 在加载地址数据时出错 src/app/components/address/address.component.html - 130 + 129 address.error.loading-address-data @@ -1649,7 +1639,7 @@ 这里有过量的交易在此地址上,可能您的后端不能有效的处理它。在这里查看建设一个更强大的后端考虑使用 Mempool 官方网站来查看此地址: src/app/components/address/address.component.html - 135,138 + 134,137 Electrum server limit exceeded error @@ -1668,7 +1658,7 @@ 名称 src/app/components/asset/asset.component.html - 23 + 21 src/app/components/assets/assets.component.html @@ -1689,7 +1679,7 @@ 精确度 src/app/components/asset/asset.component.html - 27 + 25 Liquid Asset precision asset.precision @@ -1699,7 +1689,7 @@ 发行人 src/app/components/asset/asset.component.html - 31 + 29 Liquid Asset issuer asset.issuer @@ -1709,7 +1699,7 @@ 发行交易 src/app/components/asset/asset.component.html - 35 + 33 Liquid Asset issuance TX asset.issuance-tx @@ -1719,7 +1709,7 @@ 锁定 src/app/components/asset/asset.component.html - 39 + 37 Liquid Asset pegged-in amount asset.pegged-in @@ -1729,7 +1719,7 @@ 解锁 src/app/components/asset/asset.component.html - 43 + 41 Liquid Asset pegged-out amount asset.pegged-out @@ -1739,7 +1729,7 @@ 燃烧量 src/app/components/asset/asset.component.html - 51 + 49 Liquid Asset burned amount asset.burned-amount @@ -1749,11 +1739,11 @@ 流通量 src/app/components/asset/asset.component.html - 55 + 53 src/app/components/asset/asset.component.html - 59 + 57 Liquid Asset circulating amount asset.circulating-amount @@ -1763,7 +1753,7 @@ src/app/components/asset/asset.component.html - 80 + 78 asset.M_of_N @@ -1772,7 +1762,7 @@ 锁定/解锁与销毁交易 src/app/components/asset/asset.component.html - 81 + 79 Liquid native asset transactions title @@ -1781,7 +1771,7 @@ 发行与销毁交易 src/app/components/asset/asset.component.html - 82 + 80 Default asset transactions title @@ -1790,7 +1780,7 @@ 加载资产数据时出错 src/app/components/asset/asset.component.html - 152 + 150 asset.error.loading-asset-data @@ -2027,147 +2017,6 @@ master-page.docs - - Block - 区块 - - src/app/components/block-audit/block-audit.component.html - 7,9 - - shared.block-title - - - Template vs Mined - 预期协议与实际协议 - - src/app/components/block-audit/block-audit.component.html - 11,17 - - shared.template-vs-mined - - - Size - 大小 - - src/app/components/block-audit/block-audit.component.html - 44,46 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 - - - src/app/components/block/block.component.html - 50,52 - - - src/app/components/blocks-list/blocks-list.component.html - 23,25 - - - src/app/components/mempool-block/mempool-block.component.html - 32,35 - - - src/app/components/mempool-graph/mempool-graph.component.ts - 260 - - - src/app/components/pool/pool.component.html - 219,222 - - - src/app/components/pool/pool.component.html - 266,270 - - - src/app/components/transaction/transaction.component.html - 258,260 - - - src/app/dashboard/dashboard.component.html - 91,94 - - blockAudit.size - - - Weight - 权重 - - src/app/components/block-audit/block-audit.component.html - 48,49 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 - - - src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 - - - src/app/components/block/block-preview.component.html - 32,34 - - - src/app/components/block/block.component.html - 54,56 - - - src/app/components/transaction/transaction.component.html - 266,268 - - block.weight - - - Match rate - 匹配度 - - src/app/components/block-audit/block-audit.component.html - 64,67 - - block.match-rate - - - Missing txs - 缺失交易 tx - - src/app/components/block-audit/block-audit.component.html - 68,71 - - block.missing-txs - - - Added txs - 已添加交易 tx - - src/app/components/block-audit/block-audit.component.html - 72,75 - - block.added-txs - - - Missing - 缺失 - - src/app/components/block-audit/block-audit.component.html - 84,85 - - block.missing-txs - - - Added - 已添加 - - src/app/components/block-audit/block-audit.component.html - 86,92 - - block.added-txs - Block Fee Rates 区块费率 @@ -2270,6 +2119,14 @@ 114,109 + + not available + + src/app/components/block-overview-graph/block-overview-graph.component.html + 5 + + block.not-available + Fee 手续费 @@ -2283,11 +2140,11 @@ src/app/components/transaction/transaction.component.html - 464 + 476 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 45 + 44 src/app/dashboard/dashboard.component.html @@ -2309,11 +2166,11 @@ src/app/components/transaction/transaction.component.html - 464,465 + 476,477 src/app/components/transactions-list/transactions-list.component.html - 272,273 + 286,287 sat shared.sat @@ -2327,15 +2184,15 @@ src/app/components/transaction/transaction.component.html - 154,158 + 161,165 src/app/components/transaction/transaction.component.html - 467,469 + 479,481 src/app/lightning/channel/channel-box/channel-box.component.html - 19 + 18 src/app/lightning/channel/channel-preview.component.html @@ -2361,19 +2218,19 @@ src/app/components/block/block.component.html - 60 + 125,128 src/app/components/block/block.component.html - 157 + 129 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 11,13 + 12,14 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 14,16 + 15,17 src/app/components/fees-box/fees-box.component.html @@ -2413,31 +2270,35 @@ src/app/components/transaction/transaction.component.html - 169,170 + 173,174 src/app/components/transaction/transaction.component.html - 182,183 + 184,185 src/app/components/transaction/transaction.component.html - 469,472 + 195,196 src/app/components/transaction/transaction.component.html - 480,482 + 481,484 + + + src/app/components/transaction/transaction.component.html + 492,494 src/app/components/transactions-list/transactions-list.component.html - 272 + 286 src/app/dashboard/dashboard.component.html - 133,137 + 137,141 src/app/dashboard/dashboard.component.html - 200,204 + 204,208 sat/vB shared.sat-vbyte @@ -2451,15 +2312,68 @@ src/app/components/transaction/transaction.component.html - 153,155 + 160,162 src/app/components/transaction/transaction.component.html - 262,265 + 274,277 Transaction Virtual Size transaction.vsize + + Audit status + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 36 + + transaction.audit-status + + + Match + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 38 + + transaction.audit.match + + + Removed + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 39 + + transaction.audit.removed + + + Marginal fee rate + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 40 + + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 43 + + transaction.audit.marginal + + + Recently broadcasted + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 41 + + transaction.audit.recently-broadcasted + + + Added + 已添加 + + src/app/components/block-overview-tooltip/block-overview-tooltip.component.html + 42 + + transaction.audit.added + Block Prediction Accuracy 区块预测准确度 @@ -2484,6 +2398,10 @@ src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 111 + src/app/lightning/nodes-map/nodes-map.component.ts 144,139 @@ -2531,6 +2449,74 @@ mining.block-sizes-weights + + Size + 大小 + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 180,179 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 226,224 + + + src/app/components/block/block.component.html + 50,52 + + + src/app/components/blocks-list/blocks-list.component.html + 25,27 + + + src/app/components/mempool-block/mempool-block.component.html + 32,35 + + + src/app/components/mempool-graph/mempool-graph.component.ts + 260 + + + src/app/components/pool/pool.component.html + 219,222 + + + src/app/components/pool/pool.component.html + 266,270 + + + src/app/components/transaction/transaction.component.html + 270,272 + + + src/app/dashboard/dashboard.component.html + 91,94 + + + + Weight + 权重 + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 188,187 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 257,254 + + + src/app/components/block/block-preview.component.html + 32,34 + + + src/app/components/block/block.component.html + 54,56 + + + src/app/components/transaction/transaction.component.html + 278,280 + + Block 区块 @@ -2562,11 +2548,7 @@ src/app/components/block/block.component.html - 59,60 - - - src/app/components/block/block.component.html - 156,157 + 128,129 src/app/components/mempool-block/mempool-block.component.html @@ -2583,19 +2565,11 @@ src/app/components/block/block.component.html - 64,65 + 133,135 src/app/components/block/block.component.html - 90,92 - - - src/app/components/block/block.component.html - 161,163 - - - src/app/components/block/block.component.html - 187,190 + 159,162 src/app/components/mempool-block/mempool-block.component.html @@ -2613,11 +2587,7 @@ src/app/components/block/block.component.html - 99,101 - - - src/app/components/block/block.component.html - 196,198 + 168,170 block.miner @@ -2630,7 +2600,7 @@ src/app/components/block/block.component.ts - 201 + 227 @@ -2655,16 +2625,62 @@ Previous Block + + Block health + + src/app/components/block/block.component.html + 58,61 + + block.health + + + Unknown + 未知 + + src/app/components/block/block.component.html + 69,72 + + + src/app/components/blocks-list/blocks-list.component.html + 60,63 + + + src/app/lightning/node/node.component.html + 52,55 + + + src/app/lightning/node/node.component.html + 96,100 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 142,139 + + + src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts + 311,310 + + unknown + + + Fee span + 费用范围 + + src/app/components/block/block.component.html + 124,125 + + + src/app/components/mempool-block/mempool-block.component.html + 20,21 + + mempool-block.fee-span + Based on average native segwit transaction of 140 vBytes 基于平均140字节的本地segwit交易 src/app/components/block/block.component.html - 60,62 - - - src/app/components/block/block.component.html - 157,159 + 129,131 src/app/components/fees-box/fees-box.component.html @@ -2693,29 +2709,53 @@ 奖励+手续费: src/app/components/block/block.component.html - 79,81 + 148,151 src/app/components/block/block.component.html - 94,98 - - - src/app/components/block/block.component.html - 176,178 - - - src/app/components/block/block.component.html - 191,195 + 163,167 Total subsidy and fees in a block block.subsidy-and-fees + + Projected + + src/app/components/block/block.component.html + 210,212 + + block.projected + + + Actual + + src/app/components/block/block.component.html + 212,216 + + block.actual + + + Projected Block + + src/app/components/block/block.component.html + 216,218 + + block.projected-block + + + Actual Block + + src/app/components/block/block.component.html + 225,227 + + block.actual-block + Bits 字节 src/app/components/block/block.component.html - 256,258 + 250,252 block.bits @@ -2724,7 +2764,7 @@ 哈希树 src/app/components/block/block.component.html - 260,262 + 254,256 block.merkle-root @@ -2733,7 +2773,7 @@ 难度 src/app/components/block/block.component.html - 270,273 + 265,268 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2762,7 +2802,7 @@ 随机数 src/app/components/block/block.component.html - 274,276 + 269,271 block.nonce @@ -2771,7 +2811,7 @@ 区块头字节 src/app/components/block/block.component.html - 278,279 + 273,274 block.header @@ -2780,19 +2820,23 @@ 明细 src/app/components/block/block.component.html - 289,293 + 284,288 src/app/components/transaction/transaction.component.html - 242,247 + 254,259 src/app/lightning/channel/channel.component.html - 75,77 + 86,88 src/app/lightning/channel/channel.component.html - 85,87 + 96,98 + + + src/app/lightning/node/node.component.html + 218,222 Transaction Details transaction.details @@ -2802,11 +2846,11 @@ 加载数据时出错。 src/app/components/block/block.component.html - 308,310 + 303,305 src/app/components/block/block.component.html - 344,348 + 339,343 src/app/lightning/channel/channel-preview.component.html @@ -2814,7 +2858,7 @@ src/app/lightning/channel/channel.component.html - 98,104 + 109,115 src/app/lightning/node/node-preview.component.html @@ -2826,6 +2870,14 @@ error.general-loading-data + + Why is this block empty? + + src/app/components/block/block.component.html + 361,367 + + block.empty-block-explanation + Pool 矿池 @@ -2868,9 +2920,8 @@ latest-blocks.mined - - Reward - 奖励 + + Health src/app/components/blocks-list/blocks-list.component.html 18,19 @@ -2879,6 +2930,19 @@ src/app/components/blocks-list/blocks-list.component.html 18,19 + latest-blocks.health + + + Reward + 奖励 + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + + + src/app/components/blocks-list/blocks-list.component.html + 20,21 + src/app/components/pool/pool.component.html 216,218 @@ -2894,7 +2958,7 @@ 费用 src/app/components/blocks-list/blocks-list.component.html - 19,20 + 21,22 src/app/components/pool/pool.component.html @@ -2911,11 +2975,11 @@ 交易 src/app/components/blocks-list/blocks-list.component.html - 21,22 + 23,24 src/app/components/blocks-list/blocks-list.component.html - 22 + 24 src/app/components/pool/pool.component.html @@ -2931,7 +2995,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 210,214 dashboard.txs @@ -3008,7 +3072,7 @@ src/app/lightning/channel/channel-box/channel-box.component.html - 79 + 78 shared.blocks @@ -3170,7 +3234,7 @@ src/app/dashboard/dashboard.component.html - 233,234 + 237,238 dashboard.incoming-transactions @@ -3183,7 +3247,7 @@ src/app/dashboard/dashboard.component.html - 236,239 + 240,243 dashboard.backend-is-synchronizing @@ -3196,7 +3260,7 @@ src/app/dashboard/dashboard.component.html - 241,246 + 245,250 vB/s shared.vbytes-per-second @@ -3210,7 +3274,7 @@ src/app/dashboard/dashboard.component.html - 204,205 + 208,209 Unconfirmed count dashboard.unconfirmed @@ -3523,15 +3587,6 @@ documentation.title - - Fee span - 费用范围 - - src/app/components/mempool-block/mempool-block.component.html - 20,21 - - mempool-block.fee-span - Stack of mempool blocks 个内存池区块 @@ -3804,11 +3859,15 @@ src/app/components/transactions-list/transactions-list.component.html - 151,154 + 120,121 src/app/components/transactions-list/transactions-list.component.html - 262,265 + 160,162 + + + src/app/components/transactions-list/transactions-list.component.html + 271,273 show-all @@ -3978,7 +4037,7 @@ src/app/dashboard/dashboard.component.html - 150,157 + 154,161 Broadcast Transaction shared.broadcast-transaction @@ -3992,7 +4051,7 @@ src/app/components/transaction/transaction.component.html - 284,285 + 296,297 transaction.hex @@ -4022,9 +4081,8 @@ mining.rewards-desc - - Reward Per Tx - 每笔交易奖励 + + Avg Block Fees src/app/components/reward-stats/reward-stats.component.html 17 @@ -4033,42 +4091,27 @@ src/app/components/reward-stats/reward-stats.component.html 17,18 - - src/app/components/reward-stats/reward-stats.component.html - 53,56 - - - src/app/components/reward-stats/reward-stats.component.html - 60,63 - - mining.rewards-per-tx + mining.fees-per-block - - Average miners' reward per transaction in the past 144 blocks - 近 144 个区块中每笔交易平均矿工奖励 + + Average fees per block in the past 144 blocks src/app/components/reward-stats/reward-stats.component.html 18,20 - mining.rewards-per-tx-desc + mining.fees-per-block-desc - - sats/tx - 聪/笔 + + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 - - src/app/components/reward-stats/reward-stats.component.html - 33,36 - - sat/vB - shared.sat-vbyte + BTC/block + shared.btc-block - - Average Fee - 平均手续费 + + Avg Tx Fee src/app/components/reward-stats/reward-stats.component.html 30 @@ -4088,12 +4131,35 @@ mining.average-fee + + sats/tx + 聪/笔 + + src/app/components/reward-stats/reward-stats.component.html + 33,36 + + sat/vB + shared.sat-vbyte + + + Reward Per Tx + 每笔交易奖励 + + src/app/components/reward-stats/reward-stats.component.html + 53,56 + + + src/app/components/reward-stats/reward-stats.component.html + 60,63 + + mining.rewards-per-tx + Explore the full Bitcoin ecosystem 体验完整的比特币生态 src/app/components/search-form/search-form.component.html - 4,6 + 4,5 search-form.searchbar-placeholder @@ -4102,7 +4168,7 @@ 搜索 src/app/components/search-form/search-form.component.html - 11,18 + 9,16 search-form.search-title @@ -4124,7 +4190,7 @@ src/app/components/television/television.component.ts - 37 + 39 master-page.tvview @@ -4361,16 +4427,34 @@ RBF replacement transaction.rbf.replacement + + This transaction replaced: + + src/app/components/transaction/transaction.component.html + 10,12 + + RBF replaced + transaction.rbf.replaced + + + Replaced + + src/app/components/transaction/transaction.component.html + 36,39 + + Transaction unconfirmed state + transaction.unconfirmed + Unconfirmed 未确认 src/app/components/transaction/transaction.component.html - 32,39 + 39,46 src/app/components/transactions-list/transactions-list.component.html - 284,287 + 298,301 Transaction unconfirmed state transaction.unconfirmed @@ -4380,11 +4464,11 @@ 初次发现时间 src/app/components/transaction/transaction.component.html - 101,102 + 108,109 src/app/lightning/node/node.component.html - 63,66 + 67,70 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4414,7 +4498,7 @@ 预估时间 src/app/components/transaction/transaction.component.html - 108,109 + 115,116 Transaction ETA transaction.eta @@ -4424,7 +4508,7 @@ 在几个小时内(或更多) src/app/components/transaction/transaction.component.html - 114,117 + 121,124 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4434,7 +4518,11 @@ 后裔 src/app/components/transaction/transaction.component.html - 161,163 + 168,170 + + + src/app/components/transaction/transaction.component.html + 179,181 Descendant transaction.descendant @@ -4444,7 +4532,7 @@ 祖先 src/app/components/transaction/transaction.component.html - 175,177 + 190,192 Transaction Ancestor transaction.ancestor @@ -4454,11 +4542,11 @@ 流向 src/app/components/transaction/transaction.component.html - 195,198 + 208,211 src/app/components/transaction/transaction.component.html - 334,338 + 346,350 Transaction flow transaction.flow @@ -4468,7 +4556,7 @@ 隐藏图表 src/app/components/transaction/transaction.component.html - 198,203 + 211,216 hide-diagram @@ -4477,7 +4565,15 @@ 展示更多 src/app/components/transaction/transaction.component.html - 219,221 + 231,233 + + + src/app/components/transactions-list/transactions-list.component.html + 162,164 + + + src/app/components/transactions-list/transactions-list.component.html + 273,275 show-more @@ -4486,7 +4582,11 @@ 展示更少 src/app/components/transaction/transaction.component.html - 221,227 + 233,239 + + + src/app/components/transactions-list/transactions-list.component.html + 121,124 show-less @@ -4495,7 +4595,7 @@ 显示图表 src/app/components/transaction/transaction.component.html - 241,242 + 253,254 show-diagram @@ -4504,7 +4604,7 @@ 锁定时间 src/app/components/transaction/transaction.component.html - 280,282 + 292,294 transaction.locktime @@ -4513,7 +4613,7 @@ 交易未找到 src/app/components/transaction/transaction.component.html - 443,444 + 455,456 transaction.error.transaction-not-found @@ -4522,7 +4622,7 @@ 等待交易出现在内存池 src/app/components/transaction/transaction.component.html - 444,449 + 456,461 transaction.error.waiting-for-it-to-appear @@ -4531,7 +4631,7 @@ 有效收费率 src/app/components/transaction/transaction.component.html - 477,480 + 489,492 Effective transaction fee rate transaction.effective-fee-rate @@ -4541,7 +4641,7 @@ Coinbase src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.coinbase @@ -4550,7 +4650,7 @@ (新产生的货币) src/app/components/transactions-list/transactions-list.component.html - 54 + 52 transactions-list.newly-generated-coins @@ -4559,7 +4659,7 @@ 锁定 src/app/components/transactions-list/transactions-list.component.html - 56,58 + 54,56 transactions-list.peg-in @@ -4568,7 +4668,7 @@ ScriptSig (ASM) src/app/components/transactions-list/transactions-list.component.html - 107,109 + 101,103 ScriptSig (ASM) transactions-list.scriptsig.asm @@ -4578,7 +4678,7 @@ ScriptSig (HEX) src/app/components/transactions-list/transactions-list.component.html - 111,114 + 105,108 ScriptSig (HEX) transactions-list.scriptsig.hex @@ -4588,7 +4688,7 @@ Witness src/app/components/transactions-list/transactions-list.component.html - 116,118 + 110,112 transactions-list.witness @@ -4597,7 +4697,7 @@ P2SH redeem script src/app/components/transactions-list/transactions-list.component.html - 120,121 + 128,129 transactions-list.p2sh-redeem-script @@ -4606,7 +4706,7 @@ P2TR 脚本 src/app/components/transactions-list/transactions-list.component.html - 124,126 + 132,134 transactions-list.p2tr-tapscript @@ -4615,7 +4715,7 @@ P2WSH witness script src/app/components/transactions-list/transactions-list.component.html - 126,128 + 134,136 transactions-list.p2wsh-witness-script @@ -4624,7 +4724,7 @@ nSequence src/app/components/transactions-list/transactions-list.component.html - 131,133 + 139,141 transactions-list.nsequence @@ -4633,7 +4733,7 @@ 上一次输出脚本 src/app/components/transactions-list/transactions-list.component.html - 136,137 + 144,145 transactions-list.previous-output-script @@ -4642,7 +4742,7 @@ 之前输出类型 src/app/components/transactions-list/transactions-list.component.html - 140,141 + 148,149 transactions-list.previous-output-type @@ -4651,7 +4751,7 @@ 解锁至 src/app/components/transactions-list/transactions-list.component.html - 179,180 + 189,190 transactions-list.peg-out-to @@ -4660,7 +4760,7 @@ ScriptPubKey (ASM) src/app/components/transactions-list/transactions-list.component.html - 240,242 + 248,250 ScriptPubKey (ASM) transactions-list.scriptpubkey.asm @@ -4670,20 +4770,27 @@ ScriptPubKey (HEX) src/app/components/transactions-list/transactions-list.component.html - 244,247 + 252,255 ScriptPubKey (HEX) transactions-list.scriptpubkey.hex - - Show all inputs to reveal fee data - 显示所有输入以显示总手续费数据 + + Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 274,277 + 288,291 transactions-list.load-to-reveal-fee-info + + remaining + + src/app/components/transactions-list/transactions-list.component.html + 330,331 + + x-remaining + other inputs 其他输入 @@ -4707,7 +4814,11 @@ 输入 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 43 + 42 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 55 transaction.input @@ -4716,7 +4827,11 @@ 输出 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html - 44 + 43 + + + src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html + 54 transaction.output @@ -4793,6 +4908,10 @@ src/app/components/tx-features/tx-features.component.html 18 + + src/app/components/tx-features/tx-features.component.html + 21 + Taproot tx-features.tag.taproot @@ -4814,12 +4933,20 @@ Tooltip about fees that could be saved with taproot + + This transaction does not use Taproot + + src/app/components/tx-features/tx-features.component.html + 18 + + Tooltip about using taproot + This transaction uses Taproot 本交易使用Taproot src/app/components/tx-features/tx-features.component.html - 18 + 21 Tooltip about taproot @@ -4828,7 +4955,7 @@ 此交易支持手续费替换(RBF)且允许使用此方法追加费用 src/app/components/tx-features/tx-features.component.html - 25 + 28 RBF tooltip @@ -4837,11 +4964,11 @@ RBF src/app/components/tx-features/tx-features.component.html - 25 + 28 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF tx-features.tag.rbf @@ -4851,7 +4978,7 @@ 此交易不支持手续费替换(RBF)且不能使用此方法追加费用 src/app/components/tx-features/tx-features.component.html - 26 + 29 RBF disabled tooltip @@ -4924,7 +5051,7 @@ 最低费用 src/app/dashboard/dashboard.component.html - 197,198 + 201,202 Minimum mempool fee dashboard.minimum-fee @@ -4934,7 +5061,7 @@ 吹扫中 src/app/dashboard/dashboard.component.html - 198,199 + 202,203 Purgin below fee dashboard.purging @@ -4944,7 +5071,7 @@ 内存占用 src/app/dashboard/dashboard.component.html - 210,211 + 214,215 Memory usage dashboard.memory-usage @@ -4954,7 +5081,7 @@ 流通中的L-BTC src/app/dashboard/dashboard.component.html - 224,226 + 228,230 dashboard.lbtc-pegs-in-circulation @@ -4963,7 +5090,7 @@ REST API 服务 src/app/docs/api-docs/api-docs.component.html - 34,35 + 39,40 api-docs.title @@ -4972,11 +5099,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 43,44 + 48,49 src/app/docs/api-docs/api-docs.component.html - 97,100 + 102,105 Api docs endpoint @@ -4985,11 +5112,11 @@ 描述 src/app/docs/api-docs/api-docs.component.html - 62,63 + 67,68 src/app/docs/api-docs/api-docs.component.html - 101,102 + 106,107 @@ -4997,7 +5124,7 @@ 默认推送:操作: 'want', 数据: ['blocks', ...] 来表达你想要推送的内容。可用字段:blocksmempool-blockslive-2h-chart,和stats推送与地址有关的事务。'track-address': '3PbJ...bF9B' 接收所有包含该地址的新事务作为输入或输出。返回一个交易数组。address-transactions用于新的mempool交易,block-transactions用于新的块确认交易。 src/app/docs/api-docs/api-docs.component.html - 102,103 + 107,108 api-docs.websocket.websocket @@ -5045,7 +5172,7 @@ FAQ src/app/docs/docs/docs.component.ts - 33 + 34 @@ -5053,11 +5180,15 @@ 应用程序接口 src/app/docs/docs/docs.component.ts - 36 + 37 src/app/docs/docs/docs.component.ts - 39 + 40 + + + src/app/docs/docs/docs.component.ts + 43 @@ -5065,7 +5196,7 @@ 基础费用 src/app/lightning/channel/channel-box/channel-box.component.html - 30 + 29 src/app/lightning/channel/channel-preview.component.html @@ -5078,7 +5209,7 @@ mSats src/app/lightning/channel/channel-box/channel-box.component.html - 36 + 35 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5088,6 +5219,10 @@ src/app/lightning/channels-statistics/channels-statistics.component.html 93,96 + + src/app/lightning/node/node.component.html + 180,182 + shared.m-sats @@ -5095,7 +5230,7 @@ 该通道支持零基础费用路由 src/app/lightning/channel/channel-box/channel-box.component.html - 45 + 44 lightning.zero-base-fee-tooltip @@ -5104,7 +5239,7 @@ 零基础费用 src/app/lightning/channel/channel-box/channel-box.component.html - 46 + 45 lightning.zero-base-fee @@ -5113,7 +5248,7 @@ 此频道不支持零基础费用路由 src/app/lightning/channel/channel-box/channel-box.component.html - 51 + 50 lightning.non-zero-base-fee-tooltip @@ -5122,7 +5257,7 @@ 非零基础费用 src/app/lightning/channel/channel-box/channel-box.component.html - 52 + 51 lightning.non-zero-base-fee @@ -5131,7 +5266,7 @@ 最小 HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 58 + 57 lightning.min-htlc @@ -5140,7 +5275,7 @@ 最大 HTLC src/app/lightning/channel/channel-box/channel-box.component.html - 64 + 63 lightning.max-htlc @@ -5149,7 +5284,7 @@ 时间锁变化量 src/app/lightning/channel/channel-box/channel-box.component.html - 70 + 69 lightning.timelock-delta @@ -5158,14 +5293,32 @@ 频道 src/app/lightning/channel/channel-box/channel-box.component.html - 80 + 79 src/app/lightning/channels-list/channels-list.component.html - 121,122 + 120,121 lightning.x-channels + + Starting balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 6 + + Channel starting balance + lightning.starting-balance + + + Closing balance + + src/app/lightning/channel/channel-close-box/channel-close-box.component.html + 12 + + Channel closing balance + lightning.closing-balance + lightning channel 闪电交易频道 @@ -5188,7 +5341,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,67 + 65,66 status.inactive @@ -5205,7 +5358,7 @@ src/app/lightning/channels-list/channels-list.component.html - 67,69 + 66,68 status.active @@ -5226,7 +5379,7 @@ src/app/lightning/channels-list/channels-list.component.html - 69,71 + 68,70 status.closed @@ -5326,7 +5479,7 @@ src/app/lightning/channel/channel.component.html - 106,108 + 117,119 lightning.channel @@ -5339,7 +5492,7 @@ src/app/lightning/node/node.component.html - 69,71 + 73,75 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5376,12 +5529,20 @@ lightning.closing_date + + Closed by + + src/app/lightning/channel/channel.component.html + 52,54 + + lightning.closed_by + Opening transaction 开启交易 src/app/lightning/channel/channel.component.html - 73,74 + 84,85 lightning.opening-transaction @@ -5390,7 +5551,7 @@ 关闭交易 src/app/lightning/channel/channel.component.html - 82,84 + 93,95 lightning.closing-transaction @@ -5480,11 +5641,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 61,65 + 60,64 src/app/lightning/channels-list/channels-list.component.html - 85,89 + 84,88 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5678,10 +5839,6 @@ src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 22,26 - - src/app/lightning/nodes-per-isp/nodes-per-isp.component.html - 14,18 - lightning.node-count @@ -5893,6 +6050,14 @@ lightning.connectivity-ranking + + Fee distribution + + src/app/lightning/node-fee-chart/node-fee-chart.component.html + 2 + + lightning.node-fee-distribution + Percentage change past week 近 1 周中百分比变化 @@ -5923,7 +6088,7 @@ src/app/lightning/node/node.component.html - 165,167 + 260,262 lightning.node @@ -5980,33 +6145,20 @@ lightning.active-channels-avg - - Unknown - 未知 + + Avg channel distance src/app/lightning/node/node.component.html - 52,56 + 56,57 - - src/app/lightning/node/node.component.html - 91,95 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 142,139 - - - src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts - 311,310 - - unknown + lightning.avg-distance Color 颜色 src/app/lightning/node/node.component.html - 75,77 + 79,81 lightning.color @@ -6015,7 +6167,7 @@ ISP src/app/lightning/node/node.component.html - 82,83 + 86,87 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6028,16 +6180,82 @@ 仅在 Tor 网络上 src/app/lightning/node/node.component.html - 88,90 + 93,95 tor + + Liquidity ad + + src/app/lightning/node/node.component.html + 138,141 + + node.liquidity-ad + + + Lease fee rate + + src/app/lightning/node/node.component.html + 144,147 + + Liquidity ad lease fee rate + liquidity-ad.lease-fee-rate + + + Lease base fee + + src/app/lightning/node/node.component.html + 152,154 + + liquidity-ad.lease-base-fee + + + Funding weight + + src/app/lightning/node/node.component.html + 158,159 + + liquidity-ad.funding-weight + + + Channel fee rate + + src/app/lightning/node/node.component.html + 168,171 + + Liquidity ad channel fee rate + liquidity-ad.channel-fee-rate + + + Channel base fee + + src/app/lightning/node/node.component.html + 176,178 + + liquidity-ad.channel-base-fee + + + Compact lease + + src/app/lightning/node/node.component.html + 188,190 + + liquidity-ad.compact-lease + + + TLV extension records + + src/app/lightning/node/node.component.html + 199,202 + + node.tlv.records + Open channels 开启频道 src/app/lightning/node/node.component.html - 145,148 + 240,243 lightning.open-channels @@ -6046,7 +6264,7 @@ 关闭频道 src/app/lightning/node/node.component.html - 149,152 + 244,247 lightning.open-channels @@ -6055,7 +6273,7 @@ 节点: src/app/lightning/node/node.component.ts - 42 + 60 @@ -6104,9 +6322,8 @@ lightning.active-channels-map - - Indexing in progess - 正在统计 + + Indexing in progress src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6372,6 +6589,14 @@ lightning.asn + + Active nodes + + src/app/lightning/nodes-per-isp/nodes-per-isp.component.html + 14,18 + + lightning.active-node-count + Top 100 oldest lightning nodes 最老的 100 个闪电网络节点 diff --git a/nginx.conf b/nginx.conf index 4db19d130..95d2e8d45 100644 --- a/nginx.conf +++ b/nginx.conf @@ -106,6 +106,7 @@ http { ~*^vi vi; ~*^zh zh; ~*^hi hi; + ~*^ne ne; ~*^lt lt; } @@ -142,6 +143,7 @@ http { ~*^vi vi; ~*^zh zh; ~*^hi hi; + ~*^ne ne; ~*^lt lt; } From 2ed49cf944a25317d5b0a37c04969b2c4d8d1b31 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 29 Dec 2022 07:38:57 -0600 Subject: [PATCH 0240/1466] add toggle to enable/disable block audits --- .../app/components/block/block.component.html | 29 +++++++----- .../app/components/block/block.component.scss | 7 +++ .../app/components/block/block.component.ts | 45 +++++++++++++------ frontend/src/app/services/state.service.ts | 7 +++ .../components/toggle/toggle.component.html | 8 ++-- .../components/toggle/toggle.component.scss | 5 ++- .../components/toggle/toggle.component.ts | 10 ++++- 7 files changed, 78 insertions(+), 33 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 08ea04ca9..d104e2262 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -23,13 +23,20 @@
+
+ +
+
- -
@@ -54,7 +61,7 @@
- + - + - +
{{ vin.scriptsig }}
Witness{{ vin.witness.join(' ') }} + + +

+ {{ witness }} +

+
+ ... + +
+
+
P2SH redeem script
Audit status matchremovedmarginal fee raterecently broadcastaddedmarginal fee rateMatchRemovedMarginal fee rateRecently broadcastedAddedMarginal fee rate
Weight
Block health
- +
-
+
-
- diff --git a/frontend/src/app/components/block/block.component.scss b/frontend/src/app/components/block/block.component.scss index 931912e4e..039d3d2ef 100644 --- a/frontend/src/app/components/block/block.component.scss +++ b/frontend/src/app/components/block/block.component.scss @@ -222,4 +222,11 @@ h1 { .ng-fa-icon { margin-right: 1em; } +} + +.audit-toggle { + display: flex; + flex-direction: row; + align-items: center; + margin-right: 1em; } \ No newline at end of file diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index f04b4ec9c..9cf499650 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -58,8 +58,9 @@ export class BlockComponent implements OnInit, OnDestroy { overviewError: any = null; webGlEnabled = true; indexingAvailable = false; - auditEnabled = true; - auditDataMissing: boolean; + auditModeEnabled: boolean = !this.stateService.hideAudit.value; + auditAvailable = true; + showAudit: boolean; isMobile = window.innerWidth <= 767.98; hoverTx: string; numMissing: number = 0; @@ -79,6 +80,7 @@ export class BlockComponent implements OnInit, OnDestroy { timeLtrSubscription: Subscription; timeLtr: boolean; childChangeSubscription: Subscription; + auditPrefSubscription: Subscription; @ViewChildren('blockGraphProjected') blockGraphProjected: QueryList; @ViewChildren('blockGraphActual') blockGraphActual: QueryList; @@ -108,7 +110,12 @@ export class BlockComponent implements OnInit, OnDestroy { }); this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); - this.auditEnabled = this.indexingAvailable; + this.setAuditAvailable(this.indexingAvailable); + + this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { + this.auditModeEnabled = !hide; + this.showAudit = this.auditAvailable && this.auditModeEnabled; + }); this.txsLoadingStatus$ = this.route.paramMap .pipe( @@ -138,11 +145,11 @@ export class BlockComponent implements OnInit, OnDestroy { this.page = 1; this.error = undefined; this.fees = undefined; - this.auditDataMissing = false; + this.stateService.markBlock$.next({}); if (history.state.data && history.state.data.blockHeight) { this.blockHeight = history.state.data.blockHeight; - this.updateAuditDataMissingFromBlockHeight(this.blockHeight); + this.updateAuditAvailableFromBlockHeight(this.blockHeight); } let isBlockHeight = false; @@ -155,7 +162,7 @@ export class BlockComponent implements OnInit, OnDestroy { if (history.state.data && history.state.data.block) { this.blockHeight = history.state.data.block.height; - this.updateAuditDataMissingFromBlockHeight(this.blockHeight); + this.updateAuditAvailableFromBlockHeight(this.blockHeight); return of(history.state.data.block); } else { this.isLoadingBlock = true; @@ -217,7 +224,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.apiService.getBlockAudit$(block.previousblockhash); }, 100); } - this.updateAuditDataMissingFromBlockHeight(block.height); + this.updateAuditAvailableFromBlockHeight(block.height); this.block = block; this.blockHeight = block.height; this.lastBlockHeight = this.blockHeight; @@ -369,10 +376,9 @@ export class BlockComponent implements OnInit, OnDestroy { for (const tx of blockAudit.transactions) { inBlock[tx.txid] = true; } - this.auditEnabled = true; + this.setAuditAvailable(true); } else { - this.auditEnabled = false; - this.auditDataMissing = true; + this.setAuditAvailable(false); } return blockAudit; }), @@ -381,6 +387,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.error = err; this.isLoadingOverview = false; this.isLoadingAudit = false; + this.setAuditAvailable(false); return of(null); }), ).subscribe((blockAudit) => { @@ -440,6 +447,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.networkChangedSubscription.unsubscribe(); this.queryParamsSubscription.unsubscribe(); this.timeLtrSubscription.unsubscribe(); + this.auditSubscription.unsubscribe(); this.unsubscribeNextBlockSubscriptions(); this.childChangeSubscription.unsubscribe(); } @@ -595,21 +603,30 @@ export class BlockComponent implements OnInit, OnDestroy { } } - updateAuditDataMissingFromBlockHeight(blockHeight: number): void { + setAuditAvailable(available: boolean): void { + this.auditAvailable = available; + this.showAudit = this.auditAvailable && this.auditModeEnabled; + } + + toggleAuditMode(event): void { + this.stateService.hideAudit.next(!event); + } + + updateAuditAvailableFromBlockHeight(blockHeight: number): void { switch (this.stateService.network) { case 'testnet': if (blockHeight < this.stateService.env.TESTNET_BLOCK_AUDIT_START_HEIGHT) { - this.auditDataMissing = true; + this.setAuditAvailable(true); } break; case 'signet': if (blockHeight < this.stateService.env.SIGNET_BLOCK_AUDIT_START_HEIGHT) { - this.auditDataMissing = true; + this.setAuditAvailable(true); } break; default: if (blockHeight < this.stateService.env.MAINNET_BLOCK_AUDIT_START_HEIGHT) { - this.auditDataMissing = true; + this.setAuditAvailable(true); } } } diff --git a/frontend/src/app/services/state.service.ts b/frontend/src/app/services/state.service.ts index 86efa57f8..091490715 100644 --- a/frontend/src/app/services/state.service.ts +++ b/frontend/src/app/services/state.service.ts @@ -118,6 +118,7 @@ export class StateService { blockScrolling$: Subject = new Subject(); timeLtr: BehaviorSubject; hideFlow: BehaviorSubject; + hideAudit: BehaviorSubject; constructor( @Inject(PLATFORM_ID) private platformId: any, @@ -177,6 +178,12 @@ export class StateService { this.storageService.removeItem('flow-preference'); } }); + + const savedAuditPreference = this.storageService.getValue('audit-preference'); + this.hideAudit = new BehaviorSubject(savedAuditPreference === 'hide'); + this.hideAudit.subscribe((hide) => { + this.storageService.setValue('audit-preference', hide ? 'hide' : 'show'); + }); } setNetworkBasedonUrl(url: string) { diff --git a/frontend/src/app/shared/components/toggle/toggle.component.html b/frontend/src/app/shared/components/toggle/toggle.component.html index ea67f5416..154a74baa 100644 --- a/frontend/src/app/shared/components/toggle/toggle.component.html +++ b/frontend/src/app/shared/components/toggle/toggle.component.html @@ -1,8 +1,8 @@
- {{ textLeft }}  -
diff --git a/frontend/src/app/shared/components/toggle/toggle.component.scss b/frontend/src/app/shared/components/toggle/toggle.component.scss index a9c221290..97c096042 100644 --- a/frontend/src/app/shared/components/toggle/toggle.component.scss +++ b/frontend/src/app/shared/components/toggle/toggle.component.scss @@ -22,8 +22,6 @@ right: 0; bottom: 0; background-color: #ccc; - -webkit-transition: .4s; - transition: .4s; } .slider:before { @@ -34,6 +32,9 @@ left: 2px; bottom: 2px; background-color: white; +} + +.slider.animate, .slider.animate:before { -webkit-transition: .4s; transition: .4s; } diff --git a/frontend/src/app/shared/components/toggle/toggle.component.ts b/frontend/src/app/shared/components/toggle/toggle.component.ts index f389989d9..75d004e74 100644 --- a/frontend/src/app/shared/components/toggle/toggle.component.ts +++ b/frontend/src/app/shared/components/toggle/toggle.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, Output, ChangeDetectionStrategy, EventEmitter, AfterViewInit } from '@angular/core'; +import { Component, Input, Output, ChangeDetectionStrategy, EventEmitter, AfterViewInit, ChangeDetectorRef } from '@angular/core'; @Component({ selector: 'app-toggle', @@ -11,9 +11,15 @@ export class ToggleComponent implements AfterViewInit { @Input() textLeft: string; @Input() textRight: string; @Input() checked: boolean = false; + animate: boolean = false; + + constructor( + private cd: ChangeDetectorRef, + ) { } ngAfterViewInit(): void { - this.toggleStatusChanged.emit(false); + this.animate = true; + setTimeout(() => { this.cd.markForCheck()}); } onToggleStatusChanged(e): void { From d3b59bc459a03eb39520a1b3ccb5ef93e9e8ba17 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 26 Jan 2023 10:50:00 -0600 Subject: [PATCH 0241/1466] Remove extra space after block details when audit disabled --- frontend/src/app/components/block/block.component.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index d104e2262..ecf7180b4 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -206,9 +206,10 @@ - - -
+ + +
+
From 714700d8f104195dd009af3320b5f732312640fd Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 26 Jan 2023 11:09:23 -0600 Subject: [PATCH 0242/1466] change audit toggle to bootstrap button --- .../app/components/block/block.component.html | 27 +++++++++++-------- .../app/components/block/block.component.scss | 14 +++++----- .../app/components/block/block.component.ts | 4 +-- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index ecf7180b4..0f5eb9a78 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -23,15 +23,6 @@
-
- -
-
@@ -288,8 +279,22 @@
-
- +
+ +
diff --git a/frontend/src/app/components/block/block.component.scss b/frontend/src/app/components/block/block.component.scss index 039d3d2ef..97b5a24f3 100644 --- a/frontend/src/app/components/block/block.component.scss +++ b/frontend/src/app/components/block/block.component.scss @@ -75,14 +75,19 @@ h1 { } } -.btn-details { +.toggle-btns { position: relative; + z-index: 2; top: 7px; @media (min-width: 550px) { top: 0px; } } +.btn-audit { + margin-right: .5em; +} + .block-tx-title { display: flex; justify-content: space-between; @@ -222,11 +227,4 @@ h1 { .ng-fa-icon { margin-right: 1em; } -} - -.audit-toggle { - display: flex; - flex-direction: row; - align-items: center; - margin-right: 1em; } \ No newline at end of file diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 9cf499650..719d38528 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -608,8 +608,8 @@ export class BlockComponent implements OnInit, OnDestroy { this.showAudit = this.auditAvailable && this.auditModeEnabled; } - toggleAuditMode(event): void { - this.stateService.hideAudit.next(!event); + toggleAuditMode(): void { + this.stateService.hideAudit.next(this.auditModeEnabled); } updateAuditAvailableFromBlockHeight(blockHeight: number): void { From da51557960cfd1ba7a01dd1bab29de25018da885 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 26 Jan 2023 11:55:26 -0600 Subject: [PATCH 0243/1466] Add button to scroll back to tip of blockchain --- .../app/components/start/start.component.html | 17 ++++++--- .../app/components/start/start.component.scss | 37 +++++++++++++++++++ .../app/components/start/start.component.ts | 4 ++ frontend/src/app/shared/shared.module.ts | 3 +- 4 files changed, 54 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/components/start/start.component.html b/frontend/src/app/components/start/start.component.html index c3277cb9a..621cd959d 100644 --- a/frontend/src/app/components/start/start.component.html +++ b/frontend/src/app/components/start/start.component.html @@ -8,12 +8,17 @@
{{ eventName }} in {{ countdown | number }} block{{ countdown === 1 ? '' : 's' }}!
-
- +
+
+ +
+
+ +
diff --git a/frontend/src/app/components/start/start.component.scss b/frontend/src/app/components/start/start.component.scss index 9a55855b1..f23235035 100644 --- a/frontend/src/app/components/start/start.component.scss +++ b/frontend/src/app/components/start/start.component.scss @@ -12,6 +12,43 @@ display: none; } +.blockchain-wrapper { + position: relative; + + .reset-scroll { + position: absolute; + top: 50%; + transform: translateY(-50%); + font-size: 50px; + z-index: 10; + cursor: pointer; + opacity: 0.8; + transition: opacity 500ms; + background: radial-gradient(#1d1f31 0%, transparent 50%); + + &:hover { + opacity: 1; + transition: opacity 300ms; + } + + &.hidden { + opacity: 0; + cursor: inherit; + pointer-events: none; + transition: opacity 500ms; + } + } + + &.time-ltr .reset-scroll{ + right: 10px; + transform: translateY(-50%) rotateZ(180deg); + } + + &.time-rtl .reset-scroll { + left: 10px; + } +} + .warning-label { position: relative; text-align: center; diff --git a/frontend/src/app/components/start/start.component.ts b/frontend/src/app/components/start/start.component.ts index 558e6f909..f61a780a5 100644 --- a/frontend/src/app/components/start/start.component.ts +++ b/frontend/src/app/components/start/start.component.ts @@ -250,6 +250,10 @@ export class StartComponent implements OnInit, OnDestroy { }; } + resetScroll(): void { + this.scrollToBlock(this.chainTip); + } + getPageIndexOf(height: number): number { const delta = this.chainTip - 8 - height; return Math.max(0, Math.floor(delta / this.blocksPerPage) + 1); diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index 458eb2c8c..d82f03493 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -4,7 +4,7 @@ import { NgbCollapseModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstra import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle, faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, - faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate } from '@fortawesome/free-solid-svg-icons'; + faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft } from '@fortawesome/free-solid-svg-icons'; import { InfiniteScrollModule } from 'ngx-infinite-scroll'; import { MasterPageComponent } from '../components/master-page/master-page.component'; import { PreviewTitleComponent } from '../components/master-page-preview/preview-title.component'; @@ -290,6 +290,7 @@ export class SharedModule { library.addIcons(faRedoAlt); library.addIcons(faArrowAltCircleRight); library.addIcons(faArrowsRotate); + library.addIcons(faCircleLeft); library.addIcons(faExternalLinkAlt); library.addIcons(faSortUp); library.addIcons(faCaretUp); From 1cf3e1814bacdfb829c0ab56d09e48aa62a8fe27 Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 26 Jan 2023 23:18:12 +0400 Subject: [PATCH 0244/1466] Fix node chart legend position error --- .../nodes-networks-chart/nodes-networks-chart.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts index abf104e2f..20ce5cc6f 100644 --- a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts +++ b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -413,7 +413,7 @@ export class NodesNetworksChartComponent implements OnInit { }], }; - if (isMobile()) { + if (isMobile() && this.chartOptions.legend) { // @ts-ignore this.chartOptions.legend.left = 50; } From 3c3814910a31337c2ba7040b082f5d3338db7b4c Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 26 Jan 2023 18:57:32 -0600 Subject: [PATCH 0245/1466] Only show block audit highlighting when audit enabled --- .../block-overview-graph.component.ts | 13 ++++++++- .../block-overview-graph/block-scene.ts | 27 ++++++++++++------- .../block-overview-graph/tx-view.ts | 10 +++++-- .../app/components/block/block.component.html | 4 +-- 4 files changed, 40 insertions(+), 14 deletions(-) diff --git a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts index 37225ea1d..7c71d36fe 100644 --- a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts +++ b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts @@ -20,6 +20,7 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On @Input() disableSpinner = false; @Input() mirrorTxid: string | void; @Input() unavailable: boolean = false; + @Input() auditHighlighting: boolean = false; @Output() txClickEvent = new EventEmitter(); @Output() txHoverEvent = new EventEmitter(); @Output() readyEvent = new EventEmitter(); @@ -70,6 +71,9 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On if (changes.mirrorTxid) { this.setMirror(this.mirrorTxid); } + if (changes.auditHighlighting) { + this.setHighlightingEnabled(this.auditHighlighting); + } } ngOnDestroy(): void { @@ -195,7 +199,7 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On this.start(); } else { this.scene = new BlockScene({ width: this.displayWidth, height: this.displayHeight, resolution: this.resolution, - blockLimit: this.blockLimit, orientation: this.orientation, flip: this.flip, vertexArray: this.vertexArray }); + blockLimit: this.blockLimit, orientation: this.orientation, flip: this.flip, vertexArray: this.vertexArray, highlighting: this.auditHighlighting }); this.start(); } } @@ -396,6 +400,13 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On } } + setHighlightingEnabled(enabled: boolean): void { + if (this.scene) { + this.scene.setHighlighting(enabled); + this.start(); + } + } + onTxClick(cssX: number, cssY: number) { const x = cssX * window.devicePixelRatio; const y = cssY * window.devicePixelRatio; diff --git a/frontend/src/app/components/block-overview-graph/block-scene.ts b/frontend/src/app/components/block-overview-graph/block-scene.ts index 8d3c46af4..e7853d5a1 100644 --- a/frontend/src/app/components/block-overview-graph/block-scene.ts +++ b/frontend/src/app/components/block-overview-graph/block-scene.ts @@ -9,6 +9,7 @@ export default class BlockScene { txs: { [key: string]: TxView }; orientation: string; flip: boolean; + highlightingEnabled: boolean; width: number; height: number; gridWidth: number; @@ -22,11 +23,11 @@ export default class BlockScene { animateUntil = 0; dirty: boolean; - constructor({ width, height, resolution, blockLimit, orientation, flip, vertexArray }: + constructor({ width, height, resolution, blockLimit, orientation, flip, vertexArray, highlighting }: { width: number, height: number, resolution: number, blockLimit: number, - orientation: string, flip: boolean, vertexArray: FastVertexArray } + orientation: string, flip: boolean, vertexArray: FastVertexArray, highlighting: boolean } ) { - this.init({ width, height, resolution, blockLimit, orientation, flip, vertexArray }); + this.init({ width, height, resolution, blockLimit, orientation, flip, vertexArray, highlighting }); } resize({ width = this.width, height = this.height, animate = true }: { width?: number, height?: number, animate: boolean }): void { @@ -51,6 +52,13 @@ export default class BlockScene { } } + setHighlighting(enabled: boolean): void { + this.highlightingEnabled = enabled; + if (this.initialised && this.scene) { + this.updateAll(performance.now(), 50); + } + } + // Destroy the current layout and clean up graphics sprites without any exit animation destroy(): void { Object.values(this.txs).forEach(tx => tx.destroy()); @@ -67,7 +75,7 @@ export default class BlockScene { }); this.layout = new BlockLayout({ width: this.gridWidth, height: this.gridHeight }); txs.forEach(tx => { - const txView = new TxView(tx, this.vertexArray); + const txView = new TxView(tx, this); this.txs[tx.txid] = txView; this.place(txView); this.saveGridToScreenPosition(txView); @@ -114,7 +122,7 @@ export default class BlockScene { }); txs.forEach(tx => { if (!this.txs[tx.txid]) { - this.txs[tx.txid] = new TxView(tx, this.vertexArray); + this.txs[tx.txid] = new TxView(tx, this); } }); @@ -156,7 +164,7 @@ export default class BlockScene { if (resetLayout) { add.forEach(tx => { if (!this.txs[tx.txid]) { - this.txs[tx.txid] = new TxView(tx, this.vertexArray); + this.txs[tx.txid] = new TxView(tx, this); } }); this.layout = new BlockLayout({ width: this.gridWidth, height: this.gridHeight }); @@ -166,7 +174,7 @@ export default class BlockScene { } else { // try to insert new txs directly const remaining = []; - add.map(tx => new TxView(tx, this.vertexArray)).sort(feeRateDescending).forEach(tx => { + add.map(tx => new TxView(tx, this)).sort(feeRateDescending).forEach(tx => { if (!this.tryInsertByFee(tx)) { remaining.push(tx); } @@ -192,13 +200,14 @@ export default class BlockScene { this.animateUntil = Math.max(this.animateUntil, tx.setHover(value)); } - private init({ width, height, resolution, blockLimit, orientation, flip, vertexArray }: + private init({ width, height, resolution, blockLimit, orientation, flip, vertexArray, highlighting }: { width: number, height: number, resolution: number, blockLimit: number, - orientation: string, flip: boolean, vertexArray: FastVertexArray } + orientation: string, flip: boolean, vertexArray: FastVertexArray, highlighting: boolean } ): void { this.orientation = orientation; this.flip = flip; this.vertexArray = vertexArray; + this.highlightingEnabled = highlighting; this.scene = { count: 0, diff --git a/frontend/src/app/components/block-overview-graph/tx-view.ts b/frontend/src/app/components/block-overview-graph/tx-view.ts index a4355870e..fe224ebac 100644 --- a/frontend/src/app/components/block-overview-graph/tx-view.ts +++ b/frontend/src/app/components/block-overview-graph/tx-view.ts @@ -38,6 +38,7 @@ export default class TxView implements TransactionStripped { feerate: number; status?: 'found' | 'missing' | 'fresh' | 'added' | 'censored' | 'selected'; context?: 'projected' | 'actual'; + scene?: BlockScene; initialised: boolean; vertexArray: FastVertexArray; @@ -50,7 +51,8 @@ export default class TxView implements TransactionStripped { dirty: boolean; - constructor(tx: TransactionStripped, vertexArray: FastVertexArray) { + constructor(tx: TransactionStripped, scene: BlockScene) { + this.scene = scene; this.context = tx.context; this.txid = tx.txid; this.fee = tx.fee; @@ -59,7 +61,7 @@ export default class TxView implements TransactionStripped { this.feerate = tx.fee / tx.vsize; this.status = tx.status; this.initialised = false; - this.vertexArray = vertexArray; + this.vertexArray = scene.vertexArray; this.hover = false; @@ -157,6 +159,10 @@ export default class TxView implements TransactionStripped { getColor(): Color { const feeLevelIndex = feeLevels.findIndex((feeLvl) => Math.max(1, this.feerate) < feeLvl) - 1; const feeLevelColor = feeColors[feeLevelIndex] || feeColors[mempoolFeeColors.length - 1]; + // Normal mode + if (!this.scene?.highlightingEnabled) { + return feeLevelColor; + } // Block audit switch(this.status) { case 'censored': diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 0f5eb9a78..470914d2d 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -215,7 +215,7 @@

Projected Block

@@ -224,7 +224,7 @@

Actual Block

From d8737ef6e1b05a5c86fe65adb390a60e5b8dcc9c Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 26 Jan 2023 19:14:40 -0600 Subject: [PATCH 0246/1466] Only show audit-related tooltip info when audit enabled --- .../block-overview-graph/block-overview-graph.component.html | 1 + .../block-overview-tooltip.component.html | 2 +- .../block-overview-tooltip/block-overview-tooltip.component.ts | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html index 77ee62cae..54cd995aa 100644 --- a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html +++ b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.html @@ -9,5 +9,6 @@ [tx]="selectedTx || hoverTx" [cursorPosition]="tooltipPosition" [clickable]="!!selectedTx" + [auditEnabled]="auditHighlighting" >
diff --git a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html index 1a58bfbd9..7a1145a0e 100644 --- a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html +++ b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.html @@ -32,7 +32,7 @@
Virtual size
Audit status Match
Audit status MatchRemovedMarginal fee rateRecently broadcastedAddedMarginal fee rateMatchRemovedMarginal fee rateRecently broadcastedAddedMarginal fee rate
Block healthHealth src/app/components/block/block.component.html - 290,291 + 303,304 src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -347,7 +347,7 @@ src/app/components/block/block.component.html - 291,292 + 304,305 src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -386,7 +386,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -410,7 +410,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -975,7 +975,7 @@ src/app/components/block/block.component.html - 246,247 + 245,246 src/app/components/transaction/transaction.component.html @@ -1546,7 +1546,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1749,7 +1749,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1761,7 +1761,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1773,7 +1773,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1781,7 +1781,7 @@ Error loading assets data. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -1986,7 +1986,7 @@ src/app/components/transaction/transaction.component.html - 476 + 478 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2011,7 +2011,7 @@ src/app/components/transaction/transaction.component.html - 476,477 + 478,479 src/app/components/transactions-list/transactions-list.component.html @@ -2032,7 +2032,7 @@ src/app/components/transaction/transaction.component.html - 479,481 + 481,483 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2044,7 +2044,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2061,11 +2061,11 @@ src/app/components/block/block.component.html - 125,128 + 123,126 src/app/components/block/block.component.html - 129 + 127 src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -2125,11 +2125,11 @@ src/app/components/transaction/transaction.component.html - 481,484 + 483,486 src/app/components/transaction/transaction.component.html - 492,494 + 494,496 src/app/components/transactions-list/transactions-list.component.html @@ -2141,7 +2141,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 206,210 sat/vB shared.sat-vbyte @@ -2297,7 +2297,7 @@ src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2344,7 +2344,7 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html @@ -2381,7 +2381,7 @@ src/app/components/block/block.component.html - 128,129 + 126,127 src/app/components/mempool-block/mempool-block.component.html @@ -2397,11 +2397,11 @@ src/app/components/block/block.component.html - 133,135 + 131,133 src/app/components/block/block.component.html - 159,162 + 157,160 src/app/components/mempool-block/mempool-block.component.html @@ -2418,7 +2418,7 @@ src/app/components/block/block.component.html - 168,170 + 166,168 block.miner @@ -2430,7 +2430,7 @@ src/app/components/block/block.component.ts - 227 + 234 @@ -2453,19 +2453,27 @@ Previous Block - - Block health + + Health src/app/components/block/block.component.html - 58,61 + 56,59 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html @@ -2493,7 +2501,7 @@ Fee span src/app/components/block/block.component.html - 124,125 + 122,123 src/app/components/mempool-block/mempool-block.component.html @@ -2505,7 +2513,7 @@ Based on average native segwit transaction of 140 vBytes src/app/components/block/block.component.html - 129,131 + 127,129 src/app/components/fees-box/fees-box.component.html @@ -2533,11 +2541,11 @@ Subsidy + fees: src/app/components/block/block.component.html - 148,151 + 146,149 src/app/components/block/block.component.html - 163,167 + 161,165 Total subsidy and fees in a block block.subsidy-and-fees @@ -2546,7 +2554,7 @@ Projected src/app/components/block/block.component.html - 210,212 + 209,211 block.projected @@ -2554,7 +2562,7 @@ Actual src/app/components/block/block.component.html - 212,216 + 211,215 block.actual @@ -2562,7 +2570,7 @@ Projected Block src/app/components/block/block.component.html - 216,218 + 215,217 block.projected-block @@ -2570,7 +2578,7 @@ Actual Block src/app/components/block/block.component.html - 225,227 + 224,226 block.actual-block @@ -2578,7 +2586,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 249,251 block.bits @@ -2586,7 +2594,7 @@ Merkle root src/app/components/block/block.component.html - 254,256 + 253,255 block.merkle-root @@ -2594,7 +2602,7 @@ Difficulty src/app/components/block/block.component.html - 265,268 + 264,267 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2622,7 +2630,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 268,270 block.nonce @@ -2630,15 +2638,24 @@ Block Header Hex src/app/components/block/block.component.html - 273,274 + 272,273 block.header + + Audit + + src/app/components/block/block.component.html + 290,294 + + Toggle Audit + block.toggle-audit + Details src/app/components/block/block.component.html - 284,288 + 297,301 src/app/components/transaction/transaction.component.html @@ -2663,11 +2680,11 @@ Error loading data. src/app/components/block/block.component.html - 303,305 + 316,318 src/app/components/block/block.component.html - 339,343 + 355,359 src/app/lightning/channel/channel-preview.component.html @@ -2691,7 +2708,7 @@ Why is this block empty? src/app/components/block/block.component.html - 361,367 + 377,383 block.empty-block-explanation @@ -2735,18 +2752,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward @@ -2807,7 +2812,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 212,216 dashboard.txs @@ -3028,7 +3033,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 239,240 dashboard.incoming-transactions @@ -3040,7 +3045,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 242,245 dashboard.backend-is-synchronizing @@ -3052,7 +3057,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 247,252 vB/s shared.vbytes-per-second @@ -3065,7 +3070,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 210,211 Unconfirmed count dashboard.unconfirmed @@ -3769,7 +3774,7 @@ src/app/dashboard/dashboard.component.html - 154,161 + 154,162 Broadcast Transaction shared.broadcast-transaction @@ -3896,6 +3901,14 @@ search-form.search-title + + Return to tip + + src/app/components/start/start.component.html + 20 + + blocks.return-to-tip + Mempool by vBytes (sat/vByte) @@ -4330,7 +4343,7 @@ Effective fee rate src/app/components/transaction/transaction.component.html - 489,492 + 491,494 Effective transaction fee rate transaction.effective-fee-rate @@ -4712,7 +4725,7 @@ Minimum fee src/app/dashboard/dashboard.component.html - 201,202 + 203,204 Minimum mempool fee dashboard.minimum-fee @@ -4721,7 +4734,7 @@ Purging src/app/dashboard/dashboard.component.html - 202,203 + 204,205 Purgin below fee dashboard.purging @@ -4730,7 +4743,7 @@ Memory usage src/app/dashboard/dashboard.component.html - 214,215 + 216,217 Memory usage dashboard.memory-usage @@ -4739,7 +4752,7 @@ L-BTC in circulation src/app/dashboard/dashboard.component.html - 228,230 + 230,232 dashboard.lbtc-pegs-in-circulation @@ -4936,7 +4949,7 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels @@ -4978,7 +4991,7 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -4994,7 +5007,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5014,7 +5027,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5042,7 +5055,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5154,7 +5167,7 @@ src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date @@ -5201,7 +5214,7 @@ No channels to display src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5209,7 +5222,7 @@ Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5245,7 +5258,7 @@ Status src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5253,7 +5266,7 @@ Channel ID src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5261,11 +5274,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html From e8c32735413d616dd39ef832cbe9ef0a756d2c80 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 30 Jan 2023 16:26:37 -0600 Subject: [PATCH 0253/1466] fix drift in next block viz with mixed template algos --- backend/src/api/mempool-blocks.ts | 39 +++++++++++++++++----------- backend/src/api/websocket-handler.ts | 20 +++++++------- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/backend/src/api/mempool-blocks.ts b/backend/src/api/mempool-blocks.ts index d94ed77bd..0df125d55 100644 --- a/backend/src/api/mempool-blocks.ts +++ b/backend/src/api/mempool-blocks.ts @@ -33,7 +33,7 @@ class MempoolBlocks { return this.mempoolBlockDeltas; } - public updateMempoolBlocks(memPool: { [txid: string]: TransactionExtended }): void { + public updateMempoolBlocks(memPool: { [txid: string]: TransactionExtended }, saveResults: boolean = false): MempoolBlockWithTransactions[] { const latestMempool = memPool; const memPoolArray: TransactionExtended[] = []; for (const i in latestMempool) { @@ -75,10 +75,14 @@ class MempoolBlocks { logger.debug('Mempool blocks calculated in ' + time / 1000 + ' seconds'); const blocks = this.calculateMempoolBlocks(memPoolArray, this.mempoolBlocks); - const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, blocks); - this.mempoolBlocks = blocks; - this.mempoolBlockDeltas = deltas; + if (saveResults) { + const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, blocks); + this.mempoolBlocks = blocks; + this.mempoolBlockDeltas = deltas; + } + + return blocks; } private calculateMempoolBlocks(transactionsSorted: TransactionExtended[], prevBlocks: MempoolBlockWithTransactions[]): MempoolBlockWithTransactions[] { @@ -143,7 +147,7 @@ class MempoolBlocks { return mempoolBlockDeltas; } - public async makeBlockTemplates(newMempool: { [txid: string]: TransactionExtended }): Promise { + public async makeBlockTemplates(newMempool: { [txid: string]: TransactionExtended }, saveResults: boolean = false): Promise { // 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 } = {}; @@ -184,19 +188,21 @@ class MempoolBlocks { this.txSelectionWorker.postMessage({ type: 'set', mempool: strippedMempool }); const { blocks, clusters } = await workerResultPromise; - this.processBlockTemplates(newMempool, blocks, clusters); - // clean up thread error listener this.txSelectionWorker?.removeListener('error', threadErrorListener); + + return this.processBlockTemplates(newMempool, blocks, clusters, saveResults); } catch (e) { logger.err('makeBlockTemplates failed. ' + (e instanceof Error ? e.message : e)); } + return this.mempoolBlocks; } - public async updateBlockTemplates(newMempool: { [txid: string]: TransactionExtended }, added: TransactionExtended[], removed: string[]): Promise { + public async updateBlockTemplates(newMempool: { [txid: string]: TransactionExtended }, added: TransactionExtended[], removed: string[], saveResults: boolean = false): Promise { if (!this.txSelectionWorker) { // need to reset the worker - return this.makeBlockTemplates(newMempool); + this.makeBlockTemplates(newMempool, saveResults); + return; } // 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 @@ -224,16 +230,16 @@ class MempoolBlocks { this.txSelectionWorker.postMessage({ type: 'update', added: addedStripped, removed }); const { blocks, clusters } = await workerResultPromise; - this.processBlockTemplates(newMempool, blocks, clusters); - // clean up thread error listener this.txSelectionWorker?.removeListener('error', threadErrorListener); + + this.processBlockTemplates(newMempool, blocks, clusters, saveResults); } catch (e) { logger.err('updateBlockTemplates failed. ' + (e instanceof Error ? e.message : e)); } } - private processBlockTemplates(mempool, blocks, clusters): void { + private processBlockTemplates(mempool, blocks, clusters, saveResults): MempoolBlockWithTransactions[] { // update this thread's mempool with the results blocks.forEach(block => { block.forEach(tx => { @@ -278,10 +284,13 @@ class MempoolBlocks { }).filter(tx => !!tx), undefined, undefined, blockIndex); }); - const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, mempoolBlocks); + if (saveResults) { + const deltas = this.calculateMempoolDeltas(this.mempoolBlocks, mempoolBlocks); + this.mempoolBlocks = mempoolBlocks; + this.mempoolBlockDeltas = deltas; + } - this.mempoolBlocks = mempoolBlocks; - this.mempoolBlockDeltas = deltas; + return mempoolBlocks; } private dataToMempoolBlocks(transactions: TransactionExtended[], diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 3ca49293d..cffbea346 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -251,9 +251,9 @@ class WebsocketHandler { } if (config.MEMPOOL.ADVANCED_GBT_MEMPOOL) { - await mempoolBlocks.updateBlockTemplates(newMempool, newTransactions, deletedTransactions.map(tx => tx.txid)); + await mempoolBlocks.updateBlockTemplates(newMempool, newTransactions, deletedTransactions.map(tx => tx.txid), true); } else { - mempoolBlocks.updateMempoolBlocks(newMempool); + mempoolBlocks.updateMempoolBlocks(newMempool, true); } const mBlocks = mempoolBlocks.getMempoolBlocks(); @@ -418,16 +418,18 @@ class WebsocketHandler { const _memPool = memPool.getMempool(); + let projectedBlocks; + // template calculation functions have mempool side effects, so calculate audits using + // a cloned copy of the mempool if we're running a different algorithm for mempool updates + const auditMempool = (config.MEMPOOL.ADVANCED_GBT_AUDIT === config.MEMPOOL.ADVANCED_GBT_MEMPOOL) ? _memPool : JSON.parse(JSON.stringify(_memPool)); if (config.MEMPOOL.ADVANCED_GBT_AUDIT) { - await mempoolBlocks.makeBlockTemplates(_memPool); + projectedBlocks = await mempoolBlocks.makeBlockTemplates(auditMempool, false); } else { - mempoolBlocks.updateMempoolBlocks(_memPool); + projectedBlocks = mempoolBlocks.updateMempoolBlocks(auditMempool, false); } if (Common.indexingEnabled() && memPool.isInSync()) { - const projectedBlocks = mempoolBlocks.getMempoolBlocksWithTransactions(); - - const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, _memPool); + const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, auditMempool); const matchRate = Math.round(score * 100 * 100) / 100; const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => { @@ -471,9 +473,9 @@ class WebsocketHandler { } if (config.MEMPOOL.ADVANCED_GBT_MEMPOOL) { - await mempoolBlocks.updateBlockTemplates(_memPool, [], removed); + await mempoolBlocks.updateBlockTemplates(_memPool, [], removed, true); } else { - mempoolBlocks.updateMempoolBlocks(_memPool); + mempoolBlocks.updateMempoolBlocks(_memPool, true); } const mBlocks = mempoolBlocks.getMempoolBlocks(); const mBlockDeltas = mempoolBlocks.getMempoolBlockDeltas(); From 573fe3515a14e35c319c01cc276b0e9f723defdb Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 31 Jan 2023 00:27:06 -0500 Subject: [PATCH 0254/1466] Add block health faq --- frontend/src/app/docs/api-docs/api-docs-data.ts | 7 +++++++ .../src/app/docs/api-docs/api-docs.component.html | 13 +++++++++++++ .../src/app/docs/api-docs/api-docs.component.scss | 6 ++++++ 3 files changed, 26 insertions(+) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 8cbf03dfb..f4b4602ad 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -8667,6 +8667,13 @@ export const faqData = [ fragment: "why-dont-fee-ranges-match", title: "Why doesn't the fee range shown for a block match the feerates of transactions within the block?", }, + { + type: "endpoint", + category: "advanced", + showConditions: bitcoinNetworks, + fragment: "what-is-block-health", + title: "What is block health?", + }, { type: "category", category: "self-hosting", diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index c343d24c8..9f0b9fc2d 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -218,6 +218,19 @@

For unconfirmed CPFP transactions, Mempool will show the effective feerate (along with descendent & ancestor transaction information) on the transaction page. For confirmed transactions, CPFP relationships are not stored, so this additional information is not shown.

+ +

Block health indicates the extent of potential censorship in a block. This is determined by counting how many expected transactions a block is missing—a block that is not missing any expected transactions will have 100% health, while a block missing 1 or more expected transactions will have sub-100% health.

+

How does this work? Let sexpected be the set of all transactions Mempool expected to be in a block and let sactual be the set of all transactions actually in a block. Let n be the number of all transactions in both sexpected and sactual.

+

Then let r be the number of all transactions expected to be in sactual but not actually in it (excluding those that have been recently broadcast; see below).

+

Block health is calculated as n / ( n + r ).

+

Transactions appearing in both sexpected and sactual are used (instead of a block's full transaction count) in order to minimize chances that block health is impacted by missing transactions that don't imply censorship:

+
    +
  • recently-broadcast transactions, since the miner may simply not have received them
  • +
  • certain low-feerate transactions, since the miner may have opted to replace them with more profitable out-of-band transactions
  • +
+

Mempool uses a re-implementation of Bitcoin Core's transaction selection algorithm to determine the transactions it expects to see in the next block.

+
+ The official mempool.space website is operated by The Mempool Open Source Project. See more information on our About page. There are also many unofficial instances of this website operated by individual members of the Bitcoin community. diff --git a/frontend/src/app/docs/api-docs/api-docs.component.scss b/frontend/src/app/docs/api-docs/api-docs.component.scss index 7392d1f55..db6d51cf2 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.scss +++ b/frontend/src/app/docs/api-docs/api-docs.component.scss @@ -21,6 +21,12 @@ code { font-family: Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New; } +.math { + font-family: monospace; + margin-left: 4px; + margin-right: 4px; +} + tr { white-space: inherit; } From ff3af3a159d60aea661f6948912bd7eb76ce0c16 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 31 Jan 2023 01:06:33 -0500 Subject: [PATCH 0255/1466] Add link to faq next to block health metric --- frontend/src/app/components/block/block.component.html | 4 ++-- frontend/src/app/components/block/block.component.scss | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 828493736..c3b58c4ee 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -53,7 +53,7 @@
HealthHealth - +

diff --git a/frontend/src/app/components/block/block.component.scss b/frontend/src/app/components/block/block.component.scss index 97b5a24f3..e5ac03727 100644 --- a/frontend/src/app/components/block/block.component.scss +++ b/frontend/src/app/components/block/block.component.scss @@ -34,6 +34,10 @@ text-align: left; } } + .info-link { + color: rgba(255, 255, 255, 0.4); + margin-left: 5px; + } } } @@ -227,4 +231,4 @@ h1 { .ng-fa-icon { margin-right: 1em; } -} \ No newline at end of file +} From b867e9f00f17d28adbbf563c46a1bf60d85d0726 Mon Sep 17 00:00:00 2001 From: softsimon Date: Fri, 6 Jan 2023 02:00:49 +0400 Subject: [PATCH 0256/1466] Removing Lightning Beta tag --- .../src/app/components/master-page/master-page.component.html | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/app/components/master-page/master-page.component.html b/frontend/src/app/components/master-page/master-page.component.html index 5c365f0f9..13935c04a 100644 --- a/frontend/src/app/components/master-page/master-page.component.html +++ b/frontend/src/app/components/master-page/master-page.component.html @@ -42,7 +42,6 @@
  • Removed

    A transaction is highlighted bright pink if it is present in the expected block, not present in the actual block, and qualifies as neither recently-broadcasted nor marginal-fee. In other words, it has been in the mempool long enough to be widely propagated and has a feerate that is well within the range expected for the block. There is a chance such a transaction may have been intentionally excluded from the block.

    Removed transactions do negatively affect block health.

  • See how results of the block audit are used to devise the block health score below.

    +

    Because of this feature's resource usage and availability requirements, it is only supported on official mempool.space instances.

    @@ -252,6 +253,7 @@

    As a result, block health is not intended to be a measure of how closely an expected block resembles an actual block. The actual block can be vastly different from the expected block, but if no transactions appear to be intentionally excluded, it will have a high health rating (extreme example).

    See more context in our FAQ on block audits.

    +

    Because of this feature's resource usage and availability requirements, it is only supported on official mempool.space instances.

    From 771825f2242b8ce70f1c9a2bec3ed745cdadd149 Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Mon, 13 Feb 2023 16:57:39 -0800 Subject: [PATCH 0280/1466] Add offset to blockchain blocks classes and locators --- .../blockchain-blocks.component.html | 66 ++++++++++++------- 1 file changed, 44 insertions(+), 22 deletions(-) diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html index 29df378a4..17c5709fd 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -1,64 +1,86 @@ -
    +
    -
    +
     
    -
    - ~{{ block?.extras?.medianFee | number:feeRounding }} sat/vB +
    + ~{{ block?.extras?.medianFee | number:feeRounding }} sat/vB
    -
    - {{ block?.extras?.feeRange?.[1] | number:feeRounding }} - {{ block?.extras?.feeRange[block?.extras?.feeRange?.length - 1] | number:feeRounding }} sat/vB +
    + {{ block?.extras?.feeRange?.[1] | number:feeRounding }} - {{ + block?.extras?.feeRange[block?.extras?.feeRange?.length - 1] | number:feeRounding }} sat/vB
    -
    +
     
    -
    +
    -
    +
    - - {{ i }} transaction - {{ i }} transactions + + {{ i }} + transaction + {{ i }} + transactions
    -
    +
    +
    -
    - +
    +
    -
    +
    -
    +
    -
    -
    +
    +
    - From 635fadd13f39b83deba8953fe7cdf58b958645d0 Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Mon, 13 Feb 2023 16:58:25 -0800 Subject: [PATCH 0281/1466] Update mainnet tests: increase blocks to 22, update locators and skip a test --- frontend/cypress/e2e/mainnet/mainnet.spec.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/cypress/e2e/mainnet/mainnet.spec.ts b/frontend/cypress/e2e/mainnet/mainnet.spec.ts index d6fe94dac..5ab3f9ce9 100644 --- a/frontend/cypress/e2e/mainnet/mainnet.spec.ts +++ b/frontend/cypress/e2e/mainnet/mainnet.spec.ts @@ -64,7 +64,7 @@ describe('Mainnet', () => { it('loads the status screen', () => { cy.visit('/status'); cy.get('#mempool-block-0').should('be.visible'); - cy.get('[id^="bitcoin-block-"]').should('have.length', 8); + cy.get('[id^="bitcoin-block-"]').should('have.length', 22); cy.get('.footer').should('be.visible'); cy.get('.row > :nth-child(1)').invoke('text').then((text) => { expect(text).to.match(/Incoming transactions.* vB\/s/); @@ -219,11 +219,11 @@ describe('Mainnet', () => { describe('blocks navigation', () => { describe('keyboard events', () => { - it('loads first blockchain blocks visible and keypress arrow right', () => { + it('loads first blockchain block visible and keypress arrow right', () => { cy.viewport('macbook-16'); cy.visit('/'); cy.waitForSkeletonGone(); - cy.get('.blockchain-blocks-0 > a').click().then(() => { + cy.get('[data-cy="bitcoin-block-offset-0-index-0"]').click().then(() => { cy.get('[ngbtooltip="Next Block"] > .ng-fa-icon > .svg-inline--fa').should('not.exist'); cy.get('[ngbtooltip="Previous Block"] > .ng-fa-icon > .svg-inline--fa').should('be.visible'); cy.waitForPageIdle(); @@ -233,11 +233,11 @@ describe('Mainnet', () => { }); }); - it('loads first blockchain blocks visible and keypress arrow left', () => { + it('loads first blockchain block visible and keypress arrow left', () => { cy.viewport('macbook-16'); cy.visit('/'); cy.waitForSkeletonGone(); - cy.get('.blockchain-blocks-0 > a').click().then(() => { + cy.get('[data-cy="bitcoin-block-offset-0-index-0"]').click().then(() => { cy.waitForPageIdle(); cy.get('[ngbtooltip="Next Block"] > .ng-fa-icon > .svg-inline--fa').should('not.exist'); cy.get('[ngbtooltip="Previous Block"] > .ng-fa-icon > .svg-inline--fa').should('be.visible'); @@ -246,11 +246,11 @@ describe('Mainnet', () => { }); }); - it('loads last blockchain blocks and keypress arrow right', () => { + it.skip('loads last blockchain block and keypress arrow right', () => { //Skip for now as "last" doesn't really work with infinite scrolling cy.viewport('macbook-16'); cy.visit('/'); cy.waitForSkeletonGone(); - cy.get('.blockchain-blocks-4 > a').click().then(() => { + cy.get('bitcoin-block-offset-0-index-7').click().then(() => { cy.waitForPageIdle(); // block 6 @@ -309,7 +309,7 @@ describe('Mainnet', () => { cy.viewport('macbook-16'); cy.visit('/'); cy.waitForSkeletonGone(); - cy.get('.blockchain-blocks-0 > a').click().then(() => { + cy.get('[data-cy="bitcoin-block-offset-0-index-0"]').click().then(() => { cy.waitForPageIdle(); cy.get('[ngbtooltip="Next Block"] > .ng-fa-icon > .svg-inline--fa').should('not.exist'); cy.get('[ngbtooltip="Previous Block"] > .ng-fa-icon > .svg-inline--fa').should('be.visible'); From d8ebc5a92c68724d56c1b4fb49431af9803f6f3e Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Mon, 13 Feb 2023 20:12:31 -0500 Subject: [PATCH 0282/1466] Only show audit and health faqs on official --- frontend/src/app/docs/api-docs/api-docs-data.ts | 2 ++ .../app/docs/api-docs/api-docs-nav.component.html | 2 +- .../src/app/docs/api-docs/api-docs-nav.component.ts | 9 ++++++++- .../src/app/docs/api-docs/api-docs.component.html | 12 +++++++----- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 069dabacf..5cc5ca3aa 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -8671,6 +8671,7 @@ export const faqData = [ type: "endpoint", category: "advanced", showConditions: bitcoinNetworks, + options: { officialOnly: true }, fragment: "how-do-block-audits-work", title: "How do block audits work?", }, @@ -8678,6 +8679,7 @@ export const faqData = [ type: "endpoint", category: "advanced", showConditions: bitcoinNetworks, + options: { officialOnly: true }, fragment: "what-is-block-health", title: "What is block health?", }, diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.html b/frontend/src/app/docs/api-docs/api-docs-nav.component.html index c8460ada4..cbfe8a170 100644 --- a/frontend/src/app/docs/api-docs/api-docs-nav.component.html +++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.html @@ -1,4 +1,4 @@

    {{ item.title }}

    - {{ item.title }} + {{ item.title }}
    diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.ts b/frontend/src/app/docs/api-docs/api-docs-nav.component.ts index df73030c9..ad9d0b9a5 100644 --- a/frontend/src/app/docs/api-docs/api-docs-nav.component.ts +++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { Env, StateService } from '../../services/state.service'; import { restApiDocsData } from './api-docs-data'; import { faqData } from './api-docs-data'; @@ -12,11 +13,17 @@ export class ApiDocsNavComponent implements OnInit { @Input() network: any; @Input() whichTab: string; @Output() navLinkClickEvent: EventEmitter = new EventEmitter(); + env: Env; tabData: any[]; + officialMempoolInstance: boolean; - constructor() { } + constructor( + private stateService: StateService + ) { } ngOnInit(): void { + this.env = this.stateService.env; + this.officialMempoolInstance = this.env.OFFICIAL_MEMPOOL_SPACE; if (this.whichTab === 'rest') { this.tabData = restApiDocsData; } else if (this.whichTab === 'faq') { diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 7a7b9b416..be3fd2f42 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -15,11 +15,13 @@
    -

    {{ item.title }}

    -
    -
    {{ item.title }}{{ item.category }}
    -
    - +
    +

    {{ item.title }}

    +
    From b817ee9e5cef0cc43dda4bab910bbc9b84309005 Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Mon, 13 Feb 2023 18:22:53 -0800 Subject: [PATCH 0283/1466] Update staging hosts to fra --- frontend/proxy.conf.staging.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/proxy.conf.staging.js b/frontend/proxy.conf.staging.js index 0281b66ce..0cf366ca7 100644 --- a/frontend/proxy.conf.staging.js +++ b/frontend/proxy.conf.staging.js @@ -3,8 +3,8 @@ const fs = require('fs'); let PROXY_CONFIG = require('./proxy.conf'); PROXY_CONFIG.forEach(entry => { - entry.target = entry.target.replace("mempool.space", "mempool-staging.tk7.mempool.space"); - entry.target = entry.target.replace("liquid.network", "liquid-staging.tk7.mempool.space"); + entry.target = entry.target.replace("mempool.space", "mempool-staging.fra.mempool.space"); + entry.target = entry.target.replace("liquid.network", "liquid-staging.fra.mempool.space"); entry.target = entry.target.replace("bisq.markets", "bisq-staging.fra.mempool.space"); }); From 33d7a0af60d34d71f540d8d20b17270709a5980e Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 14 Feb 2023 02:07:44 -0500 Subject: [PATCH 0284/1466] Edit i18n attributes --- frontend/src/app/components/block/block.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 98ee1ad67..23a826bae 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -206,13 +206,13 @@
    -

    Expected Block beta

    +

    Expected Block beta

    Date: Tue, 14 Feb 2023 03:01:37 -0500 Subject: [PATCH 0285/1466] Fix error in logic for official_mempool_space --- frontend/src/app/docs/api-docs/api-docs-nav.component.html | 2 +- frontend/src/app/docs/api-docs/api-docs.component.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.html b/frontend/src/app/docs/api-docs/api-docs-nav.component.html index cbfe8a170..3abdc91be 100644 --- a/frontend/src/app/docs/api-docs/api-docs-nav.component.html +++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.html @@ -1,4 +1,4 @@

    {{ item.title }}

    - {{ item.title }} + {{ item.title }}
    diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index be3fd2f42..c984c2b77 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -15,7 +15,7 @@
    -
    +

    {{ item.title }}

    {{ item.title }}{{ item.category }}
    From 491f2c628064f86ec2e59c72a1c9dd34e0f12983 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 14 Feb 2023 03:40:00 -0500 Subject: [PATCH 0286/1466] Add info icon on audit linking to audit faq --- frontend/src/app/components/block/block.component.html | 2 +- frontend/src/app/components/block/block.component.scss | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 059b9b708..62bb67755 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -221,7 +221,7 @@
    -

    Actual Block

    +

    Actual Block

    Date: Tue, 14 Feb 2023 04:32:15 -0500 Subject: [PATCH 0287/1466] Make audit info icon look better --- frontend/src/app/components/block/block.component.html | 2 +- frontend/src/app/components/block/block.component.scss | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 62bb67755..0b9cded08 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -221,7 +221,7 @@
    -

    Actual Block

    +

    Actual Block

    Date: Tue, 14 Feb 2023 17:20:01 +0700 Subject: [PATCH 0288/1466] Extracting i18n --- frontend/src/locale/messages.xlf | 91 ++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index c94eaae9a..eeea07658 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -546,7 +546,7 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html @@ -1420,7 +1420,7 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 @@ -2453,19 +2453,11 @@ Previous Block - - Health + + Health src/app/components/block/block.component.html - 56,59 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 + 56,57 latest-blocks.health @@ -2550,13 +2542,25 @@ Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected src/app/components/block/block.component.html - 209,211 + 209 - block.projected + block.expected + + + beta + + src/app/components/block/block.component.html + 209,210 + + + src/app/components/block/block.component.html + 215,217 + + beta Actual @@ -2566,19 +2570,20 @@ block.actual - - Projected Block + + Expected Block src/app/components/block/block.component.html - 215,217 + 215 - block.projected-block + block.expected-block - - Actual Block + + Actual Block src/app/components/block/block.component.html - 224,226 + 224,225 block.actual-block @@ -2752,6 +2757,18 @@ latest-blocks.mined + + Health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health + Reward @@ -3308,7 +3325,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3332,7 +3349,7 @@ Lightning Explorer src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3340,19 +3357,11 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -4760,7 +4769,7 @@ REST API service src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -4768,11 +4777,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -4780,18 +4789,18 @@ Description src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket From 014113bb33eb741efcd3c4da86b04606ccc006d5 Mon Sep 17 00:00:00 2001 From: softsimon Date: Tue, 14 Feb 2023 17:24:48 +0700 Subject: [PATCH 0289/1466] Updating a few i18n strings --- .../app/components/block/block.component.html | 4 +- .../app/components/start/start.component.html | 2 +- frontend/src/locale/messages.xlf | 41 +++++++------------ 3 files changed, 17 insertions(+), 30 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 01ea9ffed..7e30d4bbf 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -53,7 +53,7 @@
    Health Health
    -

    Actual Block

    +

    Actual Block

    - +
    diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index eeea07658..a4154cbcd 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -2453,11 +2453,19 @@ Previous Block - - Health + + Health src/app/components/block/block.component.html - 56,57 + 56 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 latest-blocks.health @@ -2578,12 +2586,11 @@ block.expected-block - - Actual Block + + Actual Block src/app/components/block/block.component.html - 224,225 + 224 block.actual-block @@ -2757,18 +2764,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward @@ -3910,14 +3905,6 @@ search-form.search-title - - Return to tip - - src/app/components/start/start.component.html - 20 - - blocks.return-to-tip - Mempool by vBytes (sat/vByte) From 56dad33fce4aa6c887be5ac9e9b9d3328ae89d7b Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Tue, 14 Feb 2023 22:12:43 +0900 Subject: [PATCH 0290/1466] Always return fully extended block in blocks API even if indexing is disabled --- backend/src/api/blocks.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 83de897ca..1d45d6c58 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -609,7 +609,9 @@ class Blocks { const transactions = await this.$getTransactionsExtended(blockHash, block.height, true); const blockExtended = await this.$getBlockExtended(block, transactions); - await blocksRepository.$saveBlockInDatabase(blockExtended); + if (Common.indexingEnabled()) { + await blocksRepository.$saveBlockInDatabase(blockExtended); + } return prepareBlock(blockExtended); } @@ -713,7 +715,7 @@ class Blocks { block = await this.$indexBlock(currentHeight); returnBlocks.push(block); } else if (nextHash != null) { - block = prepareBlock(await bitcoinClient.getBlock(nextHash)); + block = await this.$indexBlock(currentHeight); nextHash = block.previousblockhash; returnBlocks.push(block); } From 8f2255a7a2f97b146cc6c79a7f57b3c80a846b01 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 12 Feb 2023 21:43:12 -0600 Subject: [PATCH 0291/1466] Add audit / block health config feature flag --- backend/mempool-config.sample.json | 1 + .../__fixtures__/mempool-config.template.json | 1 + backend/src/__tests__/config.test.ts | 1 + backend/src/api/blocks.ts | 8 +- backend/src/api/websocket-handler.ts | 80 ++++++++++--------- backend/src/config.ts | 2 + docker/backend/mempool-config.json | 1 + docker/backend/start.sh | 2 + docker/frontend/entrypoint.sh | 2 + frontend/mempool-frontend-config.sample.json | 1 + .../app/components/block/block.component.ts | 26 +++--- .../blocks-list/blocks-list.component.html | 6 +- .../blocks-list/blocks-list.component.ts | 4 +- .../components/graphs/graphs.component.html | 2 +- frontend/src/app/services/state.service.ts | 2 + production/mempool-config.mainnet.json | 1 + production/mempool-config.signet.json | 1 + production/mempool-config.testnet.json | 1 + .../mempool-frontend-config.mainnet.json | 3 +- 19 files changed, 88 insertions(+), 57 deletions(-) diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index 1f64214ce..f8417f0e7 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -25,6 +25,7 @@ "AUTOMATIC_BLOCK_REINDEXING": false, "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json", "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", + "AUDIT": false, "ADVANCED_GBT_AUDIT": false, "ADVANCED_GBT_MEMPOOL": false, "CPFP_INDEXING": false diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index e699c9458..f15d9c328 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -26,6 +26,7 @@ "INDEXING_BLOCKS_AMOUNT": 14, "POOLS_JSON_TREE_URL": "__POOLS_JSON_TREE_URL__", "POOLS_JSON_URL": "__POOLS_JSON_URL__", + "AUDIT": "__MEMPOOL_AUDIT__", "ADVANCED_GBT_AUDIT": "__MEMPOOL_ADVANCED_GBT_AUDIT__", "ADVANCED_GBT_MEMPOOL": "__MEMPOOL_ADVANCED_GBT_MEMPOOL__", "CPFP_INDEXING": "__MEMPOOL_CPFP_INDEXING__" diff --git a/backend/src/__tests__/config.test.ts b/backend/src/__tests__/config.test.ts index 4158d3df1..88083f479 100644 --- a/backend/src/__tests__/config.test.ts +++ b/backend/src/__tests__/config.test.ts @@ -38,6 +38,7 @@ describe('Mempool Backend Config', () => { STDOUT_LOG_MIN_PRIORITY: 'debug', POOLS_JSON_TREE_URL: 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', + AUDIT: false, ADVANCED_GBT_AUDIT: false, ADVANCED_GBT_MEMPOOL: false, CPFP_INDEXING: false, diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 83de897ca..0f9e6b7f6 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -212,9 +212,11 @@ class Blocks { }; } - const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(block.id); - if (auditScore != null) { - blockExtended.extras.matchRate = auditScore.matchRate; + if (config.MEMPOOL.AUDIT) { + const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(block.id); + if (auditScore != null) { + blockExtended.extras.matchRate = auditScore.matchRate; + } } } diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 599c068a6..9334f3717 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -419,49 +419,51 @@ class WebsocketHandler { const _memPool = memPool.getMempool(); - let projectedBlocks; - // template calculation functions have mempool side effects, so calculate audits using - // a cloned copy of the mempool if we're running a different algorithm for mempool updates - const auditMempool = (config.MEMPOOL.ADVANCED_GBT_AUDIT === config.MEMPOOL.ADVANCED_GBT_MEMPOOL) ? _memPool : deepClone(_memPool); - if (config.MEMPOOL.ADVANCED_GBT_AUDIT) { - projectedBlocks = await mempoolBlocks.makeBlockTemplates(auditMempool, false); - } else { - projectedBlocks = mempoolBlocks.updateMempoolBlocks(auditMempool, false); - } + if (config.MEMPOOL.AUDIT) { + let projectedBlocks; + // template calculation functions have mempool side effects, so calculate audits using + // a cloned copy of the mempool if we're running a different algorithm for mempool updates + const auditMempool = (config.MEMPOOL.ADVANCED_GBT_AUDIT === config.MEMPOOL.ADVANCED_GBT_MEMPOOL) ? _memPool : deepClone(_memPool); + if (config.MEMPOOL.ADVANCED_GBT_AUDIT) { + projectedBlocks = await mempoolBlocks.makeBlockTemplates(auditMempool, false); + } else { + projectedBlocks = mempoolBlocks.updateMempoolBlocks(auditMempool, false); + } - if (Common.indexingEnabled() && memPool.isInSync()) { - const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, auditMempool); - const matchRate = Math.round(score * 100 * 100) / 100; + if (Common.indexingEnabled() && memPool.isInSync()) { + const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, auditMempool); + const matchRate = Math.round(score * 100 * 100) / 100; - const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => { - return { - txid: tx.txid, - vsize: tx.vsize, - fee: tx.fee ? Math.round(tx.fee) : 0, - value: tx.value, - }; - }) : []; + const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => { + return { + txid: tx.txid, + vsize: tx.vsize, + fee: tx.fee ? Math.round(tx.fee) : 0, + value: tx.value, + }; + }) : []; - BlocksSummariesRepository.$saveTemplate({ - height: block.height, - template: { - id: block.id, - transactions: stripped + BlocksSummariesRepository.$saveTemplate({ + height: block.height, + template: { + id: block.id, + transactions: stripped + } + }); + + BlocksAuditsRepository.$saveAudit({ + time: block.timestamp, + height: block.height, + hash: block.id, + addedTxs: added, + missingTxs: censored, + freshTxs: fresh, + matchRate: matchRate, + }); + + if (block.extras) { + block.extras.matchRate = matchRate; } - }); - - BlocksAuditsRepository.$saveAudit({ - time: block.timestamp, - height: block.height, - hash: block.id, - addedTxs: added, - missingTxs: censored, - freshTxs: fresh, - matchRate: matchRate, - }); - - if (block.extras) { - block.extras.matchRate = matchRate; } } diff --git a/backend/src/config.ts b/backend/src/config.ts index fb06c84fb..a5736996f 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -29,6 +29,7 @@ interface IConfig { AUTOMATIC_BLOCK_REINDEXING: boolean; POOLS_JSON_URL: string, POOLS_JSON_TREE_URL: string, + AUDIT: boolean; ADVANCED_GBT_AUDIT: boolean; ADVANCED_GBT_MEMPOOL: boolean; CPFP_INDEXING: boolean; @@ -150,6 +151,7 @@ const defaults: IConfig = { 'AUTOMATIC_BLOCK_REINDEXING': false, 'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', 'POOLS_JSON_TREE_URL': 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', + 'AUDIT': false, 'ADVANCED_GBT_AUDIT': false, 'ADVANCED_GBT_MEMPOOL': false, 'CPFP_INDEXING': false, diff --git a/docker/backend/mempool-config.json b/docker/backend/mempool-config.json index 2e3826f1d..17901acc4 100644 --- a/docker/backend/mempool-config.json +++ b/docker/backend/mempool-config.json @@ -23,6 +23,7 @@ "INDEXING_BLOCKS_AMOUNT": __MEMPOOL_INDEXING_BLOCKS_AMOUNT__, "BLOCKS_SUMMARIES_INDEXING": __MEMPOOL_BLOCKS_SUMMARIES_INDEXING__, "AUTOMATIC_BLOCK_REINDEXING": __MEMPOOL_AUTOMATIC_BLOCK_REINDEXING__, + "AUDIT": __MEMPOOL_AUDIT__, "ADVANCED_GBT_AUDIT": __MEMPOOL_ADVANCED_GBT_AUDIT__, "ADVANCED_GBT_MEMPOOL": __MEMPOOL_ADVANCED_GBT_MEMPOOL__, "CPFP_INDEXING": __MEMPOOL_CPFP_INDEXING__ diff --git a/docker/backend/start.sh b/docker/backend/start.sh index 5f33df107..e02706bce 100755 --- a/docker/backend/start.sh +++ b/docker/backend/start.sh @@ -27,6 +27,7 @@ __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.json} __MEMPOOL_POOLS_JSON_TREE_URL__=${MEMPOOL_POOLS_JSON_TREE_URL:=https://api.github.com/repos/mempool/mining-pools/git/trees/master} +__MEMPOOL_AUDIT__=${MEMPOOL_AUDIT:=false} __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} @@ -139,6 +140,7 @@ sed -i "s/__MEMPOOL_INDEXING_BLOCKS_AMOUNT__/${__MEMPOOL_INDEXING_BLOCKS_AMOUNT_ 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 +sed -i "s!__MEMPOOL_AUDIT__!${__MEMPOOL_AUDIT__}!g" mempool-config.json sed -i "s!__MEMPOOL_ADVANCED_GBT_MEMPOOL__!${__MEMPOOL_ADVANCED_GBT_MEMPOOL__}!g" mempool-config.json 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 diff --git a/docker/frontend/entrypoint.sh b/docker/frontend/entrypoint.sh index 3e2210360..18cb782e9 100644 --- a/docker/frontend/entrypoint.sh +++ b/docker/frontend/entrypoint.sh @@ -31,6 +31,7 @@ __LIQUID_WEBSITE_URL__=${LIQUID_WEBSITE_URL:=https://liquid.network} __BISQ_WEBSITE_URL__=${BISQ_WEBSITE_URL:=https://bisq.markets} __MINING_DASHBOARD__=${MINING_DASHBOARD:=true} __LIGHTNING__=${LIGHTNING:=false} +__AUDIT__=${AUDIT:=false} __MAINNET_BLOCK_AUDIT_START_HEIGHT__=${MAINNET_BLOCK_AUDIT_START_HEIGHT:=0} __TESTNET_BLOCK_AUDIT_START_HEIGHT__=${TESTNET_BLOCK_AUDIT_START_HEIGHT:=0} __SIGNET_BLOCK_AUDIT_START_HEIGHT__=${SIGNET_BLOCK_AUDIT_START_HEIGHT:=0} @@ -55,6 +56,7 @@ export __LIQUID_WEBSITE_URL__ export __BISQ_WEBSITE_URL__ export __MINING_DASHBOARD__ export __LIGHTNING__ +export __AUDIT__ export __MAINNET_BLOCK_AUDIT_START_HEIGHT__ export __TESTNET_BLOCK_AUDIT_START_HEIGHT__ export __SIGNET_BLOCK_AUDIT_START_HEIGHT__ diff --git a/frontend/mempool-frontend-config.sample.json b/frontend/mempool-frontend-config.sample.json index 5c0f92acf..9035315a4 100644 --- a/frontend/mempool-frontend-config.sample.json +++ b/frontend/mempool-frontend-config.sample.json @@ -17,6 +17,7 @@ "LIQUID_WEBSITE_URL": "https://liquid.network", "BISQ_WEBSITE_URL": "https://bisq.markets", "MINING_DASHBOARD": true, + "AUDIT": false, "MAINNET_BLOCK_AUDIT_START_HEIGHT": 0, "TESTNET_BLOCK_AUDIT_START_HEIGHT": 0, "SIGNET_BLOCK_AUDIT_START_HEIGHT": 0, diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index f1ebfed6a..668d0af48 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -58,7 +58,7 @@ export class BlockComponent implements OnInit, OnDestroy { overviewError: any = null; webGlEnabled = true; indexingAvailable = false; - auditModeEnabled: boolean = !this.stateService.hideAudit.value; + auditModeEnabled: boolean = this.stateService.env.AUDIT && !this.stateService.hideAudit.value; auditAvailable = true; showAudit: boolean; isMobile = window.innerWidth <= 767.98; @@ -110,12 +110,15 @@ export class BlockComponent implements OnInit, OnDestroy { }); this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); - this.setAuditAvailable(this.indexingAvailable); - this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { - this.auditModeEnabled = !hide; - this.showAudit = this.auditAvailable && this.auditModeEnabled; - }); + this.setAuditAvailable(this.stateService.env.AUDIT && this.indexingAvailable); + + if (this.stateService.env.AUDIT) { + this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { + this.auditModeEnabled = !hide; + this.showAudit = this.auditAvailable && this.auditModeEnabled; + }); + } this.txsLoadingStatus$ = this.route.paramMap .pipe( @@ -221,7 +224,9 @@ export class BlockComponent implements OnInit, OnDestroy { setTimeout(() => { this.nextBlockSubscription = this.apiService.getBlock$(block.previousblockhash).subscribe(); this.nextBlockTxListSubscription = this.electrsApiService.getBlockTransactions$(block.previousblockhash).subscribe(); - this.apiService.getBlockAudit$(block.previousblockhash); + if (this.stateService.env.AUDIT) { + this.apiService.getBlockAudit$(block.previousblockhash); + } }, 100); } this.updateAuditAvailableFromBlockHeight(block.height); @@ -269,7 +274,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.isLoadingOverview = false; }); - if (!this.indexingAvailable) { + if (!this.indexingAvailable || !this.stateService.env.AUDIT) { this.overviewSubscription = block$.pipe( startWith(null), pairwise(), @@ -300,7 +305,7 @@ export class BlockComponent implements OnInit, OnDestroy { }); } - if (this.indexingAvailable) { + if (this.indexingAvailable && this.stateService.env.AUDIT) { this.auditSubscription = block$.pipe( startWith(null), pairwise(), @@ -613,6 +618,9 @@ export class BlockComponent implements OnInit, OnDestroy { } updateAuditAvailableFromBlockHeight(blockHeight: number): void { + if (!this.stateService.env.AUDIT) { + this.setAuditAvailable(false); + } switch (this.stateService.network) { case 'testnet': if (blockHeight < this.stateService.env.TESTNET_BLOCK_AUDIT_START_HEIGHT) { diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.html b/frontend/src/app/components/blocks-list/blocks-list.component.html index 424ea2ec4..46da3fa91 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.html +++ b/frontend/src/app/components/blocks-list/blocks-list.component.html @@ -14,7 +14,7 @@ i18n-ngbTooltip="mining.pool-name" ngbTooltip="Pool" placement="bottom" #miningpool [disableTooltip]="!isEllipsisActive(miningpool)">Pool
    Timestamp MinedHealth Reward + + diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.ts b/frontend/src/app/components/blocks-list/blocks-list.component.ts index 93f7814cf..1cc428be3 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.ts +++ b/frontend/src/app/components/blocks-list/blocks-list.component.ts @@ -22,6 +22,7 @@ export class BlocksList implements OnInit, OnDestroy { latestScoreSubscription: Subscription; indexingAvailable = false; + auditAvailable = false; isLoading = true; loadingScores = true; fromBlockHeight = undefined; @@ -44,6 +45,7 @@ export class BlocksList implements OnInit, OnDestroy { ngOnInit(): void { this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); + this.auditAvailable = this.stateService.env.AUDIT; if (!this.widget) { this.websocketService.want(['blocks']); @@ -111,7 +113,7 @@ export class BlocksList implements OnInit, OnDestroy { }, []) ); - if (this.indexingAvailable) { + if (this.indexingAvailable && this.auditAvailable) { this.auditScoreSubscription = this.fromHeightSubject.pipe( switchMap((fromBlockHeight) => { this.loadingScores = true; diff --git a/frontend/src/app/components/graphs/graphs.component.html b/frontend/src/app/components/graphs/graphs.component.html index dd47a4ac7..af5136a38 100644 --- a/frontend/src/app/components/graphs/graphs.component.html +++ b/frontend/src/app/components/graphs/graphs.component.html @@ -22,7 +22,7 @@ i18n="mining.block-rewards">Block Rewards Block Sizes and Weights - Block Prediction Accuracy diff --git a/frontend/src/app/services/state.service.ts b/frontend/src/app/services/state.service.ts index 091490715..5761e0a55 100644 --- a/frontend/src/app/services/state.service.ts +++ b/frontend/src/app/services/state.service.ts @@ -39,6 +39,7 @@ export interface Env { BISQ_WEBSITE_URL: string; MINING_DASHBOARD: boolean; LIGHTNING: boolean; + AUDIT: boolean; MAINNET_BLOCK_AUDIT_START_HEIGHT: number; TESTNET_BLOCK_AUDIT_START_HEIGHT: number; SIGNET_BLOCK_AUDIT_START_HEIGHT: number; @@ -67,6 +68,7 @@ const defaultEnv: Env = { 'BISQ_WEBSITE_URL': 'https://bisq.markets', 'MINING_DASHBOARD': true, 'LIGHTNING': false, + 'AUDIT': false, 'MAINNET_BLOCK_AUDIT_START_HEIGHT': 0, 'TESTNET_BLOCK_AUDIT_START_HEIGHT': 0, 'SIGNET_BLOCK_AUDIT_START_HEIGHT': 0, diff --git a/production/mempool-config.mainnet.json b/production/mempool-config.mainnet.json index ab2fa69c1..1258e62fb 100644 --- a/production/mempool-config.mainnet.json +++ b/production/mempool-config.mainnet.json @@ -10,6 +10,7 @@ "POLL_RATE_MS": 1000, "INDEXING_BLOCKS_AMOUNT": -1, "BLOCKS_SUMMARIES_INDEXING": true, + "AUDIT": true, "ADVANCED_GBT_AUDIT": true, "ADVANCED_GBT_MEMPOOL": false, "USE_SECOND_NODE_FOR_MINFEE": true diff --git a/production/mempool-config.signet.json b/production/mempool-config.signet.json index 313a09679..3c661c39f 100644 --- a/production/mempool-config.signet.json +++ b/production/mempool-config.signet.json @@ -7,6 +7,7 @@ "SPAWN_CLUSTER_PROCS": 0, "API_URL_PREFIX": "/api/v1/", "INDEXING_BLOCKS_AMOUNT": -1, + "AUDIT": true, "ADVANCED_GBT_AUDIT": true, "ADVANCED_GBT_MEMPOOL": false, "POLL_RATE_MS": 1000 diff --git a/production/mempool-config.testnet.json b/production/mempool-config.testnet.json index 908df7886..352529c6e 100644 --- a/production/mempool-config.testnet.json +++ b/production/mempool-config.testnet.json @@ -7,6 +7,7 @@ "SPAWN_CLUSTER_PROCS": 0, "API_URL_PREFIX": "/api/v1/", "INDEXING_BLOCKS_AMOUNT": -1, + "AUDIT": true, "ADVANCED_GBT_AUDIT": true, "ADVANCED_GBT_MEMPOOL": false, "POLL_RATE_MS": 1000 diff --git a/production/mempool-frontend-config.mainnet.json b/production/mempool-frontend-config.mainnet.json index e612c0440..5eb3d0a7d 100644 --- a/production/mempool-frontend-config.mainnet.json +++ b/production/mempool-frontend-config.mainnet.json @@ -10,5 +10,6 @@ "LIQUID_WEBSITE_URL": "https://liquid.network", "BISQ_WEBSITE_URL": "https://bisq.markets", "ITEMS_PER_PAGE": 25, - "LIGHTNING": true + "LIGHTNING": true, + "AUDIT": true } From b4c30cad5c22a812c5cd1fcdd47ff0482aa7201f Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 14 Feb 2023 12:23:26 -0600 Subject: [PATCH 0292/1466] simplify audit availability logic --- .../app/components/block/block.component.ts | 20 +++++++++---------- .../blocks-list/blocks-list.component.html | 6 +++--- .../blocks-list/blocks-list.component.ts | 2 +- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 668d0af48..ba5dd8cf7 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -57,8 +57,8 @@ export class BlockComponent implements OnInit, OnDestroy { transactionsError: any = null; overviewError: any = null; webGlEnabled = true; - indexingAvailable = false; - auditModeEnabled: boolean = this.stateService.env.AUDIT && !this.stateService.hideAudit.value; + auditSupported: boolean = this.stateService.env.AUDIT && this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true; + auditModeEnabled: boolean = !this.stateService.hideAudit.value; auditAvailable = true; showAudit: boolean; isMobile = window.innerWidth <= 767.98; @@ -109,11 +109,9 @@ export class BlockComponent implements OnInit, OnDestroy { this.timeLtr = !!ltr; }); - this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); + this.setAuditAvailable(this.auditSupported); - this.setAuditAvailable(this.stateService.env.AUDIT && this.indexingAvailable); - - if (this.stateService.env.AUDIT) { + if (this.auditSupported) { this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { this.auditModeEnabled = !hide; this.showAudit = this.auditAvailable && this.auditModeEnabled; @@ -224,7 +222,7 @@ export class BlockComponent implements OnInit, OnDestroy { setTimeout(() => { this.nextBlockSubscription = this.apiService.getBlock$(block.previousblockhash).subscribe(); this.nextBlockTxListSubscription = this.electrsApiService.getBlockTransactions$(block.previousblockhash).subscribe(); - if (this.stateService.env.AUDIT) { + if (this.auditSupported) { this.apiService.getBlockAudit$(block.previousblockhash); } }, 100); @@ -274,7 +272,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.isLoadingOverview = false; }); - if (!this.indexingAvailable || !this.stateService.env.AUDIT) { + if (!this.auditSupported) { this.overviewSubscription = block$.pipe( startWith(null), pairwise(), @@ -305,7 +303,7 @@ export class BlockComponent implements OnInit, OnDestroy { }); } - if (this.indexingAvailable && this.stateService.env.AUDIT) { + if (this.auditSupported) { this.auditSubscription = block$.pipe( startWith(null), pairwise(), @@ -610,7 +608,7 @@ export class BlockComponent implements OnInit, OnDestroy { setAuditAvailable(available: boolean): void { this.auditAvailable = available; - this.showAudit = this.auditAvailable && this.auditModeEnabled; + this.showAudit = this.auditAvailable && this.auditModeEnabled && this.auditSupported; } toggleAuditMode(): void { @@ -618,7 +616,7 @@ export class BlockComponent implements OnInit, OnDestroy { } updateAuditAvailableFromBlockHeight(blockHeight: number): void { - if (!this.stateService.env.AUDIT) { + if (!this.auditSupported) { this.setAuditAvailable(false); } switch (this.stateService.network) { diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.html b/frontend/src/app/components/blocks-list/blocks-list.component.html index 46da3fa91..ffb5f5f88 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.html +++ b/frontend/src/app/components/blocks-list/blocks-list.component.html @@ -14,7 +14,7 @@ i18n-ngbTooltip="mining.pool-name" ngbTooltip="Pool" placement="bottom" #miningpool [disableTooltip]="!isEllipsisActive(miningpool)">Pool Timestamp MinedHealth Reward + + diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.ts b/frontend/src/app/components/blocks-list/blocks-list.component.ts index 1cc428be3..160e0c882 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.ts +++ b/frontend/src/app/components/blocks-list/blocks-list.component.ts @@ -45,7 +45,7 @@ export class BlocksList implements OnInit, OnDestroy { ngOnInit(): void { this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); - this.auditAvailable = this.stateService.env.AUDIT; + this.auditAvailable = this.indexingAvailable && this.stateService.env.AUDIT; if (!this.widget) { this.websocketService.want(['blocks']); From 9f1a6ad31d7df6538d09f1d41536fc08f8402f34 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Wed, 15 Feb 2023 00:56:02 -0500 Subject: [PATCH 0293/1466] Remove colon from block overview table --- frontend/src/app/components/block/block.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 7e30d4bbf..0fda470d6 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -143,7 +143,7 @@
    Subsidy + fees:Subsidy + fees @@ -158,7 +158,7 @@
    Subsidy + fees:Subsidy + fees
    {{ item.title }}{{ item.category }}
    diff --git a/frontend/src/app/docs/api-docs/api-docs.component.ts b/frontend/src/app/docs/api-docs/api-docs.component.ts index 0bffd5b2a..1d5eec453 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.ts +++ b/frontend/src/app/docs/api-docs/api-docs.component.ts @@ -28,6 +28,7 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { wsDocs: any; screenWidth: number; officialMempoolInstance: boolean; + auditEnabled: boolean; @ViewChildren(FaqTemplateDirective) faqTemplates: QueryList; dict = {}; @@ -60,6 +61,7 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { ngOnInit(): void { this.env = this.stateService.env; this.officialMempoolInstance = this.env.OFFICIAL_MEMPOOL_SPACE; + this.auditEnabled = this.env.AUDIT; this.network$ = merge(of(''), this.stateService.networkChanged$).pipe( tap((network: string) => { if (this.env.BASE_MODULE === 'mempool' && network !== '') { From 6f650e936d1f3a9b3edf8a5cfd85c74558ff7723 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Wed, 15 Feb 2023 01:49:11 -0500 Subject: [PATCH 0296/1466] Shrink og avators to make group more square --- frontend/src/app/components/about/about.component.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/about/about.component.scss b/frontend/src/app/components/about/about.component.scss index 910ff922b..42ecded1c 100644 --- a/frontend/src/app/components/about/about.component.scss +++ b/frontend/src/app/components/about/about.component.scss @@ -68,8 +68,8 @@ .community-sponsor { img { - width: 67px; - height: 67px; + width: 57px; + height: 57px; } } From 32aa7aaff11e4bfa25e2959738e0180f1cccd8f8 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 16:05:14 +0900 Subject: [PATCH 0297/1466] Remove bisq price fetch and replace it with our in house price index --- backend/src/api/blocks.ts | 3 +- backend/src/api/fiat-conversion.ts | 123 ------------------- backend/src/api/websocket-handler.ts | 4 +- backend/src/index.ts | 8 +- backend/src/repositories/PricesRepository.ts | 32 +++-- backend/src/tasks/price-updater.ts | 59 +++++---- 6 files changed, 64 insertions(+), 165 deletions(-) delete mode 100644 backend/src/api/fiat-conversion.ts diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 83de897ca..902f1f13b 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -17,7 +17,6 @@ import { prepareBlock } from '../utils/blocks-utils'; import BlocksRepository from '../repositories/BlocksRepository'; import HashratesRepository from '../repositories/HashratesRepository'; import indexer from '../indexer'; -import fiatConversion from './fiat-conversion'; import poolsParser from './pools-parser'; import BlocksSummariesRepository from '../repositories/BlocksSummariesRepository'; import BlocksAuditsRepository from '../repositories/BlocksAuditsRepository'; @@ -170,7 +169,7 @@ class Blocks { blockExtended.extras.reward = transactions[0].vout.reduce((acc, curr) => acc + curr.value, 0); blockExtended.extras.coinbaseTx = transactionUtils.stripCoinbaseTransaction(transactions[0]); blockExtended.extras.coinbaseRaw = blockExtended.extras.coinbaseTx.vin[0].scriptsig; - blockExtended.extras.usd = fiatConversion.getConversionRates().USD; + blockExtended.extras.usd = priceUpdater.latestPrices.USD; if (block.height === 0) { blockExtended.extras.medianFee = 0; // 50th percentiles diff --git a/backend/src/api/fiat-conversion.ts b/backend/src/api/fiat-conversion.ts deleted file mode 100644 index ffbe6a758..000000000 --- a/backend/src/api/fiat-conversion.ts +++ /dev/null @@ -1,123 +0,0 @@ -import logger from '../logger'; -import * as http from 'http'; -import * as https from 'https'; -import axios, { AxiosResponse } from 'axios'; -import { IConversionRates } from '../mempool.interfaces'; -import config from '../config'; -import backendInfo from './backend-info'; -import { SocksProxyAgent } from 'socks-proxy-agent'; - -class FiatConversion { - private debasingFiatCurrencies = ['AED', 'AUD', 'BDT', 'BHD', 'BMD', 'BRL', 'CAD', 'CHF', 'CLP', - 'CNY', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HUF', 'IDR', 'ILS', 'INR', 'JPY', 'KRW', 'KWD', - 'LKR', 'MMK', 'MXN', 'MYR', 'NGN', 'NOK', 'NZD', 'PHP', 'PKR', 'PLN', 'RUB', 'SAR', 'SEK', - 'SGD', 'THB', 'TRY', 'TWD', 'UAH', 'USD', 'VND', 'ZAR']; - private conversionRates: IConversionRates = {}; - private ratesChangedCallback: ((rates: IConversionRates) => void) | undefined; - public ratesInitialized = false; // If true, it means rates are ready for use - - constructor() { - for (const fiat of this.debasingFiatCurrencies) { - this.conversionRates[fiat] = 0; - } - } - - public setProgressChangedCallback(fn: (rates: IConversionRates) => void) { - this.ratesChangedCallback = fn; - } - - public startService() { - const fiatConversionUrl = (config.SOCKS5PROXY.ENABLED === true) && (config.SOCKS5PROXY.USE_ONION === true) ? config.PRICE_DATA_SERVER.TOR_URL : config.PRICE_DATA_SERVER.CLEARNET_URL; - logger.info('Starting currency rates service'); - if (config.SOCKS5PROXY.ENABLED) { - logger.info(`Currency rates service will be queried over the Tor network using ${fiatConversionUrl}`); - } else { - logger.info(`Currency rates service will be queried over clearnet using ${config.PRICE_DATA_SERVER.CLEARNET_URL}`); - } - setInterval(this.updateCurrency.bind(this), 1000 * config.MEMPOOL.PRICE_FEED_UPDATE_INTERVAL); - this.updateCurrency(); - } - - public getConversionRates() { - return this.conversionRates; - } - - private async updateCurrency(): Promise { - type axiosOptions = { - headers: { - 'User-Agent': string - }; - timeout: number; - httpAgent?: http.Agent; - httpsAgent?: https.Agent; - } - const setDelay = (secs: number = 1): Promise => new Promise(resolve => setTimeout(() => resolve(), secs * 1000)); - const fiatConversionUrl = (config.SOCKS5PROXY.ENABLED === true) && (config.SOCKS5PROXY.USE_ONION === true) ? config.PRICE_DATA_SERVER.TOR_URL : config.PRICE_DATA_SERVER.CLEARNET_URL; - const isHTTP = (new URL(fiatConversionUrl).protocol.split(':')[0] === 'http') ? true : false; - const axiosOptions: axiosOptions = { - headers: { - 'User-Agent': (config.MEMPOOL.USER_AGENT === 'mempool') ? `mempool/v${backendInfo.getBackendInfo().version}` : `${config.MEMPOOL.USER_AGENT}` - }, - timeout: config.SOCKS5PROXY.ENABLED ? 30000 : 10000 - }; - - let retry = 0; - - while(retry < config.MEMPOOL.EXTERNAL_MAX_RETRY) { - try { - if (config.SOCKS5PROXY.ENABLED) { - let socksOptions: any = { - agentOptions: { - keepAlive: true, - }, - hostname: config.SOCKS5PROXY.HOST, - port: config.SOCKS5PROXY.PORT - }; - - if (config.SOCKS5PROXY.USERNAME && config.SOCKS5PROXY.PASSWORD) { - socksOptions.username = config.SOCKS5PROXY.USERNAME; - socksOptions.password = config.SOCKS5PROXY.PASSWORD; - } else { - // Retry with different tor circuits https://stackoverflow.com/a/64960234 - socksOptions.username = `circuit${retry}`; - } - - // Handle proxy agent for onion addresses - if (isHTTP) { - axiosOptions.httpAgent = new SocksProxyAgent(socksOptions); - } else { - axiosOptions.httpsAgent = new SocksProxyAgent(socksOptions); - } - } - - logger.debug('Querying currency rates service...'); - - const response: AxiosResponse = await axios.get(`${fiatConversionUrl}`, axiosOptions); - - if (response.statusText === 'error' || !response.data) { - throw new Error(`Could not fetch data from ${fiatConversionUrl}, Error: ${response.status}`); - } - - for (const rate of response.data.data) { - if (this.debasingFiatCurrencies.includes(rate.currencyCode) && rate.provider === 'Bisq-Aggregate') { - this.conversionRates[rate.currencyCode] = Math.round(100 * rate.price) / 100; - } - } - - this.ratesInitialized = true; - logger.debug(`USD Conversion Rate: ${this.conversionRates.USD}`); - - if (this.ratesChangedCallback) { - this.ratesChangedCallback(this.conversionRates); - } - break; - } catch (e) { - logger.err('Error updating fiat conversion rates: ' + (e instanceof Error ? e.message : e)); - await setDelay(config.MEMPOOL.EXTERNAL_RETRY_INTERVAL); - retry++; - } - } - } -} - -export default new FiatConversion(); diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index 599c068a6..3b6c62513 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -8,7 +8,6 @@ import blocks from './blocks'; import memPool from './mempool'; import backendInfo from './backend-info'; import mempoolBlocks from './mempool-blocks'; -import fiatConversion from './fiat-conversion'; import { Common } from './common'; import loadingIndicators from './loading-indicators'; import config from '../config'; @@ -20,6 +19,7 @@ import BlocksAuditsRepository from '../repositories/BlocksAuditsRepository'; import BlocksSummariesRepository from '../repositories/BlocksSummariesRepository'; import Audit from './audit'; import { deepClone } from '../utils/clone'; +import priceUpdater from '../tasks/price-updater'; class WebsocketHandler { private wss: WebSocket.Server | undefined; @@ -214,7 +214,7 @@ class WebsocketHandler { 'mempoolInfo': memPool.getMempoolInfo(), 'vBytesPerSecond': memPool.getVBytesPerSecond(), 'blocks': _blocks, - 'conversions': fiatConversion.getConversionRates(), + 'conversions': priceUpdater.latestPrices, 'mempool-blocks': mempoolBlocks.getMempoolBlocks(), 'transactions': memPool.getLatestTransactions(), 'backendInfo': backendInfo.getBackendInfo(), diff --git a/backend/src/index.ts b/backend/src/index.ts index 8371e927f..7c0d7ee48 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -10,7 +10,6 @@ import memPool from './api/mempool'; import diskCache from './api/disk-cache'; import statistics from './api/statistics/statistics'; import websocketHandler from './api/websocket-handler'; -import fiatConversion from './api/fiat-conversion'; import bisq from './api/bisq/bisq'; import bisqMarkets from './api/bisq/markets'; import logger from './logger'; @@ -36,6 +35,7 @@ import liquidRoutes from './api/liquid/liquid.routes'; import bitcoinRoutes from './api/bitcoin/bitcoin.routes'; import fundingTxFetcher from './tasks/lightning/sync-tasks/funding-tx-fetcher'; import forensicsService from './tasks/lightning/forensics.service'; +import priceUpdater from './tasks/price-updater'; class Server { private wss: WebSocket.Server | undefined; @@ -87,6 +87,8 @@ class Server { .use(express.text({ type: ['text/plain', 'application/base64'] })) ; + await priceUpdater.$initializeLatestPriceWithDb(); + this.server = http.createServer(this.app); this.wss = new WebSocket.Server({ server: this.server }); @@ -127,7 +129,7 @@ class Server { } } - fiatConversion.startService(); + priceUpdater.$run(); this.setUpHttpApiRoutes(); @@ -221,7 +223,7 @@ class Server { memPool.setAsyncMempoolChangedCallback(websocketHandler.handleMempoolChange.bind(websocketHandler)); blocks.setNewAsyncBlockCallback(websocketHandler.handleNewBlock.bind(websocketHandler)); } - fiatConversion.setProgressChangedCallback(websocketHandler.handleNewConversionRates.bind(websocketHandler)); + priceUpdater.setRatesChangedCallback(websocketHandler.handleNewConversionRates.bind(websocketHandler)); loadingIndicators.setProgressChangedCallback(websocketHandler.handleLoadingChanged.bind(websocketHandler)); } diff --git a/backend/src/repositories/PricesRepository.ts b/backend/src/repositories/PricesRepository.ts index cc79ff2a6..bc606e68b 100644 --- a/backend/src/repositories/PricesRepository.ts +++ b/backend/src/repositories/PricesRepository.ts @@ -1,12 +1,13 @@ import DB from '../database'; import logger from '../logger'; -import { Prices } from '../tasks/price-updater'; +import { IConversionRates } from '../mempool.interfaces'; +import priceUpdater from '../tasks/price-updater'; class PricesRepository { - public async $savePrices(time: number, prices: Prices): Promise { - if (prices.USD === -1) { - // Some historical price entries have not USD prices, so we just ignore them to avoid future UX issues - // As of today there are only 4 (on 2013-09-05, 2013-09-19, 2013-09-12 and 2013-09-26) so that's fine + public async $savePrices(time: number, prices: IConversionRates): Promise { + if (prices.USD === 0) { + // Some historical price entries have no USD prices, so we just ignore them to avoid future UX issues + // As of today there are only 4 (on 2013-09-05, 2013-0909, 2013-09-12 and 2013-09-26) so that's fine return; } @@ -23,22 +24,22 @@ class PricesRepository { } public async $getOldestPriceTime(): Promise { - const [oldestRow] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != -1 ORDER BY time LIMIT 1`); + const [oldestRow] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != 0 ORDER BY time LIMIT 1`); return oldestRow[0] ? oldestRow[0].time : 0; } public async $getLatestPriceId(): Promise { - const [oldestRow] = await DB.query(`SELECT id from prices WHERE USD != -1 ORDER BY time DESC LIMIT 1`); + const [oldestRow] = await DB.query(`SELECT id from prices WHERE USD != 0 ORDER BY time DESC LIMIT 1`); return oldestRow[0] ? oldestRow[0].id : null; } public async $getLatestPriceTime(): Promise { - const [oldestRow] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != -1 ORDER BY time DESC LIMIT 1`); + const [oldestRow] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != 0 ORDER BY time DESC LIMIT 1`); return oldestRow[0] ? oldestRow[0].time : 0; } public async $getPricesTimes(): Promise { - const [times]: any[] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != -1 ORDER BY time`); + const [times]: any[] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time from prices WHERE USD != 0 ORDER BY time`); return times.map(time => time.time); } @@ -46,6 +47,19 @@ class PricesRepository { const [times]: any[] = await DB.query(`SELECT UNIX_TIMESTAMP(time) as time, id, USD from prices ORDER BY time`); return times; } + + public async $getLatestConversionRates(): Promise { + const [rates]: any[] = await DB.query(` + SELECT USD, EUR, GBP, CAD, CHF, AUD, JPY + FROM prices + ORDER BY time DESC + LIMIT 1` + ); + if (!rates || rates.length === 0) { + return priceUpdater.getEmptyPricesObj(); + } + return rates[0]; + } } export default new PricesRepository(); diff --git a/backend/src/tasks/price-updater.ts b/backend/src/tasks/price-updater.ts index 9e7e5910a..e42c5887a 100644 --- a/backend/src/tasks/price-updater.ts +++ b/backend/src/tasks/price-updater.ts @@ -1,7 +1,8 @@ import * as fs from 'fs'; -import path from "path"; +import path from 'path'; import config from '../config'; import logger from '../logger'; +import { IConversionRates } from '../mempool.interfaces'; import PricesRepository from '../repositories/PricesRepository'; import BitfinexApi from './price-feeds/bitfinex-api'; import BitflyerApi from './price-feeds/bitflyer-api'; @@ -20,17 +21,7 @@ export interface PriceFeed { } export interface PriceHistory { - [timestamp: number]: Prices; -} - -export interface Prices { - USD: number; - EUR: number; - GBP: number; - CAD: number; - CHF: number; - AUD: number; - JPY: number; + [timestamp: number]: IConversionRates; } class PriceUpdater { @@ -40,7 +31,8 @@ class PriceUpdater { running = false; feeds: PriceFeed[] = []; currencies: string[] = ['USD', 'EUR', 'GBP', 'CAD', 'CHF', 'AUD', 'JPY']; - latestPrices: Prices; + latestPrices: IConversionRates; + private ratesChangedCallback: ((rates: IConversionRates) => void) | undefined; constructor() { this.latestPrices = this.getEmptyPricesObj(); @@ -52,18 +44,30 @@ class PriceUpdater { this.feeds.push(new GeminiApi()); } - public getEmptyPricesObj(): Prices { + public getEmptyPricesObj(): IConversionRates { return { - USD: -1, - EUR: -1, - GBP: -1, - CAD: -1, - CHF: -1, - AUD: -1, - JPY: -1, + USD: 0, + EUR: 0, + GBP: 0, + CAD: 0, + CHF: 0, + AUD: 0, + JPY: 0, }; } + public setRatesChangedCallback(fn: (rates: IConversionRates) => void) { + this.ratesChangedCallback = fn; + } + + /** + * We execute this function before the websocket initialization since + * the websocket init is not done asyncronously + */ + public async $initializeLatestPriceWithDb(): Promise { + this.latestPrices = await PricesRepository.$getLatestConversionRates(); + } + public async $run(): Promise { if (this.running === true) { return; @@ -76,10 +80,9 @@ class PriceUpdater { } try { + await this.$updatePrice(); if (this.historyInserted === false && config.DATABASE.ENABLED === true) { await this.$insertHistoricalPrices(); - } else { - await this.$updatePrice(); } } catch (e) { logger.err(`Cannot save BTC prices in db. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.mining); @@ -144,6 +147,10 @@ class PriceUpdater { } } + if (this.ratesChangedCallback) { + this.ratesChangedCallback(this.latestPrices); + } + this.lastRun = new Date().getTime() / 1000; } @@ -213,7 +220,7 @@ class PriceUpdater { // Group them by timestamp and currency, for example // grouped[123456789]['USD'] = [1, 2, 3, 4]; - const grouped: Object = {}; + const grouped: any = {}; for (const historicalEntry of historicalPrices) { for (const time in historicalEntry) { if (existingPriceTimes.includes(parseInt(time, 10))) { @@ -229,7 +236,7 @@ class PriceUpdater { for (const currency of this.currencies) { const price = historicalEntry[time][currency]; if (price > 0) { - grouped[time][currency].push(parseInt(price, 10)); + grouped[time][currency].push(typeof price === 'string' ? parseInt(price, 10) : price); } } } @@ -238,7 +245,7 @@ class PriceUpdater { // Average prices and insert everything into the db let totalInserted = 0; for (const time in grouped) { - const prices: Prices = this.getEmptyPricesObj(); + const prices: IConversionRates = this.getEmptyPricesObj(); for (const currency in grouped[time]) { if (grouped[time][currency].length === 0) { continue; From 6c0dc34dd6249c1df69fc2b39e3e6c519122ec76 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 16:13:10 +0900 Subject: [PATCH 0298/1466] Run database migration before running any business logic --- backend/src/index.ts | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index 7c0d7ee48..cad675e27 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -78,6 +78,24 @@ class Server { async startServer(worker = false): Promise { logger.notice(`Starting Mempool Server${worker ? ' (worker)' : ''}... (${backendInfo.getShortCommitHash()})`); + if (config.DATABASE.ENABLED) { + await DB.checkDbConnection(); + try { + if (process.env.npm_config_reindex !== undefined) { // Re-index requests + const tables = process.env.npm_config_reindex.split(','); + logger.warn(`Indexed data for "${process.env.npm_config_reindex}" tables will be erased in 5 seconds (using '--reindex')`); + await Common.sleep$(5000); + await databaseMigration.$truncateIndexedData(tables); + } + await databaseMigration.$initializeOrMigrateDatabase(); + if (Common.indexingEnabled()) { + await indexer.$resetHashratesIndexingState(); + } + } catch (e) { + throw new Error(e instanceof Error ? e.message : 'Error'); + } + } + this.app .use((req: Request, res: Response, next: NextFunction) => { res.setHeader('Access-Control-Allow-Origin', '*'); @@ -99,24 +117,6 @@ class Server { diskCache.loadMempoolCache(); } - if (config.DATABASE.ENABLED) { - await DB.checkDbConnection(); - try { - if (process.env.npm_config_reindex !== undefined) { // Re-index requests - const tables = process.env.npm_config_reindex.split(','); - logger.warn(`Indexed data for "${process.env.npm_config_reindex}" tables will be erased in 5 seconds (using '--reindex')`); - await Common.sleep$(5000); - await databaseMigration.$truncateIndexedData(tables); - } - await databaseMigration.$initializeOrMigrateDatabase(); - if (Common.indexingEnabled()) { - await indexer.$resetHashratesIndexingState(); - } - } catch (e) { - throw new Error(e instanceof Error ? e.message : 'Error'); - } - } - if (config.STATISTICS.ENABLED && config.DATABASE.ENABLED && cluster.isPrimary) { statistics.startStatistics(); } From 28bd813fb8322e9b765d54203c01069fbcda0b0c Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 15 Feb 2023 16:22:06 +0900 Subject: [PATCH 0299/1466] Show correct currency label in 'Latest transactions' widget --- .../app/dashboard/dashboard.component.html | 2 +- .../src/app/dashboard/dashboard.component.ts | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/dashboard/dashboard.component.html b/frontend/src/app/dashboard/dashboard.component.html index 1df7baabc..f3d96e187 100644 --- a/frontend/src/app/dashboard/dashboard.component.html +++ b/frontend/src/app/dashboard/dashboard.component.html @@ -122,7 +122,7 @@
    TXID AmountUSD{{ currency }} Fee
    Timestamp MinedHealth Reward + + diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.ts b/frontend/src/app/components/blocks-list/blocks-list.component.ts index 93f7814cf..1cc428be3 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.ts +++ b/frontend/src/app/components/blocks-list/blocks-list.component.ts @@ -22,6 +22,7 @@ export class BlocksList implements OnInit, OnDestroy { latestScoreSubscription: Subscription; indexingAvailable = false; + auditAvailable = false; isLoading = true; loadingScores = true; fromBlockHeight = undefined; @@ -44,6 +45,7 @@ export class BlocksList implements OnInit, OnDestroy { ngOnInit(): void { this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); + this.auditAvailable = this.stateService.env.AUDIT; if (!this.widget) { this.websocketService.want(['blocks']); @@ -111,7 +113,7 @@ export class BlocksList implements OnInit, OnDestroy { }, []) ); - if (this.indexingAvailable) { + if (this.indexingAvailable && this.auditAvailable) { this.auditScoreSubscription = this.fromHeightSubject.pipe( switchMap((fromBlockHeight) => { this.loadingScores = true; diff --git a/frontend/src/app/components/graphs/graphs.component.html b/frontend/src/app/components/graphs/graphs.component.html index dd47a4ac7..af5136a38 100644 --- a/frontend/src/app/components/graphs/graphs.component.html +++ b/frontend/src/app/components/graphs/graphs.component.html @@ -22,7 +22,7 @@ i18n="mining.block-rewards">Block Rewards Block Sizes and Weights - Block Prediction Accuracy diff --git a/frontend/src/app/services/state.service.ts b/frontend/src/app/services/state.service.ts index 02b160fe9..33de7823d 100644 --- a/frontend/src/app/services/state.service.ts +++ b/frontend/src/app/services/state.service.ts @@ -39,6 +39,7 @@ export interface Env { BISQ_WEBSITE_URL: string; MINING_DASHBOARD: boolean; LIGHTNING: boolean; + AUDIT: boolean; MAINNET_BLOCK_AUDIT_START_HEIGHT: number; TESTNET_BLOCK_AUDIT_START_HEIGHT: number; SIGNET_BLOCK_AUDIT_START_HEIGHT: number; @@ -67,6 +68,7 @@ const defaultEnv: Env = { 'BISQ_WEBSITE_URL': 'https://bisq.markets', 'MINING_DASHBOARD': true, 'LIGHTNING': false, + 'AUDIT': false, 'MAINNET_BLOCK_AUDIT_START_HEIGHT': 0, 'TESTNET_BLOCK_AUDIT_START_HEIGHT': 0, 'SIGNET_BLOCK_AUDIT_START_HEIGHT': 0, diff --git a/production/mempool-config.mainnet.json b/production/mempool-config.mainnet.json index ab2fa69c1..1258e62fb 100644 --- a/production/mempool-config.mainnet.json +++ b/production/mempool-config.mainnet.json @@ -10,6 +10,7 @@ "POLL_RATE_MS": 1000, "INDEXING_BLOCKS_AMOUNT": -1, "BLOCKS_SUMMARIES_INDEXING": true, + "AUDIT": true, "ADVANCED_GBT_AUDIT": true, "ADVANCED_GBT_MEMPOOL": false, "USE_SECOND_NODE_FOR_MINFEE": true diff --git a/production/mempool-config.signet.json b/production/mempool-config.signet.json index 313a09679..3c661c39f 100644 --- a/production/mempool-config.signet.json +++ b/production/mempool-config.signet.json @@ -7,6 +7,7 @@ "SPAWN_CLUSTER_PROCS": 0, "API_URL_PREFIX": "/api/v1/", "INDEXING_BLOCKS_AMOUNT": -1, + "AUDIT": true, "ADVANCED_GBT_AUDIT": true, "ADVANCED_GBT_MEMPOOL": false, "POLL_RATE_MS": 1000 diff --git a/production/mempool-config.testnet.json b/production/mempool-config.testnet.json index 908df7886..352529c6e 100644 --- a/production/mempool-config.testnet.json +++ b/production/mempool-config.testnet.json @@ -7,6 +7,7 @@ "SPAWN_CLUSTER_PROCS": 0, "API_URL_PREFIX": "/api/v1/", "INDEXING_BLOCKS_AMOUNT": -1, + "AUDIT": true, "ADVANCED_GBT_AUDIT": true, "ADVANCED_GBT_MEMPOOL": false, "POLL_RATE_MS": 1000 diff --git a/production/mempool-frontend-config.mainnet.json b/production/mempool-frontend-config.mainnet.json index e612c0440..5eb3d0a7d 100644 --- a/production/mempool-frontend-config.mainnet.json +++ b/production/mempool-frontend-config.mainnet.json @@ -10,5 +10,6 @@ "LIQUID_WEBSITE_URL": "https://liquid.network", "BISQ_WEBSITE_URL": "https://bisq.markets", "ITEMS_PER_PAGE": 25, - "LIGHTNING": true + "LIGHTNING": true, + "AUDIT": true } From c923a4bc2265bfce6cb04faa40df6600f18ba51e Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 14 Feb 2023 12:23:26 -0600 Subject: [PATCH 0301/1466] simplify audit availability logic --- .../app/components/block/block.component.ts | 20 +++++++++---------- .../blocks-list/blocks-list.component.html | 6 +++--- .../blocks-list/blocks-list.component.ts | 2 +- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 668d0af48..ba5dd8cf7 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -57,8 +57,8 @@ export class BlockComponent implements OnInit, OnDestroy { transactionsError: any = null; overviewError: any = null; webGlEnabled = true; - indexingAvailable = false; - auditModeEnabled: boolean = this.stateService.env.AUDIT && !this.stateService.hideAudit.value; + auditSupported: boolean = this.stateService.env.AUDIT && this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true; + auditModeEnabled: boolean = !this.stateService.hideAudit.value; auditAvailable = true; showAudit: boolean; isMobile = window.innerWidth <= 767.98; @@ -109,11 +109,9 @@ export class BlockComponent implements OnInit, OnDestroy { this.timeLtr = !!ltr; }); - this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); + this.setAuditAvailable(this.auditSupported); - this.setAuditAvailable(this.stateService.env.AUDIT && this.indexingAvailable); - - if (this.stateService.env.AUDIT) { + if (this.auditSupported) { this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { this.auditModeEnabled = !hide; this.showAudit = this.auditAvailable && this.auditModeEnabled; @@ -224,7 +222,7 @@ export class BlockComponent implements OnInit, OnDestroy { setTimeout(() => { this.nextBlockSubscription = this.apiService.getBlock$(block.previousblockhash).subscribe(); this.nextBlockTxListSubscription = this.electrsApiService.getBlockTransactions$(block.previousblockhash).subscribe(); - if (this.stateService.env.AUDIT) { + if (this.auditSupported) { this.apiService.getBlockAudit$(block.previousblockhash); } }, 100); @@ -274,7 +272,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.isLoadingOverview = false; }); - if (!this.indexingAvailable || !this.stateService.env.AUDIT) { + if (!this.auditSupported) { this.overviewSubscription = block$.pipe( startWith(null), pairwise(), @@ -305,7 +303,7 @@ export class BlockComponent implements OnInit, OnDestroy { }); } - if (this.indexingAvailable && this.stateService.env.AUDIT) { + if (this.auditSupported) { this.auditSubscription = block$.pipe( startWith(null), pairwise(), @@ -610,7 +608,7 @@ export class BlockComponent implements OnInit, OnDestroy { setAuditAvailable(available: boolean): void { this.auditAvailable = available; - this.showAudit = this.auditAvailable && this.auditModeEnabled; + this.showAudit = this.auditAvailable && this.auditModeEnabled && this.auditSupported; } toggleAuditMode(): void { @@ -618,7 +616,7 @@ export class BlockComponent implements OnInit, OnDestroy { } updateAuditAvailableFromBlockHeight(blockHeight: number): void { - if (!this.stateService.env.AUDIT) { + if (!this.auditSupported) { this.setAuditAvailable(false); } switch (this.stateService.network) { diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.html b/frontend/src/app/components/blocks-list/blocks-list.component.html index 46da3fa91..ffb5f5f88 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.html +++ b/frontend/src/app/components/blocks-list/blocks-list.component.html @@ -14,7 +14,7 @@ i18n-ngbTooltip="mining.pool-name" ngbTooltip="Pool" placement="bottom" #miningpool [disableTooltip]="!isEllipsisActive(miningpool)">Pool Timestamp MinedHealth Reward + + diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.ts b/frontend/src/app/components/blocks-list/blocks-list.component.ts index 1cc428be3..160e0c882 100644 --- a/frontend/src/app/components/blocks-list/blocks-list.component.ts +++ b/frontend/src/app/components/blocks-list/blocks-list.component.ts @@ -45,7 +45,7 @@ export class BlocksList implements OnInit, OnDestroy { ngOnInit(): void { this.indexingAvailable = (this.stateService.env.BASE_MODULE === 'mempool' && this.stateService.env.MINING_DASHBOARD === true); - this.auditAvailable = this.stateService.env.AUDIT; + this.auditAvailable = this.indexingAvailable && this.stateService.env.AUDIT; if (!this.widget) { this.websocketService.want(['blocks']); From 215e92d33e79276c38c2390652ec8ff3e143aee6 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Wed, 15 Feb 2023 01:27:43 -0500 Subject: [PATCH 0302/1466] Switch audit faq conditions to env.audit From OFFICIAL_MEMPOOL_SPACE. --- frontend/src/app/docs/api-docs/api-docs-data.ts | 4 ++-- frontend/src/app/docs/api-docs/api-docs-nav.component.html | 2 +- frontend/src/app/docs/api-docs/api-docs-nav.component.ts | 4 ++-- frontend/src/app/docs/api-docs/api-docs.component.html | 2 +- frontend/src/app/docs/api-docs/api-docs.component.ts | 2 ++ 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 5cc5ca3aa..a6e8e418f 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -8671,7 +8671,7 @@ export const faqData = [ type: "endpoint", category: "advanced", showConditions: bitcoinNetworks, - options: { officialOnly: true }, + options: { auditOnly: true }, fragment: "how-do-block-audits-work", title: "How do block audits work?", }, @@ -8679,7 +8679,7 @@ export const faqData = [ type: "endpoint", category: "advanced", showConditions: bitcoinNetworks, - options: { officialOnly: true }, + options: { auditOnly: true }, fragment: "what-is-block-health", title: "What is block health?", }, diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.html b/frontend/src/app/docs/api-docs/api-docs-nav.component.html index 3abdc91be..0353d5fb0 100644 --- a/frontend/src/app/docs/api-docs/api-docs-nav.component.html +++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.html @@ -1,4 +1,4 @@

    {{ item.title }}

    - {{ item.title }} + {{ item.title }}
    diff --git a/frontend/src/app/docs/api-docs/api-docs-nav.component.ts b/frontend/src/app/docs/api-docs/api-docs-nav.component.ts index ad9d0b9a5..439f20339 100644 --- a/frontend/src/app/docs/api-docs/api-docs-nav.component.ts +++ b/frontend/src/app/docs/api-docs/api-docs-nav.component.ts @@ -15,7 +15,7 @@ export class ApiDocsNavComponent implements OnInit { @Output() navLinkClickEvent: EventEmitter = new EventEmitter(); env: Env; tabData: any[]; - officialMempoolInstance: boolean; + auditEnabled: boolean; constructor( private stateService: StateService @@ -23,7 +23,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; } else if (this.whichTab === 'faq') { diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index c984c2b77..e9a905fab 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -15,7 +15,7 @@
    -
    +

    {{ item.title }}

    {{ item.title }}{{ item.category }}
    diff --git a/frontend/src/app/docs/api-docs/api-docs.component.ts b/frontend/src/app/docs/api-docs/api-docs.component.ts index 0bffd5b2a..1d5eec453 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.ts +++ b/frontend/src/app/docs/api-docs/api-docs.component.ts @@ -28,6 +28,7 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { wsDocs: any; screenWidth: number; officialMempoolInstance: boolean; + auditEnabled: boolean; @ViewChildren(FaqTemplateDirective) faqTemplates: QueryList; dict = {}; @@ -60,6 +61,7 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { ngOnInit(): void { this.env = this.stateService.env; this.officialMempoolInstance = this.env.OFFICIAL_MEMPOOL_SPACE; + this.auditEnabled = this.env.AUDIT; this.network$ = merge(of(''), this.stateService.networkChanged$).pipe( tap((network: string) => { if (this.env.BASE_MODULE === 'mempool' && network !== '') { From 774f7630ce9cb29327c9aac192b53aed0b38586d Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Wed, 15 Feb 2023 00:56:02 -0500 Subject: [PATCH 0303/1466] Remove colon from block overview table --- frontend/src/app/components/block/block.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html index 7e30d4bbf..0fda470d6 100644 --- a/frontend/src/app/components/block/block.component.html +++ b/frontend/src/app/components/block/block.component.html @@ -143,7 +143,7 @@
    Subsidy + fees:Subsidy + fees @@ -158,7 +158,7 @@
    Subsidy + fees:Subsidy + fees
    - + - + {{ block.tx_count | number }} diff --git a/frontend/src/app/lightning/channel/channel-box/channel-box.component.html b/frontend/src/app/lightning/channel/channel-box/channel-box.component.html index 9fe9b100b..effe6b891 100644 --- a/frontend/src/app/lightning/channel/channel-box/channel-box.component.html +++ b/frontend/src/app/lightning/channel/channel-box/channel-box.component.html @@ -7,7 +7,7 @@
    -
    +
    From cc5873f9956933e349e4426d5ce5b4f8f3830905 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 15 Feb 2023 09:26:12 -0600 Subject: [PATCH 0308/1466] fix liquid address table overflow --- .../components/address/address.component.html | 4 ++-- .../components/address/address.component.scss | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/components/address/address.component.html b/frontend/src/app/components/address/address.component.html index d3b23315a..ae2d7ba9c 100644 --- a/frontend/src/app/components/address/address.component.html +++ b/frontend/src/app/components/address/address.component.html @@ -1,4 +1,4 @@ -
    +

    Address

    diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss index 59151f6b2..d177a8b01 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss @@ -1,91 +1,70 @@ +.spinner-border { + height: 25px; + width: 25px; + margin-top: 13px; +} + .container-xl { max-width: 1400px; - padding-bottom: 100px; - @media (min-width: 960px) { - padding-left: 50px; - padding-right: 50px; - } +} +.container-xl.widget { + padding-right: 0px; + padding-left: 0px; + padding-bottom: 0px; +} +.container-xl.legacy { + max-width: 1140px; } -.table td, .table th { - padding: 0.5rem; +.container { + max-width: 100%; } -.full .rank { - width: 5%; -} -.widget .rank { - @media (min-width: 960px) { - width: 13%; - } - @media (max-width: 960px) { - padding-left: 0px; - padding-right: 0px; - } +tr, td, th { + border: 0px; + padding-top: 0.65rem !important; + padding-bottom: 0.7rem !important; } -.full .alias { - width: 20%; +.clear-link { + color: white; +} + +.disabled { + pointer-events: none; + opacity: 0.5; +} + +.progress { + background-color: #2d3348; +} + +.pool { + width: 15%; + @media (max-width: 576px) { + width: 75%; + } overflow: hidden; text-overflow: ellipsis; - max-width: 350px; - @media (max-width: 960px) { - width: 40%; - max-width: 500px; - } + white-space: nowrap; + max-width: 160px; } -.widget .alias { - width: 60%; - overflow: hidden; +.pool-name { + display: inline-block; + vertical-align: text-top; text-overflow: ellipsis; - max-width: 350px; - @media (max-width: 960px) { - max-width: 175px; - } + overflow: hidden; } -.full .capacity { +.liquidity { width: 10%; - @media (max-width: 960px) { - width: 30%; - } -} -.widget .capacity { - width: 32%; - @media (max-width: 960px) { - padding-left: 0px; - padding-right: 0px; + @media (max-width: 576px) { + width: 25%; } } -.full .channels { +.fiat { width: 15%; - padding-right: 50px; - @media (max-width: 960px) { - display: none; - } + font-family: monospace; + font-size: 14px; } - -.full .timestamp-first { - width: 10%; - @media (max-width: 960px) { - display: none; - } -} - -.full .timestamp-update { - width: 10%; - @media (max-width: 960px) { - display: none; - } -} - -.full .location { - width: 15%; - @media (max-width: 960px) { - width: 30%; - } - @media (max-width: 600px) { - display: none; - } -} \ No newline at end of file diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts index 766e7f090..489ba9b21 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts @@ -1,5 +1,6 @@ -import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; -import { map, Observable } from 'rxjs'; +import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { map, Observable, Subscription } from 'rxjs'; +import { StateService } from 'src/app/services/state.service'; import { INodesRanking, ITopNodesPerCapacity } from '../../../interfaces/node-api.interface'; import { SeoService } from '../../../services/seo.service'; import { isMobile } from '../../../shared/common.utils'; @@ -12,24 +13,31 @@ import { LightningApiService } from '../../lightning-api.service'; styleUrls: ['./top-nodes-per-capacity.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class TopNodesPerCapacity implements OnInit { +export class TopNodesPerCapacity implements OnInit, OnDestroy { @Input() nodes$: Observable; @Input() widget: boolean = false; topNodesPerCapacity$: Observable; skeletonRows: number[] = []; + currency$: Observable; constructor( private apiService: LightningApiService, - private seoService: SeoService + private seoService: SeoService, + private stateService: StateService, ) {} + ngOnDestroy(): void { + } + ngOnInit(): void { + this.currency$ = this.stateService.fiatCurrency$; + if (!this.widget) { this.seoService.setTitle($localize`:@@2d9883d230a47fbbb2ec969e32a186597ea27405:Liquidity Ranking`); } - for (let i = 1; i <= (this.widget ? (isMobile() ? 8 : 7) : 100); ++i) { + for (let i = 1; i <= (this.widget ? 6 : 100); ++i) { this.skeletonRows.push(i); } @@ -50,7 +58,7 @@ export class TopNodesPerCapacity implements OnInit { } else { this.topNodesPerCapacity$ = this.nodes$.pipe( map((ranking) => { - return ranking.topByCapacity.slice(0, isMobile() ? 8 : 7); + return ranking.topByCapacity.slice(0, 6); }) ); } diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts index 2c88e4bae..ac67787e6 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts @@ -23,7 +23,7 @@ export class TopNodesPerChannels implements OnInit { ) {} ngOnInit(): void { - for (let i = 1; i <= (this.widget ? (isMobile() ? 8 : 7) : 100); ++i) { + for (let i = 1; i <= (this.widget ? (isMobile() ? 8 : 6) : 100); ++i) { this.skeletonRows.push(i); } @@ -44,7 +44,7 @@ export class TopNodesPerChannels implements OnInit { } else { this.topNodesPerChannels$ = this.nodes$.pipe( map((ranking) => { - return ranking.topByChannels.slice(0, isMobile() ? 8 : 7); + return ranking.topByChannels.slice(0, isMobile() ? 8 : 6); }) ); } From 50c3f834840239ed3520e2fafb43592559796e12 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 23 Feb 2023 18:36:13 +0900 Subject: [PATCH 0357/1466] Fix design for node channels ranking --- .../lightning-dashboard.component.html | 2 +- .../top-nodes-per-capacity.component.scss | 22 ----- .../top-nodes-per-capacity.component.ts | 10 +- .../top-nodes-per-channels.component.html | 89 +++++++---------- .../top-nodes-per-channels.component.scss | 99 ++++++------------- .../top-nodes-per-channels.component.ts | 5 + 6 files changed, 74 insertions(+), 153 deletions(-) diff --git a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html index c00a4be58..b73d21bcd 100644 --- a/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html +++ b/frontend/src/app/lightning/lightning-dashboard/lightning-dashboard.component.html @@ -69,7 +69,7 @@
    -
    +
    diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss index d177a8b01..b7ed8cf04 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss @@ -1,9 +1,3 @@ -.spinner-border { - height: 25px; - width: 25px; - margin-top: 13px; -} - .container-xl { max-width: 1400px; } @@ -12,13 +6,6 @@ padding-left: 0px; padding-bottom: 0px; } -.container-xl.legacy { - max-width: 1140px; -} - -.container { - max-width: 100%; -} tr, td, th { border: 0px; @@ -30,15 +17,6 @@ tr, td, th { color: white; } -.disabled { - pointer-events: none; - opacity: 0.5; -} - -.progress { - background-color: #2d3348; -} - .pool { width: 15%; @media (max-width: 576px) { diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts index 489ba9b21..4925256c0 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts @@ -1,9 +1,8 @@ -import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core'; -import { map, Observable, Subscription } from 'rxjs'; +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { map, Observable } from 'rxjs'; import { StateService } from 'src/app/services/state.service'; import { INodesRanking, ITopNodesPerCapacity } from '../../../interfaces/node-api.interface'; import { SeoService } from '../../../services/seo.service'; -import { isMobile } from '../../../shared/common.utils'; import { GeolocationData } from '../../../shared/components/geolocation/geolocation.component'; import { LightningApiService } from '../../lightning-api.service'; @@ -13,7 +12,7 @@ import { LightningApiService } from '../../lightning-api.service'; styleUrls: ['./top-nodes-per-capacity.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class TopNodesPerCapacity implements OnInit, OnDestroy { +export class TopNodesPerCapacity implements OnInit { @Input() nodes$: Observable; @Input() widget: boolean = false; @@ -27,9 +26,6 @@ export class TopNodesPerCapacity implements OnInit, OnDestroy { private stateService: StateService, ) {} - ngOnDestroy(): void { - } - ngOnInit(): void { this.currency$ = this.stateService.fiatCurrency$; diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html index 7d02e510f..ccb6a48fe 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html @@ -1,71 +1,56 @@ -
    -

    - Top 100 nodes connectivity ranking -

    -
    + +
    +

    Liquidity Ranking

    + +
    + +
    - - - - - - + + + + + + - - - + + - - - - + - - - + - - - - - - - - - - - - -
    AliasChannelsLiquidityFirst seenLast updateLocationChannelsCapacity{{ currency$ | async }}First seenLast updateLocation
    - {{ i + 1 }} +
    + - {{ node.alias }} - + {{ node.channels | number }} + + + + + +
    - - - - - - - - - - - - - -
    + + +
    +
    +
    -
    \ No newline at end of file + +
    diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss index 59151f6b2..b7ed8cf04 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss @@ -1,91 +1,48 @@ .container-xl { max-width: 1400px; - padding-bottom: 100px; - @media (min-width: 960px) { - padding-left: 50px; - padding-right: 50px; - } +} +.container-xl.widget { + padding-right: 0px; + padding-left: 0px; + padding-bottom: 0px; } -.table td, .table th { - padding: 0.5rem; +tr, td, th { + border: 0px; + padding-top: 0.65rem !important; + padding-bottom: 0.7rem !important; } -.full .rank { - width: 5%; -} -.widget .rank { - @media (min-width: 960px) { - width: 13%; - } - @media (max-width: 960px) { - padding-left: 0px; - padding-right: 0px; - } +.clear-link { + color: white; } -.full .alias { - width: 20%; +.pool { + width: 15%; + @media (max-width: 576px) { + width: 75%; + } overflow: hidden; text-overflow: ellipsis; - max-width: 350px; - @media (max-width: 960px) { - width: 40%; - max-width: 500px; - } + white-space: nowrap; + max-width: 160px; } -.widget .alias { - width: 60%; - overflow: hidden; +.pool-name { + display: inline-block; + vertical-align: text-top; text-overflow: ellipsis; - max-width: 350px; - @media (max-width: 960px) { - max-width: 175px; - } + overflow: hidden; } -.full .capacity { +.liquidity { width: 10%; - @media (max-width: 960px) { - width: 30%; - } -} -.widget .capacity { - width: 32%; - @media (max-width: 960px) { - padding-left: 0px; - padding-right: 0px; + @media (max-width: 576px) { + width: 25%; } } -.full .channels { +.fiat { width: 15%; - padding-right: 50px; - @media (max-width: 960px) { - display: none; - } + font-family: monospace; + font-size: 14px; } - -.full .timestamp-first { - width: 10%; - @media (max-width: 960px) { - display: none; - } -} - -.full .timestamp-update { - width: 10%; - @media (max-width: 960px) { - display: none; - } -} - -.full .location { - width: 15%; - @media (max-width: 960px) { - width: 30%; - } - @media (max-width: 600px) { - display: none; - } -} \ No newline at end of file diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts index ac67787e6..f1740e5bc 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts @@ -1,5 +1,6 @@ import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; import { map, Observable } from 'rxjs'; +import { StateService } from 'src/app/services/state.service'; import { INodesRanking, ITopNodesPerChannels } from '../../../interfaces/node-api.interface'; import { isMobile } from '../../../shared/common.utils'; import { GeolocationData } from '../../../shared/components/geolocation/geolocation.component'; @@ -17,12 +18,16 @@ export class TopNodesPerChannels implements OnInit { topNodesPerChannels$: Observable; skeletonRows: number[] = []; + currency$: Observable; constructor( private apiService: LightningApiService, + private stateService: StateService, ) {} ngOnInit(): void { + this.currency$ = this.stateService.fiatCurrency$; + for (let i = 1; i <= (this.widget ? (isMobile() ? 8 : 6) : 100); ++i) { this.skeletonRows.push(i); } From 58f886b33714d811296581c2572e39f53c6f423e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 23 Feb 2023 18:40:13 +0900 Subject: [PATCH 0358/1466] If we don't have a price for "single price" query then return empty price --- frontend/src/app/services/price.service.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/src/app/services/price.service.ts b/frontend/src/app/services/price.service.ts index ef1a973a1..8a93d9554 100644 --- a/frontend/src/app/services/price.service.ts +++ b/frontend/src/app/services/price.service.ts @@ -82,6 +82,9 @@ export class PriceService { return this.singlePriceObservable$.pipe( map((conversion) => { + if (conversion.prices.length <= 0) { + return this.getEmptyPrice(); + } return { price: { USD: conversion.prices[0].USD, EUR: conversion.prices[0].EUR, GBP: conversion.prices[0].GBP, CAD: conversion.prices[0].CAD, From f9fe096669daeda56e96eb5e0bd5810086b42b8e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 23 Feb 2023 18:43:32 +0900 Subject: [PATCH 0359/1466] Unsubscribe priceSubscription onDestroy --- frontend/src/app/components/block/block.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 5e0465fe1..35f47de85 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -471,6 +471,7 @@ export class BlockComponent implements OnInit, OnDestroy { this.auditSubscription?.unsubscribe(); this.unsubscribeNextBlockSubscriptions(); this.childChangeSubscription?.unsubscribe(); + this.priceSubscription?.unsubscribe(); } unsubscribeNextBlockSubscriptions() { From 7e913e4d34f417fb16248abad85cea4a30c160ee Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 23 Feb 2023 18:57:55 +0900 Subject: [PATCH 0360/1466] Show geolocation in node channels ranking widget --- backend/src/api/explorer/nodes.api.ts | 20 +++++++++++++++---- .../top-nodes-per-channels.component.html | 6 +++--- .../top-nodes-per-channels.component.scss | 3 +++ .../top-nodes-per-channels.component.ts | 13 ++++++++++-- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/backend/src/api/explorer/nodes.api.ts b/backend/src/api/explorer/nodes.api.ts index b3f83faa6..6d1d8aa0a 100644 --- a/backend/src/api/explorer/nodes.api.ts +++ b/backend/src/api/explorer/nodes.api.ts @@ -228,7 +228,7 @@ class NodesApi { nodes.capacity FROM nodes ORDER BY capacity DESC - LIMIT 100 + LIMIT 6 `; [rows] = await DB.query(query); @@ -269,14 +269,26 @@ class NodesApi { let query: string; if (full === false) { query = ` - SELECT nodes.public_key as publicKey, IF(nodes.alias = '', SUBSTRING(nodes.public_key, 1, 20), alias) as alias, - nodes.channels + SELECT + nodes.public_key as publicKey, + IF(nodes.alias = '', SUBSTRING(nodes.public_key, 1, 20), alias) as alias, + nodes.channels, + geo_names_city.names as city, geo_names_country.names as country, + geo_names_iso.names as iso_code, geo_names_subdivision.names as subdivision FROM nodes + LEFT JOIN geo_names geo_names_country ON geo_names_country.id = nodes.country_id AND geo_names_country.type = 'country' + LEFT JOIN geo_names geo_names_city ON geo_names_city.id = nodes.city_id AND geo_names_city.type = 'city' + LEFT JOIN geo_names geo_names_iso ON geo_names_iso.id = nodes.country_id AND geo_names_iso.type = 'country_iso_code' + LEFT JOIN geo_names geo_names_subdivision on geo_names_subdivision.id = nodes.subdivision_id AND geo_names_subdivision.type = 'division' ORDER BY channels DESC - LIMIT 100; + LIMIT 6; `; [rows] = await DB.query(query); + for (let i = 0; i < rows.length; ++i) { + rows[i].country = JSON.parse(rows[i].country); + rows[i].city = JSON.parse(rows[i].city); + } } else { query = ` SELECT nodes.public_key AS publicKey, IF(nodes.alias = '', SUBSTRING(nodes.public_key, 1, 20), alias) as alias, diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html index ccb6a48fe..538cae1c2 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html @@ -8,13 +8,13 @@
    - + - + @@ -40,7 +40,7 @@ - diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss index b7ed8cf04..ffde7c479 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss @@ -33,6 +33,9 @@ tr, td, th { text-overflow: ellipsis; overflow: hidden; } +.pool.widget { + width: 45%; +} .liquidity { width: 10%; diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts index f1740e5bc..79a6eb28f 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts @@ -28,7 +28,7 @@ export class TopNodesPerChannels implements OnInit { ngOnInit(): void { this.currency$ = this.stateService.fiatCurrency$; - for (let i = 1; i <= (this.widget ? (isMobile() ? 8 : 6) : 100); ++i) { + for (let i = 1; i <= (this.widget ? 6 : 100); ++i) { this.skeletonRows.push(i); } @@ -49,7 +49,16 @@ export class TopNodesPerChannels implements OnInit { } else { this.topNodesPerChannels$ = this.nodes$.pipe( map((ranking) => { - return ranking.topByChannels.slice(0, isMobile() ? 8 : 6); + for (const i in ranking.topByChannels) { + ranking.topByChannels[i].geolocation = { + country: ranking.topByChannels[i].country?.en, + city: ranking.topByChannels[i].city?.en, + subdivision: ranking.topByChannels[i].subdivision?.en, + iso: ranking.topByChannels[i].iso_code, + }; + console.log(ranking.topByChannels[i].geolocation); + } + return ranking.topByChannels; }) ); } From bb5fd4b1b1e094cf015bc11c9fd48db307cf05a2 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 23 Feb 2023 07:39:57 -0500 Subject: [PATCH 0361/1466] Fit translator avatars neatly on 2 lines --- frontend/src/app/components/about/about.component.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/src/app/components/about/about.component.scss b/frontend/src/app/components/about/about.component.scss index 42ecded1c..8390ce0ba 100644 --- a/frontend/src/app/components/about/about.component.scss +++ b/frontend/src/app/components/about/about.component.scss @@ -145,6 +145,13 @@ } } + .project-translators .wrapper { + a img { + width: 72px; + height: 72px; + } + } + .copyright { text-align: left; max-width: 620px; From 8eca1e5f7e90a925dc988dfe10cf8255624f48fd Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 8 Feb 2023 19:07:59 -0600 Subject: [PATCH 0362/1466] Handle network interruptions in scrollable blockchain --- .../blockchain-blocks.component.html | 10 +++++----- .../blockchain-blocks.component.scss | 4 ++++ .../blockchain-blocks/blockchain-blocks.component.ts | 2 ++ .../components/blockchain/blockchain.component.html | 2 +- .../components/blockchain/blockchain.component.ts | 12 +++++++++++- frontend/src/app/components/start/start.component.ts | 4 +++- frontend/src/app/services/cache.service.ts | 7 ++++++- 7 files changed, 32 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html index 400016d02..deb915f26 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -1,6 +1,6 @@
    + *ngIf="static || (loadingBlocks$ | async) === false; else loadingBlocksTemplate">
    - +
    - +
    - -
    + +
    diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.scss b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.scss index 64bfd2379..5db452470 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.scss +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.scss @@ -137,6 +137,10 @@ opacity: 1; } +.loading .bitcoin-block.mined-block { + background: #2d3348; +} + @keyframes opacityPulse { 0% {opacity: 0.7;} 50% {opacity: 1.0;} diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts index fb37cf72a..39f68c22e 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts @@ -22,6 +22,8 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy { @Input() offset: number = 0; @Input() height: number = 0; @Input() count: number = 8; + @Input() loadingTip: boolean = false; + @Input() connected: boolean = true; specialBlocks = specialBlocks; network = ''; diff --git a/frontend/src/app/components/blockchain/blockchain.component.html b/frontend/src/app/components/blockchain/blockchain.component.html index ad2e5e86a..0c4a1cbb7 100644 --- a/frontend/src/app/components/blockchain/blockchain.component.html +++ b/frontend/src/app/components/blockchain/blockchain.component.html @@ -6,7 +6,7 @@ - +
    diff --git a/frontend/src/app/components/blockchain/blockchain.component.ts b/frontend/src/app/components/blockchain/blockchain.component.ts index 0ad3625ea..ab9875a4c 100644 --- a/frontend/src/app/components/blockchain/blockchain.component.ts +++ b/frontend/src/app/components/blockchain/blockchain.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, OnChanges, SimpleChanges } from '@angular/core'; -import { Subscription } from 'rxjs'; +import { firstValueFrom, Subscription } from 'rxjs'; import { StateService } from '../../services/state.service'; @Component({ @@ -18,6 +18,9 @@ export class BlockchainComponent implements OnInit, OnDestroy { timeLtrSubscription: Subscription; timeLtr: boolean = this.stateService.timeLtr.value; ltrTransitionEnabled = false; + connectionStateSubscription: Subscription; + loadingTip: boolean = true; + connected: boolean = true; constructor( public stateService: StateService, @@ -28,10 +31,17 @@ export class BlockchainComponent implements OnInit, OnDestroy { this.timeLtrSubscription = this.stateService.timeLtr.subscribe((ltr) => { this.timeLtr = !!ltr; }); + this.connectionStateSubscription = this.stateService.connectionState$.subscribe(state => { + this.connected = (state === 2); + }) + firstValueFrom(this.stateService.chainTip$).then(tip => { + this.loadingTip = false; + }); } ngOnDestroy() { this.timeLtrSubscription.unsubscribe(); + this.connectionStateSubscription.unsubscribe(); } trackByPageFn(index: number, item: { index: number }) { diff --git a/frontend/src/app/components/start/start.component.ts b/frontend/src/app/components/start/start.component.ts index 28f9cf6aa..c7b8a83bc 100644 --- a/frontend/src/app/components/start/start.component.ts +++ b/frontend/src/app/components/start/start.component.ts @@ -21,6 +21,7 @@ export class StartComponent implements OnInit, OnDestroy { timeLtr: boolean = this.stateService.timeLtr.value; chainTipSubscription: Subscription; chainTip: number = -1; + tipIsSet: boolean = false; markBlockSubscription: Subscription; blockCounterSubscription: Subscription; @ViewChild('blockchainContainer') blockchainContainer: ElementRef; @@ -58,6 +59,7 @@ export class StartComponent implements OnInit, OnDestroy { }); this.chainTipSubscription = this.stateService.chainTip$.subscribe((height) => { this.chainTip = height; + this.tipIsSet = true; this.updatePages(); if (this.pendingMark != null) { this.scrollToBlock(this.pendingMark); @@ -66,7 +68,7 @@ export class StartComponent implements OnInit, OnDestroy { }); this.markBlockSubscription = this.stateService.markBlock$.subscribe((mark) => { if (mark?.blockHeight != null) { - if (this.chainTip >=0) { + if (this.tipIsSet) { if (!this.blockInViewport(mark.blockHeight)) { this.scrollToBlock(mark.blockHeight); } diff --git a/frontend/src/app/services/cache.service.ts b/frontend/src/app/services/cache.service.ts index be37164dd..15ef99859 100644 --- a/frontend/src/app/services/cache.service.ts +++ b/frontend/src/app/services/cache.service.ts @@ -62,7 +62,12 @@ export class CacheService { for (let i = 0; i < chunkSize; i++) { this.blockLoading[maxHeight - i] = true; } - const result = await firstValueFrom(this.apiService.getBlocks$(maxHeight)); + let result; + try { + result = await firstValueFrom(this.apiService.getBlocks$(maxHeight)); + } catch (e) { + console.log("failed to load blocks: ", e.message); + } for (let i = 0; i < chunkSize; i++) { delete this.blockLoading[maxHeight - i]; } From ee265be55e19aae9e722e61458c5811ec5f3387a Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 14 Feb 2023 12:51:41 -0600 Subject: [PATCH 0363/1466] Show skeleton loader for all blocks while offline --- .../blockchain-blocks/blockchain-blocks.component.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html index deb915f26..52805b750 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -2,7 +2,7 @@ [style.left]="static ? (offset || 0) + 'px' : null" *ngIf="static || (loadingBlocks$ | async) === false; else loadingBlocksTemplate">
    - +
    - +
    @@ -68,10 +68,10 @@ - +
    + [ngStyle]="emptyBlockStyles[i]">
    From c65674479abfbe56a54af9c271877d186d9639e4 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Thu, 23 Feb 2023 14:31:01 -0600 Subject: [PATCH 0364/1466] fix gaps in loading blockchain --- .../blockchain-blocks/blockchain-blocks.component.html | 2 +- .../blockchain-blocks/blockchain-blocks.component.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html index 52805b750..d5decd415 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -71,7 +71,7 @@
    + [ngStyle]="convertStyleForLoadingBlock(blockStyles[i])">
    diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts index 39f68c22e..3feaf6c2d 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.ts @@ -290,6 +290,13 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy { }; } + convertStyleForLoadingBlock(style) { + return { + ...style, + background: "#2d3348", + }; + } + getStyleForLoadingBlock(index: number, animateEnterFrom: number = 0) { const addLeft = animateEnterFrom || 0; From 6f68c1666ff04bb666b7e6a9546062e9fac5504a Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 09:55:39 +0900 Subject: [PATCH 0365/1466] Add border input in the qr code component --- frontend/src/app/components/qrcode/qrcode.component.html | 2 +- frontend/src/app/components/qrcode/qrcode.component.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/qrcode/qrcode.component.html b/frontend/src/app/components/qrcode/qrcode.component.html index d7886b907..56f32f42c 100644 --- a/frontend/src/app/components/qrcode/qrcode.component.html +++ b/frontend/src/app/components/qrcode/qrcode.component.html @@ -1,4 +1,4 @@
    - +
    diff --git a/frontend/src/app/components/qrcode/qrcode.component.ts b/frontend/src/app/components/qrcode/qrcode.component.ts index e8ebac904..dad7522c6 100644 --- a/frontend/src/app/components/qrcode/qrcode.component.ts +++ b/frontend/src/app/components/qrcode/qrcode.component.ts @@ -12,6 +12,7 @@ export class QrcodeComponent implements AfterViewInit { @Input() data: string; @Input() size = 125; @Input() imageUrl: string; + @Input() border = 0; @ViewChild('canvas') canvas: ElementRef; qrcodeObject: any; From 4d7c69dd733a6bdd4b69a6dcd97846d776724deb Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 10:41:17 +0900 Subject: [PATCH 0366/1466] Fix DB migration 54 breaking liquid --- backend/src/api/database-migration.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 4dc59a22d..6e4221857 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -86,7 +86,7 @@ class DatabaseMigration { try { await this.$migrateTableSchemaFromVersion(databaseSchemaVersion); if (databaseSchemaVersion === 0) { - logger.notice(`MIGRATIONS: OK. Database schema has been properly initialized to version ${DatabaseMigration.currentVersion} (latest version)`); + logger.notice(`MIGRATIONS: OK. Database schema has been properly initialized to version ${DatabaseMigration.currentVersion} (latest version)`); } else { logger.notice(`MIGRATIONS: OK. Database schema have been migrated from version ${databaseSchemaVersion} to ${DatabaseMigration.currentVersion} (latest version)`); } @@ -300,7 +300,7 @@ class DatabaseMigration { await this.$executeQuery('ALTER TABLE `lightning_stats` ADD med_base_fee_mtokens bigint(20) unsigned NOT NULL DEFAULT "0"'); await this.updateToSchemaVersion(27); } - + if (databaseSchemaVersion < 28 && isBitcoin === true) { if (config.LIGHTNING.ENABLED) { this.uniqueLog(logger.notice, `'lightning_stats' and 'node_stats' tables have been truncated.`); @@ -464,7 +464,7 @@ class DatabaseMigration { await this.$executeQuery('DROP TABLE IF EXISTS `transactions`'); await this.$executeQuery('DROP TABLE IF EXISTS `cpfp_clusters`'); await this.updateToSchemaVersion(52); - } catch(e) { + } catch (e) { logger.warn('' + (e instanceof Error ? e.message : e)); } } @@ -476,9 +476,11 @@ class DatabaseMigration { if (databaseSchemaVersion < 54) { this.uniqueLog(logger.notice, `'prices' table has been truncated`); - this.uniqueLog(logger.notice, `'blocks_prices' table has been truncated`); await this.$executeQuery(`TRUNCATE prices`); - await this.$executeQuery(`TRUNCATE blocks_prices`); + if (isBitcoin === true) { + this.uniqueLog(logger.notice, `'blocks_prices' table has been truncated`); + await this.$executeQuery(`TRUNCATE blocks_prices`); + } await this.updateToSchemaVersion(54); } } @@ -604,7 +606,7 @@ class DatabaseMigration { queries.push(`INSERT INTO state(name, number, string) VALUES ('last_hashrates_indexing', 0, NULL)`); } - if (version < 9 && isBitcoin === true) { + if (version < 9 && isBitcoin === true) { queries.push(`INSERT INTO state(name, number, string) VALUES ('last_weekly_hashrates_indexing', 0, NULL)`); } From b4d0e20d7545b382dfc8915a85041bc4f3ee6587 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 12:12:50 +0900 Subject: [PATCH 0367/1466] Only query historical price if we're running mempool BASE_MODULE --- frontend/src/app/services/price.service.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/services/price.service.ts b/frontend/src/app/services/price.service.ts index 8a93d9554..e3ec93c8b 100644 --- a/frontend/src/app/services/price.service.ts +++ b/frontend/src/app/services/price.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@angular/core'; import { map, Observable, of, share, shareReplay, tap } from 'rxjs'; import { ApiService } from './api.service'; +import { StateService } from './state.service'; // nodejs backend interfaces export interface ApiPrice { @@ -52,7 +53,8 @@ export class PriceService { }; constructor( - private apiService: ApiService + private apiService: ApiService, + private stateService: StateService ) { } @@ -68,6 +70,10 @@ export class PriceService { } getBlockPrice$(blockTimestamp: number, singlePrice = false): Observable { + if (this.stateService.env.BASE_MODULE !== 'mempool') { + return of(undefined); + } + const now = new Date().getTime() / 1000; /** From a26dc977ba0783bc6beb492741c2f1a007531e4e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 14:20:16 +0900 Subject: [PATCH 0368/1466] Hide new columns when screen width is too small --- .../top-nodes-per-capacity.component.html | 4 ++-- .../top-nodes-per-capacity.component.scss | 3 +++ .../top-nodes-per-channels.component.html | 6 +++--- .../top-nodes-per-channels.component.scss | 10 +++++----- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html index a9e30705e..3efbc8594 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html @@ -10,7 +10,7 @@
    - + @@ -28,7 +28,7 @@ - - + @@ -26,7 +26,7 @@ - diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss index ffde7c479..eba9afee9 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss @@ -44,8 +44,8 @@ tr, td, th { } } -.fiat { - width: 15%; - font-family: monospace; - font-size: 14px; -} +.geolocation { + @media (max-width: 991px) { + display: none !important; + } +} \ No newline at end of file From 7cee6df369533475c5ace2f043b25082f07115af Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 17:47:33 +0900 Subject: [PATCH 0369/1466] Remove console.log --- .../top-nodes-per-channels/top-nodes-per-channels.component.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts index 79a6eb28f..cd5796664 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts @@ -56,7 +56,6 @@ export class TopNodesPerChannels implements OnInit { subdivision: ranking.topByChannels[i].subdivision?.en, iso: ranking.topByChannels[i].iso_code, }; - console.log(ranking.topByChannels[i].geolocation); } return ranking.topByChannels; }) From 98e709b739ab95bad3f78358549393f3c1441a85 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 17:49:06 +0900 Subject: [PATCH 0370/1466] Remove monospace from fiat amount --- .../top-nodes-per-capacity.component.scss | 2 -- .../top-nodes-per-channels/top-nodes-per-channels.component.ts | 1 - 2 files changed, 3 deletions(-) diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss index 452122d8e..787f64f30 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss @@ -43,8 +43,6 @@ tr, td, th { .fiat { width: 15%; - font-family: monospace; - font-size: 14px; @media (max-width: 991px) { display: none !important; } diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts index cd5796664..62f461c6c 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts @@ -2,7 +2,6 @@ import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core import { map, Observable } from 'rxjs'; import { StateService } from 'src/app/services/state.service'; import { INodesRanking, ITopNodesPerChannels } from '../../../interfaces/node-api.interface'; -import { isMobile } from '../../../shared/common.utils'; import { GeolocationData } from '../../../shared/components/geolocation/geolocation.component'; import { LightningApiService } from '../../lightning-api.service'; From 92862939dace11804d366e48607b2ede15c49a29 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 20:25:28 +0900 Subject: [PATCH 0371/1466] Make sure we don't show more than 6 rows in channel ranking widget --- .../top-nodes-per-channels/top-nodes-per-channels.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts index 62f461c6c..ce6436ce3 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts @@ -56,7 +56,7 @@ export class TopNodesPerChannels implements OnInit { iso: ranking.topByChannels[i].iso_code, }; } - return ranking.topByChannels; + return ranking.topByChannels.slice(0, 6); }) ); } From b50e97357368c904c55a5f9c4a51c1267bc9969f Mon Sep 17 00:00:00 2001 From: wiz Date: Sat, 25 Feb 2023 12:14:07 +0900 Subject: [PATCH 0372/1466] ops: Enable CPFP indexing for mainnet --- production/mempool-config.mainnet.json | 1 + 1 file changed, 1 insertion(+) diff --git a/production/mempool-config.mainnet.json b/production/mempool-config.mainnet.json index 1258e62fb..658437edc 100644 --- a/production/mempool-config.mainnet.json +++ b/production/mempool-config.mainnet.json @@ -11,6 +11,7 @@ "INDEXING_BLOCKS_AMOUNT": -1, "BLOCKS_SUMMARIES_INDEXING": true, "AUDIT": true, + "CPFP_INDEXING": true, "ADVANCED_GBT_AUDIT": true, "ADVANCED_GBT_MEMPOOL": false, "USE_SECOND_NODE_FOR_MINFEE": true From 80e0ef8970d39617008c45487dfb91f099cf02fd Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 13:20:49 +0900 Subject: [PATCH 0373/1466] Improve responsiveness on single column layout --- .../top-nodes-per-capacity.component.scss | 9 ++++++--- .../top-nodes-per-channels.component.scss | 5 ++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss index 787f64f30..3547c447f 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss @@ -19,7 +19,7 @@ tr, td, th { .pool { width: 15%; - @media (max-width: 576px) { + @media (max-width: 575px) { width: 75%; } overflow: hidden; @@ -36,14 +36,17 @@ tr, td, th { .liquidity { width: 10%; - @media (max-width: 576px) { + @media (max-width: 575px) { width: 25%; } } .fiat { width: 15%; - @media (max-width: 991px) { + @media (min-width: 768px) and (max-width: 991px) { + display: none !important; + } + @media (max-width: 575px) { display: none !important; } } diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss index eba9afee9..a42599d69 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.scss @@ -45,7 +45,10 @@ tr, td, th { } .geolocation { - @media (max-width: 991px) { + @media (min-width: 768px) and (max-width: 991px) { + display: none !important; + } + @media (max-width: 575px) { display: none !important; } } \ No newline at end of file From 8df247626638347d65d83c34739acebaa738fdfc Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 13:38:09 +0900 Subject: [PATCH 0374/1466] Improve error handling on channel component --- .../lightning/channel/channel.component.html | 47 +++++++++---------- .../lightning/channel/channel.component.ts | 4 +- .../app/lightning/node/node.component.html | 23 +++++---- 3 files changed, 39 insertions(+), 35 deletions(-) diff --git a/frontend/src/app/lightning/channel/channel.component.html b/frontend/src/app/lightning/channel/channel.component.html index f52b85762..96af4ab67 100644 --- a/frontend/src/app/lightning/channel/channel.component.html +++ b/frontend/src/app/lightning/channel/channel.component.html @@ -1,25 +1,32 @@
    -
    Lightning channel
    -
    -

    {{ channel.short_id }}

    - - {{ channel.id }} - - -
    -
    - Inactive - Active - Closed - -
    + + +
    Lightning channel
    +
    +

    {{ channel.short_id }}

    + + {{ channel.id }} + + +
    +
    + Inactive + Active + Closed + +
    +
    +
    + No channel found for short id "{{ channel.short_id }}" +
    + -
    +
    @@ -65,7 +72,7 @@
    -
    +
    @@ -104,14 +111,6 @@
    - -
    - Error loading data. -

    - {{ error.status }}: {{ error.error }} -
    -
    -
    Lightning channel
    diff --git a/frontend/src/app/lightning/channel/channel.component.ts b/frontend/src/app/lightning/channel/channel.component.ts index 379e8a005..d57aa3f01 100644 --- a/frontend/src/app/lightning/channel/channel.component.ts +++ b/frontend/src/app/lightning/channel/channel.component.ts @@ -38,7 +38,9 @@ export class ChannelComponent implements OnInit { }), catchError((err) => { this.error = err; - return of(null); + return [{ + short_id: params.get('short_id') + }]; }) ); }), diff --git a/frontend/src/app/lightning/node/node.component.html b/frontend/src/app/lightning/node/node.component.html index 575614c10..1519eb1da 100644 --- a/frontend/src/app/lightning/node/node.component.html +++ b/frontend/src/app/lightning/node/node.component.html @@ -1,15 +1,18 @@
    -
    Lightning node
    -
    -

    {{ node.alias }}

    - - - - - + + +
    Lightning node
    +
    +

    {{ node.alias }}

    + + + + + + - -
    +
    +
    From 9a246c68de699675d3ddead751ef8d5c23d1ae57 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 13:43:48 +0900 Subject: [PATCH 0375/1466] Center wrapping error message on mobile --- frontend/src/app/lightning/channel/channel.component.html | 2 +- frontend/src/app/lightning/node/node.component.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/lightning/channel/channel.component.html b/frontend/src/app/lightning/channel/channel.component.html index 96af4ab67..951cb8090 100644 --- a/frontend/src/app/lightning/channel/channel.component.html +++ b/frontend/src/app/lightning/channel/channel.component.html @@ -20,7 +20,7 @@
    - No channel found for short id "{{ channel.short_id }}" + No channel found for short id "{{ channel.short_id }}"
    - No node found for public key "{{ node.public_key | shortenString : 12}}" + No node found for public key "{{ node.public_key | shortenString : 12}}"
    From c44896f53e46a7725ced8e9239d7cce9580bd337 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 16 Feb 2023 15:36:16 +0900 Subject: [PATCH 0376/1466] Get blocks data set by bulk (non indexed) --- backend/src/api/bitcoin/bitcoin.routes.ts | 28 +++++++++++ backend/src/api/blocks.ts | 58 ++++++++++++++++++++++- backend/src/rpc-api/commands.ts | 3 +- 3 files changed, 87 insertions(+), 2 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index ea8154206..0ff30376c 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -95,6 +95,8 @@ class BitcoinRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash/summary', this.getStrippedBlockTransactions) .get(config.MEMPOOL.API_URL_PREFIX + 'block/:hash/audit-summary', this.getBlockAuditSummary) .post(config.MEMPOOL.API_URL_PREFIX + 'psbt/addparents', this.postPsbtCompletion) + .get(config.MEMPOOL.API_URL_PREFIX + 'blocks-bulk/:from', this.getBlocksByBulk.bind(this)) + .get(config.MEMPOOL.API_URL_PREFIX + 'blocks-bulk/:from/:to', this.getBlocksByBulk.bind(this)) ; if (config.MEMPOOL.BACKEND !== 'esplora') { @@ -402,6 +404,32 @@ class BitcoinRoutes { } } + private async getBlocksByBulk(req: Request, res: Response) { + try { + if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { // Liquid, Bisq - Not implemented + return res.status(404).send(`Not implemented`); + } + + const from = parseInt(req.params.from, 10); + if (!from) { + return res.status(400).send(`Parameter 'from' must be a block height (integer)`); + } + const to = req.params.to === undefined ? await bitcoinApi.$getBlockHeightTip() : parseInt(req.params.to, 10); + if (!to) { + return res.status(400).send(`Parameter 'to' must be a block height (integer)`); + } + if (from > to) { + return res.status(400).send(`Parameter 'to' must be a higher block height than 'from'`); + } + + res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString()); + res.json(await blocks.$getBlocksByBulk(from, to)); + + } catch (e) { + res.status(500).send(e instanceof Error ? e.message : e); + } + } + private async getLegacyBlocks(req: Request, res: Response) { try { const returnBlocks: IEsploraApi.Block[] = []; diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index d110186f5..5c8884c71 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -688,7 +688,6 @@ class Blocks { } public async $getBlocks(fromHeight?: number, limit: number = 15): Promise { - let currentHeight = fromHeight !== undefined ? fromHeight : this.currentBlockHeight; if (currentHeight > this.currentBlockHeight) { limit -= currentHeight - this.currentBlockHeight; @@ -728,6 +727,63 @@ class Blocks { return returnBlocks; } + public async $getBlocksByBulk(start: number, end: number) { + start = Math.max(1, start); + + const blocks: any[] = []; + for (let i = end; i >= start; --i) { + const blockHash = await bitcoinApi.$getBlockHash(i); + const coreBlock = await bitcoinClient.getBlock(blockHash); + const electrsBlock = await bitcoinApi.$getBlock(blockHash); + const txs = await this.$getTransactionsExtended(blockHash, i, true); + const stats = await bitcoinClient.getBlockStats(blockHash); + const header = await bitcoinClient.getBlockHeader(blockHash, false); + const txoutset = await bitcoinClient.getTxoutSetinfo('none', i); + + const formatted = { + blockhash: coreBlock.id, + blockheight: coreBlock.height, + prev_blockhash: coreBlock.previousblockhash, + timestamp: coreBlock.timestamp, + median_timestamp: coreBlock.mediantime, + // @ts-ignore + blocktime: coreBlock.time, + orphaned: null, + header: header, + version: coreBlock.version, + difficulty: coreBlock.difficulty, + merkle_root: coreBlock.merkle_root, + bits: coreBlock.bits, + nonce: coreBlock.nonce, + coinbase_scriptsig: txs[0].vin[0].scriptsig, + coinbase_address: txs[0].vout[0].scriptpubkey_address, + coinbase_signature: txs[0].vout[0].scriptpubkey_asm, + size: coreBlock.size, + virtual_size: coreBlock.weight / 4.0, + weight: coreBlock.weight, + utxoset_size: txoutset.txouts, + utxoset_change: stats.utxo_increase, + total_txs: coreBlock.tx_count, + avg_tx_size: Math.round(stats.total_size / stats.txs * 100) * 0.01, + total_inputs: stats.ins, + total_outputs: stats.outs, + total_input_amt: Math.round(txoutset.block_info.prevout_spent * 100000000), + total_output_amt: stats.total_out, + block_subsidy: txs[0].vout.reduce((acc, curr) => acc + curr.value, 0), + total_fee: stats.totalfee, + avg_feerate: stats.avgfeerate, + feerate_percentiles: [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(), + avg_fee: stats.avgfee, + fee_percentiles: null, + segwit_total_txs: stats.swtxs, + segwit_total_size: stats.swtotal_size, + segwit_total_weight: stats.swtotal_weight, + }; + blocks.push(formatted); + } + return blocks; + } + public async $getBlockAuditSummary(hash: string): Promise { let summary; if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { diff --git a/backend/src/rpc-api/commands.ts b/backend/src/rpc-api/commands.ts index ea9bd7bf0..5905a2bb6 100644 --- a/backend/src/rpc-api/commands.ts +++ b/backend/src/rpc-api/commands.ts @@ -88,5 +88,6 @@ module.exports = { verifyTxOutProof: 'verifytxoutproof', // bitcoind v0.11.0+ walletLock: 'walletlock', walletPassphrase: 'walletpassphrase', - walletPassphraseChange: 'walletpassphrasechange' + walletPassphraseChange: 'walletpassphrasechange', + getTxoutSetinfo: 'gettxoutsetinfo' } From 73f76474dd7fa0d8f95e8fd02af8c923b6b7fa86 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 17 Feb 2023 21:21:21 +0900 Subject: [PATCH 0377/1466] Implemented coinstatsindex indexing --- backend/src/api/bitcoin/bitcoin.routes.ts | 7 +- .../src/api/bitcoin/esplora-api.interface.ts | 1 + backend/src/api/blocks.ts | 158 ++++++++++-------- backend/src/api/database-migration.ts | 29 +++- backend/src/api/mining/mining.ts | 41 ++++- backend/src/api/transaction-utils.ts | 1 + backend/src/index.ts | 1 + backend/src/indexer.ts | 76 ++++++++- backend/src/mempool.interfaces.ts | 21 +++ backend/src/repositories/BlocksRepository.ts | 107 +++++++++--- backend/src/rpc-api/commands.ts | 5 +- 11 files changed, 330 insertions(+), 117 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 0ff30376c..6d145e854 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -407,7 +407,10 @@ class BitcoinRoutes { private async getBlocksByBulk(req: Request, res: Response) { try { if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { // Liquid, Bisq - Not implemented - return res.status(404).send(`Not implemented`); + return res.status(404).send(`This API is only available for Bitcoin networks`); + } + if (!Common.indexingEnabled()) { + return res.status(404).send(`Indexing is required for this API`); } const from = parseInt(req.params.from, 10); @@ -423,7 +426,7 @@ class BitcoinRoutes { } res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString()); - res.json(await blocks.$getBlocksByBulk(from, to)); + res.json(await blocks.$getBlocksBetweenHeight(from, to)); } catch (e) { res.status(500).send(e instanceof Error ? e.message : e); diff --git a/backend/src/api/bitcoin/esplora-api.interface.ts b/backend/src/api/bitcoin/esplora-api.interface.ts index 39f8cfd6f..eaf6476f4 100644 --- a/backend/src/api/bitcoin/esplora-api.interface.ts +++ b/backend/src/api/bitcoin/esplora-api.interface.ts @@ -88,6 +88,7 @@ export namespace IEsploraApi { size: number; weight: number; previousblockhash: string; + medianTime?: number; } export interface Address { diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 5c8884c71..d950a9bd3 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -165,33 +165,75 @@ class Blocks { * @returns BlockExtended */ private async $getBlockExtended(block: IEsploraApi.Block, transactions: TransactionExtended[]): Promise { - const blockExtended: BlockExtended = Object.assign({ extras: {} }, block); - blockExtended.extras.reward = transactions[0].vout.reduce((acc, curr) => acc + curr.value, 0); - blockExtended.extras.coinbaseTx = transactionUtils.stripCoinbaseTransaction(transactions[0]); - blockExtended.extras.coinbaseRaw = blockExtended.extras.coinbaseTx.vin[0].scriptsig; - blockExtended.extras.usd = priceUpdater.latestPrices.USD; + const blk: BlockExtended = Object.assign({ extras: {} }, block); + blk.extras.reward = transactions[0].vout.reduce((acc, curr) => acc + curr.value, 0); + blk.extras.coinbaseTx = transactionUtils.stripCoinbaseTransaction(transactions[0]); + blk.extras.coinbaseRaw = blk.extras.coinbaseTx.vin[0].scriptsig; + blk.extras.usd = priceUpdater.latestPrices.USD; if (block.height === 0) { - blockExtended.extras.medianFee = 0; // 50th percentiles - blockExtended.extras.feeRange = [0, 0, 0, 0, 0, 0, 0]; - blockExtended.extras.totalFees = 0; - blockExtended.extras.avgFee = 0; - blockExtended.extras.avgFeeRate = 0; + blk.extras.medianFee = 0; // 50th percentiles + blk.extras.feeRange = [0, 0, 0, 0, 0, 0, 0]; + blk.extras.totalFees = 0; + blk.extras.avgFee = 0; + blk.extras.avgFeeRate = 0; + blk.extras.utxoSetChange = 0; + blk.extras.avgTxSize = 0; + blk.extras.totalInputs = 0; + blk.extras.totalOutputs = 1; + blk.extras.totalOutputAmt = 0; + blk.extras.segwitTotalTxs = 0; + blk.extras.segwitTotalSize = 0; + blk.extras.segwitTotalWeight = 0; } else { - const stats = await bitcoinClient.getBlockStats(block.id, [ - 'feerate_percentiles', 'minfeerate', 'maxfeerate', 'totalfee', 'avgfee', 'avgfeerate' - ]); - blockExtended.extras.medianFee = stats.feerate_percentiles[2]; // 50th percentiles - blockExtended.extras.feeRange = [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(); - blockExtended.extras.totalFees = stats.totalfee; - blockExtended.extras.avgFee = stats.avgfee; - blockExtended.extras.avgFeeRate = stats.avgfeerate; + const stats = await bitcoinClient.getBlockStats(block.id); + blk.extras.medianFee = stats.feerate_percentiles[2]; // 50th percentiles + blk.extras.feeRange = [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(); + blk.extras.totalFees = stats.totalfee; + blk.extras.avgFee = stats.avgfee; + blk.extras.avgFeeRate = stats.avgfeerate; + blk.extras.utxoSetChange = stats.utxo_increase; + blk.extras.avgTxSize = Math.round(stats.total_size / stats.txs * 100) * 0.01; + blk.extras.totalInputs = stats.ins; + blk.extras.totalOutputs = stats.outs; + blk.extras.totalOutputAmt = stats.total_out; + blk.extras.segwitTotalTxs = stats.swtxs; + blk.extras.segwitTotalSize = stats.swtotal_size; + blk.extras.segwitTotalWeight = stats.swtotal_weight; + } + + blk.extras.feePercentiles = [], // TODO + blk.extras.medianFeeAmt = 0; // TODO + blk.extras.medianTimestamp = block.medianTime; // TODO + blk.extras.blockTime = 0; // TODO + blk.extras.orphaned = false; // TODO + + blk.extras.virtualSize = block.weight / 4.0; + if (blk.extras.coinbaseTx.vout.length > 0) { + blk.extras.coinbaseAddress = blk.extras.coinbaseTx.vout[0].scriptpubkey_address ?? null; + blk.extras.coinbaseSignature = blk.extras.coinbaseTx.vout[0].scriptpubkey_asm ?? null; + } else { + blk.extras.coinbaseAddress = null; + blk.extras.coinbaseSignature = null; + } + + const header = await bitcoinClient.getBlockHeader(block.id, false); + blk.extras.header = header; + + const coinStatsIndex = indexer.isCoreIndexReady('coinstatsindex'); + if (coinStatsIndex !== null && coinStatsIndex.best_block_height >= block.height) { + const txoutset = await bitcoinClient.getTxoutSetinfo('none', block.height); + blk.extras.utxoSetSize = txoutset.txouts, + blk.extras.totalInputAmt = Math.round(txoutset.block_info.prevout_spent * 100000000); + } else { + blk.extras.utxoSetSize = null; + blk.extras.totalInputAmt = null; } if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { let pool: PoolTag; - if (blockExtended.extras?.coinbaseTx !== undefined) { - pool = await this.$findBlockMiner(blockExtended.extras?.coinbaseTx); + if (blk.extras?.coinbaseTx !== undefined) { + pool = await this.$findBlockMiner(blk.extras?.coinbaseTx); } else { if (config.DATABASE.ENABLED === true) { pool = await poolsRepository.$getUnknownPool(); @@ -201,10 +243,10 @@ class Blocks { } if (!pool) { // We should never have this situation in practise - logger.warn(`Cannot assign pool to block ${blockExtended.height} and 'unknown' pool does not exist. ` + + logger.warn(`Cannot assign pool to block ${blk.height} and 'unknown' pool does not exist. ` + `Check your "pools" table entries`); } else { - blockExtended.extras.pool = { + blk.extras.pool = { id: pool.id, name: pool.name, slug: pool.slug, @@ -214,12 +256,12 @@ class Blocks { if (config.MEMPOOL.AUDIT) { const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(block.id); if (auditScore != null) { - blockExtended.extras.matchRate = auditScore.matchRate; + blk.extras.matchRate = auditScore.matchRate; } } } - return blockExtended; + return blk; } /** @@ -727,60 +769,28 @@ class Blocks { return returnBlocks; } - public async $getBlocksByBulk(start: number, end: number) { - start = Math.max(1, start); + /** + * Used for bulk block data query + * + * @param fromHeight + * @param toHeight + */ + public async $getBlocksBetweenHeight(fromHeight: number, toHeight: number): Promise { + if (!Common.indexingEnabled()) { + return []; + } const blocks: any[] = []; - for (let i = end; i >= start; --i) { - const blockHash = await bitcoinApi.$getBlockHash(i); - const coreBlock = await bitcoinClient.getBlock(blockHash); - const electrsBlock = await bitcoinApi.$getBlock(blockHash); - const txs = await this.$getTransactionsExtended(blockHash, i, true); - const stats = await bitcoinClient.getBlockStats(blockHash); - const header = await bitcoinClient.getBlockHeader(blockHash, false); - const txoutset = await bitcoinClient.getTxoutSetinfo('none', i); - const formatted = { - blockhash: coreBlock.id, - blockheight: coreBlock.height, - prev_blockhash: coreBlock.previousblockhash, - timestamp: coreBlock.timestamp, - median_timestamp: coreBlock.mediantime, - // @ts-ignore - blocktime: coreBlock.time, - orphaned: null, - header: header, - version: coreBlock.version, - difficulty: coreBlock.difficulty, - merkle_root: coreBlock.merkle_root, - bits: coreBlock.bits, - nonce: coreBlock.nonce, - coinbase_scriptsig: txs[0].vin[0].scriptsig, - coinbase_address: txs[0].vout[0].scriptpubkey_address, - coinbase_signature: txs[0].vout[0].scriptpubkey_asm, - size: coreBlock.size, - virtual_size: coreBlock.weight / 4.0, - weight: coreBlock.weight, - utxoset_size: txoutset.txouts, - utxoset_change: stats.utxo_increase, - total_txs: coreBlock.tx_count, - avg_tx_size: Math.round(stats.total_size / stats.txs * 100) * 0.01, - total_inputs: stats.ins, - total_outputs: stats.outs, - total_input_amt: Math.round(txoutset.block_info.prevout_spent * 100000000), - total_output_amt: stats.total_out, - block_subsidy: txs[0].vout.reduce((acc, curr) => acc + curr.value, 0), - total_fee: stats.totalfee, - avg_feerate: stats.avgfeerate, - feerate_percentiles: [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(), - avg_fee: stats.avgfee, - fee_percentiles: null, - segwit_total_txs: stats.swtxs, - segwit_total_size: stats.swtotal_size, - segwit_total_weight: stats.swtotal_weight, - }; - blocks.push(formatted); + while (fromHeight <= toHeight) { + let block = await blocksRepository.$getBlockByHeight(fromHeight); + if (!block) { + block = await this.$indexBlock(fromHeight); + } + blocks.push(block); + fromHeight++; } + return blocks; } diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 6e4221857..2c6adfd1b 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository'; import { RowDataPacket } from 'mysql2'; class DatabaseMigration { - private static currentVersion = 54; + private static currentVersion = 55; private queryTimeout = 3600_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -483,6 +483,11 @@ class DatabaseMigration { } await this.updateToSchemaVersion(54); } + + if (databaseSchemaVersion < 55) { + await this.$executeQuery(this.getAdditionalBlocksDataQuery()); + await this.updateToSchemaVersion(55); + } } /** @@ -756,6 +761,28 @@ class DatabaseMigration { ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; } + private getAdditionalBlocksDataQuery(): string { + return `ALTER TABLE blocks + ADD median_timestamp timestamp NOT NULL, + ADD block_time int unsigned NOT NULL, + ADD coinbase_address varchar(100) NULL, + ADD coinbase_signature varchar(500) NULL, + ADD avg_tx_size double unsigned NOT NULL, + ADD total_inputs int unsigned NOT NULL, + ADD total_outputs int unsigned NOT NULL, + ADD total_output_amt bigint unsigned NOT NULL, + ADD fee_percentiles longtext NULL, + ADD median_fee_amt int unsigned NOT NULL, + ADD segwit_total_txs int unsigned NOT NULL, + ADD segwit_total_size int unsigned NOT NULL, + ADD segwit_total_weight int unsigned NOT NULL, + ADD header varchar(160) NOT NULL, + ADD utxoset_change int NOT NULL, + ADD utxoset_size int unsigned NULL, + ADD total_input_amt bigint unsigned NULL + `; + } + private getCreateDailyStatsTableQuery(): string { return `CREATE TABLE IF NOT EXISTS hashrates ( hashrate_timestamp timestamp NOT NULL, diff --git a/backend/src/api/mining/mining.ts b/backend/src/api/mining/mining.ts index edcb5b2e5..f33a68dcb 100644 --- a/backend/src/api/mining/mining.ts +++ b/backend/src/api/mining/mining.ts @@ -172,7 +172,7 @@ class Mining { } /** - * [INDEXING] Generate weekly mining pool hashrate history + * Generate weekly mining pool hashrate history */ public async $generatePoolHashrateHistory(): Promise { const now = new Date(); @@ -279,7 +279,7 @@ class Mining { } /** - * [INDEXING] Generate daily hashrate data + * Generate daily hashrate data */ public async $generateNetworkHashrateHistory(): Promise { // We only run this once a day around midnight @@ -459,7 +459,7 @@ class Mining { /** * Create a link between blocks and the latest price at when they were mined */ - public async $indexBlockPrices() { + public async $indexBlockPrices(): Promise { if (this.blocksPriceIndexingRunning === true) { return; } @@ -520,6 +520,41 @@ class Mining { this.blocksPriceIndexingRunning = false; } + /** + * Index core coinstatsindex + */ + public async $indexCoinStatsIndex(): Promise { + let timer = new Date().getTime() / 1000; + let totalIndexed = 0; + + const blockchainInfo = await bitcoinClient.getBlockchainInfo(); + let currentBlockHeight = blockchainInfo.blocks; + + while (currentBlockHeight > 0) { + const indexedBlocks = await BlocksRepository.$getBlocksMissingCoinStatsIndex( + currentBlockHeight, currentBlockHeight - 10000); + + for (const block of indexedBlocks) { + const txoutset = await bitcoinClient.getTxoutSetinfo('none', block.height); + await BlocksRepository.$updateCoinStatsIndexData(block.hash, txoutset.txouts, + Math.round(txoutset.block_info.prevout_spent * 100000000)); + ++totalIndexed; + + const elapsedSeconds = Math.max(1, new Date().getTime() / 1000 - timer); + if (elapsedSeconds > 5) { + logger.info(`Indexing coinstatsindex data for block #${block.height}. Indexed ${totalIndexed} blocks.`, logger.tags.mining); + timer = new Date().getTime() / 1000; + } + } + + currentBlockHeight -= 10000; + } + + if (totalIndexed) { + logger.info(`Indexing missing coinstatsindex data completed`, logger.tags.mining); + } + } + private getDateMidnight(date: Date): Date { date.setUTCHours(0); date.setUTCMinutes(0); diff --git a/backend/src/api/transaction-utils.ts b/backend/src/api/transaction-utils.ts index fb5aeea42..fb69419fc 100644 --- a/backend/src/api/transaction-utils.ts +++ b/backend/src/api/transaction-utils.ts @@ -14,6 +14,7 @@ class TransactionUtils { vout: tx.vout .map((vout) => ({ scriptpubkey_address: vout.scriptpubkey_address, + scriptpubkey_asm: vout.scriptpubkey_asm, value: vout.value })) .filter((vout) => vout.value) diff --git a/backend/src/index.ts b/backend/src/index.ts index 919c039c3..d8d46fc9f 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -36,6 +36,7 @@ import bitcoinRoutes from './api/bitcoin/bitcoin.routes'; import fundingTxFetcher from './tasks/lightning/sync-tasks/funding-tx-fetcher'; import forensicsService from './tasks/lightning/forensics.service'; import priceUpdater from './tasks/price-updater'; +import mining from './api/mining/mining'; import { AxiosError } from 'axios'; class Server { diff --git a/backend/src/indexer.ts b/backend/src/indexer.ts index 22f3ce319..41c8024e0 100644 --- a/backend/src/indexer.ts +++ b/backend/src/indexer.ts @@ -8,18 +8,67 @@ import bitcoinClient from './api/bitcoin/bitcoin-client'; import priceUpdater from './tasks/price-updater'; import PricesRepository from './repositories/PricesRepository'; +export interface CoreIndex { + name: string; + synced: boolean; + best_block_height: number; +} + class Indexer { runIndexer = true; indexerRunning = false; tasksRunning: string[] = []; + coreIndexes: CoreIndex[] = []; - public reindex() { + /** + * Check which core index is available for indexing + */ + public async checkAvailableCoreIndexes(): Promise { + const updatedCoreIndexes: CoreIndex[] = []; + + const indexes: any = await bitcoinClient.getIndexInfo(); + for (const indexName in indexes) { + const newState = { + name: indexName, + synced: indexes[indexName].synced, + best_block_height: indexes[indexName].best_block_height, + }; + logger.info(`Core index '${indexName}' is ${indexes[indexName].synced ? 'synced' : 'not synced'}. Best block height is ${indexes[indexName].best_block_height}`); + updatedCoreIndexes.push(newState); + + if (indexName === 'coinstatsindex' && newState.synced === true) { + const previousState = this.isCoreIndexReady('coinstatsindex'); + // if (!previousState || previousState.synced === false) { + this.runSingleTask('coinStatsIndex'); + // } + } + } + + this.coreIndexes = updatedCoreIndexes; + } + + /** + * Return the best block height if a core index is available, or 0 if not + * + * @param name + * @returns + */ + public isCoreIndexReady(name: string): CoreIndex | null { + for (const index of this.coreIndexes) { + if (index.name === name && index.synced === true) { + return index; + } + } + return null; + } + + public reindex(): void { if (Common.indexingEnabled()) { this.runIndexer = true; } } - public async runSingleTask(task: 'blocksPrices') { + public async runSingleTask(task: 'blocksPrices' | 'coinStatsIndex'): Promise { if (!Common.indexingEnabled()) { return; } @@ -28,20 +77,27 @@ class Indexer { this.tasksRunning.push(task); const lastestPriceId = await PricesRepository.$getLatestPriceId(); if (priceUpdater.historyInserted === false || lastestPriceId === null) { - logger.debug(`Blocks prices indexer is waiting for the price updater to complete`) + logger.debug(`Blocks prices indexer is waiting for the price updater to complete`); setTimeout(() => { - this.tasksRunning = this.tasksRunning.filter(runningTask => runningTask != task) + this.tasksRunning = this.tasksRunning.filter(runningTask => runningTask !== task); this.runSingleTask('blocksPrices'); }, 10000); } else { - logger.debug(`Blocks prices indexer will run now`) + logger.debug(`Blocks prices indexer will run now`); await mining.$indexBlockPrices(); - this.tasksRunning = this.tasksRunning.filter(runningTask => runningTask != task) + this.tasksRunning = this.tasksRunning.filter(runningTask => runningTask !== task); } } + + if (task === 'coinStatsIndex' && !this.tasksRunning.includes(task)) { + this.tasksRunning.push(task); + logger.debug(`Indexing coinStatsIndex now`); + await mining.$indexCoinStatsIndex(); + this.tasksRunning = this.tasksRunning.filter(runningTask => runningTask !== task); + } } - public async $run() { + public async $run(): Promise { if (!Common.indexingEnabled() || this.runIndexer === false || this.indexerRunning === true || mempool.hasPriority() ) { @@ -57,7 +113,9 @@ class Indexer { this.runIndexer = false; this.indexerRunning = true; - logger.debug(`Running mining indexer`); + logger.info(`Running mining indexer`); + + await this.checkAvailableCoreIndexes(); try { await priceUpdater.$run(); @@ -93,7 +151,7 @@ class Indexer { setTimeout(() => this.reindex(), runEvery); } - async $resetHashratesIndexingState() { + async $resetHashratesIndexingState(): Promise { try { await HashratesRepository.$setLatestRun('last_hashrates_indexing', 0); await HashratesRepository.$setLatestRun('last_weekly_hashrates_indexing', 0); diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index 6b258c173..a1a9e1687 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -64,6 +64,7 @@ interface VinStrippedToScriptsig { interface VoutStrippedToScriptPubkey { scriptpubkey_address: string | undefined; + scriptpubkey_asm: string | undefined; value: number; } @@ -160,6 +161,26 @@ export interface BlockExtension { avgFeeRate?: number; coinbaseRaw?: string; usd?: number | null; + medianTimestamp?: number; + blockTime?: number; + orphaned?: boolean; + coinbaseAddress?: string | null; + coinbaseSignature?: string | null; + virtualSize?: number; + avgTxSize?: number; + totalInputs?: number; + totalOutputs?: number; + totalOutputAmt?: number; + medianFeeAmt?: number; + feePercentiles?: number[], + segwitTotalTxs?: number; + segwitTotalSize?: number; + segwitTotalWeight?: number; + header?: string; + utxoSetChange?: number; + // Requires coinstatsindex, will be set to NULL otherwise + utxoSetSize?: number | null; + totalInputAmt?: number | null; } export interface BlockExtended extends IEsploraApi.Block { diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index df98719b9..baaea38d9 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -18,17 +18,27 @@ class BlocksRepository { public async $saveBlockInDatabase(block: BlockExtended) { try { const query = `INSERT INTO blocks( - height, hash, blockTimestamp, size, - weight, tx_count, coinbase_raw, difficulty, - pool_id, fees, fee_span, median_fee, - reward, version, bits, nonce, - merkle_root, previous_block_hash, avg_fee, avg_fee_rate + height, hash, blockTimestamp, size, + weight, tx_count, coinbase_raw, difficulty, + pool_id, fees, fee_span, median_fee, + reward, version, bits, nonce, + merkle_root, previous_block_hash, avg_fee, avg_fee_rate, + median_timestamp, block_time, header, coinbase_address, + coinbase_signature, utxoset_size, utxoset_change, avg_tx_size, + total_inputs, total_outputs, total_input_amt, total_output_amt, + fee_percentiles, segwit_total_txs, segwit_total_size, segwit_total_weight, + median_fee_amt ) VALUE ( ?, ?, FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, - ?, ?, ?, ? + ?, ?, ?, ?, + ?, ?, ?, ?, + ?, ?, ?, ?, + ?, ?, ?, ?, + ?, ?, ?, ?, + ? )`; const params: any[] = [ @@ -52,6 +62,23 @@ class BlocksRepository { block.previousblockhash, block.extras.avgFee, block.extras.avgFeeRate, + block.extras.medianTimestamp, + block.extras.blockTime, + block.extras.header, + block.extras.coinbaseAddress, + block.extras.coinbaseSignature, + block.extras.utxoSetSize, + block.extras.utxoSetChange, + block.extras.avgTxSize, + block.extras.totalInputs, + block.extras.totalOutputs, + block.extras.totalInputAmt, + block.extras.totalOutputAmt, + JSON.stringify(block.extras.feePercentiles), + block.extras.segwitTotalTxs, + block.extras.segwitTotalSize, + block.extras.segwitTotalWeight, + block.extras.medianFeeAmt, ]; await DB.query(query, params); @@ -65,6 +92,33 @@ class BlocksRepository { } } + /** + * Save newly indexed data from core coinstatsindex + * + * @param utxoSetSize + * @param totalInputAmt + */ + public async $updateCoinStatsIndexData(blockHash: string, utxoSetSize: number, + totalInputAmt: number + ) : Promise { + try { + const query = ` + UPDATE blocks + SET utxoset_size = ?, total_input_amt = ? + WHERE hash = ? + `; + const params: any[] = [ + utxoSetSize, + totalInputAmt, + blockHash + ]; + await DB.query(query, params); + } catch (e: any) { + logger.err('Cannot update indexed block coinstatsindex. Reason: ' + (e instanceof Error ? e.message : e)); + throw e; + } + } + /** * Get all block height that have not been indexed between [startHeight, endHeight] */ @@ -310,32 +364,16 @@ class BlocksRepository { public async $getBlockByHeight(height: number): Promise { try { const [rows]: any[] = await DB.query(`SELECT - blocks.height, - hash, + blocks.*, hash as id, UNIX_TIMESTAMP(blocks.blockTimestamp) as blockTimestamp, - size, - weight, - tx_count, - coinbase_raw, - difficulty, pools.id as pool_id, pools.name as pool_name, pools.link as pool_link, pools.slug as pool_slug, pools.addresses as pool_addresses, pools.regexes as pool_regexes, - fees, - fee_span, - median_fee, - reward, - version, - bits, - nonce, - merkle_root, - previous_block_hash as previousblockhash, - avg_fee, - avg_fee_rate + previous_block_hash as previousblockhash FROM blocks JOIN pools ON blocks.pool_id = pools.id WHERE blocks.height = ${height} @@ -694,7 +732,6 @@ class BlocksRepository { logger.err('Cannot fetch CPFP unindexed blocks. Reason: ' + (e instanceof Error ? e.message : e)); throw e; } - return []; } /** @@ -741,7 +778,7 @@ class BlocksRepository { try { let query = `INSERT INTO blocks_prices(height, price_id) VALUES`; for (const price of blockPrices) { - query += ` (${price.height}, ${price.priceId}),` + query += ` (${price.height}, ${price.priceId}),`; } query = query.slice(0, -1); await DB.query(query); @@ -754,6 +791,24 @@ class BlocksRepository { } } } + + /** + * Get all indexed blocsk with missing coinstatsindex data + */ + public async $getBlocksMissingCoinStatsIndex(maxHeight: number, minHeight: number): Promise { + try { + const [blocks] = await DB.query(` + SELECT height, hash + FROM blocks + WHERE height >= ${minHeight} AND height <= ${maxHeight} AND + (utxoset_size IS NULL OR total_input_amt IS NULL) + `); + return blocks; + } catch (e) { + logger.err(`Cannot get blocks with missing coinstatsindex. Reason: ` + (e instanceof Error ? e.message : e)); + throw e; + } + } } export default new BlocksRepository(); diff --git a/backend/src/rpc-api/commands.ts b/backend/src/rpc-api/commands.ts index 5905a2bb6..78f5e12f4 100644 --- a/backend/src/rpc-api/commands.ts +++ b/backend/src/rpc-api/commands.ts @@ -89,5 +89,6 @@ module.exports = { walletLock: 'walletlock', walletPassphrase: 'walletpassphrase', walletPassphraseChange: 'walletpassphrasechange', - getTxoutSetinfo: 'gettxoutsetinfo' -} + getTxoutSetinfo: 'gettxoutsetinfo', + getIndexInfo: 'getindexinfo', +}; From 8612dd2d73cd173d02e8d01d640ddfb8c89f74c1 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 18 Feb 2023 08:28:59 +0900 Subject: [PATCH 0378/1466] Remove unescessary data from the blocks-bulk API --- backend/src/api/blocks.ts | 10 +++++++++- backend/src/repositories/BlocksRepository.ts | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index d950a9bd3..9c1c1d05b 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -783,10 +783,18 @@ class Blocks { const blocks: any[] = []; while (fromHeight <= toHeight) { - let block = await blocksRepository.$getBlockByHeight(fromHeight); + let block: any = await blocksRepository.$getBlockByHeight(fromHeight); if (!block) { block = await this.$indexBlock(fromHeight); } + + delete(block.hash); + delete(block.previous_block_hash); + delete(block.pool_name); + delete(block.pool_link); + delete(block.pool_addresses); + delete(block.pool_regexes); + blocks.push(block); fromHeight++; } diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index baaea38d9..cc6fdeb08 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -384,6 +384,7 @@ class BlocksRepository { } rows[0].fee_span = JSON.parse(rows[0].fee_span); + rows[0].fee_percentiles = JSON.parse(rows[0].fee_percentiles); return rows[0]; } catch (e) { logger.err(`Cannot get indexed block ${height}. Reason: ` + (e instanceof Error ? e.message : e)); From 8f716a1d8c7e5eeb4370e36119cc2446b37355b5 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 18 Feb 2023 08:42:38 +0900 Subject: [PATCH 0379/1466] Fix median timestamp field - Fix reponse format when block is indexed on the fly --- backend/src/api/blocks.ts | 9 +++++++-- backend/src/repositories/BlocksRepository.ts | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 9c1c1d05b..006d5f055 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -170,6 +170,7 @@ class Blocks { blk.extras.coinbaseTx = transactionUtils.stripCoinbaseTransaction(transactions[0]); blk.extras.coinbaseRaw = blk.extras.coinbaseTx.vin[0].scriptsig; blk.extras.usd = priceUpdater.latestPrices.USD; + blk.extras.medianTimestamp = block.medianTime; if (block.height === 0) { blk.extras.medianFee = 0; // 50th percentiles @@ -204,7 +205,6 @@ class Blocks { blk.extras.feePercentiles = [], // TODO blk.extras.medianFeeAmt = 0; // TODO - blk.extras.medianTimestamp = block.medianTime; // TODO blk.extras.blockTime = 0; // TODO blk.extras.orphaned = false; // TODO @@ -785,7 +785,11 @@ class Blocks { while (fromHeight <= toHeight) { let block: any = await blocksRepository.$getBlockByHeight(fromHeight); if (!block) { - block = await this.$indexBlock(fromHeight); + await this.$indexBlock(fromHeight); + block = await blocksRepository.$getBlockByHeight(fromHeight); + if (!block) { + continue; + } } delete(block.hash); @@ -794,6 +798,7 @@ class Blocks { delete(block.pool_link); delete(block.pool_addresses); delete(block.pool_regexes); + delete(block.median_timestamp); blocks.push(block); fromHeight++; diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index cc6fdeb08..d7811f601 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -367,6 +367,7 @@ class BlocksRepository { blocks.*, hash as id, UNIX_TIMESTAMP(blocks.blockTimestamp) as blockTimestamp, + UNIX_TIMESTAMP(blocks.median_timestamp) as medianTime, pools.id as pool_id, pools.name as pool_name, pools.link as pool_link, From 458f24c9f21a84269c4fd6e67ec57eef84ed4845 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 18 Feb 2023 11:26:13 +0900 Subject: [PATCH 0380/1466] Compute median fee and fee percentiles in sats --- backend/src/api/blocks.ts | 18 ++++++-- backend/src/api/database-migration.ts | 2 +- backend/src/mempool.interfaces.ts | 4 +- backend/src/repositories/BlocksRepository.ts | 19 +++++++++ .../repositories/BlocksSummariesRepository.ts | 42 +++++++++++++++++++ 5 files changed, 79 insertions(+), 6 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 006d5f055..ccf7bd2f4 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -203,10 +203,13 @@ class Blocks { blk.extras.segwitTotalWeight = stats.swtotal_weight; } - blk.extras.feePercentiles = [], // TODO - blk.extras.medianFeeAmt = 0; // TODO blk.extras.blockTime = 0; // TODO blk.extras.orphaned = false; // TODO + + blk.extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); + if (blk.extras.feePercentiles !== null) { + blk.extras.medianFeeAmt = blk.extras.feePercentiles[3]; + } blk.extras.virtualSize = block.weight / 4.0; if (blk.extras.coinbaseTx.vout.length > 0) { @@ -791,7 +794,6 @@ class Blocks { continue; } } - delete(block.hash); delete(block.previous_block_hash); delete(block.pool_name); @@ -800,6 +802,16 @@ class Blocks { delete(block.pool_regexes); delete(block.median_timestamp); + // This requires `blocks_summaries` to be available. It takes a very long + // time to index this table so we just try to serve the data the best we can + if (block.fee_percentiles === null) { + block.fee_percentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); + if (block.fee_percentiles !== null) { + block.median_fee_amt = block.fee_percentiles[3]; + await blocksRepository.$saveFeePercentilesForBlockId(block.id, block.fee_percentiles); + } + } + blocks.push(block); fromHeight++; } diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 2c6adfd1b..352abfbfe 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -772,7 +772,7 @@ class DatabaseMigration { ADD total_outputs int unsigned NOT NULL, ADD total_output_amt bigint unsigned NOT NULL, ADD fee_percentiles longtext NULL, - ADD median_fee_amt int unsigned NOT NULL, + ADD median_fee_amt int unsigned NULL, ADD segwit_total_txs int unsigned NOT NULL, ADD segwit_total_size int unsigned NOT NULL, ADD segwit_total_weight int unsigned NOT NULL, diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index a1a9e1687..a7e7c4ec6 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -171,8 +171,8 @@ export interface BlockExtension { totalInputs?: number; totalOutputs?: number; totalOutputAmt?: number; - medianFeeAmt?: number; - feePercentiles?: number[], + medianFeeAmt?: number | null; + feePercentiles?: number[] | null, segwitTotalTxs?: number; segwitTotalSize?: number; segwitTotalWeight?: number; diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index d7811f601..cc0b43fe9 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -811,6 +811,25 @@ class BlocksRepository { throw e; } } + + /** + * Save indexed median fee to avoid recomputing it later + * + * @param id + * @param feePercentiles + */ + public async $saveFeePercentilesForBlockId(id: string, feePercentiles: number[]): Promise { + try { + await DB.query(` + UPDATE blocks SET fee_percentiles = ?, median_fee_amt = ? + WHERE hash = ?`, + [JSON.stringify(feePercentiles), feePercentiles[3], id] + ); + } catch (e) { + logger.err(`Cannot update block fee_percentiles. Reason: ` + (e instanceof Error ? e.message : e)); + throw e; + } + } } export default new BlocksRepository(); diff --git a/backend/src/repositories/BlocksSummariesRepository.ts b/backend/src/repositories/BlocksSummariesRepository.ts index 1406a1d07..ebc83b7dd 100644 --- a/backend/src/repositories/BlocksSummariesRepository.ts +++ b/backend/src/repositories/BlocksSummariesRepository.ts @@ -80,6 +80,48 @@ class BlocksSummariesRepository { logger.err('Cannot delete indexed blocks summaries. Reason: ' + (e instanceof Error ? e.message : e)); } } + + /** + * Get the fee percentiles if the block has already been indexed, [] otherwise + * + * @param id + */ + public async $getFeePercentilesByBlockId(id: string): Promise { + try { + const [rows]: any[] = await DB.query(` + SELECT transactions + FROM blocks_summaries + WHERE id = ?`, + [id] + ); + if (rows === null || rows.length === 0) { + return null; + } + + const transactions = JSON.parse(rows[0].transactions); + if (transactions === null) { + return null; + } + + transactions.shift(); // Ignore coinbase + transactions.sort((a: any, b: any) => a.fee - b.fee); + const fees = transactions.map((t: any) => t.fee); + + return [ + fees[0], // min + fees[Math.max(0, Math.floor(fees.length * 0.1) - 1)], // 10th + fees[Math.max(0, Math.floor(fees.length * 0.25) - 1)], // 25th + fees[Math.max(0, Math.floor(fees.length * 0.5) - 1)], // median + fees[Math.max(0, Math.floor(fees.length * 0.75) - 1)], // 75th + fees[Math.max(0, Math.floor(fees.length * 0.9) - 1)], // 90th + fees[fees.length - 1], // max + ]; + + } catch (e) { + logger.err(`Cannot get block summaries transactions. Reason: ` + (e instanceof Error ? e.message : e)); + return null; + } + } } export default new BlocksSummariesRepository(); From 281899f5514417224be4275873b4804a3323dd7e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 18 Feb 2023 14:10:07 +0900 Subject: [PATCH 0381/1466] List orphaned blocks in the new blocks-bulk API --- backend/src/api/blocks.ts | 8 ++++- backend/src/api/chain-tips.ts | 53 +++++++++++++++++++++++++++++++ backend/src/index.ts | 2 ++ backend/src/mempool.interfaces.ts | 3 +- 4 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 backend/src/api/chain-tips.ts diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index ccf7bd2f4..25c199de9 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -25,6 +25,7 @@ import mining from './mining/mining'; import DifficultyAdjustmentsRepository from '../repositories/DifficultyAdjustmentsRepository'; import PricesRepository from '../repositories/PricesRepository'; import priceUpdater from '../tasks/price-updater'; +import chainTips from './chain-tips'; class Blocks { private blocks: BlockExtended[] = []; @@ -171,6 +172,7 @@ class Blocks { blk.extras.coinbaseRaw = blk.extras.coinbaseTx.vin[0].scriptsig; blk.extras.usd = priceUpdater.latestPrices.USD; blk.extras.medianTimestamp = block.medianTime; + blk.extras.orphans = chainTips.getOrphanedBlocksAtHeight(blk.height); if (block.height === 0) { blk.extras.medianFee = 0; // 50th percentiles @@ -204,7 +206,6 @@ class Blocks { } blk.extras.blockTime = 0; // TODO - blk.extras.orphaned = false; // TODO blk.extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); if (blk.extras.feePercentiles !== null) { @@ -545,6 +546,7 @@ class Blocks { } else { this.currentBlockHeight++; logger.debug(`New block found (#${this.currentBlockHeight})!`); + await chainTips.updateOrphanedBlocks(); } const blockHash = await bitcoinApi.$getBlockHash(this.currentBlockHeight); @@ -812,6 +814,10 @@ class Blocks { } } + // Re-org can happen after indexing so we need to always get the + // latest state from core + block.orphans = chainTips.getOrphanedBlocksAtHeight(block.height); + blocks.push(block); fromHeight++; } diff --git a/backend/src/api/chain-tips.ts b/backend/src/api/chain-tips.ts new file mode 100644 index 000000000..5b0aa8a5c --- /dev/null +++ b/backend/src/api/chain-tips.ts @@ -0,0 +1,53 @@ +import logger from "../logger"; +import bitcoinClient from "./bitcoin/bitcoin-client"; + +export interface ChainTip { + height: number; + hash: string; + branchlen: number; + status: 'invalid' | 'active' | 'valid-fork' | 'valid-headers' | 'headers-only'; +}; + +export interface OrphanedBlock { + height: number; + hash: string; + status: 'valid-fork' | 'valid-headers' | 'headers-only'; +} + +class ChainTips { + private chainTips: ChainTip[] = []; + private orphanedBlocks: OrphanedBlock[] = []; + + public async updateOrphanedBlocks(): Promise { + this.chainTips = await bitcoinClient.getChainTips(); + this.orphanedBlocks = []; + + for (const chain of this.chainTips) { + if (chain.status === 'valid-fork' || chain.status === 'valid-headers' || chain.status === 'headers-only') { + let block = await bitcoinClient.getBlock(chain.hash); + while (block && block.confirmations === -1) { + this.orphanedBlocks.push({ + height: block.height, + hash: block.hash, + status: chain.status + }); + block = await bitcoinClient.getBlock(block.previousblockhash); + } + } + } + + logger.debug(`Updated orphaned blocks cache. Found ${this.orphanedBlocks.length} orphaned blocks`); + } + + public getOrphanedBlocksAtHeight(height: number): OrphanedBlock[] { + const orphans: OrphanedBlock[] = []; + for (const block of this.orphanedBlocks) { + if (block.height === height) { + orphans.push(block); + } + } + return orphans; + } +} + +export default new ChainTips(); \ No newline at end of file diff --git a/backend/src/index.ts b/backend/src/index.ts index d8d46fc9f..6ea3ddc43 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -37,6 +37,7 @@ import fundingTxFetcher from './tasks/lightning/sync-tasks/funding-tx-fetcher'; import forensicsService from './tasks/lightning/forensics.service'; import priceUpdater from './tasks/price-updater'; import mining from './api/mining/mining'; +import chainTips from './api/chain-tips'; import { AxiosError } from 'axios'; class Server { @@ -134,6 +135,7 @@ class Server { } priceUpdater.$run(); + await chainTips.updateOrphanedBlocks(); this.setUpHttpApiRoutes(); diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index a7e7c4ec6..e139bde8f 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -1,4 +1,5 @@ import { IEsploraApi } from './api/bitcoin/esplora-api.interface'; +import { OrphanedBlock } from './api/chain-tips'; import { HeapNode } from "./utils/pairing-heap"; export interface PoolTag { @@ -163,7 +164,7 @@ export interface BlockExtension { usd?: number | null; medianTimestamp?: number; blockTime?: number; - orphaned?: boolean; + orphans?: OrphanedBlock[] | null; coinbaseAddress?: string | null; coinbaseSignature?: string | null; virtualSize?: number; From e2fe39f241432ed6ec387952f5570071f7b81658 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 18 Feb 2023 14:53:21 +0900 Subject: [PATCH 0382/1466] Wrap orphaned blocks updater into try/catch --- backend/src/api/chain-tips.ts | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/backend/src/api/chain-tips.ts b/backend/src/api/chain-tips.ts index 5b0aa8a5c..92f148c8e 100644 --- a/backend/src/api/chain-tips.ts +++ b/backend/src/api/chain-tips.ts @@ -19,24 +19,28 @@ class ChainTips { private orphanedBlocks: OrphanedBlock[] = []; public async updateOrphanedBlocks(): Promise { - this.chainTips = await bitcoinClient.getChainTips(); - this.orphanedBlocks = []; + try { + this.chainTips = await bitcoinClient.getChainTips(); + this.orphanedBlocks = []; - for (const chain of this.chainTips) { - if (chain.status === 'valid-fork' || chain.status === 'valid-headers' || chain.status === 'headers-only') { - let block = await bitcoinClient.getBlock(chain.hash); - while (block && block.confirmations === -1) { - this.orphanedBlocks.push({ - height: block.height, - hash: block.hash, - status: chain.status - }); - block = await bitcoinClient.getBlock(block.previousblockhash); + for (const chain of this.chainTips) { + if (chain.status === 'valid-fork' || chain.status === 'valid-headers' || chain.status === 'headers-only') { + let block = await bitcoinClient.getBlock(chain.hash); + while (block && block.confirmations === -1) { + this.orphanedBlocks.push({ + height: block.height, + hash: block.hash, + status: chain.status + }); + block = await bitcoinClient.getBlock(block.previousblockhash); + } } } - } - logger.debug(`Updated orphaned blocks cache. Found ${this.orphanedBlocks.length} orphaned blocks`); + logger.debug(`Updated orphaned blocks cache. Found ${this.orphanedBlocks.length} orphaned blocks`); + } catch (e) { + logger.err(`Cannot get fetch orphaned blocks. Reason: ${e instanceof Error ? e.message : e}`); + } } public getOrphanedBlocksAtHeight(height: number): OrphanedBlock[] { From 6965c8f41ba3d2a358f17f27294f12fd0798bca8 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 19 Feb 2023 18:38:23 +0900 Subject: [PATCH 0383/1466] Fix median time indexing --- backend/src/api/bitcoin/bitcoin-api.ts | 1 + backend/src/repositories/BlocksRepository.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/src/api/bitcoin/bitcoin-api.ts b/backend/src/api/bitcoin/bitcoin-api.ts index cad11aeda..117245ef8 100644 --- a/backend/src/api/bitcoin/bitcoin-api.ts +++ b/backend/src/api/bitcoin/bitcoin-api.ts @@ -28,6 +28,7 @@ class BitcoinApi implements AbstractBitcoinApi { size: block.size, weight: block.weight, previousblockhash: block.previousblockhash, + medianTime: block.mediantime, }; } diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index cc0b43fe9..20331897c 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -34,7 +34,7 @@ class BlocksRepository { ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, - ?, ?, ?, ?, + FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, From eceedf0bdfa6fd806596d2f707bc3f437de94c9d Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 19 Feb 2023 19:17:51 +0900 Subject: [PATCH 0384/1466] Dont compute fee percentile / median fee when indexing is disabled because we need summaries --- backend/src/api/blocks.ts | 8 +++++--- backend/src/database.ts | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 25c199de9..8a11bccc5 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -207,9 +207,11 @@ class Blocks { blk.extras.blockTime = 0; // TODO - blk.extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); - if (blk.extras.feePercentiles !== null) { - blk.extras.medianFeeAmt = blk.extras.feePercentiles[3]; + if (Common.indexingEnabled()) { + blk.extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); + if (blk.extras.feePercentiles !== null) { + blk.extras.medianFeeAmt = blk.extras.feePercentiles[3]; + } } blk.extras.virtualSize = block.weight / 4.0; diff --git a/backend/src/database.ts b/backend/src/database.ts index c2fb0980b..a504eb0fa 100644 --- a/backend/src/database.ts +++ b/backend/src/database.ts @@ -24,7 +24,8 @@ import { FieldPacket, OkPacket, PoolOptions, ResultSetHeader, RowDataPacket } fr private checkDBFlag() { if (config.DATABASE.ENABLED === false) { - logger.err('Trying to use DB feature but config.DATABASE.ENABLED is set to false, please open an issue'); + const stack = new Error().stack; + logger.err(`Trying to use DB feature but config.DATABASE.ENABLED is set to false, please open an issue.\nStack trace: ${stack}}`); } } From b2eaa7efb1636ddcfb37fc3ab1c7671c82be91d1 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 20 Feb 2023 11:59:38 +0900 Subject: [PATCH 0385/1466] Fix fee percentiles indexing --- backend/src/repositories/BlocksRepository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index 20331897c..1f244d7cd 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -74,7 +74,7 @@ class BlocksRepository { block.extras.totalOutputs, block.extras.totalInputAmt, block.extras.totalOutputAmt, - JSON.stringify(block.extras.feePercentiles), + block.extras.feePercentiles ? JSON.stringify(block.extras.feePercentiles) : null, block.extras.segwitTotalTxs, block.extras.segwitTotalSize, block.extras.segwitTotalWeight, From 75a99568bfff64d5192df21f9093bc3e412b07fd Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 23 Feb 2023 08:50:30 +0900 Subject: [PATCH 0386/1466] Index coinbase signature in ascii --- backend/src/api/blocks.ts | 2 ++ backend/src/api/database-migration.ts | 1 + backend/src/mempool.interfaces.ts | 1 + backend/src/repositories/BlocksRepository.ts | 5 +++-- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 8a11bccc5..3d33642ce 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -218,9 +218,11 @@ class Blocks { if (blk.extras.coinbaseTx.vout.length > 0) { blk.extras.coinbaseAddress = blk.extras.coinbaseTx.vout[0].scriptpubkey_address ?? null; blk.extras.coinbaseSignature = blk.extras.coinbaseTx.vout[0].scriptpubkey_asm ?? null; + blk.extras.coinbaseSignatureAscii = transactionUtils.hex2ascii(blk.extras.coinbaseTx.vin[0].scriptsig) ?? null; } else { blk.extras.coinbaseAddress = null; blk.extras.coinbaseSignature = null; + blk.extras.coinbaseSignatureAscii = null; } const header = await bitcoinClient.getBlockHeader(block.id, false); diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 352abfbfe..c965ef420 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -767,6 +767,7 @@ class DatabaseMigration { ADD block_time int unsigned NOT NULL, ADD coinbase_address varchar(100) NULL, ADD coinbase_signature varchar(500) NULL, + ADD coinbase_signature_ascii varchar(500) NULL, ADD avg_tx_size double unsigned NOT NULL, ADD total_inputs int unsigned NOT NULL, ADD total_outputs int unsigned NOT NULL, diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index e139bde8f..cb95be98a 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -167,6 +167,7 @@ export interface BlockExtension { orphans?: OrphanedBlock[] | null; coinbaseAddress?: string | null; coinbaseSignature?: string | null; + coinbaseSignatureAscii?: string | null; virtualSize?: number; avgTxSize?: number; totalInputs?: number; diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index 1f244d7cd..e2362b67d 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -27,7 +27,7 @@ class BlocksRepository { coinbase_signature, utxoset_size, utxoset_change, avg_tx_size, total_inputs, total_outputs, total_input_amt, total_output_amt, fee_percentiles, segwit_total_txs, segwit_total_size, segwit_total_weight, - median_fee_amt + median_fee_amt, coinbase_signature_ascii ) VALUE ( ?, ?, FROM_UNIXTIME(?), ?, ?, ?, ?, ?, @@ -38,7 +38,7 @@ class BlocksRepository { ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, - ? + ?, ? )`; const params: any[] = [ @@ -79,6 +79,7 @@ class BlocksRepository { block.extras.segwitTotalSize, block.extras.segwitTotalWeight, block.extras.medianFeeAmt, + block.extras.coinbaseSignatureAscii, ]; await DB.query(query, params); From 086ee68b520156e8b1fe6b63dc2cbe78ea4e2e5f Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 10:29:58 +0900 Subject: [PATCH 0387/1466] Remove `block_time` from indexed fields --- backend/src/api/blocks.ts | 2 -- backend/src/api/database-migration.ts | 1 - 2 files changed, 3 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 3d33642ce..ba3927ab7 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -205,8 +205,6 @@ class Blocks { blk.extras.segwitTotalWeight = stats.swtotal_weight; } - blk.extras.blockTime = 0; // TODO - if (Common.indexingEnabled()) { blk.extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); if (blk.extras.feePercentiles !== null) { diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index c965ef420..6e6e6855f 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -764,7 +764,6 @@ class DatabaseMigration { private getAdditionalBlocksDataQuery(): string { return `ALTER TABLE blocks ADD median_timestamp timestamp NOT NULL, - ADD block_time int unsigned NOT NULL, ADD coinbase_address varchar(100) NULL, ADD coinbase_signature varchar(500) NULL, ADD coinbase_signature_ascii varchar(500) NULL, From a0488dba7664acc26e7517e3b019b8dd28d43324 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 11:33:36 +0900 Subject: [PATCH 0388/1466] Cleanup block before sending response in /blocks-bulk API Remove block_time Index summaries on the fly --- backend/src/api/blocks.ts | 70 +++++++++++++++----- backend/src/repositories/BlocksRepository.ts | 5 +- 2 files changed, 55 insertions(+), 20 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index ba3927ab7..459b3903e 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -205,7 +205,7 @@ class Blocks { blk.extras.segwitTotalWeight = stats.swtotal_weight; } - if (Common.indexingEnabled()) { + if (Common.blocksSummariesIndexingEnabled()) { blk.extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); if (blk.extras.feePercentiles !== null) { blk.extras.medianFeeAmt = blk.extras.feePercentiles[3]; @@ -798,29 +798,65 @@ class Blocks { continue; } } - delete(block.hash); - delete(block.previous_block_hash); - delete(block.pool_name); - delete(block.pool_link); - delete(block.pool_addresses); - delete(block.pool_regexes); - delete(block.median_timestamp); - // This requires `blocks_summaries` to be available. It takes a very long - // time to index this table so we just try to serve the data the best we can - if (block.fee_percentiles === null) { - block.fee_percentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); - if (block.fee_percentiles !== null) { - block.median_fee_amt = block.fee_percentiles[3]; - await blocksRepository.$saveFeePercentilesForBlockId(block.id, block.fee_percentiles); + // Cleanup fields before sending the response + const cleanBlock: any = { + height: block.height ?? null, + hash: block.id ?? null, + timestamp: block.blockTimestamp ?? null, + median_timestamp: block.medianTime ?? null, + previousblockhash: block.previousblockhash ?? null, + difficulty: block.difficulty ?? null, + header: block.header ?? null, + version: block.version ?? null, + bits: block.bits ?? null, + nonce: block.nonce ?? null, + size: block.size ?? null, + weight: block.weight ?? null, + tx_count: block.tx_count ?? null, + merkle_root: block.merkle_root ?? null, + reward: block.reward ?? null, + total_fee_amt: block.fees ?? null, + avg_fee_amt: block.avg_fee ?? null, + median_fee_amt: block.median_fee_amt ?? null, + fee_amt_percentiles: block.fee_percentiles ?? null, + avg_fee_rate: block.avg_fee_rate ?? null, + median_fee_rate: block.median_fee ?? null, + fee_rate_percentiles: block.fee_span ?? null, + total_inputs: block.total_inputs ?? null, + total_input_amt: block.total_input_amt ?? null, + total_outputs: block.total_outputs ?? null, + total_output_amt: block.total_output_amt ?? null, + segwit_total_txs: block.segwit_total_txs ?? null, + segwit_total_size: block.segwit_total_size ?? null, + segwit_total_weight: block.segwit_total_weight ?? null, + avg_tx_size: block.avg_tx_size ?? null, + utxoset_change: block.utxoset_change ?? null, + utxoset_size: block.utxoset_size ?? null, + coinbase_raw: block.coinbase_raw ?? null, + coinbase_address: block.coinbase_address ?? null, + coinbase_signature: block.coinbase_signature ?? null, + pool_slug: block.pool_slug ?? null, + }; + + if (Common.blocksSummariesIndexingEnabled() && cleanBlock.fee_amt_percentiles === null) { + cleanBlock.fee_amt_percentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(cleanBlock.hash); + if (cleanBlock.fee_amt_percentiles === null) { + const block = await bitcoinClient.getBlock(cleanBlock.hash, 2); + const summary = this.summarizeBlock(block); + await BlocksSummariesRepository.$saveSummary({ height: block.height, mined: summary }); + cleanBlock.fee_amt_percentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(cleanBlock.hash); + } + if (cleanBlock.fee_amt_percentiles !== null) { + cleanBlock.median_fee_amt = cleanBlock.fee_amt_percentiles[3]; } } // Re-org can happen after indexing so we need to always get the // latest state from core - block.orphans = chainTips.getOrphanedBlocksAtHeight(block.height); + cleanBlock.orphans = chainTips.getOrphanedBlocksAtHeight(cleanBlock.height); - blocks.push(block); + blocks.push(cleanBlock); fromHeight++; } diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index e2362b67d..86dc006ff 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -23,7 +23,7 @@ class BlocksRepository { pool_id, fees, fee_span, median_fee, reward, version, bits, nonce, merkle_root, previous_block_hash, avg_fee, avg_fee_rate, - median_timestamp, block_time, header, coinbase_address, + median_timestamp, header, coinbase_address, coinbase_signature, utxoset_size, utxoset_change, avg_tx_size, total_inputs, total_outputs, total_input_amt, total_output_amt, fee_percentiles, segwit_total_txs, segwit_total_size, segwit_total_weight, @@ -34,7 +34,7 @@ class BlocksRepository { ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, - FROM_UNIXTIME(?), ?, ?, ?, + FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, @@ -63,7 +63,6 @@ class BlocksRepository { block.extras.avgFee, block.extras.avgFeeRate, block.extras.medianTimestamp, - block.extras.blockTime, block.extras.header, block.extras.coinbaseAddress, block.extras.coinbaseSignature, From 0bf4d5218326373cdafb195ae3c08235419f76fd Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 11:41:54 +0900 Subject: [PATCH 0389/1466] Return zeroed out `fee_amt_percentiles` if there is no transaction --- .../src/repositories/BlocksSummariesRepository.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/repositories/BlocksSummariesRepository.ts b/backend/src/repositories/BlocksSummariesRepository.ts index ebc83b7dd..2724ddcf5 100644 --- a/backend/src/repositories/BlocksSummariesRepository.ts +++ b/backend/src/repositories/BlocksSummariesRepository.ts @@ -108,13 +108,13 @@ class BlocksSummariesRepository { const fees = transactions.map((t: any) => t.fee); return [ - fees[0], // min - fees[Math.max(0, Math.floor(fees.length * 0.1) - 1)], // 10th - fees[Math.max(0, Math.floor(fees.length * 0.25) - 1)], // 25th - fees[Math.max(0, Math.floor(fees.length * 0.5) - 1)], // median - fees[Math.max(0, Math.floor(fees.length * 0.75) - 1)], // 75th - fees[Math.max(0, Math.floor(fees.length * 0.9) - 1)], // 90th - fees[fees.length - 1], // max + fees[0] ?? 0, // min + fees[Math.max(0, Math.floor(fees.length * 0.1) - 1)] ?? 0, // 10th + fees[Math.max(0, Math.floor(fees.length * 0.25) - 1)] ?? 0, // 25th + fees[Math.max(0, Math.floor(fees.length * 0.5) - 1)] ?? 0, // median + fees[Math.max(0, Math.floor(fees.length * 0.75) - 1)] ?? 0, // 75th + fees[Math.max(0, Math.floor(fees.length * 0.9) - 1)] ?? 0, // 90th + fees[fees.length - 1] ?? 0, // max ]; } catch (e) { From aa1114926c2296d79b9429a6e0ca47cb7b117c62 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 11:43:38 +0900 Subject: [PATCH 0390/1466] `previousblockhash` -> `previous_block_hash` --- backend/src/api/blocks.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 459b3903e..2a026a303 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -805,7 +805,7 @@ class Blocks { hash: block.id ?? null, timestamp: block.blockTimestamp ?? null, median_timestamp: block.medianTime ?? null, - previousblockhash: block.previousblockhash ?? null, + previous_block_hash: block.previousblockhash ?? null, difficulty: block.difficulty ?? null, header: block.header ?? null, version: block.version ?? null, From e19db4ae35e8d4f3a81c1a5b7c1ba5802d24bcd2 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 11:46:47 +0900 Subject: [PATCH 0391/1466] Add missing `coinbase_signature_ascii` --- backend/src/api/blocks.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 2a026a303..fb38e0d7e 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -836,6 +836,7 @@ class Blocks { coinbase_raw: block.coinbase_raw ?? null, coinbase_address: block.coinbase_address ?? null, coinbase_signature: block.coinbase_signature ?? null, + coinbase_signature_ascii: block.coinbase_signature_ascii ?? null, pool_slug: block.pool_slug ?? null, }; From ed8cf89fee51bf54a39f60421255711d0d981509 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 12:48:55 +0900 Subject: [PATCH 0392/1466] Format percentiles in a more verbose way --- backend/src/api/blocks.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index fb38e0d7e..204419496 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -853,6 +853,25 @@ class Blocks { } } + cleanBlock.fee_amt_percentiles = { + 'min': cleanBlock.fee_amt_percentiles[0], + 'perc_10': cleanBlock.fee_amt_percentiles[1], + 'perc_25': cleanBlock.fee_amt_percentiles[2], + 'perc_50': cleanBlock.fee_amt_percentiles[3], + 'perc_75': cleanBlock.fee_amt_percentiles[4], + 'perc_90': cleanBlock.fee_amt_percentiles[5], + 'max': cleanBlock.fee_amt_percentiles[6], + }; + cleanBlock.fee_rate_percentiles = { + 'min': cleanBlock.fee_rate_percentiles[0], + 'perc_10': cleanBlock.fee_rate_percentiles[1], + 'perc_25': cleanBlock.fee_rate_percentiles[2], + 'perc_50': cleanBlock.fee_rate_percentiles[3], + 'perc_75': cleanBlock.fee_rate_percentiles[4], + 'perc_90': cleanBlock.fee_rate_percentiles[5], + 'max': cleanBlock.fee_rate_percentiles[6], + }; + // Re-org can happen after indexing so we need to always get the // latest state from core cleanBlock.orphans = chainTips.getOrphanedBlocksAtHeight(cleanBlock.height); From 6c3a273e7588d53a495abfd3dccceaf0b9995ce7 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 14:24:47 +0900 Subject: [PATCH 0393/1466] Enabled coinstatsindex=1 --- production/bitcoin.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/production/bitcoin.conf b/production/bitcoin.conf index 46ab41b20..501f49f50 100644 --- a/production/bitcoin.conf +++ b/production/bitcoin.conf @@ -1,6 +1,7 @@ datadir=/bitcoin server=1 txindex=1 +coinstatsindex=1 listen=1 discover=1 par=16 From 822362c10584cc2eb4bc376685bd19e50be3b4cb Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 14:30:59 +0900 Subject: [PATCH 0394/1466] Increase cache schema version --- backend/src/api/disk-cache.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/disk-cache.ts b/backend/src/api/disk-cache.ts index cf40d6952..a75fd43cc 100644 --- a/backend/src/api/disk-cache.ts +++ b/backend/src/api/disk-cache.ts @@ -9,7 +9,7 @@ import { TransactionExtended } from '../mempool.interfaces'; import { Common } from './common'; class DiskCache { - private cacheSchemaVersion = 1; + private cacheSchemaVersion = 2; private static FILE_NAME = config.MEMPOOL.CACHE_DIR + '/cache.json'; private static FILE_NAMES = config.MEMPOOL.CACHE_DIR + '/cache{number}.json'; From ad4cbd60d5623dde7b8940065775dd3e24be79bc Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 14:40:28 +0900 Subject: [PATCH 0395/1466] Do not download orphaned block if `headers-only` --- backend/src/api/chain-tips.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/chain-tips.ts b/backend/src/api/chain-tips.ts index 92f148c8e..3384ebb19 100644 --- a/backend/src/api/chain-tips.ts +++ b/backend/src/api/chain-tips.ts @@ -24,7 +24,7 @@ class ChainTips { this.orphanedBlocks = []; for (const chain of this.chainTips) { - if (chain.status === 'valid-fork' || chain.status === 'valid-headers' || chain.status === 'headers-only') { + if (chain.status === 'valid-fork' || chain.status === 'valid-headers') { let block = await bitcoinClient.getBlock(chain.hash); while (block && block.confirmations === -1) { this.orphanedBlocks.push({ From 5d7c9f93153c501fe9d10080290510a877a146d7 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 15:06:47 +0900 Subject: [PATCH 0396/1466] Add config.MEMPOOOL.MAX_BLOCKS_BULK_QUERY parameter (default to 0, API disable) --- backend/src/__fixtures__/mempool-config.template.json | 3 ++- backend/src/__tests__/config.test.ts | 1 + backend/src/api/bitcoin/bitcoin.routes.ts | 10 ++++++++-- backend/src/config.ts | 2 ++ docker/README.md | 2 ++ docker/backend/mempool-config.json | 3 ++- docker/backend/start.sh | 2 ++ 7 files changed, 19 insertions(+), 4 deletions(-) diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index 9d8a7e900..fa7ea7d21 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -28,7 +28,8 @@ "AUDIT": "__MEMPOOL_AUDIT__", "ADVANCED_GBT_AUDIT": "__MEMPOOL_ADVANCED_GBT_AUDIT__", "ADVANCED_GBT_MEMPOOL": "__MEMPOOL_ADVANCED_GBT_MEMPOOL__", - "CPFP_INDEXING": "__MEMPOOL_CPFP_INDEXING__" + "CPFP_INDEXING": "__MEMPOOL_CPFP_INDEXING__", + "MAX_BLOCKS_BULK_QUERY": "__MEMPOOL_MAX_BLOCKS_BULK_QUERY__" }, "CORE_RPC": { "HOST": "__CORE_RPC_HOST__", diff --git a/backend/src/__tests__/config.test.ts b/backend/src/__tests__/config.test.ts index 8b011d833..1e4c05ae3 100644 --- a/backend/src/__tests__/config.test.ts +++ b/backend/src/__tests__/config.test.ts @@ -41,6 +41,7 @@ describe('Mempool Backend Config', () => { ADVANCED_GBT_AUDIT: false, ADVANCED_GBT_MEMPOOL: false, CPFP_INDEXING: false, + MAX_BLOCKS_BULK_QUERY: 0, }); expect(config.ELECTRUM).toStrictEqual({ HOST: '127.0.0.1', PORT: 3306, TLS_ENABLED: true }); diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 6d145e854..78d027663 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -409,21 +409,27 @@ class BitcoinRoutes { if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { // Liquid, Bisq - Not implemented return res.status(404).send(`This API is only available for Bitcoin networks`); } + if (config.MEMPOOL.MAX_BLOCKS_BULK_QUERY <= 0) { + return res.status(404).send(`This API is disabled. Set config.MEMPOOL.MAX_BLOCKS_BULK_QUERY to a positive number to enable it.`); + } if (!Common.indexingEnabled()) { return res.status(404).send(`Indexing is required for this API`); } const from = parseInt(req.params.from, 10); - if (!from) { + if (!req.params.from || from < 0) { return res.status(400).send(`Parameter 'from' must be a block height (integer)`); } const to = req.params.to === undefined ? await bitcoinApi.$getBlockHeightTip() : parseInt(req.params.to, 10); - if (!to) { + if (to < 0) { return res.status(400).send(`Parameter 'to' must be a block height (integer)`); } if (from > to) { return res.status(400).send(`Parameter 'to' must be a higher block height than 'from'`); } + if ((to - from + 1) > config.MEMPOOL.MAX_BLOCKS_BULK_QUERY) { + return res.status(400).send(`You can only query ${config.MEMPOOL.MAX_BLOCKS_BULK_QUERY} blocks at once.`); + } res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString()); res.json(await blocks.$getBlocksBetweenHeight(from, to)); diff --git a/backend/src/config.ts b/backend/src/config.ts index 2cda8d85b..ecd5c80aa 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -32,6 +32,7 @@ interface IConfig { ADVANCED_GBT_AUDIT: boolean; ADVANCED_GBT_MEMPOOL: boolean; CPFP_INDEXING: boolean; + MAX_BLOCKS_BULK_QUERY: number; }; ESPLORA: { REST_API_URL: string; @@ -153,6 +154,7 @@ const defaults: IConfig = { 'ADVANCED_GBT_AUDIT': false, 'ADVANCED_GBT_MEMPOOL': false, 'CPFP_INDEXING': false, + 'MAX_BLOCKS_BULK_QUERY': 0, }, 'ESPLORA': { 'REST_API_URL': 'http://127.0.0.1:3000', diff --git a/docker/README.md b/docker/README.md index 69bb96030..168d4b1fa 100644 --- a/docker/README.md +++ b/docker/README.md @@ -111,6 +111,7 @@ Below we list all settings from `mempool-config.json` and the corresponding over "ADVANCED_GBT_AUDIT": false, "ADVANCED_GBT_MEMPOOL": false, "CPFP_INDEXING": false, + "MAX_BLOCKS_BULK_QUERY": 0, }, ``` @@ -141,6 +142,7 @@ Corresponding `docker-compose.yml` overrides: MEMPOOL_ADVANCED_GBT_AUDIT: "" MEMPOOL_ADVANCED_GBT_MEMPOOL: "" MEMPOOL_CPFP_INDEXING: "" + MAX_BLOCKS_BULK_QUERY: "" ... ``` diff --git a/docker/backend/mempool-config.json b/docker/backend/mempool-config.json index 904370f3e..d2aa75c69 100644 --- a/docker/backend/mempool-config.json +++ b/docker/backend/mempool-config.json @@ -25,7 +25,8 @@ "AUDIT": __MEMPOOL_AUDIT__, "ADVANCED_GBT_AUDIT": __MEMPOOL_ADVANCED_GBT_AUDIT__, "ADVANCED_GBT_MEMPOOL": __MEMPOOL_ADVANCED_GBT_MEMPOOL__, - "CPFP_INDEXING": __MEMPOOL_CPFP_INDEXING__ + "CPFP_INDEXING": __MEMPOOL_CPFP_INDEXING__, + "MAX_BLOCKS_BULK_QUERY": __MEMPOOL__MAX_BLOCKS_BULK_QUERY__ }, "CORE_RPC": { "HOST": "__CORE_RPC_HOST__", diff --git a/docker/backend/start.sh b/docker/backend/start.sh index 58b19898a..3ee542892 100755 --- a/docker/backend/start.sh +++ b/docker/backend/start.sh @@ -30,6 +30,7 @@ __MEMPOOL_AUDIT__=${MEMPOOL_AUDIT:=false} __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} # CORE_RPC __CORE_RPC_HOST__=${CORE_RPC_HOST:=127.0.0.1} @@ -142,6 +143,7 @@ sed -i "s!__MEMPOOL_AUDIT__!${__MEMPOOL_AUDIT__}!g" mempool-config.json sed -i "s!__MEMPOOL_ADVANCED_GBT_MEMPOOL__!${__MEMPOOL_ADVANCED_GBT_MEMPOOL__}!g" mempool-config.json 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/__CORE_RPC_HOST__/${__CORE_RPC_HOST__}/g" mempool-config.json sed -i "s/__CORE_RPC_PORT__/${__CORE_RPC_PORT__}/g" mempool-config.json From 8d9568016ed63608719d720dcb66ee69da514599 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 15:14:35 +0900 Subject: [PATCH 0397/1466] Remove duplicated entry in backend/src/__fixtures__/mempool-config.template.json --- backend/src/__fixtures__/mempool-config.template.json | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index fa7ea7d21..9890654a5 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -3,7 +3,6 @@ "ENABLED": true, "NETWORK": "__MEMPOOL_NETWORK__", "BACKEND": "__MEMPOOL_BACKEND__", - "ENABLED": true, "BLOCKS_SUMMARIES_INDEXING": true, "HTTP_PORT": 1, "SPAWN_CLUSTER_PROCS": 2, From 210f939e653767a53e11ab4025ed088427da00f7 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 13:59:37 +0900 Subject: [PATCH 0398/1466] Add missing truncate blocks table --- backend/src/api/database-migration.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 6e6e6855f..e732d15a5 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -486,6 +486,8 @@ class DatabaseMigration { if (databaseSchemaVersion < 55) { await this.$executeQuery(this.getAdditionalBlocksDataQuery()); + this.uniqueLog(logger.notice, this.blocksTruncatedMessage); + await this.$executeQuery('TRUNCATE blocks;'); // Need to re-index await this.updateToSchemaVersion(55); } } From d3fdef256c422e5866815753b7345a5b749aeee5 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 2 Jan 2023 13:25:40 +0100 Subject: [PATCH 0399/1466] Rewrite mining pools parser - Re-index blocks table --- backend/src/api/database-migration.ts | 14 +- backend/src/api/pools-parser.ts | 309 +++++--------------- backend/src/repositories/PoolsRepository.ts | 129 +++++++- backend/src/tasks/pools-updater.ts | 27 +- 4 files changed, 231 insertions(+), 248 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index e732d15a5..6f9da8cc1 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -62,8 +62,8 @@ class DatabaseMigration { if (databaseSchemaVersion <= 2) { // Disable some spam logs when they're not relevant - this.uniqueLogs.push(this.blocksTruncatedMessage); - this.uniqueLogs.push(this.hashratesTruncatedMessage); + this.uniqueLog(logger.notice, this.blocksTruncatedMessage); + this.uniqueLog(logger.notice, this.hashratesTruncatedMessage); } logger.debug('MIGRATIONS: Current state.schema_version ' + databaseSchemaVersion); @@ -490,6 +490,16 @@ class DatabaseMigration { await this.$executeQuery('TRUNCATE blocks;'); // Need to re-index await this.updateToSchemaVersion(55); } + + if (databaseSchemaVersion < 56) { + await this.$executeQuery('ALTER TABLE pools ADD unique_id int NOT NULL DEFAULT -1'); + await this.$executeQuery('TRUNCATE TABLE `blocks`'); + this.uniqueLog(logger.notice, this.blocksTruncatedMessage); + await this.$executeQuery('DELETE FROM `pools`'); + await this.$executeQuery('ALTER TABLE pools AUTO_INCREMENT = 1'); + this.uniqueLog(logger.notice, '`pools` table has been truncated`'); + await this.updateToSchemaVersion(56); + } } /** diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index e37414bbe..4ba38876d 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -1,15 +1,8 @@ import DB from '../database'; import logger from '../logger'; import config from '../config'; -import BlocksRepository from '../repositories/BlocksRepository'; - -interface Pool { - name: string; - link: string; - regexes: string[]; - addresses: string[]; - slug: string; -} +import PoolsRepository from '../repositories/PoolsRepository'; +import { PoolTag } from '../mempool.interfaces'; class PoolsParser { miningPools: any[] = []; @@ -20,270 +13,118 @@ class PoolsParser { 'addresses': '[]', 'slug': 'unknown' }; - slugWarnFlag = false; + + public setMiningPools(pools): void { + this.miningPools = pools; + } /** - * Parse the pools.json file, consolidate the data and dump it into the database + * Populate our db with updated mining pool definition + * @param pools */ - public async migratePoolsJson(poolsJson: object): Promise { - if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { - return; - } + public async migratePoolsJson(pools: any[]): Promise { + await this.$insertUnknownPool(); - // First we save every entries without paying attention to pool duplication - const poolsDuplicated: Pool[] = []; - - const coinbaseTags = Object.entries(poolsJson['coinbase_tags']); - for (let i = 0; i < coinbaseTags.length; ++i) { - poolsDuplicated.push({ - 'name': (coinbaseTags[i][1]).name, - 'link': (coinbaseTags[i][1]).link, - 'regexes': [coinbaseTags[i][0]], - 'addresses': [], - 'slug': '' - }); - } - const addressesTags = Object.entries(poolsJson['payout_addresses']); - for (let i = 0; i < addressesTags.length; ++i) { - poolsDuplicated.push({ - 'name': (addressesTags[i][1]).name, - 'link': (addressesTags[i][1]).link, - 'regexes': [], - 'addresses': [addressesTags[i][0]], - 'slug': '' - }); - } - - // Then, we find unique mining pool names - const poolNames: string[] = []; - for (let i = 0; i < poolsDuplicated.length; ++i) { - if (poolNames.indexOf(poolsDuplicated[i].name) === -1) { - poolNames.push(poolsDuplicated[i].name); + for (const pool of pools) { + if (!pool.id) { + logger.info(`Mining pool ${pool.name} has no unique 'id' defined. Skipping.`); + continue; } - } - logger.debug(`Found ${poolNames.length} unique mining pools`, logger.tags.mining); - // Get existing pools from the db - let existingPools; - try { - if (config.DATABASE.ENABLED === true) { - [existingPools] = await DB.query({ sql: 'SELECT * FROM pools;', timeout: 120000 }); + const poolDB = await PoolsRepository.$getPoolByUniqueId(pool.id, false); + if (!poolDB) { + // New mining pool + const slug = pool.name.replace(/[^a-z0-9]/gi, '').toLowerCase(); + logger.debug(`Inserting new mining pool ${pool.name}`); + await PoolsRepository.$insertNewMiningPool(pool, slug); } else { - existingPools = []; - } - } catch (e) { - logger.err('Cannot get existing pools from the database, skipping pools.json import', logger.tags.mining); - return; - } - - this.miningPools = []; - - // Finally, we generate the final consolidated pools data - const finalPoolDataAdd: Pool[] = []; - const finalPoolDataUpdate: Pool[] = []; - const finalPoolDataRename: Pool[] = []; - for (let i = 0; i < poolNames.length; ++i) { - let allAddresses: string[] = []; - let allRegexes: string[] = []; - const match = poolsDuplicated.filter((pool: Pool) => pool.name === poolNames[i]); - - for (let y = 0; y < match.length; ++y) { - allAddresses = allAddresses.concat(match[y].addresses); - allRegexes = allRegexes.concat(match[y].regexes); - } - - const finalPoolName = poolNames[i].replace(`'`, `''`); // To support single quote in names when doing db queries - - let slug: string | undefined; - try { - slug = poolsJson['slugs'][poolNames[i]]; - } catch (e) { - if (this.slugWarnFlag === false) { - logger.warn(`pools.json does not seem to contain the 'slugs' object`, logger.tags.mining); - this.slugWarnFlag = true; + if (poolDB.name !== pool.name) { + // Pool has been renamed + const newSlug = pool.name.replace(/[^a-z0-9]/gi, '').toLowerCase(); + logger.warn(`Renaming ${poolDB.name} mining pool to ${pool.name}. Slug has been updated. Maybe you want to make a redirection from 'https://mempool.space/mining/pool/${poolDB.slug}' to 'https://mempool.space/mining/pool/${newSlug}`); + await PoolsRepository.$renameMiningPool(poolDB.id, newSlug, pool.name); } - } - - if (slug === undefined) { - // Only keep alphanumerical - slug = poolNames[i].replace(/[^a-z0-9]/gi, '').toLowerCase(); - logger.warn(`No slug found for '${poolNames[i]}', generating it => '${slug}'`, logger.tags.mining); - } - - const poolObj = { - 'name': finalPoolName, - 'link': match[0].link, - 'regexes': allRegexes, - 'addresses': allAddresses, - 'slug': slug - }; - - const existingPool = existingPools.find((pool) => pool.name === poolNames[i]); - if (existingPool !== undefined) { - // Check if any data was actually updated - const equals = (a, b) => - a.length === b.length && - a.every((v, i) => v === b[i]); - if (!equals(JSON.parse(existingPool.addresses), poolObj.addresses) || !equals(JSON.parse(existingPool.regexes), poolObj.regexes)) { - finalPoolDataUpdate.push(poolObj); + if (poolDB.link !== pool.link) { + // Pool link has changed + logger.debug(`Updating link for ${pool.name} mining pool`); + await PoolsRepository.$updateMiningPoolLink(poolDB.id, pool.link); } - } else if (config.DATABASE.ENABLED) { - // Double check that if we're not just renaming a pool (same address same regex) - const [poolToRename]: any[] = await DB.query(` - SELECT * FROM pools - WHERE addresses = ? OR regexes = ?`, - [JSON.stringify(poolObj.addresses), JSON.stringify(poolObj.regexes)] - ); - if (poolToRename && poolToRename.length > 0) { - // We're actually renaming an existing pool - finalPoolDataRename.push({ - 'name': poolObj.name, - 'link': poolObj.link, - 'regexes': allRegexes, - 'addresses': allAddresses, - 'slug': slug - }); - logger.debug(`Rename '${poolToRename[0].name}' mining pool to ${poolObj.name}`, logger.tags.mining); - } else { - logger.debug(`Add '${finalPoolName}' mining pool`, logger.tags.mining); - finalPoolDataAdd.push(poolObj); + if (JSON.stringify(pool.addresses) !== poolDB.addresses || + JSON.stringify(pool.tags) !== poolDB.regexes) { + // Pool addresses changed or coinbase tags changed + logger.notice(`Updating addresses and/or coinbase tags for ${pool.name} mining pool. If 'AUTOMATIC_BLOCK_REINDEXING' is enabled, we will re-index its blocks and 'unknown' blocks`); + await PoolsRepository.$updateMiningPoolTags(poolDB.id, pool.addresses, pool.tags); + await this.$deleteBlocksForPool(poolDB); } } - - this.miningPools.push({ - 'name': finalPoolName, - 'link': match[0].link, - 'regexes': JSON.stringify(allRegexes), - 'addresses': JSON.stringify(allAddresses), - 'slug': slug - }); - } - - if (config.DATABASE.ENABLED === false) { // Don't run db operations - logger.info('Mining pools.json import completed (no database)', logger.tags.mining); - return; - } - - if (finalPoolDataAdd.length > 0 || finalPoolDataUpdate.length > 0 || - finalPoolDataRename.length > 0 - ) { - logger.debug(`Update pools table now`, logger.tags.mining); - - // Add new mining pools into the database - let queryAdd: string = 'INSERT INTO pools(name, link, regexes, addresses, slug) VALUES '; - for (let i = 0; i < finalPoolDataAdd.length; ++i) { - queryAdd += `('${finalPoolDataAdd[i].name}', '${finalPoolDataAdd[i].link}', - '${JSON.stringify(finalPoolDataAdd[i].regexes)}', '${JSON.stringify(finalPoolDataAdd[i].addresses)}', - ${JSON.stringify(finalPoolDataAdd[i].slug)}),`; - } - queryAdd = queryAdd.slice(0, -1) + ';'; - - // Updated existing mining pools in the database - const updateQueries: string[] = []; - for (let i = 0; i < finalPoolDataUpdate.length; ++i) { - updateQueries.push(` - UPDATE pools - SET name='${finalPoolDataUpdate[i].name}', link='${finalPoolDataUpdate[i].link}', - regexes='${JSON.stringify(finalPoolDataUpdate[i].regexes)}', addresses='${JSON.stringify(finalPoolDataUpdate[i].addresses)}', - slug='${finalPoolDataUpdate[i].slug}' - WHERE name='${finalPoolDataUpdate[i].name}' - ;`); - } - - // Rename mining pools - const renameQueries: string[] = []; - for (let i = 0; i < finalPoolDataRename.length; ++i) { - renameQueries.push(` - UPDATE pools - SET name='${finalPoolDataRename[i].name}', link='${finalPoolDataRename[i].link}', - slug='${finalPoolDataRename[i].slug}' - WHERE regexes='${JSON.stringify(finalPoolDataRename[i].regexes)}' - AND addresses='${JSON.stringify(finalPoolDataRename[i].addresses)}' - ;`); - } - - try { - if (finalPoolDataAdd.length > 0 || updateQueries.length > 0) { - await this.$deleteBlocskToReindex(finalPoolDataUpdate); - } - - if (finalPoolDataAdd.length > 0) { - await DB.query({ sql: queryAdd, timeout: 120000 }); - } - for (const query of updateQueries) { - await DB.query({ sql: query, timeout: 120000 }); - } - for (const query of renameQueries) { - await DB.query({ sql: query, timeout: 120000 }); - } - await this.insertUnknownPool(); - logger.info('Mining pools.json import completed', logger.tags.mining); - } catch (e) { - logger.err(`Cannot import pools in the database`, logger.tags.mining); - throw e; - } } - try { - await this.insertUnknownPool(); - } catch (e) { - logger.err(`Cannot insert unknown pool in the database`, logger.tags.mining); - throw e; - } + logger.info('Mining pools.json import completed'); } /** * Manually add the 'unknown pool' */ - private async insertUnknownPool() { + public async $insertUnknownPool(): Promise { + if (!config.DATABASE.ENABLED) { + return; + } + try { const [rows]: any[] = await DB.query({ sql: 'SELECT name from pools where name="Unknown"', timeout: 120000 }); if (rows.length === 0) { await DB.query({ - sql: `INSERT INTO pools(name, link, regexes, addresses, slug) - VALUES("Unknown", "https://learnmeabitcoin.com/technical/coinbase-transaction", "[]", "[]", "unknown"); + sql: `INSERT INTO pools(name, link, regexes, addresses, slug, unique_id) + VALUES("${this.unknownPool.name}", "${this.unknownPool.link}", "[]", "[]", "${this.unknownPool.slug}", 0); `}); } else { await DB.query(`UPDATE pools - SET name='Unknown', link='https://learnmeabitcoin.com/technical/coinbase-transaction', + SET name='${this.unknownPool.name}', link='${this.unknownPool.link}', regexes='[]', addresses='[]', - slug='unknown' - WHERE name='Unknown' + slug='${this.unknownPool.slug}', + unique_id=0 + WHERE slug='${this.unknownPool.slug}' `); } } catch (e) { - logger.err('Unable to insert "Unknown" mining pool', logger.tags.mining); + logger.err(`Unable to insert or update "Unknown" mining pool. Reason: ${e instanceof Error ? e.message : e}`); } } /** - * Delete blocks which needs to be reindexed + * Delete indexed blocks for an updated mining pool + * + * @param pool */ - private async $deleteBlocskToReindex(finalPoolDataUpdate: any[]) { + private async $deleteBlocksForPool(pool: PoolTag): Promise { if (config.MEMPOOL.AUTOMATIC_BLOCK_REINDEXING === false) { return; } - const blockCount = await BlocksRepository.$blockCount(null, null); - if (blockCount === 0) { - return; - } - - for (const updatedPool of finalPoolDataUpdate) { - const [pool]: any[] = await DB.query(`SELECT id, name from pools where slug = "${updatedPool.slug}"`); - if (pool.length > 0) { - logger.notice(`Deleting blocks from ${pool[0].name} mining pool for future re-indexing`, logger.tags.mining); - await DB.query(`DELETE FROM blocks WHERE pool_id = ${pool[0].id}`); - } - } - - // Ignore early days of Bitcoin as there were not mining pool yet - logger.notice(`Deleting blocks with unknown mining pool from height 130635 for future re-indexing`, logger.tags.mining); + // Get oldest blocks mined by the pool and assume pools.json updates only concern most recent years + // Ignore early days of Bitcoin as there were no mining pool yet + const [oldestPoolBlock]: any[] = await DB.query(` + SELECT height + FROM blocks + WHERE pool_id = ? + ORDER BY height + LIMIT 1`, + [pool.id] + ); + const oldestBlockHeight = oldestPoolBlock.length ?? 0 > 0 ? oldestPoolBlock[0].height : 130635; const [unknownPool] = await DB.query(`SELECT id from pools where slug = "unknown"`); - await DB.query(`DELETE FROM blocks WHERE pool_id = ${unknownPool[0].id} AND height > 130635`); - - logger.notice(`Truncating hashrates for future re-indexing`, logger.tags.mining); - await DB.query(`DELETE FROM hashrates`); + logger.notice(`Deleting blocks with unknown mining pool from height ${oldestBlockHeight} for re-indexing`); + await DB.query(` + DELETE FROM blocks + WHERE pool_id = ? AND height >= ${oldestBlockHeight}`, + [unknownPool[0].id] + ); + logger.notice(`Deleting blocks from ${pool.name} mining pool for re-indexing`); + await DB.query(` + DELETE FROM blocks + WHERE pool_id = ?`, + [pool.id] + ); } } diff --git a/backend/src/repositories/PoolsRepository.ts b/backend/src/repositories/PoolsRepository.ts index 56cc2b3bc..35319157e 100644 --- a/backend/src/repositories/PoolsRepository.ts +++ b/backend/src/repositories/PoolsRepository.ts @@ -1,4 +1,5 @@ import { Common } from '../api/common'; +import poolsParser from '../api/pools-parser'; import config from '../config'; import DB from '../database'; import logger from '../logger'; @@ -17,7 +18,11 @@ class PoolsRepository { * Get unknown pool tagging info */ public async $getUnknownPool(): Promise { - const [rows] = await DB.query('SELECT id, name, slug FROM pools where name = "Unknown"'); + let [rows]: any[] = await DB.query('SELECT id, name, slug FROM pools where name = "Unknown"'); + if (rows && rows.length === 0 && config.DATABASE.ENABLED) { + await poolsParser.$insertUnknownPool(); + [rows] = await DB.query('SELECT id, name, slug FROM pools where name = "Unknown"'); + } return rows[0]; } @@ -59,7 +64,7 @@ class PoolsRepository { /** * Get basic pool info and block count between two timestamp */ - public async $getPoolsInfoBetween(from: number, to: number): Promise { + public async $getPoolsInfoBetween(from: number, to: number): Promise { const query = `SELECT COUNT(height) as blockCount, pools.id as poolId, pools.name as poolName FROM pools LEFT JOIN blocks on pools.id = blocks.pool_id AND blocks.blockTimestamp BETWEEN FROM_UNIXTIME(?) AND FROM_UNIXTIME(?) @@ -75,9 +80,9 @@ class PoolsRepository { } /** - * Get mining pool statistics for one pool + * Get a mining pool info */ - public async $getPool(slug: string): Promise { + public async $getPool(slug: string, parse: boolean = true): Promise { const query = ` SELECT * FROM pools @@ -90,10 +95,12 @@ class PoolsRepository { return null; } - rows[0].regexes = JSON.parse(rows[0].regexes); + if (parse) { + rows[0].regexes = JSON.parse(rows[0].regexes); + } if (['testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { rows[0].addresses = []; // pools.json only contains mainnet addresses - } else { + } else if (parse) { rows[0].addresses = JSON.parse(rows[0].addresses); } @@ -103,6 +110,116 @@ class PoolsRepository { throw e; } } + + /** + * Get a mining pool info by its unique id + */ + public async $getPoolByUniqueId(id: number, parse: boolean = true): Promise { + const query = ` + SELECT * + FROM pools + WHERE pools.unique_id = ?`; + + try { + const [rows]: any[] = await DB.query(query, [id]); + + if (rows.length < 1) { + return null; + } + + if (parse) { + rows[0].regexes = JSON.parse(rows[0].regexes); + } + if (['testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { + rows[0].addresses = []; // pools.json only contains mainnet addresses + } else if (parse) { + rows[0].addresses = JSON.parse(rows[0].addresses); + } + + return rows[0]; + } catch (e) { + logger.err('Cannot get pool from db. Reason: ' + (e instanceof Error ? e.message : e)); + throw e; + } + } + + /** + * Insert a new mining pool in the database + * + * @param pool + */ + public async $insertNewMiningPool(pool: any, slug: string): Promise { + try { + await DB.query(` + INSERT INTO pools + SET name = ?, link = ?, addresses = ?, regexes = ?, slug = ?, unique_id = ?`, + [pool.name, pool.link, JSON.stringify(pool.addresses), JSON.stringify(pool.tags), slug, pool.id] + ); + } catch (e: any) { + logger.err(`Cannot insert new mining pool into db. Reason: ` + (e instanceof Error ? e.message : e)); + } + } + + /** + * Rename an existing mining pool + * + * @param dbId + * @param newSlug + * @param newName + */ + public async $renameMiningPool(dbId: number, newSlug: string, newName: string): Promise { + try { + await DB.query(` + UPDATE pools + SET slug = ?, name = ? + WHERE id = ?`, + [newSlug, newName, dbId] + ); + } catch (e: any) { + logger.err(`Cannot rename mining pool id ${dbId}. Reason: ` + (e instanceof Error ? e.message : e)); + } + } + + /** + * Update an exisiting mining pool link + * + * @param dbId + * @param newLink + */ + public async $updateMiningPoolLink(dbId: number, newLink: string): Promise { + try { + await DB.query(` + UPDATE pools + SET link = ? + WHERE id = ?`, + [newLink, dbId] + ); + } catch (e: any) { + logger.err(`Cannot update link for mining pool id ${dbId}. Reason: ` + (e instanceof Error ? e.message : e)); + } + + } + + /** + * Update an existing mining pool addresses or coinbase tags + * + * @param dbId + * @param addresses + * @param regexes + */ + public async $updateMiningPoolTags(dbId: number, addresses: string, regexes: string): Promise { + try { + await DB.query(` + UPDATE pools + SET addresses = ?, regexes = ? + WHERE id = ?`, + [JSON.stringify(addresses), JSON.stringify(regexes), dbId] + ); + } catch (e: any) { + logger.err(`Cannot update mining pool id ${dbId}. Reason: ` + (e instanceof Error ? e.message : e)); + } + } + } export default new PoolsRepository(); diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index 086a00cea..8e78c44e6 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -61,9 +61,24 @@ class PoolsUpdater { if (poolsJson === undefined) { return; } - await poolsParser.migratePoolsJson(poolsJson); - await this.updateDBSha(githubSha); - logger.notice(`PoolsUpdater completed`, logger.tags.mining); + poolsParser.setMiningPools(poolsJson); + + if (config.DATABASE.ENABLED === false) { // Don't run db operations + logger.info('Mining pools.json import completed (no database)'); + return; + } + + try { + await DB.query('START TRANSACTION;'); + await poolsParser.migratePoolsJson(poolsJson); + await this.updateDBSha(githubSha); + await DB.query('START TRANSACTION;'); + await DB.query('COMMIT;'); + } catch (e) { + logger.err(`Could not migrate mining pools, rolling back. Reason: ${e instanceof Error ? e.message : e}`); + await DB.query('ROLLBACK;'); + } + logger.notice('PoolsUpdater completed'); } catch (e) { this.lastRun = now - (oneWeek - oneDay); // Try again in 24h instead of waiting next week @@ -106,8 +121,8 @@ class PoolsUpdater { const response = await this.query(this.treeUrl); if (response !== undefined) { - for (const file of response['tree']) { - if (file['path'] === 'pools.json') { + for (const file of response) { + if (file['name'] === 'pool-list.json') { return file['sha']; } } @@ -120,7 +135,7 @@ class PoolsUpdater { /** * Http request wrapper */ - private async query(path): Promise { + private async query(path): Promise { type axiosOptions = { headers: { 'User-Agent': string From d87fb04a920bd4c630a58ec38c0ff016e8ec08ed Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 12 Feb 2023 22:15:24 +0900 Subject: [PATCH 0400/1466] Point to the new mining pool files pools-v2.json --- backend/src/config.ts | 2 +- backend/src/tasks/pools-updater.ts | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/backend/src/config.ts b/backend/src/config.ts index ecd5c80aa..8ccd7e2e4 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -148,7 +148,7 @@ const defaults: IConfig = { 'USER_AGENT': 'mempool', 'STDOUT_LOG_MIN_PRIORITY': 'debug', 'AUTOMATIC_BLOCK_REINDEXING': false, - 'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', + 'POOLS_JSON_URL': 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json', 'POOLS_JSON_TREE_URL': 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', 'AUDIT': false, 'ADVANCED_GBT_AUDIT': false, diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index 8e78c44e6..a58e2177a 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -8,7 +8,7 @@ import { SocksProxyAgent } from 'socks-proxy-agent'; import * as https from 'https'; /** - * Maintain the most recent version of pools.json + * Maintain the most recent version of pools-v2.json */ class PoolsUpdater { lastRun: number = 0; @@ -38,7 +38,7 @@ class PoolsUpdater { } try { - const githubSha = await this.fetchPoolsSha(); // Fetch pools.json sha from github + const githubSha = await this.fetchPoolsSha(); // Fetch pools-v2.json sha from github if (githubSha === undefined) { return; } @@ -47,15 +47,15 @@ class PoolsUpdater { this.currentSha = await this.getShaFromDb(); } - logger.debug(`Pools.json sha | Current: ${this.currentSha} | Github: ${githubSha}`); + logger.debug(`pools-v2.json sha | Current: ${this.currentSha} | Github: ${githubSha}`); if (this.currentSha !== undefined && this.currentSha === githubSha) { return; } if (this.currentSha === undefined) { - logger.info(`Downloading pools.json for the first time from ${this.poolsUrl}`, logger.tags.mining); + logger.info(`Downloading pools-v2.json for the first time from ${this.poolsUrl}`, logger.tags.mining); } else { - logger.warn(`Pools.json is outdated, fetch latest from ${this.poolsUrl}`, logger.tags.mining); + logger.warn(`pools-v2.json is outdated, fetch latest from ${this.poolsUrl}`, logger.tags.mining); } const poolsJson = await this.query(this.poolsUrl); if (poolsJson === undefined) { @@ -64,7 +64,7 @@ class PoolsUpdater { poolsParser.setMiningPools(poolsJson); if (config.DATABASE.ENABLED === false) { // Don't run db operations - logger.info('Mining pools.json import completed (no database)'); + logger.info('Mining pools-v2.json import completed (no database)'); return; } @@ -87,7 +87,7 @@ class PoolsUpdater { } /** - * Fetch our latest pools.json sha from the db + * Fetch our latest pools-v2.json sha from the db */ private async updateDBSha(githubSha: string): Promise { this.currentSha = githubSha; @@ -96,39 +96,39 @@ class PoolsUpdater { await DB.query('DELETE FROM state where name="pools_json_sha"'); await DB.query(`INSERT INTO state VALUES('pools_json_sha', NULL, '${githubSha}')`); } catch (e) { - logger.err('Cannot save github pools.json sha into the db. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); + logger.err('Cannot save github pools-v2.json sha into the db. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); } } } /** - * Fetch our latest pools.json sha from the db + * Fetch our latest pools-v2.json sha from the db */ private async getShaFromDb(): Promise { try { const [rows]: any[] = await DB.query('SELECT string FROM state WHERE name="pools_json_sha"'); return (rows.length > 0 ? rows[0].string : undefined); } catch (e) { - logger.err('Cannot fetch pools.json sha from db. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); + logger.err('Cannot fetch pools-v2.json sha from db. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); return undefined; } } /** - * Fetch our latest pools.json sha from github + * Fetch our latest pools-v2.json sha from github */ private async fetchPoolsSha(): Promise { const response = await this.query(this.treeUrl); if (response !== undefined) { - for (const file of response) { - if (file['name'] === 'pool-list.json') { + for (const file of response['tree']) { + if (file['path'] === 'pools-v2.json') { return file['sha']; } } } - logger.err(`Cannot find "pools.json" in git tree (${this.treeUrl})`, logger.tags.mining); + logger.err(`Cannot find "pools-v2.json" in git tree (${this.treeUrl})`, logger.tags.mining); return undefined; } From 117aa1375d4570c14df319b7776aa44e97544219 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 12 Feb 2023 22:44:04 +0900 Subject: [PATCH 0401/1466] Disable mining pools update if AUTOMATIC_BLOCK_REINDEXING is not set - Re-index unknown blocks when a new pool is added --- backend/src/api/pools-parser.ts | 11 +++++++++++ backend/src/tasks/pools-updater.ts | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index 4ba38876d..7632f1207 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -37,6 +37,7 @@ class PoolsParser { const slug = pool.name.replace(/[^a-z0-9]/gi, '').toLowerCase(); logger.debug(`Inserting new mining pool ${pool.name}`); await PoolsRepository.$insertNewMiningPool(pool, slug); + await this.$deleteUnknownBlocks(); } else { if (poolDB.name !== pool.name) { // Pool has been renamed @@ -126,6 +127,16 @@ class PoolsParser { [pool.id] ); } + + private async $deleteUnknownBlocks(): Promise { + const [unknownPool] = await DB.query(`SELECT id from pools where slug = "unknown"`); + logger.notice(`Deleting blocks with unknown mining pool from height 130635 for re-indexing`); + await DB.query(` + DELETE FROM blocks + WHERE pool_id = ? AND height >= 130635`, + [unknownPool[0].id] + ); + } } export default new PoolsParser(); diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index a58e2177a..cbe137163 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -17,6 +17,11 @@ class PoolsUpdater { treeUrl: string = config.MEMPOOL.POOLS_JSON_TREE_URL; public async updatePoolsJson(): Promise { + if (config.MEMPOOL.AUTOMATIC_BLOCK_REINDEXING === false) { + logger.info(`Not updating mining pools to avoid inconsistency because AUTOMATIC_BLOCK_REINDEXING is set to false`) + return; + } + if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { return; } From 6cd42cfc73b346daa64992201e8312dcb722f403 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 13 Feb 2023 10:16:41 +0900 Subject: [PATCH 0402/1466] Update missing POOLS_JSON_URL config --- backend/src/__tests__/config.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/__tests__/config.test.ts b/backend/src/__tests__/config.test.ts index 1e4c05ae3..5717808dd 100644 --- a/backend/src/__tests__/config.test.ts +++ b/backend/src/__tests__/config.test.ts @@ -36,7 +36,7 @@ describe('Mempool Backend Config', () => { USER_AGENT: 'mempool', STDOUT_LOG_MIN_PRIORITY: 'debug', POOLS_JSON_TREE_URL: 'https://api.github.com/repos/mempool/mining-pools/git/trees/master', - POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json', + POOLS_JSON_URL: 'https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json', AUDIT: false, ADVANCED_GBT_AUDIT: false, ADVANCED_GBT_MEMPOOL: false, From c2f5cb95290a020fc7f72912c24e3916f5558e18 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 16 Feb 2023 09:09:14 +0900 Subject: [PATCH 0403/1466] Update pool parser to work with no database --- backend/src/api/pools-parser.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index 7632f1207..f322578cb 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -16,6 +16,11 @@ class PoolsParser { public setMiningPools(pools): void { this.miningPools = pools; + for (const pool of this.miningPools) { + pool.regexes = JSON.stringify(pool.tags); + pool.addresses = JSON.stringify(pool.addresses); + delete pool.tags; + } } /** From ad9e42db2640cb762e1635550ebd42c601a71210 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 24 Feb 2023 21:35:13 +0900 Subject: [PATCH 0404/1466] Use regexes instead of tags --- backend/src/api/pools-parser.ts | 30 +++++++++++++-------- backend/src/repositories/PoolsRepository.ts | 2 +- backend/src/tasks/pools-updater.ts | 2 +- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index f322578cb..4e67ce98b 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -13,24 +13,32 @@ class PoolsParser { 'addresses': '[]', 'slug': 'unknown' }; + private uniqueLogs: string[] = []; + + private uniqueLog(loggerFunction: any, msg: string): void { + if (this.uniqueLogs.includes(msg)) { + return; + } + this.uniqueLogs.push(msg); + loggerFunction(msg); + } public setMiningPools(pools): void { - this.miningPools = pools; - for (const pool of this.miningPools) { - pool.regexes = JSON.stringify(pool.tags); - pool.addresses = JSON.stringify(pool.addresses); - delete pool.tags; + for (const pool of pools) { + pool.regexes = pool.tags; + delete(pool.tags); } + this.miningPools = pools; } /** * Populate our db with updated mining pool definition * @param pools */ - public async migratePoolsJson(pools: any[]): Promise { + public async migratePoolsJson(): Promise { await this.$insertUnknownPool(); - for (const pool of pools) { + for (const pool of this.miningPools) { if (!pool.id) { logger.info(`Mining pool ${pool.name} has no unique 'id' defined. Skipping.`); continue; @@ -56,10 +64,10 @@ class PoolsParser { await PoolsRepository.$updateMiningPoolLink(poolDB.id, pool.link); } if (JSON.stringify(pool.addresses) !== poolDB.addresses || - JSON.stringify(pool.tags) !== poolDB.regexes) { + JSON.stringify(pool.regexes) !== poolDB.regexes) { // Pool addresses changed or coinbase tags changed logger.notice(`Updating addresses and/or coinbase tags for ${pool.name} mining pool. If 'AUTOMATIC_BLOCK_REINDEXING' is enabled, we will re-index its blocks and 'unknown' blocks`); - await PoolsRepository.$updateMiningPoolTags(poolDB.id, pool.addresses, pool.tags); + await PoolsRepository.$updateMiningPoolTags(poolDB.id, pool.addresses, pool.regexes); await this.$deleteBlocksForPool(poolDB); } } @@ -119,7 +127,7 @@ class PoolsParser { ); const oldestBlockHeight = oldestPoolBlock.length ?? 0 > 0 ? oldestPoolBlock[0].height : 130635; const [unknownPool] = await DB.query(`SELECT id from pools where slug = "unknown"`); - logger.notice(`Deleting blocks with unknown mining pool from height ${oldestBlockHeight} for re-indexing`); + this.uniqueLog(logger.notice, `Deleting blocks with unknown mining pool from height ${oldestBlockHeight} for re-indexing`); await DB.query(` DELETE FROM blocks WHERE pool_id = ? AND height >= ${oldestBlockHeight}`, @@ -135,7 +143,7 @@ class PoolsParser { private async $deleteUnknownBlocks(): Promise { const [unknownPool] = await DB.query(`SELECT id from pools where slug = "unknown"`); - logger.notice(`Deleting blocks with unknown mining pool from height 130635 for re-indexing`); + this.uniqueLog(logger.notice, `Deleting blocks with unknown mining pool from height 130635 for re-indexing`); await DB.query(` DELETE FROM blocks WHERE pool_id = ? AND height >= 130635`, diff --git a/backend/src/repositories/PoolsRepository.ts b/backend/src/repositories/PoolsRepository.ts index 35319157e..63bddd497 100644 --- a/backend/src/repositories/PoolsRepository.ts +++ b/backend/src/repositories/PoolsRepository.ts @@ -153,7 +153,7 @@ class PoolsRepository { await DB.query(` INSERT INTO pools SET name = ?, link = ?, addresses = ?, regexes = ?, slug = ?, unique_id = ?`, - [pool.name, pool.link, JSON.stringify(pool.addresses), JSON.stringify(pool.tags), slug, pool.id] + [pool.name, pool.link, JSON.stringify(pool.addresses), JSON.stringify(pool.regexes), slug, pool.id] ); } catch (e: any) { logger.err(`Cannot insert new mining pool into db. Reason: ` + (e instanceof Error ? e.message : e)); diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index cbe137163..6d5a86559 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -75,7 +75,7 @@ class PoolsUpdater { try { await DB.query('START TRANSACTION;'); - await poolsParser.migratePoolsJson(poolsJson); + await poolsParser.migratePoolsJson(); await this.updateDBSha(githubSha); await DB.query('START TRANSACTION;'); await DB.query('COMMIT;'); From 3d38064dbbc7e76e3204b0d339161575ef3d7b22 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 16:48:11 +0900 Subject: [PATCH 0405/1466] Increase db schema version to 56 --- backend/src/api/database-migration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 6f9da8cc1..3140ea358 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository'; import { RowDataPacket } from 'mysql2'; class DatabaseMigration { - private static currentVersion = 55; + private static currentVersion = 56; private queryTimeout = 3600_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; From 2363a397f1f4ea3ee366f395a8ad8aaae1576c20 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 17:05:58 +0900 Subject: [PATCH 0406/1466] Remove duplicated db transaction --- backend/src/tasks/pools-updater.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index 6d5a86559..1ac87e695 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -77,7 +77,6 @@ class PoolsUpdater { await DB.query('START TRANSACTION;'); await poolsParser.migratePoolsJson(); await this.updateDBSha(githubSha); - await DB.query('START TRANSACTION;'); await DB.query('COMMIT;'); } catch (e) { logger.err(`Could not migrate mining pools, rolling back. Reason: ${e instanceof Error ? e.message : e}`); From 9395a5031e4742269f12e3c7e99b1fee099682d6 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 17:12:50 +0900 Subject: [PATCH 0407/1466] Log the whole exception in pool parser --- backend/src/tasks/pools-updater.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index 1ac87e695..8aa73376f 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -79,14 +79,14 @@ class PoolsUpdater { await this.updateDBSha(githubSha); await DB.query('COMMIT;'); } catch (e) { - logger.err(`Could not migrate mining pools, rolling back. Reason: ${e instanceof Error ? e.message : e}`); + logger.err(`Could not migrate mining pools, rolling back. Exception: ${JSON.stringify(e)}`, logger.tags.mining); await DB.query('ROLLBACK;'); } logger.notice('PoolsUpdater completed'); } catch (e) { this.lastRun = now - (oneWeek - oneDay); // Try again in 24h instead of waiting next week - logger.err(`PoolsUpdater failed. Will try again in 24h. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.mining); + logger.err(`PoolsUpdater failed. Will try again in 24h. Exception: ${JSON.stringify(e)}`, logger.tags.mining); } } From 6d1e6a92ad5b120ea0c41a8709fec66872cf20ac Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 13 Feb 2023 14:23:32 +0900 Subject: [PATCH 0408/1466] [LND] Nullify zeroed timestamps --- backend/src/api/common.ts | 5 ++++- backend/src/api/database-migration.ts | 7 ++++++- backend/src/api/explorer/channels.api.ts | 11 +++++++++++ backend/src/api/explorer/nodes.api.ts | 5 +++++ backend/src/api/lightning/lightning-api.interface.ts | 6 +++--- backend/src/tasks/lightning/network-sync.service.ts | 2 +- 6 files changed, 30 insertions(+), 6 deletions(-) diff --git a/backend/src/api/common.ts b/backend/src/api/common.ts index 954c1a17d..77597eb0c 100644 --- a/backend/src/api/common.ts +++ b/backend/src/api/common.ts @@ -237,7 +237,10 @@ export class Common { ].join('x'); } - static utcDateToMysql(date?: number): string { + static utcDateToMysql(date?: number | null): string | null { + if (date === null) { + return null; + } const d = new Date((date || 0) * 1000); return d.toISOString().split('T')[0] + ' ' + d.toTimeString().split(' ')[0]; } diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 3140ea358..401fb0b2c 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository'; import { RowDataPacket } from 'mysql2'; class DatabaseMigration { - private static currentVersion = 56; + private static currentVersion = 57; private queryTimeout = 3600_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -500,6 +500,11 @@ class DatabaseMigration { this.uniqueLog(logger.notice, '`pools` table has been truncated`'); await this.updateToSchemaVersion(56); } + + if (databaseSchemaVersion < 57) { + await this.$executeQuery(`ALTER TABLE nodes MODIFY updated_at datetime NULL`); + await this.updateToSchemaVersion(57); + } } /** diff --git a/backend/src/api/explorer/channels.api.ts b/backend/src/api/explorer/channels.api.ts index 8314b3345..00d146770 100644 --- a/backend/src/api/explorer/channels.api.ts +++ b/backend/src/api/explorer/channels.api.ts @@ -559,6 +559,17 @@ class ChannelsApi { const policy1: Partial = channel.node1_policy || {}; const policy2: Partial = channel.node2_policy || {}; + // https://github.com/mempool/mempool/issues/3006 + if ((channel.last_update ?? 0) < 1514736061) { // January 1st 2018 + channel.last_update = null; + } + if ((policy1.last_update ?? 0) < 1514736061) { // January 1st 2018 + policy1.last_update = null; + } + if ((policy2.last_update ?? 0) < 1514736061) { // January 1st 2018 + policy2.last_update = null; + } + const query = `INSERT INTO channels ( id, diff --git a/backend/src/api/explorer/nodes.api.ts b/backend/src/api/explorer/nodes.api.ts index b3f83faa6..9e57e7802 100644 --- a/backend/src/api/explorer/nodes.api.ts +++ b/backend/src/api/explorer/nodes.api.ts @@ -630,6 +630,11 @@ class NodesApi { */ public async $saveNode(node: ILightningApi.Node): Promise { try { + // https://github.com/mempool/mempool/issues/3006 + if ((node.last_update ?? 0) < 1514736061) { // January 1st 2018 + node.last_update = null; + } + const sockets = (node.addresses?.map(a => a.addr).join(',')) ?? ''; const query = `INSERT INTO nodes( public_key, diff --git a/backend/src/api/lightning/lightning-api.interface.ts b/backend/src/api/lightning/lightning-api.interface.ts index 453e2fffc..cd5cb973d 100644 --- a/backend/src/api/lightning/lightning-api.interface.ts +++ b/backend/src/api/lightning/lightning-api.interface.ts @@ -21,7 +21,7 @@ export namespace ILightningApi { export interface Channel { channel_id: string; chan_point: string; - last_update: number; + last_update: number | null; node1_pub: string; node2_pub: string; capacity: string; @@ -36,11 +36,11 @@ export namespace ILightningApi { fee_rate_milli_msat: string; disabled: boolean; max_htlc_msat: string; - last_update: number; + last_update: number | null; } export interface Node { - last_update: number; + last_update: number | null; pub_key: string; alias: string; addresses: { diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index fdef7ecae..3e5ae1366 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -72,7 +72,7 @@ class NetworkSyncService { const graphNodesPubkeys: string[] = []; for (const node of nodes) { const latestUpdated = await channelsApi.$getLatestChannelUpdateForNode(node.pub_key); - node.last_update = Math.max(node.last_update, latestUpdated); + node.last_update = Math.max(node.last_update ?? 0, latestUpdated); await nodesApi.$saveNode(node); graphNodesPubkeys.push(node.pub_key); From 333aef5e94ce66360e2d6066b8e5de2eb2d33d74 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Sat, 25 Feb 2023 04:23:45 -0500 Subject: [PATCH 0409/1466] Update legal notices for 2023 --- LICENSE | 2 +- frontend/src/app/components/about/about.component.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 966417847..ac267d120 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ The Mempool Open Source Project -Copyright (c) 2019-2022 The Mempool Open Source Project Developers +Copyright (c) 2019-2023 The Mempool Open Source Project Developers This program is free software; you can redistribute it and/or modify it under the terms of (at your option) either: diff --git a/frontend/src/app/components/about/about.component.html b/frontend/src/app/components/about/about.component.html index 876bec028..03323b6ed 100644 --- a/frontend/src/app/components/about/about.component.html +++ b/frontend/src/app/components/about/about.component.html @@ -352,7 +352,7 @@ -
    +

    Enterprise Sponsors 🚀

    -
    +

    Community Sponsors ❤️

    @@ -187,7 +187,7 @@
    -
    + -
    +

    Community Alliances

    -
    +

    Project Translators

    @@ -311,7 +311,7 @@ -
    +

    Project Contributors

    @@ -323,7 +323,7 @@
    -
    +

    Project Members

    @@ -336,7 +336,7 @@
    -
    +

    Project Maintainers

    diff --git a/frontend/src/app/components/about/about.component.scss b/frontend/src/app/components/about/about.component.scss index 8390ce0ba..ae60e052e 100644 --- a/frontend/src/app/components/about/about.component.scss +++ b/frontend/src/app/components/about/about.component.scss @@ -46,6 +46,7 @@ .maintainers { margin-top: 68px; margin-bottom: 68px; + scroll-margin: 30px; } .maintainers { @@ -117,6 +118,7 @@ .project-translators, .community-integrations-sponsor, .maintainers { + scroll-margin: 30px; .wrapper { display: inline-block; a { diff --git a/frontend/src/app/components/about/about.component.ts b/frontend/src/app/components/about/about.component.ts index d26efb411..33c6ac5a2 100644 --- a/frontend/src/app/components/about/about.component.ts +++ b/frontend/src/app/components/about/about.component.ts @@ -5,7 +5,7 @@ import { StateService } from '../../services/state.service'; import { Observable } from 'rxjs'; import { ApiService } from '../../services/api.service'; import { IBackendInfo } from '../../interfaces/websocket.interface'; -import { Router } from '@angular/router'; +import { Router, ActivatedRoute } from '@angular/router'; import { map } from 'rxjs/operators'; import { ITranslators } from '../../interfaces/node-api.interface'; @@ -31,6 +31,7 @@ export class AboutComponent implements OnInit { public stateService: StateService, private apiService: ApiService, private router: Router, + private route: ActivatedRoute, @Inject(LOCALE_ID) public locale: string, ) { } @@ -60,6 +61,17 @@ export class AboutComponent implements OnInit { }) ); } + + ngAfterViewInit() { + const that = this; + setTimeout( () => { + if( this.route.snapshot.fragment ) { + if (document.getElementById( this.route.snapshot.fragment )) { + document.getElementById( this.route.snapshot.fragment ).scrollIntoView({behavior: "smooth", block: "center"}); + } + } + }, 1 ); + } sponsor(): void { if (this.officialMempoolSpace && this.stateService.env.BASE_MODULE === 'mempool') { From d3b681dca2d8b5ac931f592e443c1b9d67d0e3a1 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sat, 25 Feb 2023 13:45:43 +0400 Subject: [PATCH 0411/1466] Localizing search box strings, channel tags fixes #3124 fixes #3128 fixes #3083 --- .../search-results.component.html | 24 +- .../closing-type/closing-type.component.ts | 8 +- .../channels-statistics.component.html | 4 +- frontend/src/locale/messages.xlf | 477 ++++++++++++------ 4 files changed, 335 insertions(+), 178 deletions(-) diff --git a/frontend/src/app/components/search-form/search-results/search-results.component.html b/frontend/src/app/components/search-form/search-results/search-results.component.html index a13228170..b0d043f53 100644 --- a/frontend/src/app/components/search-form/search-results/search-results.component.html +++ b/frontend/src/app/components/search-form/search-results/search-results.component.html @@ -1,30 +1,30 @@ + +Go to "{{ x }}" diff --git a/frontend/src/app/lightning/channel/closing-type/closing-type.component.ts b/frontend/src/app/lightning/channel/closing-type/closing-type.component.ts index 5aa6158d3..b6313250f 100644 --- a/frontend/src/app/lightning/channel/closing-type/closing-type.component.ts +++ b/frontend/src/app/lightning/channel/closing-type/closing-type.component.ts @@ -17,19 +17,19 @@ export class ClosingTypeComponent implements OnChanges { getLabelFromType(type: number): { label: string; class: string } { switch (type) { case 1: return { - label: 'Mutually closed', + label: $localize`Mutually closed`, class: 'success', }; case 2: return { - label: 'Force closed', + label: $localize`Force closed`, class: 'warning', }; case 3: return { - label: 'Force closed with penalty', + label: $localize`Force closed with penalty`, class: 'danger', }; default: return { - label: 'Unknown', + label: $localize`:@@e5d8bb389c702588877f039d72178f219453a72d:Unknown`, class: 'secondary', }; } diff --git a/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html b/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html index 44e19b8f6..31b4c33af 100644 --- a/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html +++ b/frontend/src/app/lightning/channels-statistics/channels-statistics.component.html @@ -1,9 +1,9 @@
    avg + [ngClass]="{'inactive': mode === 'avg'}">avg | med + [ngClass]="{'inactive': mode === 'med'}">med
    diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index a4154cbcd..a8e49fbb2 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -323,11 +323,7 @@ src/app/components/block/block.component.html - 303,304 - - - src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 310,311 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -347,11 +343,7 @@ src/app/components/block/block.component.html - 304,305 - - - src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 311,312 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -550,7 +542,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -717,14 +709,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -734,14 +734,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -916,7 +924,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -960,7 +968,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -975,11 +983,11 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1028,7 +1036,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1056,7 +1064,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1067,10 +1075,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1082,11 +1086,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1112,11 +1116,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1132,11 +1136,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1153,7 +1157,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1171,7 +1175,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1186,7 +1190,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1454,7 +1458,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1470,7 +1474,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1897,7 +1901,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -1912,7 +1916,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -1923,7 +1927,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -1935,15 +1939,15 @@ Indexing blocks src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -1986,7 +1990,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2011,11 +2015,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2028,11 +2032,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2061,19 +2065,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2113,27 +2117,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2141,7 +2145,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2154,11 +2158,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2261,7 +2265,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2289,11 +2293,11 @@ Size src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2321,7 +2325,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2332,11 +2336,11 @@ Weight src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2348,7 +2352,18 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2381,7 +2396,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2397,11 +2412,11 @@ src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2418,7 +2433,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2430,7 +2445,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2479,6 +2494,14 @@ src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2501,7 +2524,7 @@ Fee span src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2513,7 +2536,7 @@ Based on average native segwit transaction of 140 vBytes src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2537,15 +2560,15 @@ Transaction fee tooltip - - Subsidy + fees: + + Subsidy + fees src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees @@ -2554,7 +2577,7 @@ Expected src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2562,11 +2585,11 @@ beta src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2574,7 +2597,7 @@ Actual src/app/components/block/block.component.html - 211,215 + 218,222 block.actual @@ -2582,7 +2605,7 @@ Expected Block src/app/components/block/block.component.html - 215 + 222 block.expected-block @@ -2590,7 +2613,7 @@ Actual Block src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2598,7 +2621,7 @@ Bits src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2606,7 +2629,7 @@ Merkle root src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2614,7 +2637,7 @@ Difficulty src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2642,7 +2665,7 @@ Nonce src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2650,7 +2673,7 @@ Block Header Hex src/app/components/block/block.component.html - 272,273 + 279,280 block.header @@ -2658,7 +2681,7 @@ Audit src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2667,11 +2690,11 @@ Details src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2692,11 +2715,11 @@ Error loading data. src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2720,10 +2743,29 @@ Why is this block empty? src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation + + transaction + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 47 + + shared.transaction-count.singular + + + transactions + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 49 + + shared.transaction-count.plural + Pool @@ -2824,7 +2866,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3045,7 +3087,7 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions @@ -3057,7 +3099,7 @@ src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3069,7 +3111,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3082,7 +3124,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3428,6 +3470,31 @@ dashboard.adjustments + + Broadcast Transaction + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) @@ -3488,7 +3555,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3516,11 +3583,23 @@ mining.rank + + Avg Health + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3528,7 +3607,7 @@ All miners src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3536,7 +3615,7 @@ Pools Luck (1w) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3544,7 +3623,7 @@ Pools Count (1w) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3552,7 +3631,7 @@ Mining Pools src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3766,23 +3845,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex @@ -3791,7 +3853,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -3905,6 +3967,70 @@ search-form.search-title + + Bitcoin Block Height + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) @@ -4176,7 +4302,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4185,7 +4311,7 @@ First seen src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4218,7 +4344,7 @@ ETA src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4227,7 +4353,7 @@ In several hours (or more) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4236,11 +4362,11 @@ Descendant src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4249,7 +4375,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4258,11 +4384,11 @@ Flow src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4271,7 +4397,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4279,7 +4405,7 @@ Show more src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4295,7 +4421,7 @@ Show less src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4307,7 +4433,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4315,7 +4441,7 @@ Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4323,7 +4449,7 @@ Transaction not found. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4331,7 +4457,7 @@ Waiting for it to appear in the mempool... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4339,7 +4465,7 @@ Effective fee rate src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4472,7 +4598,7 @@ Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4480,7 +4606,7 @@ remaining src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4709,19 +4835,11 @@ dashboard.latest-transactions - - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -4730,7 +4848,7 @@ Purging src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -4739,7 +4857,7 @@ Memory usage src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -4748,7 +4866,7 @@ L-BTC in circulation src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation @@ -5059,7 +5177,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5198,6 +5316,27 @@ 37 + + Mutually closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open @@ -5318,6 +5457,22 @@ shared.sats + + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity @@ -5434,11 +5589,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5506,11 +5661,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5674,11 +5829,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -5902,7 +6057,7 @@ No geolocation data available src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 From ba1cc05979ea187d0544dd77f94b5a344ddbf2c5 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Wed, 23 Nov 2022 04:08:42 -0500 Subject: [PATCH 0412/1466] Add i18n tag for big faq disclaimer --- frontend/src/app/docs/api-docs/api-docs.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index e7fb5af63..47332abc3 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -10,7 +10,7 @@
    -
    AliasAlias Channels Capacity {{ currency$ | async }} First seen Last updateLocationLocation
    +
    Alias Liquidity{{ currency$ | async }}{{ currency$ | async }} Channels First seen Last update + diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss index b7ed8cf04..452122d8e 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.scss @@ -45,4 +45,7 @@ tr, td, th { width: 15%; font-family: monospace; font-size: 14px; + @media (max-width: 991px) { + display: none !important; + } } diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html index 538cae1c2..4bab712a8 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html @@ -14,7 +14,7 @@ {{ currency$ | async }} First seen Last updateLocationLocation
    - {{ node.channels | number }} + {{ node.channels ? (node.channels | number) : '~' }} @@ -40,7 +40,7 @@ +

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    +

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    From 0b9c64483c220d380c00117b3793bb6c637b9107 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sat, 25 Feb 2023 14:23:54 +0400 Subject: [PATCH 0413/1466] Extracting i18n with new faq disclaimer --- frontend/src/locale/messages.xlf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index a8e49fbb2..486faec90 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -4870,6 +4870,14 @@ dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service From 6b49096fa970cc29cdf2124f12b049658dd7aad8 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sat, 25 Feb 2023 14:28:04 +0400 Subject: [PATCH 0414/1466] Fix for duplicate i18n strings --- .../blockchain-blocks.component.html | 6 ++--- frontend/src/locale/messages.xlf | 27 ++++++------------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html index d5decd415..746c5fa5c 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -43,10 +43,8 @@
    - {{ i }} - transaction - {{ i }} - transactions + {{ i }} transaction + {{ i }} transactions
    diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index 486faec90..181b860b3 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -325,6 +325,10 @@ src/app/components/block/block.component.html 310,311
    + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 46,47 + src/app/components/mempool-blocks/mempool-blocks.component.html 21,22 @@ -345,6 +349,10 @@ src/app/components/block/block.component.html 311,312 + + src/app/components/blockchain-blocks/blockchain-blocks.component.html + 47,48 + src/app/components/mempool-blocks/mempool-blocks.component.html 22,23 @@ -2747,25 +2755,6 @@ block.empty-block-explanation
    - - transaction - - src/app/components/blockchain-blocks/blockchain-blocks.component.html - 47 - - shared.transaction-count.singular - - - transactions - - src/app/components/blockchain-blocks/blockchain-blocks.component.html - 49 - - shared.transaction-count.plural - Pool From f2e7dd51af3b653d318bebb0d83dc056b741640f Mon Sep 17 00:00:00 2001 From: softsimon Date: Sat, 25 Feb 2023 17:14:11 +0400 Subject: [PATCH 0415/1466] Fixing some i18n strings. --- .../block/block-preview.component.html | 2 +- .../node-fee-chart.component.ts | 8 ++--- frontend/src/locale/messages.xlf | 32 +++++++++++++------ 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/components/block/block-preview.component.html b/frontend/src/app/components/block/block-preview.component.html index 7300182f3..29da36373 100644 --- a/frontend/src/app/components/block/block-preview.component.html +++ b/frontend/src/app/components/block/block-preview.component.html @@ -8,7 +8,7 @@

    Genesis - {{ blockHeight }} + {{ blockHeight }}

    {{ blockHash.slice(0,32) }}

    diff --git a/frontend/src/app/lightning/node-fee-chart/node-fee-chart.component.ts b/frontend/src/app/lightning/node-fee-chart/node-fee-chart.component.ts index f0370d3e1..242ecc6ed 100644 --- a/frontend/src/app/lightning/node-fee-chart/node-fee-chart.component.ts +++ b/frontend/src/app/lightning/node-fee-chart/node-fee-chart.component.ts @@ -167,7 +167,7 @@ export class NodeFeeChartComponent implements OnInit { padding: 10, data: [ { - name: 'Outgoing Fees', + name: $localize`Outgoing Fees`, inactiveColor: 'rgb(110, 112, 121)', textStyle: { color: 'white', @@ -175,7 +175,7 @@ export class NodeFeeChartComponent implements OnInit { icon: 'roundRect', }, { - name: 'Incoming Fees', + name: $localize`Incoming Fees`, inactiveColor: 'rgb(110, 112, 121)', textStyle: { color: 'white', @@ -205,7 +205,7 @@ export class NodeFeeChartComponent implements OnInit { series: outgoingData.length === 0 ? undefined : [ { zlevel: 0, - name: 'Outgoing Fees', + name: $localize`Outgoing Fees`, data: outgoingData.map(bucket => ({ value: bucket.capacity, label: bucket.label, @@ -219,7 +219,7 @@ export class NodeFeeChartComponent implements OnInit { }, { zlevel: 0, - name: 'Incoming Fees', + name: $localize`Incoming Fees`, data: incomingData.map(bucket => ({ value: -bucket.capacity, label: bucket.label, diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index 181b860b3..3e4c29cfe 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -2386,16 +2386,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee @@ -5818,6 +5808,28 @@ lightning.node-fee-distribution + + Outgoing Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week From 32733a30230ef8bea9c8d6afc97883f157d690a0 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 26 Feb 2023 11:30:12 +0900 Subject: [PATCH 0416/1466] When we re-index blocks due to mining pools change, wipe the nodejs backend cache --- backend/src/api/disk-cache.ts | 1 + backend/src/api/pools-parser.ts | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/backend/src/api/disk-cache.ts b/backend/src/api/disk-cache.ts index a75fd43cc..e466982ad 100644 --- a/backend/src/api/disk-cache.ts +++ b/backend/src/api/disk-cache.ts @@ -62,6 +62,7 @@ class DiskCache { } wipeCache() { + logger.notice(`Wipping nodejs backend cache/cache*.json files`); fs.unlinkSync(DiskCache.FILE_NAME); for (let i = 1; i < DiskCache.CHUNK_FILES; i++) { fs.unlinkSync(DiskCache.FILE_NAMES.replace('{number}', i.toString())); diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index 4e67ce98b..d1705b829 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -3,6 +3,7 @@ import logger from '../logger'; import config from '../config'; import PoolsRepository from '../repositories/PoolsRepository'; import { PoolTag } from '../mempool.interfaces'; +import diskCache from './disk-cache'; class PoolsParser { miningPools: any[] = []; @@ -139,6 +140,10 @@ class PoolsParser { WHERE pool_id = ?`, [pool.id] ); + + // We also need to wipe the backend cache to make sure we don't serve blocks with + // the wrong mining pool (usually happen with unknown blocks) + diskCache.wipeCache(); } private async $deleteUnknownBlocks(): Promise { @@ -149,6 +154,10 @@ class PoolsParser { WHERE pool_id = ? AND height >= 130635`, [unknownPool[0].id] ); + + // We also need to wipe the backend cache to make sure we don't serve blocks with + // the wrong mining pool (usually happen with unknown blocks) + diskCache.wipeCache(); } } From 9a4a5ad94e0f1eed983de118a1f9ced4719dc5f5 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 26 Feb 2023 11:37:57 +0900 Subject: [PATCH 0417/1466] Silence ENOENT exception when we wipe the nodejs backend cache --- backend/src/api/disk-cache.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/src/api/disk-cache.ts b/backend/src/api/disk-cache.ts index e466982ad..c6af20e29 100644 --- a/backend/src/api/disk-cache.ts +++ b/backend/src/api/disk-cache.ts @@ -63,9 +63,23 @@ class DiskCache { wipeCache() { logger.notice(`Wipping nodejs backend cache/cache*.json files`); - fs.unlinkSync(DiskCache.FILE_NAME); + try { + fs.unlinkSync(DiskCache.FILE_NAME); + } catch (e: any) { + if (e?.code !== 'ENOENT') { + logger.err(`Cannot wipe cache file ${DiskCache.FILE_NAME}. Exception ${JSON.stringify(e)}`); + } + } + for (let i = 1; i < DiskCache.CHUNK_FILES; i++) { - fs.unlinkSync(DiskCache.FILE_NAMES.replace('{number}', i.toString())); + const filename = DiskCache.FILE_NAMES.replace('{number}', i.toString()); + try { + fs.unlinkSync(filename); + } catch (e: any) { + if (e?.code !== 'ENOENT') { + logger.err(`Cannot wipe cache file ${filename}. Exception ${JSON.stringify(e)}`); + } + } } } From 57fb305452446587d49299d47387522e87bc3b2b Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 26 Feb 2023 13:54:43 +0900 Subject: [PATCH 0418/1466] Update missing "pools.json" -> "pools-v2.json" --- backend/README.md | 2 +- backend/mempool-config.sample.json | 2 +- backend/src/api/pools-parser.ts | 4 ++-- backend/src/repositories/PoolsRepository.ts | 2 +- docker/README.md | 4 ++-- docker/backend/start.sh | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/README.md b/backend/README.md index d00dc1812..2024e00b9 100644 --- a/backend/README.md +++ b/backend/README.md @@ -160,7 +160,7 @@ npm install -g ts-node nodemon Then, run the watcher: ``` -nodemon src/index.ts --ignore cache/ --ignore pools.json +nodemon src/index.ts --ignore cache/ ``` `nodemon` should be in npm's global binary folder. If needed, you can determine where that is with `npm -g bin`. diff --git a/backend/mempool-config.sample.json b/backend/mempool-config.sample.json index 5ebb25ea5..2369b64b5 100644 --- a/backend/mempool-config.sample.json +++ b/backend/mempool-config.sample.json @@ -22,7 +22,7 @@ "USER_AGENT": "mempool", "STDOUT_LOG_MIN_PRIORITY": "debug", "AUTOMATIC_BLOCK_REINDEXING": false, - "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json", + "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json", "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", "AUDIT": false, "ADVANCED_GBT_AUDIT": false, diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index 4e67ce98b..b34dcb7b8 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -73,7 +73,7 @@ class PoolsParser { } } - logger.info('Mining pools.json import completed'); + logger.info('Mining pools-v2.json import completed'); } /** @@ -115,7 +115,7 @@ class PoolsParser { return; } - // Get oldest blocks mined by the pool and assume pools.json updates only concern most recent years + // Get oldest blocks mined by the pool and assume pools-v2.json updates only concern most recent years // Ignore early days of Bitcoin as there were no mining pool yet const [oldestPoolBlock]: any[] = await DB.query(` SELECT height diff --git a/backend/src/repositories/PoolsRepository.ts b/backend/src/repositories/PoolsRepository.ts index 63bddd497..236955d65 100644 --- a/backend/src/repositories/PoolsRepository.ts +++ b/backend/src/repositories/PoolsRepository.ts @@ -99,7 +99,7 @@ class PoolsRepository { rows[0].regexes = JSON.parse(rows[0].regexes); } if (['testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { - rows[0].addresses = []; // pools.json only contains mainnet addresses + rows[0].addresses = []; // pools-v2.json only contains mainnet addresses } else if (parse) { rows[0].addresses = JSON.parse(rows[0].addresses); } diff --git a/docker/README.md b/docker/README.md index 168d4b1fa..468d8069b 100644 --- a/docker/README.md +++ b/docker/README.md @@ -102,11 +102,11 @@ Below we list all settings from `mempool-config.json` and the corresponding over "MEMPOOL_BLOCKS_AMOUNT": 8, "BLOCKS_SUMMARIES_INDEXING": false, "USE_SECOND_NODE_FOR_MINFEE": false, - "EXTERNAL_ASSETS": ["https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json"], + "EXTERNAL_ASSETS": [], "STDOUT_LOG_MIN_PRIORITY": "info", "INDEXING_BLOCKS_AMOUNT": false, "AUTOMATIC_BLOCK_REINDEXING": false, - "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json", + "POOLS_JSON_URL": "https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json", "POOLS_JSON_TREE_URL": "https://api.github.com/repos/mempool/mining-pools/git/trees/master", "ADVANCED_GBT_AUDIT": false, "ADVANCED_GBT_MEMPOOL": false, diff --git a/docker/backend/start.sh b/docker/backend/start.sh index 3ee542892..ee5069386 100755 --- a/docker/backend/start.sh +++ b/docker/backend/start.sh @@ -24,7 +24,7 @@ __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.json} +__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} __MEMPOOL_AUDIT__=${MEMPOOL_AUDIT:=false} __MEMPOOL_ADVANCED_GBT_AUDIT__=${MEMPOOL_ADVANCED_GBT_AUDIT:=false} From 7ad207766b0f8ebf522035061f43032bb4e67c59 Mon Sep 17 00:00:00 2001 From: wiz Date: Sun, 26 Feb 2023 13:54:45 +0900 Subject: [PATCH 0419/1466] ops: Update nginx-cache-warmer for new pool slugs API --- production/nginx-cache-warmer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/production/nginx-cache-warmer b/production/nginx-cache-warmer index db025a137..cb742caee 100755 --- a/production/nginx-cache-warmer +++ b/production/nginx-cache-warmer @@ -1,6 +1,6 @@ #!/usr/bin/env zsh hostname=$(hostname) -slugs=(`curl -sSL https://raw.githubusercontent.com/mempool/mining-pools/master/pools.json | jq -r '.slugs[]'`) +slugs=(`curl -sSL https://${hostname}/api/v1/mining/pools/3y|jq -r -S '(.pools[].slug)'`) warm() { From 7519eaf5d8d3d75605e4058f2db89a684ad8110b Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sat, 25 Feb 2023 21:06:34 -0800 Subject: [PATCH 0420/1466] Remove node 19 from the CI test matrix --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d0520f59c..2ff25b22f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')" strategy: matrix: - node: ["16.16.0", "18.14.1", "19.6.1"] + node: ["16.16.0", "18.14.1"] flavor: ["dev", "prod"] fail-fast: false runs-on: "ubuntu-latest" @@ -55,7 +55,7 @@ jobs: if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')" strategy: matrix: - node: ["16.16.0", "18.14.1", "19.6.1"] + node: ["16.16.0", "18.14.1"] flavor: ["dev", "prod"] fail-fast: false runs-on: "ubuntu-latest" From d0d23035133248524ce0fa56a12a8aaa4eb1136e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 26 Feb 2023 14:19:10 +0900 Subject: [PATCH 0421/1466] Document `--update-pools` - Added some logs --- backend/README.md | 12 +++++++++++- backend/src/tasks/pools-updater.ts | 26 +++++++++++++------------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/backend/README.md b/backend/README.md index d00dc1812..b77b835ba 100644 --- a/backend/README.md +++ b/backend/README.md @@ -219,6 +219,16 @@ Generate block at regular interval (every 10 seconds in this example): watch -n 10 "./src/bitcoin-cli -regtest -rpcport=8332 generatetoaddress 1 $address" ``` +### Mining pools update + +By default, mining pools will be not automatically updated regularly (`config.MEMPOOL.AUTOMATIC_BLOCK_REINDEXING` is set to `false`). + +To manually update your mining pools, you can use the `--update-pools` command line flag when you run the nodejs backend. For example `npm run start --update-pools`. This will trigger the mining pools update and automatically re-index appropriate blocks. + +You can enabled the automatic mining pools update by settings `config.MEMPOOL.AUTOMATIC_BLOCK_REINDEXING` to `true` in your `mempool-config.json`. + +When a `coinbase tag` or `coinbase address` change is detected, all blocks tagged to the `unknown` mining pools (starting from height 130635) will be deleted from the `blocks` table. Additionaly, all blocks which were tagged to the pool which has been updated will also be deleted from the `blocks` table. Of course, those blocks will be automatically reindexed. + ### Re-index tables You can manually force the nodejs backend to drop all data from a specified set of tables for future re-index. This is mostly useful for the mining dashboard and the lightning explorer. @@ -235,4 +245,4 @@ Feb 13 14:55:27 [63246] WARN: Indexed data for "hashrates" tables wi Feb 13 14:55:32 [63246] NOTICE: Table hashrates has been truncated ``` -Reference: https://github.com/mempool/mempool/pull/1269 \ No newline at end of file +Reference: https://github.com/mempool/mempool/pull/1269 diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index 8aa73376f..32de85f3a 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -17,11 +17,6 @@ class PoolsUpdater { treeUrl: string = config.MEMPOOL.POOLS_JSON_TREE_URL; public async updatePoolsJson(): Promise { - if (config.MEMPOOL.AUTOMATIC_BLOCK_REINDEXING === false) { - logger.info(`Not updating mining pools to avoid inconsistency because AUTOMATIC_BLOCK_REINDEXING is set to false`) - return; - } - if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { return; } @@ -36,12 +31,6 @@ class PoolsUpdater { this.lastRun = now; - if (config.SOCKS5PROXY.ENABLED) { - logger.info(`Updating latest mining pools from ${this.poolsUrl} over the Tor network`, logger.tags.mining); - } else { - logger.info(`Updating latest mining pools from ${this.poolsUrl} over clearnet`, logger.tags.mining); - } - try { const githubSha = await this.fetchPoolsSha(); // Fetch pools-v2.json sha from github if (githubSha === undefined) { @@ -57,10 +46,21 @@ class PoolsUpdater { return; } + // See backend README for more details about the mining pools update process + if (this.currentSha !== undefined && // If we don't have any mining pool, download it at least once + config.MEMPOOL.AUTOMATIC_BLOCK_REINDEXING !== true && // Automatic pools update is disabled + !process.env.npm_config_update_pools // We're not manually updating mining pool + ) { + logger.warn(`Updated mining pools data is available (${githubSha}) but AUTOMATIC_BLOCK_REINDEXING is disabled`); + logger.info(`You can update your mining pools using the --update-pools command flag. You may want to clear your nginx cache as well if applicable`); + return; + } + + const network = config.SOCKS5PROXY.ENABLED ? 'tor' : 'clearnet'; if (this.currentSha === undefined) { - logger.info(`Downloading pools-v2.json for the first time from ${this.poolsUrl}`, logger.tags.mining); + logger.info(`Downloading pools-v2.json for the first time from ${this.poolsUrl} over ${network}`, logger.tags.mining); } else { - logger.warn(`pools-v2.json is outdated, fetch latest from ${this.poolsUrl}`, logger.tags.mining); + logger.warn(`pools-v2.json is outdated, fetch latest from ${this.poolsUrl} over ${network}`, logger.tags.mining); } const poolsJson = await this.query(this.poolsUrl); if (poolsJson === undefined) { From 51bc74941550ed082b3d667146f585b0ae6d392e Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 26 Feb 2023 09:46:21 +0400 Subject: [PATCH 0422/1466] Transifex pull 26/2 --- frontend/src/locale/messages.de.xlf | 520 ++++++++++++------ frontend/src/locale/messages.fa.xlf | 531 ++++++++++++------ frontend/src/locale/messages.hu.xlf | 797 +++++++++++++++++++-------- frontend/src/locale/messages.ro.xlf | 818 ++++++++++++++++++++-------- 4 files changed, 1866 insertions(+), 800 deletions(-) diff --git a/frontend/src/locale/messages.de.xlf b/frontend/src/locale/messages.de.xlf index 3af25e4a2..e22f0c7db 100644 --- a/frontend/src/locale/messages.de.xlf +++ b/frontend/src/locale/messages.de.xlf @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 303,304 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 304,305 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -598,7 +598,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -777,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -795,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -990,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1038,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1054,11 +1070,11 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1108,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1130,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1142,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1158,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1190,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1211,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1233,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1253,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1269,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1569,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1585,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2049,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2065,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2077,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2090,15 +2102,15 @@ Blöcke am indizieren src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2143,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2169,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2187,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2221,19 +2233,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2273,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2301,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2315,11 +2327,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2335,7 +2347,7 @@ Match - Treffer + Übereinstimmung src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2366,7 +2378,7 @@ Recently broadcasted - Jüngst ausgestrahlt + Kürzlich gesendet src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2432,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2462,11 +2474,11 @@ Größe src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2494,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2506,11 +2518,11 @@ Gewicht src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2522,7 +2534,19 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Grösse nach Gewicht + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2538,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Mediangebühr @@ -2556,7 +2571,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2573,11 +2588,11 @@ src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2595,7 +2610,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2608,7 +2623,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2661,6 +2676,14 @@ src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2684,7 +2707,7 @@ Gebührenspanne src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2697,7 +2720,7 @@ Basierend auf einer durchschnittlichen nativen Segwit-Transaktion von 140 vByte src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2721,16 +2744,16 @@ Transaction fee tooltip - - Subsidy + fees: - Subvention + Gebühr + + Subsidy + fees + Subvention + Gebühren src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees @@ -2740,7 +2763,7 @@ Erwartet src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2749,11 +2772,11 @@ beta src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2762,7 +2785,7 @@ Tatsächlich src/app/components/block/block.component.html - 211,215 + 218,222 block.actual @@ -2771,7 +2794,7 @@ Erwarteter Block src/app/components/block/block.component.html - 215 + 222 block.expected-block @@ -2780,7 +2803,7 @@ Tatsächlicher Block src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2789,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2798,7 +2821,7 @@ Merkle root src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2807,7 +2830,7 @@ Schwierigkeit src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2836,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2845,7 +2868,7 @@ Block-Header Hex src/app/components/block/block.component.html - 272,273 + 279,280 block.header @@ -2854,7 +2877,7 @@ Prüfung src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2864,11 +2887,11 @@ Details src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2890,11 +2913,11 @@ Fehler beim Laden der Daten. src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2919,7 +2942,7 @@ Weshalb dieser leere Block? src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation @@ -3028,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3267,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions @@ -3280,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3293,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3307,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3683,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + Transaktion senden + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Poolglück (1 Woche) @@ -3750,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3780,12 +3829,25 @@ mining.rank + + Avg Health + Durchschn. Gesundheit + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Leere Blöcke src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3794,7 +3856,7 @@ Alle Miner src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3803,7 +3865,7 @@ Pools Glück (1w) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3812,7 +3874,7 @@ Anzahl der Pools (1w) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3821,7 +3883,7 @@ Mining Pools src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4048,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Transaktion senden - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Transaktion hex @@ -4075,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4200,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Bitcoin Blockhöhe + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Bitcoin Transaktion + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Bitcoin Adresse + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Bitcoin Block + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Bitcoin Adressen + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Lightning Nodes + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Lightning Kanäle + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Gehe zu &quot;&quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool in vBytes (sat/vByte) @@ -4484,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4494,7 +4610,7 @@ Zuerst gesehen src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4528,7 +4644,7 @@ Vorauss. Zeit bis Schürfung src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4538,7 +4654,7 @@ In mehreren Stunden (oder mehr) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4548,11 +4664,11 @@ Nachfahre src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4562,7 +4678,7 @@ Vorfahr src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4572,11 +4688,11 @@ Fluss src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4586,7 +4702,7 @@ Diagramm ausblenden src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4595,7 +4711,7 @@ Mehr anzeigen src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4612,7 +4728,7 @@ Weniger anzeigen src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4625,7 +4741,7 @@ Diagramm anzeigen src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4634,7 +4750,7 @@ Sperrzeit src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4643,7 +4759,7 @@ Transaktion nicht gefunden. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4652,7 +4768,7 @@ Warten bis sie im Mempool erscheint... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4661,7 +4777,7 @@ Effektiver Gebührensatz src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4810,7 +4926,7 @@ Mehr Inputs anzeigen, um Gebührendaten anzuzeigen src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4819,7 +4935,7 @@ verbleiben src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -5070,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Mindestgebühr src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5094,7 +5201,7 @@ Streichung src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -5104,7 +5211,7 @@ Speichernutzung src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -5114,10 +5221,19 @@ L-BTC im Umlauf src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space liefert lediglich Daten zum Bitcoin Netzwerk. Es kann dir nicht helfen beim Geld holen, Transaktionbestätigung beschleunigen etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service REST-API-Dienst @@ -5452,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5599,6 +5715,30 @@ 37 + + Mutually closed + Gegenseitig geschlossen + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Zwangsgeschlossen + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Zwangsgeschlossen mit Strafzahlung + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open Offen @@ -5725,6 +5865,24 @@ shared.sats + + avg + durchschn. + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + mittel + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Durchschnittskapazität @@ -5853,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5927,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -6095,6 +6253,30 @@ lightning.node-fee-distribution + + Outgoing Fees + Ausgehende Gebühren + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Einkommende Gebühren + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Prozentuale Änderung letzte Woche @@ -6104,11 +6286,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6356,7 +6538,7 @@ Keine Geolokationsdaten verfügbar src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 diff --git a/frontend/src/locale/messages.fa.xlf b/frontend/src/locale/messages.fa.xlf index 2fac31501..38a471409 100644 --- a/frontend/src/locale/messages.fa.xlf +++ b/frontend/src/locale/messages.fa.xlf @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 303,304 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 304,305 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -598,7 +598,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -777,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -795,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -990,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1038,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1054,11 +1070,11 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1108,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1130,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1142,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1158,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1190,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1211,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1233,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1253,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1269,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1569,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1585,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2049,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2065,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2077,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2090,15 +2102,15 @@ فهرست‌بندی بلاک‌ها src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2143,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2169,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2187,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2221,19 +2233,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2273,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2301,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2315,18 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status - وضعیت رسیدگی + وضعیت بررسی src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2335,7 +2347,7 @@ Match - مطابق + همتا src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2417,7 +2429,7 @@ Match rate - نرخ برابری + نرخ همتایی src/app/components/block-prediction-graph/block-prediction-graph.component.ts 189,187 @@ -2432,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2462,11 +2474,11 @@ اندازه src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2494,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2506,11 +2518,11 @@ وزن src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2522,7 +2534,19 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + اندازه بر وزن + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2538,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee کارمزد میانه @@ -2556,7 +2571,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2573,11 +2588,11 @@ src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2595,7 +2610,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2608,7 +2623,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2661,6 +2676,14 @@ src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2684,7 +2707,7 @@ بازه‌ی کارمزد src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2697,7 +2720,7 @@ بر اساس میانگین تراکنش سگویتی اصیل با اندازه 140 ساتوشی بر بایت مجازی src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2721,25 +2744,26 @@ Transaction fee tooltip - - Subsidy + fees: - یارانه بلاک + کارمزدها + + Subsidy + fees + یارانه + کارمزدها src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees Expected + پیش‌بینی شده src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2748,11 +2772,11 @@ آزمایشی src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2761,23 +2785,25 @@ واقعی src/app/components/block/block.component.html - 211,215 + 218,222 block.actual Expected Block + بلاک پیش‌بینی شده src/app/components/block/block.component.html - 215 + 222 block.expected-block Actual Block + بلاک واقعی src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2786,7 +2812,7 @@ بیت src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2795,7 +2821,7 @@ ریشه درخت مرکل src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2804,7 +2830,7 @@ سختی شبکه src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2833,7 +2859,7 @@ نانس src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2842,16 +2868,16 @@ سربرگ بلاک به صورت Hex src/app/components/block/block.component.html - 272,273 + 279,280 block.header Audit - رسیدگی + بررسی src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2861,11 +2887,11 @@ جزئیات src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2887,11 +2913,11 @@ خطا در بارگذاری داده‌ها. src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2916,7 +2942,7 @@ چرا این بلاک خالی است؟ src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation @@ -3025,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3264,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions @@ -3277,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3290,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3304,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3554,7 +3580,7 @@ Graphs - گراف‌ها + نمودارها src/app/components/liquid-master-page/liquid-master-page.component.html 71,74 @@ -3680,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + انتشار تراکنش + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) شانس استخرها (1 هفته‌ای) @@ -3747,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3777,12 +3829,25 @@ mining.rank + + Avg Health + متوسط سلامت + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks بلاک‌های خالی src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3791,7 +3856,7 @@ همه ماینرها src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3800,7 +3865,7 @@ شانس استخرها (1 هفته) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3809,7 +3874,7 @@ تعداد استخرها (1 هفته) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3818,7 +3883,7 @@ استخرهای استخراج src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4045,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - انتشار تراکنش - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex تراکنش به صورت Hex @@ -4072,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4197,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + طول بلاک بیت‌کوین + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + تراکنش بیت‌کوین + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + آدرس بیت‌کوین + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + بلاک بیت‌کوین + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + آدرس بیت‌کوین + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + گره لایتنینگ + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + کانال لایتنینگ + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + برو به &quot;&quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) وضعیت ممپول به vByte (ساتوشی بر vByte) @@ -4481,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4491,7 +4610,7 @@ اولین زمان دیده‌شدن src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4525,7 +4644,7 @@ تخمین src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4535,7 +4654,7 @@ در چند (یا چندین) ساعت آینده src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4545,11 +4664,11 @@ نواده src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4559,7 +4678,7 @@ والد src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4569,11 +4688,11 @@ جریان src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4583,7 +4702,7 @@ پنهان‌کردن نمودار src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4592,7 +4711,7 @@ بیشتر src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4609,7 +4728,7 @@ کمتر src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4622,7 +4741,7 @@ نمایش نمودار src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4631,7 +4750,7 @@ قفل‌زمانی src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4640,7 +4759,7 @@ تراکنش پیدا نشد. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4649,7 +4768,7 @@ منتظر دیده‌شدن در mempool... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4658,7 +4777,7 @@ نرخ کارمزد مؤثر src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4807,7 +4926,7 @@ نمایش ورودی‌های بیشتر برای افشای داده‌های کارمزد src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4816,7 +4935,7 @@ عدد باقی مانده است src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -5067,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee حداقل کارمزد src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5091,7 +5201,7 @@ آستانه حذف src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -5101,7 +5211,7 @@ حافظه مصرف‌شده src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -5111,10 +5221,19 @@ مقدار L-BTC در گردش src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + ممپول صرفا داده‌هایی درباره شبکه بیت‌کوین ارائه می‌کند. نمی‌توانید از آن برای دریافت وجه، سریع‌ کردن تأیید شدن تراکنش‌هایتان یا چنین کارهایی استفاده کنید. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service خدمات REST API @@ -5449,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5596,6 +5715,30 @@ 37 + + Mutually closed + بسته‌شده با همکاری + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + بسته‌شده بدون همکاری + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + بسته‌شده بدون همکاری با جریمه + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open باز @@ -5722,6 +5865,24 @@ shared.sats + + avg + متوسط + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + میانه + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity متوسط ظرفیت @@ -5850,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5924,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -6092,6 +6253,30 @@ lightning.node-fee-distribution + + Outgoing Fees + کارمزدهای خروجی + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + کارمزدهای ورودی + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week درصد تغییر هفته گذشته @@ -6101,11 +6286,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6353,7 +6538,7 @@ اطلاعات جغرافیایی در دسترس نیست src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6531,7 +6716,7 @@ Tor Capacity - ظرفیت Tor + ‏ظرفیت Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 diff --git a/frontend/src/locale/messages.hu.xlf b/frontend/src/locale/messages.hu.xlf index 979573d35..2cbb07923 100644 --- a/frontend/src/locale/messages.hu.xlf +++ b/frontend/src/locale/messages.hu.xlf @@ -11,6 +11,7 @@ Slide of + a oldal node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -737,6 +739,7 @@ View more » + Továbbiak » src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 92,97 @@ -774,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -792,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -987,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1035,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1051,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1105,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1127,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1139,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1155,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1187,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1208,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1230,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1250,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1266,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1459,6 +1474,7 @@ Community Integrations + Közösségi Integrációk src/app/components/about/about.component.html 191,193 @@ -1527,11 +1543,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + a -ből/ból Multisig src/app/components/address-labels/address-labels.component.ts 107 @@ -1563,7 +1580,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1579,7 +1596,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1605,6 +1622,7 @@ of transaction + a tranzakció src/app/components/address/address.component.html 59 @@ -1613,6 +1631,7 @@ of transactions + a tranzakciók src/app/components/address/address.component.html 60 @@ -1659,7 +1678,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1787,6 +1806,7 @@ Group of assets + Csoportnyi asset src/app/components/assets/asset-group/asset-group.component.html 8,9 @@ -1819,6 +1839,7 @@ Featured + Kiemelt src/app/components/assets/assets-nav/assets-nav.component.html 9 @@ -1879,7 +1900,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1892,7 +1913,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1905,7 +1926,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1914,7 +1935,7 @@ Hiba történt az assetok adainak betöltésekor. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2010,6 +2031,7 @@ Block Fee Rates + Blokk Díj Ráta src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.html 6,8 @@ -2026,6 +2048,7 @@ At block: + Blokknál: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 188 @@ -2036,11 +2059,12 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 Around block: + blokk körül src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 190 @@ -2051,18 +2075,19 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 Block Fees + Blokk Díjjak src/app/components/block-fees-graph/block-fees-graph.component.html 6,7 src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2072,17 +2097,18 @@ Indexing blocks + Blokkok indexelése src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2107,6 +2133,7 @@ not available + nem elérhető src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2126,7 +2153,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2152,11 +2179,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2170,11 +2197,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2186,7 +2213,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2204,19 +2231,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2256,27 +2283,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2284,7 +2311,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2298,17 +2325,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Ellenőrzési állapot src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2317,6 +2345,7 @@ Match + Találat src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2325,6 +2354,7 @@ Removed + Eltávolítva src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2333,6 +2363,7 @@ Marginal fee rate + Legkissebb díj ráta src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2345,6 +2376,7 @@ Recently broadcasted + Nemrég közvetítve src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2353,6 +2385,7 @@ Added + Hozzáadva src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2361,6 +2394,7 @@ Block Prediction Accuracy + Blokk Előrejelzés Pontossága src/app/components/block-prediction-graph/block-prediction-graph.component.html 6,8 @@ -2377,6 +2411,7 @@ No data to display yet. Try again later. + Nincs megjeleníthető adat. Próbálkozz később. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2392,6 +2427,7 @@ Match rate + Találati ráta src/app/components/block-prediction-graph/block-prediction-graph.component.ts 189,187 @@ -2399,13 +2435,14 @@ Block Rewards + Blokk Jutalmak src/app/components/block-rewards-graph/block-rewards-graph.component.html 7,8 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2415,6 +2452,7 @@ Block Sizes and Weights + Blokk Méret és Súly src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.html 5,7 @@ -2434,15 +2472,15 @@ Méret src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2466,7 +2504,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2478,11 +2516,11 @@ Súly src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2490,15 +2528,27 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + Blokk src/app/components/block/block-preview.component.html 3,7 @@ -2509,14 +2559,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Átlag díj @@ -2526,7 +2568,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2543,11 +2585,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2565,7 +2607,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2578,7 +2620,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2603,24 +2645,42 @@ Previous Block - - Block health + + Health + Állapot src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown + Ismeretlen src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2644,7 +2704,7 @@ Díj fesztáv src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2657,7 +2717,7 @@ Az átlag 140 vBájtnyi native segwit tranzakción alapulvéve src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2681,49 +2741,66 @@ Transaction fee tooltip - - Subsidy + fees: - Blokk támogatás + Díj: + + Subsidy + fees + Támogatás + Díjak src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Várható src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + béta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Aktuális src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Várt Blokk src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Aktuális Blokk src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2732,7 +2809,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2741,7 +2818,7 @@ Merkle törzs src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2750,7 +2827,7 @@ Nehézség src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2779,7 +2856,7 @@ Nounce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2788,20 +2865,30 @@ Blokk Fejcím Hex src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Ellenőrzés + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Részletek src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2820,13 +2907,14 @@ Error loading data. + Hiba történt az adatok betöltésekor. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2848,14 +2936,16 @@ Why is this block empty? + Miért üres ez a blokk? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation Pool + Pool src/app/components/blocks-list/blocks-list.component.html 14 @@ -2895,18 +2985,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Jutalom @@ -2970,7 +3048,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -2984,6 +3062,7 @@ Adjusted + Módosított src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html 6,8 @@ -2992,6 +3071,7 @@ Change + Váltás src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html 8,11 @@ -3101,6 +3181,7 @@ Next Halving + Következő Felezés src/app/components/difficulty/difficulty.component.html 50,52 @@ -3117,6 +3198,7 @@ No Priority + Nem Sürgősség src/app/components/fees-box/fees-box.component.html 4,7 @@ -3129,6 +3211,7 @@ Usually places your transaction in between the second and third mempool blocks + Általában a második vagy a harmadik blokkba helyezi a tranzakciódat a mempoolban src/app/components/fees-box/fees-box.component.html 8,9 @@ -3137,6 +3220,7 @@ Low Priority + Alacsony src/app/components/fees-box/fees-box.component.html 8,9 @@ -3157,6 +3241,7 @@ Medium Priority + Közepes src/app/components/fees-box/fees-box.component.html 9,10 @@ -3169,6 +3254,7 @@ Places your transaction in the first mempool block + Ez az első mempoolban lévő blokkba helyezi a tranzakciódat src/app/components/fees-box/fees-box.component.html 10,14 @@ -3177,6 +3263,7 @@ High Priority + Elsőbbségi src/app/components/fees-box/fees-box.component.html 10,15 @@ -3196,7 +3283,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3209,7 +3296,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3222,7 +3309,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3236,7 +3323,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3253,6 +3340,7 @@ Mining + Bányászat src/app/components/graphs/graphs.component.html 8 @@ -3261,6 +3349,7 @@ Pools Ranking + Pool Rangsorolás src/app/components/graphs/graphs.component.html 11 @@ -3273,6 +3362,7 @@ Pools Dominance + Pool Fölény src/app/components/graphs/graphs.component.html 13 @@ -3285,6 +3375,7 @@ Hashrate & Difficulty + Hashráta és Nehézség src/app/components/graphs/graphs.component.html 15,16 @@ -3293,6 +3384,7 @@ Lightning + Villám src/app/components/graphs/graphs.component.html 31 @@ -3301,6 +3393,7 @@ Lightning Nodes Per Network + Villám Nodeok Hálózatonként src/app/components/graphs/graphs.component.html 34 @@ -3321,6 +3414,7 @@ Lightning Network Capacity + Villám Hálózati Kapacítás src/app/components/graphs/graphs.component.html 36 @@ -3341,6 +3435,7 @@ Lightning Nodes Per ISP + Villám Node Szolgáltatónként src/app/components/graphs/graphs.component.html 38 @@ -3353,6 +3448,7 @@ Lightning Nodes Per Country + Villám Nodeok Országonként src/app/components/graphs/graphs.component.html 40 @@ -3369,6 +3465,7 @@ Lightning Nodes World Map + Villám Node Világ Térkép src/app/components/graphs/graphs.component.html 42 @@ -3385,6 +3482,7 @@ Lightning Nodes Channels World Map + Villám Node Csatorna Világ Térkép src/app/components/graphs/graphs.component.html 44 @@ -3397,6 +3495,7 @@ Hashrate + Hashráta src/app/components/hashrate-chart/hashrate-chart.component.html 8,10 @@ -3425,6 +3524,7 @@ Hashrate & Difficulty + Hashráta és Nehézség src/app/components/hashrate-chart/hashrate-chart.component.html 27,29 @@ -3437,6 +3537,7 @@ Hashrate (MA) + Hashráta (MA) src/app/components/hashrate-chart/hashrate-chart.component.ts 292,291 @@ -3476,7 +3577,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3486,6 +3587,7 @@ Mining Dashboard + Bányászatipult src/app/components/master-page/master-page.component.html 41,43 @@ -3498,9 +3600,10 @@ Lightning Explorer + Villám Felfedező src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3508,20 +3611,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Dokumentáció src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3563,6 +3658,7 @@ Reward stats + Jutalmi statisztikák src/app/components/mining-dashboard/mining-dashboard.component.html 10 @@ -3571,6 +3667,7 @@ (144 blocks) + (144 blokk) src/app/components/mining-dashboard/mining-dashboard.component.html 11 @@ -3592,12 +3689,39 @@ Adjustments + Módosítás src/app/components/mining-dashboard/mining-dashboard.component.html 67 dashboard.adjustments + + Broadcast Transaction + Tranzakció Küldése + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) @@ -3608,6 +3732,7 @@ Pools luck + Pool szerencse src/app/components/pool-ranking/pool-ranking.component.html 9,11 @@ -3632,6 +3757,7 @@ Pools count + Poolok száma src/app/components/pool-ranking/pool-ranking.component.html 17,19 @@ -3648,6 +3774,7 @@ Blocks (1w) + Blokkok (1hé) src/app/components/pool-ranking/pool-ranking.component.html 25 @@ -3658,7 +3785,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3687,19 +3814,34 @@ mining.rank - - Empty blocks + + Avg Health + Átlagos Állapot src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + + + Empty blocks + Üres blokkok + + src/app/components/pool-ranking/pool-ranking.component.html + 97,100 mining.empty-blocks All miners + Minden bányász src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3707,7 +3849,7 @@ Pools Luck (1w) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3715,19 +3857,21 @@ Pools Count (1w) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count Mining Pools + Bányászati Poolok src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 blocks + blokk src/app/components/pool-ranking/pool-ranking.component.ts 165,163 @@ -3739,6 +3883,7 @@ mining pool + bányászó pool src/app/components/pool/pool-preview.component.html 3,5 @@ -3747,6 +3892,7 @@ Tags + Címkék src/app/components/pool/pool-preview.component.html 18,19 @@ -3825,6 +3971,7 @@ Estimated + Becsült src/app/components/pool/pool.component.html 96,97 @@ -3933,6 +4080,7 @@ Coinbase tag + Érmebázis címke src/app/components/pool/pool.component.html 215,217 @@ -3943,24 +4091,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Tranzakció Küldése - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex @@ -3969,7 +4099,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4019,6 +4149,7 @@ BTC/block + BTC/blokk src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4048,6 +4179,7 @@ sats/tx + sats/tx src/app/components/reward-stats/reward-stats.component.html 33,36 @@ -4057,6 +4189,7 @@ Reward Per Tx + Jutalom per Tx src/app/components/reward-stats/reward-stats.component.html 53,56 @@ -4084,6 +4217,70 @@ search-form.search-title + + Bitcoin Block Height + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool vBájtonként (sat/vBájt) @@ -4350,6 +4547,7 @@ Replaced + Cserélve src/app/components/transaction/transaction.component.html 36,39 @@ -4366,7 +4564,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4376,7 +4574,7 @@ Először látva src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4410,7 +4608,7 @@ Hátralévő idő src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4420,7 +4618,7 @@ Több órán belül (vagy később) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4430,11 +4628,11 @@ Utód src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4444,37 +4642,40 @@ Felmenő src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor Flow + Áramlás src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow Hide diagram + Diagram elrejtése src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram Show more + Továbbiak megjelenítése src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4488,9 +4689,10 @@ Show less + Kevesebb megjelenítése src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4500,9 +4702,10 @@ Show diagram + Diagram megjelenítése src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4511,7 +4714,7 @@ Zárolási idő src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4520,7 +4723,7 @@ Nem található tranzakció. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4529,7 +4732,7 @@ Várakozás arra hogy a mempoolban feltünjön... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4538,7 +4741,7 @@ Effektív díj ráta src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4610,6 +4813,7 @@ P2TR tapscript + P2TR tapscript src/app/components/transactions-list/transactions-list.component.html 132,134 @@ -4685,20 +4889,22 @@ Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + hátramaradt src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining other inputs + más bemenetek src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4707,6 +4913,7 @@ other outputs + más kiemenetek src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4715,6 +4922,7 @@ Input + Bemenet src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 42 @@ -4727,6 +4935,7 @@ Output + Kiemenet src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4789,6 +4998,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4931,21 +5141,12 @@ dashboard.latest-transactions - - USD - USA Dollár - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Minimum Díj src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -4955,7 +5156,7 @@ Törlés src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -4965,7 +5166,7 @@ Memória használat src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -4975,15 +5176,24 @@ L-BTC forgalomban src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation - - REST API service + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. src/app/docs/api-docs/api-docs.component.html - 39,40 + 13 + + faq.big-disclaimer + + + REST API service + REST API szolgáltatás + + src/app/docs/api-docs/api-docs.component.html + 41,42 api-docs.title @@ -4992,11 +5202,11 @@ Végpont src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5005,11 +5215,11 @@ Leírás src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5017,7 +5227,7 @@ Alaphelyzeti push: művelet: 'kell', data: ['blocks', ...] hogy kifejezd mit szeretnél pusholni. Elérhető: blocks, mempool-blocks, live-2h-chart, and stats.Pusholjon tranzakciókat címekhez fogva: 'cím-követés': '3PbJ...bF9B' az összes új tranzakció fogadásához, amely ezt a címet tartalmazza bemenetként vagy kimenetként. Tranzakciók tömbjét adja vissza. cím-tranzakciókúj mempool tranzakciókhoz , és block-tranzakciók az új blokk megerősített tranzakciókhoz. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5086,6 +5296,7 @@ Base fee + Bázis díj src/app/lightning/channel/channel-box/channel-box.component.html 29 @@ -5098,6 +5309,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 35 @@ -5126,6 +5338,7 @@ Zero base fee + Zeró alapdíj src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5142,6 +5355,7 @@ Non-zero base fee + Nem-nulla alapdíj src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5150,6 +5364,7 @@ Min HTLC + Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html 57 @@ -5158,6 +5373,7 @@ Max HTLC + Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html 63 @@ -5166,6 +5382,7 @@ Timelock delta + Időzár delta src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5174,18 +5391,20 @@ channels + csatorna src/app/lightning/channel/channel-box/channel-box.component.html 79 src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Induló egyenleg src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5195,6 +5414,7 @@ Closing balance + Záró egyenleg src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5204,6 +5424,7 @@ lightning channel + villám csatorna src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5212,6 +5433,7 @@ Inactive + Inaktív src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5222,12 +5444,13 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive Active + Aktív src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5238,12 +5461,13 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active Closed + Lezárt src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5258,12 +5482,13 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed Created + Létrehozott src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5276,6 +5501,7 @@ Capacity + Kapacítás src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5286,7 +5512,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5294,7 +5520,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5328,6 +5554,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5348,6 +5575,7 @@ Lightning channel + Villám csatorna src/app/lightning/channel/channel.component.html 2,5 @@ -5360,6 +5588,7 @@ Last update + Utolsó frissítés src/app/lightning/channel/channel.component.html 33,34 @@ -5392,18 +5621,20 @@ Closing date + Zárási dátum src/app/lightning/channel/channel.component.html 37,38 src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Lezárva átala src/app/lightning/channel/channel.component.html 52,54 @@ -5412,6 +5643,7 @@ Opening transaction + Nyitó tranzakció src/app/lightning/channel/channel.component.html 84,85 @@ -5420,6 +5652,7 @@ Closing transaction + Záró tranzakció src/app/lightning/channel/channel.component.html 93,95 @@ -5428,13 +5661,37 @@ Channel: + Csatorna: src/app/lightning/channel/channel.component.ts 37 + + Mutually closed + Közösen lezárt + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open + Nyitás src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5443,17 +5700,19 @@ No channels to display + Nincs megjeleníthető csatorna src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list Alias + Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5487,29 +5746,32 @@ Status + Állapot src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status Channel ID + Csatorna ID src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id sats + sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5553,8 +5815,25 @@ shared.sats + + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity + Átlag Kapacítás src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5567,6 +5846,7 @@ Avg Fee Rate + Átlag Díj Ráta src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5587,6 +5867,7 @@ Avg Base Fee + Átlag Bázis Díj src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5607,6 +5888,7 @@ Med Capacity + Közepes Kapacítás src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5659,6 +5941,7 @@ Nodes + Nódok src/app/lightning/group/group-preview.component.html 25,29 @@ -5669,11 +5952,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5695,6 +5978,7 @@ Liquidity + Likvidítás src/app/lightning/group/group-preview.component.html 29,31 @@ -5731,6 +6015,7 @@ Channels + Csatornák src/app/lightning/group/group-preview.component.html 40,43 @@ -5741,11 +6026,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5791,6 +6076,7 @@ Average size + Átlagos méret src/app/lightning/group/group-preview.component.html 44,46 @@ -5803,6 +6089,7 @@ Location + Helység src/app/lightning/group/group.component.html 74,77 @@ -5901,6 +6188,28 @@ lightning.node-fee-distribution + + Outgoing Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week @@ -5909,16 +6218,17 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week Lightning node + Villám node src/app/lightning/node/node-preview.component.html 3,5 @@ -5935,6 +6245,7 @@ Active capacity + Átlagos kapacítás src/app/lightning/node/node-preview.component.html 20,22 @@ -5959,6 +6270,7 @@ Country + Ország src/app/lightning/node/node-preview.component.html 44,47 @@ -5991,6 +6303,7 @@ Color + Szín src/app/lightning/node/node.component.html 79,81 @@ -5999,6 +6312,7 @@ ISP + ISP src/app/lightning/node/node.component.html 86,87 @@ -6077,6 +6391,7 @@ TLV extension records + TLV kiterjesztési esemény src/app/lightning/node/node.component.html 199,202 @@ -6085,6 +6400,7 @@ Open channels + Nyitott csatornák src/app/lightning/node/node.component.html 240,243 @@ -6093,6 +6409,7 @@ Closed channels + Lezárt csatornák src/app/lightning/node/node.component.html 244,247 @@ -6101,6 +6418,7 @@ Node: + Node: src/app/lightning/node/node.component.ts 60 @@ -6137,7 +6455,7 @@ No geolocation data available src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6194,6 +6512,7 @@ Share + Megoszlás src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6206,6 +6525,7 @@ nodes + nódok src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6236,6 +6556,7 @@ ISP Count + ISP Szám src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6244,6 +6565,7 @@ Top ISP + Top ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6252,6 +6574,7 @@ Lightning nodes in + Villám nódok itt src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6259,6 +6582,7 @@ Clearnet Capacity + Clearnet Kapacítás src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6279,6 +6603,7 @@ Unknown Capacity + Ismeretlen Kapacítás src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6299,6 +6624,7 @@ Tor Capacity + Tor Kapacítás src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6327,6 +6653,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6338,6 +6665,7 @@ Lightning ISP + Villám ISP src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6346,6 +6674,7 @@ Top country + Top ország src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6358,6 +6687,7 @@ Top node + Top node src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6385,6 +6715,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6393,6 +6724,7 @@ Active nodes + Aktív nódok src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6432,6 +6764,7 @@ Oldest nodes + Legrégebbi nodeok src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6440,6 +6773,7 @@ Top lightning nodes + Top villám nodeok src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6447,6 +6781,7 @@ Indexing in progress + Indexelés folyamatban src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 diff --git a/frontend/src/locale/messages.ro.xlf b/frontend/src/locale/messages.ro.xlf index 1eddb2845..41cab4eea 100644 --- a/frontend/src/locale/messages.ro.xlf +++ b/frontend/src/locale/messages.ro.xlf @@ -11,6 +11,7 @@ Slide of + Pagina din node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1461,6 +1475,7 @@ Community Integrations + Integrări în comunitate src/app/components/about/about.component.html 191,193 @@ -1529,11 +1544,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + Multisig din src/app/components/address-labels/address-labels.component.ts 107 @@ -1565,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1581,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1664,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1886,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1899,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1912,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1921,7 +1937,7 @@ Eroare la încărcarea datelor despre active. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2045,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2061,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2073,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2086,15 +2102,15 @@ Indexare blocuri src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2119,6 +2135,7 @@ not available + indisponibil src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2138,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2164,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2182,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2198,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2216,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2268,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2296,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2310,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Starea auditului src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2329,6 +2347,7 @@ Match + Potrivire src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2337,6 +2356,7 @@ Removed + Îndepărtat src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2345,6 +2365,7 @@ Marginal fee rate + Rata comisionului marginal src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2357,6 +2378,7 @@ Recently broadcasted + Recent transmis src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2365,6 +2387,7 @@ Added + Adăugat src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2390,6 +2413,7 @@ No data to display yet. Try again later. + Nu există date de afișat încă. Încercați mai târziu. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2420,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2450,15 +2474,15 @@ Mărime src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2482,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2494,11 +2518,11 @@ Greutate src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2506,15 +2530,28 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Dimensiune pe greutate + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + Bloc src/app/components/block/block-preview.component.html 3,7 @@ -2525,14 +2562,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Comision median @@ -2542,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2559,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2581,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2594,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2619,24 +2648,42 @@ Previous Block - - Block health + + Health + Sănătate src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown + Necunoscut src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2660,7 +2707,7 @@ Interval comisioane src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2673,7 +2720,7 @@ Pe baza valorii medii a tranzacției segwit native de 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2697,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - Subvenție + comisioane: + + Subsidy + fees + Subvenție + comisioane src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Așteptat src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + beta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Real src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Bloc așteptat src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Blocul real src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2748,7 +2812,7 @@ Biți src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2757,7 +2821,7 @@ Rădăcină Merkle src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2766,7 +2830,7 @@ Dificultate src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2795,7 +2859,7 @@ Număr arbitrar src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2804,20 +2868,30 @@ Valoarea Hex a antetului blocului src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Audit + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Detalii src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2839,11 +2913,11 @@ Eroare la încărcarea datelor. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2865,9 +2939,10 @@ Why is this block empty? + De ce acest bloc este gol? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2913,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Recompensă @@ -2988,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3227,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3240,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3253,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3267,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3319,6 +3382,7 @@ Hashrate & Difficulty + Rată hash & Dificultate src/app/components/graphs/graphs.component.html 15,16 @@ -3327,6 +3391,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3335,6 +3400,7 @@ Lightning Nodes Per Network + Noduri Lightning Per Rețea src/app/components/graphs/graphs.component.html 34 @@ -3355,6 +3421,7 @@ Lightning Network Capacity + Capacitatea rețelei Lightning src/app/components/graphs/graphs.component.html 36 @@ -3375,6 +3442,7 @@ Lightning Nodes Per ISP + Noduri Lightning Per ISP src/app/components/graphs/graphs.component.html 38 @@ -3387,6 +3455,7 @@ Lightning Nodes Per Country + Noduri Lightning per țară src/app/components/graphs/graphs.component.html 40 @@ -3403,6 +3472,7 @@ Lightning Nodes World Map + Harta lumii cu Noduri Lightning src/app/components/graphs/graphs.component.html 42 @@ -3419,6 +3489,7 @@ Lightning Nodes Channels World Map + Harta lumii cu canale ale nodurilor Lightning src/app/components/graphs/graphs.component.html 44 @@ -3516,7 +3587,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3539,9 +3610,10 @@ Lightning Explorer + Explorator Lightning src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3549,20 +3621,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Documentație src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3642,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + Transmite Tranzacție + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Noroc fonduri (1 săptămână) @@ -3709,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3739,12 +3829,25 @@ mining.rank + + Avg Health + Medie Sănătate + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Blocuri goale src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3753,7 +3856,7 @@ Toți minerii src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3762,7 +3865,7 @@ Noroc Fonduri (1săpt) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3771,7 +3874,7 @@ Număr Fonduri (1săpt) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3780,7 +3883,7 @@ Fondurile de minerit src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3797,6 +3900,7 @@ mining pool + Fond de minerit src/app/components/pool/pool-preview.component.html 3,5 @@ -4006,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Transmite Tranzacție - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Codul hex al tranzacției @@ -4033,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4065,6 +4151,7 @@ Avg Block Fees + Comisioane medii de bloc src/app/components/reward-stats/reward-stats.component.html 17 @@ -4077,6 +4164,7 @@ Average fees per block in the past 144 blocks + Comioane medii per bloc în ultimele 144 de blocuri src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4085,6 +4173,7 @@ BTC/block + BTC/bloc src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4094,6 +4183,7 @@ Avg Tx Fee + Comision mediu per Tx src/app/components/reward-stats/reward-stats.component.html 30 @@ -4138,6 +4228,7 @@ Explore the full Bitcoin ecosystem + Explorați întregul ecosistem Bitcoin src/app/components/search-form/search-form.component.html 4,5 @@ -4153,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Blocul Bitcoin Curent + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Tranzacția Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Adresa Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Blocul Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Adrese Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Noduri Lightning + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Canale Lightning + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Mergi la &quot;&quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool prin vBytes (sat/vByte) @@ -4410,6 +4573,7 @@ This transaction replaced: + Această tranzacție a înlocuit: src/app/components/transaction/transaction.component.html 10,12 @@ -4419,6 +4583,7 @@ Replaced + Înlocuit src/app/components/transaction/transaction.component.html 36,39 @@ -4435,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4445,7 +4610,7 @@ Prima dată văzut src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4479,7 +4644,7 @@ ETA src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4489,7 +4654,7 @@ În câteva ore (sau mai mult) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4499,11 +4664,11 @@ Descendent src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4513,37 +4678,40 @@ Strămoş src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor Flow + Flux src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow Hide diagram + Ascunde diagrama src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram Show more + Arată mai multe src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4557,9 +4725,10 @@ Show less + Arată mai puțin src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4569,9 +4738,10 @@ Show diagram + Arată diagrama src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4580,7 +4750,7 @@ Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4589,7 +4759,7 @@ Tranzacția nu a fost găsită. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4598,7 +4768,7 @@ Se așteaptă să apară în mempool... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4607,7 +4777,7 @@ Rata efectivă a comisionului src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4753,22 +4923,25 @@ Show more inputs to reveal fee data + Arată mai multe intrări pentru a dezvălui datele despre comision src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + rămase src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining other inputs + alte intrări src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4777,6 +4950,7 @@ other outputs + alte ieșiri src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4785,6 +4959,7 @@ Input + Intrare src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 42 @@ -4797,6 +4972,7 @@ Output + Ieșire src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4809,6 +4985,7 @@ This transaction saved % on fees by using native SegWit + Această tranzacție a economisit % din comisioane utilizând SegWit nativ src/app/components/tx-features/tx-features.component.html 2 @@ -4835,6 +5012,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + Această tranzacție a economisit % din comisioane utilizând SegWit și ar putea economisi încă % prin trecerea la SegWit nativ src/app/components/tx-features/tx-features.component.html 4 @@ -4843,6 +5021,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + Această tranzacție ar putea economisi % din comisioane prin trecerea la SegWit nativ sau % prin trecerea la SegWit-P2SH src/app/components/tx-features/tx-features.component.html 6 @@ -4851,6 +5030,7 @@ This transaction uses Taproot and thereby saved at least % on fees + Această tranzacție folosește Taproot și, prin urmare, a economisit cel puțin % din comisioane src/app/components/tx-features/tx-features.component.html 12 @@ -4859,6 +5039,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4884,6 +5065,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + Această tranzacție folosește Taproot și a economisit deja cel puțin % din comisioane, dar ar putea economisi încă % utilizând complet Taproot src/app/components/tx-features/tx-features.component.html 14 @@ -4892,6 +5074,7 @@ This transaction could save % on fees by using Taproot + Această tranzacție ar putea economisi % din comisioane utilizând Taproot src/app/components/tx-features/tx-features.component.html 16 @@ -4900,6 +5083,7 @@ This transaction does not use Taproot + Această tranzacție nu folosește Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -4917,6 +5101,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + Această tranzacție acceptă Replace-By-Fee (RBF), permițând creșterea ulterioară a comisionului src/app/components/tx-features/tx-features.component.html 28 @@ -5001,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Comision minim src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5025,7 +5201,7 @@ Înlăturare src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5035,7 +5211,7 @@ Utilizarea memoriei src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5045,16 +5221,25 @@ L-BTC în circulație src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space oferă doar date despre rețeaua Bitcoin. Nu vă poate ajuta să recuperați fonduri, să confirmați tranzacția mai rapid etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service Serviciu REST API src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5063,11 +5248,11 @@ Terminație src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5076,11 +5261,11 @@ Descriere src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5088,7 +5273,7 @@ Trimitere implicită: acțiune: 'want', data: ['blocks', ...] pentru a exprima ce dorești să trimiți. Disponibil: blocks, mempool-blocks, live-2h-chart, și stats.Tranzacții de trimitere pentru adresa: 'track-address': '3PbJ...bF9B' pentru a primi toate tranzacțiile noi care conțin acea adresă ca intrare sau iesire. Returnează un șir de tranzacții. address-transactions pentru tranzacții noi din mempool, și block-transactions pentru tranzacții confirmate din blocuri noi. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5157,6 +5342,7 @@ Base fee + Comision de bază src/app/lightning/channel/channel-box/channel-box.component.html 29 @@ -5169,6 +5355,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 35 @@ -5189,6 +5376,7 @@ This channel supports zero base fee routing + Acest canal acceptă rutarea cu comision de bază zero src/app/lightning/channel/channel-box/channel-box.component.html 44 @@ -5197,6 +5385,7 @@ Zero base fee + Comision de bază zero src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5205,6 +5394,7 @@ This channel does not support zero base fee routing + Acest canal nu acceptă rutarea cu comision de bază zero src/app/lightning/channel/channel-box/channel-box.component.html 50 @@ -5213,6 +5403,7 @@ Non-zero base fee + Comision de bază diferit de zero src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5221,6 +5412,7 @@ Min HTLC + Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html 57 @@ -5229,6 +5421,7 @@ Max HTLC + Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html 63 @@ -5237,6 +5430,7 @@ Timelock delta + Diferență Timelock src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5245,18 +5439,20 @@ channels + canale src/app/lightning/channel/channel-box/channel-box.component.html 79 src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Balanța inițială src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5266,6 +5462,7 @@ Closing balance + Balanța finală src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5275,6 +5472,7 @@ lightning channel + canal lightning src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5283,6 +5481,7 @@ Inactive + Inactiv src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5293,12 +5492,13 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive Active + Activ src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5309,12 +5509,13 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active Closed + Închis src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5329,12 +5530,13 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed Created + Creat src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5347,6 +5549,7 @@ Capacity + Capacitate src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5357,7 +5560,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5365,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5399,6 +5602,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5419,6 +5623,7 @@ Lightning channel + Canal lightning src/app/lightning/channel/channel.component.html 2,5 @@ -5431,6 +5636,7 @@ Last update + Ultima actualizare src/app/lightning/channel/channel.component.html 33,34 @@ -5463,18 +5669,20 @@ Closing date + Data limită src/app/lightning/channel/channel.component.html 37,38 src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Închis de src/app/lightning/channel/channel.component.html 52,54 @@ -5483,6 +5691,7 @@ Opening transaction + Tranzacția inițială src/app/lightning/channel/channel.component.html 84,85 @@ -5491,6 +5700,7 @@ Closing transaction + Tranzacția finală src/app/lightning/channel/channel.component.html 93,95 @@ -5499,13 +5709,39 @@ Channel: + Canal: src/app/lightning/channel/channel.component.ts 37 + + Mutually closed + Închis reciproc + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Închis forțat + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Închis forțat cu penalizare + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open + Deschis src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5514,17 +5750,19 @@ No channels to display + Nu există canale de afișat src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list Alias + Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5558,29 +5796,32 @@ Status + Stare src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status Channel ID + ID Canal src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id sats + sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5624,8 +5865,27 @@ shared.sats + + avg + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity + Capacitate medie src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5638,6 +5898,7 @@ Avg Fee Rate + Rata medie comision src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5650,6 +5911,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Comisionul mediu perceput de nodurile de rutare, ignorând valori > 0,5% sau 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5658,6 +5920,7 @@ Avg Base Fee + Comision de bază mediu src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5670,6 +5933,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + Comision de bază mediu perceput de nodurile de rutare, ignorând valori > 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5678,6 +5942,7 @@ Med Capacity + Capacitate medie src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5686,6 +5951,7 @@ Med Fee Rate + Rata mediană comision src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5694,6 +5960,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Rata mediană a comisionului perceput de nodurile de rutare, ignorând valori > 0,5% sau 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5702,6 +5969,7 @@ Med Base Fee + Comision de bază median src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5710,6 +5978,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + Comision de bază median perceput de nodurile de rutare, ignorând valori > 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5718,6 +5987,7 @@ Lightning node group + Grup de noduri Lightning src/app/lightning/group/group-preview.component.html 3,5 @@ -5730,6 +6000,7 @@ Nodes + Noduri src/app/lightning/group/group-preview.component.html 25,29 @@ -5740,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5766,6 +6037,7 @@ Liquidity + Lichiditate src/app/lightning/group/group-preview.component.html 29,31 @@ -5802,6 +6074,7 @@ Channels + Canale src/app/lightning/group/group-preview.component.html 40,43 @@ -5812,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5862,6 +6135,7 @@ Average size + Mărime medie src/app/lightning/group/group-preview.component.html 44,46 @@ -5874,6 +6148,7 @@ Location + Locație src/app/lightning/group/group.component.html 74,77 @@ -5914,6 +6189,7 @@ Network Statistics + Statistici Rețea src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5922,6 +6198,7 @@ Channels Statistics + Statistici Canale src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5930,6 +6207,7 @@ Lightning Network History + Istoric Rețea Lightning src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5938,6 +6216,7 @@ Liquidity Ranking + Clasament Lichiditate src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5954,6 +6233,7 @@ Connectivity Ranking + Clasament Conectivitate src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5966,30 +6246,57 @@ Fee distribution + Distribuție Comisioane src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Comisioane Ieșiri + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Comisioane Intrări + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week + Modificare procentuală săptămâna trecută src/app/lightning/node-statistics/node-statistics.component.html 5,7 src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week Lightning node + Nod Lightning src/app/lightning/node/node-preview.component.html 3,5 @@ -6006,6 +6313,7 @@ Active capacity + Capacitate activă src/app/lightning/node/node-preview.component.html 20,22 @@ -6018,6 +6326,7 @@ Active channels + Canale active src/app/lightning/node/node-preview.component.html 26,30 @@ -6030,6 +6339,7 @@ Country + Țară src/app/lightning/node/node-preview.component.html 44,47 @@ -6038,6 +6348,7 @@ No node found for public key "" + Nu a fost găsit niciun nod pentru cheia publică &quot; &quot; src/app/lightning/node/node.component.html 17,19 @@ -6046,6 +6357,7 @@ Average channel size + Dimensiunea medie a canalului src/app/lightning/node/node.component.html 40,43 @@ -6054,6 +6366,7 @@ Avg channel distance + Distanța medie a canalului src/app/lightning/node/node.component.html 56,57 @@ -6062,6 +6375,7 @@ Color + Culoare src/app/lightning/node/node.component.html 79,81 @@ -6070,6 +6384,7 @@ ISP + ISP src/app/lightning/node/node.component.html 86,87 @@ -6082,6 +6397,7 @@ Exclusively on Tor + Exclusiv pe Tor src/app/lightning/node/node.component.html 93,95 @@ -6090,6 +6406,7 @@ Liquidity ad + Anunț de lichiditate src/app/lightning/node/node.component.html 138,141 @@ -6098,6 +6415,7 @@ Lease fee rate + Rata comisionului de închiriere src/app/lightning/node/node.component.html 144,147 @@ -6107,6 +6425,7 @@ Lease base fee + Comisionul de inchiriere de bază src/app/lightning/node/node.component.html 152,154 @@ -6115,6 +6434,7 @@ Funding weight + Greutatea finanțării src/app/lightning/node/node.component.html 158,159 @@ -6123,6 +6443,7 @@ Channel fee rate + Comisionul canalului src/app/lightning/node/node.component.html 168,171 @@ -6132,6 +6453,7 @@ Channel base fee + Comisionul de bază al canalului src/app/lightning/node/node.component.html 176,178 @@ -6140,6 +6462,7 @@ Compact lease + Închiriere compactă src/app/lightning/node/node.component.html 188,190 @@ -6148,6 +6471,7 @@ TLV extension records + Înregistrări extensiil TLV src/app/lightning/node/node.component.html 199,202 @@ -6156,6 +6480,7 @@ Open channels + Canale deschise src/app/lightning/node/node.component.html 240,243 @@ -6164,6 +6489,7 @@ Closed channels + Canale închise src/app/lightning/node/node.component.html 244,247 @@ -6172,6 +6498,7 @@ Node: + Nod: src/app/lightning/node/node.component.ts 60 @@ -6179,6 +6506,7 @@ (Tor nodes excluded) + (Nodurile Tor excluse) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -6199,6 +6527,7 @@ Lightning Nodes Channels World Map + Harta lumii cu canalele nodurilor Lightning src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -6206,13 +6535,15 @@ No geolocation data available + Nu sunt disponibile date de geolocalizare src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 Active channels map + Harta canalelor active src/app/lightning/nodes-channels/node-channels.component.html 2,3 @@ -6221,6 +6552,7 @@ Indexing in progress + Indexare în curs src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6232,6 +6564,7 @@ Reachable on Clearnet Only + Accesibil numai pe Clearnet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6243,6 +6576,7 @@ Reachable on Clearnet and Darknet + Accesibil pe Clearnet și Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6254,6 +6588,7 @@ Reachable on Darknet Only + Accesibil numai pe Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6265,6 +6600,7 @@ Share + Partajează src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6277,6 +6613,7 @@ nodes + noduri src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6292,6 +6629,7 @@ BTC capacity + capacitate BTC src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6299,6 +6637,7 @@ Lightning nodes in + Noduri Lightning în src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6307,6 +6646,7 @@ ISP Count + Număr ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6315,6 +6655,7 @@ Top ISP + Top ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6323,6 +6664,7 @@ Lightning nodes in + Noduri Lightning în src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6330,6 +6672,7 @@ Clearnet Capacity + Capacitate Clearnet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6342,6 +6685,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + Câtă lichiditate există pe nodurile care anunță cel puțin o adresă IP din Clearnet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6350,6 +6694,7 @@ Unknown Capacity + Capacitate necunoscută src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6362,6 +6707,7 @@ How much liquidity is running on nodes which ISP was not identifiable + Câtă lichiditate există pe noduri pe care ISP-ul nu a fost identificabil src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6370,6 +6716,7 @@ Tor Capacity + Capacitate Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6382,6 +6729,7 @@ How much liquidity is running on nodes advertising only Tor addresses + Câtă lichiditate există pe nodurile care anunță numai adrese Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6390,6 +6738,7 @@ Top 100 ISPs hosting LN nodes + Top 100 ISP-uri care găzduiesc noduri LN src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6398,6 +6747,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6409,6 +6759,7 @@ Lightning ISP + Lightning ISP src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6417,6 +6768,7 @@ Top country + Țara de top src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6429,6 +6781,7 @@ Top node + Nodul de top src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6437,6 +6790,7 @@ Lightning nodes on ISP: [AS] + Noduri Lightning pe ISP: [CA] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6448,6 +6802,7 @@ Lightning nodes on ISP: + Noduri Lightning pe ISP: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6456,6 +6811,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6464,6 +6820,7 @@ Active nodes + Noduri active src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6472,6 +6829,7 @@ Top 100 oldest lightning nodes + Top 100 cele mai vechi noduri lightning src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6480,6 +6838,7 @@ Oldest lightning nodes + Cele mai vechi noduri lightning src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 @@ -6487,6 +6846,7 @@ Top 100 nodes liquidity ranking + Top 100 de noduri de lichiditate src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html 3,7 @@ -6495,6 +6855,7 @@ Top 100 nodes connectivity ranking + Top 100 de noduri de conectivitate src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 3,7 @@ -6503,6 +6864,7 @@ Oldest nodes + Cele mai vechi noduri src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6511,6 +6873,7 @@ Top lightning nodes + Top noduri lightning src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6518,6 +6881,7 @@ Indexing in progress + Indexare în curs src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 From bc3400ce75ebca897bae6d0b96ac816f4633ef4b Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 26 Feb 2023 10:13:25 +0400 Subject: [PATCH 0423/1466] Enable GBT mempool in all production configs --- production/mempool-config.mainnet.json | 2 +- production/mempool-config.signet.json | 2 +- production/mempool-config.testnet.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/production/mempool-config.mainnet.json b/production/mempool-config.mainnet.json index 658437edc..cca43d7e3 100644 --- a/production/mempool-config.mainnet.json +++ b/production/mempool-config.mainnet.json @@ -13,7 +13,7 @@ "AUDIT": true, "CPFP_INDEXING": true, "ADVANCED_GBT_AUDIT": true, - "ADVANCED_GBT_MEMPOOL": false, + "ADVANCED_GBT_MEMPOOL": true, "USE_SECOND_NODE_FOR_MINFEE": true }, "SYSLOG" : { diff --git a/production/mempool-config.signet.json b/production/mempool-config.signet.json index 3c661c39f..87f8e2650 100644 --- a/production/mempool-config.signet.json +++ b/production/mempool-config.signet.json @@ -9,7 +9,7 @@ "INDEXING_BLOCKS_AMOUNT": -1, "AUDIT": true, "ADVANCED_GBT_AUDIT": true, - "ADVANCED_GBT_MEMPOOL": false, + "ADVANCED_GBT_MEMPOOL": true, "POLL_RATE_MS": 1000 }, "SYSLOG" : { diff --git a/production/mempool-config.testnet.json b/production/mempool-config.testnet.json index 352529c6e..5c1695e62 100644 --- a/production/mempool-config.testnet.json +++ b/production/mempool-config.testnet.json @@ -9,7 +9,7 @@ "INDEXING_BLOCKS_AMOUNT": -1, "AUDIT": true, "ADVANCED_GBT_AUDIT": true, - "ADVANCED_GBT_MEMPOOL": false, + "ADVANCED_GBT_MEMPOOL": true, "POLL_RATE_MS": 1000 }, "SYSLOG" : { From d938448fe95a68734270dd4f88869517db6d1271 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 26 Feb 2023 15:28:50 +0900 Subject: [PATCH 0424/1466] Replace `--reindex=xxx,xxx` command line with `--reindex-blocks` --- backend/src/api/database-migration.ts | 28 +++++++++------------------ backend/src/index.ts | 7 ++----- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 3140ea358..13cffd755 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -1012,26 +1012,16 @@ class DatabaseMigration { ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`; } - public async $truncateIndexedData(tables: string[]) { - const allowedTables = ['blocks', 'hashrates', 'prices']; + public async $blocksReindexingTruncate(): Promise { + logger.warn(`Truncating pools, blocks and hashrates for re-indexing (using '--reindex-blocks'). You can cancel this command within 5 seconds`); + await Common.sleep$(5000); - try { - for (const table of tables) { - if (!allowedTables.includes(table)) { - logger.debug(`Table ${table} cannot to be re-indexed (not allowed)`); - continue; - } - - await this.$executeQuery(`TRUNCATE ${table}`, true); - if (table === 'hashrates') { - await this.$executeQuery('UPDATE state set number = 0 where name = "last_hashrates_indexing"', true); - } - logger.notice(`Table ${table} has been truncated`); - } - } catch (e) { - logger.warn(`Unable to erase indexed data`); - } - } + await this.$executeQuery(`TRUNCATE blocks`); + await this.$executeQuery(`TRUNCATE hashrates`); + 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'`); +} private async $convertCompactCpfpTables(): Promise { try { diff --git a/backend/src/index.ts b/backend/src/index.ts index 6ea3ddc43..e96d7e4da 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -84,11 +84,8 @@ class Server { if (config.DATABASE.ENABLED) { await DB.checkDbConnection(); try { - if (process.env.npm_config_reindex !== undefined) { // Re-index requests - const tables = process.env.npm_config_reindex.split(','); - logger.warn(`Indexed data for "${process.env.npm_config_reindex}" tables will be erased in 5 seconds (using '--reindex')`); - await Common.sleep$(5000); - await databaseMigration.$truncateIndexedData(tables); + if (process.env.npm_config_reindex_blocks === 'true') { // Re-index requests + await databaseMigration.$blocksReindexingTruncate(); } await databaseMigration.$initializeOrMigrateDatabase(); if (Common.indexingEnabled()) { From 955e216037422db6d35e726a7472babe582c89ff Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 26 Feb 2023 15:41:55 +0900 Subject: [PATCH 0425/1466] AUTOMATIC_BLOCK_REINDEXING is `false` by default --- backend/src/__fixtures__/mempool-config.template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/__fixtures__/mempool-config.template.json b/backend/src/__fixtures__/mempool-config.template.json index 9890654a5..2bf52cbcf 100644 --- a/backend/src/__fixtures__/mempool-config.template.json +++ b/backend/src/__fixtures__/mempool-config.template.json @@ -7,7 +7,7 @@ "HTTP_PORT": 1, "SPAWN_CLUSTER_PROCS": 2, "API_URL_PREFIX": "__MEMPOOL_API_URL_PREFIX__", - "AUTOMATIC_BLOCK_REINDEXING": true, + "AUTOMATIC_BLOCK_REINDEXING": false, "POLL_RATE_MS": 3, "CACHE_DIR": "__MEMPOOL_CACHE_DIR__", "CLEAR_PROTECTION_MINUTES": 4, From 5fba448dca1ae525473ae1f2fa7a9d130b983182 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 26 Feb 2023 18:24:08 +0900 Subject: [PATCH 0426/1466] Truncate coinbase data if it's too long --- backend/src/index.ts | 1 - backend/src/repositories/BlocksRepository.ts | 7 +++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index e96d7e4da..6f259a2bd 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -36,7 +36,6 @@ import bitcoinRoutes from './api/bitcoin/bitcoin.routes'; import fundingTxFetcher from './tasks/lightning/sync-tasks/funding-tx-fetcher'; import forensicsService from './tasks/lightning/forensics.service'; import priceUpdater from './tasks/price-updater'; -import mining from './api/mining/mining'; import chainTips from './api/chain-tips'; import { AxiosError } from 'axios'; diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index 86dc006ff..c7edb97cb 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -16,6 +16,9 @@ class BlocksRepository { * Save indexed block data in the database */ public async $saveBlockInDatabase(block: BlockExtended) { + const truncatedCoinbaseSignature = block?.extras?.coinbaseSignature?.substring(0, 500); + const truncatedCoinbaseSignatureAscii = block?.extras?.coinbaseSignatureAscii?.substring(0, 500); + try { const query = `INSERT INTO blocks( height, hash, blockTimestamp, size, @@ -65,7 +68,7 @@ class BlocksRepository { block.extras.medianTimestamp, block.extras.header, block.extras.coinbaseAddress, - block.extras.coinbaseSignature, + truncatedCoinbaseSignature, block.extras.utxoSetSize, block.extras.utxoSetChange, block.extras.avgTxSize, @@ -78,7 +81,7 @@ class BlocksRepository { block.extras.segwitTotalSize, block.extras.segwitTotalWeight, block.extras.medianFeeAmt, - block.extras.coinbaseSignatureAscii, + truncatedCoinbaseSignatureAscii, ]; await DB.query(query, params); From 0ce4c5fa4d8bd55280d97262668f9ea8e3940d6e Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sun, 26 Feb 2023 08:23:44 -0800 Subject: [PATCH 0427/1466] Run Cypress tests on master after merging --- .github/workflows/cypress.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index e8f6d1df1..2cff7b73a 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -3,6 +3,9 @@ name: Cypress Tests on: pull_request: types: [opened, review_requested, synchronize] + push: + branches: + - master jobs: cypress: if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')" From 2f27d9279d4551576343b6c62cc981804a48b01e Mon Sep 17 00:00:00 2001 From: Mononaut Date: Fri, 24 Feb 2023 20:21:57 -0600 Subject: [PATCH 0428/1466] extend unfurler to dynamically render search crawler requests --- frontend/src/app/services/seo.service.ts | 2 +- unfurler/src/concurrency/ReusableSSRPage.ts | 65 ++++++++++++ unfurler/src/index.ts | 107 ++++++++++++++++++-- 3 files changed, 167 insertions(+), 7 deletions(-) create mode 100644 unfurler/src/concurrency/ReusableSSRPage.ts diff --git a/frontend/src/app/services/seo.service.ts b/frontend/src/app/services/seo.service.ts index 5f5d15c89..78c7afc4c 100644 --- a/frontend/src/app/services/seo.service.ts +++ b/frontend/src/app/services/seo.service.ts @@ -7,7 +7,7 @@ import { StateService } from './state.service'; }) export class SeoService { network = ''; - baseTitle = 'mempool'; + baseTitle = 'Mempool'; constructor( private titleService: Title, diff --git a/unfurler/src/concurrency/ReusableSSRPage.ts b/unfurler/src/concurrency/ReusableSSRPage.ts new file mode 100644 index 000000000..c68514a16 --- /dev/null +++ b/unfurler/src/concurrency/ReusableSSRPage.ts @@ -0,0 +1,65 @@ +import * as puppeteer from 'puppeteer'; +import { timeoutExecute } from 'puppeteer-cluster/dist/util'; +import logger from '../logger'; +import config from '../config'; +import ReusablePage from './ReusablePage'; +const mempoolHost = config.MEMPOOL.HTTP_HOST + (config.MEMPOOL.HTTP_PORT ? ':' + config.MEMPOOL.HTTP_PORT : ''); + +const mockImageBuffer = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=", 'base64'); + +interface RepairablePage extends puppeteer.Page { + repairRequested?: boolean; + language?: string | null; + createdAt?: number; + free?: boolean; + index?: number; +} + +export default class ReusableSSRPage extends ReusablePage { + + public constructor(options: puppeteer.LaunchOptions, puppeteer: any) { + super(options, puppeteer); + } + + public async close() { + await (this.browser as puppeteer.Browser).close(); + } + + protected async initPage(): Promise { + const page = await (this.browser as puppeteer.Browser).newPage() as RepairablePage; + page.language = null; + page.createdAt = Date.now(); + const defaultUrl = mempoolHost + '/about'; + + page.on('pageerror', (err) => { + console.log(err); + // page.repairRequested = true; + }); + await page.setRequestInterception(true); + page.on('request', req => { + if (req.isInterceptResolutionHandled()) { + return req.continue(); + } + if (req.resourceType() === 'image') { + return req.respond({ + contentType: 'image/png', + headers: {"Access-Control-Allow-Origin": "*"}, + body: mockImageBuffer + }); + } else if (!['document', 'script', 'xhr', 'fetch'].includes(req.resourceType())) { + return req.abort(); + } else { + return req.continue(); + } + }); + try { + await page.goto(defaultUrl, { waitUntil: "networkidle0" }); + await page.waitForSelector('meta[property="og:meta:ready"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }); + } catch (e) { + logger.err(`failed to load frontend during ssr page initialization: ` + (e instanceof Error ? e.message : `${e}`)); + page.repairRequested = true; + } + page.free = true; + return page + } +} diff --git a/unfurler/src/index.ts b/unfurler/src/index.ts index 0b423ff92..c24cd65af 100644 --- a/unfurler/src/index.ts +++ b/unfurler/src/index.ts @@ -5,9 +5,11 @@ import * as https from 'https'; import config from './config'; import { Cluster } from 'puppeteer-cluster'; import ReusablePage from './concurrency/ReusablePage'; +import ReusableSSRPage from './concurrency/ReusablePage'; import { parseLanguageUrl } from './language/lang'; import { matchRoute } from './routes'; import logger from './logger'; +import { TimeoutError } from "puppeteer"; const puppeteerConfig = require('../puppeteer.config.json'); if (config.PUPPETEER.EXEC_PATH) { @@ -20,13 +22,16 @@ class Server { private server: http.Server | undefined; private app: Application; cluster?: Cluster; + ssrCluster?: Cluster; mempoolHost: string; + mempoolUrl: URL; network: string; secureHost = true; constructor() { this.app = express(); this.mempoolHost = config.MEMPOOL.HTTP_HOST + (config.MEMPOOL.HTTP_PORT ? ':' + config.MEMPOOL.HTTP_PORT : ''); + this.mempoolUrl = new URL(this.mempoolHost); this.secureHost = config.SERVER.HOST.startsWith('https'); this.network = config.MEMPOOL.NETWORK || 'bitcoin'; this.startServer(); @@ -49,6 +54,12 @@ class Server { puppeteerOptions: puppeteerConfig, }); await this.cluster?.task(async (args) => { return this.clusterTask(args) }); + this.ssrCluster = await Cluster.launch({ + concurrency: ReusableSSRPage, + maxConcurrency: config.PUPPETEER.CLUSTER_SIZE, + puppeteerOptions: puppeteerConfig, + }); + await this.ssrCluster?.task(async (args) => { return this.ssrClusterTask(args) }); } this.setUpRoutes(); @@ -65,6 +76,10 @@ class Server { await this.cluster.idle(); await this.cluster.close(); } + if (this.ssrCluster) { + await this.ssrCluster.idle(); + await this.ssrCluster.close(); + } if (this.server) { await this.server.close(); } @@ -102,8 +117,8 @@ class Server { } // wait for preview component to initialize - await page.waitForSelector('meta[property="og:preview:loading"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }) let success; + await page.waitForSelector('meta[property="og:preview:loading"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }) success = await Promise.race([ page.waitForSelector('meta[property="og:preview:ready"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => true), page.waitForSelector('meta[property="og:preview:fail"]', { timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000 }).then(() => false) @@ -124,6 +139,44 @@ class Server { } } + async ssrClusterTask({ page, data: { url, path, action } }) { + try { + const urlParts = parseLanguageUrl(path); + if (page.language !== urlParts.lang) { + // switch language + page.language = urlParts.lang; + const localizedUrl = urlParts.lang ? `${this.mempoolHost}/${urlParts.lang}${urlParts.path}` : `${this.mempoolHost}${urlParts.path}` ; + await page.goto(localizedUrl, { waitUntil: "load" }); + } else { + const loaded = await page.evaluate(async (path) => { + if (window['ogService']) { + window['ogService'].loadPage(path); + return true; + } else { + return false; + } + }, urlParts.path); + if (!loaded) { + throw new Error('failed to access open graph service'); + } + } + + await page.waitForNetworkIdle({ + timeout: config.PUPPETEER.RENDER_TIMEOUT || 3000, + }); + let html = await page.content(); + return html; + } catch (e) { + if (e instanceof TimeoutError) { + let html = await page.content(); + return html; + } else { + logger.err(`failed to render ${path} for ${action}: ` + (e instanceof Error ? e.message : `${e}`)); + page.repairRequested = true; + } + } + } + async renderDisabled(req, res) { res.status(500).send("preview rendering disabled"); } @@ -163,11 +216,44 @@ class Server { // drop requests for static files const rawPath = req.params[0]; const match = rawPath.match(/\.[\w]+$/); - if (match?.length && match[0] !== '.html') { - res.status(404).send(); - return; + if (match?.length && match[0] !== '.html' + || rawPath.startsWith('/api/v1/donations/images') + || rawPath.startsWith('/api/v1/contributors/images') + || rawPath.startsWith('/api/v1/translators/images') + || rawPath.startsWith('/resources/profile') + ) { + if (req.headers['user-agent'] === 'googlebot') { + if (this.secureHost) { + https.get(config.SERVER.HOST + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => got.pipe(res)); + } else { + http.get(config.SERVER.HOST + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => got.pipe(res)); + } + return; + } else { + res.status(404).send(); + return; + } } + let result = ''; + try { + if (req.headers['user-agent'] === 'googlebot') { + result = await this.renderSEOPage(rawPath); + } else { + result = await this.renderUnfurlMeta(rawPath); + } + if (result && result.length) { + res.send(result); + } else { + res.status(500).send(); + } + } catch (e) { + logger.err(e instanceof Error ? e.message : `${e} ${req.params[0]}`); + res.status(500).send(e instanceof Error ? e.message : e); + } + } + + async renderUnfurlMeta(rawPath: string): Promise { const { lang, path } = parseLanguageUrl(rawPath); const matchedRoute = matchRoute(this.network, path); let ogImageUrl = config.SERVER.HOST + (matchedRoute.staticImg || matchedRoute.fallbackImg); @@ -178,7 +264,7 @@ class Server { ogTitle = `${this.network ? capitalize(this.network) + ' ' : ''}${matchedRoute.networkMode !== 'mainnet' ? capitalize(matchedRoute.networkMode) + ' ' : ''}${matchedRoute.title}`; } - res.send(` + return ` @@ -199,7 +285,16 @@ class Server { - `); + `; + } + + async renderSEOPage(rawPath: string): Promise { + let html = await this.ssrCluster?.execute({ url: this.mempoolHost + rawPath, path: rawPath, action: 'ssr' }); + // remove javascript to prevent double hydration + if (html && html.length) { + html = html.replace(//g, ""); + } + return html; } } From 4cc0f9b5c74d15bf09514aec6d0c951235b83b3d Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn <100320+knorrium@users.noreply.github.com> Date: Sun, 26 Feb 2023 09:16:33 -0800 Subject: [PATCH 0429/1466] Reorder triggers --- .github/workflows/cypress.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 2cff7b73a..8c720917e 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -1,11 +1,11 @@ name: Cypress Tests on: + push: + branches: [master] pull_request: types: [opened, review_requested, synchronize] - push: - branches: - - master + jobs: cypress: if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')" From 5792dee553f03c632fc5888a35490a27e772b281 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 27 Feb 2023 10:47:04 +0900 Subject: [PATCH 0430/1466] Use bitcoinApiFactory when we don't need verbose blocks or confirmation number --- backend/src/api/blocks.ts | 14 ++++++-------- backend/src/api/chain-tips.ts | 4 ++-- backend/src/api/mining/mining.ts | 14 ++++++++------ 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 204419496..068184949 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -479,7 +479,7 @@ class Blocks { loadingIndicators.setProgress('block-indexing', progress, false); } const blockHash = await bitcoinApi.$getBlockHash(blockHeight); - const block = BitcoinApi.convertBlock(await bitcoinClient.getBlock(blockHash)); + const block: IEsploraApi.Block = await bitcoinApi.$getBlock(blockHash); const transactions = await this.$getTransactionsExtended(blockHash, block.height, true, true); const blockExtended = await this.$getBlockExtended(block, transactions); @@ -527,13 +527,13 @@ class Blocks { if (blockchainInfo.blocks === blockchainInfo.headers) { const heightDiff = blockHeightTip % 2016; const blockHash = await bitcoinApi.$getBlockHash(blockHeightTip - heightDiff); - const block = BitcoinApi.convertBlock(await bitcoinClient.getBlock(blockHash)); + const block: IEsploraApi.Block = await bitcoinApi.$getBlock(blockHash); this.lastDifficultyAdjustmentTime = block.timestamp; this.currentDifficulty = block.difficulty; if (blockHeightTip >= 2016) { const previousPeriodBlockHash = await bitcoinApi.$getBlockHash(blockHeightTip - heightDiff - 2016); - const previousPeriodBlock = await bitcoinClient.getBlock(previousPeriodBlockHash) + const previousPeriodBlock: IEsploraApi.Block = await bitcoinApi.$getBlock(previousPeriodBlockHash); this.previousDifficultyRetarget = (block.difficulty - previousPeriodBlock.difficulty) / previousPeriodBlock.difficulty * 100; logger.debug(`Initial difficulty adjustment data set.`); } @@ -657,7 +657,7 @@ class Blocks { } const blockHash = await bitcoinApi.$getBlockHash(height); - const block = BitcoinApi.convertBlock(await bitcoinClient.getBlock(blockHash)); + const block: IEsploraApi.Block = await bitcoinApi.$getBlock(blockHash); const transactions = await this.$getTransactionsExtended(blockHash, block.height, true); const blockExtended = await this.$getBlockExtended(block, transactions); @@ -681,7 +681,7 @@ class Blocks { // Block has already been indexed if (Common.indexingEnabled()) { const dbBlock = await blocksRepository.$getBlockByHash(hash); - if (dbBlock != null) { + if (dbBlock !== null) { return prepareBlock(dbBlock); } } @@ -691,10 +691,8 @@ class Blocks { return await bitcoinApi.$getBlock(hash); } - let block = await bitcoinClient.getBlock(hash); - block = prepareBlock(block); - // Bitcoin network, add our custom data on top + const block: IEsploraApi.Block = await bitcoinApi.$getBlock(hash); const transactions = await this.$getTransactionsExtended(hash, block.height, true); const blockExtended = await this.$getBlockExtended(block, transactions); if (Common.indexingEnabled()) { diff --git a/backend/src/api/chain-tips.ts b/backend/src/api/chain-tips.ts index 3384ebb19..46a06f703 100644 --- a/backend/src/api/chain-tips.ts +++ b/backend/src/api/chain-tips.ts @@ -1,5 +1,5 @@ -import logger from "../logger"; -import bitcoinClient from "./bitcoin/bitcoin-client"; +import logger from '../logger'; +import bitcoinClient from './bitcoin/bitcoin-client'; export interface ChainTip { height: number; diff --git a/backend/src/api/mining/mining.ts b/backend/src/api/mining/mining.ts index f33a68dcb..e9b569485 100644 --- a/backend/src/api/mining/mining.ts +++ b/backend/src/api/mining/mining.ts @@ -11,6 +11,8 @@ import DifficultyAdjustmentsRepository from '../../repositories/DifficultyAdjust import config from '../../config'; import BlocksAuditsRepository from '../../repositories/BlocksAuditsRepository'; import PricesRepository from '../../repositories/PricesRepository'; +import bitcoinApiFactory from '../bitcoin/bitcoin-api-factory'; +import { IEsploraApi } from '../bitcoin/esplora-api.interface'; class Mining { blocksPriceIndexingRunning = false; @@ -189,8 +191,8 @@ class Mining { try { const oldestConsecutiveBlockTimestamp = 1000 * (await BlocksRepository.$getOldestConsecutiveBlock()).timestamp; - const genesisBlock = await bitcoinClient.getBlock(await bitcoinClient.getBlockHash(0)); - const genesisTimestamp = genesisBlock.time * 1000; + const genesisBlock: IEsploraApi.Block = await bitcoinApiFactory.$getBlock(await bitcoinClient.getBlockHash(0)); + const genesisTimestamp = genesisBlock.timestamp * 1000; const indexedTimestamp = await HashratesRepository.$getWeeklyHashrateTimestamps(); const hashrates: any[] = []; @@ -292,8 +294,8 @@ class Mining { const oldestConsecutiveBlockTimestamp = 1000 * (await BlocksRepository.$getOldestConsecutiveBlock()).timestamp; try { - const genesisBlock = await bitcoinClient.getBlock(await bitcoinClient.getBlockHash(0)); - const genesisTimestamp = genesisBlock.time * 1000; + const genesisBlock: IEsploraApi.Block = await bitcoinApiFactory.$getBlock(await bitcoinClient.getBlockHash(0)); + const genesisTimestamp = genesisBlock.timestamp * 1000; const indexedTimestamp = (await HashratesRepository.$getRawNetworkDailyHashrate(null)).map(hashrate => hashrate.timestamp); const lastMidnight = this.getDateMidnight(new Date()); let toTimestamp = Math.round(lastMidnight.getTime()); @@ -394,13 +396,13 @@ class Mining { } const blocks: any = await BlocksRepository.$getBlocksDifficulty(); - const genesisBlock = await bitcoinClient.getBlock(await bitcoinClient.getBlockHash(0)); + const genesisBlock: IEsploraApi.Block = await bitcoinApiFactory.$getBlock(await bitcoinClient.getBlockHash(0)); let currentDifficulty = genesisBlock.difficulty; let totalIndexed = 0; if (config.MEMPOOL.INDEXING_BLOCKS_AMOUNT === -1 && indexedHeights[0] !== true) { await DifficultyAdjustmentsRepository.$saveAdjustments({ - time: genesisBlock.time, + time: genesisBlock.timestamp, height: 0, difficulty: currentDifficulty, adjustment: 0.0, From 0aff276a5c8d9eb5d1f8688836d95a0427e4bb73 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 27 Feb 2023 18:00:00 +0900 Subject: [PATCH 0431/1466] Enforce BlockExtended use for block indexing - Unify /api/v1/block(s) API(s) response format --- .../src/api/bitcoin/bitcoin-api.interface.ts | 31 +++ backend/src/api/bitcoin/bitcoin-api.ts | 2 +- .../src/api/bitcoin/esplora-api.interface.ts | 2 +- backend/src/api/blocks.ts | 224 +++++++++--------- backend/src/api/chain-tips.ts | 6 +- backend/src/api/pools-parser.ts | 2 + backend/src/index.ts | 9 +- backend/src/mempool.interfaces.ts | 69 +++--- backend/src/repositories/BlocksRepository.ts | 206 +++++++++++----- backend/src/repositories/PoolsRepository.ts | 6 +- backend/src/utils/blocks-utils.ts | 33 --- .../src/app/interfaces/node-api.interface.ts | 1 - 12 files changed, 352 insertions(+), 239 deletions(-) delete mode 100644 backend/src/utils/blocks-utils.ts diff --git a/backend/src/api/bitcoin/bitcoin-api.interface.ts b/backend/src/api/bitcoin/bitcoin-api.interface.ts index 54d666794..3afc22897 100644 --- a/backend/src/api/bitcoin/bitcoin-api.interface.ts +++ b/backend/src/api/bitcoin/bitcoin-api.interface.ts @@ -172,4 +172,35 @@ export namespace IBitcoinApi { } } + export interface BlockStats { + "avgfee": number; + "avgfeerate": number; + "avgtxsize": number; + "blockhash": string; + "feerate_percentiles": [number, number, number, number, number]; + "height": number; + "ins": number; + "maxfee": number; + "maxfeerate": number; + "maxtxsize": number; + "medianfee": number; + "mediantime": number; + "mediantxsize": number; + "minfee": number; + "minfeerate": number; + "mintxsize": number; + "outs": number; + "subsidy": number; + "swtotal_size": number; + "swtotal_weight": number; + "swtxs": number; + "time": number; + "total_out": number; + "total_size": number; + "total_weight": number; + "totalfee": number; + "txs": number; + "utxo_increase": number; + "utxo_size_inc": number; + } } diff --git a/backend/src/api/bitcoin/bitcoin-api.ts b/backend/src/api/bitcoin/bitcoin-api.ts index 117245ef8..e20fe9e34 100644 --- a/backend/src/api/bitcoin/bitcoin-api.ts +++ b/backend/src/api/bitcoin/bitcoin-api.ts @@ -28,7 +28,7 @@ class BitcoinApi implements AbstractBitcoinApi { size: block.size, weight: block.weight, previousblockhash: block.previousblockhash, - medianTime: block.mediantime, + mediantime: block.mediantime, }; } diff --git a/backend/src/api/bitcoin/esplora-api.interface.ts b/backend/src/api/bitcoin/esplora-api.interface.ts index eaf6476f4..6d50bddfd 100644 --- a/backend/src/api/bitcoin/esplora-api.interface.ts +++ b/backend/src/api/bitcoin/esplora-api.interface.ts @@ -88,7 +88,7 @@ export namespace IEsploraApi { size: number; weight: number; previousblockhash: string; - medianTime?: number; + mediantime: number; } export interface Address { diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 068184949..75d1ec300 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -2,7 +2,7 @@ import config from '../config'; import bitcoinApi from './bitcoin/bitcoin-api-factory'; import logger from '../logger'; import memPool from './mempool'; -import { BlockExtended, BlockSummary, PoolTag, TransactionExtended, TransactionStripped, TransactionMinerInfo } from '../mempool.interfaces'; +import { BlockExtended, BlockExtension, BlockSummary, PoolTag, TransactionExtended, TransactionStripped, TransactionMinerInfo } from '../mempool.interfaces'; import { Common } from './common'; import diskCache from './disk-cache'; import transactionUtils from './transaction-utils'; @@ -13,7 +13,6 @@ import poolsRepository from '../repositories/PoolsRepository'; import blocksRepository from '../repositories/BlocksRepository'; import loadingIndicators from './loading-indicators'; import BitcoinApi from './bitcoin/bitcoin-api'; -import { prepareBlock } from '../utils/blocks-utils'; import BlocksRepository from '../repositories/BlocksRepository'; import HashratesRepository from '../repositories/HashratesRepository'; import indexer from '../indexer'; @@ -143,7 +142,7 @@ class Blocks { * @param block * @returns BlockSummary */ - private summarizeBlock(block: IBitcoinApi.VerboseBlock): BlockSummary { + public summarizeBlock(block: IBitcoinApi.VerboseBlock): BlockSummary { const stripped = block.tx.map((tx) => { return { txid: tx.txid, @@ -166,80 +165,81 @@ class Blocks { * @returns BlockExtended */ private async $getBlockExtended(block: IEsploraApi.Block, transactions: TransactionExtended[]): Promise { - const blk: BlockExtended = Object.assign({ extras: {} }, block); - blk.extras.reward = transactions[0].vout.reduce((acc, curr) => acc + curr.value, 0); - blk.extras.coinbaseTx = transactionUtils.stripCoinbaseTransaction(transactions[0]); - blk.extras.coinbaseRaw = blk.extras.coinbaseTx.vin[0].scriptsig; - blk.extras.usd = priceUpdater.latestPrices.USD; - blk.extras.medianTimestamp = block.medianTime; - blk.extras.orphans = chainTips.getOrphanedBlocksAtHeight(blk.height); + const coinbaseTx = transactionUtils.stripCoinbaseTransaction(transactions[0]); + + const blk: Partial = Object.assign({}, block); + const extras: Partial = {}; + + extras.reward = transactions[0].vout.reduce((acc, curr) => acc + curr.value, 0); + extras.coinbaseRaw = coinbaseTx.vin[0].scriptsig; + extras.orphans = chainTips.getOrphanedBlocksAtHeight(blk.height); if (block.height === 0) { - blk.extras.medianFee = 0; // 50th percentiles - blk.extras.feeRange = [0, 0, 0, 0, 0, 0, 0]; - blk.extras.totalFees = 0; - blk.extras.avgFee = 0; - blk.extras.avgFeeRate = 0; - blk.extras.utxoSetChange = 0; - blk.extras.avgTxSize = 0; - blk.extras.totalInputs = 0; - blk.extras.totalOutputs = 1; - blk.extras.totalOutputAmt = 0; - blk.extras.segwitTotalTxs = 0; - blk.extras.segwitTotalSize = 0; - blk.extras.segwitTotalWeight = 0; + extras.medianFee = 0; // 50th percentiles + extras.feeRange = [0, 0, 0, 0, 0, 0, 0]; + extras.totalFees = 0; + extras.avgFee = 0; + extras.avgFeeRate = 0; + extras.utxoSetChange = 0; + extras.avgTxSize = 0; + extras.totalInputs = 0; + extras.totalOutputs = 1; + extras.totalOutputAmt = 0; + extras.segwitTotalTxs = 0; + extras.segwitTotalSize = 0; + extras.segwitTotalWeight = 0; } else { - const stats = await bitcoinClient.getBlockStats(block.id); - blk.extras.medianFee = stats.feerate_percentiles[2]; // 50th percentiles - blk.extras.feeRange = [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(); - blk.extras.totalFees = stats.totalfee; - blk.extras.avgFee = stats.avgfee; - blk.extras.avgFeeRate = stats.avgfeerate; - blk.extras.utxoSetChange = stats.utxo_increase; - blk.extras.avgTxSize = Math.round(stats.total_size / stats.txs * 100) * 0.01; - blk.extras.totalInputs = stats.ins; - blk.extras.totalOutputs = stats.outs; - blk.extras.totalOutputAmt = stats.total_out; - blk.extras.segwitTotalTxs = stats.swtxs; - blk.extras.segwitTotalSize = stats.swtotal_size; - blk.extras.segwitTotalWeight = stats.swtotal_weight; + const stats: IBitcoinApi.BlockStats = await bitcoinClient.getBlockStats(block.id); + extras.medianFee = stats.feerate_percentiles[2]; // 50th percentiles + extras.feeRange = [stats.minfeerate, stats.feerate_percentiles, stats.maxfeerate].flat(); + extras.totalFees = stats.totalfee; + extras.avgFee = stats.avgfee; + extras.avgFeeRate = stats.avgfeerate; + extras.utxoSetChange = stats.utxo_increase; + extras.avgTxSize = Math.round(stats.total_size / stats.txs * 100) * 0.01; + extras.totalInputs = stats.ins; + extras.totalOutputs = stats.outs; + extras.totalOutputAmt = stats.total_out; + extras.segwitTotalTxs = stats.swtxs; + extras.segwitTotalSize = stats.swtotal_size; + extras.segwitTotalWeight = stats.swtotal_weight; } if (Common.blocksSummariesIndexingEnabled()) { - blk.extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); - if (blk.extras.feePercentiles !== null) { - blk.extras.medianFeeAmt = blk.extras.feePercentiles[3]; + extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(block.id); + if (extras.feePercentiles !== null) { + extras.medianFeeAmt = extras.feePercentiles[3]; } } - blk.extras.virtualSize = block.weight / 4.0; - if (blk.extras.coinbaseTx.vout.length > 0) { - blk.extras.coinbaseAddress = blk.extras.coinbaseTx.vout[0].scriptpubkey_address ?? null; - blk.extras.coinbaseSignature = blk.extras.coinbaseTx.vout[0].scriptpubkey_asm ?? null; - blk.extras.coinbaseSignatureAscii = transactionUtils.hex2ascii(blk.extras.coinbaseTx.vin[0].scriptsig) ?? null; + extras.virtualSize = block.weight / 4.0; + if (coinbaseTx?.vout.length > 0) { + extras.coinbaseAddress = coinbaseTx.vout[0].scriptpubkey_address ?? null; + extras.coinbaseSignature = coinbaseTx.vout[0].scriptpubkey_asm ?? null; + extras.coinbaseSignatureAscii = transactionUtils.hex2ascii(coinbaseTx.vin[0].scriptsig) ?? null; } else { - blk.extras.coinbaseAddress = null; - blk.extras.coinbaseSignature = null; - blk.extras.coinbaseSignatureAscii = null; + extras.coinbaseAddress = null; + extras.coinbaseSignature = null; + extras.coinbaseSignatureAscii = null; } const header = await bitcoinClient.getBlockHeader(block.id, false); - blk.extras.header = header; + extras.header = header; const coinStatsIndex = indexer.isCoreIndexReady('coinstatsindex'); if (coinStatsIndex !== null && coinStatsIndex.best_block_height >= block.height) { const txoutset = await bitcoinClient.getTxoutSetinfo('none', block.height); - blk.extras.utxoSetSize = txoutset.txouts, - blk.extras.totalInputAmt = Math.round(txoutset.block_info.prevout_spent * 100000000); + extras.utxoSetSize = txoutset.txouts, + extras.totalInputAmt = Math.round(txoutset.block_info.prevout_spent * 100000000); } else { - blk.extras.utxoSetSize = null; - blk.extras.totalInputAmt = null; + extras.utxoSetSize = null; + extras.totalInputAmt = null; } if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { let pool: PoolTag; - if (blk.extras?.coinbaseTx !== undefined) { - pool = await this.$findBlockMiner(blk.extras?.coinbaseTx); + if (coinbaseTx !== undefined) { + pool = await this.$findBlockMiner(coinbaseTx); } else { if (config.DATABASE.ENABLED === true) { pool = await poolsRepository.$getUnknownPool(); @@ -252,22 +252,24 @@ class Blocks { logger.warn(`Cannot assign pool to block ${blk.height} and 'unknown' pool does not exist. ` + `Check your "pools" table entries`); } else { - blk.extras.pool = { - id: pool.id, + extras.pool = { + id: pool.uniqueId, name: pool.name, slug: pool.slug, }; } + extras.matchRate = null; if (config.MEMPOOL.AUDIT) { const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(block.id); if (auditScore != null) { - blk.extras.matchRate = auditScore.matchRate; + extras.matchRate = auditScore.matchRate; } } } - return blk; + blk.extras = extras; + return blk; } /** @@ -293,15 +295,18 @@ class Blocks { } else { pools = poolsParser.miningPools; } + for (let i = 0; i < pools.length; ++i) { if (address !== undefined) { - const addresses: string[] = JSON.parse(pools[i].addresses); + const addresses: string[] = typeof pools[i].addresses === 'string' ? + JSON.parse(pools[i].addresses) : pools[i].addresses; if (addresses.indexOf(address) !== -1) { return pools[i]; } } - const regexes: string[] = JSON.parse(pools[i].regexes); + const regexes: string[] = typeof pools[i].regexes === 'string' ? + JSON.parse(pools[i].regexes) : pools[i].regexes; for (let y = 0; y < regexes.length; ++y) { const regex = new RegExp(regexes[y], 'i'); const match = asciiScriptSig.match(regex); @@ -652,7 +657,7 @@ class Blocks { if (Common.indexingEnabled()) { const dbBlock = await blocksRepository.$getBlockByHeight(height); if (dbBlock !== null) { - return prepareBlock(dbBlock); + return dbBlock; } } @@ -665,11 +670,11 @@ class Blocks { await blocksRepository.$saveBlockInDatabase(blockExtended); } - return prepareBlock(blockExtended); + return blockExtended; } /** - * Index a block by hash if it's missing from the database. Returns the block after indexing + * Get one block by its hash */ public async $getBlock(hash: string): Promise { // Check the memory cache @@ -678,29 +683,14 @@ class Blocks { return blockByHash; } - // Block has already been indexed - if (Common.indexingEnabled()) { - const dbBlock = await blocksRepository.$getBlockByHash(hash); - if (dbBlock !== null) { - return prepareBlock(dbBlock); - } - } - - // Not Bitcoin network, return the block as it + // Not Bitcoin network, return the block as it from the bitcoin backend if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { return await bitcoinApi.$getBlock(hash); } // Bitcoin network, add our custom data on top const block: IEsploraApi.Block = await bitcoinApi.$getBlock(hash); - const transactions = await this.$getTransactionsExtended(hash, block.height, true); - const blockExtended = await this.$getBlockExtended(block, transactions); - if (Common.indexingEnabled()) { - delete(blockExtended['coinbaseTx']); - await blocksRepository.$saveBlockInDatabase(blockExtended); - } - - return blockExtended; + return await this.$indexBlock(block.height); } public async $getStrippedBlockTransactions(hash: string, skipMemoryCache = false, @@ -734,6 +724,18 @@ class Blocks { return summary.transactions; } + /** + * Get 15 blocks + * + * Internally this function uses two methods to get the blocks, and + * the method is automatically selected: + * - Using previous block hash links + * - Using block height + * + * @param fromHeight + * @param limit + * @returns + */ public async $getBlocks(fromHeight?: number, limit: number = 15): Promise { let currentHeight = fromHeight !== undefined ? fromHeight : this.currentBlockHeight; if (currentHeight > this.currentBlockHeight) { @@ -759,11 +761,14 @@ class Blocks { for (let i = 0; i < limit && currentHeight >= 0; i++) { let block = this.getBlocks().find((b) => b.height === currentHeight); if (block) { + // Using the memory cache (find by height) returnBlocks.push(block); } else if (Common.indexingEnabled()) { + // Using indexing (find by height, index on the fly, save in database) block = await this.$indexBlock(currentHeight); returnBlocks.push(block); - } else if (nextHash != null) { + } else if (nextHash !== null) { + // Without indexing, query block on the fly using bitoin backend, follow previous hash links block = await this.$indexBlock(currentHeight); nextHash = block.previousblockhash; returnBlocks.push(block); @@ -788,7 +793,7 @@ class Blocks { const blocks: any[] = []; while (fromHeight <= toHeight) { - let block: any = await blocksRepository.$getBlockByHeight(fromHeight); + let block: BlockExtended | null = await blocksRepository.$getBlockByHeight(fromHeight); if (!block) { await this.$indexBlock(fromHeight); block = await blocksRepository.$getBlockByHeight(fromHeight); @@ -801,11 +806,11 @@ class Blocks { const cleanBlock: any = { height: block.height ?? null, hash: block.id ?? null, - timestamp: block.blockTimestamp ?? null, - median_timestamp: block.medianTime ?? null, + timestamp: block.timestamp ?? null, + median_timestamp: block.mediantime ?? null, previous_block_hash: block.previousblockhash ?? null, difficulty: block.difficulty ?? null, - header: block.header ?? null, + header: block.extras.header ?? null, version: block.version ?? null, bits: block.bits ?? null, nonce: block.nonce ?? null, @@ -813,29 +818,30 @@ class Blocks { weight: block.weight ?? null, tx_count: block.tx_count ?? null, merkle_root: block.merkle_root ?? null, - reward: block.reward ?? null, - total_fee_amt: block.fees ?? null, - avg_fee_amt: block.avg_fee ?? null, - median_fee_amt: block.median_fee_amt ?? null, - fee_amt_percentiles: block.fee_percentiles ?? null, - avg_fee_rate: block.avg_fee_rate ?? null, - median_fee_rate: block.median_fee ?? null, - fee_rate_percentiles: block.fee_span ?? null, - total_inputs: block.total_inputs ?? null, - total_input_amt: block.total_input_amt ?? null, - total_outputs: block.total_outputs ?? null, - total_output_amt: block.total_output_amt ?? null, - segwit_total_txs: block.segwit_total_txs ?? null, - segwit_total_size: block.segwit_total_size ?? null, - segwit_total_weight: block.segwit_total_weight ?? null, - avg_tx_size: block.avg_tx_size ?? null, - utxoset_change: block.utxoset_change ?? null, - utxoset_size: block.utxoset_size ?? null, - coinbase_raw: block.coinbase_raw ?? null, - coinbase_address: block.coinbase_address ?? null, - coinbase_signature: block.coinbase_signature ?? null, - coinbase_signature_ascii: block.coinbase_signature_ascii ?? null, - pool_slug: block.pool_slug ?? null, + reward: block.extras.reward ?? null, + total_fee_amt: block.extras.totalFees ?? null, + avg_fee_amt: block.extras.avgFee ?? null, + median_fee_amt: block.extras.medianFeeAmt ?? null, + fee_amt_percentiles: block.extras.feePercentiles ?? null, + avg_fee_rate: block.extras.avgFeeRate ?? null, + median_fee_rate: block.extras.medianFee ?? null, + fee_rate_percentiles: block.extras.feeRange ?? null, + total_inputs: block.extras.totalInputs ?? null, + total_input_amt: block.extras.totalInputAmt ?? null, + total_outputs: block.extras.totalOutputs ?? null, + total_output_amt: block.extras.totalOutputAmt ?? null, + segwit_total_txs: block.extras.segwitTotalTxs ?? null, + segwit_total_size: block.extras.segwitTotalSize ?? null, + segwit_total_weight: block.extras.segwitTotalWeight ?? null, + avg_tx_size: block.extras.avgTxSize ?? null, + utxoset_change: block.extras.utxoSetChange ?? null, + utxoset_size: block.extras.utxoSetSize ?? null, + coinbase_raw: block.extras.coinbaseRaw ?? null, + coinbase_address: block.extras.coinbaseAddress ?? null, + coinbase_signature: block.extras.coinbaseSignature ?? null, + coinbase_signature_ascii: block.extras.coinbaseSignatureAscii ?? null, + pool_slug: block.extras.pool.slug ?? null, + pool_id: block.extras.pool.id ?? null, }; if (Common.blocksSummariesIndexingEnabled() && cleanBlock.fee_amt_percentiles === null) { diff --git a/backend/src/api/chain-tips.ts b/backend/src/api/chain-tips.ts index 46a06f703..b68b0b281 100644 --- a/backend/src/api/chain-tips.ts +++ b/backend/src/api/chain-tips.ts @@ -43,7 +43,11 @@ class ChainTips { } } - public getOrphanedBlocksAtHeight(height: number): OrphanedBlock[] { + public getOrphanedBlocksAtHeight(height: number | undefined): OrphanedBlock[] { + if (height === undefined) { + return []; + } + const orphans: OrphanedBlock[] = []; for (const block of this.orphanedBlocks) { if (block.height === height) { diff --git a/backend/src/api/pools-parser.ts b/backend/src/api/pools-parser.ts index b34dcb7b8..0f009cd1d 100644 --- a/backend/src/api/pools-parser.ts +++ b/backend/src/api/pools-parser.ts @@ -7,6 +7,7 @@ import { PoolTag } from '../mempool.interfaces'; class PoolsParser { miningPools: any[] = []; unknownPool: any = { + 'id': 0, 'name': 'Unknown', 'link': 'https://learnmeabitcoin.com/technical/coinbase-transaction', 'regexes': '[]', @@ -26,6 +27,7 @@ class PoolsParser { public setMiningPools(pools): void { for (const pool of pools) { pool.regexes = pool.tags; + pool.slug = pool.name.replace(/[^a-z0-9]/gi, '').toLowerCase(); delete(pool.tags); } this.miningPools = pools; diff --git a/backend/src/index.ts b/backend/src/index.ts index 6f259a2bd..7207ae7a8 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -179,7 +179,14 @@ class Server { setTimeout(this.runMainUpdateLoop.bind(this), config.MEMPOOL.POLL_RATE_MS); this.currentBackendRetryInterval = 5; } catch (e: any) { - const loggerMsg = `runMainLoop error: ${(e instanceof Error ? e.message : e)}. Retrying in ${this.currentBackendRetryInterval} sec.`; + let loggerMsg = `Exception in runMainUpdateLoop(). Retrying in ${this.currentBackendRetryInterval} sec.`; + loggerMsg += ` Reason: ${(e instanceof Error ? e.message : e)}.`; + if (e?.stack) { + loggerMsg += ` Stack trace: ${e.stack}`; + } + // When we get a first Exception, only `logger.debug` it and retry after 5 seconds + // From the second Exception, `logger.warn` the Exception and increase the retry delay + // Maximum retry delay is 60 seconds if (this.currentBackendRetryInterval > 5) { logger.warn(loggerMsg); mempool.setOutOfSync(); diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index cb95be98a..a7937e01d 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -1,9 +1,10 @@ import { IEsploraApi } from './api/bitcoin/esplora-api.interface'; import { OrphanedBlock } from './api/chain-tips'; -import { HeapNode } from "./utils/pairing-heap"; +import { HeapNode } from './utils/pairing-heap'; export interface PoolTag { - id: number; // mysql row id + id: number; + uniqueId: number; name: string; link: string; regexes: string; // JSON array @@ -147,44 +148,44 @@ export interface TransactionStripped { } export interface BlockExtension { - totalFees?: number; - medianFee?: number; - feeRange?: number[]; - reward?: number; - coinbaseTx?: TransactionMinerInfo; - matchRate?: number; - pool?: { - id: number; + totalFees: number; + medianFee: number; // median fee rate + feeRange: number[]; // fee rate percentiles + reward: number; + matchRate: number | null; + pool: { + id: number; // Note - This is the `unique_id`, not to mix with the auto increment `id` name: string; slug: string; }; - avgFee?: number; - avgFeeRate?: number; - coinbaseRaw?: string; - usd?: number | null; - medianTimestamp?: number; - blockTime?: number; - orphans?: OrphanedBlock[] | null; - coinbaseAddress?: string | null; - coinbaseSignature?: string | null; - coinbaseSignatureAscii?: string | null; - virtualSize?: number; - avgTxSize?: number; - totalInputs?: number; - totalOutputs?: number; - totalOutputAmt?: number; - medianFeeAmt?: number | null; - feePercentiles?: number[] | null, - segwitTotalTxs?: number; - segwitTotalSize?: number; - segwitTotalWeight?: number; - header?: string; - utxoSetChange?: number; + avgFee: number; + avgFeeRate: number; + coinbaseRaw: string; + orphans: OrphanedBlock[] | null; + coinbaseAddress: string | null; + coinbaseSignature: string | null; + coinbaseSignatureAscii: string | null; + virtualSize: number; + avgTxSize: number; + totalInputs: number; + totalOutputs: number; + totalOutputAmt: number; + medianFeeAmt: number | null; // median fee in sats + feePercentiles: number[] | null, // fee percentiles in sats + segwitTotalTxs: number; + segwitTotalSize: number; + segwitTotalWeight: number; + header: string; + utxoSetChange: number; // Requires coinstatsindex, will be set to NULL otherwise - utxoSetSize?: number | null; - totalInputAmt?: number | null; + utxoSetSize: number | null; + totalInputAmt: number | null; } +/** + * Note: Everything that is added in here will be automatically returned through + * /api/v1/block and /api/v1/blocks APIs + */ export interface BlockExtended extends IEsploraApi.Block { extras: BlockExtension; } diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index c7edb97cb..ac12b3430 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -1,8 +1,7 @@ -import { BlockExtended, BlockPrice } from '../mempool.interfaces'; +import { BlockExtended, BlockExtension, BlockPrice } from '../mempool.interfaces'; import DB from '../database'; import logger from '../logger'; import { Common } from '../api/common'; -import { prepareBlock } from '../utils/blocks-utils'; import PoolsRepository from './PoolsRepository'; import HashratesRepository from './HashratesRepository'; import { escape } from 'mysql2'; @@ -10,6 +9,50 @@ import BlocksSummariesRepository from './BlocksSummariesRepository'; import DifficultyAdjustmentsRepository from './DifficultyAdjustmentsRepository'; import bitcoinClient from '../api/bitcoin/bitcoin-client'; import config from '../config'; +import chainTips from '../api/chain-tips'; +import blocks from '../api/blocks'; + +const BLOCK_DB_FIELDS = ` + blocks.hash AS id, + blocks.height, + blocks.version, + UNIX_TIMESTAMP(blocks.blockTimestamp) AS timestamp, + blocks.bits, + blocks.nonce, + blocks.difficulty, + blocks.merkle_root, + blocks.tx_count, + blocks.size, + blocks.weight, + blocks.previous_block_hash AS previousblockhash, + UNIX_TIMESTAMP(blocks.median_timestamp) AS mediantime, + blocks.fees AS totalFees, + blocks.median_fee AS medianFee, + blocks.fee_span AS feeRange, + blocks.reward, + pools.unique_id AS poolId, + pools.name AS poolName, + pools.slug AS poolSlug, + blocks.avg_fee AS avgFee, + blocks.avg_fee_rate AS avgFeeRate, + blocks.coinbase_raw AS coinbaseRaw, + blocks.coinbase_address AS coinbaseAddress, + blocks.coinbase_signature AS coinbaseSignature, + blocks.coinbase_signature_ascii AS coinbaseSignatureAscii, + blocks.avg_tx_size AS avgTxSize, + blocks.total_inputs AS totalInputs, + blocks.total_outputs AS totalOutputs, + blocks.total_output_amt AS totalOutputAmt, + blocks.median_fee_amt AS medianFeeAmt, + blocks.fee_percentiles AS feePercentiles, + blocks.segwit_total_txs AS segwitTotalTxs, + blocks.segwit_total_size AS segwitTotalSize, + blocks.segwit_total_weight AS segwitTotalWeight, + blocks.header, + blocks.utxoset_change AS utxoSetChange, + blocks.utxoset_size AS utxoSetSize, + blocks.total_input_amt AS totalInputAmts +`; class BlocksRepository { /** @@ -44,6 +87,11 @@ class BlocksRepository { ?, ? )`; + const poolDbId = await PoolsRepository.$getPoolByUniqueId(block.extras.pool.id); + if (!poolDbId) { + throw Error(`Could not find a mining pool with the unique_id = ${block.extras.pool.id}. This error should never be printed.`); + } + const params: any[] = [ block.height, block.id, @@ -53,7 +101,7 @@ class BlocksRepository { block.tx_count, block.extras.coinbaseRaw, block.difficulty, - block.extras.pool?.id, // Should always be set to something + poolDbId.id, block.extras.totalFees, JSON.stringify(block.extras.feeRange), block.extras.medianFee, @@ -65,7 +113,7 @@ class BlocksRepository { block.previousblockhash, block.extras.avgFee, block.extras.avgFeeRate, - block.extras.medianTimestamp, + block.mediantime, block.extras.header, block.extras.coinbaseAddress, truncatedCoinbaseSignature, @@ -87,9 +135,9 @@ class BlocksRepository { await DB.query(query, params); } catch (e: any) { if (e.errno === 1062) { // ER_DUP_ENTRY - This scenario is possible upon node backend restart - logger.debug(`$saveBlockInDatabase() - Block ${block.height} has already been indexed, ignoring`); + logger.debug(`$saveBlockInDatabase() - Block ${block.height} has already been indexed, ignoring`, logger.tags.mining); } else { - logger.err('Cannot save indexed block into db. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot save indexed block into db. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -307,34 +355,17 @@ class BlocksRepository { /** * Get blocks mined by a specific mining pool */ - public async $getBlocksByPool(slug: string, startHeight?: number): Promise { + public async $getBlocksByPool(slug: string, startHeight?: number): Promise { const pool = await PoolsRepository.$getPool(slug); if (!pool) { throw new Error('This mining pool does not exist ' + escape(slug)); } const params: any[] = []; - let query = ` SELECT - blocks.height, - hash as id, - UNIX_TIMESTAMP(blocks.blockTimestamp) as blockTimestamp, - size, - weight, - tx_count, - coinbase_raw, - difficulty, - fees, - fee_span, - median_fee, - reward, - version, - bits, - nonce, - merkle_root, - previous_block_hash as previousblockhash, - avg_fee, - avg_fee_rate + let query = ` + SELECT ${BLOCK_DB_FIELDS} FROM blocks + JOIN pools ON blocks.pool_id = pools.id WHERE pool_id = ?`; params.push(pool.id); @@ -347,11 +378,11 @@ class BlocksRepository { LIMIT 10`; try { - const [rows] = await DB.query(query, params); + const [rows]: any[] = await DB.query(query, params); const blocks: BlockExtended[] = []; - for (const block of rows) { - blocks.push(prepareBlock(block)); + for (const block of rows) { + blocks.push(await this.formatDbBlockIntoExtendedBlock(block)); } return blocks; @@ -364,32 +395,21 @@ class BlocksRepository { /** * Get one block by height */ - public async $getBlockByHeight(height: number): Promise { + public async $getBlockByHeight(height: number): Promise { try { - const [rows]: any[] = await DB.query(`SELECT - blocks.*, - hash as id, - UNIX_TIMESTAMP(blocks.blockTimestamp) as blockTimestamp, - UNIX_TIMESTAMP(blocks.median_timestamp) as medianTime, - pools.id as pool_id, - pools.name as pool_name, - pools.link as pool_link, - pools.slug as pool_slug, - pools.addresses as pool_addresses, - pools.regexes as pool_regexes, - previous_block_hash as previousblockhash + const [rows]: any[] = await DB.query(` + SELECT ${BLOCK_DB_FIELDS} FROM blocks JOIN pools ON blocks.pool_id = pools.id - WHERE blocks.height = ${height} - `); + WHERE blocks.height = ?`, + [height] + ); if (rows.length <= 0) { return null; } - rows[0].fee_span = JSON.parse(rows[0].fee_span); - rows[0].fee_percentiles = JSON.parse(rows[0].fee_percentiles); - return rows[0]; + return await this.formatDbBlockIntoExtendedBlock(rows[0]); } catch (e) { logger.err(`Cannot get indexed block ${height}. Reason: ` + (e instanceof Error ? e.message : e)); throw e; @@ -402,10 +422,7 @@ class BlocksRepository { public async $getBlockByHash(hash: string): Promise { try { const query = ` - SELECT *, blocks.height, UNIX_TIMESTAMP(blocks.blockTimestamp) as blockTimestamp, hash as id, - pools.id as pool_id, pools.name as pool_name, pools.link as pool_link, pools.slug as pool_slug, - pools.addresses as pool_addresses, pools.regexes as pool_regexes, - previous_block_hash as previousblockhash + SELECT ${BLOCK_DB_FIELDS} FROM blocks JOIN pools ON blocks.pool_id = pools.id WHERE hash = ?; @@ -415,9 +432,8 @@ class BlocksRepository { if (rows.length <= 0) { return null; } - - rows[0].fee_span = JSON.parse(rows[0].fee_span); - return rows[0]; + + return await this.formatDbBlockIntoExtendedBlock(rows[0]); } catch (e) { logger.err(`Cannot get indexed block ${hash}. Reason: ` + (e instanceof Error ? e.message : e)); throw e; @@ -833,6 +849,86 @@ class BlocksRepository { throw e; } } + + /** + * Convert a mysql row block into a BlockExtended. Note that you + * must provide the correct field into dbBlk object param + * + * @param dbBlk + */ + private async formatDbBlockIntoExtendedBlock(dbBlk: any): Promise { + const blk: Partial = {}; + const extras: Partial = {}; + + // IEsploraApi.Block + blk.id = dbBlk.id; + blk.height = dbBlk.height; + blk.version = dbBlk.version; + blk.timestamp = dbBlk.timestamp; + blk.bits = dbBlk.bits; + blk.nonce = dbBlk.nonce; + blk.difficulty = dbBlk.difficulty; + blk.merkle_root = dbBlk.merkle_root; + blk.tx_count = dbBlk.tx_count; + blk.size = dbBlk.size; + blk.weight = dbBlk.weight; + blk.previousblockhash = dbBlk.previousblockhash; + blk.mediantime = dbBlk.mediantime; + + // BlockExtension + extras.totalFees = dbBlk.totalFees; + extras.medianFee = dbBlk.medianFee; + extras.feeRange = JSON.parse(dbBlk.feeRange); + extras.reward = dbBlk.reward; + extras.pool = { + id: dbBlk.poolId, + name: dbBlk.poolName, + slug: dbBlk.poolSlug, + }; + extras.avgFee = dbBlk.avgFee; + extras.avgFeeRate = dbBlk.avgFeeRate; + extras.coinbaseRaw = dbBlk.coinbaseRaw; + extras.coinbaseAddress = dbBlk.coinbaseAddress; + extras.coinbaseSignature = dbBlk.coinbaseSignature; + extras.coinbaseSignatureAscii = dbBlk.coinbaseSignatureAscii; + extras.avgTxSize = dbBlk.avgTxSize; + extras.totalInputs = dbBlk.totalInputs; + extras.totalOutputs = dbBlk.totalOutputs; + extras.totalOutputAmt = dbBlk.totalOutputAmt; + extras.medianFeeAmt = dbBlk.medianFeeAmt; + extras.feePercentiles = JSON.parse(dbBlk.feePercentiles); + extras.segwitTotalTxs = dbBlk.segwitTotalTxs; + extras.segwitTotalSize = dbBlk.segwitTotalSize; + extras.segwitTotalWeight = dbBlk.segwitTotalWeight; + extras.header = dbBlk.header, + extras.utxoSetChange = dbBlk.utxoSetChange; + extras.utxoSetSize = dbBlk.utxoSetSize; + extras.totalInputAmt = dbBlk.totalInputAmt; + extras.virtualSize = dbBlk.weight / 4.0; + + // Re-org can happen after indexing so we need to always get the + // latest state from core + extras.orphans = chainTips.getOrphanedBlocksAtHeight(dbBlk.height); + + // If we're missing block summary related field, check if we can populate them on the fly now + if (Common.blocksSummariesIndexingEnabled() && + (extras.medianFeeAmt === null || extras.feePercentiles === null)) + { + extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(dbBlk.id); + if (extras.feePercentiles === null) { + const block = await bitcoinClient.getBlock(dbBlk.id, 2); + const summary = blocks.summarizeBlock(block); + await BlocksSummariesRepository.$saveSummary({ height: block.height, mined: summary }); + extras.feePercentiles = await BlocksSummariesRepository.$getFeePercentilesByBlockId(dbBlk.id); + } + if (extras.feePercentiles !== null) { + extras.medianFeeAmt = extras.feePercentiles[3]; + } + } + + blk.extras = extras; + return blk; + } } export default new BlocksRepository(); diff --git a/backend/src/repositories/PoolsRepository.ts b/backend/src/repositories/PoolsRepository.ts index 236955d65..293fd5e39 100644 --- a/backend/src/repositories/PoolsRepository.ts +++ b/backend/src/repositories/PoolsRepository.ts @@ -10,7 +10,7 @@ class PoolsRepository { * Get all pools tagging info */ public async $getPools(): Promise { - const [rows] = await DB.query('SELECT id, name, addresses, regexes, slug FROM pools;'); + const [rows] = await DB.query('SELECT id, unique_id as uniqueId, name, addresses, regexes, slug FROM pools'); return rows; } @@ -18,10 +18,10 @@ class PoolsRepository { * Get unknown pool tagging info */ public async $getUnknownPool(): Promise { - let [rows]: any[] = await DB.query('SELECT id, name, slug FROM pools where name = "Unknown"'); + let [rows]: any[] = await DB.query('SELECT id, unique_id as uniqueId, name, slug FROM pools where name = "Unknown"'); if (rows && rows.length === 0 && config.DATABASE.ENABLED) { await poolsParser.$insertUnknownPool(); - [rows] = await DB.query('SELECT id, name, slug FROM pools where name = "Unknown"'); + [rows] = await DB.query('SELECT id, unique_id as uniqueId, name, slug FROM pools where name = "Unknown"'); } return rows[0]; } diff --git a/backend/src/utils/blocks-utils.ts b/backend/src/utils/blocks-utils.ts deleted file mode 100644 index 43a2fc964..000000000 --- a/backend/src/utils/blocks-utils.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { BlockExtended } from '../mempool.interfaces'; - -export function prepareBlock(block: any): BlockExtended { - return { - id: block.id ?? block.hash, // hash for indexed block - timestamp: block.timestamp ?? block.time ?? block.blockTimestamp, // blockTimestamp for indexed block - height: block.height, - version: block.version, - bits: (typeof block.bits === 'string' ? parseInt(block.bits, 16): block.bits), - nonce: block.nonce, - difficulty: block.difficulty, - merkle_root: block.merkle_root ?? block.merkleroot, - tx_count: block.tx_count ?? block.nTx, - size: block.size, - weight: block.weight, - previousblockhash: block.previousblockhash, - extras: { - coinbaseRaw: block.coinbase_raw ?? block.extras?.coinbaseRaw, - medianFee: block.medianFee ?? block.median_fee ?? block.extras?.medianFee, - feeRange: block.feeRange ?? block?.extras?.feeRange ?? block.fee_span, - reward: block.reward ?? block?.extras?.reward, - totalFees: block.totalFees ?? block?.fees ?? block?.extras?.totalFees, - avgFee: block?.extras?.avgFee ?? block.avg_fee, - avgFeeRate: block?.avgFeeRate ?? block.avg_fee_rate, - pool: block?.extras?.pool ?? (block?.pool_id ? { - id: block.pool_id, - name: block.pool_name, - slug: block.pool_slug, - } : undefined), - usd: block?.extras?.usd ?? block.usd ?? null, - } - }; -} diff --git a/frontend/src/app/interfaces/node-api.interface.ts b/frontend/src/app/interfaces/node-api.interface.ts index 8fa30a723..7ed32a9de 100644 --- a/frontend/src/app/interfaces/node-api.interface.ts +++ b/frontend/src/app/interfaces/node-api.interface.ts @@ -114,7 +114,6 @@ export interface BlockExtension { medianFee?: number; feeRange?: number[]; reward?: number; - coinbaseTx?: Transaction; coinbaseRaw?: string; matchRate?: number; pool?: { From 01d699e454648a97a4f374e120f3276666691461 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 27 Feb 2023 18:39:02 +0900 Subject: [PATCH 0432/1466] Add missing match rate to the block returned from the database --- backend/src/repositories/BlocksRepository.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index ac12b3430..9cd31bbab 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -11,6 +11,7 @@ import bitcoinClient from '../api/bitcoin/bitcoin-client'; import config from '../config'; import chainTips from '../api/chain-tips'; import blocks from '../api/blocks'; +import BlocksAuditsRepository from './BlocksAuditsRepository'; const BLOCK_DB_FIELDS = ` blocks.hash AS id, @@ -910,6 +911,15 @@ class BlocksRepository { // latest state from core extras.orphans = chainTips.getOrphanedBlocksAtHeight(dbBlk.height); + // Match rate is not part of the blocks table, but it is part of APIs so we must include it + extras.matchRate = null; + if (config.MEMPOOL.AUDIT) { + const auditScore = await BlocksAuditsRepository.$getBlockAuditScore(dbBlk.id); + if (auditScore != null) { + extras.matchRate = auditScore.matchRate; + } + } + // If we're missing block summary related field, check if we can populate them on the fly now if (Common.blocksSummariesIndexingEnabled() && (extras.medianFeeAmt === null || extras.feePercentiles === null)) From 76ae9d4ccba76ba8d8a854d9ce39474185bf273a Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Mon, 27 Feb 2023 19:06:46 +0900 Subject: [PATCH 0433/1466] Wipe the disk cache since we have a new block structure --- backend/src/api/disk-cache.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/disk-cache.ts b/backend/src/api/disk-cache.ts index a75fd43cc..2a53e7b9b 100644 --- a/backend/src/api/disk-cache.ts +++ b/backend/src/api/disk-cache.ts @@ -9,7 +9,7 @@ import { TransactionExtended } from '../mempool.interfaces'; import { Common } from './common'; class DiskCache { - private cacheSchemaVersion = 2; + private cacheSchemaVersion = 3; private static FILE_NAME = config.MEMPOOL.CACHE_DIR + '/cache.json'; private static FILE_NAMES = config.MEMPOOL.CACHE_DIR + '/cache{number}.json'; From b1e32ed55f413741ae95244bac8741766d78fa52 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 27 Feb 2023 10:48:13 -0600 Subject: [PATCH 0434/1466] Fix googlebot user-agent detection --- unfurler/src/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/unfurler/src/index.ts b/unfurler/src/index.ts index c24cd65af..0bbcb32bc 100644 --- a/unfurler/src/index.ts +++ b/unfurler/src/index.ts @@ -222,7 +222,7 @@ class Server { || rawPath.startsWith('/api/v1/translators/images') || rawPath.startsWith('/resources/profile') ) { - if (req.headers['user-agent'] === 'googlebot') { + if (isSearchCrawler(req.headers['user-agent'])) { if (this.secureHost) { https.get(config.SERVER.HOST + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => got.pipe(res)); } else { @@ -237,7 +237,7 @@ class Server { let result = ''; try { - if (req.headers['user-agent'] === 'googlebot') { + if (isSearchCrawler(req.headers['user-agent'])) { result = await this.renderSEOPage(rawPath); } else { result = await this.renderUnfurlMeta(rawPath); @@ -313,3 +313,7 @@ function capitalize(str) { return str; } } + +function isSearchCrawler(useragent: string): boolean { + return /googlebot/i.test(useragent); +} From f471a85d1d006ae3c775067131b9ef4c378044f4 Mon Sep 17 00:00:00 2001 From: softsimon Date: Mon, 27 Feb 2023 23:09:11 +0400 Subject: [PATCH 0435/1466] Transifex pull (2) --- frontend/src/locale/messages.ar.xlf | 513 +++++++++++------ frontend/src/locale/messages.fi.xlf | 854 ++++++++++++++++++++-------- frontend/src/locale/messages.it.xlf | 657 +++++++++++++-------- frontend/src/locale/messages.nb.xlf | 818 ++++++++++++++++++-------- frontend/src/locale/messages.pt.xlf | 717 +++++++++++++++-------- frontend/src/locale/messages.ru.xlf | 700 +++++++++++++++-------- frontend/src/locale/messages.uk.xlf | 837 +++++++++++++++++++-------- 7 files changed, 3520 insertions(+), 1576 deletions(-) diff --git a/frontend/src/locale/messages.ar.xlf b/frontend/src/locale/messages.ar.xlf index 4d1e62999..20e74f524 100644 --- a/frontend/src/locale/messages.ar.xlf +++ b/frontend/src/locale/messages.ar.xlf @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 303,304 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 304,305 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -598,7 +598,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -777,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -795,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -990,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1038,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1054,11 +1070,11 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1108,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1130,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1142,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1158,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1190,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1211,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1233,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1253,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1269,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1569,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1585,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2049,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2065,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2077,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2090,15 +2102,15 @@ فهرس الكتل src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2143,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2169,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2187,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2221,19 +2233,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2273,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2301,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2315,11 +2327,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2432,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2462,11 +2474,11 @@ الحجم src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2494,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2506,11 +2518,11 @@ الوزن src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2522,7 +2534,19 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + الحجم لكل الوزن + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2538,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee متوسط ​​الرسوم @@ -2556,7 +2571,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2573,11 +2588,11 @@ src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2595,7 +2610,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2608,7 +2623,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2661,6 +2676,14 @@ src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2684,7 +2707,7 @@ نطاق الرسوم src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2697,7 +2720,7 @@ بناءً على متوسط معاملة native segwit التي يبلغ حجمها 140 ف بايت src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2721,25 +2744,26 @@ Transaction fee tooltip - - Subsidy + fees: - مكافأة الكتلة + الرسوم: + + Subsidy + fees + كفالة + رسوم src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees Expected + متوقع src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2748,11 +2772,11 @@ تجريبي src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2761,23 +2785,25 @@ فعلي src/app/components/block/block.component.html - 211,215 + 218,222 block.actual Expected Block + الكتله المتوقعه src/app/components/block/block.component.html - 215 + 222 block.expected-block Actual Block + الكتله الحاليه src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2786,7 +2812,7 @@ وحدات صغيرة. src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2795,7 +2821,7 @@ Merkle root src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2804,7 +2830,7 @@ الصعوبه src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2833,7 +2859,7 @@ رمز أحادي فردي الإستخدام. src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2842,15 +2868,16 @@ عنوان الكتلة الست عشري src/app/components/block/block.component.html - 272,273 + 279,280 block.header Audit + مراجعة src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2860,11 +2887,11 @@ التفاصيل src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2886,11 +2913,11 @@ خطأ في تحميل البيانات. src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2915,7 +2942,7 @@ لماذا الكتلة فارغة؟ src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation @@ -3024,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3263,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions @@ -3276,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3289,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3303,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3679,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + بث معاملة + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) حظ حوض التعدين (١ اسبوع) @@ -3746,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3776,12 +3829,25 @@ mining.rank + + Avg Health + معدل الصحة. + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks الكتل الفارغة src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3790,7 +3856,7 @@ كل المعدنين src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3799,7 +3865,7 @@ حظ التجمعات (الاسبوع) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3808,7 +3874,7 @@ عدد التجمعات (الاسبوع) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3817,7 +3883,7 @@ تجمعات التعدين src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4044,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - بث معاملة - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex الرقم الست عشري للعملية @@ -4071,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4196,6 +4244,77 @@ search-form.search-title + + Bitcoin Block Height + إرتفاع بلوك بيتكوين + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + معاملة البتكوين + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + عنوان البتكوين + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + كتلة البتكوين + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + عناوين البتكوين + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + نود شبكة البرق + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + قنوات شبكة البرق + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) المعاملات الغير مؤكدة بالبايتات الافتراضية (ساتوشي/بايت افتراضي) @@ -4480,7 +4599,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4490,7 +4609,7 @@ اول رؤية src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4524,7 +4643,7 @@ الوقت المقدر للوصول src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4534,7 +4653,7 @@ بعد عدة ساعات (أو أكثر) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4544,11 +4663,11 @@ منحدر src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4558,7 +4677,7 @@ الاصل src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4568,11 +4687,11 @@ التدفق src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4582,7 +4701,7 @@ اخف الرسم البياني src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4591,7 +4710,7 @@ اعرض المزيد src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4608,7 +4727,7 @@ قلل العرض src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4621,7 +4740,7 @@ اعرض الرسم االبياني src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4630,7 +4749,7 @@ وقت القفل src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4639,7 +4758,7 @@ الحوالة غير موجودة. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4648,7 +4767,7 @@ في انتظار ظهورها على mempool src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4657,7 +4776,7 @@ معدل الرسوم الفعلي src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4806,7 +4925,7 @@ اعرض المزيد من المدخلات لتوضيح بيانات الرسوم src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4815,7 +4934,7 @@ متبقي src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -5066,21 +5185,12 @@ dashboard.latest-transactions - - USD - دولار - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee الحد الادنى للعمولة src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5090,7 +5200,7 @@ تطهير src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -5100,7 +5210,7 @@ استخدام الذاكرة src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -5110,10 +5220,18 @@ L-BTC المتداول src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service اعادة تشغيل خادم API @@ -5448,7 +5566,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5595,6 +5713,29 @@ 37 + + Mutually closed + مغلق تزامنا + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + مغلق اجبارا + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open مفتوحة @@ -5721,6 +5862,22 @@ shared.sats + + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity متوسط السعة @@ -5849,11 +6006,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5923,11 +6080,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -6091,6 +6248,28 @@ lightning.node-fee-distribution + + Outgoing Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week نسبة التغير للاسبوع الماضي @@ -6100,11 +6279,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6352,7 +6531,7 @@ لا يوجد معلومات عن الموقع الجغرافي src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 diff --git a/frontend/src/locale/messages.fi.xlf b/frontend/src/locale/messages.fi.xlf index 211113e44..5a95d0dd8 100644 --- a/frontend/src/locale/messages.fi.xlf +++ b/frontend/src/locale/messages.fi.xlf @@ -11,6 +11,7 @@ Slide of + Sivu / node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,18 +1170,18 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features Fee per vByte - Siirtokulu per vByte + Siirtomaksu per vByte src/app/bisq/bisq-transaction/bisq-transaction.component.html 69,71 @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1435,7 +1449,7 @@ 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. - Meidän mempool- ja lohkoketjuselain Bitcoin yhteisölle, joka keskittyy siirtokulumarkkinoihin ja monikerroksiseen ekosysteemiin, täysin itse ylläpidetty ilman luotettuja kolmansia osapuolia. + Mempool- ja lohkoketjuselaimemme Bitcoin yhteisölle, joka keskittyy siirtomaksumarkkinoihin ja monikerroksiseen ekosysteemiin, täysin itse ylläpidetty ilman luotettuja kolmansia osapuolia. src/app/components/about/about.component.html 13,17 @@ -1461,6 +1475,7 @@ Community Integrations + Yhteisön integraatiot src/app/components/about/about.component.html 191,193 @@ -1529,11 +1544,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + Multisig / src/app/components/address-labels/address-labels.component.ts 107 @@ -1565,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1581,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1643,7 +1659,7 @@ Asset - Assetti + Omaisuuserä src/app/components/asset/asset.component.html 3 @@ -1664,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1757,7 +1773,7 @@ Peg In/Out and Burn Transactions - Kiinnitä/Irrota ja Polta Siirtotapahtumat + Kiinnitä/Irrota ja Poltto siirtotapahtumat src/app/components/asset/asset.component.html 79 @@ -1766,7 +1782,7 @@ Issuance and Burn Transactions - Liikkeeseenlasku- ja Poltto Siirtotapahtumat + Liikkeeseenlasku- ja Poltto siirtotapahtumat src/app/components/asset/asset.component.html 80 @@ -1886,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1899,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1912,16 +1928,16 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header Error loading assets data. - Omaisuuserientietoja ladattaessa tapahtui virhe. + Omaisuuserien tietoja ladattaessa tapahtui virhe. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -1961,7 +1977,7 @@ Layer 2 Networks - Toisen kerroksen verkot + 2 kerroksen verkot src/app/components/bisq-master-page/bisq-master-page.component.html 50,51 @@ -2017,7 +2033,7 @@ Block Fee Rates - Siirtokulujen tasot + Siirtomaksujen tasot src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.html 6,8 @@ -2045,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2061,19 +2077,19 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 Block Fees - Lohkojen siirtokulut + Lohkojen siirtomaksut src/app/components/block-fees-graph/block-fees-graph.component.html 6,7 src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2086,15 +2102,15 @@ Lohkojen indeksointi src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2119,6 +2135,7 @@ not available + ei saatavilla src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2127,7 +2144,7 @@ Fee - Siirtokulu + Siirtomaksu src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 22 @@ -2138,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2164,29 +2181,29 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat Fee rate - Siirtokulutaso + Siirtomaksu taso src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 26 src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2198,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2216,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2268,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2296,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2310,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Tarkastuksen tila src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2329,6 +2347,7 @@ Match + Osuma src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2337,6 +2356,7 @@ Removed + Poistettu src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2345,6 +2365,7 @@ Marginal fee rate + Marginaali siirtomaksu taso src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2357,6 +2378,7 @@ Recently broadcasted + Äskettäin lähetetty src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2365,6 +2387,7 @@ Added + Lisätty src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2390,6 +2413,7 @@ No data to display yet. Try again later. + Ei vielä tietoja näytettäväksi. Yritä myöhemmin uudelleen. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2420,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2450,15 +2474,15 @@ Koko src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2482,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2494,11 +2518,11 @@ Paino src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2506,15 +2530,27 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + Lohko src/app/components/block/block-preview.component.html 3,7 @@ -2525,24 +2561,16 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee - Keskimääräinen siirtokulu + Keskimääräinen siirtomaksu src/app/components/block/block-preview.component.html 36,37 src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2552,18 +2580,18 @@ Total fees - Siirtokulut yhteensä + Siirtomaksut yhteensä src/app/components/block/block-preview.component.html 41,43 src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2581,7 +2609,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2594,7 +2622,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2619,24 +2647,42 @@ Previous Block - - Block health + + Health + Tila src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown + Tuntematon src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2657,10 +2703,10 @@ Fee span - Siirtokulu väli + Siirtomaksu väli src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2673,7 +2719,7 @@ Perustuu keskimääräiseen natiiviin 140 vByte segwit-siirtotapahtumaan src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2697,49 +2743,66 @@ Transaction fee tooltip - - Subsidy + fees: - Palkkio + siirtokulut: + + Subsidy + fees + Palkkio + siirtomaksut src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Odotettu src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + beta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Todellinen src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Odotettu lohko src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Todellinen lohko src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2748,7 +2811,7 @@ Bitit src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2757,7 +2820,7 @@ Merkle-juuri src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2766,7 +2829,7 @@ Vaikeus src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2795,7 +2858,7 @@ Nonssi src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2804,20 +2867,30 @@ Lohkon järjestysnumero heksa src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Tarkastus + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Yksityiskohdat src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2839,11 +2912,11 @@ Virhe tietojen lataamisessa. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2865,9 +2938,10 @@ Why is this block empty? + Miksi tämä lohko on tyhjä? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2913,18 +2987,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Palkkio @@ -2948,7 +3010,7 @@ Fees - Siirtokulut + Siirtomaksut src/app/components/blocks-list/blocks-list.component.html 21,22 @@ -2988,7 +3050,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3227,7 +3289,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3240,7 +3302,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3253,7 +3315,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3267,7 +3329,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3319,6 +3381,7 @@ Hashrate & Difficulty + Laskentateho & Vaikeusaste src/app/components/graphs/graphs.component.html 15,16 @@ -3327,6 +3390,7 @@ Lightning + Salamaverkko src/app/components/graphs/graphs.component.html 31 @@ -3335,6 +3399,7 @@ Lightning Nodes Per Network + Salamasolmut per verkko src/app/components/graphs/graphs.component.html 34 @@ -3355,6 +3420,7 @@ Lightning Network Capacity + Salamaverkon kapasiteetti src/app/components/graphs/graphs.component.html 36 @@ -3375,6 +3441,7 @@ Lightning Nodes Per ISP + Salamasolmut palveluntarjoajaa kohti src/app/components/graphs/graphs.component.html 38 @@ -3387,6 +3454,7 @@ Lightning Nodes Per Country + Salamasolmut maata kohti src/app/components/graphs/graphs.component.html 40 @@ -3403,6 +3471,7 @@ Lightning Nodes World Map + Salamasolmujen maailmankartta src/app/components/graphs/graphs.component.html 42 @@ -3419,6 +3488,7 @@ Lightning Nodes Channels World Map + Salamasolmu kanavien maailmankartta src/app/components/graphs/graphs.component.html 44 @@ -3516,7 +3586,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3539,9 +3609,10 @@ Lightning Explorer + Salamaverkko selain src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3549,20 +3620,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Dokumentaatio src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3642,6 +3705,32 @@ dashboard.adjustments + + Broadcast Transaction + Siirtotapahtuman kuulutus + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Poolien onni (1vk) @@ -3709,7 +3798,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3739,12 +3828,24 @@ mining.rank + + Avg Health + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Tyhjät lohkot src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3753,7 +3854,7 @@ Kaikki louhijat src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3762,7 +3863,7 @@ Poolien onni (1vk) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3771,7 +3872,7 @@ Poolien määrä (1vk) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3780,7 +3881,7 @@ Louhintapoolit src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3797,6 +3898,7 @@ mining pool + louhintapooli src/app/components/pool/pool-preview.component.html 3,5 @@ -4006,34 +4108,16 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Siirtotapahtuman kuulutus - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex - Transaktion heksa + Transaktion heksanumero src/app/components/push-transaction/push-transaction.component.html 6 src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4065,6 +4149,7 @@ Avg Block Fees + Keskimääräiset lohkomaksut src/app/components/reward-stats/reward-stats.component.html 17 @@ -4077,6 +4162,7 @@ Average fees per block in the past 144 blocks + Keskimääräiset siirtomaksut lohkoa kohti viimeisten 144 lohkon aikana src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4085,6 +4171,7 @@ BTC/block + BTC/lohko src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4094,6 +4181,7 @@ Avg Tx Fee + Keskimääräinen siirtomaksu src/app/components/reward-stats/reward-stats.component.html 30 @@ -4138,6 +4226,7 @@ Explore the full Bitcoin ecosystem + Tutustu koko Bitcoin-ekosysteemiin src/app/components/search-form/search-form.component.html 4,5 @@ -4153,6 +4242,70 @@ search-form.search-title + + Bitcoin Block Height + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool vByte:inä (sat/vByte) @@ -4336,7 +4489,7 @@ In ~ - ~ sisällä + ~ src/app/components/time-until/time-until.component.ts 66 @@ -4410,6 +4563,7 @@ This transaction replaced: + Tämä transaktio korvasi: src/app/components/transaction/transaction.component.html 10,12 @@ -4419,6 +4573,7 @@ Replaced + Korvattu src/app/components/transaction/transaction.component.html 36,39 @@ -4435,7 +4590,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4445,7 +4600,7 @@ Ensimmäiseksi nähty src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4479,7 +4634,7 @@ ETA src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4489,7 +4644,7 @@ Muutamassa tunnissa (tai enemmän) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4499,11 +4654,11 @@ Verso src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4513,37 +4668,40 @@ Juuri src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor Flow + Virtaus src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow Hide diagram + Piilota kaavio src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram Show more + Näytä enemmän src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4557,9 +4715,10 @@ Show less + Näytä vähemmän src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4569,9 +4728,10 @@ Show diagram + Näytä kaavio src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4580,7 +4740,7 @@ Lukitusaika src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4589,7 +4749,7 @@ Siirtotapahtumaa ei löydy. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4598,16 +4758,16 @@ Odotetaan sen ilmestymistä mempooliin... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear Effective fee rate - Todellinen siirtokulutaso + Todellinen siirtomaksu taso src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4753,22 +4913,25 @@ Show more inputs to reveal fee data + Näytä lisää syötteitä paljastaaksesi siirtomaksutiedot src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + jäljellä src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining other inputs + muut syötteet src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4777,6 +4940,7 @@ other outputs + muut ulostulot src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4785,6 +4949,7 @@ Input + Syöte src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 42 @@ -4797,6 +4962,7 @@ Output + Ulostulo src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4809,6 +4975,7 @@ This transaction saved % on fees by using native SegWit + Tämä siirtotapahtuma säästi % siirtomaksuissa käyttämällä natiivia SegWit:iä src/app/components/tx-features/tx-features.component.html 2 @@ -4835,6 +5002,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + Tämä siirtotapahtuma säästi % siirtokuluissa käyttämällä SegWit:iä ja voisi säästää % lisää päivittämällä täysin natiiviin SegWit:iin src/app/components/tx-features/tx-features.component.html 4 @@ -4843,6 +5011,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + Tämä siirtotapahtuma voi säästää % siirtomaksuissa päivittämällä natiiviin SegWit:iin tai % päivittämällä SegWit-P2SH:en src/app/components/tx-features/tx-features.component.html 6 @@ -4851,6 +5020,7 @@ This transaction uses Taproot and thereby saved at least % on fees + Tämä siirtotapahtuma käyttää Taprootia ja säästää siten vähintään % siirtomaksuissa. src/app/components/tx-features/tx-features.component.html 12 @@ -4859,6 +5029,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4884,6 +5055,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + Tämä siirtotapahtuma käyttää Taprootia ja on jo säästänyt vähintään % siirtomaksuissa, mutta voisi säästää vielä lisää % käyttämällä Taprootia täysimääräisesti src/app/components/tx-features/tx-features.component.html 14 @@ -4892,6 +5064,7 @@ This transaction could save % on fees by using Taproot + Tämä siirtotapahtuma voi säästää % siirtomaksuista käyttämällä Taprootia src/app/components/tx-features/tx-features.component.html 16 @@ -4900,6 +5073,7 @@ This transaction does not use Taproot + Tämä transaktio ei käytä Taprootia src/app/components/tx-features/tx-features.component.html 18 @@ -4917,6 +5091,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + Tämä siirtotapahtuma tukee Replace-By-Fee (RBF) -toimintoa, joka mahdollistaa siirtomaksujen korottamisen src/app/components/tx-features/tx-features.component.html 28 @@ -4939,7 +5114,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method - Tämä siirtotapahtuma EI tue Replace-By-Fee (RBF), eikä sen siirtokuluja voida nostaa tällä menetelmällä + Tämä siirtotapahtuma EI tue Replace-By-Fee (RBF), eikä sen siirtomaksuja voida nostaa tällä menetelmällä src/app/components/tx-features/tx-features.component.html 29 @@ -4985,7 +5160,7 @@ Transaction Fees - Siirtokulut + Siirtomaksut src/app/dashboard/dashboard.component.html 6,9 @@ -5001,21 +5176,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee - Vähimmäiskulu + Vähimmäis siirtomaksu src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5025,7 +5191,7 @@ Tyhjennys src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5035,7 +5201,7 @@ Muistin käyttö src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5045,16 +5211,24 @@ Käytössä olevat L-BTC src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service REST API-palvelu src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5063,11 +5237,11 @@ Päätepiste src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5076,11 +5250,11 @@ Kuvaus src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5088,7 +5262,7 @@ Oletus työntö: action: 'want', data: ['blocks', ...] ilmaisemaan, mitä haluat työnnettävän. Käytettävissä: blocks, mempool-blocks, live-2h-chart ja stats.Työnnä osoitteeseen liittyvät tapahtumat: 'track-address': '3PbJ...bF9B' vastaanottaa kaikki uudet transaktiot, jotka sisältävät kyseisen osoitteen syötteenä tai tulosteena. Palauttaa transaktioiden joukon. address-transactions uusille mempool-transaktioille ja block-transactions uusille lohkon vahvistetuille transaktioille. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5157,6 +5331,7 @@ Base fee + Perus siirtomaksu src/app/lightning/channel/channel-box/channel-box.component.html 29 @@ -5169,6 +5344,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 35 @@ -5189,6 +5365,7 @@ This channel supports zero base fee routing + Tämä kanava tukee perusmaksutonta reititystä src/app/lightning/channel/channel-box/channel-box.component.html 44 @@ -5197,6 +5374,7 @@ Zero base fee + Perusmaksuton src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5205,6 +5383,7 @@ This channel does not support zero base fee routing + Tämä kanava ei tue perusmaksutonta reititystä src/app/lightning/channel/channel-box/channel-box.component.html 50 @@ -5213,6 +5392,7 @@ Non-zero base fee + Perusmaksullinen src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5221,6 +5401,7 @@ Min HTLC + Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html 57 @@ -5229,6 +5410,7 @@ Max HTLC + Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html 63 @@ -5237,6 +5419,7 @@ Timelock delta + Aikalukko delta src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5245,18 +5428,20 @@ channels + kanavat src/app/lightning/channel/channel-box/channel-box.component.html 79 src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Alkusaldo src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5266,6 +5451,7 @@ Closing balance + Loppusaldo src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5275,6 +5461,7 @@ lightning channel + salamakanava src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5283,6 +5470,7 @@ Inactive + Ei aktiivinen src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5293,12 +5481,13 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive Active + Aktiivinen src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5309,12 +5498,13 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active Closed + Suljettu src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5329,12 +5519,13 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed Created + Luotu src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5347,6 +5538,7 @@ Capacity + Kapasiteetti src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5357,7 +5549,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5365,7 +5557,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5399,6 +5591,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5419,6 +5612,7 @@ Lightning channel + Salamakanava src/app/lightning/channel/channel.component.html 2,5 @@ -5431,6 +5625,7 @@ Last update + Viimeisin päivitys src/app/lightning/channel/channel.component.html 33,34 @@ -5463,18 +5658,20 @@ Closing date + Päättymispäivä src/app/lightning/channel/channel.component.html 37,38 src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Sulkenut src/app/lightning/channel/channel.component.html 52,54 @@ -5483,6 +5680,7 @@ Opening transaction + Avaava transaktio src/app/lightning/channel/channel.component.html 84,85 @@ -5491,6 +5689,7 @@ Closing transaction + Sulkeva transaktio src/app/lightning/channel/channel.component.html 93,95 @@ -5499,13 +5698,36 @@ Channel: + Kanava: src/app/lightning/channel/channel.component.ts 37 + + Mutually closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open + Avaa src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5514,17 +5736,19 @@ No channels to display + Ei näytettäviä kanavia src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list Alias + Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5558,29 +5782,32 @@ Status + Tila src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status Channel ID + Kanavan tunnus src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id sats + sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5624,8 +5851,25 @@ shared.sats + + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity + Keskimääräinen kapasiteetti src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5638,6 +5882,7 @@ Avg Fee Rate + Keskimääräinen siirtomaksu prosentti src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5650,6 +5895,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Reitityssolmujen perimien siirtomaksujen keskiarvo-osuus, kun ei oteta huomioon siirtomaksujen osuutta, jotka ovat yli 0,5 % tai 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5658,6 +5904,7 @@ Avg Base Fee + Keskimääräinen perus siirtomaksu src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5670,6 +5917,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + Reitityssolmujen perimä keskimääräinen perusmaksu, kun ei oteta huomioon perusmaksuja, jotka ovat yli 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5678,6 +5926,7 @@ Med Capacity + Keskisuuri kapasiteetti src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5686,6 +5935,7 @@ Med Fee Rate + Keskisuuri siirtomaksu taso src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5694,6 +5944,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Reitityssolmujen perimän siirtokulun mediaani, kun otetaan huomioon siirtokulu prosentit, jotka ovat yli 0,5 % tai 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5702,6 +5953,7 @@ Med Base Fee + Keskisuuri perus siirtomaksu src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5710,6 +5962,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + Reitityssolmujen perimän perusmaksun mediaani, kun ei oteta huomioon perus siirtomaksuja, jotka ovat yli 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5718,6 +5971,7 @@ Lightning node group + Salamasolmuryhmä src/app/lightning/group/group-preview.component.html 3,5 @@ -5730,6 +5984,7 @@ Nodes + Solmut src/app/lightning/group/group-preview.component.html 25,29 @@ -5740,11 +5995,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5766,6 +6021,7 @@ Liquidity + Likviditeetti src/app/lightning/group/group-preview.component.html 29,31 @@ -5802,6 +6058,7 @@ Channels + Kanavat src/app/lightning/group/group-preview.component.html 40,43 @@ -5812,11 +6069,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5862,6 +6119,7 @@ Average size + Keskimääräinen koko src/app/lightning/group/group-preview.component.html 44,46 @@ -5874,6 +6132,7 @@ Location + Sijainti src/app/lightning/group/group.component.html 74,77 @@ -5914,6 +6173,7 @@ Network Statistics + Verkon tilastot src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5922,6 +6182,7 @@ Channels Statistics + Kanavien tilastot src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5930,6 +6191,7 @@ Lightning Network History + Salamaverkon historia src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5938,6 +6200,7 @@ Liquidity Ranking + Likviditeettiluokitus src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5954,6 +6217,7 @@ Connectivity Ranking + Yhdistettävyysluokitus src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5966,30 +6230,57 @@ Fee distribution + Siirtomaksujen jakautuminen src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Lähtevät siirtomaksut + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Saapuvat siirtomaksut + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week + Prosenttimuutos viime viikolla src/app/lightning/node-statistics/node-statistics.component.html 5,7 src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week Lightning node + Salamasolmu src/app/lightning/node/node-preview.component.html 3,5 @@ -6006,6 +6297,7 @@ Active capacity + Aktiivinen kapasiteetti src/app/lightning/node/node-preview.component.html 20,22 @@ -6018,6 +6310,7 @@ Active channels + Aktiiviset kanavat src/app/lightning/node/node-preview.component.html 26,30 @@ -6030,6 +6323,7 @@ Country + Maa src/app/lightning/node/node-preview.component.html 44,47 @@ -6038,6 +6332,7 @@ No node found for public key "" + Julkiselle avaimelle &quot;&quot; ei löytynyt solmua src/app/lightning/node/node.component.html 17,19 @@ -6046,6 +6341,7 @@ Average channel size + Kanavan keskimääräinen koko src/app/lightning/node/node.component.html 40,43 @@ -6054,6 +6350,7 @@ Avg channel distance + Keskimääräinen kanavaetäisyys src/app/lightning/node/node.component.html 56,57 @@ -6062,6 +6359,7 @@ Color + Väri src/app/lightning/node/node.component.html 79,81 @@ -6070,6 +6368,7 @@ ISP + Palveluntarjoaja src/app/lightning/node/node.component.html 86,87 @@ -6082,6 +6381,7 @@ Exclusively on Tor + Ainoastaan Tor-verkossa src/app/lightning/node/node.component.html 93,95 @@ -6090,6 +6390,7 @@ Liquidity ad + Likviditeetti ad src/app/lightning/node/node.component.html 138,141 @@ -6098,6 +6399,7 @@ Lease fee rate + Vuokra siirtomaksun taso src/app/lightning/node/node.component.html 144,147 @@ -6107,6 +6409,7 @@ Lease base fee + Vuokra perus siirtokulu src/app/lightning/node/node.component.html 152,154 @@ -6115,6 +6418,7 @@ Funding weight + Rahoituspaino src/app/lightning/node/node.component.html 158,159 @@ -6123,6 +6427,7 @@ Channel fee rate + Kanava siirtomaksu taso src/app/lightning/node/node.component.html 168,171 @@ -6132,6 +6437,7 @@ Channel base fee + Kanava perus siirtomaksu src/app/lightning/node/node.component.html 176,178 @@ -6140,6 +6446,7 @@ Compact lease + Kompakti vuokraus src/app/lightning/node/node.component.html 188,190 @@ -6148,6 +6455,7 @@ TLV extension records + TLV-laajennustiedot src/app/lightning/node/node.component.html 199,202 @@ -6156,6 +6464,7 @@ Open channels + Avoimet kanavat src/app/lightning/node/node.component.html 240,243 @@ -6164,6 +6473,7 @@ Closed channels + Suljetut kanavat src/app/lightning/node/node.component.html 244,247 @@ -6172,6 +6482,7 @@ Node: + Solmu: src/app/lightning/node/node.component.ts 60 @@ -6179,6 +6490,7 @@ (Tor nodes excluded) + (Tor-solmuja ei oteta huomioon) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -6199,6 +6511,7 @@ Lightning Nodes Channels World Map + Salamasolmu kanavien maailmankartta src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -6206,13 +6519,15 @@ No geolocation data available + Paikannustietoja ei ole saatavilla src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 Active channels map + Aktiivisten kanavien kartta src/app/lightning/nodes-channels/node-channels.component.html 2,3 @@ -6221,6 +6536,7 @@ Indexing in progress + Indeksointi käynnissä src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6232,6 +6548,7 @@ Reachable on Clearnet Only + Tavoitettavissa vain Clearnetistä src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6243,6 +6560,7 @@ Reachable on Clearnet and Darknet + Tavoitettavissa Clearnetissä ja Darknetissä src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6254,6 +6572,7 @@ Reachable on Darknet Only + Tavoitettavissa vain Darknetissä src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6265,6 +6584,7 @@ Share + Jaa src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6277,6 +6597,7 @@ nodes + solmua src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6292,6 +6613,7 @@ BTC capacity + BTC kapasiteetti src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6299,6 +6621,7 @@ Lightning nodes in + Salamasolmut src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6307,6 +6630,7 @@ ISP Count + Palveluntarjoajien määrä src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6315,6 +6639,7 @@ Top ISP + Johtava palveluntarjoaja src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6323,6 +6648,7 @@ Lightning nodes in + Salamasolmut src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6330,6 +6656,7 @@ Clearnet Capacity + Clearnetin kapasiteetti src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6342,6 +6669,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + Kuinka paljon likviditeettiä on käytössä solmuissa, jotka mainostavat vähintään yhtä clearnet-IP-osoitetta src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6350,6 +6678,7 @@ Unknown Capacity + Tuntematon kapasiteetti src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6362,6 +6691,7 @@ How much liquidity is running on nodes which ISP was not identifiable + Kuinka paljon likviditeettiä kulkee solmuissa, joiden palveluntarjoajaa ei voitu tunnistaa src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6370,6 +6700,7 @@ Tor Capacity + Tor kapasiteetti src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6382,6 +6713,7 @@ How much liquidity is running on nodes advertising only Tor addresses + Kuinka paljon likviditeettiä on vain Tor-osoitteita mainostavissa solmuissa src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6390,6 +6722,7 @@ Top 100 ISPs hosting LN nodes + 100 suurinta LN-solmuja ylläpitävää palveluntarjoajaa src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6398,6 +6731,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6409,6 +6743,7 @@ Lightning ISP + Salama palveluntarjoaja src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6417,6 +6752,7 @@ Top country + Johtava maa src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6429,6 +6765,7 @@ Top node + Johtava solmu src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6437,6 +6774,7 @@ Lightning nodes on ISP: [AS] + Palveluntarjoajien salamasolmut: [AS] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6448,6 +6786,7 @@ Lightning nodes on ISP: + Palveluntarjoajien salamasolmut: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6456,6 +6795,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6464,6 +6804,7 @@ Active nodes + Aktiiviset solmut src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6472,6 +6813,7 @@ Top 100 oldest lightning nodes + Top 100 vanhinta salamasolmua src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6480,6 +6822,7 @@ Oldest lightning nodes + Vanhimmat salamasolmut src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 @@ -6487,6 +6830,7 @@ Top 100 nodes liquidity ranking + Top 100 solmun likviditeettiluokitus src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html 3,7 @@ -6495,6 +6839,7 @@ Top 100 nodes connectivity ranking + Top 100 solmun yhdistettävyysluokitus src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 3,7 @@ -6503,6 +6848,7 @@ Oldest nodes + Vanhimmat solmut src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6511,6 +6857,7 @@ Top lightning nodes + Tärkeimmät salamasolmut src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6518,6 +6865,7 @@ Indexing in progress + Indeksointi käynnissä src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 @@ -6534,7 +6882,7 @@ years - vuoden + vuotta src/app/shared/i18n/dates.ts 4 @@ -6558,7 +6906,7 @@ week - viikon + viikko src/app/shared/i18n/dates.ts 7 @@ -6566,7 +6914,7 @@ weeks - viikon + viikkoa src/app/shared/i18n/dates.ts 8 @@ -6574,7 +6922,7 @@ day - päivää + päivä src/app/shared/i18n/dates.ts 9 @@ -6638,7 +6986,7 @@ Transaction fee - Siirtokulu + Siirtomaksu src/app/shared/pipes/scriptpubkey-type-pipe/scriptpubkey-type.pipe.ts 11 diff --git a/frontend/src/locale/messages.it.xlf b/frontend/src/locale/messages.it.xlf index a51e1f4ad..d48ce0dcb 100644 --- a/frontend/src/locale/messages.it.xlf +++ b/frontend/src/locale/messages.it.xlf @@ -11,6 +11,7 @@ Slide of + Diapositiva di node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1461,6 +1475,7 @@ Community Integrations + Integrazioni della comunità src/app/components/about/about.component.html 191,193 @@ -1529,11 +1544,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + Multisig of src/app/components/address-labels/address-labels.component.ts 107 @@ -1565,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1581,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1664,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1886,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1899,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1912,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1921,7 +1937,7 @@ Errore nel caricamento dei dati degli asset. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2045,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2061,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2073,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2086,15 +2102,15 @@ Indicizzazione dei blocchi src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2119,6 +2135,7 @@ not available + non disponibile src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2138,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2164,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2182,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2198,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2216,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2268,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2296,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2310,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Stato dell'audit src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2329,6 +2347,7 @@ Match + Corrispondenza src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2337,6 +2356,7 @@ Removed + Rimosso src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2345,6 +2365,7 @@ Marginal fee rate + Tariffa marginale src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2357,6 +2378,7 @@ Recently broadcasted + Trasmessa di recente src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2365,6 +2387,7 @@ Added + Aggiunta src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2390,6 +2413,7 @@ No data to display yet. Try again later. + Non ci sono ancora dati da visualizzare. Riprova più tardi. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2420,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2450,15 +2474,15 @@ Dimensione src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2482,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2494,11 +2518,11 @@ Peso src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2506,15 +2530,28 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Dimensioni per peso + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + Blocco src/app/components/block/block-preview.component.html 3,7 @@ -2525,14 +2562,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Commissione mediana @@ -2542,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2559,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2581,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2594,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2619,24 +2648,42 @@ Previous Block - - Block health + + Health + Salute src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown + Sconosciuto src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2660,7 +2707,7 @@ Intervallo della commissione src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2673,7 +2720,7 @@ Basandosi su una transazione segwit nativa dal peso medio di 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2697,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - Ricompensa + commissioni: + + Subsidy + fees + Ricompensa + commissioni src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Previsto src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + beta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Effettivo src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Blocco Previsto src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Blocco Effettivo src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2748,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2757,7 +2821,7 @@ Merkle root src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2766,7 +2830,7 @@ Difficoltà src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2795,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2804,20 +2868,30 @@ Block Header Hex src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Audit + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Dettagli src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2839,11 +2913,11 @@ Errore caricamento dati src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2865,9 +2939,10 @@ Why is this block empty? + Perché questo blocco è vuoto? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2913,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Ricompensa @@ -2988,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3227,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3240,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3253,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3267,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3319,6 +3382,7 @@ Hashrate & Difficulty + Hashrate & Difficoltà src/app/components/graphs/graphs.component.html 15,16 @@ -3327,6 +3391,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3335,6 +3400,7 @@ Lightning Nodes Per Network + Nodi Lightning Per Network src/app/components/graphs/graphs.component.html 34 @@ -3355,6 +3421,7 @@ Lightning Network Capacity + Capacità Lightning Network src/app/components/graphs/graphs.component.html 36 @@ -3375,6 +3442,7 @@ Lightning Nodes Per ISP + Nodi Lightning Per ISP src/app/components/graphs/graphs.component.html 38 @@ -3387,6 +3455,7 @@ Lightning Nodes Per Country + Nodi Lightning Per Paese src/app/components/graphs/graphs.component.html 40 @@ -3516,7 +3585,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3541,7 +3610,7 @@ Lightning Explorer src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3549,20 +3618,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Documentazione src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3642,6 +3703,32 @@ dashboard.adjustments + + Broadcast Transaction + Trasmetti Transazione + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Fortuna delle Pool (1 settimana) @@ -3709,7 +3796,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3739,12 +3826,24 @@ mining.rank + + Avg Health + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Blocchi vuoti src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3753,7 +3852,7 @@ Tutti i minatori src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3762,7 +3861,7 @@ Fortuna delle Pool (1w) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3771,7 +3870,7 @@ Conteggio delle Pool (1w) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3780,7 +3879,7 @@ Pool dei minatori src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4006,24 +4105,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Trasmetti Transazione - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Hex della transazione @@ -4033,7 +4114,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4153,6 +4234,70 @@ search-form.search-title + + Bitcoin Block Height + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool in vByte (sat/vByte) @@ -4435,7 +4580,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4445,7 +4590,7 @@ Vista per la prima volta src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4479,7 +4624,7 @@ ETA src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4489,7 +4634,7 @@ Tra diverse ore (o più) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4499,11 +4644,11 @@ Discendente src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4513,7 +4658,7 @@ Antenato src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4522,11 +4667,11 @@ Flow src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4535,7 +4680,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4543,7 +4688,7 @@ Show more src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4559,7 +4704,7 @@ Show less src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4571,7 +4716,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4580,7 +4725,7 @@ Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4589,7 +4734,7 @@ Transazione non trovata. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4598,7 +4743,7 @@ Aspettando che appaia nella mempool... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4607,7 +4752,7 @@ Prezzo effettivo della commissione src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4755,7 +4900,7 @@ Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4763,7 +4908,7 @@ remaining src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -5001,21 +5146,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Commissione minima src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5025,7 +5161,7 @@ Eliminazione src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5035,7 +5171,7 @@ Memoria in uso src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5045,16 +5181,24 @@ L-BTC in circolazione src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service Servizio REST API src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5063,11 +5207,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5076,11 +5220,11 @@ Descrizione src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5088,7 +5232,7 @@ Push predefinito: action: 'want', data: ['blocks', ...] per esprimere cosa vuoi spingere. Disponibile: blocks, mempool-blocks, live-2h-chart, and stats.Spingi transazioni collegate all'indirizzo: 'track-address': '3PbJ...bF9B' per ricevere tutte le nuove transazioni contenenti quell'indirizzo come input o output. Restituisce un array di transazioni. address-transactions per nuove transazioni di mempool e block-transactions per le nuove transazioni confermate nel blocco. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5251,7 +5395,7 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels @@ -5293,7 +5437,7 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -5309,7 +5453,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5329,7 +5473,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5357,7 +5501,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5365,7 +5509,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5469,7 +5613,7 @@ src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date @@ -5504,6 +5648,27 @@ 37 + + Mutually closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open @@ -5516,7 +5681,7 @@ No channels to display src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5524,7 +5689,7 @@ Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5560,7 +5725,7 @@ Status src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5568,7 +5733,7 @@ Channel ID src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5576,11 +5741,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5624,6 +5789,22 @@ shared.sats + + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity @@ -5740,11 +5921,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5812,11 +5993,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5972,6 +6153,28 @@ lightning.node-fee-distribution + + Outgoing Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week @@ -5980,11 +6183,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6208,7 +6411,7 @@ No geolocation data available src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 diff --git a/frontend/src/locale/messages.nb.xlf b/frontend/src/locale/messages.nb.xlf index 1d68252a2..51d719460 100644 --- a/frontend/src/locale/messages.nb.xlf +++ b/frontend/src/locale/messages.nb.xlf @@ -11,6 +11,7 @@ Slide of + Bilde av node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1461,6 +1475,7 @@ Community Integrations + Sammfunnsintegrasjoner src/app/components/about/about.component.html 191,193 @@ -1529,11 +1544,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + Multisignatur av src/app/components/address-labels/address-labels.component.ts 107 @@ -1565,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1581,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1664,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1886,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1899,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1912,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1921,7 +1937,7 @@ Feil ved innlasting av ressursdata. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2045,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2061,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2073,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2086,15 +2102,15 @@ Indekserer blokker src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2119,6 +2135,7 @@ not available + ikke tilgjengelig src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2138,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2164,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2182,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2198,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2216,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2268,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2296,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2310,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Revisjonsstatus src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2329,6 +2347,7 @@ Match + lik src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2337,6 +2356,7 @@ Removed + Fjernet src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2345,6 +2365,7 @@ Marginal fee rate + Marginal avgiftsats src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2357,6 +2378,7 @@ Recently broadcasted + Nylig sendt src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2365,6 +2387,7 @@ Added + Lagt til src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2390,6 +2413,7 @@ No data to display yet. Try again later. + Ingen data å vise ennå. Prøv igjen senere. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2420,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2450,15 +2474,15 @@ Størrelse src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2482,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2494,11 +2518,11 @@ Vekt src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2506,15 +2530,28 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Størrelse per vekt + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + Blokk src/app/components/block/block-preview.component.html 3,7 @@ -2525,14 +2562,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Medianavgift @@ -2542,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2559,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2581,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2594,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2619,24 +2648,42 @@ Previous Block - - Block health + + Health + Helse src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown + Ukjent src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2660,7 +2707,7 @@ Avgiftsintervall src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2673,7 +2720,7 @@ Basert på gjennomsnittlig native segwit-transaksjon på 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2697,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - Subsidie + avgifter: + + Subsidy + fees + Subsidie + avgifter src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Forventet src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + beta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Faktisk src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Forventet blokk src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Faktisk blokk src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2748,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2757,7 +2821,7 @@ Merklerot src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2766,7 +2830,7 @@ Vanskelighetsgrad src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2795,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2804,20 +2868,30 @@ Blokkheader Hex src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Revisjon + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Detaljer src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2839,11 +2913,11 @@ Lasting av data feilet. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2865,9 +2939,10 @@ Why is this block empty? + Hvorfor er denne blokken tom? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2913,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Belønning @@ -2988,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3227,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3240,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3253,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3267,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3319,6 +3382,7 @@ Hashrate & Difficulty + Hashrate og vanskelighetsgrad src/app/components/graphs/graphs.component.html 15,16 @@ -3327,6 +3391,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3335,6 +3400,7 @@ Lightning Nodes Per Network + Lightning-noder per nettverk src/app/components/graphs/graphs.component.html 34 @@ -3355,6 +3421,7 @@ Lightning Network Capacity + Lightning-nettverkkapasitet src/app/components/graphs/graphs.component.html 36 @@ -3375,6 +3442,7 @@ Lightning Nodes Per ISP + Lightning-noder per ISP src/app/components/graphs/graphs.component.html 38 @@ -3387,6 +3455,7 @@ Lightning Nodes Per Country + Lightning-noder per land src/app/components/graphs/graphs.component.html 40 @@ -3403,6 +3472,7 @@ Lightning Nodes World Map + Lightning-noder verdenskart src/app/components/graphs/graphs.component.html 42 @@ -3419,6 +3489,7 @@ Lightning Nodes Channels World Map + Lightning-noder kanaler Verdenskart src/app/components/graphs/graphs.component.html 44 @@ -3516,7 +3587,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3539,9 +3610,10 @@ Lightning Explorer + Lightning Explorer src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3549,20 +3621,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Dokumentasjon src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3642,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + Send transaksjon + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Grupper flaks (1 uke) @@ -3709,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3739,12 +3829,25 @@ mining.rank + + Avg Health + Gj.sn. helse + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Tomme blokker src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3753,7 +3856,7 @@ Alle utvinnere src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3762,7 +3865,7 @@ Grupper flaks (1uke) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3771,7 +3874,7 @@ Antall grupper (1uke) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3780,7 +3883,7 @@ Utvinningsgrupper src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3797,6 +3900,7 @@ mining pool + utvinningssamfunn src/app/components/pool/pool-preview.component.html 3,5 @@ -4006,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Send transaksjon - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Transaksjon i hex @@ -4033,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4065,6 +4151,7 @@ Avg Block Fees + Gjennomsnittlig blokkavgift src/app/components/reward-stats/reward-stats.component.html 17 @@ -4077,6 +4164,7 @@ Average fees per block in the past 144 blocks + Gjennomsnittlige avgifter per blokk i de siste 144 blokkene src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4085,6 +4173,7 @@ BTC/block + BTC/blokk src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4094,6 +4183,7 @@ Avg Tx Fee + Gj.sn. Tx-avgift src/app/components/reward-stats/reward-stats.component.html 30 @@ -4138,6 +4228,7 @@ Explore the full Bitcoin ecosystem + Utforsk hele Bitcoin-økosystemet src/app/components/search-form/search-form.component.html 4,5 @@ -4153,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Bitcoin blokk-høyde + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Bitcoin-transaksjon + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Bitcoin adresse + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Bitcoin blokk + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Bitcoin-adresser + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Ligthning-noder + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Lightning-kanaler + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Gå til &quot; &quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool i vBytes (sat/vByte) @@ -4410,6 +4573,7 @@ This transaction replaced: + Denne transaksjonen erstattet: src/app/components/transaction/transaction.component.html 10,12 @@ -4419,6 +4583,7 @@ Replaced + Erstattet src/app/components/transaction/transaction.component.html 36,39 @@ -4435,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4445,7 +4610,7 @@ Først sett src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4479,7 +4644,7 @@ ETA src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4489,7 +4654,7 @@ Om flere timer(eller mer) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4499,11 +4664,11 @@ Etterkommer src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4513,37 +4678,40 @@ Forfader src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor Flow + Strømm src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow Hide diagram + Skjul diagram src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram Show more + Vis mer src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4557,9 +4725,10 @@ Show less + Vis mindre src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4569,9 +4738,10 @@ Show diagram + Vis diagram src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4580,7 +4750,7 @@ Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4589,7 +4759,7 @@ Transaksjon ikke funnet src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4598,7 +4768,7 @@ Venter på at den kommer inn i mempool... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4607,7 +4777,7 @@ Effektiv avgift src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4753,22 +4923,25 @@ Show more inputs to reveal fee data + Vis mer inndata for å avsløre avgiftsdata src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + gjenstår src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining other inputs + andre innganger src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4777,6 +4950,7 @@ other outputs + andre utganger src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4785,6 +4959,7 @@ Input + Inngang src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 42 @@ -4797,6 +4972,7 @@ Output + Utgang src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4809,6 +4985,7 @@ This transaction saved % on fees by using native SegWit + Denne transaksjonen sparte % på avgifter ved å bruke native SegWit src/app/components/tx-features/tx-features.component.html 2 @@ -4835,6 +5012,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + Denne transaksjonen sparte % på avgifter ved å bruke SegWit og kunne spart % mer ved å fullstendig oppgradere til native SegWit src/app/components/tx-features/tx-features.component.html 4 @@ -4843,6 +5021,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + Denne transaksjonen kan spare % på avgifter ved å oppgradere til native SegWit eller % ved å oppgradere til SegWit-P2SH src/app/components/tx-features/tx-features.component.html 6 @@ -4851,6 +5030,7 @@ This transaction uses Taproot and thereby saved at least % on fees + Denne transaksjonen bruker Taproot og sparer dermed minst % på avgifter src/app/components/tx-features/tx-features.component.html 12 @@ -4859,6 +5039,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4884,6 +5065,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + Denne transaksjonen bruker Taproot og har allerede spart minst % på avgifter, men kan spare ytterligere % ved å bruke Taproot fullt ut src/app/components/tx-features/tx-features.component.html 14 @@ -4892,6 +5074,7 @@ This transaction could save % on fees by using Taproot + Denne transaksjonen kunne spart % på avgifter ved å bruke Taproot src/app/components/tx-features/tx-features.component.html 16 @@ -4900,6 +5083,7 @@ This transaction does not use Taproot + Denne transaksjonen bruker ikke Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -4917,6 +5101,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + Denne transaksjonen støtter Replace-By-Fee (RBF) som tillater avgiftsendring src/app/components/tx-features/tx-features.component.html 28 @@ -5001,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Minimumsavgift src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5025,7 +5201,7 @@ Fjerner src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5035,7 +5211,7 @@ Minnebruk src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5045,16 +5221,25 @@ L-BTC i omløp src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space gir bare data om Bitcoin-nettverket. Den kan ikke hjelpe deg med å hente verdier, bekrefte transaksjonen raskere osv. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service REST API-tjeneste src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5063,11 +5248,11 @@ Endepunkt src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5076,11 +5261,11 @@ Beskrivelse src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5088,7 +5273,7 @@ Standard push: handling: 'want', data: ['blocks', ...] for å uttrykke hva du vil ha pushet. Tilgjengelig: blocks , mempool-blocks , live-2h-chart , og stats . Push-transaksjoner relatert til adresse: 'track-address': '3PbJ...bF9B' for å motta alle nye transaksjoner som inneholder den adressen som inngang eller utgang. Returnerer en tabell av transaksjoner. adress-transactions for nye mempool-transaksjoner, og block-transactions for nye blokkbekreftede transaksjoner. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5157,6 +5342,7 @@ Base fee + Grunnavgift src/app/lightning/channel/channel-box/channel-box.component.html 29 @@ -5169,6 +5355,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 35 @@ -5189,6 +5376,7 @@ This channel supports zero base fee routing + Denne kanalen støtter null grunnavgiftsruting src/app/lightning/channel/channel-box/channel-box.component.html 44 @@ -5197,6 +5385,7 @@ Zero base fee + Null grunnavgift src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5205,6 +5394,7 @@ This channel does not support zero base fee routing + Denne kanalen støtter ikke null grunnavgift ruting src/app/lightning/channel/channel-box/channel-box.component.html 50 @@ -5213,6 +5403,7 @@ Non-zero base fee + Ikke-null grunnavgift src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5221,6 +5412,7 @@ Min HTLC + Min. HTLC src/app/lightning/channel/channel-box/channel-box.component.html 57 @@ -5229,6 +5421,7 @@ Max HTLC + Maks HTLC src/app/lightning/channel/channel-box/channel-box.component.html 63 @@ -5237,6 +5430,7 @@ Timelock delta + Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5245,18 +5439,20 @@ channels + kanaler src/app/lightning/channel/channel-box/channel-box.component.html 79 src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Startbalanse src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5266,6 +5462,7 @@ Closing balance + Sluttbalanse src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5275,6 +5472,7 @@ lightning channel + Lightning-kanal src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5283,6 +5481,7 @@ Inactive + Inaktiv src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5293,12 +5492,13 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive Active + Aktiv src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5309,12 +5509,13 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active Closed + Avsluttet src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5329,12 +5530,13 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed Created + Opprettet src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5347,6 +5549,7 @@ Capacity + Kapasitet src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5357,7 +5560,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5365,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5399,6 +5602,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5419,6 +5623,7 @@ Lightning channel + Lightningkanal src/app/lightning/channel/channel.component.html 2,5 @@ -5431,6 +5636,7 @@ Last update + Siste oppdatering src/app/lightning/channel/channel.component.html 33,34 @@ -5463,18 +5669,20 @@ Closing date + Sluttdato src/app/lightning/channel/channel.component.html 37,38 src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Avsluttet av src/app/lightning/channel/channel.component.html 52,54 @@ -5483,6 +5691,7 @@ Opening transaction + Åpningstransaksjon src/app/lightning/channel/channel.component.html 84,85 @@ -5491,6 +5700,7 @@ Closing transaction + Avsluttningtransaksjon src/app/lightning/channel/channel.component.html 93,95 @@ -5499,13 +5709,39 @@ Channel: + Kanal: src/app/lightning/channel/channel.component.ts 37 + + Mutually closed + Gjensidig avsluttet + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Tvungen avsluttning + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Tvunget avsluttning med straff + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open + Åpen src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5514,17 +5750,19 @@ No channels to display + Ingen kanaler å vise src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list Alias + Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5558,29 +5796,32 @@ Status + Status src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status Channel ID + Kanal-ID src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id sats + sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5624,8 +5865,27 @@ shared.sats + + avg + gj.sn + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + median + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity + Gj.sn. kapasitet src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5638,6 +5898,7 @@ Avg Fee Rate + Gj.sn. avgiftssats src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5650,6 +5911,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Gjennomsnittlig avgiftssats som belastes av rutingsnoder, ignorerer avgiftssatser > 0,5 % eller 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5658,6 +5920,7 @@ Avg Base Fee + Gjennomsnittlig basisavgift src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5670,6 +5933,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + Den gjennomsnittlige basisavgiften som belastes av rutingsnoder, ignorerer basisavgifter > 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5678,6 +5942,7 @@ Med Capacity + Median kapasitet src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5686,6 +5951,7 @@ Med Fee Rate + Median avgiftssats src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5694,6 +5960,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Medianavgiftssatsen som belastes av rutingsnoder, ignorerer avgiftssatser > 0,5 % eller 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5702,6 +5969,7 @@ Med Base Fee + Median basisavgift src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5710,6 +5978,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + Median grunnavgift belastet av rutingnoder, ignorerer basisavgifter > 5000 ppm src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5718,6 +5987,7 @@ Lightning node group + Ligthningnode-gruppe src/app/lightning/group/group-preview.component.html 3,5 @@ -5730,6 +6000,7 @@ Nodes + Noder src/app/lightning/group/group-preview.component.html 25,29 @@ -5740,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5766,6 +6037,7 @@ Liquidity + Likviditet src/app/lightning/group/group-preview.component.html 29,31 @@ -5802,6 +6074,7 @@ Channels + Kanaler src/app/lightning/group/group-preview.component.html 40,43 @@ -5812,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5862,6 +6135,7 @@ Average size + Gjennomsnittsstørrelse src/app/lightning/group/group-preview.component.html 44,46 @@ -5874,6 +6148,7 @@ Location + plassering src/app/lightning/group/group.component.html 74,77 @@ -5914,6 +6189,7 @@ Network Statistics + Nettverksstatistikk src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5922,6 +6198,7 @@ Channels Statistics + Kanalstatistikk src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5930,6 +6207,7 @@ Lightning Network History + Lightning-nettverk historie src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5938,6 +6216,7 @@ Liquidity Ranking + Likviditetsrangering src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5954,6 +6233,7 @@ Connectivity Ranking + Tilkoblingsrangering src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5966,30 +6246,57 @@ Fee distribution + Avgiftsfordeling src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Utgående avgifter + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Inngående avgifter + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week + Prosentvis endring siste uke src/app/lightning/node-statistics/node-statistics.component.html 5,7 src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week Lightning node + Lightning-node src/app/lightning/node/node-preview.component.html 3,5 @@ -6006,6 +6313,7 @@ Active capacity + Aktiv kapasitet src/app/lightning/node/node-preview.component.html 20,22 @@ -6018,6 +6326,7 @@ Active channels + Aktive kanaler src/app/lightning/node/node-preview.component.html 26,30 @@ -6030,6 +6339,7 @@ Country + Land src/app/lightning/node/node-preview.component.html 44,47 @@ -6038,6 +6348,7 @@ No node found for public key "" + Ingen node funnet for offentlig nøkkel &quot; &quot; src/app/lightning/node/node.component.html 17,19 @@ -6046,6 +6357,7 @@ Average channel size + Gjennomsnittlig kanalstørrelse src/app/lightning/node/node.component.html 40,43 @@ -6054,6 +6366,7 @@ Avg channel distance + Gjennomsnittlig kanalavstand src/app/lightning/node/node.component.html 56,57 @@ -6062,6 +6375,7 @@ Color + Farge src/app/lightning/node/node.component.html 79,81 @@ -6070,6 +6384,7 @@ ISP + ISP src/app/lightning/node/node.component.html 86,87 @@ -6082,6 +6397,7 @@ Exclusively on Tor + Eksklusivt på Tor src/app/lightning/node/node.component.html 93,95 @@ -6090,6 +6406,7 @@ Liquidity ad + Likviditetsannonse src/app/lightning/node/node.component.html 138,141 @@ -6098,6 +6415,7 @@ Lease fee rate + Leieavgiftssats src/app/lightning/node/node.component.html 144,147 @@ -6107,6 +6425,7 @@ Lease base fee + Leiegrunnavgift src/app/lightning/node/node.component.html 152,154 @@ -6115,6 +6434,7 @@ Funding weight + Finansieringsvekt src/app/lightning/node/node.component.html 158,159 @@ -6123,6 +6443,7 @@ Channel fee rate + Kanalavgiftssats src/app/lightning/node/node.component.html 168,171 @@ -6132,6 +6453,7 @@ Channel base fee + Kanalbaseavgift src/app/lightning/node/node.component.html 176,178 @@ -6140,6 +6462,7 @@ Compact lease + Kompakt leieavtale src/app/lightning/node/node.component.html 188,190 @@ -6148,6 +6471,7 @@ TLV extension records + TLV-utvidelsesposter src/app/lightning/node/node.component.html 199,202 @@ -6156,6 +6480,7 @@ Open channels + Åpne kanaler src/app/lightning/node/node.component.html 240,243 @@ -6164,6 +6489,7 @@ Closed channels + Stengte kanaler src/app/lightning/node/node.component.html 244,247 @@ -6172,6 +6498,7 @@ Node: + Node: src/app/lightning/node/node.component.ts 60 @@ -6179,6 +6506,7 @@ (Tor nodes excluded) + (Tor-noder ekskludert) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -6199,6 +6527,7 @@ Lightning Nodes Channels World Map + Lightning nodekanaler verdenskart src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -6206,13 +6535,15 @@ No geolocation data available + Ingen geolokaliseringsdata tilgjengelig src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 Active channels map + Kart over aktive kanaler src/app/lightning/nodes-channels/node-channels.component.html 2,3 @@ -6221,6 +6552,7 @@ Indexing in progress + Indeksering pågår src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6232,6 +6564,7 @@ Reachable on Clearnet Only + Kun tilgjengelig på Clearnet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6243,6 +6576,7 @@ Reachable on Clearnet and Darknet + Tilgjengelig på Clearnet og Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6254,6 +6588,7 @@ Reachable on Darknet Only + Kun tilgjengelig på Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6265,6 +6600,7 @@ Share + Dele src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6277,6 +6613,7 @@ nodes + noder src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6292,6 +6629,7 @@ BTC capacity + BTC-kapasitet src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6299,6 +6637,7 @@ Lightning nodes in + Lightning-noder i src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6307,6 +6646,7 @@ ISP Count + Antall ISPer src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6315,6 +6655,7 @@ Top ISP + Topp ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6323,6 +6664,7 @@ Lightning nodes in + Lightning-noder i src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6330,6 +6672,7 @@ Clearnet Capacity + Clearnet-kapasitet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6342,6 +6685,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + Hvor mye likviditet er det på noder som annonserer minst én clearnet IP-adresse src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6350,6 +6694,7 @@ Unknown Capacity + Ukjent kapasitet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6362,6 +6707,7 @@ How much liquidity is running on nodes which ISP was not identifiable + Hvor mye likviditet er det på på noder der ISP ikke var identifiserbar src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6370,6 +6716,7 @@ Tor Capacity + Tor kapasitet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6382,6 +6729,7 @@ How much liquidity is running on nodes advertising only Tor addresses + Hvor mye likviditet er det på noder som kun annonserer Tor-adresser src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6390,6 +6738,7 @@ Top 100 ISPs hosting LN nodes + Topp 100 ISPer som er vert for LN-noder src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6398,6 +6747,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6409,6 +6759,7 @@ Lightning ISP + Lightning ISP src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6417,6 +6768,7 @@ Top country + Topp land src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6429,6 +6781,7 @@ Top node + Topp node src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6437,6 +6790,7 @@ Lightning nodes on ISP: [AS] + Lightning-noder på ISP: [AS ] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6448,6 +6802,7 @@ Lightning nodes on ISP: + Lightning-noder på ISP: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6456,6 +6811,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6464,6 +6820,7 @@ Active nodes + Aktive noder src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6472,6 +6829,7 @@ Top 100 oldest lightning nodes + Topp 100 eldste lightning-noder src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6480,6 +6838,7 @@ Oldest lightning nodes + Eldste ligthning-noder src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 @@ -6487,6 +6846,7 @@ Top 100 nodes liquidity ranking + Topp 100 noder likviditetsrangering src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html 3,7 @@ -6495,6 +6855,7 @@ Top 100 nodes connectivity ranking + Topp 100 noder tilkoblingsrangering src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 3,7 @@ -6503,6 +6864,7 @@ Oldest nodes + Eldste noder src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6511,6 +6873,7 @@ Top lightning nodes + Topp lightning-noder src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6518,6 +6881,7 @@ Indexing in progress + Indeksering pågår src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 diff --git a/frontend/src/locale/messages.pt.xlf b/frontend/src/locale/messages.pt.xlf index d854b5a52..78cdd9c99 100644 --- a/frontend/src/locale/messages.pt.xlf +++ b/frontend/src/locale/messages.pt.xlf @@ -11,6 +11,7 @@ Slide of + Slide de node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1530,7 +1544,7 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 @@ -1567,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1583,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1666,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1888,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1901,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1914,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1923,7 +1937,7 @@ Erro ao carregar os dados dos ativos. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2047,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2063,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2075,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2088,15 +2102,15 @@ Indexando blocos src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2121,6 +2135,7 @@ not available + não disponível src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2140,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2166,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2184,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2200,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2218,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2270,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2298,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2312,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Status da auditoria src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2331,6 +2347,7 @@ Match + Correspondente src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2339,6 +2356,7 @@ Removed + Removida src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2347,6 +2365,7 @@ Marginal fee rate + Taxa de 'fee' marginal src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2359,6 +2378,7 @@ Recently broadcasted + Transmitida recentemente src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2424,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2454,15 +2474,15 @@ Tamanho src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2486,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2498,11 +2518,11 @@ Peso src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2510,11 +2530,23 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Tamanho por peso + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2530,14 +2562,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Taxa mediana @@ -2547,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2564,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2586,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2599,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2624,25 +2648,42 @@ Previous Block - - Block health + + Health + Saúde src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown Desconhecido src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2666,7 +2707,7 @@ Intervalo de taxas src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2679,7 +2720,7 @@ Com base na transação segwit nativa média de 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2703,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - Recompensa + taxas: + + Subsidy + fees + Subsídio + taxas src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Esperado src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + beta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Atual src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Block Esperado src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Bloco De Fato src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2754,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2763,7 +2821,7 @@ Raiz Merkle src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2772,7 +2830,7 @@ Dificuldade src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2801,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2810,20 +2868,30 @@ Block Header Hex src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Auditoria + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Detalhes src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2845,11 +2913,11 @@ Erro ao carregar dados. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2871,9 +2939,10 @@ Why is this block empty? + Por que este bloco está vazio? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2919,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Recompensa @@ -2994,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3233,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3246,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3259,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3273,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3334,6 +3391,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3529,7 +3587,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3555,7 +3613,7 @@ Explorador Lightning src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3563,21 +3621,12 @@ master-page.lightning - - beta - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Documentação src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3657,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + Transmitir Transação + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Sorte dos Pools (1 sem.) @@ -3724,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3754,12 +3829,25 @@ mining.rank + + Avg Health + Saúde Média + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Blocos vazios src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3768,7 +3856,7 @@ Todos os mineradores src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3777,7 +3865,7 @@ Sorte dos Pools (1 sem.) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3786,7 +3874,7 @@ Quantidade de Pools (1 sem.) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3795,7 +3883,7 @@ Pools de Mineração src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4022,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Transmitir Transação - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Hex da Transação @@ -4049,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4081,6 +4151,7 @@ Avg Block Fees + Média de taxas dos blocos src/app/components/reward-stats/reward-stats.component.html 17 @@ -4093,6 +4164,7 @@ Average fees per block in the past 144 blocks + Média de taxas por bloco nos últimos 144 blocos src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4101,6 +4173,7 @@ BTC/block + BTC/bloco src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4110,6 +4183,7 @@ Avg Tx Fee + Taxa Média das Transações src/app/components/reward-stats/reward-stats.component.html 30 @@ -4170,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Altura do Bloco do Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Transação de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Endereço de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Bloco de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Endereços de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Nó de Lightning + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Canais Lightning + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Go to &citação; &citação; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool em vBytes (sat/vByte) @@ -4427,6 +4573,7 @@ This transaction replaced: + Esta transação substituiu: src/app/components/transaction/transaction.component.html 10,12 @@ -4436,6 +4583,7 @@ Replaced + Substituída src/app/components/transaction/transaction.component.html 36,39 @@ -4445,24 +4593,24 @@ Unconfirmed - Sem confirmar + Não confirmada src/app/components/transaction/transaction.component.html 39,46 src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed First seen - Visto pela primeira vez + Vista pela primeira vez src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4496,7 +4644,7 @@ Tempo estimado src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4506,7 +4654,7 @@ Em várias horas (ou mais) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4516,11 +4664,11 @@ Descendente src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4530,7 +4678,7 @@ Ancestral src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4540,11 +4688,11 @@ Fluxo src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4554,7 +4702,7 @@ Esconder diagrama src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4563,7 +4711,7 @@ Mostrar mais src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4580,7 +4728,7 @@ Mostrar menos src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4593,16 +4741,16 @@ Mostrar diagrama src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram Locktime - Tempo travado + Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4611,7 +4759,7 @@ Transação não encontrada. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4620,7 +4768,7 @@ Aguardando que apareça no mempool... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4629,7 +4777,7 @@ Taxa de transação efetiva src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4775,17 +4923,19 @@ Show more inputs to reveal fee data + Mostrar mais entradas para revelar dados de taxas src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + restante src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4835,7 +4985,7 @@ This transaction saved % on fees by using native SegWit - Esta transação economizou % em taxas ao usar SegWit nativo + Esta transação economizou % em taxas ao utilizar SegWit nativo src/app/components/tx-features/tx-features.component.html 2 @@ -4862,7 +5012,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit - Esta transação economizou % em taxas ao usar SegWit e poderia economizar mais % se utilizasse SegWit nativo + Esta transação economizou % em taxas ao utilizar SegWit e poderia economizar mais % se utilizasse SegWit nativo src/app/components/tx-features/tx-features.component.html 4 @@ -4871,7 +5021,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH - Esta transação poderia economizar % em taxas ao usar SegWit ou % ao usar SegWit-P2SH + Esta transação poderia economizar % em taxas ao utilizar SegWit ou % ao utilizar SegWit-P2SH src/app/components/tx-features/tx-features.component.html 6 @@ -4933,6 +5083,7 @@ This transaction does not use Taproot + Esta transação não usa Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -5035,21 +5186,12 @@ dashboard.latest-transactions - - USD - Dólar - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Taxa mínima src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5059,7 +5201,7 @@ Mínimo exigido src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5069,7 +5211,7 @@ Utilização da memória src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5079,16 +5221,25 @@ L-BTC em circulação src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space não fornece mais que dados sobre a rede Bitcoin.Não pode ajudá-lo a recuperar fundos, confirmar mais rapidamente sua transação, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service Serviço de API REST src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5097,11 +5248,11 @@ Terminal src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5110,11 +5261,11 @@ Descrição src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5122,7 +5273,7 @@ Push padrão: ação: 'want', data: ['blocks', ...] para expressar o que você deseja push. Disponível: blocks, mempool-blocks, live-2h-chart e stats.Push transações relacionadas ao endereço: 'track-address': '3PbJ ... bF9B' para receber todas as novas transações contendo aquele endereço como entrada ou saída. Retorna uma matriz de transações. address-transactions para novas transações de mempool e block-transactions para novas transações de bloco confirmadas. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5204,6 +5355,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 35 @@ -5278,6 +5430,7 @@ Timelock delta + Delta do Timelock src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5293,12 +5446,13 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Saldo inicial src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5308,6 +5462,7 @@ Closing balance + Saldo final src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5337,7 +5492,7 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -5354,7 +5509,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5375,7 +5530,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5405,7 +5560,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5413,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5521,12 +5676,13 @@ src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Fechado por src/app/lightning/channel/channel.component.html 52,54 @@ -5559,6 +5715,30 @@ 37 + + Mutually closed + Fechado mutuamente + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Forçosamente fechado + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Fechado forçosamente com penalidade + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open Aberto @@ -5573,7 +5753,7 @@ Sem canais para mostrar src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5582,7 +5762,7 @@ Apelido src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5619,7 +5799,7 @@ Status src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5628,7 +5808,7 @@ ID do Canal src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5637,11 +5817,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5685,6 +5865,24 @@ shared.sats + + avg + média + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + mediana + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Capacidade Média @@ -5789,6 +5987,7 @@ Lightning node group + Grupo de nós Lightning src/app/lightning/group/group-preview.component.html 3,5 @@ -5812,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5886,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -6017,7 +6216,7 @@ Liquidity Ranking - Classificação de Liquidez + Classificação por Liquidez src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -6034,7 +6233,7 @@ Connectivity Ranking - Classificação de Conectividade + Classificação por Conectividade src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -6047,12 +6246,37 @@ Fee distribution + Distribuição de taxas src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Taxas de saída + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Taxas de entrada + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Mudança percentual na última semana @@ -6062,11 +6286,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6142,6 +6366,7 @@ Avg channel distance + Distância média entre canais src/app/lightning/node/node.component.html 56,57 @@ -6172,7 +6397,7 @@ Exclusively on Tor - Exclusivamente no Tor + Exclusivamente Tor src/app/lightning/node/node.component.html 93,95 @@ -6181,6 +6406,7 @@ Liquidity ad + Anúncio de liquidez src/app/lightning/node/node.component.html 138,141 @@ -6189,6 +6415,7 @@ Lease fee rate + Taxa de aluguel src/app/lightning/node/node.component.html 144,147 @@ -6198,6 +6425,7 @@ Lease base fee + Taxa base de aluguel src/app/lightning/node/node.component.html 152,154 @@ -6206,6 +6434,7 @@ Funding weight + Peso de financiamento src/app/lightning/node/node.component.html 158,159 @@ -6214,6 +6443,7 @@ Channel fee rate + Taxa do canal src/app/lightning/node/node.component.html 168,171 @@ -6223,6 +6453,7 @@ Channel base fee + Taxa base do canal src/app/lightning/node/node.component.html 176,178 @@ -6231,6 +6462,7 @@ Compact lease + Locação compacta src/app/lightning/node/node.component.html 188,190 @@ -6239,6 +6471,7 @@ TLV extension records + Registros de extensão de valor alocado total src/app/lightning/node/node.component.html 199,202 @@ -6305,7 +6538,7 @@ Informação de geolocalização não disponível src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6319,6 +6552,7 @@ Indexing in progress + Indexação em andamento src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6421,6 +6655,7 @@ Top ISP + Principais provedores src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6437,7 +6672,7 @@ Clearnet Capacity - Capacidade na Clearnet + Capacidade Clearnet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6450,7 +6685,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address - Quanta liquidez existe em nós anunciando ao menos um endereço IP na clearnet + Quanta liquidez existe em nós anunciando ao menos um endereço IP na Clearnet src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6481,7 +6716,7 @@ Tor Capacity - Capacidade no Tor + Capacidade Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6585,6 +6820,7 @@ Active nodes + Nós ativos src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6637,6 +6873,7 @@ Top lightning nodes + Principais nós Lightning src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 diff --git a/frontend/src/locale/messages.ru.xlf b/frontend/src/locale/messages.ru.xlf index edfadc114..8a1c05c27 100644 --- a/frontend/src/locale/messages.ru.xlf +++ b/frontend/src/locale/messages.ru.xlf @@ -11,6 +11,7 @@ Slide of + Слайд из node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -413,7 +415,7 @@ Hash - Хеш + Хэш src/app/bisq/bisq-block/bisq-block.component.html 19 @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1530,7 +1544,7 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 @@ -1567,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1583,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1666,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1888,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1901,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1914,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1923,7 +1937,7 @@ Ошибка загрузки данных об активах src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2047,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2063,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2075,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2088,15 +2102,15 @@ Индексация блоков src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2121,6 +2135,7 @@ not available + Недоступно src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2140,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2166,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2184,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2200,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2218,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2270,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2298,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2312,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Статус аудита src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2331,6 +2347,7 @@ Match + Совпадение src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2339,6 +2356,7 @@ Removed + Удалено src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2347,6 +2365,7 @@ Marginal fee rate + Предельная ставка комиссии src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2359,6 +2378,7 @@ Recently broadcasted + Недавно транслированные src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2424,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2454,15 +2474,15 @@ Размер src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2486,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2498,11 +2518,11 @@ Вес src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2510,11 +2530,23 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Размер по весу + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2530,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Медианная комиссия @@ -2548,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2565,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2587,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2600,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2625,25 +2648,42 @@ Previous Block - - Block health + + Health + Здоровье src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown Неизвестно src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2667,7 +2707,7 @@ Интервал комиссий src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2680,7 +2720,7 @@ Основано на средней segwit-транзакции в 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2704,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: + + Subsidy + fees Субсидия + комиссии src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Ожидаемый src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + бета + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Фактический src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Ожидаемый блок src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Фактический блок src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2755,7 +2812,7 @@ Биты src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2764,7 +2821,7 @@ Корень Меркла src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2773,7 +2830,7 @@ Сложность src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2802,7 +2859,7 @@ Нонс src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2811,20 +2868,30 @@ Заголовок блока в шестнадцатиричном формате src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Аудит + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Подробности src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2846,11 +2913,11 @@ Ошибка загрузки src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2872,9 +2939,10 @@ Why is this block empty? + Почему этот блок пуст? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2920,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Вознагржадение @@ -2995,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3234,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3247,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3260,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3274,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3531,7 +3587,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3557,7 +3613,7 @@ Лайтнинг-обозреватель src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3565,21 +3621,12 @@ master-page.lightning - - beta - бета - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Документация src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3597,7 +3644,7 @@ Mempool block - Мемпул блок + Мемпул-блок src/app/components/mempool-block/mempool-block.component.ts 79 @@ -3659,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + Транслировать транзакцию + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Успешность пулов (неделя) @@ -3726,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3756,12 +3829,25 @@ mining.rank + + Avg Health + Среднее здоровье + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Пустые блоки src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3770,7 +3856,7 @@ Все майнеры src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3779,7 +3865,7 @@ Удача пулов (1 нед) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3788,7 +3874,7 @@ Кол-во пулов (1 нед) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3797,7 +3883,7 @@ Майнинг-пулы src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4024,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Транслировать транзакцию - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Хекс транзакции @@ -4051,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4083,6 +4151,7 @@ Avg Block Fees + Средняя комиссия за блок src/app/components/reward-stats/reward-stats.component.html 17 @@ -4095,6 +4164,7 @@ Average fees per block in the past 144 blocks + Средняя комиссия за блок за последние 144 блока src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4103,6 +4173,7 @@ BTC/block + BTC/блок src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4112,6 +4183,7 @@ Avg Tx Fee + Средняя комиссия за транзакцию src/app/components/reward-stats/reward-stats.component.html 30 @@ -4172,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Высота Биткоин-блока + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Биткоин-транзакция + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Биткоин-адрес + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Биткоина-блок + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Биткоин-адреса + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Lightning-узлы + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Lightning-каналы + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Перейти к &quot; &quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Мемпул в vBytes (sat/vByte) @@ -4429,6 +4573,7 @@ This transaction replaced: + Эта транзакция заменила: src/app/components/transaction/transaction.component.html 10,12 @@ -4438,6 +4583,7 @@ Replaced + Заменена src/app/components/transaction/transaction.component.html 36,39 @@ -4454,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4464,7 +4610,7 @@ Впервые замечен src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4498,7 +4644,7 @@ Расчетное время src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4508,7 +4654,7 @@ Через несколько часов (или больше) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4518,11 +4664,11 @@ Потомок src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4532,20 +4678,21 @@ Предок src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor Flow + Поток src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4555,7 +4702,7 @@ Скрыть диаграмму src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4564,7 +4711,7 @@ Показать больше src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4581,7 +4728,7 @@ Показывай меньше src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4594,16 +4741,16 @@ Показать схему src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram Locktime - Locktime + Время блокировки src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4612,7 +4759,7 @@ Транзакция не найдена. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4621,7 +4768,7 @@ Ожидаем ее появления в мемпуле ... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4630,7 +4777,7 @@ Эффективная комиссионная ставка src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4684,7 +4831,7 @@ Witness - Свидетель + Подпись src/app/components/transactions-list/transactions-list.component.html 110,112 @@ -4776,17 +4923,19 @@ Show more inputs to reveal fee data + Показать больше входов, чтобы узнать данные о комиссиях src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + осталось src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4934,6 +5083,7 @@ This transaction does not use Taproot + Эта транзакция не использует Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -5036,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Мин. комиссия src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5060,7 +5201,7 @@ Очистка src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5070,7 +5211,7 @@ Использование памяти src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5080,16 +5221,25 @@ L-BTC в обращении src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space просто предоставляет данные о сети Биткойн. Мы не можем помочь вам с возвратом средств, с ускорением подтверждения вашей транзакции и т. д. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service Служба REST API src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5098,11 +5248,11 @@ Конечная точка src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5111,19 +5261,19 @@ Описание src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. - Push по умолчанию: действие: 'want', data: ['blocks', ...] , чтобы выразить то, что вы хотите запушить. Доступно: блоки , mempool-blocks , live-2h-chart иstats Пуш транзакций, связанных с адресом: 'track-address': '3PbJ ... bF9B' для получения всех новых транзакционных входных или выходных данных, относящихся к данному адресу. Предоставляет массив транзакций. транзакций данного адреса, для новых транзакций мемпула и транзакций блока для транзакций, подтвержденных в новом блоке. + Пуш по умолчанию: действие: 'want', data: ['blocks', ...] , чтобы выразить то, что вы хотите запушить. Доступно: блоки , mempool-blocks , live-2h-chart иstats Пуш-транзакций, связанных с адресом: 'track-address': '3PbJ ... bF9B' для получения всех новых транзакционных входных или выходных данных, относящихся к данному адресу. Предоставляет массив транзакций. транзакций данного адреса, для новых транзакций мемпула и транзакций блока для транзакций, подтвержденных в новом блоке. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5280,6 +5430,7 @@ Timelock delta + Дельта блокировки времени src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5295,12 +5446,13 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Начальный баланс src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5310,6 +5462,7 @@ Closing balance + Конечный баланс src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5339,7 +5492,7 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -5356,7 +5509,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5377,7 +5530,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5407,7 +5560,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5415,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5449,6 +5602,7 @@ ppm + частей на миллион src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5522,12 +5676,13 @@ src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Закрыто src/app/lightning/channel/channel.component.html 52,54 @@ -5560,8 +5715,33 @@ 37 + + Mutually closed + Взаимно закрытые + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Принудительно закрытые + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Принудительное закрытые со штрафом + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open + Открыть src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5573,7 +5753,7 @@ Нет каналов для отображения src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5582,7 +5762,7 @@ Псевдоним src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5619,7 +5799,7 @@ Статус src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5628,7 +5808,7 @@ ID канала src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5637,11 +5817,11 @@ сат src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5685,6 +5865,24 @@ shared.sats + + avg + среднее + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + медиана + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Средняя емкость @@ -5813,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5887,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -6048,12 +6246,37 @@ Fee distribution + Распределение комиссий src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Исходящие комиссии + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Входящие комиссии + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Процентное изменение за последнюю неделю @@ -6063,11 +6286,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6143,6 +6366,7 @@ Avg channel distance + Среднее расстояние канала src/app/lightning/node/node.component.html 56,57 @@ -6182,6 +6406,7 @@ Liquidity ad + Объявление ликвидности src/app/lightning/node/node.component.html 138,141 @@ -6190,6 +6415,7 @@ Lease fee rate + Комиссия за аренду src/app/lightning/node/node.component.html 144,147 @@ -6199,6 +6425,7 @@ Lease base fee + Базовая комиссия за аренду src/app/lightning/node/node.component.html 152,154 @@ -6207,6 +6434,7 @@ Funding weight + Вес финансирования src/app/lightning/node/node.component.html 158,159 @@ -6215,6 +6443,7 @@ Channel fee rate + Ставка комиссии канала src/app/lightning/node/node.component.html 168,171 @@ -6224,6 +6453,7 @@ Channel base fee + Базовая комиссия канала src/app/lightning/node/node.component.html 176,178 @@ -6232,6 +6462,7 @@ Compact lease + Компактная аренда src/app/lightning/node/node.component.html 188,190 @@ -6240,6 +6471,7 @@ TLV extension records + Записи расширения TLV src/app/lightning/node/node.component.html 199,202 @@ -6306,7 +6538,7 @@ Данные геолокации недоступны src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6320,6 +6552,7 @@ Indexing in progress + Выполняется индексирование src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6587,6 +6820,7 @@ Active nodes + Активные узлы src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 diff --git a/frontend/src/locale/messages.uk.xlf b/frontend/src/locale/messages.uk.xlf index 49b037bcb..2a5cb6376 100644 --- a/frontend/src/locale/messages.uk.xlf +++ b/frontend/src/locale/messages.uk.xlf @@ -11,6 +11,7 @@ Slide of + Слайд з node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1461,6 +1475,7 @@ Community Integrations + Інтеграції спільноти src/app/components/about/about.component.html 191,193 @@ -1529,11 +1544,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + Мультипідпис з src/app/components/address-labels/address-labels.component.ts 107 @@ -1565,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1581,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1664,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1886,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1899,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1912,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1921,7 +1937,7 @@ Не вдалося завантажити дані про активи. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2034,6 +2050,7 @@ At block: + Блок: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 188 @@ -2044,11 +2061,12 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 Around block: + Біля блоку: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 190 @@ -2059,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2071,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2084,15 +2102,15 @@ Індексуємо блоки src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2117,6 +2135,7 @@ not available + недоступно src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2136,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2162,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2180,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2196,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2214,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2266,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2294,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2308,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Статус аудиту src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2327,6 +2347,7 @@ Match + Обмін src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2335,6 +2356,7 @@ Removed + Вилучено src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2343,6 +2365,7 @@ Marginal fee rate + Гранична ставка комісії src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2355,6 +2378,7 @@ Recently broadcasted + Недавно надіслані src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2363,6 +2387,7 @@ Added + Додано src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2371,6 +2396,7 @@ Block Prediction Accuracy + Точність прогнозування блоків src/app/components/block-prediction-graph/block-prediction-graph.component.html 6,8 @@ -2387,6 +2413,7 @@ No data to display yet. Try again later. + Поки що немає даних для відображення. Спробуйте пізніше. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2402,6 +2429,7 @@ Match rate + Курс обміну src/app/components/block-prediction-graph/block-prediction-graph.component.ts 189,187 @@ -2416,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2446,15 +2474,15 @@ Розмір src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2478,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2490,11 +2518,11 @@ Вага src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2502,15 +2530,28 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Розмір на вагу + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + Блок src/app/components/block/block-preview.component.html 3,7 @@ -2521,14 +2562,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Середня комісія @@ -2538,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2555,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2577,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2590,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2615,24 +2648,42 @@ Previous Block - - Block health + + Health + Здоров'я src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown + Невідомо src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2656,7 +2707,7 @@ Діапазон комісії src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2669,7 +2720,7 @@ На основі середнього розміру segwit транзакції в 140 vByte src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2693,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - Нагорода + комісії: + + Subsidy + fees + Нагорода + комісії src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Очікувалося src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + бета + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Фактично src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Очікуваний блок src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Фактичний блок src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2744,7 +2812,7 @@ Біти src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2753,7 +2821,7 @@ Корінь Меркле src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2762,7 +2830,7 @@ Складність src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2791,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2800,20 +2868,30 @@ Заголовок блоку в hex src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Аудит + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Деталі src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2835,11 +2913,11 @@ Не вдалося завантажити дані. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2861,9 +2939,10 @@ Why is this block empty? + Чому цей блок пустий? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2909,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Нагорода @@ -2984,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3150,6 +3217,7 @@ Usually places your transaction in between the second and third mempool blocks + Зазвичай розміщує вашу транзакцію між другим та третім блоками мемпулу src/app/components/fees-box/fees-box.component.html 8,9 @@ -3171,6 +3239,7 @@ Usually places your transaction in between the first and second mempool blocks + Зазвичай розміщує вашу транзакцію між першим та другим блоками мемпулу src/app/components/fees-box/fees-box.component.html 9,10 @@ -3221,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3234,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3247,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3261,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3313,6 +3382,7 @@ Hashrate & Difficulty + Хешрейт та складність src/app/components/graphs/graphs.component.html 15,16 @@ -3321,6 +3391,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3329,6 +3400,7 @@ Lightning Nodes Per Network + Lightning нод на мережу src/app/components/graphs/graphs.component.html 34 @@ -3349,6 +3421,7 @@ Lightning Network Capacity + Пропускна спроможність Lightning src/app/components/graphs/graphs.component.html 36 @@ -3369,6 +3442,7 @@ Lightning Nodes Per ISP + Lightning нод на ISP src/app/components/graphs/graphs.component.html 38 @@ -3381,6 +3455,7 @@ Lightning Nodes Per Country + Lightning нод на країну src/app/components/graphs/graphs.component.html 40 @@ -3397,6 +3472,7 @@ Lightning Nodes World Map + Мапа Lightning нод src/app/components/graphs/graphs.component.html 42 @@ -3413,6 +3489,7 @@ Lightning Nodes Channels World Map + Мапа Lightning каналів src/app/components/graphs/graphs.component.html 44 @@ -3467,6 +3544,7 @@ Hashrate (MA) + Хешрейт (MA) src/app/components/hashrate-chart/hashrate-chart.component.ts 292,291 @@ -3509,7 +3587,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3532,9 +3610,10 @@ Lightning Explorer + Lightning експлорер src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3542,20 +3621,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Документація src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3635,8 +3706,35 @@ dashboard.adjustments + + Broadcast Transaction + Надіслати транзакцію + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) + Удача пулу (1 тиждень) src/app/components/pool-ranking/pool-ranking.component.html 9 @@ -3645,6 +3743,7 @@ Pools luck + Удача пулу src/app/components/pool-ranking/pool-ranking.component.html 9,11 @@ -3653,6 +3752,7 @@ 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. + Загальна удача всіх майнінг-пулів за минулий тиждень. Успіх, більший за 100%, означає, що середній час блоків для поточної епохи менше 10 хвилин. src/app/components/pool-ranking/pool-ranking.component.html 11,15 @@ -3661,6 +3761,7 @@ Pools count (1w) + Кількість пулів (1тижд) src/app/components/pool-ranking/pool-ranking.component.html 17 @@ -3669,6 +3770,7 @@ Pools count + Кількість пулів src/app/components/pool-ranking/pool-ranking.component.html 17,19 @@ -3677,6 +3779,7 @@ How many unique pools found at least one block over the past week. + Скільки унікальних пулів знайшли хоча б один блок за останній тиждень. src/app/components/pool-ranking/pool-ranking.component.html 19,23 @@ -3696,12 +3799,13 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks The number of blocks found over the past week. + Кількість блоків, знайдених за останній тиждень. src/app/components/pool-ranking/pool-ranking.component.html 27,31 @@ -3725,12 +3829,25 @@ mining.rank + + Avg Health + Середній рівень здоров'я + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Пусті блоки src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3739,7 +3856,7 @@ Всі майнери src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3748,7 +3865,7 @@ Удача пулу (1тижд) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3757,7 +3874,7 @@ Кількість пулів (1тижд) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3766,7 +3883,7 @@ Майнінг пули src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3783,6 +3900,7 @@ mining pool + майнінг пул src/app/components/pool/pool-preview.component.html 3,5 @@ -3992,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Надіслати транзакцію - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Транзакція в hex @@ -4019,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4051,6 +4151,7 @@ Avg Block Fees + Середня комісія блоку src/app/components/reward-stats/reward-stats.component.html 17 @@ -4063,6 +4164,7 @@ Average fees per block in the past 144 blocks + Середня комісія блоку за останні 144 блоки src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4071,6 +4173,7 @@ BTC/block + BTC/блок src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4080,6 +4183,7 @@ Avg Tx Fee + Середня комісія src/app/components/reward-stats/reward-stats.component.html 30 @@ -4124,6 +4228,7 @@ Explore the full Bitcoin ecosystem + Перегляньте всю екосистему Bitcoin src/app/components/search-form/search-form.component.html 4,5 @@ -4139,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Висота Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Транзакція Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Адреса Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Блок Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Адреси Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Lightning ноди + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Lightning канали + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Перейти до &quot;&quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Мемпул в vBytes (sat/vByte) @@ -4396,6 +4573,7 @@ This transaction replaced: + Транзакція була замінена: src/app/components/transaction/transaction.component.html 10,12 @@ -4405,6 +4583,7 @@ Replaced + Замінена src/app/components/transaction/transaction.component.html 36,39 @@ -4421,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4431,7 +4610,7 @@ Вперше помічена src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4465,7 +4644,7 @@ Орієнтовний час src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4475,7 +4654,7 @@ За кілька годин (або довше) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4485,11 +4664,11 @@ Нащадок src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4499,37 +4678,40 @@ Предок src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor Flow + Потік src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow Hide diagram + Сховати діаграму src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram Show more + Показати більше src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4543,9 +4725,10 @@ Show less + Показати менше src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4555,9 +4738,10 @@ Show diagram + Показати діаграму src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4566,7 +4750,7 @@ Час блокування src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4575,7 +4759,7 @@ Транзакція не знайдена. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4584,7 +4768,7 @@ Чекаємо її появи в мемпулі... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4593,7 +4777,7 @@ Поточна ставка комісії src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4739,22 +4923,25 @@ Show more inputs to reveal fee data + Показати більше входів, щоб порахувати комісію src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + лишається src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining other inputs + інші входи src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4763,6 +4950,7 @@ other outputs + інші виходи src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4771,6 +4959,7 @@ Input + Вхід src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 42 @@ -4783,6 +4972,7 @@ Output + Вихід src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4795,6 +4985,7 @@ This transaction saved % on fees by using native SegWit + Ця транзакція зекономила % на комісії використовуючи нативний SegWit src/app/components/tx-features/tx-features.component.html 2 @@ -4821,6 +5012,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + Ця транзакція зекономила % використовуючи SegWit і могла б зекономити % якщо б вона використовувала нативний SegWit src/app/components/tx-features/tx-features.component.html 4 @@ -4829,6 +5021,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + Ця транзакція могла зекономити % на комісії якщо б вона використовувала нативний SegWit або % якщо б вона використовувала SegWit-P2SH src/app/components/tx-features/tx-features.component.html 6 @@ -4837,6 +5030,7 @@ This transaction uses Taproot and thereby saved at least % on fees + Ця транзакція використовує Taproot і тому зекономила як мініум % на комісії src/app/components/tx-features/tx-features.component.html 12 @@ -4845,6 +5039,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4870,6 +5065,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + Ця транзакція використовує Taproot і вже зекономила як мініум % на комісії, але могла б зекономити додаткові % повністю перейшовши на Taproot src/app/components/tx-features/tx-features.component.html 14 @@ -4878,6 +5074,7 @@ This transaction could save % on fees by using Taproot + Ця транзакція могла зекономити % на комісії використавши Taproot src/app/components/tx-features/tx-features.component.html 16 @@ -4886,6 +5083,7 @@ This transaction does not use Taproot + Ця транзакція не використовує Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -4903,6 +5101,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + Ця транзакція підтримує Replace-By-Fee (RBF), що дозволяє збільшення комісії src/app/components/tx-features/tx-features.component.html 28 @@ -4987,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Мінімальна комісія src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5011,7 +5201,7 @@ Очищення src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5021,7 +5211,7 @@ Використання пам'яті src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5031,15 +5221,25 @@ L-BTC в обігу src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation - - REST API service + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space лише надає дані про мережу Bitcoin. Він не зможе допомогти вам повернути кошти, підтвердити вашу транзакцію швидше, і т. д. src/app/docs/api-docs/api-docs.component.html - 39,40 + 13 + + faq.big-disclaimer + + + REST API service + Сервіс REST API + + src/app/docs/api-docs/api-docs.component.html + 41,42 api-docs.title @@ -5048,11 +5248,11 @@ Ендпоїнт src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5061,11 +5261,11 @@ Опис src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5073,7 +5273,7 @@ Надсилання за замовчуванням за замовчуванням: action: 'want', data: ['blocks', ...] щоб вказати, що має бути надіслано. Доступно: blocks, mempool-blocks, live-2h-chart та stats.Надіслати транзакції пов'язані з адресою: 'track-address': '3PbJ...bF9B' щоб отримати всі нові транзакції які містять дану адресу у входах чи виходах. Повертає масив транзакцій. address-transactions для нових мемпул транзакцій та block-transactions для нових підтверджених транзакцій. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5142,6 +5342,7 @@ Base fee + Базова комісія src/app/lightning/channel/channel-box/channel-box.component.html 29 @@ -5154,6 +5355,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 35 @@ -5174,6 +5376,7 @@ This channel supports zero base fee routing + Цей канал підтримує маршрутизацію з нульовою базовою комісією src/app/lightning/channel/channel-box/channel-box.component.html 44 @@ -5182,6 +5385,7 @@ Zero base fee + Нульова базова комісія src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5190,6 +5394,7 @@ This channel does not support zero base fee routing + Цей канал не підтримує маршрутизацію з нульовою базовою комісією src/app/lightning/channel/channel-box/channel-box.component.html 50 @@ -5198,6 +5403,7 @@ Non-zero base fee + Не нульова базова комісія src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5206,6 +5412,7 @@ Min HTLC + Мінімальний HTLC src/app/lightning/channel/channel-box/channel-box.component.html 57 @@ -5214,6 +5421,7 @@ Max HTLC + Максимальний HTLC src/app/lightning/channel/channel-box/channel-box.component.html 63 @@ -5222,6 +5430,7 @@ Timelock delta + Дельта блокування по часу src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5230,18 +5439,20 @@ channels + канали src/app/lightning/channel/channel-box/channel-box.component.html 79 src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Початковий баланс src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5251,6 +5462,7 @@ Closing balance + Кінцевий баланс src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5260,6 +5472,7 @@ lightning channel + lightning канал src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5268,6 +5481,7 @@ Inactive + неактивний src/app/lightning/channel/channel-preview.component.html 10,11 @@ -5278,12 +5492,13 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive Active + Активний src/app/lightning/channel/channel-preview.component.html 11,12 @@ -5294,12 +5509,13 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active Closed + Закритий src/app/lightning/channel/channel-preview.component.html 12,14 @@ -5314,12 +5530,13 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed Created + Створений src/app/lightning/channel/channel-preview.component.html 23,26 @@ -5332,6 +5549,7 @@ Capacity + Пропускна спроможність src/app/lightning/channel/channel-preview.component.html 27,28 @@ -5342,7 +5560,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5350,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5384,6 +5602,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5404,6 +5623,7 @@ Lightning channel + Lightning канал src/app/lightning/channel/channel.component.html 2,5 @@ -5416,6 +5636,7 @@ Last update + Востаннє оновлено src/app/lightning/channel/channel.component.html 33,34 @@ -5448,18 +5669,20 @@ Closing date + Дата закриття src/app/lightning/channel/channel.component.html 37,38 src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Закрито src/app/lightning/channel/channel.component.html 52,54 @@ -5468,6 +5691,7 @@ Opening transaction + Відкриваюча транзакція src/app/lightning/channel/channel.component.html 84,85 @@ -5476,6 +5700,7 @@ Closing transaction + Закриваюча транзакція src/app/lightning/channel/channel.component.html 93,95 @@ -5484,13 +5709,39 @@ Channel: + Канал: src/app/lightning/channel/channel.component.ts 37 + + Mutually closed + Взаємно закритий + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Закритий силою + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Закритий силою з штрафом + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open + Відкритий src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5499,17 +5750,19 @@ No channels to display + Немає каналів для відображення src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list Alias + Псевдонім src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5543,29 +5796,32 @@ Status + Статус src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status Channel ID + ID каналу src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id sats + sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5609,8 +5865,27 @@ shared.sats + + avg + в середньому + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + медіана + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity + Середня пропускна спроможність src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5623,6 +5898,7 @@ Avg Fee Rate + Середня ставка комісії src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5635,6 +5911,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Середня ставка комісії, що стягується нодами маршрутизації, без урахування ставок комісії > 0.5% або 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5643,6 +5920,7 @@ Avg Base Fee + Середня базова комісія src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5655,6 +5933,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + Середня базова комісія, що стягується нодами маршрутизації, без урахування базової комісії > 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5663,6 +5942,7 @@ Med Capacity + Середня медіана src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5671,6 +5951,7 @@ Med Fee Rate + Медіана ставки комісії src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5679,6 +5960,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + Медіана ставки комісії яка стягується нодами маршрутизації, без урахування ставки комісії > 0.5% чи 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5687,6 +5969,7 @@ Med Base Fee + Медіана базової комісії src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5695,6 +5978,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + Медіана базової комісії, що стягується нодами маршрутизації, без урахування базової комісії > 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5703,6 +5987,7 @@ Lightning node group + Група Lightning нод src/app/lightning/group/group-preview.component.html 3,5 @@ -5715,6 +6000,7 @@ Nodes + Ноди src/app/lightning/group/group-preview.component.html 25,29 @@ -5725,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5751,6 +6037,7 @@ Liquidity + Ліквідність src/app/lightning/group/group-preview.component.html 29,31 @@ -5787,6 +6074,7 @@ Channels + Канали src/app/lightning/group/group-preview.component.html 40,43 @@ -5797,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5847,6 +6135,7 @@ Average size + Середній розмір src/app/lightning/group/group-preview.component.html 44,46 @@ -5859,6 +6148,7 @@ Location + Локація src/app/lightning/group/group.component.html 74,77 @@ -5899,6 +6189,7 @@ Network Statistics + Статистика мережі src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5907,6 +6198,7 @@ Channels Statistics + Статистика каналу src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5915,6 +6207,7 @@ Lightning Network History + Історія мережі Lightning src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5923,6 +6216,7 @@ Liquidity Ranking + Рейтинг ліквідності src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 @@ -5939,6 +6233,7 @@ Connectivity Ranking + Рейтинг зв'язку src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5951,30 +6246,57 @@ Fee distribution + Розподіл комісії src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Вихідні комісії + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Вхідні комісії + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week + Відсоткова зміна за останній тиждень src/app/lightning/node-statistics/node-statistics.component.html 5,7 src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week Lightning node + Lightning нода src/app/lightning/node/node-preview.component.html 3,5 @@ -5991,6 +6313,7 @@ Active capacity + Активна пропускна спроможність src/app/lightning/node/node-preview.component.html 20,22 @@ -6003,6 +6326,7 @@ Active channels + Активні канали src/app/lightning/node/node-preview.component.html 26,30 @@ -6015,6 +6339,7 @@ Country + Країна src/app/lightning/node/node-preview.component.html 44,47 @@ -6023,6 +6348,7 @@ No node found for public key "" + Не знайдено ноду для ключа &quot;&quot; src/app/lightning/node/node.component.html 17,19 @@ -6031,6 +6357,7 @@ Average channel size + Середній розмір каналу src/app/lightning/node/node.component.html 40,43 @@ -6039,6 +6366,7 @@ Avg channel distance + Середня відстань каналу src/app/lightning/node/node.component.html 56,57 @@ -6047,6 +6375,7 @@ Color + Колір src/app/lightning/node/node.component.html 79,81 @@ -6055,6 +6384,7 @@ ISP + ISP src/app/lightning/node/node.component.html 86,87 @@ -6067,6 +6397,7 @@ Exclusively on Tor + Ексклюзивно для Tor src/app/lightning/node/node.component.html 93,95 @@ -6075,6 +6406,7 @@ Liquidity ad + Реклама ліквідності src/app/lightning/node/node.component.html 138,141 @@ -6083,6 +6415,7 @@ Lease fee rate + Ставка комісії оренди src/app/lightning/node/node.component.html 144,147 @@ -6092,6 +6425,7 @@ Lease base fee + Базова комісія оренди src/app/lightning/node/node.component.html 152,154 @@ -6100,6 +6434,7 @@ Funding weight + Вага фінансування src/app/lightning/node/node.component.html 158,159 @@ -6108,6 +6443,7 @@ Channel fee rate + Ставка комісії каналу src/app/lightning/node/node.component.html 168,171 @@ -6117,6 +6453,7 @@ Channel base fee + Базова комісія каналу src/app/lightning/node/node.component.html 176,178 @@ -6125,6 +6462,7 @@ Compact lease + Компактна оренда src/app/lightning/node/node.component.html 188,190 @@ -6133,6 +6471,7 @@ TLV extension records + Записи продовження TLV src/app/lightning/node/node.component.html 199,202 @@ -6141,6 +6480,7 @@ Open channels + Відкриті канали src/app/lightning/node/node.component.html 240,243 @@ -6149,6 +6489,7 @@ Closed channels + Закриті канали src/app/lightning/node/node.component.html 244,247 @@ -6157,6 +6498,7 @@ Node: + Нода: src/app/lightning/node/node.component.ts 60 @@ -6164,6 +6506,7 @@ (Tor nodes excluded) + (Без Tor нод) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -6184,6 +6527,7 @@ Lightning Nodes Channels World Map + Мапа каналів Lightning нод src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -6191,13 +6535,15 @@ No geolocation data available + Немає доступної геолокації src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 Active channels map + Мапа активних каналів src/app/lightning/nodes-channels/node-channels.component.html 2,3 @@ -6206,6 +6552,7 @@ Indexing in progress + Йде індексування src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6217,6 +6564,7 @@ Reachable on Clearnet Only + Доступно тільки через Клірнет src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6228,6 +6576,7 @@ Reachable on Clearnet and Darknet + Доступно через Клірнет та Даркнет src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6239,6 +6588,7 @@ Reachable on Darknet Only + Доступно тільки через Даркнет src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6250,6 +6600,7 @@ Share + Частка src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6262,6 +6613,7 @@ nodes + нод src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6277,6 +6629,7 @@ BTC capacity + BTC пропускної спроможності src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6284,6 +6637,7 @@ Lightning nodes in + Lightning нод в src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6292,6 +6646,7 @@ ISP Count + Кількість ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6300,6 +6655,7 @@ Top ISP + Рейтинг ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6308,6 +6664,7 @@ Lightning nodes in + Lightning нод в src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6315,6 +6672,7 @@ Clearnet Capacity + Пропускна спроможність Клірнету src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6327,6 +6685,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + Скільки ліквідності доступно на нодах, що мають хоча б одну Клірнет IP-адресу src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6335,6 +6694,7 @@ Unknown Capacity + Пропускна спроможність невідома src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6347,6 +6707,7 @@ How much liquidity is running on nodes which ISP was not identifiable + Скільки ліквідності доступно на нодах, чий ISP неможливо ідентифікувати src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6355,6 +6716,7 @@ Tor Capacity + Пропускна спроможність Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6367,6 +6729,7 @@ How much liquidity is running on nodes advertising only Tor addresses + Скільки ліквідності доступно на нодах, що доступні тільки через Tor адресу src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6375,6 +6738,7 @@ Top 100 ISPs hosting LN nodes + Топ 100 ISP провайдерів, які надають послуги хостингу LN нод src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6383,6 +6747,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6394,6 +6759,7 @@ Lightning ISP + Lightning ISP src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6402,6 +6768,7 @@ Top country + Рейтинг країн src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6414,6 +6781,7 @@ Top node + Рейтинг нод src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6422,6 +6790,7 @@ Lightning nodes on ISP: [AS] + Lightning ноди на ISP: [НА ] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6433,6 +6802,7 @@ Lightning nodes on ISP: + Lightning ноди на ISP: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6441,6 +6811,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6449,6 +6820,7 @@ Active nodes + Активні ноди src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6457,6 +6829,7 @@ Top 100 oldest lightning nodes + Топ 100 найстаріших lightning нод src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6465,6 +6838,7 @@ Oldest lightning nodes + Найстаріші lightning ноди src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 @@ -6472,6 +6846,7 @@ Top 100 nodes liquidity ranking + Топ 100 нод за ліквідністю src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html 3,7 @@ -6480,6 +6855,7 @@ Top 100 nodes connectivity ranking + Топ 100 нод за кількістю з'єднань src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 3,7 @@ -6488,6 +6864,7 @@ Oldest nodes + Найстаріші ноди src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6496,6 +6873,7 @@ Top lightning nodes + Рейтинг lightning нод src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6503,6 +6881,7 @@ Indexing in progress + Йде індексування src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 From 7d8875eb7303ddf0f8ab5a6c39e22c400cc2b527 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Tue, 28 Feb 2023 10:59:39 +0900 Subject: [PATCH 0436/1466] Use relative path to import price service --- frontend/src/app/components/amount/amount.component.ts | 2 +- .../block-overview-graph/block-overview-graph.component.ts | 2 +- .../block-overview-tooltip/block-overview-tooltip.component.ts | 2 +- frontend/src/app/components/block/block.component.ts | 2 +- .../src/app/components/transaction/transaction.component.ts | 2 +- .../components/transactions-list/transactions-list.component.ts | 2 +- .../tx-bowtie-graph-tooltip.component.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/components/amount/amount.component.ts b/frontend/src/app/components/amount/amount.component.ts index 927504012..479ae4791 100644 --- a/frontend/src/app/components/amount/amount.component.ts +++ b/frontend/src/app/components/amount/amount.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit, OnDestroy, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core'; import { StateService } from '../../services/state.service'; import { Observable, Subscription } from 'rxjs'; -import { Price } from 'src/app/services/price.service'; +import { Price } from '../../services/price.service'; @Component({ selector: 'app-amount', diff --git a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts index b46f7a3e7..b77792aee 100644 --- a/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts +++ b/frontend/src/app/components/block-overview-graph/block-overview-graph.component.ts @@ -5,7 +5,7 @@ import BlockScene from './block-scene'; import TxSprite from './tx-sprite'; import TxView from './tx-view'; import { Position } from './sprite-types'; -import { Price } from 'src/app/services/price.service'; +import { Price } from '../../services/price.service'; @Component({ selector: 'app-block-overview-graph', diff --git a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts index 1bd2b8714..ea011d045 100644 --- a/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts +++ b/frontend/src/app/components/block-overview-tooltip/block-overview-tooltip.component.ts @@ -1,7 +1,7 @@ import { Component, ElementRef, ViewChild, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core'; import { TransactionStripped } from '../../interfaces/websocket.interface'; import { Position } from '../../components/block-overview-graph/sprite-types.js'; -import { Price } from 'src/app/services/price.service'; +import { Price } from '../../services/price.service'; @Component({ selector: 'app-block-overview-tooltip', diff --git a/frontend/src/app/components/block/block.component.ts b/frontend/src/app/components/block/block.component.ts index 35f47de85..f5a0c93b0 100644 --- a/frontend/src/app/components/block/block.component.ts +++ b/frontend/src/app/components/block/block.component.ts @@ -13,7 +13,7 @@ import { BlockAudit, BlockExtended, TransactionStripped } from '../../interfaces import { ApiService } from '../../services/api.service'; import { BlockOverviewGraphComponent } from '../../components/block-overview-graph/block-overview-graph.component'; import { detectWebGL } from '../../shared/graphs.utils'; -import { PriceService, Price } from 'src/app/services/price.service'; +import { PriceService, Price } from '../../services/price.service'; @Component({ selector: 'app-block', diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 4d036e131..4fedc3912 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -22,7 +22,7 @@ import { SeoService } from '../../services/seo.service'; import { BlockExtended, CpfpInfo } from '../../interfaces/node-api.interface'; import { LiquidUnblinding } from './liquid-ublinding'; import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe'; -import { Price, PriceService } from 'src/app/services/price.service'; +import { Price, PriceService } from '../../services/price.service'; @Component({ selector: 'app-transaction', diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.ts b/frontend/src/app/components/transactions-list/transactions-list.component.ts index 6422d8507..c720d5960 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.ts +++ b/frontend/src/app/components/transactions-list/transactions-list.component.ts @@ -9,7 +9,7 @@ import { AssetsService } from '../../services/assets.service'; import { filter, map, tap, switchMap, shareReplay } from 'rxjs/operators'; import { BlockExtended } from '../../interfaces/node-api.interface'; import { ApiService } from '../../services/api.service'; -import { PriceService } from 'src/app/services/price.service'; +import { PriceService } from '../../services/price.service'; @Component({ selector: 'app-transactions-list', diff --git a/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts b/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts index da8d91ab3..b02637ef0 100644 --- a/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts +++ b/frontend/src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.ts @@ -1,6 +1,6 @@ import { Component, ElementRef, ViewChild, Input, OnChanges, OnInit } from '@angular/core'; import { tap } from 'rxjs'; -import { Price, PriceService } from 'src/app/services/price.service'; +import { Price, PriceService } from '../../services/price.service'; interface Xput { type: 'input' | 'output' | 'fee'; From 174758bdd9effd92bf6bd2e57cf77738da862b51 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 28 Feb 2023 00:20:30 -0500 Subject: [PATCH 0437/1466] Specify networks in lightning network graph labels --- .../nodes-networks-chart.component.ts | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts index 0ff9f4af1..e257864fa 100644 --- a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts +++ b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -161,28 +161,7 @@ export class NodesNetworksChartComponent implements OnInit { { zlevel: 1, yAxisIndex: 0, - name: $localize`Reachable on Clearnet Only`, - showSymbol: false, - symbol: 'none', - data: data.clearnet_nodes, - type: 'line', - lineStyle: { - width: 2, - }, - areaStyle: { - opacity: 0.5, - }, - stack: 'Total', - color: new graphic.LinearGradient(0, 0.75, 0, 1, [ - { offset: 0, color: '#FFB300' }, - { offset: 1, color: '#FFB300AA' }, - ]), - smooth: false, - }, - { - zlevel: 1, - yAxisIndex: 0, - name: $localize`Reachable on Clearnet and Darknet`, + name: $localize`Clearnet and Darknet`, showSymbol: false, symbol: 'none', data: data.clearnet_tor_nodes, @@ -203,7 +182,28 @@ export class NodesNetworksChartComponent implements OnInit { { zlevel: 1, yAxisIndex: 0, - name: $localize`Reachable on Darknet Only`, + name: $localize`Clearnet (IPv4, IPv6)`, + showSymbol: false, + symbol: 'none', + data: data.clearnet_nodes, + type: 'line', + lineStyle: { + width: 2, + }, + areaStyle: { + opacity: 0.5, + }, + stack: 'Total', + color: new graphic.LinearGradient(0, 0.75, 0, 1, [ + { offset: 0, color: '#FFB300' }, + { offset: 1, color: '#FFB300AA' }, + ]), + smooth: false, + }, + { + zlevel: 1, + yAxisIndex: 0, + name: $localize`Darknet Only (Tor, I2P, cjdns)`, showSymbol: false, symbol: 'none', data: data.tor_nodes, @@ -284,7 +284,7 @@ export class NodesNetworksChartComponent implements OnInit { padding: 10, data: [ { - name: $localize`Reachable on Darknet Only`, + name: $localize`Darknet Only (Tor, I2P, cjdns)`, inactiveColor: 'rgb(110, 112, 121)', textStyle: { color: 'white', @@ -292,7 +292,7 @@ export class NodesNetworksChartComponent implements OnInit { icon: 'roundRect', }, { - name: $localize`Reachable on Clearnet and Darknet`, + name: $localize`Clearnet (IPv4, IPv6)`, inactiveColor: 'rgb(110, 112, 121)', textStyle: { color: 'white', @@ -300,7 +300,7 @@ export class NodesNetworksChartComponent implements OnInit { icon: 'roundRect', }, { - name: $localize`Reachable on Clearnet Only`, + name: $localize`Clearnet and Darknet`, inactiveColor: 'rgb(110, 112, 121)', textStyle: { color: 'white', @@ -317,9 +317,9 @@ export class NodesNetworksChartComponent implements OnInit { }, ], selected: this.widget ? undefined : JSON.parse(this.storageService.getValue('nodes_networks_legend')) ?? { - '$localize`Reachable on Darknet Only`': true, - '$localize`Reachable on Clearnet Only`': true, - '$localize`Reachable on Clearnet and Darknet`': true, + '$localize`Darknet Only (Tor, I2P, cjdns)`': true, + '$localize`Clearnet (IPv4, IPv6)`': true, + '$localize`Clearnet and Darknet`': true, '$localize`:@@e5d8bb389c702588877f039d72178f219453a72d:Unknown`': true, } }, From 4bdad54bb20a81ab81b8f8a558a50dba6852dc89 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 28 Feb 2023 04:54:31 -0500 Subject: [PATCH 0438/1466] Link api rate limit note to /enterprise --- frontend/src/app/docs/api-docs/api-docs.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 47332abc3..8c8d6ac36 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -39,7 +39,7 @@

    Below is a reference for the {{ network.val === '' ? 'Bitcoin' : network.val.charAt(0).toUpperCase() + network.val.slice(1) }} REST API service.

    -

    Note that we enforce rate limits. If you exceed these limits, you will get a polite error encouraging you to run your own Mempool instance. If you repeatedly exceed the limits, you may be banned from accessing the service altogether.

    +

    Note that we enforce rate limits. If you exceed these limits, you will get an HTTP 429 error. If you repeatedly exceed the limits, you may be banned from accessing the service altogether. Consider an enterprise sponsorship if you need higher API limits.

    {{ item.title }}

    From 73b90fcd250fc19568ad29e16a5f86f024756c6f Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Fri, 24 Feb 2023 09:44:15 -0500 Subject: [PATCH 0439/1466] Add skeleton for blocks-bulk endpoint --- .../src/app/docs/api-docs/api-docs-data.ts | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index a6e8e418f..2c3bbc06b 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -2907,6 +2907,54 @@ export const restApiDocsData = [ } }, ... +]` + }, + codeSampleLiquid: emptyCodeSample, + codeSampleLiquidTestnet: emptyCodeSample, + codeSampleBisq: emptyCodeSample, + } + } + }, + { + type: "endpoint", + category: "blocks", + httpRequestMethod: "GET", + fragment: "get-blocks-bulk", + title: "GET Blocks (Bulk)", + description: { + default: "Returns details on the range of blocks between :minHeight and :maxHeight, inclusive, up to 100 blocks. If :maxHeight is not specified, :maxHeight defaults to the current tip." + }, + urlString: "/v1/blocks-bulk/:minHeight[/:maxHeight]", + showConditions: bitcoinNetworks, + showJsExamples: showJsExamplesDefaultFalse, + codeExample: { + default: { + codeTemplate: { + curl: `/api/v1/blocks-bulk/%{1}/%{2}`, + commonJS: ``, + }, + codeSampleMainnet: { + esModule: [], + commonJS: [], + curl: [730000, 730100], + response: `[ + +]`, + }, + codeSampleTestnet: { + esModule: ['2091187'], + commonJS: ['2091187'], + curl: ['2091187'], + response: `[ + +]` + }, + codeSampleSignet: { + esModule: ['53783'], + commonJS: ['53783'], + curl: ['53783'], + response: `[ + ]` }, codeSampleLiquid: emptyCodeSample, From f057b07021ef7e678dbf929d2b1ee2275adb5afe Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Sat, 25 Feb 2023 02:26:06 -0500 Subject: [PATCH 0440/1466] Add note for special availability Indicating that api endpoint is only available for enterprise sponsors. --- .../src/app/docs/api-docs/api-docs-data.ts | 1 + .../app/docs/api-docs/api-docs.component.html | 2 ++ .../app/docs/api-docs/api-docs.component.scss | 22 +++++++++++++++++++ frontend/src/app/shared/shared.module.ts | 3 ++- 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 2c3bbc06b..525e19320 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -2927,6 +2927,7 @@ export const restApiDocsData = [ urlString: "/v1/blocks-bulk/:minHeight[/:maxHeight]", showConditions: bitcoinNetworks, showJsExamples: showJsExamplesDefaultFalse, + specialAvailability: { enterprise: true }, codeExample: { default: { codeTemplate: { diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 47332abc3..4687fe0b2 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -46,6 +46,8 @@
    {{ item.title }} {{ item.category }}
    +

    This endpoint is available to enterprise sponsors.

    +

    This endpoint is only supported on official mempool.space instances.

    Endpoint
    diff --git a/frontend/src/app/docs/api-docs/api-docs.component.scss b/frontend/src/app/docs/api-docs/api-docs.component.scss index 92e78bc55..231871db6 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.scss +++ b/frontend/src/app/docs/api-docs/api-docs.component.scss @@ -284,6 +284,28 @@ h3 { margin-bottom: 0; } +.special-availability { + padding: 16px; + margin-bottom: 15px; + background-color: #1d1f31; +} + +.special-availability table tr td:first-child { + padding-right: 10px; +} + +.special-availability.enterprise fa-icon { + color: #ffc107; +} + +.special-availability.mempoolspace fa-icon { + color: #1bd8f4; +} + +.special-availability p { + margin: 0; +} + @media (max-width: 992px) { h3 { diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index fd257db85..46d831309 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -4,7 +4,7 @@ import { NgbCollapseModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstra import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle, faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, - faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft } from '@fortawesome/free-solid-svg-icons'; + faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faStar } from '@fortawesome/free-solid-svg-icons'; import { InfiniteScrollModule } from 'ngx-infinite-scroll'; import { MasterPageComponent } from '../components/master-page/master-page.component'; import { PreviewTitleComponent } from '../components/master-page-preview/preview-title.component'; @@ -309,5 +309,6 @@ export class SharedModule { library.addIcons(faQrcode); library.addIcons(faArrowRightArrowLeft); library.addIcons(faExchangeAlt); + library.addIcons(faStar); } } From 852513500af5b5fd94415fe6bc842982acf53c3d Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Sun, 26 Feb 2023 03:12:41 -0500 Subject: [PATCH 0441/1466] Add example responses for blocks-bulk --- .../src/app/docs/api-docs/api-docs-data.ts | 185 +++++++++++++++++- 1 file changed, 175 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 525e19320..d3d50fe79 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -2937,25 +2937,190 @@ export const restApiDocsData = [ codeSampleMainnet: { esModule: [], commonJS: [], - curl: [730000, 730100], + curl: [100000,100000], response: `[ - + { + "height": 100000, + "hash": "000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506", + "timestamp": 1293623863, + "median_timestamp": 1293622620, + "previous_block_hash": "000000000002d01c1fccc21636b607dfd930d31d01c3a62104612a1719011250", + "difficulty": 14484.1623612254, + "header": "0100000050120119172a610421a6c3011dd330d9df07b63616c2cc1f1cd00200000000006657a9252aacd5c0b2940996ecff952228c3067cc38d4885efb5a4ac4247e9f337221b4d4c86041b0f2b5710", + "version": 1, + "bits": 453281356, + "nonce": 274148111, + "size": 957, + "weight": 3828, + "tx_count": 4, + "merkle_root": "f3e94742aca4b5ef85488dc37c06c3282295ffec960994b2c0d5ac2a25a95766", + "reward": 5000000000, + "total_fee_amt": 0, + "avg_fee_amt": 0, + "median_fee_amt": 0, + "fee_amt_percentiles": { + "min": 0, + "perc_10": 0, + "perc_25": 0, + "perc_50": 0, + "perc_75": 0, + "perc_90": 0, + "max": 0 + }, + "avg_fee_rate": 0, + "median_fee_rate": 0, + "fee_rate_percentiles": { + "min": 0, + "perc_10": 0, + "perc_25": 0, + "perc_50": 0, + "perc_75": 0, + "perc_90": 0, + "max": 0 + }, + "total_inputs": 3, + "total_input_amt": 5301000000, + "total_outputs": 6, + "total_output_amt": 5301000000, + "segwit_total_txs": 0, + "segwit_total_size": 0, + "segwit_total_weight": 0, + "avg_tx_size": 185.25, + "utxoset_change": 3, + "utxoset_size": 71888, + "coinbase_raw": "044c86041b020602", + "coinbase_address": null, + "coinbase_signature": "OP_PUSHBYTES_65 041b0e8c2567c12536aa13357b79a073dc4444acb83c4ec7a0e2f99dd7457516c5817242da796924ca4e99947d087fedf9ce467cb9f7c6287078f801df276fdf84 OP_CHECKSIG", + "coinbase_signature_ascii": "\u0004L�\u0004\u001b\u0002\u0006\u0002", + "pool_slug": "unknown", + "orphans": [] + } ]`, }, codeSampleTestnet: { - esModule: ['2091187'], - commonJS: ['2091187'], - curl: ['2091187'], + esModule: [], + commonJS: [], + curl: [100000,100000], response: `[ - + { + "height": 100000, + "hash": "00000000009e2958c15ff9290d571bf9459e93b19765c6801ddeccadbb160a1e", + "timestamp": 1376123972, + "median_timestamp": 1677396660, + "previous_block_hash": "000000004956cc2edd1a8caa05eacfa3c69f4c490bfc9ace820257834115ab35", + "difficulty": 271.7576739288896, + "header": "0200000035ab154183570282ce9afc0b494c9fc6a3cfea05aa8c1add2ecc56490000000038ba3d78e4500a5a7570dbe61960398add4410d278b21cd9708e6d9743f374d544fc055227f1001c29c1ea3b", + "version": 2, + "bits": 469823783, + "nonce": 1005240617, + "size": 221, + "weight": 884, + "tx_count": 1, + "merkle_root": "d574f343976d8e70d91cb278d21044dd8a396019e6db70755a0a50e4783dba38", + "reward": 5000000000, + "total_fee_amt": 0, + "avg_fee_amt": 0, + "median_fee_amt": 0, + "fee_amt_percentiles": { + "min": 0, + "perc_10": 0, + "perc_25": 0, + "perc_50": 0, + "perc_75": 0, + "perc_90": 0, + "max": 0 + }, + "avg_fee_rate": 0, + "median_fee_rate": 0, + "fee_rate_percentiles": { + "min": 0, + "perc_10": 0, + "perc_25": 0, + "perc_50": 0, + "perc_75": 0, + "perc_90": 0, + "max": 0 + }, + "total_inputs": 0, + "total_input_amt": null, + "total_outputs": 1, + "total_output_amt": 0, + "segwit_total_txs": 0, + "segwit_total_size": 0, + "segwit_total_weight": 0, + "avg_tx_size": 0, + "utxoset_change": 1, + "utxoset_size": null, + "coinbase_raw": "03a08601000427f1001c046a510100522cfabe6d6d0000000000000000000068692066726f6d20706f6f6c7365727665726aac1eeeed88", + "coinbase_address": "mtkbaiLiUH3fvGJeSzuN3kUgmJzqinLejJ", + "coinbase_signature": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 912e2b234f941f30b18afbb4fa46171214bf66c8 OP_EQUALVERIFY OP_CHECKSIG", + "coinbase_signature_ascii": "\u0003 �\u0001\u0000\u0004'ñ\u0000\u001c\u0004jQ\u0001\u0000R,ú¾mm\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000hi from poolserverj¬\u001eîí�", + "pool_slug": "unknown", + "orphans": [] + } ]` }, codeSampleSignet: { - esModule: ['53783'], - commonJS: ['53783'], - curl: ['53783'], + esModule: [], + commonJS: [], + curl: [100000,100000], response: `[ - + { + "height": 100000, + "hash": "0000008753108390007b3f5c26e5d924191567e147876b84489b0c0cf133a0bf", + "timestamp": 1658421183, + "median_timestamp": 1658418056, + "previous_block_hash": "000000b962a13c3dd3f81917bc8646a0c98224adcd5124026d4fdfcb76a76d30", + "difficulty": 0.002781447610743506, + "header": "00000020306da776cbdf4f6d022451cdad2482c9a04686bc1719f8d33d3ca162b90000001367fb15320ebb1932fd589f8f38866b692ca8a4ad6100a4bc732d212916d0efbf7fd9628567011e47662d00", + "version": 536870912, + "bits": 503408517, + "nonce": 2975303, + "size": 343, + "weight": 1264, + "tx_count": 1, + "merkle_root": "efd01629212d73bca40061ada4a82c696b86388f9f58fd3219bb0e3215fb6713", + "reward": 5000000000, + "total_fee_amt": 0, + "avg_fee_amt": 0, + "median_fee_amt": 0, + "fee_amt_percentiles": { + "min": 0, + "perc_10": 0, + "perc_25": 0, + "perc_50": 0, + "perc_75": 0, + "perc_90": 0, + "max": 0 + }, + "avg_fee_rate": 0, + "median_fee_rate": 0, + "fee_rate_percentiles": { + "min": 0, + "perc_10": 0, + "perc_25": 0, + "perc_50": 0, + "perc_75": 0, + "perc_90": 0, + "max": 0 + }, + "total_inputs": 0, + "total_input_amt": null, + "total_outputs": 2, + "total_output_amt": 0, + "segwit_total_txs": 0, + "segwit_total_size": 0, + "segwit_total_weight": 0, + "avg_tx_size": 0, + "utxoset_change": 2, + "utxoset_size": null, + "coinbase_raw": "03a08601", + "coinbase_address": "tb1psfjl80vk0yp3agcq6ylueas29rau00mfq90mhejerpgccg33xhasd9gjyd", + "coinbase_signature": "OP_PUSHNUM_1 OP_PUSHBYTES_32 8265f3bd9679031ea300d13fccf60a28fbc7bf69015fbbe65918518c223135fb", + "coinbase_signature_ascii": "\u0003 �\u0001", + "pool_slug": "unknown", + "orphans": [] + } ]` }, codeSampleLiquid: emptyCodeSample, From 54f7e59978bd839baae9490ddd26a13a1f9cabf0 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 28 Feb 2023 04:15:45 -0500 Subject: [PATCH 0442/1466] Correct number of blocks returned for bulk-blocks --- frontend/src/app/docs/api-docs/api-docs-data.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index d3d50fe79..62d031613 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -2922,12 +2922,11 @@ export const restApiDocsData = [ fragment: "get-blocks-bulk", title: "GET Blocks (Bulk)", description: { - default: "Returns details on the range of blocks between :minHeight and :maxHeight, inclusive, up to 100 blocks. If :maxHeight is not specified, :maxHeight defaults to the current tip." + default: "

    Returns details on the range of blocks between :minHeight and :maxHeight, inclusive, up to 10 blocks. If :maxHeight is not specified, it defaults to the current tip.

    To return data for more than 10 blocks, consider becoming an enterprise sponsor.

    " }, urlString: "/v1/blocks-bulk/:minHeight[/:maxHeight]", showConditions: bitcoinNetworks, showJsExamples: showJsExamplesDefaultFalse, - specialAvailability: { enterprise: true }, codeExample: { default: { codeTemplate: { From 7e093d912b8422595eff2bbf8c54ee40f04d01d1 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Tue, 28 Feb 2023 04:39:32 -0500 Subject: [PATCH 0443/1466] Remove special availability note mechanism --- .../app/docs/api-docs/api-docs.component.html | 2 -- .../app/docs/api-docs/api-docs.component.scss | 22 ------------------- frontend/src/app/shared/shared.module.ts | 3 +-- 3 files changed, 1 insertion(+), 26 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 4687fe0b2..47332abc3 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -46,8 +46,6 @@
    {{ item.title }} {{ item.category }}
    -

    This endpoint is available to enterprise sponsors.

    -

    This endpoint is only supported on official mempool.space instances.

    Endpoint
    diff --git a/frontend/src/app/docs/api-docs/api-docs.component.scss b/frontend/src/app/docs/api-docs/api-docs.component.scss index 231871db6..92e78bc55 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.scss +++ b/frontend/src/app/docs/api-docs/api-docs.component.scss @@ -284,28 +284,6 @@ h3 { margin-bottom: 0; } -.special-availability { - padding: 16px; - margin-bottom: 15px; - background-color: #1d1f31; -} - -.special-availability table tr td:first-child { - padding-right: 10px; -} - -.special-availability.enterprise fa-icon { - color: #ffc107; -} - -.special-availability.mempoolspace fa-icon { - color: #1bd8f4; -} - -.special-availability p { - margin: 0; -} - @media (max-width: 992px) { h3 { diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index 46d831309..fd257db85 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -4,7 +4,7 @@ import { NgbCollapseModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstra import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle, faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, - faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faStar } from '@fortawesome/free-solid-svg-icons'; + faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft } from '@fortawesome/free-solid-svg-icons'; import { InfiniteScrollModule } from 'ngx-infinite-scroll'; import { MasterPageComponent } from '../components/master-page/master-page.component'; import { PreviewTitleComponent } from '../components/master-page-preview/preview-title.component'; @@ -309,6 +309,5 @@ export class SharedModule { library.addIcons(faQrcode); library.addIcons(faArrowRightArrowLeft); library.addIcons(faExchangeAlt); - library.addIcons(faStar); } } From f6cae729a76f2166f563369a3190b765bdbf7930 Mon Sep 17 00:00:00 2001 From: mononaut <83316221+mononaut@users.noreply.github.com> Date: Tue, 28 Feb 2023 18:40:59 -0600 Subject: [PATCH 0444/1466] revert capitalization in title tag Co-authored-by: wiz --- frontend/src/app/services/seo.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/services/seo.service.ts b/frontend/src/app/services/seo.service.ts index 78c7afc4c..5f5d15c89 100644 --- a/frontend/src/app/services/seo.service.ts +++ b/frontend/src/app/services/seo.service.ts @@ -7,7 +7,7 @@ import { StateService } from './state.service'; }) export class SeoService { network = ''; - baseTitle = 'Mempool'; + baseTitle = 'mempool'; constructor( private titleService: Title, From f09a2aab241da0c8018b614db44d880537645103 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 28 Feb 2023 21:30:20 -0600 Subject: [PATCH 0445/1466] Reset scrolling blockchain cache when network changes --- frontend/src/app/services/cache.service.ts | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/services/cache.service.ts b/frontend/src/app/services/cache.service.ts index 15ef99859..5eefd6e0a 100644 --- a/frontend/src/app/services/cache.service.ts +++ b/frontend/src/app/services/cache.service.ts @@ -17,6 +17,7 @@ export class CacheService { txCache: { [txid: string]: Transaction } = {}; + network: string; blockCache: { [height: number]: BlockExtended } = {}; blockLoading: { [height: number]: boolean } = {}; copiesInBlockQueue: { [height: number]: number } = {}; @@ -33,6 +34,10 @@ export class CacheService { this.stateService.chainTip$.subscribe((height) => { this.tip = height; }); + this.stateService.networkChanged$.subscribe((network) => { + this.network = network; + this.resetBlockCache(); + }); } setTxCache(transactions) { @@ -68,15 +73,17 @@ export class CacheService { } catch (e) { console.log("failed to load blocks: ", e.message); } - for (let i = 0; i < chunkSize; i++) { - delete this.blockLoading[maxHeight - i]; - } if (result && result.length) { result.forEach(block => { - this.addBlockToCache(block); - this.loadedBlocks$.next(block); + if (this.blockLoading[block.height]) { + this.addBlockToCache(block); + this.loadedBlocks$.next(block); + } }); } + for (let i = 0; i < chunkSize; i++) { + delete this.blockLoading[maxHeight - i]; + } this.clearBlocks(); } else { this.bumpBlockPriority(height); @@ -104,6 +111,14 @@ export class CacheService { } } + // remove all blocks from the cache + resetBlockCache() { + this.blockCache = {}; + this.blockLoading = {}; + this.copiesInBlockQueue = {}; + this.blockPriorities = []; + } + getCachedBlock(height) { return this.blockCache[height]; } From af2e3cb42a33a873c24e54cbe6f89de7464f608f Mon Sep 17 00:00:00 2001 From: Mononaut Date: Tue, 28 Feb 2023 21:36:16 -0600 Subject: [PATCH 0446/1466] Center-align blockchain after resetting scroll --- frontend/src/app/components/start/start.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/app/components/start/start.component.ts b/frontend/src/app/components/start/start.component.ts index c7b8a83bc..0855cad05 100644 --- a/frontend/src/app/components/start/start.component.ts +++ b/frontend/src/app/components/start/start.component.ts @@ -267,6 +267,7 @@ export class StartComponent implements OnInit, OnDestroy { resetScroll(): void { this.scrollToBlock(this.chainTip); + this.blockchainContainer.nativeElement.scrollLeft = 0; } getPageIndexOf(height: number): number { From a67656389ea75f591b90f9164b717d7629038a66 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 1 Mar 2023 13:50:15 +0900 Subject: [PATCH 0447/1466] Fix chain divergence detection upon new block (use the new interface) --- backend/src/api/blocks.ts | 14 +++++++------- backend/src/repositories/BlocksRepository.ts | 11 +++++++++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 75d1ec300..12eb3b693 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -570,18 +570,18 @@ class Blocks { if (Common.indexingEnabled()) { if (!fastForwarded) { const lastBlock = await blocksRepository.$getBlockByHeight(blockExtended.height - 1); - if (lastBlock !== null && blockExtended.previousblockhash !== lastBlock['hash']) { - logger.warn(`Chain divergence detected at block ${lastBlock['height']}, re-indexing most recent data`); + if (lastBlock !== null && blockExtended.previousblockhash !== lastBlock.id) { + logger.warn(`Chain divergence detected at block ${lastBlock.height}, re-indexing most recent data`); // We assume there won't be a reorg with more than 10 block depth - await BlocksRepository.$deleteBlocksFrom(lastBlock['height'] - 10); + await BlocksRepository.$deleteBlocksFrom(lastBlock.height - 10); await HashratesRepository.$deleteLastEntries(); - await BlocksSummariesRepository.$deleteBlocksFrom(lastBlock['height'] - 10); - await cpfpRepository.$deleteClustersFrom(lastBlock['height'] - 10); + await BlocksSummariesRepository.$deleteBlocksFrom(lastBlock.height - 10); + await cpfpRepository.$deleteClustersFrom(lastBlock.height - 10); for (let i = 10; i >= 0; --i) { - const newBlock = await this.$indexBlock(lastBlock['height'] - i); + const newBlock = await this.$indexBlock(lastBlock.height - i); await this.$getStrippedBlockTransactions(newBlock.id, true, true); if (config.MEMPOOL.CPFP_INDEXING) { - await this.$indexCPFP(newBlock.id, lastBlock['height'] - i); + await this.$indexCPFP(newBlock.id, lastBlock.height - i); } } await mining.$indexDifficultyAdjustments(); diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index 9cd31bbab..80df1ac92 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -525,8 +525,15 @@ class BlocksRepository { public async $validateChain(): Promise { try { const start = new Date().getTime(); - const [blocks]: any[] = await DB.query(`SELECT height, hash, previous_block_hash, - UNIX_TIMESTAMP(blockTimestamp) as timestamp FROM blocks ORDER BY height`); + const [blocks]: any[] = await DB.query(` + SELECT + height, + hash, + previous_block_hash, + UNIX_TIMESTAMP(blockTimestamp) AS timestamp + FROM blocks + ORDER BY height + `); let partialMsg = false; let idx = 1; From 8aebcf3e570ecd5aad90218c906a45ba9584baea Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 11:28:44 +0900 Subject: [PATCH 0448/1466] Remove mining db stats - replaced by runtime state variable --- backend/src/api/database-migration.ts | 12 +++++++++- backend/src/api/mining/mining.ts | 24 +++++++++---------- backend/src/index.ts | 3 --- backend/src/indexer.ts | 12 ---------- .../src/repositories/HashratesRepository.ts | 23 ++++-------------- 5 files changed, 28 insertions(+), 46 deletions(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index f4801deb6..6216e7f2b 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository'; import { RowDataPacket } from 'mysql2'; class DatabaseMigration { - private static currentVersion = 57; + private static currentVersion = 58; private queryTimeout = 3600_000; private statisticsAddedIndexed = false; private uniqueLogs: string[] = []; @@ -505,6 +505,11 @@ class DatabaseMigration { await this.$executeQuery(`ALTER TABLE nodes MODIFY updated_at datetime NULL`); await this.updateToSchemaVersion(57); } + + if (databaseSchemaVersion < 58) { + // We only run some migration queries for this version + await this.updateToSchemaVersion(58); + } } /** @@ -632,6 +637,11 @@ class DatabaseMigration { queries.push(`INSERT INTO state(name, number, string) VALUES ('last_weekly_hashrates_indexing', 0, NULL)`); } + if (version < 55) { + queries.push(`DELETE FROM state WHERE name = 'last_hashrates_indexing'`); + queries.push(`DELETE FROM state WHERE name = 'last_weekly_hashrates_indexing'`); + } + return queries; } diff --git a/backend/src/api/mining/mining.ts b/backend/src/api/mining/mining.ts index f33a68dcb..347752f99 100644 --- a/backend/src/api/mining/mining.ts +++ b/backend/src/api/mining/mining.ts @@ -13,10 +13,9 @@ import BlocksAuditsRepository from '../../repositories/BlocksAuditsRepository'; import PricesRepository from '../../repositories/PricesRepository'; class Mining { - blocksPriceIndexingRunning = false; - - constructor() { - } + private blocksPriceIndexingRunning = false; + public lastHashrateIndexingDate: number | null = null; + public lastWeeklyHashrateIndexingDate: number | null = null; /** * Get historical block predictions match rate @@ -176,13 +175,14 @@ class Mining { */ public async $generatePoolHashrateHistory(): Promise { const now = new Date(); - const lastestRunDate = await HashratesRepository.$getLatestRun('last_weekly_hashrates_indexing'); // Run only if: - // * lastestRunDate is set to 0 (node backend restart, reorg) + // * this.lastWeeklyHashrateIndexingDate is set to null (node backend restart, reorg) // * we started a new week (around Monday midnight) - const runIndexing = lastestRunDate === 0 || now.getUTCDay() === 1 && lastestRunDate !== now.getUTCDate(); + const runIndexing = this.lastWeeklyHashrateIndexingDate === null || + now.getUTCDay() === 1 && this.lastWeeklyHashrateIndexingDate !== now.getUTCDate(); if (!runIndexing) { + logger.debug(`Pool hashrate history indexing is up to date, nothing to do`, logger.tags.mining); return; } @@ -264,7 +264,7 @@ class Mining { ++indexedThisRun; ++totalIndexed; } - await HashratesRepository.$setLatestRun('last_weekly_hashrates_indexing', new Date().getUTCDate()); + this.lastWeeklyHashrateIndexingDate = new Date().getUTCDate(); if (newlyIndexed > 0) { logger.notice(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed}`, logger.tags.mining); } else { @@ -283,9 +283,9 @@ class Mining { */ public async $generateNetworkHashrateHistory(): Promise { // We only run this once a day around midnight - const latestRunDate = await HashratesRepository.$getLatestRun('last_hashrates_indexing'); - const now = new Date().getUTCDate(); - if (now === latestRunDate) { + const today = new Date().getUTCDate(); + if (today === this.lastHashrateIndexingDate) { + logger.debug(`Network hashrate history indexing is up to date, nothing to do`, logger.tags.mining); return; } @@ -369,7 +369,7 @@ class Mining { newlyIndexed += hashrates.length; await HashratesRepository.$saveHashrates(hashrates); - await HashratesRepository.$setLatestRun('last_hashrates_indexing', new Date().getUTCDate()); + this.lastHashrateIndexingDate = new Date().getUTCDate(); if (newlyIndexed > 0) { logger.notice(`Daily network hashrate indexing completed: indexed ${newlyIndexed} days`, logger.tags.mining); } else { diff --git a/backend/src/index.ts b/backend/src/index.ts index 6f259a2bd..05c2ffa83 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -87,9 +87,6 @@ class Server { await databaseMigration.$blocksReindexingTruncate(); } await databaseMigration.$initializeOrMigrateDatabase(); - if (Common.indexingEnabled()) { - await indexer.$resetHashratesIndexingState(); - } } catch (e) { throw new Error(e instanceof Error ? e.message : 'Error'); } diff --git a/backend/src/indexer.ts b/backend/src/indexer.ts index 41c8024e0..1665e443f 100644 --- a/backend/src/indexer.ts +++ b/backend/src/indexer.ts @@ -3,7 +3,6 @@ import blocks from './api/blocks'; import mempool from './api/mempool'; import mining from './api/mining/mining'; import logger from './logger'; -import HashratesRepository from './repositories/HashratesRepository'; import bitcoinClient from './api/bitcoin/bitcoin-client'; import priceUpdater from './tasks/price-updater'; import PricesRepository from './repositories/PricesRepository'; @@ -131,7 +130,6 @@ class Indexer { this.runSingleTask('blocksPrices'); await mining.$indexDifficultyAdjustments(); - await this.$resetHashratesIndexingState(); // TODO - Remove this as it's not efficient await mining.$generateNetworkHashrateHistory(); await mining.$generatePoolHashrateHistory(); await blocks.$generateBlocksSummariesDatabase(); @@ -150,16 +148,6 @@ class Indexer { logger.debug(`Indexing completed. Next run planned at ${new Date(new Date().getTime() + runEvery).toUTCString()}`); setTimeout(() => this.reindex(), runEvery); } - - async $resetHashratesIndexingState(): Promise { - try { - await HashratesRepository.$setLatestRun('last_hashrates_indexing', 0); - await HashratesRepository.$setLatestRun('last_weekly_hashrates_indexing', 0); - } catch (e) { - logger.err(`Cannot reset hashrate indexing timestamps. Reason: ` + (e instanceof Error ? e.message : e)); - throw e; - } - } } export default new Indexer(); diff --git a/backend/src/repositories/HashratesRepository.ts b/backend/src/repositories/HashratesRepository.ts index e5a193477..c380e87d9 100644 --- a/backend/src/repositories/HashratesRepository.ts +++ b/backend/src/repositories/HashratesRepository.ts @@ -1,5 +1,6 @@ import { escape } from 'mysql2'; import { Common } from '../api/common'; +import mining from '../api/mining/mining'; import DB from '../database'; import logger from '../logger'; import PoolsRepository from './PoolsRepository'; @@ -177,20 +178,6 @@ class HashratesRepository { } } - /** - * Set latest run timestamp - */ - public async $setLatestRun(key: string, val: number) { - const query = `UPDATE state SET number = ? WHERE name = ?`; - - try { - await DB.query(query, [val, key]); - } catch (e) { - logger.err(`Cannot set last indexing run for ${key}. Reason: ` + (e instanceof Error ? e.message : e)); - throw e; - } - } - /** * Get latest run timestamp */ @@ -222,8 +209,8 @@ class HashratesRepository { await DB.query(`DELETE FROM hashrates WHERE hashrate_timestamp = ?`, [row.timestamp]); } // Re-run the hashrate indexing to fill up missing data - await this.$setLatestRun('last_hashrates_indexing', 0); - await this.$setLatestRun('last_weekly_hashrates_indexing', 0); + mining.lastHashrateIndexingDate = null; + mining.lastWeeklyHashrateIndexingDate = null; } catch (e) { logger.err('Cannot delete latest hashrates data points. Reason: ' + (e instanceof Error ? e.message : e)); } @@ -238,8 +225,8 @@ class HashratesRepository { try { await DB.query(`DELETE FROM hashrates WHERE hashrate_timestamp >= FROM_UNIXTIME(?)`, [timestamp]); // Re-run the hashrate indexing to fill up missing data - await this.$setLatestRun('last_hashrates_indexing', 0); - await this.$setLatestRun('last_weekly_hashrates_indexing', 0); + mining.lastHashrateIndexingDate = null; + mining.lastWeeklyHashrateIndexingDate = null; } catch (e) { logger.err('Cannot delete latest hashrates data points. Reason: ' + (e instanceof Error ? e.message : e)); } From 87d678e268c7f5dfed8df4060d7c2048ea156116 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 1 Mar 2023 16:52:24 +0900 Subject: [PATCH 0449/1466] Run ln forensics last --- backend/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index 6f259a2bd..0ef107b76 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -199,8 +199,8 @@ class Server { try { await fundingTxFetcher.$init(); await networkSyncService.$startService(); - await forensicsService.$startService(); 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)}`); await Common.sleep$(1000 * 60); From d5342a4e9aaa944aa19ebf53b6fc1e0639527532 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 1 Mar 2023 17:26:53 +0900 Subject: [PATCH 0450/1466] Add frontend config flag to toggle historical price fetching --- docker/frontend/entrypoint.sh | 2 ++ frontend/mempool-frontend-config.sample.json | 3 ++- frontend/src/app/services/price.service.ts | 2 +- frontend/src/app/services/state.service.ts | 2 ++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docker/frontend/entrypoint.sh b/docker/frontend/entrypoint.sh index 18cb782e9..45d852c45 100644 --- a/docker/frontend/entrypoint.sh +++ b/docker/frontend/entrypoint.sh @@ -35,6 +35,7 @@ __AUDIT__=${AUDIT:=false} __MAINNET_BLOCK_AUDIT_START_HEIGHT__=${MAINNET_BLOCK_AUDIT_START_HEIGHT:=0} __TESTNET_BLOCK_AUDIT_START_HEIGHT__=${TESTNET_BLOCK_AUDIT_START_HEIGHT:=0} __SIGNET_BLOCK_AUDIT_START_HEIGHT__=${SIGNET_BLOCK_AUDIT_START_HEIGHT:=0} +__HISTORICAL_PRICE__=${HISTORICAL_PRICE:=true} # Export as environment variables to be used by envsubst export __TESTNET_ENABLED__ @@ -60,6 +61,7 @@ export __AUDIT__ export __MAINNET_BLOCK_AUDIT_START_HEIGHT__ export __TESTNET_BLOCK_AUDIT_START_HEIGHT__ export __SIGNET_BLOCK_AUDIT_START_HEIGHT__ +export __HISTORICAL_PRICE__ folder=$(find /var/www/mempool -name "config.js" | xargs dirname) echo ${folder} diff --git a/frontend/mempool-frontend-config.sample.json b/frontend/mempool-frontend-config.sample.json index 9035315a4..084cbd0ef 100644 --- a/frontend/mempool-frontend-config.sample.json +++ b/frontend/mempool-frontend-config.sample.json @@ -21,5 +21,6 @@ "MAINNET_BLOCK_AUDIT_START_HEIGHT": 0, "TESTNET_BLOCK_AUDIT_START_HEIGHT": 0, "SIGNET_BLOCK_AUDIT_START_HEIGHT": 0, - "LIGHTNING": false + "LIGHTNING": false, + "HISTORICAL_PRICE": true } diff --git a/frontend/src/app/services/price.service.ts b/frontend/src/app/services/price.service.ts index e3ec93c8b..93c4ce449 100644 --- a/frontend/src/app/services/price.service.ts +++ b/frontend/src/app/services/price.service.ts @@ -70,7 +70,7 @@ export class PriceService { } getBlockPrice$(blockTimestamp: number, singlePrice = false): Observable { - if (this.stateService.env.BASE_MODULE !== 'mempool') { + if (this.stateService.env.BASE_MODULE !== 'mempool' || !this.stateService.env.HISTORICAL_PRICE) { return of(undefined); } diff --git a/frontend/src/app/services/state.service.ts b/frontend/src/app/services/state.service.ts index 33de7823d..c56a5e79e 100644 --- a/frontend/src/app/services/state.service.ts +++ b/frontend/src/app/services/state.service.ts @@ -43,6 +43,7 @@ export interface Env { MAINNET_BLOCK_AUDIT_START_HEIGHT: number; TESTNET_BLOCK_AUDIT_START_HEIGHT: number; SIGNET_BLOCK_AUDIT_START_HEIGHT: number; + HISTORICAL_PRICE: boolean; } const defaultEnv: Env = { @@ -72,6 +73,7 @@ const defaultEnv: Env = { 'MAINNET_BLOCK_AUDIT_START_HEIGHT': 0, 'TESTNET_BLOCK_AUDIT_START_HEIGHT': 0, 'SIGNET_BLOCK_AUDIT_START_HEIGHT': 0, + 'HISTORICAL_PRICE': true, }; @Injectable({ From 9c5a9f2eba71abab75086d41f64cacb6a87edfff Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 1 Mar 2023 17:33:37 +0900 Subject: [PATCH 0451/1466] Only run migration 57 if bitcoin --- backend/src/api/database-migration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index f4801deb6..d40637e74 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -501,7 +501,7 @@ class DatabaseMigration { await this.updateToSchemaVersion(56); } - if (databaseSchemaVersion < 57) { + if (databaseSchemaVersion < 57 && isBitcoin === true) { await this.$executeQuery(`ALTER TABLE nodes MODIFY updated_at datetime NULL`); await this.updateToSchemaVersion(57); } From 9043d23a03753d42359de28674495e8c11a8e431 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Wed, 1 Mar 2023 19:11:03 +0900 Subject: [PATCH 0452/1466] Ignore negative USD prices --- backend/src/repositories/PricesRepository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/repositories/PricesRepository.ts b/backend/src/repositories/PricesRepository.ts index 83336eaff..6493735ee 100644 --- a/backend/src/repositories/PricesRepository.ts +++ b/backend/src/repositories/PricesRepository.ts @@ -40,7 +40,7 @@ export const MAX_PRICES = { class PricesRepository { public async $savePrices(time: number, prices: IConversionRates): Promise { - if (prices.USD === 0) { + if (prices.USD === -1) { // Some historical price entries have no USD prices, so we just ignore them to avoid future UX issues // As of today there are only 4 (on 2013-09-05, 2013-0909, 2013-09-12 and 2013-09-26) so that's fine return; From 3265b32a5688ba77f94b5cda995666ba27fc06e5 Mon Sep 17 00:00:00 2001 From: softsimon Date: Wed, 1 Mar 2023 19:14:54 +0900 Subject: [PATCH 0453/1466] Pull from transifex 1/3 --- frontend/src/locale/messages.fr.xlf | 688 +++++++++++++++++++--------- frontend/src/locale/messages.mk.xlf | 649 +++++++++++++++++--------- frontend/src/locale/messages.vi.xlf | 688 +++++++++++++++++++--------- 3 files changed, 1340 insertions(+), 685 deletions(-) diff --git a/frontend/src/locale/messages.fr.xlf b/frontend/src/locale/messages.fr.xlf index 61342d809..476dd8cfe 100644 --- a/frontend/src/locale/messages.fr.xlf +++ b/frontend/src/locale/messages.fr.xlf @@ -11,6 +11,7 @@ Slide of + Diapositive de node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1530,7 +1544,7 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 @@ -1567,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1583,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1666,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1888,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1901,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1914,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1923,7 +1937,7 @@ Erreur lors du chargement des données des actifs. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2047,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2063,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2075,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2088,15 +2102,15 @@ Indexage des blocs src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2121,6 +2135,7 @@ not available + pas disponible src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2140,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2166,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2184,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2200,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2218,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2270,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2298,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2312,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + État de l'audit src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2331,6 +2347,7 @@ Match + Correspond src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2339,6 +2356,7 @@ Removed + Supprimée src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2347,6 +2365,7 @@ Marginal fee rate + Taux de frais marginal src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2359,6 +2378,7 @@ Recently broadcasted + Récemment envoyée src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2424,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2454,15 +2474,15 @@ Taille src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2486,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2498,11 +2518,11 @@ Poids src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2510,11 +2530,23 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Taille par poids + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2530,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Frais médian @@ -2548,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2565,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2587,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2600,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2625,25 +2648,42 @@ Previous Block - - Block health + + Health + Santé src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown Inconnue src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2667,7 +2707,7 @@ L'envergure des frais src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2680,7 +2720,7 @@ Basé sur une transaction segwit standard de 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2704,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - Subvention + frais: + + Subsidy + fees + Subvention + frais src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Attendu src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + bêta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Réel src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Bloc attendu src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Bloc réel src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2755,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2764,7 +2821,7 @@ racine de Merkle src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2773,7 +2830,7 @@ Difficulté src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2802,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2811,20 +2868,30 @@ Hex d'en-tête de bloc src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Audit + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Détails src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2846,11 +2913,11 @@ Une erreur est survenue lors du chargement. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2872,9 +2939,10 @@ Why is this block empty? + Pourquoi ce bloc est-il vide ? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2920,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Récompense @@ -2995,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3234,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3247,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3260,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3274,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3531,7 +3587,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3557,7 +3613,7 @@ Explorateur Lightning src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3565,21 +3621,12 @@ master-page.lightning - - beta - bêta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Documentation src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3659,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + Émettre une transaction + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Chance des pools (1 semaine) @@ -3726,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3756,12 +3829,25 @@ mining.rank + + Avg Health + Santé moyenne + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Bloc vides src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3770,7 +3856,7 @@ Tous les mineurs src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3779,7 +3865,7 @@ Chance des pools src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3788,7 +3874,7 @@ Nombre de pool src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3797,7 +3883,7 @@ Pool de minage src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4024,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Émettre une transaction - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Transaction hex @@ -4051,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4083,6 +4151,7 @@ Avg Block Fees + Frais de bloc moyens src/app/components/reward-stats/reward-stats.component.html 17 @@ -4095,6 +4164,7 @@ Average fees per block in the past 144 blocks + Frais moyens par bloc au cours des 144 derniers blocs src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4103,6 +4173,7 @@ BTC/block + BTC/bloc src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4112,6 +4183,7 @@ Avg Tx Fee + Frais Tx Moy src/app/components/reward-stats/reward-stats.component.html 30 @@ -4172,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Hauteur de bloc Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Transaction Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Adresse Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Bloc de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Adresses Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Noeuds Lightning + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Canaux Lightning + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Aller à &quot;&quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool par vBytes (sat/vByte) @@ -4429,6 +4573,7 @@ This transaction replaced: + Cette transaction a remplacé : src/app/components/transaction/transaction.component.html 10,12 @@ -4438,6 +4583,7 @@ Replaced + Remplacée src/app/components/transaction/transaction.component.html 36,39 @@ -4454,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4464,7 +4610,7 @@ Vu pour la première fois src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4498,7 +4644,7 @@ HAP src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4508,7 +4654,7 @@ Dans plusieurs heures (ou plus) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4518,11 +4664,11 @@ Descendant src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4532,7 +4678,7 @@ Ancêtre src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4542,11 +4688,11 @@ Flux src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4556,7 +4702,7 @@ Masquer le diagramme src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4565,7 +4711,7 @@ Montrer plus src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4582,7 +4728,7 @@ Montrer moins src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4595,7 +4741,7 @@ Afficher le diagramme src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4604,7 +4750,7 @@ Temps de verrouillage src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4613,7 +4759,7 @@ Transaction introuvable. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4622,7 +4768,7 @@ Veuillez patienter pendant que nous attendons qu'elle apparaisse dans le mempool src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4631,7 +4777,7 @@ Taux de frais effectif src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4777,17 +4923,19 @@ Show more inputs to reveal fee data + Afficher plus d'entrées pour révéler les données de frais src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + restantes src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4935,6 +5083,7 @@ This transaction does not use Taproot + Cette transaction n'utilise pas Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -5037,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Frais minimums src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5061,7 +5201,7 @@ Purgées src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5071,7 +5211,7 @@ Mémoire utilisée src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5081,16 +5221,25 @@ L-BTC en circulation src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space fournit simplement des données sur le réseau Bitcoin. Il ne peut pas vous aider à récupérer des fonds, à confirmer vos transactions plus rapidement, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service Service d'API REST src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5099,11 +5248,11 @@ Point de terminaison src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5112,11 +5261,11 @@ Description src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5124,7 +5273,7 @@ Pousser par défaut : action: 'want', data: ['blocks', ...] pour exprimer ce que vous voulez pousser. Disponible: blocks, mempool-blocks, live-2h-chart, et stats.Pousse les transactions liées à l'adresse : 'track-address': '3PbJ...bF9B' pour recevoir toutes les nouvelles transactions contenant cette adresse en entrée ou en sortie. Renvoie un tableau de transactions. address-transactions pour les nouvelles transactions mempool, et block-transactions pour les nouvelles transactions confirmées en bloc. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5297,12 +5446,13 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Solde de départ src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5312,6 +5462,7 @@ Closing balance + Solde de clôture src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5341,7 +5492,7 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -5358,7 +5509,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5379,7 +5530,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5409,7 +5560,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5417,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5525,12 +5676,13 @@ src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Fermée par src/app/lightning/channel/channel.component.html 52,54 @@ -5563,6 +5715,30 @@ 37 + + Mutually closed + Mutuellement fermé + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Fermeture Forcée + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Fermeture forcée avec pénalité + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open Ouvert @@ -5577,7 +5753,7 @@ Aucun canal à afficher src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5586,7 +5762,7 @@ Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5623,7 +5799,7 @@ Statut src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5632,7 +5808,7 @@ ID du canal src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5641,11 +5817,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5689,6 +5865,24 @@ shared.sats + + avg + moy. + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + med. + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Capacité moy @@ -5817,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5891,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -6052,12 +6246,37 @@ Fee distribution + Répartition des frais src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Frais de sortie + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Frais entrants + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Variation sur une semaine @@ -6067,11 +6286,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6147,6 +6366,7 @@ Avg channel distance + Distance moyenne des canaux src/app/lightning/node/node.component.html 56,57 @@ -6186,6 +6406,7 @@ Liquidity ad + Annonce de liquidité src/app/lightning/node/node.component.html 138,141 @@ -6194,6 +6415,7 @@ Lease fee rate + Taux de frais de location src/app/lightning/node/node.component.html 144,147 @@ -6203,6 +6425,7 @@ Lease base fee + Frais de base de location src/app/lightning/node/node.component.html 152,154 @@ -6211,6 +6434,7 @@ Funding weight + Poids du financement src/app/lightning/node/node.component.html 158,159 @@ -6219,6 +6443,7 @@ Channel fee rate + Taux de frais de canal src/app/lightning/node/node.component.html 168,171 @@ -6228,6 +6453,7 @@ Channel base fee + Frais de base du canal src/app/lightning/node/node.component.html 176,178 @@ -6236,6 +6462,7 @@ Compact lease + Location compacte src/app/lightning/node/node.component.html 188,190 @@ -6244,6 +6471,7 @@ TLV extension records + Enregistrements d'extension TLV src/app/lightning/node/node.component.html 199,202 @@ -6310,7 +6538,7 @@ Aucune donnée de géolocalisation disponible src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6324,6 +6552,7 @@ Indexing in progress + Indexation en cours src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6591,6 +6820,7 @@ Active nodes + Nœuds actifs src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 diff --git a/frontend/src/locale/messages.mk.xlf b/frontend/src/locale/messages.mk.xlf index 61ffc6a69..8747463ee 100644 --- a/frontend/src/locale/messages.mk.xlf +++ b/frontend/src/locale/messages.mk.xlf @@ -11,6 +11,7 @@ Slide of + Слајд of node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -355,11 +357,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -380,11 +382,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -422,7 +424,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -447,7 +449,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -590,11 +592,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -735,6 +737,7 @@ View more » + Види повеќе » src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 92,97 @@ -772,14 +775,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -790,14 +801,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -985,7 +1004,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1033,7 +1052,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1049,11 +1068,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1103,7 +1122,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1125,7 +1144,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1137,10 +1156,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1153,11 +1168,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1185,11 +1200,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1206,11 +1221,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1228,7 +1243,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1248,7 +1263,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1264,7 +1279,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1457,6 +1472,7 @@ Community Integrations + Интеграции од заедницата src/app/components/about/about.component.html 191,193 @@ -1474,6 +1490,7 @@ Project Translators + Преведувачи src/app/components/about/about.component.html 301,303 @@ -1524,11 +1541,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + Multisig од src/app/components/address-labels/address-labels.component.ts 107 @@ -1560,7 +1578,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1576,7 +1594,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1602,6 +1620,7 @@ of transaction + од трансакција src/app/components/address/address.component.html 59 @@ -1610,6 +1629,7 @@ of transactions + од трансакции src/app/components/address/address.component.html 60 @@ -1656,7 +1676,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1784,6 +1804,7 @@ Group of assets + Група на асети src/app/components/assets/asset-group/asset-group.component.html 8,9 @@ -1816,6 +1837,7 @@ Featured + Промовиран src/app/components/assets/assets-nav/assets-nav.component.html 9 @@ -1823,6 +1845,7 @@ All + Сите src/app/components/assets/assets-nav/assets-nav.component.html 13 @@ -1875,7 +1898,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1888,7 +1911,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1901,7 +1924,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1910,7 +1933,7 @@ Грешка во вчитувањето на податоците за средствата. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2022,6 +2045,7 @@ At block: + Во блок: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 188 @@ -2032,11 +2056,12 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 Around block: + Околу блок: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 190 @@ -2047,7 +2072,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2058,7 +2083,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2070,15 +2095,15 @@ Indexing blocks src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2103,6 +2128,7 @@ not available + не е достапно src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2122,7 +2148,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2148,11 +2174,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2166,11 +2192,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2182,7 +2208,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2200,19 +2226,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2252,27 +2278,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2280,7 +2306,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2294,11 +2320,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2321,6 +2347,7 @@ Removed + Одстрането src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2349,6 +2376,7 @@ Added + Додадено src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2401,7 +2429,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2430,15 +2458,15 @@ Големина src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2462,7 +2490,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2474,11 +2502,11 @@ Тежина src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2486,11 +2514,22 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2505,14 +2544,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Средна провизија @@ -2522,7 +2553,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2539,11 +2570,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2561,7 +2592,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2574,7 +2605,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2599,24 +2630,40 @@ Previous Block - - Block health + + Health src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2640,7 +2687,7 @@ Оспег на провизии src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2653,7 +2700,7 @@ Базирано на просечна segwit трансакција од 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2677,49 +2724,61 @@ Transaction fee tooltip - - Subsidy + fees: - Награда + провизија: + + Subsidy + fees src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + бета + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2728,7 +2787,7 @@ Битови src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2737,7 +2796,7 @@ Merkle root src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2746,7 +2805,7 @@ Сложеност src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2775,7 +2834,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2784,20 +2843,29 @@ Хекс од заглавието на блокот src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Детали src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2818,11 +2886,11 @@ Error loading data. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2846,7 +2914,7 @@ Why is this block empty? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2891,18 +2959,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward @@ -2964,7 +3020,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3190,7 +3246,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3203,7 +3259,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3216,7 +3272,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3230,7 +3286,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3470,7 +3526,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3494,7 +3550,7 @@ Lightning Explorer src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3502,20 +3558,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Документација src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3592,6 +3640,32 @@ dashboard.adjustments + + Broadcast Transaction + Емитирај ја Трансакцијата + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) @@ -3652,7 +3726,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3680,11 +3754,23 @@ mining.rank + + Avg Health + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3692,7 +3778,7 @@ All miners src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3700,7 +3786,7 @@ Pools Luck (1w) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3708,7 +3794,7 @@ Pools Count (1w) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3716,7 +3802,7 @@ Mining Pools src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3930,24 +4016,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Емитирај ја Трансакцијата - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex @@ -3956,7 +4024,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4071,6 +4139,70 @@ search-form.search-title + + Bitcoin Block Height + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool прикажан по vBytes (sat/vByte) @@ -4353,7 +4485,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4363,7 +4495,7 @@ Пратена src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4397,7 +4529,7 @@ Потврдена src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4407,7 +4539,7 @@ За неколку часа (или повеќе) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4417,11 +4549,11 @@ Наследник src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4431,7 +4563,7 @@ Претходник src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4440,11 +4572,11 @@ Flow src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4453,7 +4585,7 @@ Hide diagram src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4461,7 +4593,7 @@ Show more src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4477,7 +4609,7 @@ Show less src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4489,7 +4621,7 @@ Show diagram src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4498,7 +4630,7 @@ Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4507,7 +4639,7 @@ Трансакцијата не е пронајдена src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4516,7 +4648,7 @@ Се чека да се појави во mempool-от... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4525,7 +4657,7 @@ Ефективна профизија src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4672,7 +4804,7 @@ Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4680,7 +4812,7 @@ remaining src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4918,21 +5050,12 @@ dashboard.latest-transactions - - USD - во USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Минимум src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -4942,7 +5065,7 @@ Отфрлање src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -4952,7 +5075,7 @@ Искористена меморија src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -4962,15 +5085,23 @@ L-BTC во циркулација src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -4979,11 +5110,11 @@ Endpoint src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -4992,11 +5123,11 @@ Опис src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5004,7 +5135,7 @@ Објавување: action: 'want', data: ['blocks', ...] за да специфираш што да биде објавено. Достапни полиња: blocks, mempool-blocks, live-2h-chart, и stats.Објави трансакции поврзани со адресса: 'track-address': '3PbJ...bF9B' за да ги добиеш сите нови трансакции што ја содржат таа адреса како влез или излез. Враќа низа од транссакции. address-transactions за нови трансакции во mempool-от, и block-transactions за поврдени трансакции во најновиот блок. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5166,7 +5297,7 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels @@ -5208,7 +5339,7 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -5224,7 +5355,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5244,7 +5375,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5272,7 +5403,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5280,7 +5411,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5384,7 +5515,7 @@ src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date @@ -5419,6 +5550,27 @@ 37 + + Mutually closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open @@ -5431,7 +5583,7 @@ No channels to display src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5439,7 +5591,7 @@ Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5475,7 +5627,7 @@ Status src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5483,7 +5635,7 @@ Channel ID src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5491,11 +5643,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5539,6 +5691,22 @@ shared.sats + + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity @@ -5655,11 +5823,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5727,11 +5895,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5887,6 +6055,28 @@ lightning.node-fee-distribution + + Outgoing Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week @@ -5895,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6123,7 +6313,7 @@ No geolocation data available src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6285,6 +6475,7 @@ Tor Capacity + Капацитет на Tor src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6379,6 +6570,7 @@ Active nodes + Активни нодови src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6418,6 +6610,7 @@ Oldest nodes + Најстари нодови src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6426,6 +6619,7 @@ Top lightning nodes + Топ lightning нодови src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6433,6 +6627,7 @@ Indexing in progress + Индексирањето е во прогрес src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 diff --git a/frontend/src/locale/messages.vi.xlf b/frontend/src/locale/messages.vi.xlf index 4af52e030..41e5e9281 100644 --- a/frontend/src/locale/messages.vi.xlf +++ b/frontend/src/locale/messages.vi.xlf @@ -11,6 +11,7 @@ Slide of + Slide of node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,14 +777,22 @@ src/app/components/about/about.component.html 385,389 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 + src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1530,7 +1544,7 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 @@ -1567,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 18,21 src/app/components/asset-circulation/asset-circulation.component.html @@ -1583,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1666,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1888,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1901,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1914,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1923,7 +1937,7 @@ Lỗi khi tải dữ liệu tài sản. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2047,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2063,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2075,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2088,15 +2102,15 @@ Lập chỉ mục khối src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2121,6 +2135,7 @@ not available + không có sẵn src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2140,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2166,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2184,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2200,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2218,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2270,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2298,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2312,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + Trạng thái kiểm tra src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2331,6 +2347,7 @@ Match + Khớp src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2339,6 +2356,7 @@ Removed + Đã xoá src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2347,6 +2365,7 @@ Marginal fee rate + Tỷ lệ phí cận biên src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2359,6 +2378,7 @@ Recently broadcasted + Truyền phát gần đây src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2424,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2454,15 +2474,15 @@ Kích thước src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2486,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2498,11 +2518,11 @@ Khối lượng src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2510,11 +2530,23 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Kích thước mỗi trọng lượng + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2530,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Phí trung bình @@ -2548,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2565,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2587,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2600,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2625,25 +2648,42 @@ Previous Block - - Block health + + Health + Sức khỏe src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown không xác định src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 + + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 + src/app/lightning/node/node.component.html 52,55 @@ -2667,7 +2707,7 @@ Khoảng phí src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2680,7 +2720,7 @@ Dựa trên giao dịch segwit gốc trung bình là 140 vBytes src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2704,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - Trợ cấp + phí: + + Subsidy + fees + Trợ cấp + phí src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + Dự kiến src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + bản beta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + Thực tế src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + Khối dự kiến src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + Khối thực tế src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2755,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2764,7 +2821,7 @@ Merkle root src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2773,7 +2830,7 @@ Độ khó src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2802,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2811,20 +2868,30 @@ Khối tiêu đề Hex src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + Kiểm tra + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details Chi tiết src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html @@ -2846,11 +2913,11 @@ Lỗi trong lúc tải dữ liệu. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html @@ -2872,9 +2939,10 @@ Why is this block empty? + Tại sao khối này trống? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2920,18 +2988,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward Phần thưởng @@ -2995,7 +3051,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3234,7 +3290,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3247,7 +3303,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3260,7 +3316,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3274,7 +3330,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3531,7 +3587,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3557,7 +3613,7 @@ Trình duyệt Lightning src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3565,21 +3621,12 @@ master-page.lightning - - beta - bản beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation Tài liệu src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3659,6 +3706,32 @@ dashboard.adjustments + + Broadcast Transaction + Truyền tải Giao dịch + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Pools luck (1 tuần) @@ -3726,7 +3799,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3756,12 +3829,25 @@ mining.rank + + Avg Health + Sức khỏe trung bình + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Các khối trống src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3770,7 +3856,7 @@ Tất cả thợ đào src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3779,7 +3865,7 @@ Pool Luck (1 tuần) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3788,7 +3874,7 @@ Số lượng Pool (1 tuần) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3797,7 +3883,7 @@ Pool đào src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4024,24 +4110,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Truyền tải Giao dịch - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Hex giao dịch @@ -4051,7 +4119,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4083,6 +4151,7 @@ Avg Block Fees + Phí khối trung bình src/app/components/reward-stats/reward-stats.component.html 17 @@ -4095,6 +4164,7 @@ Average fees per block in the past 144 blocks + Phí trung bình cho mỗi khối trong 144 khối vừa qua src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4103,6 +4173,7 @@ BTC/block + BTC/khối src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4112,6 +4183,7 @@ Avg Tx Fee + Phí giao dịch trung bình src/app/components/reward-stats/reward-stats.component.html 30 @@ -4172,6 +4244,78 @@ search-form.search-title + + Bitcoin Block Height + Chiều cao khối Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Giao dịch Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Địa chỉ Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Khối Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Địa chỉ Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Nút Lightning + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Kênh Lightning + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Tới &quot; &quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool theo vBytes (sat / vByte) @@ -4429,6 +4573,7 @@ This transaction replaced: + Giao dịch này đã thay thế: src/app/components/transaction/transaction.component.html 10,12 @@ -4438,6 +4583,7 @@ Replaced + Đã thay thế src/app/components/transaction/transaction.component.html 36,39 @@ -4454,7 +4600,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4464,7 +4610,7 @@ Lần đầu thấy src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html @@ -4498,7 +4644,7 @@ Thời gian dự kiến src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4508,7 +4654,7 @@ Trong vài giờ (hoặc hơn) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4518,11 +4664,11 @@ Descendant src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4532,7 +4678,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4542,11 +4688,11 @@ lưu lượng src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4556,7 +4702,7 @@ Ẩn sơ đồ src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4565,7 +4711,7 @@ Hiển thị nhiều hơn src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4582,7 +4728,7 @@ Hiển thị ít hơn src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4595,7 +4741,7 @@ Hiển thị sơ đồ src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4604,7 +4750,7 @@ Thời gian khóa src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4613,7 +4759,7 @@ Không tìm thấy giao dịch. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4622,7 +4768,7 @@ Đang đợi nó xuất hiện trong mempool ... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4631,7 +4777,7 @@ Tỷ lệ phí hiệu quả src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4777,17 +4923,19 @@ Show more inputs to reveal fee data + Hiển thị thêm đầu vào để tiết lộ dữ liệu phí src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + còn lại src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4935,6 +5083,7 @@ This transaction does not use Taproot + Giao dịch này không sử dụng Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -5037,21 +5186,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Phí tối thiểu src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5061,7 +5201,7 @@ Thanh lọc src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5071,7 +5211,7 @@ Sử dụng bộ nhớ src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5081,16 +5221,25 @@ L-BTC đang lưu hành src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space chỉ cung cấp dữ liệu về mạng Bitcoin. Trang không thể giúp bạn lấy tiền, xác nhận giao dịch của bạn nhanh hơn, v.v. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service Dịch vụ REST API src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5099,11 +5248,11 @@ Điểm cuối src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5112,11 +5261,11 @@ Sự miêu tả src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5124,7 +5273,7 @@ Push mặc định: hành động: 'want', dữ liệu: ['blocks', ...] để thể hiện những gì bạn muốn đẩy. Có sẵn: khối , mempool-khối , live-2h-chart c195a641ez0c195ez0. Đẩy các giao dịch liên quan đến địa chỉ: 'track-address': '3PbJ ... bF9B' a0c95ez0 đầu vào để nhận các giao dịch đầu vào a0c95ez0 a0c95ez0 đó để nhận địa chỉ đầu vào là all95ez0. Trả về một mảng các giao dịch. địa chỉ-giao dịch cho các giao dịch mempool mới và giao dịch khối cho các giao dịch được xác nhận khối mới. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5297,12 +5446,13 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + Số dư bắt đầu src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5312,6 +5462,7 @@ Closing balance + Số dư kết thúc src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5341,7 +5492,7 @@ src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -5358,7 +5509,7 @@ src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5379,7 +5530,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5409,7 +5560,7 @@ src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5417,7 +5568,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5525,12 +5676,13 @@ src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + Đóng bởi src/app/lightning/channel/channel.component.html 52,54 @@ -5563,6 +5715,30 @@ 37 + + Mutually closed + Đóng lẫn nhau + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Buộc đóng + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Bắt buộc đóng với khoản phạt + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open Mở @@ -5577,7 +5753,7 @@ Không có kênh nào để hiển thị src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5586,7 +5762,7 @@ Tên riêng src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5623,7 +5799,7 @@ Trạng thái src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5632,7 +5808,7 @@ ID kênh src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5641,11 +5817,11 @@ satoshi src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5689,6 +5865,24 @@ shared.sats + + avg + trung bình + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + trung vị + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Công suất trung bình @@ -5817,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5891,11 +6085,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -6052,12 +6246,37 @@ Fee distribution + Phân bổ phí src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Phí đầu ra + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Phí đầu vào + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Phần trăm thay đổi trong tuần trước @@ -6067,11 +6286,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6147,6 +6366,7 @@ Avg channel distance + Khoảng cách kênh trung bình src/app/lightning/node/node.component.html 56,57 @@ -6186,6 +6406,7 @@ Liquidity ad + Quảng cáo thanh khoản src/app/lightning/node/node.component.html 138,141 @@ -6194,6 +6415,7 @@ Lease fee rate + Giá thuê src/app/lightning/node/node.component.html 144,147 @@ -6203,6 +6425,7 @@ Lease base fee + Phí thuê cơ sở src/app/lightning/node/node.component.html 152,154 @@ -6211,6 +6434,7 @@ Funding weight + Trọng lượng nguồn quỹ src/app/lightning/node/node.component.html 158,159 @@ -6219,6 +6443,7 @@ Channel fee rate + Phí kênh src/app/lightning/node/node.component.html 168,171 @@ -6228,6 +6453,7 @@ Channel base fee + Phí kênh cơ sở src/app/lightning/node/node.component.html 176,178 @@ -6236,6 +6462,7 @@ Compact lease + Thuê gói nhỏ src/app/lightning/node/node.component.html 188,190 @@ -6244,6 +6471,7 @@ TLV extension records + Hồ sơ gia hạn TLV src/app/lightning/node/node.component.html 199,202 @@ -6310,7 +6538,7 @@ Không có sẵn dữ liệu vị trí địa lý src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6324,6 +6552,7 @@ Indexing in progress + Đang lập chỉ mục src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6591,6 +6820,7 @@ Active nodes + Các nút hoạt động src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 From 2309a769cd470456ce7802e91d1013cbf00bdc8c Mon Sep 17 00:00:00 2001 From: Mononaut Date: Wed, 1 Mar 2023 11:30:33 -0600 Subject: [PATCH 0454/1466] Don't try to fetch cpfp if database disabled --- backend/src/api/bitcoin/bitcoin.routes.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 78d027663..2fc497650 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -217,7 +217,15 @@ class BitcoinRoutes { res.json(cpfpInfo); return; } else { - const cpfpInfo = await transactionRepository.$getCpfpInfo(req.params.txId); + let cpfpInfo; + if (config.DATABASE.ENABLED) { + cpfpInfo = await transactionRepository.$getCpfpInfo(req.params.txId); + } else { + res.json({ + ancestors: [] + }); + return; + } if (cpfpInfo) { res.json(cpfpInfo); return; From be4bd691eec804092b263ec51cb7377dce30b12e Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 2 Mar 2023 10:08:40 +0900 Subject: [PATCH 0455/1466] Remove useless code --- backend/src/api/blocks.ts | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 12eb3b693..aa33f1ff7 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -748,30 +748,15 @@ class Blocks { return returnBlocks; } - // Check if block height exist in local cache to skip the hash lookup - const blockByHeight = this.getBlocks().find((b) => b.height === currentHeight); - let startFromHash: string | null = null; - if (blockByHeight) { - startFromHash = blockByHeight.id; - } else if (!Common.indexingEnabled()) { - startFromHash = await bitcoinApi.$getBlockHash(currentHeight); - } - - let nextHash = startFromHash; for (let i = 0; i < limit && currentHeight >= 0; i++) { let block = this.getBlocks().find((b) => b.height === currentHeight); if (block) { // Using the memory cache (find by height) returnBlocks.push(block); - } else if (Common.indexingEnabled()) { + } else { // Using indexing (find by height, index on the fly, save in database) block = await this.$indexBlock(currentHeight); returnBlocks.push(block); - } else if (nextHash !== null) { - // Without indexing, query block on the fly using bitoin backend, follow previous hash links - block = await this.$indexBlock(currentHeight); - nextHash = block.previousblockhash; - returnBlocks.push(block); } currentHeight--; } From 5129116fe452f68b4d23a04abe68ea6ec968718a Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 2 Mar 2023 10:45:14 +0900 Subject: [PATCH 0456/1466] Don't run CI on "review_requested" event --- .github/workflows/cypress.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 8c720917e..bc66678d4 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -4,7 +4,7 @@ on: push: branches: [master] pull_request: - types: [opened, review_requested, synchronize] + types: [opened, synchronize] jobs: cypress: From ec0d8b7c485ce923ccea9393d9099b986a462aca Mon Sep 17 00:00:00 2001 From: wiz Date: Thu, 2 Mar 2023 19:30:02 +0900 Subject: [PATCH 0457/1466] ops: Remove fork repos from upgrade script --- production/mempool-build-all | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/production/mempool-build-all b/production/mempool-build-all index aa764da7d..b45c0edc6 100755 --- a/production/mempool-build-all +++ b/production/mempool-build-all @@ -38,7 +38,7 @@ update_repo() cd "$HOME/${site}" || exit 1 git fetch origin || exit 1 - for remote in origin hunicus mononaut;do + for remote in origin;do git remote add "${remote}" "https://github.com/${remote}/mempool" >/dev/null 2>&1 git fetch "${remote}" || exit 1 done From 7b01286ed270b7646e591e02f40ad4e755e3d658 Mon Sep 17 00:00:00 2001 From: softsimon Date: Thu, 2 Mar 2023 21:50:09 +0900 Subject: [PATCH 0458/1466] Run the go to anchor whenever data is loaded --- .../app/components/about/about.component.ts | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/frontend/src/app/components/about/about.component.ts b/frontend/src/app/components/about/about.component.ts index 33c6ac5a2..0f71645d6 100644 --- a/frontend/src/app/components/about/about.component.ts +++ b/frontend/src/app/components/about/about.component.ts @@ -6,8 +6,9 @@ import { Observable } from 'rxjs'; import { ApiService } from '../../services/api.service'; import { IBackendInfo } from '../../interfaces/websocket.interface'; import { Router, ActivatedRoute } from '@angular/router'; -import { map } from 'rxjs/operators'; +import { map, tap } from 'rxjs/operators'; import { ITranslators } from '../../interfaces/node-api.interface'; +import { DOCUMENT } from '@angular/common'; @Component({ selector: 'app-about', @@ -33,6 +34,7 @@ export class AboutComponent implements OnInit { private router: Router, private route: ActivatedRoute, @Inject(LOCALE_ID) public locale: string, + @Inject(DOCUMENT) private document: Document, ) { } ngOnInit() { @@ -40,17 +42,21 @@ export class AboutComponent implements OnInit { this.seoService.setTitle($localize`:@@004b222ff9ef9dd4771b777950ca1d0e4cd4348a:About`); this.websocketService.want(['blocks']); - this.sponsors$ = this.apiService.getDonation$(); + this.sponsors$ = this.apiService.getDonation$() + .pipe( + tap(() => this.goToAnchor()) + ); this.translators$ = this.apiService.getTranslators$() .pipe( map((translators) => { for (const t in translators) { if (translators[t] === '') { - delete translators[t] + delete translators[t]; } } return translators; - }) + }), + tap(() => this.goToAnchor()) ); this.allContributors$ = this.apiService.getContributor$().pipe( map((contributors) => { @@ -58,20 +64,24 @@ export class AboutComponent implements OnInit { regular: contributors.filter((user) => !user.core_constributor), core: contributors.filter((user) => user.core_constributor), }; - }) + }), + tap(() => this.goToAnchor()) ); } - ngAfterViewInit() { - const that = this; - setTimeout( () => { - if( this.route.snapshot.fragment ) { - if (document.getElementById( this.route.snapshot.fragment )) { - document.getElementById( this.route.snapshot.fragment ).scrollIntoView({behavior: "smooth", block: "center"}); - } + ngAfterViewInit() { + this.goToAnchor(); + } + + goToAnchor() { + setTimeout(() => { + if (this.route.snapshot.fragment) { + if (this.document.getElementById(this.route.snapshot.fragment)) { + this.document.getElementById(this.route.snapshot.fragment).scrollIntoView({behavior: 'smooth'}); } - }, 1 ); - } + } + }, 1); + } sponsor(): void { if (this.officialMempoolSpace && this.stateService.env.BASE_MODULE === 'mempool') { From a54684ad7491c01d98916b91da2e0c8c6c8c059a Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 2 Mar 2023 07:51:30 -0500 Subject: [PATCH 0459/1466] Add promo video to about page --- .../app/components/about/about.component.html | 23 +++++++++--------- .../app/components/about/about.component.scss | 9 +++++++ frontend/src/resources/mempool-promo.jpg | Bin 0 -> 47149 bytes frontend/sync-assets.js | 10 ++++++-- 4 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 frontend/src/resources/mempool-promo.jpg diff --git a/frontend/src/app/components/about/about.component.html b/frontend/src/app/components/about/about.component.html index 03323b6ed..05167f7bb 100644 --- a/frontend/src/app/components/about/about.component.html +++ b/frontend/src/app/components/about/about.component.html @@ -13,17 +13,7 @@

    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.

    - +

    Enterprise Sponsors 🚀

    @@ -383,6 +373,17 @@ - +

    Enterprise Sponsors 🚀

    diff --git a/frontend/src/app/components/about/about.component.scss b/frontend/src/app/components/about/about.component.scss index d50c09027..694c113f2 100644 --- a/frontend/src/app/components/about/about.component.scss +++ b/frontend/src/app/components/about/about.component.scss @@ -35,7 +35,9 @@ } video { - margin-top: 48px; + width: 640px; + max-width: 90%; + margin-top: 30px; } .social-icons { From bc2d8dd7c3ab912ec886b896e8bb148f5e907862 Mon Sep 17 00:00:00 2001 From: wiz Date: Thu, 2 Mar 2023 22:42:56 +0900 Subject: [PATCH 0461/1466] Add mempool promo video (via YouTube) in README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index cde9b5adb..6e3652a78 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # The Mempool Open Source Project™ [![mempool](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/ry4br7/master&style=flat-square)](https://dashboard.cypress.io/projects/ry4br7/runs) +[![mempool promo video](https://raw.githubusercontent.com/mempool/mempool-promo/master/promo.jpg)](https://youtu.be/hFIF61INmQs) + 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. From 210843916e9c2292680cbbf5837abea47e3434e5 Mon Sep 17 00:00:00 2001 From: wiz Date: Thu, 2 Mar 2023 22:45:51 +0900 Subject: [PATCH 0462/1466] Add mempool promo video (via GitHub) in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e3652a78..d2f9f9382 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The Mempool Open Source Project™ [![mempool](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/ry4br7/master&style=flat-square)](https://dashboard.cypress.io/projects/ry4br7/runs) -[![mempool promo video](https://raw.githubusercontent.com/mempool/mempool-promo/master/promo.jpg)](https://youtu.be/hFIF61INmQs) +https://user-images.githubusercontent.com/232186/222445818-234aa6c9-c233-4c52-b3f0-e32b8232893b.mp4 Mempool is the fully-featured mempool visualizer, explorer, and API service running at [mempool.space](https://mempool.space/). From 4f689885e63bc93e7f8e6d04ef468e596a47c184 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 2 Mar 2023 23:02:35 +0900 Subject: [PATCH 0463/1466] Remove margin from about video --- frontend/src/app/components/about/about.component.scss | 2 +- frontend/sync-assets.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/components/about/about.component.scss b/frontend/src/app/components/about/about.component.scss index 694c113f2..35df3fc46 100644 --- a/frontend/src/app/components/about/about.component.scss +++ b/frontend/src/app/components/about/about.component.scss @@ -37,7 +37,7 @@ video { width: 640px; max-width: 90%; - margin-top: 30px; + margin-top: 0; } .social-icons { diff --git a/frontend/sync-assets.js b/frontend/sync-assets.js index c1941a771..a39d913c8 100644 --- a/frontend/sync-assets.js +++ b/frontend/sync-assets.js @@ -92,8 +92,9 @@ console.log('Downloading testnet assets'); download(PATH + 'assets-testnet.json', testnetAssetsJsonUrl); console.log('Downloading testnet assets minimal'); download(PATH + 'assets-testnet.minimal.json', testnetAssetsMinimalJsonUrl); -console.log('Downloading promo video'); -if (!fs.existsSync(promoVideo)) +if (!fs.existsSync(promoVideo)) { + console.log('Downloading promo video'); download(promoVideo, promoVideoUrl); +} console.log('Downloading mining pool logos'); downloadMiningPoolLogos(); From 89d9c1d78d354c00da9903f9474e6231e53bf1d4 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 2 Mar 2023 23:38:47 +0900 Subject: [PATCH 0464/1466] Only show electrum tab on desktop --- frontend/src/app/docs/docs/docs.component.html | 2 +- frontend/src/app/docs/docs/docs.component.scss | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/docs/docs/docs.component.html b/frontend/src/app/docs/docs/docs.component.html index b0c51ad16..cf3bdb070 100644 --- a/frontend/src/app/docs/docs/docs.component.html +++ b/frontend/src/app/docs/docs/docs.component.html @@ -32,7 +32,7 @@ -
  • +
  • Amount
    Fee

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    +

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    +

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    diff --git a/frontend/src/app/docs/api-docs/api-docs.component.scss b/frontend/src/app/docs/api-docs/api-docs.component.scss index 92e78bc55..180f6830d 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.scss +++ b/frontend/src/app/docs/api-docs/api-docs.component.scss @@ -274,6 +274,11 @@ h3 { margin: 24px 0; } +#disclaimer > div svg { + display: block; + margin: 2px auto 16px; +} + #disclaimer svg { width: 50px; height: auto; @@ -332,6 +337,10 @@ h3 { .doc-welcome-note { font-size: 0.85rem; } + + #disclaimer table { + display: none; + } } @media (min-width: 992px) { From 7b24b124c23170cf99661e4a04a204c1fa57bc48 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Sat, 4 Mar 2023 03:31:52 -0500 Subject: [PATCH 0489/1466] Use svg component for warning svg --- .../svg-images/svg-images.component.html | 8 +++++++- .../svg-images/svg-images.component.ts | 1 + .../app/docs/api-docs/api-docs.component.html | 4 ++-- .../app/docs/api-docs/api-docs.component.scss | 17 ++++++++--------- .../src/app/docs/api-docs/api-docs.component.ts | 2 ++ 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/components/svg-images/svg-images.component.html b/frontend/src/app/components/svg-images/svg-images.component.html index f51f3918e..c4d5296bd 100644 --- a/frontend/src/app/components/svg-images/svg-images.component.html +++ b/frontend/src/app/components/svg-images/svg-images.component.html @@ -25,6 +25,12 @@ + + + + + + @@ -104,4 +110,4 @@ -
    \ No newline at end of file + diff --git a/frontend/src/app/components/svg-images/svg-images.component.ts b/frontend/src/app/components/svg-images/svg-images.component.ts index 287243202..6efba1023 100644 --- a/frontend/src/app/components/svg-images/svg-images.component.ts +++ b/frontend/src/app/components/svg-images/svg-images.component.ts @@ -13,4 +13,5 @@ export class SvgImagesComponent { @Input() width: string; @Input() height: string; @Input() viewBox: string; + @Input() fill: string; } diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 1e5494650..f5bf519bf 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -10,8 +10,8 @@
    -

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    -

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    +

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    +

    mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc.

    For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).

    diff --git a/frontend/src/app/docs/api-docs/api-docs.component.scss b/frontend/src/app/docs/api-docs/api-docs.component.scss index 180f6830d..8e4c0c7a9 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.scss +++ b/frontend/src/app/docs/api-docs/api-docs.component.scss @@ -274,15 +274,8 @@ h3 { margin: 24px 0; } -#disclaimer > div svg { - display: block; - margin: 2px auto 16px; -} - -#disclaimer svg { - width: 50px; - height: auto; - margin-right: 32px; +.disclaimer-warning { + margin-right: 50px; } #disclaimer p:last-child { @@ -299,6 +292,12 @@ h3 { display: none; } + .disclaimer-warning { + display: block; + margin: 2px auto 16px; + text-align: center; + } + .doc-content { width: 100%; float: unset; diff --git a/frontend/src/app/docs/api-docs/api-docs.component.ts b/frontend/src/app/docs/api-docs/api-docs.component.ts index 1d5eec453..62a0fadba 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.ts +++ b/frontend/src/app/docs/api-docs/api-docs.component.ts @@ -29,6 +29,7 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { screenWidth: number; officialMempoolInstance: boolean; auditEnabled: boolean; + mobileViewport: boolean = false; @ViewChildren(FaqTemplateDirective) faqTemplates: QueryList; dict = {}; @@ -43,6 +44,7 @@ export class ApiDocsComponent implements OnInit, AfterViewInit { this.faqTemplates.forEach((x) => this.dict[x.type] = x.template); } this.desktopDocsNavPosition = ( window.pageYOffset > 182 ) ? "fixed" : "relative"; + this.mobileViewport = window.innerWidth <= 992; } ngAfterViewInit() { From f968faeaf979fe1f5b96fb6e944f5984d116c400 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 2 Mar 2023 02:39:59 -0500 Subject: [PATCH 0490/1466] Specify manual deployment support for enterprise sponsors [faq] --- frontend/src/app/docs/api-docs/api-docs.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 8c8d6ac36..2e9a12687 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -267,7 +267,7 @@ - You can manually install Mempool on your own Linux server, but this requires advanced sysadmin skills since you will be manually configuring everything. We do not provide support for manual deployments. + You can manually install Mempool on your own Linux server, but this requires advanced sysadmin skills since you will be manually configuring everything. We only provide support for manual deployments to enterprise sponsors. From e7ad857cc94bbfef3c2d55c94d0cb04eb200f95b Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Thu, 2 Mar 2023 03:12:56 -0500 Subject: [PATCH 0491/1466] Specify manual deployment support for enterprise sponsors [readme] --- backend/README.md | 2 +- production/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/README.md b/backend/README.md index be85d25af..ee934a14f 100644 --- a/backend/README.md +++ b/backend/README.md @@ -2,7 +2,7 @@ These instructions are mostly intended for developers. -If you choose to use these instructions for a production setup, be aware that you will still probably need to do additional configuration for your specific OS, environment, use-case, etc. We do our best here to provide a good starting point, but only proceed if you know what you're doing. Mempool does not provide support for custom setups. +If you choose to use these instructions for a production setup, be aware that you will still probably need to do additional configuration for your specific OS, environment, use-case, etc. We do our best here to provide a good starting point, but only proceed if you know what you're doing. Mempool only provides support for custom setups to [enterprise sponsors](https://mempool.space/enterprise). See other ways to set up Mempool on [the main README](/../../#installation-methods). diff --git a/production/README.md b/production/README.md index 91b087ffa..87b8bb0a1 100644 --- a/production/README.md +++ b/production/README.md @@ -2,7 +2,7 @@ These instructions are for setting up a serious production Mempool website for Bitcoin (mainnet, testnet, signet), Liquid (mainnet, testnet), and Bisq. -Again, this setup is no joke—home users should use [one of the other installation methods](../#installation-methods). +Again, this setup is no joke—home users should use [one of the other installation methods](../#installation-methods). Support is only provided to [enterprise sponsors](https://mempool.space/enterprise). ### Server Hardware From f493da4eac1fafd867cd08fd46675bb22d106a36 Mon Sep 17 00:00:00 2001 From: hunicus <93150691+hunicus@users.noreply.github.com> Date: Sat, 4 Mar 2023 04:07:23 -0500 Subject: [PATCH 0492/1466] Generalize faq from linux to any server --- frontend/src/app/docs/api-docs/api-docs-data.ts | 4 ++-- frontend/src/app/docs/api-docs/api-docs.component.html | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/docs/api-docs/api-docs-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts index 62d031613..9c5502bf1 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -8921,8 +8921,8 @@ export const faqData = [ type: "endpoint", category: "self-hosting", showConditions: bitcoinNetworks, - fragment: "host-my-own-instance-linux-server", - title: "How can I host my own instance on a Linux server?", + fragment: "host-my-own-instance-server", + title: "How can I host a Mempool instance on my own server?", }, { type: "endpoint", diff --git a/frontend/src/app/docs/api-docs/api-docs.component.html b/frontend/src/app/docs/api-docs/api-docs.component.html index 2e9a12687..313ff0b52 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -266,8 +266,9 @@ We support one-click installation on a number of Raspberry Pi full-node distros including Umbrel, RaspiBlitz, MyNode, RoninDojo, and Start9's Embassy. - - You can manually install Mempool on your own Linux server, but this requires advanced sysadmin skills since you will be manually configuring everything. We only provide support for manual deployments to enterprise sponsors. + +

    You can manually install Mempool on your own server, but this requires advanced sysadmin skills since you will be manually configuring everything. You could also use our Docker images.

    In any case, we only provide support for manual deployments to enterprise sponsors.

    +

    For casual users, we strongly suggest installing Mempool using one of the 1-click install methods.

    From 4e39c27c7549d9cba5e2dcf9ce0e0db581202ed5 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sat, 4 Mar 2023 18:48:16 +0900 Subject: [PATCH 0493/1466] Adding 4 year button to mempool graph fixes #3218 --- backend/src/api/common.ts | 1 + backend/src/api/mining/mining.ts | 1 + backend/src/api/statistics/statistics-api.ts | 11 +++++++++++ backend/src/api/statistics/statistics.routes.ts | 6 +++++- .../components/statistics/statistics.component.html | 3 +++ .../app/components/statistics/statistics.component.ts | 9 ++++++--- frontend/src/app/services/api.service.ts | 4 ++++ frontend/src/app/shared/graphs.utils.ts | 3 +++ production/nginx-cache-warmer | 1 + 9 files changed, 35 insertions(+), 4 deletions(-) diff --git a/backend/src/api/common.ts b/backend/src/api/common.ts index ad4eccabe..f762cfc2c 100644 --- a/backend/src/api/common.ts +++ b/backend/src/api/common.ts @@ -175,6 +175,7 @@ export class Common { case '1y': return '1 YEAR'; case '2y': return '2 YEAR'; case '3y': return '3 YEAR'; + case '4y': return '4 YEAR'; default: return null; } } diff --git a/backend/src/api/mining/mining.ts b/backend/src/api/mining/mining.ts index 78d313b48..b51a595f6 100644 --- a/backend/src/api/mining/mining.ts +++ b/backend/src/api/mining/mining.ts @@ -568,6 +568,7 @@ class Mining { private getTimeRange(interval: string | null, scale = 1): number { switch (interval) { + case '4y': return 43200 * scale; // 12h case '3y': return 43200 * scale; // 12h case '2y': return 28800 * scale; // 8h case '1y': return 28800 * scale; // 8h diff --git a/backend/src/api/statistics/statistics-api.ts b/backend/src/api/statistics/statistics-api.ts index 56a868f8f..1e8b0b7bb 100644 --- a/backend/src/api/statistics/statistics-api.ts +++ b/backend/src/api/statistics/statistics-api.ts @@ -375,6 +375,17 @@ class StatisticsApi { } } + public async $list4Y(): Promise { + try { + const query = this.getQueryForDays(43200, '4 YEAR'); // 12h interval + const [rows] = await DB.query({ sql: query, timeout: this.queryTimeout }); + return this.mapStatisticToOptimizedStatistic(rows as Statistic[]); + } catch (e) { + logger.err('$list4Y() error' + (e instanceof Error ? e.message : e)); + return []; + } + } + private mapStatisticToOptimizedStatistic(statistic: Statistic[]): OptimizedStatistic[] { return statistic.map((s) => { return { diff --git a/backend/src/api/statistics/statistics.routes.ts b/backend/src/api/statistics/statistics.routes.ts index 4b1b91ce9..2a5871dd6 100644 --- a/backend/src/api/statistics/statistics.routes.ts +++ b/backend/src/api/statistics/statistics.routes.ts @@ -14,10 +14,11 @@ class StatisticsRoutes { .get(config.MEMPOOL.API_URL_PREFIX + 'statistics/1y', this.$getStatisticsByTime.bind(this, '1y')) .get(config.MEMPOOL.API_URL_PREFIX + 'statistics/2y', this.$getStatisticsByTime.bind(this, '2y')) .get(config.MEMPOOL.API_URL_PREFIX + 'statistics/3y', this.$getStatisticsByTime.bind(this, '3y')) + .get(config.MEMPOOL.API_URL_PREFIX + 'statistics/4y', this.$getStatisticsByTime.bind(this, '4y')) ; } - private async $getStatisticsByTime(time: '2h' | '24h' | '1w' | '1m' | '3m' | '6m' | '1y' | '2y' | '3y', req: Request, res: Response) { + private async $getStatisticsByTime(time: '2h' | '24h' | '1w' | '1m' | '3m' | '6m' | '1y' | '2y' | '3y' | '4y', req: Request, res: Response) { res.header('Pragma', 'public'); res.header('Cache-control', 'public'); res.setHeader('Expires', new Date(Date.now() + 1000 * 300).toUTCString()); @@ -54,6 +55,9 @@ class StatisticsRoutes { case '3y': result = await statisticsApi.$list3Y(); break; + case '4y': + result = await statisticsApi.$list4Y(); + break; default: result = await statisticsApi.$list2H(); } diff --git a/frontend/src/app/components/statistics/statistics.component.html b/frontend/src/app/components/statistics/statistics.component.html index 4366aa5b2..30738f591 100644 --- a/frontend/src/app/components/statistics/statistics.component.html +++ b/frontend/src/app/components/statistics/statistics.component.html @@ -49,6 +49,9 @@ +
    diff --git a/frontend/src/app/components/statistics/statistics.component.ts b/frontend/src/app/components/statistics/statistics.component.ts index 13f3df0bc..263906a8e 100644 --- a/frontend/src/app/components/statistics/statistics.component.ts +++ b/frontend/src/app/components/statistics/statistics.component.ts @@ -70,7 +70,7 @@ export class StatisticsComponent implements OnInit { this.route .fragment .subscribe((fragment) => { - if (['2h', '24h', '1w', '1m', '3m', '6m', '1y', '2y', '3y'].indexOf(fragment) > -1) { + if (['2h', '24h', '1w', '1m', '3m', '6m', '1y', '2y', '3y', '4y'].indexOf(fragment) > -1) { this.radioGroupForm.controls.dateSpan.setValue(fragment, { emitEvent: false }); } }); @@ -109,7 +109,10 @@ export class StatisticsComponent implements OnInit { if (this.radioGroupForm.controls.dateSpan.value === '2y') { return this.apiService.list2YStatistics$(); } - return this.apiService.list3YStatistics$(); + if (this.radioGroupForm.controls.dateSpan.value === '3y') { + return this.apiService.list3YStatistics$(); + } + return this.apiService.list4YStatistics$(); }) ) .subscribe((mempoolStats: any) => { @@ -181,7 +184,7 @@ export class StatisticsComponent implements OnInit { } let capRatio = 10; - if (['1m', '3m', '6m', '1y', '2y', '3y'].includes(this.graphWindowPreference)) { + if (['1m', '3m', '6m', '1y', '2y', '3y', '4y'].includes(this.graphWindowPreference)) { capRatio = 4; } diff --git a/frontend/src/app/services/api.service.ts b/frontend/src/app/services/api.service.ts index 840fd5070..2b4e460a2 100644 --- a/frontend/src/app/services/api.service.ts +++ b/frontend/src/app/services/api.service.ts @@ -68,6 +68,10 @@ export class ApiService { return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/statistics/3y'); } + list4YStatistics$(): Observable { + return this.httpClient.get(this.apiBaseUrl + this.apiBasePath + '/api/v1/statistics/4y'); + } + getTransactionTimes$(txIds: string[]): Observable { let params = new HttpParams(); txIds.forEach((txId: string) => { diff --git a/frontend/src/app/shared/graphs.utils.ts b/frontend/src/app/shared/graphs.utils.ts index 0edcfda91..488e794c3 100644 --- a/frontend/src/app/shared/graphs.utils.ts +++ b/frontend/src/app/shared/graphs.utils.ts @@ -21,6 +21,7 @@ export const formatterXAxis = ( return date.toLocaleTimeString(locale, { month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric' }); case '2y': case '3y': + case '4y': case 'all': return date.toLocaleDateString(locale, { year: 'numeric', month: 'long', day: 'numeric' }); } @@ -45,6 +46,7 @@ export const formatterXAxisLabel = ( case '1y': case '2y': case '3y': + case '4y': return null; } }; @@ -71,6 +73,7 @@ export const formatterXAxisTimeCategory = ( return date.toLocaleDateString(locale, { year: 'numeric', month: 'short', day: 'numeric' }); case '2y': case '3y': + case '4y': case 'all': return date.toLocaleDateString(locale, { year: 'numeric', month: 'long' }); } diff --git a/production/nginx-cache-warmer b/production/nginx-cache-warmer index cb742caee..5a298367b 100755 --- a/production/nginx-cache-warmer +++ b/production/nginx-cache-warmer @@ -20,6 +20,7 @@ do for url in / \ '/api/v1/statistics/1y' \ '/api/v1/statistics/2y' \ '/api/v1/statistics/3y' \ + '/api/v1/statistics/4y' \ '/api/v1/mining/pools/24h' \ '/api/v1/mining/pools/3d' \ '/api/v1/mining/pools/1w' \ From 2e74d7fa4ad661e35b797ab8dd998478756ad899 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 11:28:44 +0900 Subject: [PATCH 0494/1466] Remove mining db stats - replaced by runtime state variable --- backend/src/api/database-migration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index bf552889d..1ef31c90b 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -1037,7 +1037,7 @@ class DatabaseMigration { 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'`); -} + } private async $convertCompactCpfpTables(): Promise { try { From 32a260473ab3845da2c3c50b949eb07b67a15dfd Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 11:46:52 +0900 Subject: [PATCH 0495/1466] Update some mining indexing logs --- backend/src/api/mining/mining.ts | 28 +++++++++---------- backend/src/indexer.ts | 8 +++--- .../DifficultyAdjustmentsRepository.ts | 18 ++++++------ .../src/repositories/HashratesRepository.ts | 22 +++++++-------- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/backend/src/api/mining/mining.ts b/backend/src/api/mining/mining.ts index 78d313b48..45b00e021 100644 --- a/backend/src/api/mining/mining.ts +++ b/backend/src/api/mining/mining.ts @@ -117,7 +117,7 @@ class Mining { poolsStatistics['lastEstimatedHashrate'] = await bitcoinClient.getNetworkHashPs(totalBlock24h); } catch (e) { poolsStatistics['lastEstimatedHashrate'] = 0; - logger.debug('Bitcoin Core is not available, using zeroed value for current hashrate'); + logger.debug('Bitcoin Core is not available, using zeroed value for current hashrate', logger.tags.mining); } return poolsStatistics; @@ -145,7 +145,7 @@ class Mining { try { currentEstimatedHashrate = await bitcoinClient.getNetworkHashPs(totalBlock24h); } catch (e) { - logger.debug('Bitcoin Core is not available, using zeroed value for current hashrate'); + logger.debug('Bitcoin Core is not available, using zeroed value for current hashrate', logger.tags.mining); } return { @@ -208,7 +208,7 @@ class Mining { const startedAt = new Date().getTime() / 1000; let timer = new Date().getTime() / 1000; - logger.debug(`Indexing weekly mining pool hashrate`); + logger.debug(`Indexing weekly mining pool hashrate`, logger.tags.mining); loadingIndicators.setProgress('weekly-hashrate-indexing', 0); while (toTimestamp > genesisTimestamp && toTimestamp > oldestConsecutiveBlockTimestamp) { @@ -245,7 +245,7 @@ class Mining { }); } - newlyIndexed += hashrates.length; + newlyIndexed += hashrates.length / Math.max(1, pools.length); await HashratesRepository.$saveHashrates(hashrates); hashrates.length = 0; } @@ -256,7 +256,7 @@ class Mining { const weeksPerSeconds = Math.max(1, Math.round(indexedThisRun / elapsedSeconds)); const progress = Math.round(totalIndexed / totalWeekIndexed * 10000) / 100; const formattedDate = new Date(fromTimestamp).toUTCString(); - logger.debug(`Getting weekly pool hashrate for ${formattedDate} | ~${weeksPerSeconds.toFixed(2)} weeks/sec | total: ~${totalIndexed}/${Math.round(totalWeekIndexed)} (${progress}%) | elapsed: ${runningFor} seconds`); + logger.debug(`Getting weekly pool hashrate for ${formattedDate} | ~${weeksPerSeconds.toFixed(2)} weeks/sec | total: ~${totalIndexed}/${Math.round(totalWeekIndexed)} (${progress}%) | elapsed: ${runningFor} seconds`, logger.tags.mining); timer = new Date().getTime() / 1000; indexedThisRun = 0; loadingIndicators.setProgress('weekly-hashrate-indexing', progress, false); @@ -268,14 +268,14 @@ class Mining { } this.lastWeeklyHashrateIndexingDate = new Date().getUTCDate(); if (newlyIndexed > 0) { - logger.notice(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed}`, logger.tags.mining); + logger.notice(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed} weeks`, logger.tags.mining); } else { - logger.debug(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed}`, logger.tags.mining); + logger.debug(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed} weeks`, logger.tags.mining); } loadingIndicators.setProgress('weekly-hashrate-indexing', 100); } catch (e) { loadingIndicators.setProgress('weekly-hashrate-indexing', 100); - logger.err(`Weekly mining pools hashrates indexing failed. Trying again in 10 seconds. Reason: ${(e instanceof Error ? e.message : e)}`); + logger.err(`Weekly mining pools hashrates indexing failed. Trying again in 10 seconds. Reason: ${(e instanceof Error ? e.message : e)}`, logger.tags.mining); throw e; } } @@ -308,7 +308,7 @@ class Mining { const startedAt = new Date().getTime() / 1000; let timer = new Date().getTime() / 1000; - logger.debug(`Indexing daily network hashrate`); + logger.debug(`Indexing daily network hashrate`, logger.tags.mining); loadingIndicators.setProgress('daily-hashrate-indexing', 0); while (toTimestamp > genesisTimestamp && toTimestamp > oldestConsecutiveBlockTimestamp) { @@ -346,7 +346,7 @@ class Mining { const daysPerSeconds = Math.max(1, Math.round(indexedThisRun / elapsedSeconds)); const progress = Math.round(totalIndexed / totalDayIndexed * 10000) / 100; const formattedDate = new Date(fromTimestamp).toUTCString(); - logger.debug(`Getting network daily hashrate for ${formattedDate} | ~${daysPerSeconds.toFixed(2)} days/sec | total: ~${totalIndexed}/${Math.round(totalDayIndexed)} (${progress}%) | elapsed: ${runningFor} seconds`); + logger.debug(`Getting network daily hashrate for ${formattedDate} | ~${daysPerSeconds.toFixed(2)} days/sec | total: ~${totalIndexed}/${Math.round(totalDayIndexed)} (${progress}%) | elapsed: ${runningFor} seconds`, logger.tags.mining); timer = new Date().getTime() / 1000; indexedThisRun = 0; loadingIndicators.setProgress('daily-hashrate-indexing', progress); @@ -380,7 +380,7 @@ class Mining { loadingIndicators.setProgress('daily-hashrate-indexing', 100); } catch (e) { loadingIndicators.setProgress('daily-hashrate-indexing', 100); - logger.err(`Daily network hashrate indexing failed. Trying again in 10 seconds. Reason: ${(e instanceof Error ? e.message : e)}`, logger.tags.mining); + logger.err(`Daily network hashrate indexing failed. Trying again later. Reason: ${(e instanceof Error ? e.message : e)}`, logger.tags.mining); throw e; } } @@ -446,7 +446,7 @@ class Mining { const elapsedSeconds = Math.max(1, Math.round((new Date().getTime() / 1000) - timer)); if (elapsedSeconds > 5) { const progress = Math.round(totalBlockChecked / blocks.length * 100); - logger.info(`Indexing difficulty adjustment at block #${block.height} | Progress: ${progress}%`); + logger.info(`Indexing difficulty adjustment at block #${block.height} | Progress: ${progress}%`, logger.tags.mining); timer = new Date().getTime() / 1000; } } @@ -499,7 +499,7 @@ class Mining { if (blocksWithoutPrices.length > 200000) { logStr += ` | Progress ${Math.round(totalInserted / blocksWithoutPrices.length * 100)}%`; } - logger.debug(logStr); + logger.debug(logStr, logger.tags.mining); await BlocksRepository.$saveBlockPrices(blocksPrices); blocksPrices.length = 0; } @@ -511,7 +511,7 @@ class Mining { if (blocksWithoutPrices.length > 200000) { logStr += ` | Progress ${Math.round(totalInserted / blocksWithoutPrices.length * 100)}%`; } - logger.debug(logStr); + logger.debug(logStr, logger.tags.mining); await BlocksRepository.$saveBlockPrices(blocksPrices); } } catch (e) { diff --git a/backend/src/indexer.ts b/backend/src/indexer.ts index 1665e443f..3b16ad155 100644 --- a/backend/src/indexer.ts +++ b/backend/src/indexer.ts @@ -76,13 +76,13 @@ class Indexer { this.tasksRunning.push(task); const lastestPriceId = await PricesRepository.$getLatestPriceId(); if (priceUpdater.historyInserted === false || lastestPriceId === null) { - logger.debug(`Blocks prices indexer is waiting for the price updater to complete`); + logger.debug(`Blocks prices indexer is waiting for the price updater to complete`, logger.tags.mining); setTimeout(() => { this.tasksRunning = this.tasksRunning.filter(runningTask => runningTask !== task); this.runSingleTask('blocksPrices'); }, 10000); } else { - logger.debug(`Blocks prices indexer will run now`); + logger.debug(`Blocks prices indexer will run now`, logger.tags.mining); await mining.$indexBlockPrices(); this.tasksRunning = this.tasksRunning.filter(runningTask => runningTask !== task); } @@ -112,7 +112,7 @@ class Indexer { this.runIndexer = false; this.indexerRunning = true; - logger.info(`Running mining indexer`); + logger.debug(`Running mining indexer`); await this.checkAvailableCoreIndexes(); @@ -122,7 +122,7 @@ class Indexer { const chainValid = await blocks.$generateBlockDatabase(); if (chainValid === false) { // Chain of block hash was invalid, so we need to reindex. Stop here and continue at the next iteration - logger.warn(`The chain of block hash is invalid, re-indexing invalid data in 10 seconds.`); + logger.warn(`The chain of block hash is invalid, re-indexing invalid data in 10 seconds.`, logger.tags.mining); setTimeout(() => this.reindex(), 10000); this.indexerRunning = false; return; diff --git a/backend/src/repositories/DifficultyAdjustmentsRepository.ts b/backend/src/repositories/DifficultyAdjustmentsRepository.ts index 1c101bcf2..0b19cc640 100644 --- a/backend/src/repositories/DifficultyAdjustmentsRepository.ts +++ b/backend/src/repositories/DifficultyAdjustmentsRepository.ts @@ -20,9 +20,9 @@ class DifficultyAdjustmentsRepository { await DB.query(query, params); } catch (e: any) { if (e.errno === 1062) { // ER_DUP_ENTRY - This scenario is possible upon node backend restart - logger.debug(`Cannot save difficulty adjustment at block ${adjustment.height}, already indexed, ignoring`); + logger.debug(`Cannot save difficulty adjustment at block ${adjustment.height}, already indexed, ignoring`, logger.tags.mining); } else { - logger.err(`Cannot save difficulty adjustment at block ${adjustment.height}. Reason: ${e instanceof Error ? e.message : e}`); + logger.err(`Cannot save difficulty adjustment at block ${adjustment.height}. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.mining); throw e; } } @@ -54,7 +54,7 @@ class DifficultyAdjustmentsRepository { const [rows] = await DB.query(query); return rows as IndexedDifficultyAdjustment[]; } catch (e) { - logger.err(`Cannot get difficulty adjustments from the database. Reason: ` + (e instanceof Error ? e.message : e)); + logger.err(`Cannot get difficulty adjustments from the database. Reason: ` + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -83,7 +83,7 @@ class DifficultyAdjustmentsRepository { const [rows] = await DB.query(query); return rows as IndexedDifficultyAdjustment[]; } catch (e) { - logger.err(`Cannot get difficulty adjustments from the database. Reason: ` + (e instanceof Error ? e.message : e)); + logger.err(`Cannot get difficulty adjustments from the database. Reason: ` + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -93,27 +93,27 @@ class DifficultyAdjustmentsRepository { const [rows]: any[] = await DB.query(`SELECT height FROM difficulty_adjustments`); return rows.map(block => block.height); } catch (e: any) { - logger.err(`Cannot get difficulty adjustment block heights. Reason: ${e instanceof Error ? e.message : e}`); + logger.err(`Cannot get difficulty adjustment block heights. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.mining); throw e; } } public async $deleteAdjustementsFromHeight(height: number): Promise { try { - logger.info(`Delete newer difficulty adjustments from height ${height} from the database`); + logger.info(`Delete newer difficulty adjustments from height ${height} from the database`, logger.tags.mining); await DB.query(`DELETE FROM difficulty_adjustments WHERE height >= ?`, [height]); } catch (e: any) { - logger.err(`Cannot delete difficulty adjustments from the database. Reason: ${e instanceof Error ? e.message : e}`); + logger.err(`Cannot delete difficulty adjustments from the database. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.mining); throw e; } } public async $deleteLastAdjustment(): Promise { try { - logger.info(`Delete last difficulty adjustment from the database`); + logger.info(`Delete last difficulty adjustment from the database`, logger.tags.mining); await DB.query(`DELETE FROM difficulty_adjustments ORDER BY time LIMIT 1`); } catch (e: any) { - logger.err(`Cannot delete last difficulty adjustment from the database. Reason: ${e instanceof Error ? e.message : e}`); + logger.err(`Cannot delete last difficulty adjustment from the database. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.mining); throw e; } } diff --git a/backend/src/repositories/HashratesRepository.ts b/backend/src/repositories/HashratesRepository.ts index c380e87d9..875f77b34 100644 --- a/backend/src/repositories/HashratesRepository.ts +++ b/backend/src/repositories/HashratesRepository.ts @@ -25,7 +25,7 @@ class HashratesRepository { try { await DB.query(query); } catch (e: any) { - logger.err('Cannot save indexed hashrate into db. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot save indexed hashrate into db. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -51,7 +51,7 @@ class HashratesRepository { const [rows]: any[] = await DB.query(query); return rows; } catch (e) { - logger.err('Cannot fetch network hashrate history. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot fetch network hashrate history. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -78,7 +78,7 @@ class HashratesRepository { const [rows]: any[] = await DB.query(query); return rows; } catch (e) { - logger.err('Cannot fetch network hashrate history. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot fetch network hashrate history. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -93,7 +93,7 @@ class HashratesRepository { const [rows]: any[] = await DB.query(query); return rows.map(row => row.timestamp); } catch (e) { - logger.err('Cannot retreive indexed weekly hashrate timestamps. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot retreive indexed weekly hashrate timestamps. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -128,7 +128,7 @@ class HashratesRepository { const [rows]: any[] = await DB.query(query); return rows; } catch (e) { - logger.err('Cannot fetch weekly pools hashrate history. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot fetch weekly pools hashrate history. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -158,7 +158,7 @@ class HashratesRepository { const [rows]: any[] = await DB.query(query, [pool.id]); boundaries = rows[0]; } catch (e) { - logger.err('Cannot fetch hashrate start/end timestamps for this pool. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot fetch hashrate start/end timestamps for this pool. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); } // Get hashrates entries between boundaries @@ -173,7 +173,7 @@ class HashratesRepository { const [rows]: any[] = await DB.query(query, [boundaries.firstTimestamp, boundaries.lastTimestamp, pool.id]); return rows; } catch (e) { - logger.err('Cannot fetch pool hashrate history for this pool. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot fetch pool hashrate history for this pool. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -192,7 +192,7 @@ class HashratesRepository { } return rows[0]['number']; } catch (e) { - logger.err(`Cannot retrieve last indexing run for ${key}. Reason: ` + (e instanceof Error ? e.message : e)); + logger.err(`Cannot retrieve last indexing run for ${key}. Reason: ` + (e instanceof Error ? e.message : e), logger.tags.mining); throw e; } } @@ -201,7 +201,7 @@ class HashratesRepository { * Delete most recent data points for re-indexing */ public async $deleteLastEntries() { - logger.info(`Delete latest hashrates data points from the database`); + logger.info(`Delete latest hashrates data points from the database`, logger.tags.mining); try { const [rows]: any[] = await DB.query(`SELECT MAX(hashrate_timestamp) as timestamp FROM hashrates GROUP BY type`); @@ -212,7 +212,7 @@ class HashratesRepository { mining.lastHashrateIndexingDate = null; mining.lastWeeklyHashrateIndexingDate = null; } catch (e) { - logger.err('Cannot delete latest hashrates data points. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot delete latest hashrates data points. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); } } @@ -228,7 +228,7 @@ class HashratesRepository { mining.lastHashrateIndexingDate = null; mining.lastWeeklyHashrateIndexingDate = null; } catch (e) { - logger.err('Cannot delete latest hashrates data points. Reason: ' + (e instanceof Error ? e.message : e)); + logger.err('Cannot delete latest hashrates data points. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); } } } From 001be82f5abd836aa9d8f6cf44282edbe152d1fb Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sat, 25 Feb 2023 14:01:48 +0900 Subject: [PATCH 0496/1466] Move some notice into info --- backend/src/api/mining/mining.ts | 6 +++--- backend/src/tasks/lightning/sync-tasks/stats-importer.ts | 2 +- backend/src/tasks/pools-updater.ts | 2 +- backend/src/tasks/price-feeds/kraken-api.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/src/api/mining/mining.ts b/backend/src/api/mining/mining.ts index 45b00e021..0ab2267c3 100644 --- a/backend/src/api/mining/mining.ts +++ b/backend/src/api/mining/mining.ts @@ -268,7 +268,7 @@ class Mining { } this.lastWeeklyHashrateIndexingDate = new Date().getUTCDate(); if (newlyIndexed > 0) { - logger.notice(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed} weeks`, logger.tags.mining); + logger.info(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed} weeks`, logger.tags.mining); } else { logger.debug(`Weekly mining pools hashrates indexing completed: indexed ${newlyIndexed} weeks`, logger.tags.mining); } @@ -373,7 +373,7 @@ class Mining { this.lastHashrateIndexingDate = new Date().getUTCDate(); if (newlyIndexed > 0) { - logger.notice(`Daily network hashrate indexing completed: indexed ${newlyIndexed} days`, logger.tags.mining); + logger.info(`Daily network hashrate indexing completed: indexed ${newlyIndexed} days`, logger.tags.mining); } else { logger.debug(`Daily network hashrate indexing completed: indexed ${newlyIndexed} days`, logger.tags.mining); } @@ -452,7 +452,7 @@ class Mining { } if (totalIndexed > 0) { - logger.notice(`Indexed ${totalIndexed} difficulty adjustments`, logger.tags.mining); + logger.info(`Indexed ${totalIndexed} difficulty adjustments`, logger.tags.mining); } else { logger.debug(`Indexed ${totalIndexed} difficulty adjustments`, logger.tags.mining); } diff --git a/backend/src/tasks/lightning/sync-tasks/stats-importer.ts b/backend/src/tasks/lightning/sync-tasks/stats-importer.ts index 14f592a14..d009ce052 100644 --- a/backend/src/tasks/lightning/sync-tasks/stats-importer.ts +++ b/backend/src/tasks/lightning/sync-tasks/stats-importer.ts @@ -411,7 +411,7 @@ class LightningStatsImporter { } if (totalProcessed > 0) { - logger.notice(`Lightning network stats historical import completed`, logger.tags.ln); + logger.info(`Lightning network stats historical import completed`, logger.tags.ln); } } catch (e) { logger.err(`Lightning network stats historical failed. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.ln); diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index 32de85f3a..d8b77cf01 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -82,7 +82,7 @@ class PoolsUpdater { logger.err(`Could not migrate mining pools, rolling back. Exception: ${JSON.stringify(e)}`, logger.tags.mining); await DB.query('ROLLBACK;'); } - logger.notice('PoolsUpdater completed'); + logger.info('PoolsUpdater completed'); } catch (e) { this.lastRun = now - (oneWeek - oneDay); // Try again in 24h instead of waiting next week diff --git a/backend/src/tasks/price-feeds/kraken-api.ts b/backend/src/tasks/price-feeds/kraken-api.ts index c6b3c0c11..ebc784c6f 100644 --- a/backend/src/tasks/price-feeds/kraken-api.ts +++ b/backend/src/tasks/price-feeds/kraken-api.ts @@ -98,7 +98,7 @@ class KrakenApi implements PriceFeed { } if (Object.keys(priceHistory).length > 0) { - logger.notice(`Inserted ${Object.keys(priceHistory).length} Kraken EUR, USD, GBP, JPY, CAD, CHF and AUD weekly price history into db`, logger.tags.mining); + logger.info(`Inserted ${Object.keys(priceHistory).length} Kraken EUR, USD, GBP, JPY, CAD, CHF and AUD weekly price history into db`, logger.tags.mining); } } } From ff7c85180dd2cc0d37a741a384a2264573629fe9 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 3 Mar 2023 17:49:48 +0900 Subject: [PATCH 0497/1466] Fix initial pool update when db is empty --- backend/src/tasks/pools-updater.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/backend/src/tasks/pools-updater.ts b/backend/src/tasks/pools-updater.ts index 32de85f3a..3a3ceaab6 100644 --- a/backend/src/tasks/pools-updater.ts +++ b/backend/src/tasks/pools-updater.ts @@ -12,7 +12,7 @@ import * as https from 'https'; */ class PoolsUpdater { lastRun: number = 0; - currentSha: string | undefined = undefined; + currentSha: string | null = null; poolsUrl: string = config.MEMPOOL.POOLS_JSON_URL; treeUrl: string = config.MEMPOOL.POOLS_JSON_TREE_URL; @@ -33,7 +33,7 @@ class PoolsUpdater { try { const githubSha = await this.fetchPoolsSha(); // Fetch pools-v2.json sha from github - if (githubSha === undefined) { + if (githubSha === null) { return; } @@ -42,12 +42,12 @@ class PoolsUpdater { } logger.debug(`pools-v2.json sha | Current: ${this.currentSha} | Github: ${githubSha}`); - if (this.currentSha !== undefined && this.currentSha === githubSha) { + if (this.currentSha !== null && this.currentSha === githubSha) { return; } // See backend README for more details about the mining pools update process - if (this.currentSha !== undefined && // If we don't have any mining pool, download it at least once + if (this.currentSha !== null && // If we don't have any mining pool, download it at least once config.MEMPOOL.AUTOMATIC_BLOCK_REINDEXING !== true && // Automatic pools update is disabled !process.env.npm_config_update_pools // We're not manually updating mining pool ) { @@ -57,7 +57,7 @@ class PoolsUpdater { } const network = config.SOCKS5PROXY.ENABLED ? 'tor' : 'clearnet'; - if (this.currentSha === undefined) { + if (this.currentSha === null) { logger.info(`Downloading pools-v2.json for the first time from ${this.poolsUrl} over ${network}`, logger.tags.mining); } else { logger.warn(`pools-v2.json is outdated, fetch latest from ${this.poolsUrl} over ${network}`, logger.tags.mining); @@ -108,20 +108,20 @@ class PoolsUpdater { /** * Fetch our latest pools-v2.json sha from the db */ - private async getShaFromDb(): Promise { + private async getShaFromDb(): Promise { try { const [rows]: any[] = await DB.query('SELECT string FROM state WHERE name="pools_json_sha"'); - return (rows.length > 0 ? rows[0].string : undefined); + return (rows.length > 0 ? rows[0].string : null); } catch (e) { logger.err('Cannot fetch pools-v2.json sha from db. Reason: ' + (e instanceof Error ? e.message : e), logger.tags.mining); - return undefined; + return null; } } /** * Fetch our latest pools-v2.json sha from github */ - private async fetchPoolsSha(): Promise { + private async fetchPoolsSha(): Promise { const response = await this.query(this.treeUrl); if (response !== undefined) { @@ -133,7 +133,7 @@ class PoolsUpdater { } logger.err(`Cannot find "pools-v2.json" in git tree (${this.treeUrl})`, logger.tags.mining); - return undefined; + return null; } /** From 62ef1d4439c863373a25d5149484f9f11ceadf23 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 3 Mar 2023 17:52:16 +0900 Subject: [PATCH 0498/1466] Fix log typo --- backend/src/api/disk-cache.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/disk-cache.ts b/backend/src/api/disk-cache.ts index 83d37fe3f..01bbb4d3f 100644 --- a/backend/src/api/disk-cache.ts +++ b/backend/src/api/disk-cache.ts @@ -62,7 +62,7 @@ class DiskCache { } wipeCache() { - logger.notice(`Wipping nodejs backend cache/cache*.json files`); + logger.notice(`Wiping nodejs backend cache/cache*.json files`); try { fs.unlinkSync(DiskCache.FILE_NAME); } catch (e: any) { From 43bed7cf5640a11a631f6a0009c54e3e35a2f261 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sat, 4 Mar 2023 23:13:55 -0600 Subject: [PATCH 0499/1466] Monitor heap memory usage --- backend/src/index.ts | 29 +++++++++++++++++++++++++++++ backend/src/utils/format.ts | 29 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 backend/src/utils/format.ts diff --git a/backend/src/index.ts b/backend/src/index.ts index 3ace7a5f2..f2b845ea1 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -38,6 +38,8 @@ import forensicsService from './tasks/lightning/forensics.service'; import priceUpdater from './tasks/price-updater'; import chainTips from './api/chain-tips'; import { AxiosError } from 'axios'; +import v8 from 'v8'; +import { formatBytes, getBytesUnit } from './utils/format'; class Server { private wss: WebSocket.Server | undefined; @@ -45,6 +47,11 @@ class Server { private app: Application; private currentBackendRetryInterval = 5; + private maxHeapSize: number = 0; + private heapLogInterval: number = 60; + private warnedHeapCritical: boolean = false; + private lastHeapLogTime: number | null = null; + constructor() { this.app = express(); @@ -137,6 +144,8 @@ class Server { this.runMainUpdateLoop(); } + setInterval(() => { this.healthCheck(); }, 2500); + if (config.BISQ.ENABLED) { bisq.startBisqService(); bisq.setPriceCallbackFunction((price) => websocketHandler.setExtraInitProperties('bsq-price', price)); @@ -255,6 +264,26 @@ class Server { channelsRoutes.initRoutes(this.app); } } + + healthCheck(): void { + const now = Date.now(); + const stats = v8.getHeapStatistics(); + this.maxHeapSize = Math.max(stats.used_heap_size, this.maxHeapSize); + const warnThreshold = 0.95 * stats.heap_size_limit; + + const byteUnits = getBytesUnit(Math.max(this.maxHeapSize, stats.heap_size_limit)); + + if (!this.warnedHeapCritical && this.maxHeapSize > warnThreshold) { + this.warnedHeapCritical = true; + logger.warn(`Used ${(this.maxHeapSize / stats.heap_size_limit).toFixed(2)}% of heap limit (${formatBytes(this.maxHeapSize, byteUnits, true)} / ${formatBytes(stats.heap_size_limit, byteUnits)})!`); + } + if (this.lastHeapLogTime === null || (now - this.lastHeapLogTime) > (this.heapLogInterval * 1000)) { + logger.debug(`Memory usage: ${formatBytes(this.maxHeapSize, byteUnits)} / ${formatBytes(stats.heap_size_limit, byteUnits)}`); + this.warnedHeapCritical = false; + this.maxHeapSize = 0; + this.lastHeapLogTime = now; + } + } } ((): Server => new Server())(); diff --git a/backend/src/utils/format.ts b/backend/src/utils/format.ts new file mode 100644 index 000000000..a18ce1892 --- /dev/null +++ b/backend/src/utils/format.ts @@ -0,0 +1,29 @@ +const byteUnits = ['B', 'kB', 'MB', 'GB', 'TB']; + +export function getBytesUnit(bytes: number): string { + if (isNaN(bytes) || !isFinite(bytes)) { + return 'B'; + } + + let unitIndex = 0; + while (unitIndex < byteUnits.length && bytes > 1024) { + unitIndex++; + bytes /= 1024; + } + + return byteUnits[unitIndex]; +} + +export function formatBytes(bytes: number, toUnit: string, skipUnit = false): string { + if (isNaN(bytes) || !isFinite(bytes)) { + return `${bytes}`; + } + + let unitIndex = 0; + while (unitIndex < byteUnits.length && (toUnit && byteUnits[unitIndex] !== toUnit || (!toUnit && bytes > 1024))) { + unitIndex++; + bytes /= 1024; + } + + return `${bytes.toFixed(2)}${skipUnit ? '' : ' ' + byteUnits[unitIndex]}`; +} \ No newline at end of file From f37946118cf8799f3881129a09934c5272b1e5e6 Mon Sep 17 00:00:00 2001 From: wiz Date: Sun, 5 Mar 2023 15:45:28 +0900 Subject: [PATCH 0500/1466] Change heap size warning to 80% utilization --- backend/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index f2b845ea1..fbe9c08c2 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -269,7 +269,7 @@ class Server { const now = Date.now(); const stats = v8.getHeapStatistics(); this.maxHeapSize = Math.max(stats.used_heap_size, this.maxHeapSize); - const warnThreshold = 0.95 * stats.heap_size_limit; + const warnThreshold = 0.8 * stats.heap_size_limit; const byteUnits = getBytesUnit(Math.max(this.maxHeapSize, stats.heap_size_limit)); From d5ea2aec25a2549051b25809da1df3367d306034 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 5 Mar 2023 17:08:35 +0900 Subject: [PATCH 0501/1466] I18n extract. Some minor fixes. --- .../lightning/channel/channel.component.html | 2 +- .../app/lightning/node/node.component.html | 2 +- .../top-nodes-per-channels.component.html | 2 +- frontend/src/locale/messages.xlf | 182 ++++++++---------- 4 files changed, 84 insertions(+), 104 deletions(-) diff --git a/frontend/src/app/lightning/channel/channel.component.html b/frontend/src/app/lightning/channel/channel.component.html index 951cb8090..2766f1d15 100644 --- a/frontend/src/app/lightning/channel/channel.component.html +++ b/frontend/src/app/lightning/channel/channel.component.html @@ -20,7 +20,7 @@
    - No channel found for short id "{{ channel.short_id }}" + No channel found for ID "{{ channel.short_id }}"
    - No node found for public key "{{ node.public_key | shortenString : 12}}" + No node found for public key "{{ node.public_key | shortenString : 12}}"
    diff --git a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html index 4bab712a8..652a70cc3 100644 --- a/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html +++ b/frontend/src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html @@ -11,7 +11,7 @@ Alias Channels Capacity - {{ currency$ | async }} + {{ currency$ | async }} First seen Last update Location diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index 3e4c29cfe..dae2acd3a 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -715,7 +715,7 @@ src/app/components/about/about.component.html - 385,389 + 375,378 src/app/components/mining-dashboard/mining-dashboard.component.html @@ -1349,14 +1349,14 @@ 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. src/app/components/about/about.component.html - 13,17 + 13,16 Enterprise Sponsors 🚀 src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1364,7 +1364,7 @@ Community Sponsors ❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1372,7 +1372,7 @@ Community Integrations src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1380,7 +1380,7 @@ Community Alliances src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1388,7 +1388,7 @@ Project Translators src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1396,7 +1396,7 @@ Project Contributors src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1404,7 +1404,7 @@ Project Members src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1412,7 +1412,7 @@ Project Maintainers src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1420,7 +1420,7 @@ About src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1466,7 +1466,7 @@ src/app/components/amount/amount.component.html - 18,21 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -2502,11 +2502,11 @@ src/app/lightning/node/node.component.html - 52,55 + 55,58 src/app/lightning/node/node.component.html - 96,100 + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2696,15 +2696,15 @@ src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2723,10 +2723,6 @@ src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -4294,7 +4290,7 @@ src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4310,11 +4306,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -4982,7 +4978,7 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats @@ -5088,7 +5084,7 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html @@ -5104,7 +5100,7 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html @@ -5120,7 +5116,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5140,7 +5136,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5152,7 +5148,7 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html @@ -5186,6 +5182,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5220,11 +5220,11 @@ Lightning channel src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5232,11 +5232,11 @@ Last update src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5252,11 +5252,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5264,7 +5264,7 @@ Closing date src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html @@ -5276,7 +5276,7 @@ Closed by src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by @@ -5284,7 +5284,7 @@ Opening transaction src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction @@ -5292,7 +5292,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5368,11 +5368,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -5628,10 +5628,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -5684,11 +5680,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -5724,7 +5720,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5740,11 +5736,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -5778,9 +5774,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -5854,11 +5858,11 @@ src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -5870,7 +5874,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -5882,7 +5886,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -5894,19 +5898,11 @@ country - - No node found for public key "" - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg @@ -5914,7 +5910,7 @@ Avg channel distance src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance @@ -5922,7 +5918,7 @@ Color src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color @@ -5930,7 +5926,7 @@ ISP src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -5942,7 +5938,7 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 93,95 + 96,98 tor @@ -5950,7 +5946,7 @@ Liquidity ad src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad @@ -5958,7 +5954,7 @@ Lease fee rate src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate @@ -5967,7 +5963,7 @@ Lease base fee src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee @@ -5975,7 +5971,7 @@ Funding weight src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight @@ -5983,7 +5979,7 @@ Channel fee rate src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate @@ -5992,7 +5988,7 @@ Channel base fee src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee @@ -6000,7 +5996,7 @@ Compact lease src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease @@ -6008,7 +6004,7 @@ TLV extension records src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6016,7 +6012,7 @@ Open channels src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6024,7 +6020,7 @@ Closed channels src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6088,8 +6084,8 @@ 112,107 - - Reachable on Clearnet Only + + Clearnet and Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6099,8 +6095,8 @@ 303,302 - - Reachable on Clearnet and Darknet + + Clearnet (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6110,8 +6106,8 @@ 295,294 - - Reachable on Darknet Only + + Darknet Only (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6343,22 +6339,6 @@ 27 - - Top 100 nodes liquidity ranking - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes From 154e65d470f1b52ce738bd8288c9b0baae28d29a Mon Sep 17 00:00:00 2001 From: wiz Date: Sun, 5 Mar 2023 17:30:32 +0900 Subject: [PATCH 0502/1466] Fix string for "Clearnet Only" --- .../nodes-networks-chart/nodes-networks-chart.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts index e257864fa..43d1e24dd 100644 --- a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts +++ b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -182,7 +182,7 @@ export class NodesNetworksChartComponent implements OnInit { { zlevel: 1, yAxisIndex: 0, - name: $localize`Clearnet (IPv4, IPv6)`, + name: $localize`Clearnet Only (IPv4, IPv6)`, showSymbol: false, symbol: 'none', data: data.clearnet_nodes, From 226a4e9bde1b6c7d9ce832e3e812620da3f5ed26 Mon Sep 17 00:00:00 2001 From: wiz Date: Sun, 5 Mar 2023 17:34:30 +0900 Subject: [PATCH 0503/1466] Fix two more strings for "Clearnet Only" --- .../nodes-networks-chart/nodes-networks-chart.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts index 43d1e24dd..603f6d714 100644 --- a/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts +++ b/frontend/src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -292,7 +292,7 @@ export class NodesNetworksChartComponent implements OnInit { icon: 'roundRect', }, { - name: $localize`Clearnet (IPv4, IPv6)`, + name: $localize`Clearnet Only (IPv4, IPv6)`, inactiveColor: 'rgb(110, 112, 121)', textStyle: { color: 'white', @@ -318,7 +318,7 @@ export class NodesNetworksChartComponent implements OnInit { ], selected: this.widget ? undefined : JSON.parse(this.storageService.getValue('nodes_networks_legend')) ?? { '$localize`Darknet Only (Tor, I2P, cjdns)`': true, - '$localize`Clearnet (IPv4, IPv6)`': true, + '$localize`Clearnet Only (IPv4, IPv6)`': true, '$localize`Clearnet and Darknet`': true, '$localize`:@@e5d8bb389c702588877f039d72178f219453a72d:Unknown`': true, } From c50f5d45e1a86d81296c472bf03a527e2e14c55e Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 5 Mar 2023 17:37:15 +0900 Subject: [PATCH 0504/1466] Update clearnet i18n string --- frontend/src/locale/messages.xlf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/locale/messages.xlf b/frontend/src/locale/messages.xlf index dae2acd3a..49d42a2f1 100644 --- a/frontend/src/locale/messages.xlf +++ b/frontend/src/locale/messages.xlf @@ -6095,8 +6095,8 @@ 303,302 - - Clearnet (IPv4, IPv6) + + Clearnet Only (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 From c28d1c46100d5ef09ab0c269d393b1187bb0cd43 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Sun, 5 Mar 2023 17:43:59 +0900 Subject: [PATCH 0505/1466] Show ln channel world map using 100% height --- .../nodes-channels-map/nodes-channels-map.component.scss | 4 ---- .../nodes-channels-map/nodes-channels-map.component.ts | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.scss b/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.scss index 07da6ed15..09c029d66 100644 --- a/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.scss +++ b/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.scss @@ -4,10 +4,6 @@ &.widget { height: 250px; } - - &.graph { - height: auto; - } } .card-header { diff --git a/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts b/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts index c998bdd2f..71b5d3afd 100644 --- a/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts +++ b/frontend/src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts @@ -229,6 +229,7 @@ export class NodesChannelsMap implements OnInit { title: title ?? undefined, tooltip: {}, geo: { + top: 75, animation: false, silent: true, center: this.center, From ac932c641cb0ca28013fd78454fb4f6e0483d568 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 5 Mar 2023 18:54:04 -0600 Subject: [PATCH 0506/1466] unify time rendering components --- .../bisq/bisq-block/bisq-block.component.html | 2 +- .../bisq-blocks/bisq-blocks.component.html | 2 +- .../bisq-transaction.component.html | 2 +- .../bisq-transactions.component.html | 2 +- .../blockchain-blocks.component.html | 2 +- .../blocks-list/blocks-list.component.html | 2 +- ...ifficulty-adjustments-table.component.html | 2 +- .../difficulty/difficulty.component.html | 4 +- .../mempool-blocks.component.html | 4 +- .../app/components/pool/pool.component.html | 2 +- .../time-since/time-since.component.ts | 98 ---------------- .../time-span/time-span.component.ts | 91 --------------- .../time-until/time-until.component.ts | 104 ----------------- .../src/app/components/time/time.component.ts | 108 ++++++++++++++++++ .../transaction/transaction.component.html | 10 +- .../transactions-list.component.html | 2 +- .../app/dashboard/dashboard.component.html | 2 +- .../timestamp/timestamp.component.html | 2 +- frontend/src/app/shared/shared.module.ts | 12 +- 19 files changed, 131 insertions(+), 322 deletions(-) delete mode 100644 frontend/src/app/components/time-since/time-since.component.ts delete mode 100644 frontend/src/app/components/time-span/time-span.component.ts delete mode 100644 frontend/src/app/components/time-until/time-until.component.ts create mode 100644 frontend/src/app/components/time/time.component.ts diff --git a/frontend/src/app/bisq/bisq-block/bisq-block.component.html b/frontend/src/app/bisq/bisq-block/bisq-block.component.html index 9cc2ad699..4f79d8838 100644 --- a/frontend/src/app/bisq/bisq-block/bisq-block.component.html +++ b/frontend/src/app/bisq/bisq-block/bisq-block.component.html @@ -24,7 +24,7 @@ ‎{{ block.time | date:'yyyy-MM-dd HH:mm' }}
    - () + ()
    diff --git a/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html b/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html index 750e2e3b1..15f15b258 100644 --- a/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html +++ b/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html @@ -17,7 +17,7 @@ {{ block.height }} - + {{ calculateTotalOutput(block) / 100 | number: '1.2-2' }} BSQ {{ block.txs.length }} diff --git a/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html b/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html index 11f981774..3a23688e6 100644 --- a/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html +++ b/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html @@ -35,7 +35,7 @@ ‎{{ bisqTx.time | date:'yyyy-MM-dd HH:mm' }}
    - () + ()
    diff --git a/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html b/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html index 8d34448d8..bc22414ca 100644 --- a/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html +++ b/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html @@ -37,7 +37,7 @@ {{ calculateTotalOutput(tx.outputs) / 100 | number: '1.2-2' }} BSQ - + {{ tx.blockHeight }} diff --git a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html index 746c5fa5c..8323cf8c6 100644 --- a/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html +++ b/frontend/src/app/components/blockchain-blocks/blockchain-blocks.component.html @@ -47,7 +47,7 @@ {{ i }} transactions
    -
    +
    - + {{ diffChange.height }} - + {{ diffChange.difficultyShorten }} diff --git a/frontend/src/app/components/difficulty/difficulty.component.html b/frontend/src/app/components/difficulty/difficulty.component.html index e030f74fa..ce0bf7eff 100644 --- a/frontend/src/app/components/difficulty/difficulty.component.html +++ b/frontend/src/app/components/difficulty/difficulty.component.html @@ -10,7 +10,7 @@ {{ i }} blocks {{ i }} block
    -
    +
    Estimate
    @@ -53,7 +53,7 @@ {{ i }} blocks {{ i }} block
    -
    +
    diff --git a/frontend/src/app/components/mempool-blocks/mempool-blocks.component.html b/frontend/src/app/components/mempool-blocks/mempool-blocks.component.html index 9e70c6e74..692f7d863 100644 --- a/frontend/src/app/components/mempool-blocks/mempool-blocks.component.html +++ b/frontend/src/app/components/mempool-blocks/mempool-blocks.component.html @@ -23,10 +23,10 @@
    - + - +
    diff --git a/frontend/src/app/components/pool/pool.component.html b/frontend/src/app/components/pool/pool.component.html index 53982ca86..0ae32ccb8 100644 --- a/frontend/src/app/components/pool/pool.component.html +++ b/frontend/src/app/components/pool/pool.component.html @@ -227,7 +227,7 @@ ‎{{ block.timestamp * 1000 | date:'yyyy-MM-dd HH:mm' }} - + diff --git a/frontend/src/app/components/time-since/time-since.component.ts b/frontend/src/app/components/time-since/time-since.component.ts deleted file mode 100644 index c8941a665..000000000 --- a/frontend/src/app/components/time-since/time-since.component.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, OnChanges } from '@angular/core'; -import { StateService } from '../../services/state.service'; -import { dates } from '../../shared/i18n/dates'; - -@Component({ - selector: 'app-time-since', - template: `{{ text }}`, - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class TimeSinceComponent implements OnInit, OnChanges, OnDestroy { - interval: number; - text: string; - intervals = {}; - - @Input() time: number; - @Input() dateString: number; - @Input() fastRender = false; - - constructor( - private ref: ChangeDetectorRef, - private stateService: StateService, - ) { - this.intervals = { - year: 31536000, - month: 2592000, - week: 604800, - day: 86400, - hour: 3600, - minute: 60, - second: 1 - }; - } - - ngOnInit() { - if (!this.stateService.isBrowser) { - this.text = this.calculate(); - this.ref.markForCheck(); - return; - } - this.interval = window.setInterval(() => { - this.text = this.calculate(); - this.ref.markForCheck(); - }, 1000 * (this.fastRender ? 1 : 60)); - } - - ngOnChanges() { - this.text = this.calculate(); - this.ref.markForCheck(); - } - - ngOnDestroy() { - clearInterval(this.interval); - } - - calculate() { - let date: Date; - if (this.dateString) { - date = new Date(this.dateString) - } else { - date = new Date(this.time * 1000); - } - const seconds = Math.floor((+new Date() - +date) / 1000); - if (seconds < 60) { - return $localize`:@@date-base.just-now:Just now`; - } - let counter: number; - for (const i in this.intervals) { - if (this.intervals.hasOwnProperty(i)) { - counter = Math.floor(seconds / this.intervals[i]); - const dateStrings = dates(counter); - if (counter > 0) { - if (counter === 1) { - switch (i) { // singular (1 day) - case 'year': return $localize`:@@time-since:${dateStrings.i18nYear}:DATE: ago`; break; - case 'month': return $localize`:@@time-since:${dateStrings.i18nMonth}:DATE: ago`; break; - case 'week': return $localize`:@@time-since:${dateStrings.i18nWeek}:DATE: ago`; break; - case 'day': return $localize`:@@time-since:${dateStrings.i18nDay}:DATE: ago`; break; - case 'hour': return $localize`:@@time-since:${dateStrings.i18nHour}:DATE: ago`; break; - case 'minute': return $localize`:@@time-since:${dateStrings.i18nMinute}:DATE: ago`; break; - case 'second': return $localize`:@@time-since:${dateStrings.i18nSecond}:DATE: ago`; break; - } - } else { - switch (i) { // plural (2 days) - case 'year': return $localize`:@@time-since:${dateStrings.i18nYears}:DATE: ago`; break; - case 'month': return $localize`:@@time-since:${dateStrings.i18nMonths}:DATE: ago`; break; - case 'week': return $localize`:@@time-since:${dateStrings.i18nWeeks}:DATE: ago`; break; - case 'day': return $localize`:@@time-since:${dateStrings.i18nDays}:DATE: ago`; break; - case 'hour': return $localize`:@@time-since:${dateStrings.i18nHours}:DATE: ago`; break; - case 'minute': return $localize`:@@time-since:${dateStrings.i18nMinutes}:DATE: ago`; break; - case 'second': return $localize`:@@time-since:${dateStrings.i18nSeconds}:DATE: ago`; break; - } - } - } - } - } - } - -} diff --git a/frontend/src/app/components/time-span/time-span.component.ts b/frontend/src/app/components/time-span/time-span.component.ts deleted file mode 100644 index 03a438164..000000000 --- a/frontend/src/app/components/time-span/time-span.component.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, OnChanges } from '@angular/core'; -import { StateService } from '../../services/state.service'; -import { dates } from '../../shared/i18n/dates'; - -@Component({ - selector: 'app-time-span', - template: `{{ text }}`, - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class TimeSpanComponent implements OnInit, OnChanges, OnDestroy { - interval: number; - text: string; - intervals = {}; - - @Input() time: number; - @Input() fastRender = false; - - constructor( - private ref: ChangeDetectorRef, - private stateService: StateService, - ) { - this.intervals = { - year: 31536000, - month: 2592000, - week: 604800, - day: 86400, - hour: 3600, - minute: 60, - second: 1 - }; - } - - ngOnInit() { - if (!this.stateService.isBrowser) { - this.text = this.calculate(); - this.ref.markForCheck(); - return; - } - this.interval = window.setInterval(() => { - this.text = this.calculate(); - this.ref.markForCheck(); - }, 1000 * (this.fastRender ? 1 : 60)); - } - - ngOnChanges() { - this.text = this.calculate(); - this.ref.markForCheck(); - } - - ngOnDestroy() { - clearInterval(this.interval); - } - - calculate() { - const seconds = Math.floor(this.time); - if (seconds < 60) { - return $localize`:@@date-base.just-now:Just now`; - } - let counter: number; - for (const i in this.intervals) { - if (this.intervals.hasOwnProperty(i)) { - counter = Math.floor(seconds / this.intervals[i]); - const dateStrings = dates(counter); - if (counter > 0) { - if (counter === 1) { - switch (i) { // singular (1 day) - case 'year': return $localize`:@@time-span:After ${dateStrings.i18nYear}:DATE:`; break; - case 'month': return $localize`:@@time-span:After ${dateStrings.i18nMonth}:DATE:`; break; - case 'week': return $localize`:@@time-span:After ${dateStrings.i18nWeek}:DATE:`; break; - case 'day': return $localize`:@@time-span:After ${dateStrings.i18nDay}:DATE:`; break; - case 'hour': return $localize`:@@time-span:After ${dateStrings.i18nHour}:DATE:`; break; - case 'minute': return $localize`:@@time-span:After ${dateStrings.i18nMinute}:DATE:`; break; - case 'second': return $localize`:@@time-span:After ${dateStrings.i18nSecond}:DATE:`; break; - } - } else { - switch (i) { // plural (2 days) - case 'year': return $localize`:@@time-span:After ${dateStrings.i18nYears}:DATE:`; break; - case 'month': return $localize`:@@time-span:After ${dateStrings.i18nMonths}:DATE:`; break; - case 'week': return $localize`:@@time-span:After ${dateStrings.i18nWeeks}:DATE:`; break; - case 'day': return $localize`:@@time-span:After ${dateStrings.i18nDays}:DATE:`; break; - case 'hour': return $localize`:@@time-span:After ${dateStrings.i18nHours}:DATE:`; break; - case 'minute': return $localize`:@@time-span:After ${dateStrings.i18nMinutes}:DATE:`; break; - case 'second': return $localize`:@@time-span:After ${dateStrings.i18nSeconds}:DATE:`; break; - } - } - } - } - } - } - -} diff --git a/frontend/src/app/components/time-until/time-until.component.ts b/frontend/src/app/components/time-until/time-until.component.ts deleted file mode 100644 index 2b370b4ac..000000000 --- a/frontend/src/app/components/time-until/time-until.component.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, OnChanges } from '@angular/core'; -import { StateService } from '../../services/state.service'; -import { dates } from '../../shared/i18n/dates'; - -@Component({ - selector: 'app-time-until', - template: `{{ text }}`, - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class TimeUntilComponent implements OnInit, OnChanges, OnDestroy { - interval: number; - text: string; - intervals = {}; - - @Input() time: number; - @Input() fastRender = false; - @Input() fixedRender = false; - @Input() forceFloorOnTimeIntervals: string[]; - - constructor( - private ref: ChangeDetectorRef, - private stateService: StateService, - ) { - this.intervals = { - year: 31536000, - month: 2592000, - week: 604800, - day: 86400, - hour: 3600, - minute: 60, - second: 1 - }; - } - - ngOnInit() { - if(this.fixedRender){ - this.text = this.calculate(); - return; - } - - if (!this.stateService.isBrowser) { - this.text = this.calculate(); - this.ref.markForCheck(); - return; - } - this.interval = window.setInterval(() => { - this.text = this.calculate(); - this.ref.markForCheck(); - }, 1000 * (this.fastRender ? 1 : 60)); - } - - ngOnChanges() { - this.text = this.calculate(); - this.ref.markForCheck(); - } - - ngOnDestroy() { - clearInterval(this.interval); - } - - calculate() { - const seconds = (+new Date(this.time) - +new Date()) / 1000; - - if (seconds < 60) { - const dateStrings = dates(1); - return $localize`:@@time-until:In ~${dateStrings.i18nMinute}:DATE:`; - } - let counter: number; - for (const i in this.intervals) { - if (this.intervals.hasOwnProperty(i)) { - if (this.forceFloorOnTimeIntervals && this.forceFloorOnTimeIntervals.indexOf(i) > -1) { - counter = Math.floor(seconds / this.intervals[i]); - } else { - counter = Math.round(seconds / this.intervals[i]); - } - const dateStrings = dates(counter); - if (counter > 0) { - if (counter === 1) { - switch (i) { // singular (In ~1 day) - case 'year': return $localize`:@@time-until:In ~${dateStrings.i18nYear}:DATE:`; break; - case 'month': return $localize`:@@time-until:In ~${dateStrings.i18nMonth}:DATE:`; break; - case 'week': return $localize`:@@time-until:In ~${dateStrings.i18nWeek}:DATE:`; break; - case 'day': return $localize`:@@time-until:In ~${dateStrings.i18nDay}:DATE:`; break; - case 'hour': return $localize`:@@time-until:In ~${dateStrings.i18nHour}:DATE:`; break; - case 'minute': return $localize`:@@time-until:In ~${dateStrings.i18nMinute}:DATE:`; - case 'second': return $localize`:@@time-until:In ~${dateStrings.i18nSecond}:DATE:`; - } - } else { - switch (i) { // plural (In ~2 days) - case 'year': return $localize`:@@time-until:In ~${dateStrings.i18nYears}:DATE:`; break; - case 'month': return $localize`:@@time-until:In ~${dateStrings.i18nMonths}:DATE:`; break; - case 'week': return $localize`:@@time-until:In ~${dateStrings.i18nWeeks}:DATE:`; break; - case 'day': return $localize`:@@time-until:In ~${dateStrings.i18nDays}:DATE:`; break; - case 'hour': return $localize`:@@time-until:In ~${dateStrings.i18nHours}:DATE:`; break; - case 'minute': return $localize`:@@time-until:In ~${dateStrings.i18nMinutes}:DATE:`; break; - case 'second': return $localize`:@@time-until:In ~${dateStrings.i18nSeconds}:DATE:`; break; - } - } - } - } - } - } - -} diff --git a/frontend/src/app/components/time/time.component.ts b/frontend/src/app/components/time/time.component.ts new file mode 100644 index 000000000..f46583fba --- /dev/null +++ b/frontend/src/app/components/time/time.component.ts @@ -0,0 +1,108 @@ +import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, OnChanges } from '@angular/core'; +import { StateService } from '../../services/state.service'; +import { dates } from '../../shared/i18n/dates'; + +@Component({ + selector: 'app-time', + template: `{{ text }}`, + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class TimeComponent implements OnInit, OnChanges, OnDestroy { + interval: number; + text: string; + intervals = {}; + + @Input() time: number; + @Input() dateString: number; + @Input() kind: 'plain' | 'since' | 'until' | 'span' = 'plain'; + @Input() fastRender = false; + @Input() fixedRender = false; + @Input() relative = false; + @Input() forceFloorOnTimeIntervals: string[]; + + constructor( + private ref: ChangeDetectorRef, + private stateService: StateService, + ) { + this.intervals = { + Year: 31536000, + Month: 2592000, + Week: 604800, + Day: 86400, + Hour: 3600, + Minute: 60, + Second: 1 + }; + } + + ngOnInit() { + if(this.fixedRender){ + this.text = this.calculate(); + return; + } + if (!this.stateService.isBrowser) { + this.text = this.calculate(); + this.ref.markForCheck(); + return; + } + this.interval = window.setInterval(() => { + this.text = this.calculate(); + this.ref.markForCheck(); + }, 1000 * (this.fastRender ? 1 : 60)); + } + + ngOnChanges() { + this.text = this.calculate(); + this.ref.markForCheck(); + } + + ngOnDestroy() { + clearInterval(this.interval); + } + + calculate() { + let seconds: number; + switch (this.kind) { + case 'since': + seconds = Math.floor((+new Date() - +new Date(this.dateString || this.time * 1000)) / 1000); + break; + case 'until': + seconds = (+new Date(this.time) - +new Date()) / 1000; + break; + default: + seconds = Math.floor(this.time); + } + + if (seconds < 60) { + if (this.relative || this.kind === 'since') { + return $localize`:@@date-base.just-now:Just now`; + } else if (this.kind === 'until') { + seconds = 60; + } + } + + let counter: number; + for (const i in this.intervals) { + if (this.kind !== 'until' || this.forceFloorOnTimeIntervals && this.forceFloorOnTimeIntervals.indexOf(i.toLowerCase()) > -1) { + counter = Math.floor(seconds / this.intervals[i]); + } else { + counter = Math.round(seconds / this.intervals[i]); + } + const dateStrings = dates(counter); + if (counter > 0) { + const dateStringKey = `i18n${i}${counter === 1 ? '' : 's'}`; + switch (this.kind) { + case 'since': + return $localize`:@@time-since:${dateStrings[dateStringKey]}:DATE: ago`; + case 'until': + return $localize`:@@time-until:In ~${dateStrings[dateStringKey]}:DATE:`; + case 'span': + return $localize`:@@time-span:After ${dateStrings[dateStringKey]}:DATE:`; + default: + return dateStrings[dateStringKey]; + } + } + } + } + +} diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index 07234f7bc..455c74c99 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -57,14 +57,14 @@ ‎{{ tx.status.block_time * 1000 | date:'yyyy-MM-dd HH:mm' }}
    - () + ()
    Confirmed - + @@ -100,7 +100,7 @@ First seen - +
    @@ -116,10 +116,10 @@
    - + - + diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html index e5280d572..cb54e1870 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.html +++ b/frontend/src/app/components/transactions-list/transactions-list.component.html @@ -6,7 +6,7 @@
    ‎{{ tx.status.block_time * 1000 | date:'yyyy-MM-dd HH:mm' }} - +
    diff --git a/frontend/src/app/dashboard/dashboard.component.html b/frontend/src/app/dashboard/dashboard.component.html index 7c3caccad..add846e24 100644 --- a/frontend/src/app/dashboard/dashboard.component.html +++ b/frontend/src/app/dashboard/dashboard.component.html @@ -93,7 +93,7 @@ {{ block.height }} - + ‎{{ seconds * 1000 | date: customFormat ?? 'yyyy-MM-dd HH:mm' }}
    - () + ()
    diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index fd257db85..52b469836 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -25,8 +25,7 @@ import { BytesPipe } from './pipes/bytes-pipe/bytes.pipe'; import { WuBytesPipe } from './pipes/bytes-pipe/wubytes.pipe'; import { FiatCurrencyPipe } from './pipes/fiat-currency.pipe'; import { BlockchainComponent } from '../components/blockchain/blockchain.component'; -import { TimeSinceComponent } from '../components/time-since/time-since.component'; -import { TimeUntilComponent } from '../components/time-until/time-until.component'; +import { TimeComponent } from '../components/time/time.component'; import { ClipboardComponent } from '../components/clipboard/clipboard.component'; import { QrcodeComponent } from '../components/qrcode/qrcode.component'; import { FiatComponent } from '../fiat/fiat.component'; @@ -53,7 +52,6 @@ import { AddressComponent } from '../components/address/address.component'; import { SearchFormComponent } from '../components/search-form/search-form.component'; import { AddressLabelsComponent } from '../components/address-labels/address-labels.component'; import { FooterComponent } from '../components/footer/footer.component'; -import { TimeSpanComponent } from '../components/time-span/time-span.component'; import { AssetComponent } from '../components/asset/asset.component'; import { AssetsComponent } from '../components/assets/assets.component'; import { AssetsNavComponent } from '../components/assets/assets-nav/assets-nav.component'; @@ -88,8 +86,7 @@ import { GeolocationComponent } from '../shared/components/geolocation/geolocati @NgModule({ declarations: [ ClipboardComponent, - TimeSinceComponent, - TimeUntilComponent, + TimeComponent, QrcodeComponent, FiatComponent, TxFeaturesComponent, @@ -129,7 +126,6 @@ import { GeolocationComponent } from '../shared/components/geolocation/geolocati TransactionsListComponent, AddressComponent, SearchFormComponent, - TimeSpanComponent, AddressLabelsComponent, FooterComponent, AssetComponent, @@ -195,8 +191,7 @@ import { GeolocationComponent } from '../shared/components/geolocation/geolocati NgbCollapseModule, InfiniteScrollModule, FontAwesomeModule, - TimeSinceComponent, - TimeUntilComponent, + TimeComponent, ClipboardComponent, QrcodeComponent, FiatComponent, @@ -232,7 +227,6 @@ import { GeolocationComponent } from '../shared/components/geolocation/geolocati TransactionsListComponent, AddressComponent, SearchFormComponent, - TimeSpanComponent, AddressLabelsComponent, FooterComponent, AssetComponent, From 7f78fefb210bae04797edcfbfd1582bf32de1484 Mon Sep 17 00:00:00 2001 From: Mononaut Date: Sun, 5 Mar 2023 21:09:22 -0600 Subject: [PATCH 0507/1466] revert time localization strings --- .../src/app/components/time/time.component.ts | 108 +++++++++++++++--- 1 file changed, 95 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/components/time/time.component.ts b/frontend/src/app/components/time/time.component.ts index f46583fba..4cc76975e 100644 --- a/frontend/src/app/components/time/time.component.ts +++ b/frontend/src/app/components/time/time.component.ts @@ -25,13 +25,13 @@ export class TimeComponent implements OnInit, OnChanges, OnDestroy { private stateService: StateService, ) { this.intervals = { - Year: 31536000, - Month: 2592000, - Week: 604800, - Day: 86400, - Hour: 3600, - Minute: 60, - Second: 1 + year: 31536000, + month: 2592000, + week: 604800, + day: 86400, + hour: 3600, + minute: 60, + second: 1 }; } @@ -83,23 +83,105 @@ export class TimeComponent implements OnInit, OnChanges, OnDestroy { let counter: number; for (const i in this.intervals) { - if (this.kind !== 'until' || this.forceFloorOnTimeIntervals && this.forceFloorOnTimeIntervals.indexOf(i.toLowerCase()) > -1) { + if (this.kind !== 'until' || this.forceFloorOnTimeIntervals && this.forceFloorOnTimeIntervals.indexOf(i) > -1) { counter = Math.floor(seconds / this.intervals[i]); } else { counter = Math.round(seconds / this.intervals[i]); } const dateStrings = dates(counter); if (counter > 0) { - const dateStringKey = `i18n${i}${counter === 1 ? '' : 's'}`; switch (this.kind) { case 'since': - return $localize`:@@time-since:${dateStrings[dateStringKey]}:DATE: ago`; + if (counter === 1) { + switch (i) { // singular (1 day) + case 'year': return $localize`:@@time-since:${dateStrings.i18nYear}:DATE: ago`; break; + case 'month': return $localize`:@@time-since:${dateStrings.i18nMonth}:DATE: ago`; break; + case 'week': return $localize`:@@time-since:${dateStrings.i18nWeek}:DATE: ago`; break; + case 'day': return $localize`:@@time-since:${dateStrings.i18nDay}:DATE: ago`; break; + case 'hour': return $localize`:@@time-since:${dateStrings.i18nHour}:DATE: ago`; break; + case 'minute': return $localize`:@@time-since:${dateStrings.i18nMinute}:DATE: ago`; break; + case 'second': return $localize`:@@time-since:${dateStrings.i18nSecond}:DATE: ago`; break; + } + } else { + switch (i) { // plural (2 days) + case 'year': return $localize`:@@time-since:${dateStrings.i18nYears}:DATE: ago`; break; + case 'month': return $localize`:@@time-since:${dateStrings.i18nMonths}:DATE: ago`; break; + case 'week': return $localize`:@@time-since:${dateStrings.i18nWeeks}:DATE: ago`; break; + case 'day': return $localize`:@@time-since:${dateStrings.i18nDays}:DATE: ago`; break; + case 'hour': return $localize`:@@time-since:${dateStrings.i18nHours}:DATE: ago`; break; + case 'minute': return $localize`:@@time-since:${dateStrings.i18nMinutes}:DATE: ago`; break; + case 'second': return $localize`:@@time-since:${dateStrings.i18nSeconds}:DATE: ago`; break; + } + } + break; case 'until': - return $localize`:@@time-until:In ~${dateStrings[dateStringKey]}:DATE:`; + if (counter === 1) { + switch (i) { // singular (In ~1 day) + case 'year': return $localize`:@@time-until:In ~${dateStrings.i18nYear}:DATE:`; break; + case 'month': return $localize`:@@time-until:In ~${dateStrings.i18nMonth}:DATE:`; break; + case 'week': return $localize`:@@time-until:In ~${dateStrings.i18nWeek}:DATE:`; break; + case 'day': return $localize`:@@time-until:In ~${dateStrings.i18nDay}:DATE:`; break; + case 'hour': return $localize`:@@time-until:In ~${dateStrings.i18nHour}:DATE:`; break; + case 'minute': return $localize`:@@time-until:In ~${dateStrings.i18nMinute}:DATE:`; + case 'second': return $localize`:@@time-until:In ~${dateStrings.i18nSecond}:DATE:`; + } + } else { + switch (i) { // plural (In ~2 days) + case 'year': return $localize`:@@time-until:In ~${dateStrings.i18nYears}:DATE:`; break; + case 'month': return $localize`:@@time-until:In ~${dateStrings.i18nMonths}:DATE:`; break; + case 'week': return $localize`:@@time-until:In ~${dateStrings.i18nWeeks}:DATE:`; break; + case 'day': return $localize`:@@time-until:In ~${dateStrings.i18nDays}:DATE:`; break; + case 'hour': return $localize`:@@time-until:In ~${dateStrings.i18nHours}:DATE:`; break; + case 'minute': return $localize`:@@time-until:In ~${dateStrings.i18nMinutes}:DATE:`; break; + case 'second': return $localize`:@@time-until:In ~${dateStrings.i18nSeconds}:DATE:`; break; + } + } + break; case 'span': - return $localize`:@@time-span:After ${dateStrings[dateStringKey]}:DATE:`; + if (counter === 1) { + switch (i) { // singular (1 day) + case 'year': return $localize`:@@time-span:After ${dateStrings.i18nYear}:DATE:`; break; + case 'month': return $localize`:@@time-span:After ${dateStrings.i18nMonth}:DATE:`; break; + case 'week': return $localize`:@@time-span:After ${dateStrings.i18nWeek}:DATE:`; break; + case 'day': return $localize`:@@time-span:After ${dateStrings.i18nDay}:DATE:`; break; + case 'hour': return $localize`:@@time-span:After ${dateStrings.i18nHour}:DATE:`; break; + case 'minute': return $localize`:@@time-span:After ${dateStrings.i18nMinute}:DATE:`; break; + case 'second': return $localize`:@@time-span:After ${dateStrings.i18nSecond}:DATE:`; break; + } + } else { + switch (i) { // plural (2 days) + case 'year': return $localize`:@@time-span:After ${dateStrings.i18nYears}:DATE:`; break; + case 'month': return $localize`:@@time-span:After ${dateStrings.i18nMonths}:DATE:`; break; + case 'week': return $localize`:@@time-span:After ${dateStrings.i18nWeeks}:DATE:`; break; + case 'day': return $localize`:@@time-span:After ${dateStrings.i18nDays}:DATE:`; break; + case 'hour': return $localize`:@@time-span:After ${dateStrings.i18nHours}:DATE:`; break; + case 'minute': return $localize`:@@time-span:After ${dateStrings.i18nMinutes}:DATE:`; break; + case 'second': return $localize`:@@time-span:After ${dateStrings.i18nSeconds}:DATE:`; break; + } + } + break; default: - return dateStrings[dateStringKey]; + if (counter === 1) { + switch (i) { // singular (1 day) + case 'year': return dateStrings.i18nYear; break; + case 'month': return dateStrings.i18nMonth; break; + case 'week': return dateStrings.i18nWeek; break; + case 'day': return dateStrings.i18nDay; break; + case 'hour': return dateStrings.i18nHour; break; + case 'minute': return dateStrings.i18nMinute; break; + case 'second': return dateStrings.i18nSecond; break; + } + } else { + switch (i) { // plural (2 days) + case 'year': return dateStrings.i18nYears; break; + case 'month': return dateStrings.i18nMonths; break; + case 'week': return dateStrings.i18nWeeks; break; + case 'day': return dateStrings.i18nDays; break; + case 'hour': return dateStrings.i18nHours; break; + case 'minute': return dateStrings.i18nMinutes; break; + case 'second': return dateStrings.i18nSeconds; break; + } + } } } } From 182cb1669531df2d19324fd68d54c92b5e7adf7d Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 6 Mar 2023 00:02:21 -0600 Subject: [PATCH 0508/1466] Fix unnecessary cpfp 404 responses --- backend/src/api/bitcoin/bitcoin.routes.ts | 11 +++++------ backend/src/api/mining/mining-routes.ts | 2 +- .../transaction/transaction.component.html | 3 ++- .../transaction/transaction.component.ts | 3 +++ .../transactions-list.component.ts | 13 ++++++++++--- .../tx-bowtie-graph/tx-bowtie-graph.component.ts | 15 ++++++++++++--- 6 files changed, 33 insertions(+), 14 deletions(-) diff --git a/backend/src/api/bitcoin/bitcoin.routes.ts b/backend/src/api/bitcoin/bitcoin.routes.ts index 2d5077bc4..c6323d041 100644 --- a/backend/src/api/bitcoin/bitcoin.routes.ts +++ b/backend/src/api/bitcoin/bitcoin.routes.ts @@ -220,18 +220,17 @@ class BitcoinRoutes { let cpfpInfo; if (config.DATABASE.ENABLED) { cpfpInfo = await transactionRepository.$getCpfpInfo(req.params.txId); + } + if (cpfpInfo) { + res.json(cpfpInfo); + return; } else { res.json({ ancestors: [] }); return; } - if (cpfpInfo) { - res.json(cpfpInfo); - return; - } } - res.status(404).send(`Transaction has no CPFP info available.`); } private getBackendInfo(req: Request, res: Response) { @@ -652,7 +651,7 @@ class BitcoinRoutes { if (result) { res.json(result); } else { - res.status(404).send('not found'); + res.status(204).send(); } } catch (e) { res.status(500).send(e instanceof Error ? e.message : e); diff --git a/backend/src/api/mining/mining-routes.ts b/backend/src/api/mining/mining-routes.ts index f7f392068..0198f9ab4 100644 --- a/backend/src/api/mining/mining-routes.ts +++ b/backend/src/api/mining/mining-routes.ts @@ -263,7 +263,7 @@ class MiningRoutes { const audit = await BlocksAuditsRepository.$getBlockAudit(req.params.hash); if (!audit) { - res.status(404).send(`This block has not been audited.`); + res.status(204).send(`This block has not been audited.`); return; } diff --git a/frontend/src/app/components/transaction/transaction.component.html b/frontend/src/app/components/transaction/transaction.component.html index 455c74c99..0cd4a86c2 100644 --- a/frontend/src/app/components/transaction/transaction.component.html +++ b/frontend/src/app/components/transaction/transaction.component.html @@ -210,6 +210,7 @@
    - +

    Details

    diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 4fedc3912..d41ba4b63 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -57,6 +57,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { fetchCpfp$ = new Subject(); fetchRbfHistory$ = new Subject(); fetchCachedTx$ = new Subject(); + isCached: boolean = false; now = new Date().getTime(); timeAvg$: Observable; liquidUnblinding = new LiquidUnblinding(); @@ -196,6 +197,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { } this.tx = tx; + this.isCached = true; if (tx.fee === undefined) { this.tx.fee = 0; } @@ -289,6 +291,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { } this.tx = tx; + this.isCached = false; if (tx.fee === undefined) { this.tx.fee = 0; } diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.ts b/frontend/src/app/components/transactions-list/transactions-list.component.ts index c720d5960..afda646d7 100644 --- a/frontend/src/app/components/transactions-list/transactions-list.component.ts +++ b/frontend/src/app/components/transactions-list/transactions-list.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit, Input, ChangeDetectionStrategy, OnChanges, Output, EventEmitter, ChangeDetectorRef } from '@angular/core'; import { StateService } from '../../services/state.service'; import { CacheService } from '../../services/cache.service'; -import { Observable, ReplaySubject, BehaviorSubject, merge, Subscription } from 'rxjs'; +import { Observable, ReplaySubject, BehaviorSubject, merge, Subscription, of } from 'rxjs'; import { Outspend, Transaction, Vin, Vout } from '../../interfaces/electrs.interface'; import { ElectrsApiService } from '../../services/electrs-api.service'; import { environment } from '../../../environments/environment'; @@ -23,6 +23,7 @@ export class TransactionsListComponent implements OnInit, OnChanges { showMoreIncrement = 1000; @Input() transactions: Transaction[]; + @Input() cached: boolean = false; @Input() showConfirmations = false; @Input() transactionPage = false; @Input() errorUnblinded = false; @@ -67,7 +68,13 @@ export class TransactionsListComponent implements OnInit, OnChanges { this.outspendsSubscription = merge( this.refreshOutspends$ .pipe( - switchMap((txIds) => this.apiService.getOutspendsBatched$(txIds)), + switchMap((txIds) => { + if (!this.cached) { + return this.apiService.getOutspendsBatched$(txIds); + } else { + return of([]); + } + }), tap((outspends: Outspend[][]) => { if (!this.transactions) { return; @@ -155,7 +162,7 @@ export class TransactionsListComponent implements OnInit, OnChanges { ).subscribe(); }); const txIds = this.transactions.filter((tx) => !tx._outspends).map((tx) => tx.txid); - if (txIds.length) { + if (txIds.length && !this.cached) { this.refreshOutspends$.next(txIds); } if (this.stateService.env.LIGHTNING) { diff --git a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts index 6be475243..1c5ee5391 100644 --- a/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts +++ b/frontend/src/app/components/tx-bowtie-graph/tx-bowtie-graph.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit, Input, OnChanges, HostListener, Inject, LOCALE_ID } import { StateService } from '../../services/state.service'; import { Outspend, Transaction } from '../../interfaces/electrs.interface'; import { Router } from '@angular/router'; -import { ReplaySubject, merge, Subscription } from 'rxjs'; +import { ReplaySubject, merge, Subscription, of } from 'rxjs'; import { tap, switchMap } from 'rxjs/operators'; import { ApiService } from '../../services/api.service'; import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe'; @@ -40,6 +40,7 @@ interface Xput { export class TxBowtieGraphComponent implements OnInit, OnChanges { @Input() tx: Transaction; @Input() network: string; + @Input() cached: boolean = false; @Input() width = 1200; @Input() height = 600; @Input() lineLimit = 250; @@ -107,7 +108,13 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { this.outspendsSubscription = merge( this.refreshOutspends$ .pipe( - switchMap((txid) => this.apiService.getOutspendsBatched$([txid])), + switchMap((txid) => { + if (!this.cached) { + return this.apiService.getOutspendsBatched$([txid]); + } else { + return of(null); + } + }), tap((outspends: Outspend[][]) => { if (!this.tx || !outspends || !outspends.length) { return; @@ -132,7 +139,9 @@ export class TxBowtieGraphComponent implements OnInit, OnChanges { ngOnChanges(): void { this.initGraph(); - this.refreshOutspends$.next(this.tx.txid); + if (!this.cached) { + this.refreshOutspends$.next(this.tx.txid); + } } initGraph(): void { From 43b2fe2f9a503958a692f3ba1cf8d9f74521419d Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 6 Mar 2023 00:19:12 -0600 Subject: [PATCH 0509/1466] don't cache tx data for rbf replacements --- frontend/src/app/components/transaction/transaction.component.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/app/components/transaction/transaction.component.ts b/frontend/src/app/components/transaction/transaction.component.ts index 4fedc3912..b416dce04 100644 --- a/frontend/src/app/components/transaction/transaction.component.ts +++ b/frontend/src/app/components/transaction/transaction.component.ts @@ -362,7 +362,6 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { this.waitingForTransaction = false; } this.rbfTransaction = rbfTransaction; - this.cacheService.setTxCache([this.rbfTransaction]); this.replaced = true; if (rbfTransaction && !this.tx) { this.fetchCachedTx$.next(this.txId); From 5a5ebe843567fee662ab8e16c07b4fe32affa38f Mon Sep 17 00:00:00 2001 From: softsimon Date: Mon, 6 Mar 2023 16:16:52 +0900 Subject: [PATCH 0510/1466] Remove fiat plus space fixes #3240 --- frontend/src/app/components/amount/amount.component.html | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/components/amount/amount.component.html b/frontend/src/app/components/amount/amount.component.html index 27fd59110..29f61ca41 100644 --- a/frontend/src/app/components/amount/amount.component.html +++ b/frontend/src/app/components/amount/amount.component.html @@ -1,7 +1,6 @@ - {{ addPlus && satoshis >= 0 ? '+' : '' }} - {{ + {{ addPlus && satoshis >= 0 ? '+' : '' }}{{ ( (blockConversion.price[currency] > -1 ? blockConversion.price[currency] : null) ?? (blockConversion.price['USD'] > -1 ? blockConversion.price['USD'] * blockConversion.exchangeRates['USD' + currency] : null) ?? 0 @@ -9,8 +8,7 @@ }} - {{ addPlus && satoshis >= 0 ? '+' : '' }} - {{ (conversions[currency] > -1 ? conversions[currency] : 0) * satoshis / 100000000 | fiatCurrency : digitsInfo : currency }} + {{ addPlus && satoshis >= 0 ? '+' : '' }}{{ (conversions[currency] > -1 ? conversions[currency] : 0) * satoshis / 100000000 | fiatCurrency : digitsInfo : currency }} From fb71136daef38f142bb60eb2965379a4946d0f72 Mon Sep 17 00:00:00 2001 From: softsimon Date: Tue, 7 Mar 2023 11:11:02 +0900 Subject: [PATCH 0511/1466] Pull from transifex --- frontend/src/locale/messages.de.xlf | 191 +++-- frontend/src/locale/messages.es.xlf | 709 +++++++++++------- frontend/src/locale/messages.fr.xlf | 191 +++-- frontend/src/locale/messages.ja.xlf | 711 +++++++++++------- frontend/src/locale/messages.ka.xlf | 1070 ++++++++++++++++++--------- frontend/src/locale/messages.ko.xlf | 833 +++++++++++++-------- frontend/src/locale/messages.lt.xlf | 914 ++++++++++++++--------- frontend/src/locale/messages.sv.xlf | 707 +++++++++++------- 8 files changed, 3236 insertions(+), 2090 deletions(-) diff --git a/frontend/src/locale/messages.de.xlf b/frontend/src/locale/messages.de.xlf index e22f0c7db..c09016a1e 100644 --- a/frontend/src/locale/messages.de.xlf +++ b/frontend/src/locale/messages.de.xlf @@ -775,7 +775,7 @@ src/app/components/about/about.component.html - 385,389 + 375,378 src/app/components/mining-dashboard/mining-dashboard.component.html @@ -1452,7 +1452,7 @@ Unser Mempool- und Blockchain-Explorer für die Bitcoin-Community, der sich auf den Markt für Transaktionsgebühren und das mehrschichtige Ökosystem konzentriert und vollständig selbst gehostet wird, ohne vertrauenswürdige Drittanbieter. src/app/components/about/about.component.html - 13,17 + 13,16 @@ -1460,7 +1460,7 @@ Unternehmenssponsoren src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1469,7 +1469,7 @@ Community-Sponsoren ❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1478,7 +1478,7 @@ Community Integrationen src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1487,7 +1487,7 @@ Community-Allianzen src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1496,7 +1496,7 @@ Projektübersetzer src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1505,7 +1505,7 @@ Projektmitwirkende src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1514,7 +1514,7 @@ Projektmitglieder src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1523,7 +1523,7 @@ Projektbetreuer src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1532,7 +1532,7 @@ Über src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1581,7 +1581,7 @@ src/app/components/amount/amount.component.html - 18,21 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -2686,11 +2686,11 @@ src/app/lightning/node/node.component.html - 52,55 + 55,58 src/app/lightning/node/node.component.html - 96,100 + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2895,15 +2895,15 @@ src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2923,10 +2923,6 @@ src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -4614,7 +4610,7 @@ src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4630,11 +4626,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -5370,7 +5366,7 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats @@ -5488,7 +5484,7 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html @@ -5505,7 +5501,7 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html @@ -5522,7 +5518,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5543,7 +5539,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5556,7 +5552,7 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html @@ -5590,6 +5586,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5626,11 +5626,11 @@ Lightning-Kanal src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5639,11 +5639,11 @@ Letzte Aktualisierung src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5659,11 +5659,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5672,7 +5672,7 @@ Schließdatum src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html @@ -5685,7 +5685,7 @@ Geschlossen von src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by @@ -5694,7 +5694,7 @@ Öffnende Transaktion src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction @@ -5703,7 +5703,7 @@ Schließende Transaktion src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5786,11 +5786,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -6064,10 +6064,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -6121,11 +6117,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -6163,7 +6159,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -6179,11 +6175,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -6221,9 +6217,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -6303,11 +6307,11 @@ src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -6320,7 +6324,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -6333,7 +6337,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -6346,21 +6350,12 @@ country - - No node found for public key "" - Keinen Node gefunden für Public-Key &quot;&quot; - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size Durchschnittliche Kanalgröße src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg @@ -6369,7 +6364,7 @@ Durchschn. Kanalentfernung src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance @@ -6378,7 +6373,7 @@ Farbe src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color @@ -6387,7 +6382,7 @@ ISP src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6400,7 +6395,7 @@ Ausschließlich auf Tor src/app/lightning/node/node.component.html - 93,95 + 96,98 tor @@ -6409,7 +6404,7 @@ Liquiditätswerbung src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad @@ -6418,7 +6413,7 @@ Lease Gebührensatz src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate @@ -6428,7 +6423,7 @@ Lease Basisgebühr src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee @@ -6437,7 +6432,7 @@ Finanzierungsgewicht src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight @@ -6446,7 +6441,7 @@ Kanal-Gebührenrate src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate @@ -6456,7 +6451,7 @@ Kanal-Basisgebühr src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee @@ -6465,7 +6460,7 @@ Compact_lease src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease @@ -6474,7 +6469,7 @@ LV Erweiterungs-Datensätze src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6483,7 +6478,7 @@ Offene Kanäle src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6492,7 +6487,7 @@ Geschlossene Kanäle src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6562,9 +6557,9 @@ 112,107 - - Reachable on Clearnet Only - Nur im Klarnetz erreichbar + + Clearnet and Darknet + Clearnet und Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6574,9 +6569,9 @@ 303,302 - - Reachable on Clearnet and Darknet - Im Klarnetz und Darknet erreichbar + + Clearnet Only (IPv4, IPv6) + Nur Clearnet (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6586,9 +6581,9 @@ 295,294 - - Reachable on Darknet Only - Nur im Darknet erreichbar + + Darknet Only (Tor, I2P, cjdns) + Nur Darknet (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6844,24 +6839,6 @@ 27 - - Top 100 nodes liquidity ranking - Top 100 Nodes nach Liquidität - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - Top 100 Nodes nach Anbindung - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes Älteste Nodes diff --git a/frontend/src/locale/messages.es.xlf b/frontend/src/locale/messages.es.xlf index 064f3dd8b..5bb69bfd9 100644 --- a/frontend/src/locale/messages.es.xlf +++ b/frontend/src/locale/messages.es.xlf @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 303,304 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 304,305 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -406,7 +406,7 @@ Block - B loque + Bloque src/app/bisq/bisq-block/bisq-block.component.html 4 @@ -598,7 +598,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,16 +775,24 @@ src/app/components/about/about.component.html - 385,389 + 375,378 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -795,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -990,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1038,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1054,11 +1070,11 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1108,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1130,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1142,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1158,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1190,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1211,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1233,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1253,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1269,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1440,7 +1452,7 @@ Nuestro explorador de bloques y mempool para la comunidad Bitcoin, con foco en las tasas de mercado de transacciones y el ecosistema multicapa, completamente auto-hosteado sin terceras partes de confianza. src/app/components/about/about.component.html - 13,17 + 13,16 @@ -1448,7 +1460,7 @@ Empresas patrocinadoras 🚀 src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1457,7 +1469,7 @@ Patrocinadores de la comunidad ❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1466,7 +1478,7 @@ Integraciones de la comunidad src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1475,7 +1487,7 @@ Alianzas de la comunidad src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1484,7 +1496,7 @@ Traductores del proyecto src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1493,7 +1505,7 @@ Contribuyentes al proyecto src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1502,7 +1514,7 @@ Miembros del proyecto src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1511,7 +1523,7 @@ Mantenedores del proyecto src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1520,7 +1532,7 @@ Sobre nosotros src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1569,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -1585,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2049,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2065,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2077,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2090,15 +2102,15 @@ Indexando bloques src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2143,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2169,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2187,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2221,19 +2233,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2273,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2301,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2315,11 +2327,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2432,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2462,11 +2474,11 @@ Tamaño src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2494,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2506,11 +2518,11 @@ Peso src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2522,7 +2534,19 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + tamaño por peso + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2538,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Tasa mediana @@ -2556,7 +2571,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2573,11 +2588,11 @@ src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2595,7 +2610,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2608,7 +2623,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2662,12 +2677,20 @@ 60,63 - src/app/lightning/node/node.component.html - 52,55 + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 src/app/lightning/node/node.component.html - 96,100 + 55,58 + + + src/app/lightning/node/node.component.html + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2684,7 +2707,7 @@ Rango de tasas src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2697,7 +2720,7 @@ Basado en el promedio de 140 vBytes de las transacciones segwit nativas src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2721,16 +2744,16 @@ Transaction fee tooltip - - Subsidy + fees: - Subsidio + tasas: + + Subsidy + fees + Subsidio + gastos src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees @@ -2740,7 +2763,7 @@ Esperado src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2749,11 +2772,11 @@ beta src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2762,7 +2785,7 @@ Actua src/app/components/block/block.component.html - 211,215 + 218,222 block.actual @@ -2771,7 +2794,7 @@ Bloque esperado src/app/components/block/block.component.html - 215 + 222 block.expected-block @@ -2780,7 +2803,7 @@ Bloque real src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2789,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2798,7 +2821,7 @@ Raíz de Merkle src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2807,7 +2830,7 @@ Dificultad src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2836,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2845,7 +2868,7 @@ Block Header Hex src/app/components/block/block.component.html - 272,273 + 279,280 block.header @@ -2854,7 +2877,7 @@ Auditoría src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2864,23 +2887,23 @@ Detalles src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2890,20 +2913,16 @@ Error cargando datos src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -2919,7 +2938,7 @@ Por qué está este bloque vacío? src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation @@ -3028,7 +3047,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3267,7 +3286,7 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions @@ -3280,7 +3299,7 @@ src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3293,7 +3312,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3307,7 +3326,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3683,6 +3702,32 @@ dashboard.adjustments + + Broadcast Transaction + Transmitir transacción + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Suerte de las pools (1 semana) @@ -3750,7 +3795,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3780,12 +3825,25 @@ mining.rank + + Avg Health + El promedio de salud + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Bloques vacíos src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3794,7 +3852,7 @@ Todos los mineros src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3803,7 +3861,7 @@ Suerte de pools (7 días) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3812,7 +3870,7 @@ Conteo de pools (7 días) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3821,7 +3879,7 @@ Pools de minado src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4011,8 +4069,7 @@ 24h - 24h - + 24h src/app/components/pool/pool.component.html 147 @@ -4049,24 +4106,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Transmitir transacción - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Transacción en hex @@ -4076,7 +4115,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4201,6 +4240,78 @@ search-form.search-title + + Bitcoin Block Height + Altura del bloque de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Transacción de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Dirección de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Bloque de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Direcciones de Bitcoin + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Nodos de lightning + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Canales de lightning + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Ir a &quot;&quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool en vBytes (sat/vByte) @@ -4485,7 +4596,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4495,11 +4606,11 @@ Visto por primera vez src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4515,11 +4626,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -4529,7 +4640,7 @@ Tiempo esparado de llegada src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4539,7 +4650,7 @@ En unas cuantas horas (o más) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4549,11 +4660,11 @@ Descendiente src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4563,7 +4674,7 @@ Ancestro src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4573,11 +4684,11 @@ Flujo src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4587,7 +4698,7 @@ Esconder diagrama src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4596,7 +4707,7 @@ Mostrar más src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4613,7 +4724,7 @@ Mostras menos src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4626,7 +4737,7 @@ Mostrar diagrama src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4635,7 +4746,7 @@ Tiempo de bloque src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4644,7 +4755,7 @@ Transacción no encontrada src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4653,7 +4764,7 @@ Esperando a que aparezca en la mempool... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4662,7 +4773,7 @@ Ratio de tasa efectiva src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4811,7 +4922,7 @@ Mostrar más inputs para revelar datos de tasa src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4820,7 +4931,7 @@ restantes src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -5071,21 +5182,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Tarifa mínima src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5095,7 +5197,7 @@ Purga src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -5105,7 +5207,7 @@ Uso de memoria src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -5115,10 +5217,19 @@ L-BTC en circulación src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + memepool.space simplemente proporciona datos sobre la red Bitcoin. No puede ayudarle a recuperar fondos, confirmar su transacción más rápdio, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service servicio REST API @@ -5255,7 +5366,7 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats @@ -5373,7 +5484,7 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html @@ -5390,7 +5501,7 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html @@ -5407,7 +5518,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5428,7 +5539,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5441,7 +5552,7 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html @@ -5453,7 +5564,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5475,6 +5586,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5511,11 +5626,11 @@ Canal lightning src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5524,11 +5639,11 @@ Última actualización src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5544,11 +5659,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5557,7 +5672,7 @@ Fecha de cierre src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html @@ -5570,7 +5685,7 @@ Cerrado por src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by @@ -5579,7 +5694,7 @@ Transacción de apertura src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction @@ -5588,7 +5703,7 @@ Transacción de cierre src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5600,6 +5715,30 @@ 37 + + Mutually closed + Cerrado mutuamente + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Forzar cierre + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Fuerza cerrada con sanción + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open Abierto @@ -5647,11 +5786,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -5726,6 +5865,24 @@ shared.sats + + avg + El promedio + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + Media + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Capacidad media @@ -5854,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5907,10 +6064,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -5928,11 +6081,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5964,11 +6117,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -6006,7 +6159,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -6022,11 +6175,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -6064,9 +6217,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -6096,6 +6257,30 @@ lightning.node-fee-distribution + + Outgoing Fees + Gastos de salida + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Gastos de entrada + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Cambio de porcentaje en la última semana @@ -6105,11 +6290,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6122,11 +6307,11 @@ src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -6139,7 +6324,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -6152,7 +6337,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -6165,21 +6350,12 @@ country - - No node found for public key "" - No se encontró un nodo para la clave pública &quot;&quot; - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size Tamaño medio del canal src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg @@ -6188,7 +6364,7 @@ Distancia media del canal src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance @@ -6197,7 +6373,7 @@ Color src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color @@ -6206,7 +6382,7 @@ ISP src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6219,7 +6395,7 @@ Exclusivamente en Tor src/app/lightning/node/node.component.html - 93,95 + 96,98 tor @@ -6228,7 +6404,7 @@ Liquidez ad src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad @@ -6237,7 +6413,7 @@ Ratio de tasa de alquiler src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate @@ -6247,7 +6423,7 @@ Tasa base de alquiler src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee @@ -6256,7 +6432,7 @@ Peso de financiamiento src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight @@ -6265,7 +6441,7 @@ Ratio de tasa de canal src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate @@ -6275,7 +6451,7 @@ Tasa base del canal src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee @@ -6284,7 +6460,7 @@ Alquiler compacto src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease @@ -6293,7 +6469,7 @@ Registros de extensión TLV src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6302,7 +6478,7 @@ Canales abiertos src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6311,7 +6487,7 @@ Canales cerrados src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6357,7 +6533,7 @@ No hay datos de geolocalización disponibles src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6381,9 +6557,8 @@ 112,107 - - Reachable on Clearnet Only - Accesible solo en Clearnet + + Clearnet and Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6393,9 +6568,8 @@ 303,302 - - Reachable on Clearnet and Darknet - Accesible en Clearnet y Darknet + + Clearnet Only (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6405,9 +6579,8 @@ 295,294 - - Reachable on Darknet Only - Accesible solo en Darknet + + Darknet Only (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6663,24 +6836,6 @@ 27 - - Top 100 nodes liquidity ranking - Principales 100 nodos según liquidez - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - Principales 100 nodos según conectividad - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes Nodos más antiguos diff --git a/frontend/src/locale/messages.fr.xlf b/frontend/src/locale/messages.fr.xlf index 476dd8cfe..ccb541bdd 100644 --- a/frontend/src/locale/messages.fr.xlf +++ b/frontend/src/locale/messages.fr.xlf @@ -775,7 +775,7 @@ src/app/components/about/about.component.html - 385,389 + 375,378 src/app/components/mining-dashboard/mining-dashboard.component.html @@ -1452,7 +1452,7 @@ Notre explorateur mempool et blockchain pour la communauté Bitcoin, axé sur le marché des frais de transaction et l'écosystème multicouche, entièrement auto-hébergé sans aucun tiers de confiance. src/app/components/about/about.component.html - 13,17 + 13,16 @@ -1460,7 +1460,7 @@ Entreprises sponsors 🚀 src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1469,7 +1469,7 @@ Sponsors de la communauté ❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1478,7 +1478,7 @@ Intégrations communautaires src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1487,7 +1487,7 @@ Alliances communautaires src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1496,7 +1496,7 @@ Traducteurs src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1505,7 +1505,7 @@ Contributeurs au projet src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1514,7 +1514,7 @@ Membres du projet src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1523,7 +1523,7 @@ Mainteneurs de projet src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1532,7 +1532,7 @@ A propos src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1581,7 +1581,7 @@ src/app/components/amount/amount.component.html - 18,21 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -2686,11 +2686,11 @@ src/app/lightning/node/node.component.html - 52,55 + 55,58 src/app/lightning/node/node.component.html - 96,100 + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2895,15 +2895,15 @@ src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2923,10 +2923,6 @@ src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -4614,7 +4610,7 @@ src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4630,11 +4626,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -5370,7 +5366,7 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats @@ -5488,7 +5484,7 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html @@ -5505,7 +5501,7 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html @@ -5522,7 +5518,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5543,7 +5539,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5556,7 +5552,7 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html @@ -5590,6 +5586,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5626,11 +5626,11 @@ Canal Lightning src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5639,11 +5639,11 @@ Dernière mise à jour src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5659,11 +5659,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5672,7 +5672,7 @@ Date de clôture src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html @@ -5685,7 +5685,7 @@ Fermée par src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by @@ -5694,7 +5694,7 @@ Transaction d'ouverture src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction @@ -5703,7 +5703,7 @@ Transaction de clôture src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5786,11 +5786,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -6064,10 +6064,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -6121,11 +6117,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -6163,7 +6159,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -6179,11 +6175,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -6221,9 +6217,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -6303,11 +6307,11 @@ src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -6320,7 +6324,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -6333,7 +6337,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -6346,21 +6350,12 @@ country - - No node found for public key "" - Aucun nœud trouvé pour la clé publique &quot; &quot; - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size Taille moyenne du canal src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg @@ -6369,7 +6364,7 @@ Distance moyenne des canaux src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance @@ -6378,7 +6373,7 @@ Couleur src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color @@ -6387,7 +6382,7 @@ FAI src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6400,7 +6395,7 @@ Exclusivement sur Tor src/app/lightning/node/node.component.html - 93,95 + 96,98 tor @@ -6409,7 +6404,7 @@ Annonce de liquidité src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad @@ -6418,7 +6413,7 @@ Taux de frais de location src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate @@ -6428,7 +6423,7 @@ Frais de base de location src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee @@ -6437,7 +6432,7 @@ Poids du financement src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight @@ -6446,7 +6441,7 @@ Taux de frais de canal src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate @@ -6456,7 +6451,7 @@ Frais de base du canal src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee @@ -6465,7 +6460,7 @@ Location compacte src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease @@ -6474,7 +6469,7 @@ Enregistrements d'extension TLV src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6483,7 +6478,7 @@ Canaux ouverts src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6492,7 +6487,7 @@ Canaux fermés src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6562,9 +6557,9 @@ 112,107 - - Reachable on Clearnet Only - Accessible uniquement sur Clearnet + + Clearnet and Darknet + Clearnet et Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6574,9 +6569,9 @@ 303,302 - - Reachable on Clearnet and Darknet - Accessible sur Clearnet et Darknet + + Clearnet Only (IPv4, IPv6) + Clearnet seulement (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6586,9 +6581,9 @@ 295,294 - - Reachable on Darknet Only - Accessible uniquement sur Darknet + + Darknet Only (Tor, I2P, cjdns) + Darknet seulement (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6844,24 +6839,6 @@ 27 - - Top 100 nodes liquidity ranking - Classement des 100 meilleurs nœuds par liquidité - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - Classement des 100 meilleurs nœuds par connectivité - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes Nœuds les plus anciens diff --git a/frontend/src/locale/messages.ja.xlf b/frontend/src/locale/messages.ja.xlf index 7c68dd849..84b541b9a 100644 --- a/frontend/src/locale/messages.ja.xlf +++ b/frontend/src/locale/messages.ja.xlf @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 303,304 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 304,305 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -598,7 +598,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,16 +775,24 @@ src/app/components/about/about.component.html - 385,389 + 375,378 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -795,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -990,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1038,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1054,11 +1070,11 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1108,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1130,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1142,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1158,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1190,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1211,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1233,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1253,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1269,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1440,7 +1452,7 @@ ビットコインコミュニティーのための、新興トランザクション手数料市場に中心するメモリープールとブロックチェーンエキスプローラです。 自宅サーバに管理できる上、信頼すべき第三者が不必要です。 src/app/components/about/about.component.html - 13,17 + 13,16 @@ -1448,7 +1460,7 @@ 企業のスポンサー 🚀 src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1457,7 +1469,7 @@ コミュニティーのスポンサー❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1466,7 +1478,7 @@ コミュニティーの統合 src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1475,7 +1487,7 @@ コミュニティーの提携 src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1484,7 +1496,7 @@ プロジェクト翻訳者 src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1493,7 +1505,7 @@ プロジェクト貢献者 src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1502,7 +1514,7 @@ プロジェクトメンバー src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1511,7 +1523,7 @@ プロジェクトメンテナー src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1520,7 +1532,7 @@ このアプリについて src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1537,7 +1549,7 @@ Multisig of - のマルチシグ + / のマルチシグ src/app/components/address-labels/address-labels.component.ts 107 @@ -1569,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -1585,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2049,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2065,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2077,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2090,15 +2102,15 @@ ブロック索引付け中 src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2143,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2169,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2187,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2221,19 +2233,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2273,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2301,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2315,11 +2327,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2432,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2462,11 +2474,11 @@ サイズ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2494,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2506,11 +2518,11 @@ 重み src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2522,7 +2534,19 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + ウェイトあたりのサイズ + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2538,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee 料金の中央値 @@ -2556,7 +2571,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2573,11 +2588,11 @@ src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2595,7 +2610,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2608,7 +2623,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2662,12 +2677,20 @@ 60,63 - src/app/lightning/node/node.component.html - 52,55 + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 src/app/lightning/node/node.component.html - 96,100 + 55,58 + + + src/app/lightning/node/node.component.html + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2684,7 +2707,7 @@ 料金スパン src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2697,7 +2720,7 @@ 140vBytesの平均ネイティブsegwitトランザクションに基づく src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2721,16 +2744,16 @@ Transaction fee tooltip - - Subsidy + fees: - 補助金+手数料: + + Subsidy + fees + 補助金+手数料 src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees @@ -2740,7 +2763,7 @@ 予定 src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2749,11 +2772,11 @@ ベータ src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2762,7 +2785,7 @@ src/app/components/block/block.component.html - 211,215 + 218,222 block.actual @@ -2771,7 +2794,7 @@ 予定ブロック src/app/components/block/block.component.html - 215 + 222 block.expected-block @@ -2780,7 +2803,7 @@ 実ブロック src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2789,7 +2812,7 @@ ビット src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2798,7 +2821,7 @@ マークル・ルート src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2807,7 +2830,7 @@ 難易度 src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2836,7 +2859,7 @@ ノンス src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2845,7 +2868,7 @@ ブロックヘッダーの16進値 src/app/components/block/block.component.html - 272,273 + 279,280 block.header @@ -2854,7 +2877,7 @@ 監査 src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2864,23 +2887,23 @@ 詳細 src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2890,20 +2913,16 @@ データ読み込み中にエラーが発生しました。 src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -2919,7 +2938,7 @@ このブロックはなぜ空ですか? src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation @@ -3028,7 +3047,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3267,7 +3286,7 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions @@ -3280,7 +3299,7 @@ src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3293,7 +3312,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3307,7 +3326,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3683,6 +3702,32 @@ dashboard.adjustments + + Broadcast Transaction + ブロードキャストトランザクション + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) プール運(1週間) @@ -3750,7 +3795,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3780,12 +3825,25 @@ mining.rank + + Avg Health + 平均健全性 + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks 空ブロック src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3794,7 +3852,7 @@ すべてのマイナー src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3803,7 +3861,7 @@ プールの運(1週間) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3812,7 +3870,7 @@ プール数(1週間) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3821,7 +3879,7 @@ マイニングプール src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4048,24 +4106,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - ブロードキャストトランザクション - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex トランザクションの16進値 @@ -4075,7 +4115,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4200,6 +4240,78 @@ search-form.search-title + + Bitcoin Block Height + ビットコインブロック高 + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + ビットコイントランザクション + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + ビットコインアドレス + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + ビットコインブロック + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + ビットコインアドレス + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + ライトニングノード + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + ライトニングチャンネル + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + &quot;&quot;へ + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) vByte単位のMempool(サトシ/vByte) @@ -4484,7 +4596,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4494,11 +4606,11 @@ 最初に見た src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4514,11 +4626,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -4528,7 +4640,7 @@ ETA src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4538,7 +4650,7 @@ 数時間(またはそれ以上) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4548,11 +4660,11 @@ Descendant src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4562,7 +4674,7 @@ Ancestor src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4572,11 +4684,11 @@ 流れ src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4586,7 +4698,7 @@ 図表を非表示 src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4595,7 +4707,7 @@ 詳細を表示 src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4612,7 +4724,7 @@ 詳細を非表示 src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4625,7 +4737,7 @@ 図表を表示 src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4634,7 +4746,7 @@ ロックタイム src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4643,7 +4755,7 @@ トランザクションが見つかりません。 src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4652,7 +4764,7 @@ mempoolに表示されるのを待っています... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4661,7 +4773,7 @@ 実効手数料レート src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4810,7 +4922,7 @@ 手数料データを見るにはもっとインプットを表示する src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4819,7 +4931,7 @@ 残り src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -5070,21 +5182,12 @@ dashboard.latest-transactions - - USD - 米ドル - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee 最低料金 src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5094,7 +5197,7 @@ 削除中 src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -5104,7 +5207,7 @@ メモリ使用量 src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -5114,10 +5217,19 @@ 流通しているL-BTC src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.spaceは単にビットコインネットワークのデータを提供するサービスです。 資金の回収やトランザクションの迅速な承認などの問題についてはお手伝いできません。 + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service REST API @@ -5254,7 +5366,7 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats @@ -5372,7 +5484,7 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html @@ -5389,7 +5501,7 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html @@ -5406,7 +5518,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5427,7 +5539,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5440,7 +5552,7 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html @@ -5452,7 +5564,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5474,6 +5586,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5510,11 +5626,11 @@ ライトニングチャンネル src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5523,11 +5639,11 @@ 最終更新 src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5543,11 +5659,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5556,7 +5672,7 @@ 閉鎖時間 src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html @@ -5569,7 +5685,7 @@ 閉鎖した方: src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by @@ -5578,7 +5694,7 @@ 最初トランザクション src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction @@ -5587,7 +5703,7 @@ 最終トランザクション src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5599,6 +5715,30 @@ 37 + + Mutually closed + 相互合意クローズ + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + 強制クローズ + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + 罰金付き強制クローズ + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open 開く @@ -5646,11 +5786,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -5725,6 +5865,24 @@ shared.sats + + avg + 平均 + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + 中央値 + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity 平均容量 @@ -5853,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5906,10 +6064,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -5927,11 +6081,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5963,11 +6117,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -6005,7 +6159,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -6021,11 +6175,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -6063,9 +6217,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -6095,6 +6257,30 @@ lightning.node-fee-distribution + + Outgoing Fees + 外向き手数料 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + 内向き手数料 + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week この1週間のパーセント変化 @@ -6104,11 +6290,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6121,11 +6307,11 @@ src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -6138,7 +6324,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -6151,7 +6337,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -6164,21 +6350,12 @@ country - - No node found for public key "" - 公開キー&quot;&quot;のノードは見つかりませんでした - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size 平均チャンネルサイズ src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg @@ -6187,7 +6364,7 @@ 平均チャンネル距離 src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance @@ -6196,7 +6373,7 @@ src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color @@ -6205,7 +6382,7 @@ プロバイダー src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6218,7 +6395,7 @@ Tor専用 src/app/lightning/node/node.component.html - 93,95 + 96,98 tor @@ -6227,7 +6404,7 @@ 流動性要請の広告 src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad @@ -6236,7 +6413,7 @@ リース手数料レート src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate @@ -6246,16 +6423,16 @@ リース基本手数料 src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee Funding weight - 資金の重み + 資金のウェイト src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight @@ -6264,7 +6441,7 @@ チャンネル手数料レート src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate @@ -6274,7 +6451,7 @@ チャンネル基本手数料 src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee @@ -6283,7 +6460,7 @@ Compact lease src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease @@ -6292,7 +6469,7 @@ TLV extension records src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6301,7 +6478,7 @@ 開いたチャンネル src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6310,7 +6487,7 @@ 閉じたチャンネル src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6356,7 +6533,7 @@ 地理位置情報データはありません src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6380,9 +6557,9 @@ 112,107 - - Reachable on Clearnet Only - 透明ネットのみから接続可能 + + Clearnet and Darknet + 透明ネットとダークネット src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6392,9 +6569,9 @@ 303,302 - - Reachable on Clearnet and Darknet - 透明ネットとダークネット両方から接続可能 + + Clearnet Only (IPv4, IPv6) + 透明ネットのみ (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6404,9 +6581,9 @@ 295,294 - - Reachable on Darknet Only - ダークネットのみから接続可能 + + Darknet Only (Tor, I2P, cjdns) + ダークネットのみ (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6662,24 +6839,6 @@ 27 - - Top 100 nodes liquidity ranking - ノード流動性上位100個 - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - ノード接続数上位100個 - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes 古いノード diff --git a/frontend/src/locale/messages.ka.xlf b/frontend/src/locale/messages.ka.xlf index c142776da..cc0d90a08 100644 --- a/frontend/src/locale/messages.ka.xlf +++ b/frontend/src/locale/messages.ka.xlf @@ -11,6 +11,7 @@ Slide of + სლაიდი -დან node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -773,16 +775,24 @@ src/app/components/about/about.component.html - 385,389 + 375,378 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1438,7 +1452,7 @@ ბიტკოინ mempool ი და ბლოქჩეინ ექსპლორერი ბიტკოინ community-სთვის, ფოკუსირებული საკომისიოზე და მრავალ შრიან ბიტკოინ ეკოსისტემაზე, სრულიად თვით რეალიზებული მესამე პირთა დაყდრნობის გარეშე src/app/components/about/about.component.html - 13,17 + 13,16 @@ -1446,7 +1460,7 @@ კორპორატიული სპონსორები src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1455,15 +1469,16 @@ კერძო სპონსორები ❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart Community Integrations + მოხალისეების ინტეგრაციები src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1472,7 +1487,7 @@ ალიანსი src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1481,7 +1496,7 @@ მთარგმნელები src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1490,7 +1505,7 @@ მოხალისეები src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1499,7 +1514,7 @@ პროექტის წევრები src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1508,7 +1523,7 @@ პროექტის შემქმნელები src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1517,7 +1532,7 @@ ჩვენს შესახებ src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1529,11 +1544,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + Multisig -დან src/app/components/address-labels/address-labels.component.ts 107 @@ -1565,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -1581,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1664,7 +1680,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1886,7 +1902,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1899,7 +1915,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1912,7 +1928,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1921,7 +1937,7 @@ ქოინების მონაცემების მოძებვნისას მოხდა შეცდომა. src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2034,6 +2050,7 @@ At block: + ბლოკში: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 188 @@ -2044,11 +2061,12 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 Around block: + ბლოკში: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 190 @@ -2059,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2071,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2084,15 +2102,15 @@ ბლოკის ინდექსირება src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2117,6 +2135,7 @@ not available + მიუწვდომელია src/app/components/block-overview-graph/block-overview-graph.component.html 5 @@ -2136,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2162,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2180,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2196,7 +2215,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2214,19 +2233,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2266,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2294,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2308,17 +2327,18 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize Audit status + აუდიტის სტატუსი src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 36 @@ -2327,6 +2347,7 @@ Match + დამთხვევა src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 38 @@ -2335,6 +2356,7 @@ Removed + ამოღებულია src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 39 @@ -2343,6 +2365,7 @@ Marginal fee rate + განსაზღვრული საკომისიო src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 40 @@ -2355,6 +2378,7 @@ Recently broadcasted + ბოლოს მიღებული src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 41 @@ -2363,6 +2387,7 @@ Added + დამატებულია src/app/components/block-overview-tooltip/block-overview-tooltip.component.html 42 @@ -2371,6 +2396,7 @@ Block Prediction Accuracy + ბლოკის წინასწარმეტყველების სიზუსტე src/app/components/block-prediction-graph/block-prediction-graph.component.html 6,8 @@ -2387,6 +2413,7 @@ No data to display yet. Try again later. + მონაცემების ჩვენება ჯერ არ არის შესაძლებელი. Მოგვიანებით სცადეთ. src/app/components/block-prediction-graph/block-prediction-graph.component.ts 108,103 @@ -2402,6 +2429,7 @@ Match rate + დამთხვევის მაჩვენებელი src/app/components/block-prediction-graph/block-prediction-graph.component.ts 189,187 @@ -2416,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2446,15 +2474,15 @@ ზომა src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2478,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2490,11 +2518,11 @@ წონა src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2502,15 +2530,28 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + ზომა მოცემულ რაოდენობაზე + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + ბლოკი src/app/components/block/block-preview.component.html 3,7 @@ -2521,14 +2562,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee საშუალო საკომისიო @@ -2538,7 +2571,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2555,11 +2588,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2577,7 +2610,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2590,7 +2623,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2615,31 +2648,49 @@ Previous Block - - Block health + + Health + ჯანმრთელობა src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown + უცნობი src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 - src/app/lightning/node/node.component.html - 52,55 + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 src/app/lightning/node/node.component.html - 96,100 + 55,58 + + + src/app/lightning/node/node.component.html + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2656,7 +2707,7 @@ საკომისიოს დიაპაზონი src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2669,7 +2720,7 @@ გამომდინარე საშუალო native segwit 140 vByte ტრანსაქციიდან src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2693,49 +2744,66 @@ Transaction fee tooltip - - Subsidy + fees: - სუბსიდია + საკომისიო: + + Subsidy + fees + სუბსიდია და საკომისიო src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected + მოსალოდნელი src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + ბეტა + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual + მიმდინარე src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + მოსალოდნელი ბლოკი src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + მიმდინარე ბლოკი src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2744,7 +2812,7 @@ Bits src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2753,7 +2821,7 @@ Merkle root src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2762,7 +2830,7 @@ სირთულე src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2791,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2800,32 +2868,42 @@ Block Header Hex src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + აუდიტი + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details დეტალები src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2835,20 +2913,16 @@ მოხდა შეცდომა src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -2861,9 +2935,10 @@ Why is this block empty? + რატომ არის ეს ბლოკი ცარიელი? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2909,18 +2984,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward ანაზღაურება @@ -2984,7 +3047,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3150,6 +3213,7 @@ Usually places your transaction in between the second and third mempool blocks + თქვენი ტრანსაქცია წესით ხვდება მეორე და მესამე mempool ის ბლოკებს შორის src/app/components/fees-box/fees-box.component.html 8,9 @@ -3171,6 +3235,7 @@ Usually places your transaction in between the first and second mempool blocks + თქვენი ტრანსაქცია წესით ხვდება პირველ და მემორე mempool ის ბლოკებს შორის src/app/components/fees-box/fees-box.component.html 9,10 @@ -3221,7 +3286,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3234,7 +3299,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3247,7 +3312,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3261,7 +3326,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3313,6 +3378,7 @@ Hashrate & Difficulty + ჰაშრეიტი და სირთულე src/app/components/graphs/graphs.component.html 15,16 @@ -3321,6 +3387,7 @@ Lightning + Lightning src/app/components/graphs/graphs.component.html 31 @@ -3329,6 +3396,7 @@ Lightning Nodes Per Network + Lightning ნოდა ყოველ ნეთვორქზე src/app/components/graphs/graphs.component.html 34 @@ -3349,6 +3417,7 @@ Lightning Network Capacity + Lightning ის შესაძლებლობა src/app/components/graphs/graphs.component.html 36 @@ -3369,6 +3438,7 @@ Lightning Nodes Per ISP + Lightning Nodes Per ISP src/app/components/graphs/graphs.component.html 38 @@ -3381,6 +3451,7 @@ Lightning Nodes Per Country + Lightning ის ნოდა ქვეყნების მიხედვით src/app/components/graphs/graphs.component.html 40 @@ -3397,6 +3468,7 @@ Lightning Nodes World Map + Lightning ის ნოდები მსოფლიოს რუქაზე src/app/components/graphs/graphs.component.html 42 @@ -3413,6 +3485,7 @@ Lightning Nodes Channels World Map + Lightning ის ნოდის ჩანელები მსოფლიო რუქაზე src/app/components/graphs/graphs.component.html 44 @@ -3467,6 +3540,7 @@ Hashrate (MA) + ჰაშრეიტი src/app/components/hashrate-chart/hashrate-chart.component.ts 292,291 @@ -3509,7 +3583,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3532,9 +3606,10 @@ Lightning Explorer + Lightning ექსპლორერი src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3542,20 +3617,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation დოკუმენტაცია src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3635,8 +3702,35 @@ dashboard.adjustments + + Broadcast Transaction + Broadcast Transaction + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) + pool ის იღბალი (1კვ.) src/app/components/pool-ranking/pool-ranking.component.html 9 @@ -3645,6 +3739,7 @@ Pools luck + pool ის იღბალი src/app/components/pool-ranking/pool-ranking.component.html 9,11 @@ -3653,6 +3748,7 @@ 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. + ყველა მაინინგ Pool-ის საერთო იღბალი გასული კვირის განმავლობაში. 100%-ზე მეტი მაჩვენებელი ნიშნავს, რომ მიმდინარე ეპოქისთვის ბლოკების საშუალო დრო 10 წუთზე ნაკლები იყო. src/app/components/pool-ranking/pool-ranking.component.html 11,15 @@ -3661,6 +3757,7 @@ Pools count (1w) + pool ის რაოდენობა (1კვ.) src/app/components/pool-ranking/pool-ranking.component.html 17 @@ -3669,6 +3766,7 @@ Pools count + pool ის რაოდენობა src/app/components/pool-ranking/pool-ranking.component.html 17,19 @@ -3677,6 +3775,7 @@ How many unique pools found at least one block over the past week. + რამდენმა უნიკალურმა Pool-მა მოიპოვა მინიმუმ ერთი ბლოკი გასული კვირის განმავლობაში. src/app/components/pool-ranking/pool-ranking.component.html 19,23 @@ -3696,12 +3795,13 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks The number of blocks found over the past week. + გასული კვირის განმავლობაში მოპოვებული ბლოკების რაოდენობა. src/app/components/pool-ranking/pool-ranking.component.html 27,31 @@ -3725,12 +3825,25 @@ mining.rank + + Avg Health + საშუალო ჯანმრთელობა + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks ცარიელი ბლოკი src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3739,7 +3852,7 @@ ყველა მაინერი src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3748,7 +3861,7 @@ pool ის გამართლება (1კვ) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3757,7 +3870,7 @@ pool ის რაოდენობა (1კვ) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3766,7 +3879,7 @@ მაინინგ pool ები src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3783,6 +3896,7 @@ mining pool + მაინინგ Pool ი src/app/components/pool/pool-preview.component.html 3,5 @@ -3992,24 +4106,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Broadcast Transaction - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Transaction hex @@ -4019,7 +4115,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4051,6 +4147,7 @@ Avg Block Fees + საშუალო ბლოკის საკომისიო src/app/components/reward-stats/reward-stats.component.html 17 @@ -4063,6 +4160,7 @@ Average fees per block in the past 144 blocks + საშუალო ბლოკის საკომისიო ბოლო 144 ბლოკზე src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4071,6 +4169,7 @@ BTC/block + BTC/block src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4080,6 +4179,7 @@ Avg Tx Fee + საშ. ტრანსაქციის საკ. src/app/components/reward-stats/reward-stats.component.html 30 @@ -4124,6 +4224,7 @@ Explore the full Bitcoin ecosystem + გაიცანი ბიტკოინის მთლიანი ეკოსისტემა src/app/components/search-form/search-form.component.html 4,5 @@ -4139,6 +4240,78 @@ search-form.search-title + + Bitcoin Block Height + ბიტკოინის ბლოკის სიმაღლე + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + ბიტკოინის ტრანზაქცია + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + ბიტკოინის მისამართი + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + ბიტკოინის ბლოკი + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + ბიტკოინის მისამართები + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Lightning ნოდა + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Lightning ჩანელი + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Go to &quot;&quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) მემპული vBytes (სატ/vByte) მიხედვით @@ -4396,6 +4569,7 @@ This transaction replaced: + ამ ტრანზაქციამ ჩაანაცვლა: src/app/components/transaction/transaction.component.html 10,12 @@ -4405,6 +4579,7 @@ Replaced + ჩაანაცვლა src/app/components/transaction/transaction.component.html 36,39 @@ -4421,7 +4596,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4431,11 +4606,11 @@ პირველი src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4451,11 +4626,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -4465,7 +4640,7 @@ სავარაუდო ლოდინის დრო src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4475,7 +4650,7 @@ რამდენიმე საათში (ან მეტი) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4485,11 +4660,11 @@ კლებადი src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4499,37 +4674,40 @@ შთამომავალი src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor Flow + Flow src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow Hide diagram + დიაგრამის დამალვა src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram Show more + მეტის ჩვენება src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4543,9 +4721,10 @@ Show less + ნაკლების ჩვენება src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4555,9 +4734,10 @@ Show diagram + დიაგრამის ჩვენება src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4566,7 +4746,7 @@ Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4575,7 +4755,7 @@ ტრანსაქცია ვერ მოიძებნა. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4584,7 +4764,7 @@ დაელოდეთ mempool-ში რომ გამოჩნდეს... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4593,7 +4773,7 @@ ეფექტური საკომისიო src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4739,22 +4919,25 @@ Show more inputs to reveal fee data + მეტი input-ის ჩვენება, საკომისიოს დატადან src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + დარჩენილია src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining other inputs + სხვა input ები src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 12 @@ -4763,6 +4946,7 @@ other outputs + სხვა input ები src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 13 @@ -4771,6 +4955,7 @@ Input + Input src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 42 @@ -4783,6 +4968,7 @@ Output + Output src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html 43 @@ -4795,6 +4981,7 @@ This transaction saved % on fees by using native SegWit + ამ ტრანზაქციამ დაზოგა % საკომისიო SegWit-ის გამოყენებით src/app/components/tx-features/tx-features.component.html 2 @@ -4821,6 +5008,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit + ამ ტრანზაქციამ დაზოგა % საკომისიო SegWit-ის გამოყენებით და შეიძლება დაზოგოს % მეტი native SegWit-ზე სრულად განახლებით. src/app/components/tx-features/tx-features.component.html 4 @@ -4829,6 +5017,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH + ამ ტრანზაქციას შეუძლია დაზოგოს % საკომისიოებზე, გაaნახლეთ native SegWit-იან % SegWit-P2SH-ზე გადაიყვანეთ src/app/components/tx-features/tx-features.component.html 6 @@ -4837,6 +5026,7 @@ This transaction uses Taproot and thereby saved at least % on fees + ეს ტრანზაქცია იყენებს Taproot-ს და ამით ზოგავს მინიმუმ % საკომისიოზე src/app/components/tx-features/tx-features.component.html 12 @@ -4845,6 +5035,7 @@ Taproot + Taproot src/app/components/tx-features/tx-features.component.html 12 @@ -4870,6 +5061,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot + ეს ტრანზაქცია იყენებს Taproot-ს და უკვე დაზოგილია მინიმუმ % საკომისიოებზე, მაგრამ შეიძლება დაზოგოს დამატებითი % Taproot-ის სრულად გამოყენებით src/app/components/tx-features/tx-features.component.html 14 @@ -4878,6 +5070,7 @@ This transaction could save % on fees by using Taproot + ამ ტრანზაქციას შეუძლია დაზოგოს % საკომისიოზე Taproot-ის გამოყენებით src/app/components/tx-features/tx-features.component.html 16 @@ -4886,6 +5079,7 @@ This transaction does not use Taproot + ეს ტრანზაქცია არ იყენებს Taproot-ს src/app/components/tx-features/tx-features.component.html 18 @@ -4903,6 +5097,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping + ეს ტრანზაქცია მხარს უჭერს Replace-by-Fee (RBF), რომელიც იძლევა საკომისიოს შეკუმშვის საშუალებას src/app/components/tx-features/tx-features.component.html 28 @@ -4987,21 +5182,12 @@ dashboard.latest-transactions - - USD - დოლარი - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee მინ. საკომისიო src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5011,7 +5197,7 @@ წაშლა src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5021,7 +5207,7 @@ მეხსიერება src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5031,15 +5217,25 @@ L-BTC ბრუნვაში src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation - - REST API service + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space უბრალოდ გვაწვდით მონაცემებს ბიტკოინის ქსელის შესახებ. ის ვერ დაგეხმარებათ ფინანსების მოძიებაში, თქვენი ტრანზაქციის უფრო სწრაფად დადასტურებაში და ა.შ. src/app/docs/api-docs/api-docs.component.html - 39,40 + 13 + + faq.big-disclaimer + + + REST API service + REST API service + + src/app/docs/api-docs/api-docs.component.html + 41,42 api-docs.title @@ -5048,11 +5244,11 @@ დასასრული src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5061,11 +5257,11 @@ აღწერა src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5073,7 +5269,7 @@ Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5142,6 +5338,7 @@ Base fee + საბაზისო საკომისიო src/app/lightning/channel/channel-box/channel-box.component.html 29 @@ -5154,6 +5351,7 @@ mSats + mSats src/app/lightning/channel/channel-box/channel-box.component.html 35 @@ -5168,12 +5366,13 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats This channel supports zero base fee routing + ეს ჩანელი მხარს უჭერს zero base fee როუტინგს src/app/lightning/channel/channel-box/channel-box.component.html 44 @@ -5182,6 +5381,7 @@ Zero base fee + Zero base fee src/app/lightning/channel/channel-box/channel-box.component.html 45 @@ -5190,6 +5390,7 @@ This channel does not support zero base fee routing + ეს ჩანელი არ უჭერს მხარს zero base fee როუტინგს src/app/lightning/channel/channel-box/channel-box.component.html 50 @@ -5198,6 +5399,7 @@ Non-zero base fee + Non-zero base fee src/app/lightning/channel/channel-box/channel-box.component.html 51 @@ -5206,6 +5408,7 @@ Min HTLC + Min HTLC src/app/lightning/channel/channel-box/channel-box.component.html 57 @@ -5214,6 +5417,7 @@ Max HTLC + Max HTLC src/app/lightning/channel/channel-box/channel-box.component.html 63 @@ -5222,6 +5426,7 @@ Timelock delta + Timelock delta src/app/lightning/channel/channel-box/channel-box.component.html 69 @@ -5230,18 +5435,20 @@ channels + ჩანელები src/app/lightning/channel/channel-box/channel-box.component.html 79 src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels Starting balance + საწყისი ბალანსი src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5251,6 +5458,7 @@ Closing balance + საბოლოო ბალანსი src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5260,6 +5468,7 @@ lightning channel + lightning channel src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5268,81 +5477,86 @@ Inactive + არააქტიური src/app/lightning/channel/channel-preview.component.html 10,11 - - src/app/lightning/channel/channel.component.html - 11,12 - - - src/app/lightning/channels-list/channels-list.component.html - 65,66 - - status.inactive - - - Active - - src/app/lightning/channel/channel-preview.component.html - 11,12 - - - src/app/lightning/channel/channel.component.html - 12,13 - - - src/app/lightning/channels-list/channels-list.component.html - 66,68 - - status.active - - - Closed - - src/app/lightning/channel/channel-preview.component.html - 12,14 - src/app/lightning/channel/channel.component.html 13,14 + + src/app/lightning/channels-list/channels-list.component.html + 68,69 + + status.inactive + + + Active + აქტიური + + src/app/lightning/channel/channel-preview.component.html + 11,12 + + + src/app/lightning/channel/channel.component.html + 14,15 + + + src/app/lightning/channels-list/channels-list.component.html + 69,71 + + status.active + + + Closed + დახურული + + src/app/lightning/channel/channel-preview.component.html + 12,14 + + + src/app/lightning/channel/channel.component.html + 15,16 + src/app/lightning/channels-list/channels-list.component.html 8,13 src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed Created + შექმნილია src/app/lightning/channel/channel-preview.component.html 23,26 src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created Capacity + ტევადობა src/app/lightning/channel/channel-preview.component.html 27,28 src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5350,7 +5564,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5372,6 +5586,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5384,6 +5602,7 @@ ppm + ppm src/app/lightning/channel/channel-preview.component.html 34,35 @@ -5404,25 +5623,27 @@ Lightning channel + Lightning channel-ი src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel Last update + Ბოლო განახლება src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5438,59 +5659,89 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update Closing date + ბოლო თარიღი src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date Closed by + დაიხურა src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by Opening transaction + პირველი ტრანზაქცია src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction Closing transaction + საბოლოო ტრანსაქცია src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction Channel: + ჩანელი: src/app/lightning/channel/channel.component.ts 37 + + Mutually closed + თანაბრად დახურული + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + ჩარევით დახურული + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + ჩარევით დახურული ჯარიმით + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open + გახსნა src/app/lightning/channels-list/channels-list.component.html 5,7 @@ -5499,17 +5750,19 @@ No channels to display + არხები არ არის ნაჩვენები src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list Alias + Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5533,39 +5786,42 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias Status + სტატუსი src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status Channel ID + ჩანელის ID src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id sats + sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5609,8 +5865,27 @@ shared.sats + + avg + საშ. + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + მედ. + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity + საშ. სიმძლავრე src/app/lightning/channels-statistics/channels-statistics.component.html 13,15 @@ -5623,6 +5898,7 @@ Avg Fee Rate + საშუალო საკომისიო src/app/lightning/channels-statistics/channels-statistics.component.html 26,28 @@ -5635,6 +5911,7 @@ The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + როუტინგის კვანძების მიერ დაწესებული საშუალო საკომისიოს განაკვეთი, საკომისიოს განაკვეთი რომელიც > 0.5% ან 5000ppm -ზე არ ითვალისწინებს src/app/lightning/channels-statistics/channels-statistics.component.html 28,30 @@ -5643,6 +5920,7 @@ Avg Base Fee + საშუალო საბაზისო საკომისიო src/app/lightning/channels-statistics/channels-statistics.component.html 41,43 @@ -5655,6 +5933,7 @@ The average base fee charged by routing nodes, ignoring base fees > 5000ppm + საშუალო საბაზისო საკომისიო დაწესებული როუტინგის კვაშირების მიერ, საბაზისო გადასახადების არ ითვალისწინებს > 5000ppm ზე მეტია. src/app/lightning/channels-statistics/channels-statistics.component.html 43,45 @@ -5663,6 +5942,7 @@ Med Capacity + მედ. სიმძლავრე src/app/lightning/channels-statistics/channels-statistics.component.html 59,61 @@ -5671,6 +5951,7 @@ Med Fee Rate + მედ. საკომისიო src/app/lightning/channels-statistics/channels-statistics.component.html 72,74 @@ -5679,6 +5960,7 @@ The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm + მედ. საკომისიო როუტინგის კავშირის გამოყენებით, არ ითვალისწინებს > 0.5% ან 5000ppm -ს src/app/lightning/channels-statistics/channels-statistics.component.html 74,76 @@ -5687,6 +5969,7 @@ Med Base Fee + მედ. საბაზისო საკომისიო src/app/lightning/channels-statistics/channels-statistics.component.html 87,89 @@ -5695,6 +5978,7 @@ The median base fee charged by routing nodes, ignoring base fees > 5000ppm + მედ. საბაზისო საკომისიო როუტინგის კავშირის მიხედვით, არ ითვალისწინებს საბაზისო საკომისიოს > 5000ppm src/app/lightning/channels-statistics/channels-statistics.component.html 89,91 @@ -5703,6 +5987,7 @@ Lightning node group + Lightning ნოდ ჯგუფი src/app/lightning/group/group-preview.component.html 3,5 @@ -5715,6 +6000,7 @@ Nodes + ნოდა src/app/lightning/group/group-preview.component.html 25,29 @@ -5725,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5751,6 +6037,7 @@ Liquidity + ლიკვიდურობა src/app/lightning/group/group-preview.component.html 29,31 @@ -5777,16 +6064,13 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity Channels + ჩანელი src/app/lightning/group/group-preview.component.html 40,43 @@ -5797,11 +6081,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5833,11 +6117,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -5847,6 +6131,7 @@ Average size + საშუალო ზომა src/app/lightning/group/group-preview.component.html 44,46 @@ -5859,6 +6144,7 @@ Location + ლოკაცია src/app/lightning/group/group.component.html 74,77 @@ -5873,7 +6159,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5889,16 +6175,17 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location Network Statistics + ქსელის სტატისტიკა src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 10 @@ -5907,6 +6194,7 @@ Channels Statistics + ჩანელის სტატისტიკა src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 24 @@ -5915,6 +6203,7 @@ Lightning Network History + Lightning ქსელის ისტორია src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -5923,13 +6212,22 @@ Liquidity Ranking + ლიკვიდურობის რეიტინგი src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -5939,6 +6237,7 @@ Connectivity Ranking + კავშირის რეიტინგი src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 76 @@ -5951,113 +6250,139 @@ Fee distribution + საკომისიოს განაწილება src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + გამავალი საკომისიო + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + შემომავალი საკომისიოები + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week + პროცენტული ცვლილება გასულ კვირას src/app/lightning/node-statistics/node-statistics.component.html 5,7 src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week Lightning node + Lightning ნოდა src/app/lightning/node/node-preview.component.html 3,5 src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node Active capacity + საშუალო სიმძლავრე src/app/lightning/node/node-preview.component.html 20,22 src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity Active channels + აქტიური ჩანელი src/app/lightning/node/node-preview.component.html 26,30 src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels Country + ქვეყანა src/app/lightning/node/node-preview.component.html 44,47 country - - No node found for public key "" - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size + არხის საშუალო ზომა src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg Avg channel distance + არხის საშუალო მანძილი src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance Color + ფერი src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color ISP + ISP src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6067,96 +6392,108 @@ Exclusively on Tor + ექსკლუზიურად Tor-ზე src/app/lightning/node/node.component.html - 93,95 + 96,98 tor Liquidity ad + Liquidity ad src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad Lease fee rate + იჯარის საკომისიო src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate Lease base fee + იჯარის საბაზისო საკომისიო src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee Funding weight + დაფინანსების განაკვეთი src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight Channel fee rate + ჩანელის საკომისიო src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate Channel base fee + ჩანელის საბაზისო საკომისიო src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee Compact lease + კომპაქტური იჯარა src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease TLV extension records + TLV ჩანაწერები src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records Open channels + ჩანელის გახსნა src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels Closed channels + ჩანელის დახურვა src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels Node: + ნოდა: src/app/lightning/node/node.component.ts 60 @@ -6164,6 +6501,7 @@ (Tor nodes excluded) + (Tor nodes excluded) src/app/lightning/nodes-channels-map/nodes-channels-map.component.html 8,11 @@ -6184,6 +6522,7 @@ Lightning Nodes Channels World Map + Lightning ნოდების ჩანელები მსოფლიო რუქაზე src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts 69 @@ -6191,13 +6530,15 @@ No geolocation data available + გეოლოკაციის მონაცემები მიუწვდომელია src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 Active channels map + აქტირუი ჩანელები რუქაზე src/app/lightning/nodes-channels/node-channels.component.html 2,3 @@ -6206,6 +6547,7 @@ Indexing in progress + ინდექსირება მუშავდება src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6215,8 +6557,9 @@ 112,107 - - Reachable on Clearnet Only + + Clearnet and Darknet + Clearnet ი და Darknet ი src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6226,8 +6569,9 @@ 303,302 - - Reachable on Clearnet and Darknet + + Clearnet Only (IPv4, IPv6) + Clearnet Only (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6237,8 +6581,9 @@ 295,294 - - Reachable on Darknet Only + + Darknet Only (Tor, I2P, cjdns) + Darknet Only (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6250,6 +6595,7 @@ Share + გაზიარება src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html 29,31 @@ -6262,6 +6608,7 @@ nodes + ნოდა src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 103,102 @@ -6277,6 +6624,7 @@ BTC capacity + BTC სიმძლავრე src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts 104,102 @@ -6284,6 +6632,7 @@ Lightning nodes in + Lightning ნოდა ში src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6292,6 +6641,7 @@ ISP Count + ISP Count src/app/lightning/nodes-per-country/nodes-per-country.component.html 34,38 @@ -6300,6 +6650,7 @@ Top ISP + Top ISP src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6308,6 +6659,7 @@ Lightning nodes in + Lightning ნოდები ში src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6315,6 +6667,7 @@ Clearnet Capacity + Clearnet სიმძლავრე src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 6,8 @@ -6327,6 +6680,7 @@ How much liquidity is running on nodes advertising at least one clearnet IP address + რამდენი ლიკვიდურობა არის კვაშირზე, რომლებიც იყენებენ მინიმუმ ერთი წმინდა IP მისამართს src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 8,9 @@ -6335,6 +6689,7 @@ Unknown Capacity + უცნობი სიმძლავრე src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 13,15 @@ -6347,6 +6702,7 @@ How much liquidity is running on nodes which ISP was not identifiable + რამდენად ლიკვიდურია კავშირი, რომელთა იდენტიფიცირებაც ISP არ იყო src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 15,16 @@ -6355,6 +6711,7 @@ Tor Capacity + Tor სიმძლავრე src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 20,22 @@ -6367,6 +6724,7 @@ How much liquidity is running on nodes advertising only Tor addresses + რამდენად ლიკვიდურია მხოლოდ Tor-ის მისამართებზე ნოდები src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 22,23 @@ -6375,6 +6733,7 @@ Top 100 ISPs hosting LN nodes + Top 100 ISPs hosting LN nodes src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6383,6 +6742,7 @@ BTC + BTC src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts 158,156 @@ -6394,6 +6754,7 @@ Lightning ISP + Lightning ISP src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6402,6 +6763,7 @@ Top country + ტოპ ქვეყანა src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6414,6 +6776,7 @@ Top node + ტოპ ნოდა src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6422,6 +6785,7 @@ Lightning nodes on ISP: [AS] + Lightning nodes on ISP: [AS] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6433,6 +6797,7 @@ Lightning nodes on ISP: + Lightning nodes on ISP: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6441,6 +6806,7 @@ ASN + ASN src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 11,14 @@ -6449,6 +6815,7 @@ Active nodes + აქტიური ნოდა src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6457,6 +6824,7 @@ Top 100 oldest lightning nodes + ტოპ 100 ყველაზე ძველი ნოდა src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6465,29 +6833,15 @@ Oldest lightning nodes + ყველაზე ძველი lightning ნოდები src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 - - Top 100 nodes liquidity ranking - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes + ყველაზე ძველი ნოდები src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html 36 @@ -6496,6 +6850,7 @@ Top lightning nodes + ტოპ lightning ნოდები src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 @@ -6503,6 +6858,7 @@ Indexing in progress + ინდექსაცია მიმდინარეობს src/app/lightning/statistics-chart/lightning-statistics-chart.component.html 52,55 diff --git a/frontend/src/locale/messages.ko.xlf b/frontend/src/locale/messages.ko.xlf index 2930ca097..1d2be3910 100644 --- a/frontend/src/locale/messages.ko.xlf +++ b/frontend/src/locale/messages.ko.xlf @@ -11,6 +11,7 @@ Slide of + 슬라이드 / node_modules/src/carousel/carousel.ts 175,181 @@ -147,6 +148,7 @@ + node_modules/src/progressbar/progressbar.ts 30,33 @@ -357,11 +359,11 @@ src/app/components/block/block.component.html - 290,291 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -382,11 +384,11 @@ src/app/components/block/block.component.html - 291,292 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -424,7 +426,7 @@ src/app/components/block/block.component.html - 40,41 + 38,39 block.hash @@ -449,7 +451,7 @@ src/app/components/block/block.component.html - 44,46 + 42,44 src/app/components/blocks-list/blocks-list.component.html @@ -592,11 +594,11 @@ src/app/components/master-page/master-page.component.html - 49,51 + 48,50 src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -773,16 +775,24 @@ src/app/components/about/about.component.html - 385,389 + 375,378 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -793,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -988,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1036,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1052,11 +1070,11 @@ src/app/components/block/block.component.html - 246,247 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1106,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1128,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1140,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1156,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1188,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1209,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1231,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1251,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1267,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1438,7 +1452,7 @@ 비트코인 커뮤니티를 위한 멤풀 및 블록체인 탐색기는 트랜잭션 수수료 시장과 다계층 생태계에 중점을 두고 있으며 제3자 없이 자체 호스팅하고 있습니다. src/app/components/about/about.component.html - 13,17 + 13,16 @@ -1446,7 +1460,7 @@ 기업 스폰서🚀 src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1455,7 +1469,7 @@ 커뮤니티 스폰서❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1463,7 +1477,7 @@ Community Integrations src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1472,7 +1486,7 @@ 커뮤니티 연합 src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1481,7 +1495,7 @@ 프로젝트 번역자 src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1490,7 +1504,7 @@ 프로젝트 참여자 목록 src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1499,7 +1513,7 @@ 프로젝트 멤버들 src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1508,7 +1522,7 @@ 프로젝트 관리자 목록 src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1517,7 +1531,7 @@ 대하여 src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1529,11 +1543,12 @@ src/app/components/master-page/master-page.component.html - 58,61 + 57,60 Multisig of + 다중서명 / src/app/components/address-labels/address-labels.component.ts 107 @@ -1565,7 +1580,7 @@ src/app/components/amount/amount.component.html - 6,9 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -1581,7 +1596,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1664,7 +1679,7 @@ src/app/components/assets/assets.component.html - 29,31 + 31,33 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -1886,7 +1901,7 @@ src/app/components/assets/assets.component.html - 30,31 + 32,33 Asset ticker header @@ -1899,7 +1914,7 @@ src/app/components/assets/assets.component.html - 31,34 + 33,36 Asset Issuer Domain header @@ -1912,7 +1927,7 @@ src/app/components/assets/assets.component.html - 32,36 + 34,38 Asset ID header @@ -1921,7 +1936,7 @@ 자산 데이터 로딩 실패 src/app/components/assets/assets.component.html - 48,53 + 50,55 Asset data load error @@ -2034,6 +2049,7 @@ At block: + 블록: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 188 @@ -2044,11 +2060,12 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 Around block: + 대략 블록: src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts 190 @@ -2059,7 +2076,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2071,7 +2088,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2084,15 +2101,15 @@ 블록 인덱싱 중 src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2136,7 +2153,7 @@ src/app/components/transaction/transaction.component.html - 476 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2162,11 +2179,11 @@ src/app/components/transaction/transaction.component.html - 476,477 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2180,11 +2197,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 479,481 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2196,7 +2213,7 @@ src/app/lightning/channels-list/channels-list.component.html - 38,39 + 41,42 Transaction fee rate transaction.fee-rate @@ -2214,19 +2231,19 @@ src/app/components/block/block.component.html - 125,128 + 124,127 src/app/components/block/block.component.html - 129 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2266,27 +2283,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 481,484 + 477,480 src/app/components/transaction/transaction.component.html - 492,494 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2294,7 +2311,7 @@ src/app/dashboard/dashboard.component.html - 204,208 + 213,217 sat/vB shared.sat-vbyte @@ -2308,11 +2325,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2416,7 +2433,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2446,15 +2463,15 @@ 사이즈 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html - 50,52 + 48,50 src/app/components/blocks-list/blocks-list.component.html @@ -2478,7 +2495,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2490,11 +2507,11 @@ 무게 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2502,15 +2519,27 @@ src/app/components/block/block.component.html - 54,56 + 52,54 src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 Block + 블록 src/app/components/block/block-preview.component.html 3,7 @@ -2521,14 +2550,6 @@ shared.block-title - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee 평균 수수료 @@ -2538,7 +2559,7 @@ src/app/components/block/block.component.html - 128,129 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2555,11 +2576,11 @@ src/app/components/block/block.component.html - 133,135 + 138,140 src/app/components/block/block.component.html - 159,162 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2577,7 +2598,7 @@ src/app/components/block/block.component.html - 168,170 + 173,175 block.miner @@ -2590,7 +2611,7 @@ src/app/components/block/block.component.ts - 227 + 242 @@ -2615,31 +2636,47 @@ Previous Block - - Block health + + Health src/app/components/block/block.component.html - 58,61 + 56 - block.health + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + + src/app/components/blocks-list/blocks-list.component.html + 18,19 + + latest-blocks.health Unknown src/app/components/block/block.component.html - 69,72 + 67,70 src/app/components/blocks-list/blocks-list.component.html 60,63 - src/app/lightning/node/node.component.html - 52,55 + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 src/app/lightning/node/node.component.html - 96,100 + 55,58 + + + src/app/lightning/node/node.component.html + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2656,7 +2693,7 @@ 수수료 범위 src/app/components/block/block.component.html - 124,125 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2669,7 +2706,7 @@ 평균 native segwit 트랜잭션의 140 vBytes 기준 src/app/components/block/block.component.html - 129,131 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2693,49 +2730,62 @@ Transaction fee tooltip - - Subsidy + fees: - 채굴된 양 + 수수료: + + Subsidy + fees src/app/components/block/block.component.html - 148,151 + 153,156 src/app/components/block/block.component.html - 163,167 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees - - Projected + + Expected src/app/components/block/block.component.html - 210,212 + 216 - block.projected + block.expected + + + beta + + src/app/components/block/block.component.html + 216,217 + + + src/app/components/block/block.component.html + 222,224 + + beta Actual src/app/components/block/block.component.html - 212,216 + 218,222 block.actual - - Projected Block + + Expected Block + 예상된 블록 src/app/components/block/block.component.html - 216,218 + 222 - block.projected-block + block.expected-block Actual Block + 실제 블록 src/app/components/block/block.component.html - 225,227 + 231 block.actual-block @@ -2744,7 +2794,7 @@ 비트 src/app/components/block/block.component.html - 250,252 + 256,258 block.bits @@ -2753,7 +2803,7 @@ 머클 루트 src/app/components/block/block.component.html - 254,256 + 260,262 block.merkle-root @@ -2762,7 +2812,7 @@ 난이도 src/app/components/block/block.component.html - 265,268 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2791,7 +2841,7 @@ 임시값 src/app/components/block/block.component.html - 269,271 + 275,277 block.nonce @@ -2800,32 +2850,41 @@ 블록헤더 16진수 src/app/components/block/block.component.html - 273,274 + 279,280 block.header + + Audit + + src/app/components/block/block.component.html + 297,301 + + Toggle Audit + block.toggle-audit + Details 자세히 src/app/components/block/block.component.html - 284,288 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2835,20 +2894,16 @@ 데이터 불러오기 실패. src/app/components/block/block.component.html - 303,305 + 323,325 src/app/components/block/block.component.html - 339,343 + 362,366 src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -2861,9 +2916,10 @@ Why is this block empty? + 이 블록은 왜 트랜잭션이 없나요? src/app/components/block/block.component.html - 361,367 + 384,390 block.empty-block-explanation @@ -2909,18 +2965,6 @@ latest-blocks.mined - - Health - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - - src/app/components/blocks-list/blocks-list.component.html - 18,19 - - latest-blocks.health - Reward 보상 @@ -2984,7 +3028,7 @@ src/app/dashboard/dashboard.component.html - 210,214 + 219,223 dashboard.txs @@ -3221,7 +3265,7 @@ src/app/dashboard/dashboard.component.html - 237,238 + 246,247 dashboard.incoming-transactions @@ -3234,7 +3278,7 @@ src/app/dashboard/dashboard.component.html - 240,243 + 249,252 dashboard.backend-is-synchronizing @@ -3247,7 +3291,7 @@ src/app/dashboard/dashboard.component.html - 245,250 + 254,259 vB/s shared.vbytes-per-second @@ -3261,7 +3305,7 @@ src/app/dashboard/dashboard.component.html - 208,209 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3321,6 +3365,7 @@ Lightning + 라이트닝 src/app/components/graphs/graphs.component.html 31 @@ -3329,6 +3374,7 @@ Lightning Nodes Per Network + 네트워크당 라이트닝 노드 src/app/components/graphs/graphs.component.html 34 @@ -3509,7 +3555,7 @@ src/app/components/master-page/master-page.component.html - 52,54 + 51,53 src/app/components/statistics/statistics.component.ts @@ -3534,7 +3580,7 @@ Lightning Explorer src/app/components/master-page/master-page.component.html - 44,45 + 44,47 src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts @@ -3542,20 +3588,12 @@ master-page.lightning - - beta - - src/app/components/master-page/master-page.component.html - 45,48 - - beta - Documentation 문서 src/app/components/master-page/master-page.component.html - 55,57 + 54,56 src/app/docs/docs/docs.component.html @@ -3635,6 +3673,32 @@ dashboard.adjustments + + Broadcast Transaction + 트랜잭션을 비트코인 네트워크에 전송하기 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) @@ -3696,7 +3760,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3725,12 +3789,24 @@ mining.rank + + Avg Health + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks 빈 블록 src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3739,7 +3815,7 @@ 모든 채굴자 src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3748,7 +3824,7 @@ 채굴 풀들의 운 (1주) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3757,7 +3833,7 @@ 채굴 풀 개수 src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3766,7 +3842,7 @@ 채굴 풀 src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3992,24 +4068,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - 트랜잭션을 비트코인 네트워크에 전송하기 - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,161 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex 트랜잭션 16진수 @@ -4019,7 +4077,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4139,6 +4197,77 @@ search-form.search-title + + Bitcoin Block Height + 비트코인 블록 높이 + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + 비트코인 트랜잭션 + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + 비트코인 주소 + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + 비트코인 블록 + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + 비트코인 주소들 + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + 라이트닝 노드들 + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + 라이트닝 채널들 + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool by vBytes (sat.vByte) @@ -4421,7 +4550,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4431,11 +4560,11 @@ 처음으로 감지됨 src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4451,11 +4580,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -4465,7 +4594,7 @@ 컨펌까지 남은 예상시간 src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4475,7 +4604,7 @@ 몇 시간 후 (또는 그 이상) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4485,11 +4614,11 @@ 자손 src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4499,7 +4628,7 @@ 조상 src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4508,11 +4637,11 @@ Flow src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4521,15 +4650,16 @@ Hide diagram src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram Show more + 더 보기 src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4543,9 +4673,10 @@ Show less + 숨기기 src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4555,9 +4686,10 @@ Show diagram + 도표 보기 src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4566,7 +4698,7 @@ 잠금 시간 src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4575,7 +4707,7 @@ 트랜잭션을 찾을 수 없음 src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4584,7 +4716,7 @@ 멤풀에 포함될때까지 대기하는 중... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4593,7 +4725,7 @@ 유효 수수료율 src/app/components/transaction/transaction.component.html - 489,492 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4741,7 +4873,7 @@ Show more inputs to reveal fee data src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4749,7 +4881,7 @@ remaining src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4987,21 +5119,12 @@ dashboard.latest-transactions - - USD - 달러 - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee 최소 수수료 src/app/dashboard/dashboard.component.html - 201,202 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5011,7 +5134,7 @@ 퍼징 src/app/dashboard/dashboard.component.html - 202,203 + 211,212 Purgin below fee dashboard.purging @@ -5021,7 +5144,7 @@ 멤풀 메모리 사용량 src/app/dashboard/dashboard.component.html - 214,215 + 223,224 Memory usage dashboard.memory-usage @@ -5031,15 +5154,23 @@ 유통 중인 L-BTC src/app/dashboard/dashboard.component.html - 228,230 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service src/app/docs/api-docs/api-docs.component.html - 39,40 + 41,42 api-docs.title @@ -5048,11 +5179,11 @@ 엔드포인트 src/app/docs/api-docs/api-docs.component.html - 48,49 + 50,51 src/app/docs/api-docs/api-docs.component.html - 102,105 + 104,107 Api docs endpoint @@ -5061,11 +5192,11 @@ 설명 src/app/docs/api-docs/api-docs.component.html - 67,68 + 69,70 src/app/docs/api-docs/api-docs.component.html - 106,107 + 108,109 @@ -5073,7 +5204,7 @@ 기본 푸시: 작업: 'want', 데이터 : [ 'blocks', ...] 을 사용하여 푸시하려는 것을 표시할 수 있습니다. 사용 가능: blocks, mempool-blocks, live-2h-chart, 및stats.주소와 관련된 트랜잭션을 푸시:’track-address’: ‘3PbJ…bF9B’을 사용하여 인풋 또는 아웃풋 주소를 포함한 새로운 트랜잭션을 받을 수 있습니다. 트랜잭션들은 행렬로 반환합니다. 새로운 트랜잭션일 경우address-transactions이고, 새롭게 컨펌된 트랜잭션일 경우block-transactions입니다. src/app/docs/api-docs/api-docs.component.html - 107,108 + 109,110 api-docs.websocket.websocket @@ -5168,7 +5299,7 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats @@ -5236,7 +5367,7 @@ src/app/lightning/channels-list/channels-list.component.html - 120,121 + 123,124 lightning.x-channels @@ -5274,11 +5405,11 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html - 65,66 + 68,69 status.inactive @@ -5290,11 +5421,11 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html - 66,68 + 69,71 status.active @@ -5306,7 +5437,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5314,7 +5445,7 @@ src/app/lightning/channels-list/channels-list.component.html - 68,70 + 71,73 status.closed @@ -5326,7 +5457,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5338,11 +5469,11 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html - 40,43 + 43,46 src/app/lightning/node-statistics/node-statistics.component.html @@ -5350,7 +5481,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5372,6 +5503,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5406,11 +5541,11 @@ Lightning channel src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5418,11 +5553,11 @@ Last update src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5438,11 +5573,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5450,11 +5585,11 @@ Closing date src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html - 39,40 + 42,43 lightning.closing_date @@ -5462,7 +5597,7 @@ Closed by src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by @@ -5470,7 +5605,7 @@ Opening transaction src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction @@ -5478,7 +5613,7 @@ Closing transaction src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5489,6 +5624,27 @@ 37 + + Mutually closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open @@ -5501,7 +5657,7 @@ No channels to display src/app/lightning/channels-list/channels-list.component.html - 29,35 + 29,37 lightning.empty-channels-list @@ -5509,7 +5665,7 @@ Alias src/app/lightning/channels-list/channels-list.component.html - 35,37 + 38,40 src/app/lightning/group/group.component.html @@ -5533,11 +5689,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -5545,7 +5701,7 @@ Status src/app/lightning/channels-list/channels-list.component.html - 37,38 + 40,41 status @@ -5553,7 +5709,7 @@ Channel ID src/app/lightning/channels-list/channels-list.component.html - 41,45 + 44,48 channels.id @@ -5561,11 +5717,11 @@ sats src/app/lightning/channels-list/channels-list.component.html - 60,64 + 63,67 src/app/lightning/channels-list/channels-list.component.html - 84,88 + 87,91 src/app/lightning/channels-statistics/channels-statistics.component.html @@ -5609,6 +5765,22 @@ shared.sats + + avg + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity @@ -5725,11 +5897,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5777,10 +5949,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -5797,11 +5965,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5833,11 +6001,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -5873,7 +6041,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5889,11 +6057,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -5927,9 +6095,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -5957,6 +6133,28 @@ lightning.node-fee-distribution + + Outgoing Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week @@ -5965,11 +6163,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -5981,11 +6179,11 @@ src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -5997,7 +6195,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -6009,7 +6207,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -6021,19 +6219,11 @@ country - - No node found for public key "" - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg @@ -6041,23 +6231,25 @@ Avg channel distance src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance Color + src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color ISP + 통신사 src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6069,15 +6261,16 @@ Exclusively on Tor src/app/lightning/node/node.component.html - 93,95 + 96,98 tor Liquidity ad + 유동성 광고 src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad @@ -6085,7 +6278,7 @@ Lease fee rate src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate @@ -6094,7 +6287,7 @@ Lease base fee src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee @@ -6102,7 +6295,7 @@ Funding weight src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight @@ -6110,7 +6303,7 @@ Channel fee rate src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate @@ -6119,7 +6312,7 @@ Channel base fee src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee @@ -6127,7 +6320,7 @@ Compact lease src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease @@ -6135,7 +6328,7 @@ TLV extension records src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6143,7 +6336,7 @@ Open channels src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6151,7 +6344,7 @@ Closed channels src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6193,7 +6386,7 @@ No geolocation data available src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6215,8 +6408,8 @@ 112,107 - - Reachable on Clearnet Only + + Clearnet and Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6226,8 +6419,8 @@ 303,302 - - Reachable on Clearnet and Darknet + + Clearnet Only (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6237,8 +6430,8 @@ 295,294 - - Reachable on Darknet Only + + Darknet Only (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6470,22 +6663,6 @@ 27 - - Top 100 nodes liquidity ranking - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes diff --git a/frontend/src/locale/messages.lt.xlf b/frontend/src/locale/messages.lt.xlf index d28aaabc5..1360df21c 100644 --- a/frontend/src/locale/messages.lt.xlf +++ b/frontend/src/locale/messages.lt.xlf @@ -11,7 +11,7 @@ Slide of - Skaidrė + Langas node_modules/src/carousel/carousel.ts 175,181 @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 303,304 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 304,305 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -598,7 +598,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -629,7 +629,7 @@ Bitcoin Markets - Bitkoino rinkos + Bitkoino Rinkos src/app/bisq/bisq-dashboard/bisq-dashboard.component.html 21,24 @@ -721,7 +721,7 @@ Bisq Price Index - "Bisq" kainos indeksas + "Bisq" Kainos Indeksas src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 9,11 @@ -730,7 +730,7 @@ Bisq Market Price - "Bisq" rinkos kaina + "Bisq" Rinkos Kaina src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 21,23 @@ -768,41 +768,57 @@ Terms of Service - Paslaugų teikimo sąlygos + Paslaugų Teikimo Sąlygos src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 111,113 src/app/components/about/about.component.html - 385,389 + 375,378 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service Privacy Policy - Privatumo politika + Privatumo Politika src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -990,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1038,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1054,17 +1070,17 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version Transaction - Operacija + Sandoris src/app/bisq/bisq-transaction/bisq-transaction.component.html 6,11 @@ -1108,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1130,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1142,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1158,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1190,17 +1202,17 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details Inputs & Outputs - Įvestys ir išvestys + Įvestys ir Išvestys src/app/bisq/bisq-transaction/bisq-transaction.component.html 97,105 @@ -1211,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1233,12 +1245,12 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 BSQ Transactions - BSQ operacijos + BSQ Sandoriai src/app/bisq/bisq-transactions/bisq-transactions.component.html 2,5 @@ -1253,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1269,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1396,7 +1408,7 @@ Select all - Pasirinkti viską + Žymėti viską src/app/bisq/bisq-transactions/bisq-transactions.component.ts 58,56 @@ -1404,7 +1416,7 @@ Unselect all - Atšaukti visus pasirinkimus + Nežymėti nieko src/app/bisq/bisq-transactions/bisq-transactions.component.ts 59 @@ -1420,7 +1432,7 @@ Volume - Prekybos apimtis + Apimtis src/app/bisq/lightweight-charts-area/lightweight-charts-area.component.ts 100 @@ -1428,7 +1440,7 @@ The Mempool Open Source Project - „Mempool“ atvirojo kodo projektas + „Mempool“ Atviro Kodo Projektas src/app/components/about/about.component.html 12,13 @@ -1437,27 +1449,27 @@ 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. - Nuo trečiųjų šalių prieglobos paslaugų nepriklausoma BTC operacijų mokesčių ir daugiasluoksnės Bitkoino ekosistemos analizei skirta mempulo ir blokų grandinės naršyklė. + Nuo trečiųjų šalių paslaugų nepriklausoma BTC sandorių ir daugiasluoksnės Bitkoino ekosistemos analizei skirta atminties baseino bei blokų grandinės naršyklė. src/app/components/about/about.component.html - 13,17 + 13,16 Enterprise Sponsors 🚀 - Rėmėjai iš verslo 🚀 + Verslo Rėmėjai 🚀 src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket Community Sponsors ❤️ - Rėmėjai iš bendruomenės ❤️ + Bendruomenės Rėmėjai ❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1466,7 +1478,7 @@ Bendruomenės Integracijos src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1475,7 +1487,7 @@ Bendruomenės Aljansai src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1484,7 +1496,7 @@ Projekto Vertėjai src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1493,7 +1505,7 @@ Projekto Pagalbininkai src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1502,7 +1514,7 @@ Projekto Nariai src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1511,7 +1523,7 @@ Projekto Prižiūrėtojai src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1520,7 +1532,7 @@ Apie src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1569,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -1585,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -1638,7 +1650,7 @@ There many transactions on this address, more than your backend can handle. See more on setting up a stronger backend. Consider viewing this address on the official Mempool website instead: - Šiuo adresu yra daug operacijų, daugiau nei gali parodyti jūsų vidinė sistema. Žr. daugiau apie , kaip nustatyti galingesnę vidinę sistemą . Patikrinkite šį adresą oficialioje „Mempool“ svetainėje: + Šiuo adresu yra daug sandorių, daugiau nei gali parodyti jūsų sistema. Žr. daugiau apie , kaip pasidaryti našesnę sistemą . Tikrinkite šį adresą oficialioje „Mempool“ svetainėje: src/app/components/address/address.component.html 134,137 @@ -1779,7 +1791,7 @@ Error loading asset data. - Įkeliant lėšų duomenis įvyko klaida. + Įkeliant turto duomenis įvyko klaida. src/app/components/asset/asset.component.html 150 @@ -1788,7 +1800,7 @@ Asset: - Lėšos: + Turtai: src/app/components/asset/asset.component.ts 75 @@ -1796,7 +1808,7 @@ Group of assets - lėšų grupė + turtų grupė src/app/components/assets/asset-group/asset-group.component.html 8,9 @@ -1808,7 +1820,7 @@ Assets - Lėšos + Turtai src/app/components/assets/assets-nav/assets-nav.component.html 3 @@ -1829,7 +1841,7 @@ Featured - Rodomas + Pateikta src/app/components/assets/assets-nav/assets-nav.component.html 9 @@ -1865,7 +1877,7 @@ Search asset - Ieškoti lėšų + Ieškoti turto src/app/components/assets/assets-nav/assets-nav.component.html 19 @@ -1909,7 +1921,7 @@ Asset ID - Lėšų ID + Turto ID src/app/components/assets/assets.component.html 7,10 @@ -1922,7 +1934,7 @@ Error loading assets data. - Įkeliant lėšų duomenis įvyko klaida. + Įkeliant duomenis įvyko klaida. src/app/components/assets/assets.component.html 50,55 @@ -1965,7 +1977,7 @@ Layer 2 Networks - 2-ojo sluoksnio tinklai + 2-o Sluoksnio Tinklai src/app/components/bisq-master-page/bisq-master-page.component.html 50,51 @@ -1982,7 +1994,7 @@ Dashboard - Valdymo skydas + Valdymo Skydas src/app/components/bisq-master-page/bisq-master-page.component.html 60,62 @@ -2049,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2065,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2077,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2090,15 +2102,15 @@ Indeksavimo blokai src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2143,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2169,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2187,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2221,19 +2233,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2273,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2301,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2315,11 +2327,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2384,7 +2396,7 @@ Block Prediction Accuracy - Blokų Spėjimo Tikslumas + Blokų Nuspėjimo Tikslumas src/app/components/block-prediction-graph/block-prediction-graph.component.html 6,8 @@ -2417,7 +2429,7 @@ Match rate - Atitikties rodiklis + Atitikmens rodiklis src/app/components/block-prediction-graph/block-prediction-graph.component.ts 189,187 @@ -2432,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2462,11 +2474,11 @@ Dydis src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2494,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2506,11 +2518,11 @@ Svoris src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2522,7 +2534,19 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Dydis pagal Svorį + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2538,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Vidutinis mokestis @@ -2556,7 +2571,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2566,18 +2581,18 @@ Total fees - Bendri mokesčiai + Viso mokesčių src/app/components/block/block-preview.component.html 41,43 src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2595,7 +2610,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2608,7 +2623,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2662,12 +2677,20 @@ 60,63 - src/app/lightning/node/node.component.html - 52,55 + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 src/app/lightning/node/node.component.html - 96,100 + 55,58 + + + src/app/lightning/node/node.component.html + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2684,7 +2707,7 @@ Mokesčių intervalas src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2697,7 +2720,7 @@ Remiantis vidutine 140 vBaitų 'native segwit' operacija src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2721,25 +2744,26 @@ Transaction fee tooltip - - Subsidy + fees: - Subsidija + mokesčiai: + + Subsidy + fees + Subsidija + mokesčiai src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees Expected + Tikimasi src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2748,11 +2772,11 @@ beta versija src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2761,23 +2785,25 @@ Tikras src/app/components/block/block.component.html - 211,215 + 218,222 block.actual Expected Block + Numatytas Blokas src/app/components/block/block.component.html - 215 + 222 block.expected-block Actual Block + Esamas Blokas src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2786,7 +2812,7 @@ Bitai src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2795,7 +2821,7 @@ Merkle šaknis src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2804,7 +2830,7 @@ Sudėtingumas src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2833,7 +2859,7 @@ Noncas src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2842,7 +2868,7 @@ Bloko Antraštės Hex src/app/components/block/block.component.html - 272,273 + 279,280 block.header @@ -2851,7 +2877,7 @@ Auditas src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2861,23 +2887,23 @@ Detalės src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2887,20 +2913,16 @@ Įkeliant duomenis įvyko klaida. src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -2916,7 +2938,7 @@ Kodėl šis blokas tuščias? src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation @@ -3025,7 +3047,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3057,7 +3079,7 @@ Difficulty Adjustment - Sunkumo Koregavimas + Sudėtingumo Koregavimas src/app/components/difficulty/difficulty.component.html 1,5 @@ -3169,7 +3191,7 @@ Either 2x the minimum, or the Low Priority rate (whichever is lower) - 2x daugiau už minimalų arba žemo prioriteto tarifas (atsižvelgiant į tai, kuris mažesnis) + Arba 2x daugiau už minimalų arba žemo prioriteto tarifas (pagal tai kuris mažesnis) src/app/components/fees-box/fees-box.component.html 4,7 @@ -3264,20 +3286,20 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions Backend is synchronizing - Vidinė sistema sinchronizuojasi + Sistema sinchronizuojasi src/app/components/footer/footer.component.html 8,10 src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3290,7 +3312,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3304,7 +3326,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3330,7 +3352,7 @@ Pools Ranking - Baseinų Reitingas + Telkinių Reitingas src/app/components/graphs/graphs.component.html 11 @@ -3343,7 +3365,7 @@ Pools Dominance - Baseinų Dominavimas + Telkinių Dominavimas src/app/components/graphs/graphs.component.html 13 @@ -3571,7 +3593,7 @@ Mining Dashboard - Gavybos Valdymo Skydas + Kasimo Duomenys src/app/components/master-page/master-page.component.html 41,43 @@ -3584,7 +3606,7 @@ Lightning Explorer - Žaibatinklio Naršyklė + "Lightning" Naršyklė src/app/components/master-page/master-page.component.html 44,47 @@ -3680,6 +3702,32 @@ dashboard.adjustments + + Broadcast Transaction + Transliavimo Sandoris + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Telkinių sėkmė (1 savaitė) @@ -3691,7 +3739,7 @@ Pools luck - Telkinių sėkmė + Telkinio sėkmė src/app/components/pool-ranking/pool-ranking.component.html 9,11 @@ -3700,7 +3748,7 @@ 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. - Bendra visų gavybos telkinių sėkmė per praėjusią savaitę. Sėkmė, didesnė nei 100 %, reiškia, kad vidutinis einamosios epochos bloko laikas yra trumpesnis nei 10 minučių. + Bendra visų kasimo telkinių sėkmė per praėjusią savaitę. Sėkmė, didesnė nei 100 %, reiškia, kad vidutinis einamosios epochos bloko laikas yra trumpesnis nei 10 minučių. src/app/components/pool-ranking/pool-ranking.component.html 11,15 @@ -3727,7 +3775,7 @@ How many unique pools found at least one block over the past week. - Kiek unikalių telkinių rado bent vieną bloką per pastarąją savaitę. + Kiek unikalių telkinių rado bent vieną bloką per paskutinę savaitę. src/app/components/pool-ranking/pool-ranking.component.html 19,23 @@ -3747,13 +3795,13 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks The number of blocks found over the past week. - Per pastarąją savaitę rastų blokų skaičius. + Paskutinę savaitę rastų blokų skaičius. src/app/components/pool-ranking/pool-ranking.component.html 27,31 @@ -3777,21 +3825,34 @@ mining.rank + + Avg Health + Vid. sveikata + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Tušti blokai src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks All miners - Visi išgavėjai + Visi kasėjai src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3800,7 +3861,7 @@ Telkinių sėkmė (1 sav.) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3809,16 +3870,16 @@ Suskaičiuota Telkinių (1 sav.) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count Mining Pools - Gavybos Telkiniai + Kasimo Telkiniai src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -3835,7 +3896,7 @@ mining pool - gavybos telkinys + kasimo telkinys src/app/components/pool/pool-preview.component.html 3,5 @@ -3924,7 +3985,7 @@ Estimated - Apytikris + Spėjama src/app/components/pool/pool.component.html 96,97 @@ -4045,34 +4106,16 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Transliavimo Operacija - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex - Operacijos hex + Sandorio hex src/app/components/push-transaction/push-transaction.component.html 6 src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4095,7 +4138,7 @@ Amount being paid to miners in the past 144 blocks - Suma, mokama išgavėjams per pastaruosius 144 blokus + Suma, mokama kasėjams per paskutinius 144 blokus src/app/components/reward-stats/reward-stats.component.html 6,8 @@ -4104,6 +4147,7 @@ Avg Block Fees + Vid. Bloko Mokesčiai src/app/components/reward-stats/reward-stats.component.html 17 @@ -4116,6 +4160,7 @@ Average fees per block in the past 144 blocks + Vid. mokesčiai už bloką per paskutinius 144 blokus src/app/components/reward-stats/reward-stats.component.html 18,20 @@ -4124,6 +4169,7 @@ BTC/block + BTC/blokas src/app/components/reward-stats/reward-stats.component.html 21,24 @@ -4133,6 +4179,7 @@ Avg Tx Fee + Vid. Mokestis src/app/components/reward-stats/reward-stats.component.html 30 @@ -4145,7 +4192,7 @@ Fee paid on average for each transaction in the past 144 blocks - Vidutinis mokestis už kiekvieną operaciją per pastaruosius 144 blokus + Vid. mokestis už sandorį per paskutinius 144 blokus src/app/components/reward-stats/reward-stats.component.html 31,32 @@ -4177,7 +4224,7 @@ Explore the full Bitcoin ecosystem - Tyrinėkite visą Bitkoino ekosistemą + Tyrinėk visą Bitkoino ekosistemą src/app/components/search-form/search-form.component.html 4,5 @@ -4193,6 +4240,78 @@ search-form.search-title + + Bitcoin Block Height + Bitkoino Bloko Aukštis + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Bitkoino Sandoris + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Bitkoino Adresas + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Bitkoino Blokas + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Bitkoino Adresai + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + "Lightning" Mazgai + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + "Lightning" Kanalai + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Eikite į &quot; &quot; + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool pagal vBitus (sat/vByte) @@ -4440,7 +4559,7 @@ This transaction has been replaced by: - Ši operacija buvo pakeista: + Šis sandoris buvo pakeistas į šį: src/app/components/transaction/transaction.component.html 5,6 @@ -4450,6 +4569,7 @@ This transaction replaced: + Šis sandoris pakeitė šį: src/app/components/transaction/transaction.component.html 10,12 @@ -4459,6 +4579,7 @@ Replaced + Pakeista src/app/components/transaction/transaction.component.html 36,39 @@ -4475,21 +4596,21 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed First seen - Pirmą kartą pamatytas + Pirma pamatytas src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4505,11 +4626,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -4519,7 +4640,7 @@ Tikimasi src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4529,7 +4650,7 @@ Po kelių valandų (ar daugiau) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4539,11 +4660,11 @@ Palikuonis src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4553,7 +4674,7 @@ Protėvis src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4563,11 +4684,11 @@ Srautas src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4577,7 +4698,7 @@ Slėpti diagramą src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4586,7 +4707,7 @@ Rodyti daugiau src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4603,7 +4724,7 @@ Rodyti mažiau src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4616,7 +4737,7 @@ Rodyti diagramą src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4625,16 +4746,16 @@ Užrakinimo laikas src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime Transaction not found. - Operacija nerasta. + Sandoris nerastas. src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4643,16 +4764,16 @@ Laukiama pasirodymo atmintinėje... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear Effective fee rate - Efektyvus mokesčio tarifas + Efektyvus mokesčių tarifas src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4751,7 +4872,7 @@ Previous output script - Ankstesnis išvesties skriptas + Ankstesnės išvesties skriptas src/app/components/transactions-list/transactions-list.component.html 144,145 @@ -4760,7 +4881,7 @@ Previous output type - Ankstesnis išvesties tipas + Ankstesnės išvesties tipas src/app/components/transactions-list/transactions-list.component.html 148,149 @@ -4798,17 +4919,19 @@ Show more inputs to reveal fee data + Žiūrėti daugiau įvesčių kad matyti mokesčių duomenis src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info remaining + liko src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -4858,7 +4981,7 @@ This transaction saved % on fees by using native SegWit - Ši operacija sutaupė % mokesčių, naudojant vietinį SegWit + Šis sandoris sutaupė % mokesčių nes naudojo vietinį SegWit src/app/components/tx-features/tx-features.component.html 2 @@ -4885,7 +5008,7 @@ This transaction saved % on fees by using SegWit and could save % more by fully upgrading to native SegWit - Ši operacija sutaupė % mokesčių naudojant SegWit ir gali sutaupyti % daugiau visiškai naujovinus į vietinį SegWit + Šis sandoris sutaupė % mokesčių naudojant SegWit ir gali sutaupyti % daugiau naudojant vietinį SegWit src/app/components/tx-features/tx-features.component.html 4 @@ -4894,7 +5017,7 @@ This transaction could save % on fees by upgrading to native SegWit or % by upgrading to SegWit-P2SH - Ši operacija galėtų sutaupyti % mokesčių atnaujinus į vietinį SegWit arba % naujovinus į SegWit-P2SH + Šis sandoris galėjo sutaupyti % mokesčių naudojant vietinį SegWit arba % naujovinus į SegWit-P2SH src/app/components/tx-features/tx-features.component.html 6 @@ -4903,7 +5026,7 @@ This transaction uses Taproot and thereby saved at least % on fees - Ši operacija naudoja Taproot ir taip sutaupė bent % mokesčių + Šis sandoris naudoja Taproot ir taip sutaupė bent % mokesčių src/app/components/tx-features/tx-features.component.html 12 @@ -4938,7 +5061,7 @@ This transaction uses Taproot and already saved at least % on fees, but could save an additional % by fully using Taproot - Ši operacija naudoja „Taproot“ ir jau sutaupė bent % mokesčių, bet gali sutaupyti papildomai % visiškai naudojant Taproot + Šis sandoris naudojo „Taproot“ ir jau sutaupė bent % mokesčių, bet gali sutaupyti papildomai % pilnai išnaudojant Taproot src/app/components/tx-features/tx-features.component.html 14 @@ -4947,7 +5070,7 @@ This transaction could save % on fees by using Taproot - Ši operacija gali sutaupyti % mokesčių naudojant Taproot + Šis sandoris gali sutaupyti % mokesčių naudojant Taproot src/app/components/tx-features/tx-features.component.html 16 @@ -4956,6 +5079,7 @@ This transaction does not use Taproot + Šis sandoris nenaudoja Taproot src/app/components/tx-features/tx-features.component.html 18 @@ -4964,7 +5088,7 @@ This transaction uses Taproot - Ši operacija naudoja Taproot + Šis sandoris naudoja Taproot src/app/components/tx-features/tx-features.component.html 21 @@ -4973,7 +5097,7 @@ This transaction supports Replace-By-Fee (RBF) allowing fee bumping - Ši operacija palaiko „Replace-By-Fee“ (RBF), leidžiančią pridėti mokesčius + Šis sandoris palaiko „Replace-By-Fee“ (RBF), kuris leidžia jį paspartinti. src/app/components/tx-features/tx-features.component.html 28 @@ -4996,7 +5120,7 @@ This transaction does NOT support Replace-By-Fee (RBF) and cannot be fee bumped using this method - Ši operacija nepalaiko "Replace-By-Fee" (RBF) ir negali būti paspartinta naudojant šį metodą. + Ši operacija nepalaiko "Replace-By-Fee" (RBF) ir negali būti paspartinta. src/app/components/tx-features/tx-features.component.html 29 @@ -5015,7 +5139,7 @@ Only ~ sat/vB was needed to get into this block - Norint patekti į šį bloką, būtų užtekę ir ~ sat/vB + Norint patekti į šį bloką, būtų užtekę ir ~ sat/vB src/app/components/tx-fee-rating/tx-fee-rating.component.html 2 @@ -5042,7 +5166,7 @@ Transaction Fees - Operacijos mokesčiai + Sandorių Mokesčiai src/app/dashboard/dashboard.component.html 6,9 @@ -5051,28 +5175,19 @@ Latest transactions - Naujausios operacijos + Naujausi sandoriai src/app/dashboard/dashboard.component.html 120,123 dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Minimalus mokestis src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5082,7 +5197,7 @@ Valymas src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -5092,7 +5207,7 @@ Atminties naudojimas src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -5102,10 +5217,19 @@ L-BTC apyvartoje src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space teikia duomenis apie Bitkoino tinklą. Projektas negali padėti atgauti prarastų lėšų, greičiau patvirtinti operaciją ir pan. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service REST API paslauga @@ -5142,7 +5266,7 @@ Default push: action: 'want', data: ['blocks', ...] to express what you want pushed. Available: blocks, mempool-blocks, live-2h-chart, and stats.Push transactions related to address: 'track-address': '3PbJ...bF9B' to receive all new transactions containing that address as input or output. Returns an array of transactions. address-transactions for new mempool transactions, and block-transactions for new block confirmed transactions. - Numatytasis siuntimas: veiksmas: 'want', duomenys: ['blocks', ...] , kad išreikštumėte tai, ką norite pastūmėti. Galimi: blokai , mempool blokai , realaus laiko-2val grafikas , ir statistika . Pastūmėti operacijas susietas su adresu: 'track-address': '3PbJ...bF9B' priimti visas naujas operacijas susietas su adresu kaip įvestis ar išvestis. Pateikiama kaip operacijų rinkinys. adreso-operacijosnaujoms mempool operacijoms, ir bloko operacijosnaujoms bloke patvirtintoms operacijoms. + Numatytas passtūmimas: veiksmas: 'want', data: ['blocks', ...] , išreikšti tai, ką norite pastūmėti. Galimi: blokai , mempool blokai , realaus laiko-2val grafikas , ir statistika . Pastūmėti sandorius susietus su adresu: 'track-address': '3PbJ...bF9B' priimti visus naujus sandorius susietus su adresu kaip įvestis ar išvestis. Pateikiama kaip sandorių rinkinys. adreso-sandoriainaujiems mempool sandoriams, ir bloko sandoriainaujiems bloke patvirtintoms sandoriams. src/app/docs/api-docs/api-docs.component.html 109,110 @@ -5214,7 +5338,7 @@ Base fee - Bazės mokestis + Bazinis mokestis src/app/lightning/channel/channel-box/channel-box.component.html 29 @@ -5242,13 +5366,13 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats This channel supports zero base fee routing - Šis kanalas palaiko nulinio bazinio mokesčio maršrutą + Šis kanalas palaiko nulinių mokesčių maršrutą src/app/lightning/channel/channel-box/channel-box.component.html 44 @@ -5266,7 +5390,7 @@ This channel does not support zero base fee routing - Šis kanalas nepalaiko nulinio bazinio mokesčio + Šis kanalas nepalaiko nulinių bazinių mokesčių src/app/lightning/channel/channel-box/channel-box.component.html 50 @@ -5324,6 +5448,7 @@ Starting balance + Pradinis balansas src/app/lightning/channel/channel-close-box/channel-close-box.component.html 6 @@ -5333,6 +5458,7 @@ Closing balance + Uždarymo balansas src/app/lightning/channel/channel-close-box/channel-close-box.component.html 12 @@ -5342,7 +5468,7 @@ lightning channel - žaibatinklio kanalas + "Lightning" kanalas src/app/lightning/channel/channel-preview.component.html 3,5 @@ -5358,7 +5484,7 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html @@ -5375,7 +5501,7 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html @@ -5392,7 +5518,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5413,7 +5539,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5426,7 +5552,7 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html @@ -5438,7 +5564,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5460,6 +5586,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5493,14 +5623,14 @@ Lightning channel - Žaibatinklio kanalas + "Lightning" kanalas src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5509,11 +5639,11 @@ Atnaujinta src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5529,11 +5659,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5542,7 +5672,7 @@ Uždarymo data src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html @@ -5552,27 +5682,28 @@ Closed by + Uždarė src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by Opening transaction - Atidarymo operacija + Atidarymo sandoris src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction Closing transaction - Uždarymo operacija + Uždarymo sandoris src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5584,6 +5715,30 @@ 37 + + Mutually closed + Abipusiai uždarytas + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Priverstinai uždarytas + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Priverstinai uždarytas su bauda + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open Atidarytas @@ -5631,11 +5786,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -5710,6 +5865,24 @@ shared.sats + + avg + vid. + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + med. + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Vid. Talpa @@ -5814,7 +5987,7 @@ Lightning node group - Žaibatinklio mazgų grupė + "Lightning" mazgų grupė src/app/lightning/group/group-preview.component.html 3,5 @@ -5838,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5891,10 +6064,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -5912,11 +6081,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5948,11 +6117,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -5990,7 +6159,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -6006,11 +6175,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -6034,7 +6203,7 @@ Lightning Network History - Žaibo Tinklo Istorija + "Lightning" Tinklo Istorija src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 49 @@ -6048,9 +6217,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -6073,12 +6250,37 @@ Fee distribution + Mokesčio išskirstymas src/app/lightning/node-fee-chart/node-fee-chart.component.html 2 lightning.node-fee-distribution + + Outgoing Fees + Siuntimo Mokesčiai + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Gaunami Mokesčiai + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Praėjusios savaitės procentinis pokytis @@ -6088,28 +6290,28 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week Lightning node - Žaibatinklio mazgas + "Lightning" mazgas src/app/lightning/node/node-preview.component.html 3,5 src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -6122,7 +6324,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -6135,7 +6337,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -6148,29 +6350,21 @@ country - - No node found for public key "" - Viešajam raktui mazgas nerastas &quot; &quot; - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size Vidutinis kanalo dydis src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg Avg channel distance + Vid. kanalo atstumas src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance @@ -6179,7 +6373,7 @@ Spalva src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color @@ -6188,7 +6382,7 @@ IPT src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6201,73 +6395,81 @@ Tik Tor src/app/lightning/node/node.component.html - 93,95 + 96,98 tor Liquidity ad + Likvidumo skelbimas src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad Lease fee rate + Nuomos mokesčio tarifas src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate Lease base fee + Nuomos bazinis mokestis src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee Funding weight + Finansavimo svoris src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight Channel fee rate + Kanalo mokesčio tarifas src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate Channel base fee + Kanalo bazinis mokestis src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee Compact lease + Kompaktinė nuoma src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease TLV extension records + TLV pratęsimo įrašai src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6276,7 +6478,7 @@ Atviri kanalai src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6285,7 +6487,7 @@ Uždaryti kanalai src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6331,7 +6533,7 @@ Geografinės vietos duomenų nėra src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6345,6 +6547,7 @@ Indexing in progress + Vyksta indeksavimas src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 121,116 @@ -6354,9 +6557,9 @@ 112,107 - - Reachable on Clearnet Only - Pasiekiama tik per Clearnet + + Clearnet and Darknet + Clearnet ir Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6366,9 +6569,9 @@ 303,302 - - Reachable on Clearnet and Darknet - Galima Pasiekti per Clearnet ir Darknet + + Clearnet Only (IPv4, IPv6) + Tik „Clearnet“ (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6378,9 +6581,9 @@ 295,294 - - Reachable on Darknet Only - Pasiekiamas tik per Darknet + + Darknet Only (Tor, I2P, cjdns) + Tik „Darknet“ („Tor“, „I2P“, „cjdns“) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6429,7 +6632,7 @@ Lightning nodes in - Žaibatinklio mazgai + "Lightning" mazgai src/app/lightning/nodes-per-country/nodes-per-country.component.html 3,4 @@ -6447,7 +6650,7 @@ Top ISP - Populiariausias IPT + Populiariausi IPT src/app/lightning/nodes-per-country/nodes-per-country.component.html 38,40 @@ -6456,7 +6659,7 @@ Lightning nodes in - Žaibatinklio mazgai + "Lightning" mazgai src/app/lightning/nodes-per-country/nodes-per-country.component.ts 35 @@ -6530,7 +6733,7 @@ Top 100 ISPs hosting LN nodes - 100 geriausių IPT, kuriuose yra ŽT mazgai + 100 geriausių IPT, kuriuose yra LN mazgai src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html 31,33 @@ -6551,7 +6754,7 @@ Lightning ISP - Žaibatinklio IPT + "Lightning" IPT src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 3,5 @@ -6560,7 +6763,7 @@ Top country - Geriausia šalis + Top šalis src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 39,41 @@ -6573,7 +6776,7 @@ Top node - Geriausias mazgas + Top mazgas src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html 45,48 @@ -6582,7 +6785,7 @@ Lightning nodes on ISP: [AS] - Žaibatinklio mazgai ant IPT: [AS ] + "Lightning" mazgai pagal IPT: [AS ] src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts 44 @@ -6594,7 +6797,7 @@ Lightning nodes on ISP: - Žaibatinklio mazgai ant IPT: + "Lightning" mazgai pagal IPT: src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 2,4 @@ -6612,6 +6815,7 @@ Active nodes + Aktyvūs mazgai src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 14,18 @@ -6620,7 +6824,7 @@ Top 100 oldest lightning nodes - 100 seniausių žaibatinklio mazgų + Top 100 seniausių "Lightning" mazgų src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html 3,7 @@ -6629,30 +6833,12 @@ Oldest lightning nodes - Seniausi žaibatinklio mazgai + Seniausi "Lightning" mazgai src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts 27 - - Top 100 nodes liquidity ranking - 100 geriausių mazgų likvidumo reitingas - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - 100 geriausių mazgų ryšio reitingas - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes Seniausi mazgai @@ -6664,7 +6850,7 @@ Top lightning nodes - Geriausi žaibatinklio mazgai + Top "Lightning" mazgai src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts 22 diff --git a/frontend/src/locale/messages.sv.xlf b/frontend/src/locale/messages.sv.xlf index 5a75337f0..0ba5402ad 100644 --- a/frontend/src/locale/messages.sv.xlf +++ b/frontend/src/locale/messages.sv.xlf @@ -359,11 +359,11 @@ src/app/components/block/block.component.html - 303,304 + 310,311 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 26,27 + 46,47 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -384,11 +384,11 @@ src/app/components/block/block.component.html - 304,305 + 311,312 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 27,28 + 47,48 src/app/components/mempool-blocks/mempool-blocks.component.html @@ -598,7 +598,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 94,96 + 94,95 @@ -775,16 +775,24 @@ src/app/components/about/about.component.html - 385,389 + 375,378 + + + src/app/components/mining-dashboard/mining-dashboard.component.html + 88 src/app/dashboard/dashboard.component.html - 150,152 + 157,159 src/app/docs/docs/docs.component.html 51 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 97 + Terms of Service shared.terms-of-service @@ -795,14 +803,22 @@ src/app/bisq/bisq-main-dashboard/bisq-main-dashboard.component.html 113,120 + + src/app/components/mining-dashboard/mining-dashboard.component.html + 90 + src/app/dashboard/dashboard.component.html - 152,154 + 159,161 src/app/docs/docs/docs.component.html 53 + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 99 + Privacy Policy shared.privacy-policy @@ -990,7 +1006,7 @@ src/app/dashboard/dashboard.component.html - 124,125 + 124,126 @@ -1038,7 +1054,7 @@ src/app/components/transaction/transaction.component.html - 158,160 + 152,154 src/app/components/transactions-list/transactions-list.component.html @@ -1054,11 +1070,11 @@ src/app/components/block/block.component.html - 245,246 + 252,253 src/app/components/transaction/transaction.component.html - 288,290 + 282,284 transaction.version @@ -1108,7 +1124,7 @@ src/app/components/transactions-list/transactions-list.component.html - 294,295 + 296,297 Transaction singular confirmation count shared.confirmation-count.singular @@ -1130,7 +1146,7 @@ src/app/components/transactions-list/transactions-list.component.html - 295,296 + 297,298 Transaction plural confirmation count shared.confirmation-count.plural @@ -1142,10 +1158,6 @@ src/app/bisq/bisq-transaction/bisq-transaction.component.html 43,45 - - src/app/components/transaction/transaction.component.html - 65,67 - Transaction included in block transaction.included-in-block @@ -1158,11 +1170,11 @@ src/app/components/transaction/transaction.component.html - 77,80 + 71,74 src/app/components/transaction/transaction.component.html - 135,138 + 129,132 Transaction features transaction.features @@ -1190,11 +1202,11 @@ src/app/components/transaction/transaction.component.html - 262,267 + 256,261 src/app/components/transaction/transaction.component.html - 406,412 + 400,406 transaction.details @@ -1211,11 +1223,11 @@ src/app/components/transaction/transaction.component.html - 249,253 + 243,247 src/app/components/transaction/transaction.component.html - 377,383 + 371,377 Transaction inputs and outputs transaction.inputs-and-outputs @@ -1233,7 +1245,7 @@ src/app/components/transaction/transaction.component.ts - 241,240 + 244,243 @@ -1253,7 +1265,7 @@ src/app/components/transaction/transaction.component.html - 159,160 + 153,154 src/app/dashboard/dashboard.component.html @@ -1269,7 +1281,7 @@ src/app/components/transaction/transaction.component.html - 72,73 + 66,67 Transaction Confirmed state transaction.confirmed @@ -1440,7 +1452,7 @@ Vår mempool- och blockchainutforskare för bitcoincommunitit, med fokus på marknaden för transaktionsavgifter och multilagerekosystemet, helt självhostad utan betrodda tredjeparttjänster. src/app/components/about/about.component.html - 13,17 + 13,16 @@ -1448,7 +1460,7 @@ Företagssponsorer 🚀 src/app/components/about/about.component.html - 29,32 + 19,22 about.sponsors.enterprise.withRocket @@ -1457,7 +1469,7 @@ Communitysponsorer ❤️ src/app/components/about/about.component.html - 177,180 + 167,170 about.sponsors.withHeart @@ -1466,7 +1478,7 @@ Communityintegrationer src/app/components/about/about.component.html - 191,193 + 181,183 about.community-integrations @@ -1475,7 +1487,7 @@ Communityallianser src/app/components/about/about.component.html - 285,287 + 275,277 about.alliances @@ -1484,7 +1496,7 @@ Projektöversättare src/app/components/about/about.component.html - 301,303 + 291,293 about.translators @@ -1493,7 +1505,7 @@ Projektbidragare src/app/components/about/about.component.html - 315,317 + 305,307 about.contributors @@ -1502,7 +1514,7 @@ Projektmedlemmar src/app/components/about/about.component.html - 327,329 + 317,319 about.project_members @@ -1511,7 +1523,7 @@ Projektunderhållare src/app/components/about/about.component.html - 340,342 + 330,332 about.maintainers @@ -1520,7 +1532,7 @@ Om src/app/components/about/about.component.ts - 39 + 42 src/app/components/bisq-master-page/bisq-master-page.component.html @@ -1569,7 +1581,7 @@ src/app/components/amount/amount.component.html - 6,9 + 20,23 src/app/components/asset-circulation/asset-circulation.component.html @@ -1585,7 +1597,7 @@ src/app/components/transactions-list/transactions-list.component.html - 302,304 + 304,306 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2049,7 +2061,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 161 + 165 @@ -2065,7 +2077,7 @@ src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 163 + 167 @@ -2077,7 +2089,7 @@ src/app/components/block-fees-graph/block-fees-graph.component.ts - 62 + 67 src/app/components/graphs/graphs.component.html @@ -2090,15 +2102,15 @@ Indexerar block src/app/components/block-fees-graph/block-fees-graph.component.ts - 110,105 + 116,111 src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 108,103 + 113,108 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 115,110 + 116,111 src/app/components/hashrate-chart/hashrate-chart.component.ts @@ -2143,7 +2155,7 @@ src/app/components/transaction/transaction.component.html - 478 + 472 src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html @@ -2169,11 +2181,11 @@ src/app/components/transaction/transaction.component.html - 478,479 + 472 src/app/components/transactions-list/transactions-list.component.html - 286,287 + 288 sat shared.sat @@ -2187,11 +2199,11 @@ src/app/components/transaction/transaction.component.html - 161,165 + 155,159 src/app/components/transaction/transaction.component.html - 481,483 + 475,477 src/app/lightning/channel/channel-box/channel-box.component.html @@ -2221,19 +2233,19 @@ src/app/components/block/block.component.html - 123,126 + 124,127 src/app/components/block/block.component.html - 127 + 128,130 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 12,14 + 19,22 src/app/components/blockchain-blocks/blockchain-blocks.component.html - 15,17 + 30,33 src/app/components/fees-box/fees-box.component.html @@ -2273,27 +2285,27 @@ src/app/components/transaction/transaction.component.html - 173,174 + 167,168 src/app/components/transaction/transaction.component.html - 184,185 + 178,179 src/app/components/transaction/transaction.component.html - 195,196 + 189,190 src/app/components/transaction/transaction.component.html - 483,486 + 477,480 src/app/components/transaction/transaction.component.html - 494,496 + 488,490 src/app/components/transactions-list/transactions-list.component.html - 286 + 286,287 src/app/dashboard/dashboard.component.html @@ -2301,7 +2313,7 @@ src/app/dashboard/dashboard.component.html - 206,210 + 213,217 sat/vB shared.sat-vbyte @@ -2315,11 +2327,11 @@ src/app/components/transaction/transaction.component.html - 160,162 + 154,156 src/app/components/transaction/transaction.component.html - 274,277 + 268,271 Transaction Virtual Size transaction.vsize @@ -2432,7 +2444,7 @@ src/app/components/block-rewards-graph/block-rewards-graph.component.ts - 60 + 65 src/app/components/graphs/graphs.component.html @@ -2462,11 +2474,11 @@ Storlek src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 180,179 + 184,183 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 226,224 + 239,237 src/app/components/block/block.component.html @@ -2494,7 +2506,7 @@ src/app/components/transaction/transaction.component.html - 270,272 + 264,266 src/app/dashboard/dashboard.component.html @@ -2506,11 +2518,11 @@ Viktenheter src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 188,187 + 192,191 src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts - 257,254 + 270,267 src/app/components/block/block-preview.component.html @@ -2522,7 +2534,19 @@ src/app/components/transaction/transaction.component.html - 278,280 + 272,274 + + + + Size per weight + Storlek per viktenhet + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 200,199 + + + src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts + 282,279 @@ -2538,15 +2562,6 @@ shared.block-title - - - - - src/app/components/block/block-preview.component.html - 11,12 - - shared.block-title - Median fee Medianavgift @@ -2556,7 +2571,7 @@ src/app/components/block/block.component.html - 126,127 + 127,128 src/app/components/mempool-block/mempool-block.component.html @@ -2573,11 +2588,11 @@ src/app/components/block/block.component.html - 131,133 + 138,140 src/app/components/block/block.component.html - 157,160 + 164,167 src/app/components/mempool-block/mempool-block.component.html @@ -2595,7 +2610,7 @@ src/app/components/block/block.component.html - 166,168 + 173,175 block.miner @@ -2608,7 +2623,7 @@ src/app/components/block/block.component.ts - 234 + 242 @@ -2662,12 +2677,20 @@ 60,63 - src/app/lightning/node/node.component.html - 52,55 + src/app/components/pool-ranking/pool-ranking.component.html + 121,124 + + + src/app/lightning/channel/closing-type/closing-type.component.ts + 32 src/app/lightning/node/node.component.html - 96,100 + 55,58 + + + src/app/lightning/node/node.component.html + 99,103 src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts @@ -2684,7 +2707,7 @@ Avgiftspann src/app/components/block/block.component.html - 122,123 + 123,124 src/app/components/mempool-block/mempool-block.component.html @@ -2697,7 +2720,7 @@ Baserat på en genomsnittlig native segwit-transaktion på 140 vBytes src/app/components/block/block.component.html - 127,129 + 131,136 src/app/components/fees-box/fees-box.component.html @@ -2721,16 +2744,16 @@ Transaction fee tooltip - - Subsidy + fees: - Subvention + avgifter: + + Subsidy + fees + Subvention + avgifter src/app/components/block/block.component.html - 146,149 + 153,156 src/app/components/block/block.component.html - 161,165 + 168,172 Total subsidy and fees in a block block.subsidy-and-fees @@ -2740,7 +2763,7 @@ Förväntat src/app/components/block/block.component.html - 209 + 216 block.expected @@ -2749,11 +2772,11 @@ beta src/app/components/block/block.component.html - 209,210 + 216,217 src/app/components/block/block.component.html - 215,217 + 222,224 beta @@ -2762,7 +2785,7 @@ Faktiskt src/app/components/block/block.component.html - 211,215 + 218,222 block.actual @@ -2771,7 +2794,7 @@ Förväntat block src/app/components/block/block.component.html - 215 + 222 block.expected-block @@ -2780,7 +2803,7 @@ Faktiskt block src/app/components/block/block.component.html - 224 + 231 block.actual-block @@ -2789,7 +2812,7 @@ Bitar src/app/components/block/block.component.html - 249,251 + 256,258 block.bits @@ -2798,7 +2821,7 @@ Merkle root src/app/components/block/block.component.html - 253,255 + 260,262 block.merkle-root @@ -2807,7 +2830,7 @@ Svårighet src/app/components/block/block.component.html - 264,267 + 271,274 src/app/components/difficulty-adjustments-table/difficulty-adjustments-table.component.html @@ -2836,7 +2859,7 @@ Nonce src/app/components/block/block.component.html - 268,270 + 275,277 block.nonce @@ -2845,7 +2868,7 @@ Block Header Hex src/app/components/block/block.component.html - 272,273 + 279,280 block.header @@ -2854,7 +2877,7 @@ Granskning src/app/components/block/block.component.html - 290,294 + 297,301 Toggle Audit block.toggle-audit @@ -2864,23 +2887,23 @@ Detaljer src/app/components/block/block.component.html - 297,301 + 304,308 src/app/components/transaction/transaction.component.html - 254,259 + 248,253 src/app/lightning/channel/channel.component.html - 86,88 + 93,95 src/app/lightning/channel/channel.component.html - 96,98 + 103,105 src/app/lightning/node/node.component.html - 218,222 + 221,225 Transaction Details transaction.details @@ -2890,20 +2913,16 @@ Fel vid laddning av data. src/app/components/block/block.component.html - 316,318 + 323,325 src/app/components/block/block.component.html - 355,359 + 362,366 src/app/lightning/channel/channel-preview.component.html 70,75 - - src/app/lightning/channel/channel.component.html - 109,115 - src/app/lightning/node/node-preview.component.html 66,69 @@ -2919,7 +2938,7 @@ Varför är blocket tomt? src/app/components/block/block.component.html - 377,383 + 384,390 block.empty-block-explanation @@ -3028,7 +3047,7 @@ src/app/dashboard/dashboard.component.html - 212,216 + 219,223 dashboard.txs @@ -3267,7 +3286,7 @@ src/app/dashboard/dashboard.component.html - 239,240 + 246,247 dashboard.incoming-transactions @@ -3280,7 +3299,7 @@ src/app/dashboard/dashboard.component.html - 242,245 + 249,252 dashboard.backend-is-synchronizing @@ -3293,7 +3312,7 @@ src/app/dashboard/dashboard.component.html - 247,252 + 254,259 vB/s shared.vbytes-per-second @@ -3307,7 +3326,7 @@ src/app/dashboard/dashboard.component.html - 210,211 + 217,218 Unconfirmed count dashboard.unconfirmed @@ -3683,6 +3702,32 @@ dashboard.adjustments + + Broadcast Transaction + Publicera transaktion + + src/app/components/mining-dashboard/mining-dashboard.component.html + 92 + + + src/app/components/push-transaction/push-transaction.component.html + 2 + + + src/app/components/push-transaction/push-transaction.component.html + 8 + + + src/app/dashboard/dashboard.component.html + 161,169 + + + src/app/lightning/lightning-dashboard/lightning-dashboard.component.html + 102 + + Broadcast Transaction + shared.broadcast-transaction + Pools luck (1 week) Pooltursamhet (1 vecka) @@ -3750,7 +3795,7 @@ src/app/components/pool-ranking/pool-ranking.component.html - 136,138 + 152,154 master-page.blocks @@ -3780,12 +3825,25 @@ mining.rank + + Avg Health + Snitthälsa + + src/app/components/pool-ranking/pool-ranking.component.html + 96,97 + + + src/app/components/pool-ranking/pool-ranking.component.html + 96,98 + + latest-blocks.avg_health + Empty blocks Tomma block src/app/components/pool-ranking/pool-ranking.component.html - 95,98 + 97,100 mining.empty-blocks @@ -3794,7 +3852,7 @@ Alla miners src/app/components/pool-ranking/pool-ranking.component.html - 113,114 + 129,130 mining.all-miners @@ -3803,7 +3861,7 @@ Pools tur (1v) src/app/components/pool-ranking/pool-ranking.component.html - 130,132 + 146,148 mining.miners-luck @@ -3812,7 +3870,7 @@ Antal pooler (1v) src/app/components/pool-ranking/pool-ranking.component.html - 142,144 + 158,160 mining.miners-count @@ -3821,7 +3879,7 @@ Miningpooler src/app/components/pool-ranking/pool-ranking.component.ts - 57 + 58 @@ -4048,24 +4106,6 @@ latest-blocks.coinbasetag - - Broadcast Transaction - Publicera transaktion - - src/app/components/push-transaction/push-transaction.component.html - 2 - - - src/app/components/push-transaction/push-transaction.component.html - 8 - - - src/app/dashboard/dashboard.component.html - 154,162 - - Broadcast Transaction - shared.broadcast-transaction - Transaction hex Transaktions-hex @@ -4075,7 +4115,7 @@ src/app/components/transaction/transaction.component.html - 296,297 + 290,291 transaction.hex @@ -4200,6 +4240,78 @@ search-form.search-title + + Bitcoin Block Height + Bitcoin-blockhöjd + + src/app/components/search-form/search-results/search-results.component.html + 3 + + search.bitcoin-block-height + + + Bitcoin Transaction + Bitcoin-transaktion + + src/app/components/search-form/search-results/search-results.component.html + 9 + + search.bitcoin-transaction + + + Bitcoin Address + Bitcoin-adress + + src/app/components/search-form/search-results/search-results.component.html + 15 + + search.bitcoin-address + + + Bitcoin Block + Bitcoin-block + + src/app/components/search-form/search-results/search-results.component.html + 21 + + search.bitcoin-block + + + Bitcoin Addresses + Bitcoin-adresser + + src/app/components/search-form/search-results/search-results.component.html + 27 + + search.bitcoin-addresses + + + Lightning Nodes + Lightingnoder + + src/app/components/search-form/search-results/search-results.component.html + 35 + + search.lightning-nodes + + + Lightning Channels + Lightningkanaler + + src/app/components/search-form/search-results/search-results.component.html + 43 + + search.lightning-channels + + + Go to "" + Gå till "" + + src/app/components/search-form/search-results/search-results.component.html + 52 + + search.go-to + Mempool by vBytes (sat/vByte) Mempool i vBytes (sat/vByte) @@ -4484,7 +4596,7 @@ src/app/components/transactions-list/transactions-list.component.html - 298,301 + 300,303 Transaction unconfirmed state transaction.unconfirmed @@ -4494,11 +4606,11 @@ Först sedd src/app/components/transaction/transaction.component.html - 108,109 + 102,103 src/app/lightning/node/node.component.html - 67,70 + 70,73 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -4514,11 +4626,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 13,15 + 15,16 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 13,15 + 15,16 Transaction first seen transaction.first-seen @@ -4528,7 +4640,7 @@ ETA src/app/components/transaction/transaction.component.html - 115,116 + 109,110 Transaction ETA transaction.eta @@ -4538,7 +4650,7 @@ Om flera timmar (eller mer) src/app/components/transaction/transaction.component.html - 121,124 + 115,118 Transaction ETA in several hours or more transaction.eta.in-several-hours @@ -4548,11 +4660,11 @@ Ättling src/app/components/transaction/transaction.component.html - 168,170 + 162,164 src/app/components/transaction/transaction.component.html - 179,181 + 173,175 Descendant transaction.descendant @@ -4562,7 +4674,7 @@ Förfader src/app/components/transaction/transaction.component.html - 190,192 + 184,186 Transaction Ancestor transaction.ancestor @@ -4572,11 +4684,11 @@ Flöde src/app/components/transaction/transaction.component.html - 208,211 + 202,205 src/app/components/transaction/transaction.component.html - 346,350 + 340,344 Transaction flow transaction.flow @@ -4586,7 +4698,7 @@ Dölj diagram src/app/components/transaction/transaction.component.html - 211,216 + 205,210 hide-diagram @@ -4595,7 +4707,7 @@ Visa mer src/app/components/transaction/transaction.component.html - 231,233 + 225,227 src/app/components/transactions-list/transactions-list.component.html @@ -4612,7 +4724,7 @@ Visa mindre src/app/components/transaction/transaction.component.html - 233,239 + 227,233 src/app/components/transactions-list/transactions-list.component.html @@ -4625,7 +4737,7 @@ Visa diagram src/app/components/transaction/transaction.component.html - 253,254 + 247,248 show-diagram @@ -4634,7 +4746,7 @@ Locktime src/app/components/transaction/transaction.component.html - 292,294 + 286,288 transaction.locktime @@ -4643,7 +4755,7 @@ Transaktionen hittades inte src/app/components/transaction/transaction.component.html - 455,456 + 449,450 transaction.error.transaction-not-found @@ -4652,7 +4764,7 @@ Väntar på den att dyka upp i mempoolen... src/app/components/transaction/transaction.component.html - 456,461 + 450,455 transaction.error.waiting-for-it-to-appear @@ -4661,7 +4773,7 @@ Effektiv avgiftssats src/app/components/transaction/transaction.component.html - 491,494 + 485,488 Effective transaction fee rate transaction.effective-fee-rate @@ -4810,7 +4922,7 @@ Visa fler inputs för att visa feedata src/app/components/transactions-list/transactions-list.component.html - 288,291 + 290,293 transactions-list.load-to-reveal-fee-info @@ -4819,7 +4931,7 @@ återstår src/app/components/transactions-list/transactions-list.component.html - 330,331 + 332,333 x-remaining @@ -5070,21 +5182,12 @@ dashboard.latest-transactions - - USD - USD - - src/app/dashboard/dashboard.component.html - 126,127 - - dashboard.latest-transactions.USD - Minimum fee Minimumavgift src/app/dashboard/dashboard.component.html - 203,204 + 210,211 Minimum mempool fee dashboard.minimum-fee @@ -5094,7 +5197,7 @@ Förkastar src/app/dashboard/dashboard.component.html - 204,205 + 211,212 Purgin below fee dashboard.purging @@ -5104,7 +5207,7 @@ Minnesanvändning src/app/dashboard/dashboard.component.html - 216,217 + 223,224 Memory usage dashboard.memory-usage @@ -5114,10 +5217,19 @@ L-BTC i cirkulation src/app/dashboard/dashboard.component.html - 230,232 + 237,239 dashboard.lbtc-pegs-in-circulation + + mempool.space merely provides data about the Bitcoin network. It cannot help you with retrieving funds, confirming your transaction quicker, etc. + mempool.space tillhandahåller bara data om Bitcoin-nätverket. Det kan inte hjälpa dig med att få tillbaka pengar, bekräfta din transaktion snabbare, etc. + + src/app/docs/api-docs/api-docs.component.html + 13 + + faq.big-disclaimer + REST API service REST API service @@ -5254,7 +5366,7 @@ src/app/lightning/node/node.component.html - 180,182 + 183,185 shared.m-sats @@ -5372,7 +5484,7 @@ src/app/lightning/channel/channel.component.html - 11,12 + 13,14 src/app/lightning/channels-list/channels-list.component.html @@ -5389,7 +5501,7 @@ src/app/lightning/channel/channel.component.html - 12,13 + 14,15 src/app/lightning/channels-list/channels-list.component.html @@ -5406,7 +5518,7 @@ src/app/lightning/channel/channel.component.html - 13,14 + 15,16 src/app/lightning/channels-list/channels-list.component.html @@ -5427,7 +5539,7 @@ src/app/lightning/channel/channel.component.html - 29,30 + 36,37 lightning.created @@ -5440,7 +5552,7 @@ src/app/lightning/channel/channel.component.html - 48,49 + 55,56 src/app/lightning/channels-list/channels-list.component.html @@ -5452,7 +5564,7 @@ src/app/lightning/node-statistics/node-statistics.component.html - 47,50 + 46,49 src/app/lightning/nodes-list/nodes-list.component.html @@ -5474,6 +5586,10 @@ src/app/lightning/nodes-per-isp/nodes-per-isp.component.html 60,62 + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 13,14 + src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts 202,201 @@ -5510,11 +5626,11 @@ Lightningkanal src/app/lightning/channel/channel.component.html - 2,5 + 4,7 src/app/lightning/channel/channel.component.html - 117,119 + 116,118 lightning.channel @@ -5523,11 +5639,11 @@ Senast uppdaterad src/app/lightning/channel/channel.component.html - 33,34 + 40,41 src/app/lightning/node/node.component.html - 73,75 + 76,78 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -5543,11 +5659,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 14,15 + 16,17 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 14,15 + 16,17 lightning.last-update @@ -5556,7 +5672,7 @@ Stängningsdatum src/app/lightning/channel/channel.component.html - 37,38 + 44,45 src/app/lightning/channels-list/channels-list.component.html @@ -5569,7 +5685,7 @@ Stängd av src/app/lightning/channel/channel.component.html - 52,54 + 59,61 lightning.closed_by @@ -5578,7 +5694,7 @@ Öppningstransaktion src/app/lightning/channel/channel.component.html - 84,85 + 91,92 lightning.opening-transaction @@ -5587,7 +5703,7 @@ Stängningstransaktion src/app/lightning/channel/channel.component.html - 93,95 + 100,102 lightning.closing-transaction @@ -5599,6 +5715,30 @@ 37 + + Mutually closed + Ömsesidigt stängd + + src/app/lightning/channel/closing-type/closing-type.component.ts + 20 + + + + Force closed + Tvångsstängd + + src/app/lightning/channel/closing-type/closing-type.component.ts + 24 + + + + Force closed with penalty + Tvångsstängd med straff + + src/app/lightning/channel/closing-type/closing-type.component.ts + 28 + + Open Öppen @@ -5646,11 +5786,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 10,11 + 11,12 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 10,12 + 11,13 lightning.alias @@ -5725,6 +5865,24 @@ shared.sats + + avg + snitt + + src/app/lightning/channels-statistics/channels-statistics.component.html + 3,5 + + statistics.average-small + + + med + med + + src/app/lightning/channels-statistics/channels-statistics.component.html + 6,9 + + statistics.median-small + Avg Capacity Snitt kapacitet @@ -5853,11 +6011,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 17,18 + 16,17 src/app/lightning/node-statistics/node-statistics.component.html - 54,57 + 53,56 src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html @@ -5906,10 +6064,6 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 11,12 - - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html 12,13 lightning.liquidity @@ -5927,11 +6081,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 29,30 + 28,29 src/app/lightning/node-statistics/node-statistics.component.html - 61,64 + 60,63 src/app/lightning/nodes-list/nodes-list.component.html @@ -5963,11 +6117,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 12,13 + 14,15 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 11,12 + 12,13 src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts @@ -6005,7 +6159,7 @@ src/app/lightning/node/node.component.html - 47,49 + 50,52 src/app/lightning/nodes-per-country/nodes-per-country.component.html @@ -6021,11 +6175,11 @@ src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 15,17 + 17,20 src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 15,17 + 17,20 lightning.location @@ -6063,9 +6217,17 @@ src/app/lightning/lightning-dashboard/lightning-dashboard.component.html 62 + + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html + 4,9 + src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts - 29 + 33 + + + src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html + 4,9 src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.html @@ -6095,6 +6257,30 @@ lightning.node-fee-distribution + + Outgoing Fees + Utgående avgifter + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 170 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 208 + + + + Incoming Fees + Inkommande avgifter + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 178 + + + src/app/lightning/node-fee-chart/node-fee-chart.component.ts + 222 + + Percentage change past week Procentuell förändring senaste veckan @@ -6104,11 +6290,11 @@ src/app/lightning/node-statistics/node-statistics.component.html - 18,20 + 17,19 src/app/lightning/node-statistics/node-statistics.component.html - 30,32 + 29,31 mining.percentage-change-last-week @@ -6121,11 +6307,11 @@ src/app/lightning/node/node.component.html - 2,4 + 4,6 src/app/lightning/node/node.component.html - 260,262 + 263,265 lightning.node @@ -6138,7 +6324,7 @@ src/app/lightning/node/node.component.html - 27,30 + 30,33 lightning.active-capacity @@ -6151,7 +6337,7 @@ src/app/lightning/node/node.component.html - 34,38 + 37,41 lightning.active-channels @@ -6164,21 +6350,12 @@ country - - No node found for public key "" - Ingen nod hittades för Public Key &quot; &quot; - - src/app/lightning/node/node.component.html - 17,19 - - lightning.node-not-found - Average channel size Snitt kanalstorlek src/app/lightning/node/node.component.html - 40,43 + 43,46 lightning.active-channels-avg @@ -6187,7 +6364,7 @@ Snitt kanalavstånd src/app/lightning/node/node.component.html - 56,57 + 59,60 lightning.avg-distance @@ -6196,7 +6373,7 @@ Färg src/app/lightning/node/node.component.html - 79,81 + 82,84 lightning.color @@ -6205,7 +6382,7 @@ ISP src/app/lightning/node/node.component.html - 86,87 + 89,90 src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html @@ -6218,7 +6395,7 @@ Exklusivt på Tor src/app/lightning/node/node.component.html - 93,95 + 96,98 tor @@ -6227,7 +6404,7 @@ Likviditetsannons src/app/lightning/node/node.component.html - 138,141 + 141,144 node.liquidity-ad @@ -6236,7 +6413,7 @@ Lease avgiftnivå src/app/lightning/node/node.component.html - 144,147 + 147,150 Liquidity ad lease fee rate liquidity-ad.lease-fee-rate @@ -6246,7 +6423,7 @@ Lease basavgift src/app/lightning/node/node.component.html - 152,154 + 155,157 liquidity-ad.lease-base-fee @@ -6255,7 +6432,7 @@ Finansieringsweight src/app/lightning/node/node.component.html - 158,159 + 161,162 liquidity-ad.funding-weight @@ -6264,7 +6441,7 @@ Kanal avgiftsnivå src/app/lightning/node/node.component.html - 168,171 + 171,174 Liquidity ad channel fee rate liquidity-ad.channel-fee-rate @@ -6274,7 +6451,7 @@ Kanal basavgift src/app/lightning/node/node.component.html - 176,178 + 179,181 liquidity-ad.channel-base-fee @@ -6283,7 +6460,7 @@ Kompakt lease src/app/lightning/node/node.component.html - 188,190 + 191,193 liquidity-ad.compact-lease @@ -6292,7 +6469,7 @@ TLV-tilläggsposter src/app/lightning/node/node.component.html - 199,202 + 202,205 node.tlv.records @@ -6301,7 +6478,7 @@ Öppna kanaler src/app/lightning/node/node.component.html - 240,243 + 243,246 lightning.open-channels @@ -6310,7 +6487,7 @@ Stängda kanaler src/app/lightning/node/node.component.html - 244,247 + 247,250 lightning.open-channels @@ -6356,7 +6533,7 @@ Ingen geolokaliseringsdata tillgänglig src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts - 218,213 + 219,214 @@ -6380,9 +6557,9 @@ 112,107 - - Reachable on Clearnet Only - Kan endast nås på Clearnet + + Clearnet and Darknet + Clearnet och Darknet src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 164,161 @@ -6392,9 +6569,9 @@ 303,302 - - Reachable on Clearnet and Darknet - Kan nås på Clearnet och Darknet + + Clearnet Only (IPv4, IPv6) + Endast Clearnet (IPv4, IPv6) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 185,182 @@ -6404,9 +6581,9 @@ 295,294 - - Reachable on Darknet Only - Kan endast nås på Darknet + + Darknet Only (Tor, I2P, cjdns) + Endast Darknet (Tor, I2P, cjdns) src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts 206,203 @@ -6662,24 +6839,6 @@ 27 - - Top 100 nodes liquidity ranking - Topp 100 noder likviditetsrankning - - src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.html - 3,7 - - lightning.top-100-liquidity - - - Top 100 nodes connectivity ranking - Topp 100 noder anslutningsrankning - - src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.html - 3,7 - - lightning.top-100-connectivity - Oldest nodes Äldsta noder From 5937e959c3085b56c4c027f0da9fbd7ce7396a3c Mon Sep 17 00:00:00 2001 From: Mononaut Date: Mon, 6 Mar 2023 19:59:56 -0600 Subject: [PATCH 0512/1466] Fix miscellaneous RTL layout bugs --- .../block-fees-graph.component.scss | 25 ---------- .../block-prediction-graph.component.scss | 25 ---------- .../block-rewards-graph.component.scss | 25 ---------- .../block-sizes-weights-graph.component.scss | 25 ---------- .../components/graphs/graphs.component.html | 7 ++- .../components/graphs/graphs.component.scss | 11 +++- .../hashrate-chart.component.scss | 25 ---------- .../hashrate-chart-pools.component.scss | 25 ---------- .../pool-ranking/pool-ranking.component.scss | 25 ---------- .../lightning/channel/channel.component.scss | 2 +- .../channels-list.component.scss | 8 +++ .../app/lightning/group/group.component.html | 2 +- .../app/lightning/group/group.component.scss | 16 +++++- .../app/lightning/node/node.component.html | 2 +- .../nodes-networks-chart.component.scss | 25 ---------- .../nodes-per-isp-chart.component.scss | 25 ---------- .../lightning-statistics-chart.component.scss | 25 ---------- frontend/src/styles.scss | 50 ++++++++++++++++--- 18 files changed, 82 insertions(+), 266 deletions(-) diff --git a/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss b/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss index ec1755e7d..65447419a 100644 --- a/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss +++ b/frontend/src/app/components/block-fees-graph/block-fees-graph.component.scss @@ -54,31 +54,6 @@ max-height: 270px; } -.formRadioGroup { - margin-top: 6px; - display: flex; - flex-direction: column; - @media (min-width: 991px) { - position: relative; - top: -100px; - } - @media (min-width: 830px) and (max-width: 991px) { - position: relative; - top: 0px; - } - @media (min-width: 830px) { - flex-direction: row; - float: right; - margin-top: 0px; - } - .btn-sm { - font-size: 9px; - @media (min-width: 830px) { - font-size: 14px; - } - } -} - .disabled { pointer-events: none; opacity: 0.5; diff --git a/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss b/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss index ec1755e7d..65447419a 100644 --- a/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss +++ b/frontend/src/app/components/block-prediction-graph/block-prediction-graph.component.scss @@ -54,31 +54,6 @@ max-height: 270px; } -.formRadioGroup { - margin-top: 6px; - display: flex; - flex-direction: column; - @media (min-width: 991px) { - position: relative; - top: -100px; - } - @media (min-width: 830px) and (max-width: 991px) { - position: relative; - top: 0px; - } - @media (min-width: 830px) { - flex-direction: row; - float: right; - margin-top: 0px; - } - .btn-sm { - font-size: 9px; - @media (min-width: 830px) { - font-size: 14px; - } - } -} - .disabled { pointer-events: none; opacity: 0.5; diff --git a/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss b/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss index ec1755e7d..65447419a 100644 --- a/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss +++ b/frontend/src/app/components/block-rewards-graph/block-rewards-graph.component.scss @@ -54,31 +54,6 @@ max-height: 270px; } -.formRadioGroup { - margin-top: 6px; - display: flex; - flex-direction: column; - @media (min-width: 991px) { - position: relative; - top: -100px; - } - @media (min-width: 830px) and (max-width: 991px) { - position: relative; - top: 0px; - } - @media (min-width: 830px) { - flex-direction: row; - float: right; - margin-top: 0px; - } - .btn-sm { - font-size: 9px; - @media (min-width: 830px) { - font-size: 14px; - } - } -} - .disabled { pointer-events: none; opacity: 0.5; diff --git a/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss b/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss index 85765e0e1..65447419a 100644 --- a/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss +++ b/frontend/src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.scss @@ -54,31 +54,6 @@ max-height: 270px; } -.formRadioGroup { - margin-top: 6px; - display: flex; - flex-direction: column; - @media (min-width: 1130px) { - position: relative; - top: -100px; - } - @media (min-width: 830px) and (max-width: 1130px) { - position: relative; - top: 0px; - } - @media (min-width: 830px) { - flex-direction: row; - float: right; - margin-top: 0px; - } - .btn-sm { - font-size: 9px; - @media (min-width: 830px) { - font-size: 14px; - } - } -} - .disabled { pointer-events: none; opacity: 0.5; diff --git a/frontend/src/app/components/graphs/graphs.component.html b/frontend/src/app/components/graphs/graphs.component.html index af5136a38..105c6cbf2 100644 --- a/frontend/src/app/components/graphs/graphs.component.html +++ b/frontend/src/app/components/graphs/graphs.component.html @@ -1,10 +1,9 @@ -