Merge branch 'master' into mononaut/v1-audit-improvements
This commit is contained in:
		
						commit
						62085581dd
					
				
							
								
								
									
										12
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								LICENSE
									
									
									
									
									
								
							@ -1,5 +1,5 @@
 | 
			
		||||
The Mempool Open Source Project®
 | 
			
		||||
Copyright (c) 2019-2023 Mempool Space K.K. and other shadowy super-coders
 | 
			
		||||
Copyright (c) 2019-2024 Mempool Space K.K. and other shadowy super-coders
 | 
			
		||||
 | 
			
		||||
This program is free software; you can redistribute it and/or modify it under
 | 
			
		||||
the terms of the GNU Affero General Public License as published by the Free
 | 
			
		||||
@ -12,10 +12,12 @@ or any other contributor to The Mempool Open Source Project.
 | 
			
		||||
 | 
			
		||||
The Mempool Open Source Project®, Mempool Accelerator™, Mempool Enterprise®, 
 | 
			
		||||
Mempool Liquidity™, mempool.space®, Be your own explorer™, Explore the full 
 | 
			
		||||
Bitcoin ecosystem™, Mempool Goggles™, the mempool Logo, the mempool Square logo, 
 | 
			
		||||
the mempool Blocks logo, the mempool Blocks 3 | 2 logo, the mempool.space Vertical 
 | 
			
		||||
Logo, and the mempool.space Horizontal logo are registered trademarks or trademarks 
 | 
			
		||||
of Mempool Space K.K in Japan, the United States, and/or other countries.
 | 
			
		||||
Bitcoin ecosystem™, Mempool Goggles™, the mempool Logo, the mempool Square Logo, 
 | 
			
		||||
the mempool block visualization Logo, the mempool Blocks Logo, the mempool 
 | 
			
		||||
transaction Logo, the mempool Blocks 3 | 2 Logo, the mempool research Logo, 
 | 
			
		||||
the mempool.space Vertical Logo, and the mempool.space Horizontal Logo are 
 | 
			
		||||
registered trademarks or trademarks of Mempool Space K.K in Japan, 
 | 
			
		||||
the United States, and/or other countries.
 | 
			
		||||
 | 
			
		||||
See our full Trademark Policy and Guidelines for more details, published on 
 | 
			
		||||
<https://mempool.space/trademark-policy>.
 | 
			
		||||
 | 
			
		||||
@ -77,7 +77,7 @@ Query OK, 0 rows affected (0.00 sec)
 | 
			
		||||
 | 
			
		||||
#### Build
 | 
			
		||||
 | 
			
		||||
_Make sure to use Node.js 16.10 and npm 7._
 | 
			
		||||
_Make sure to use Node.js 20.x and npm 9.x or newer_
 | 
			
		||||
 | 
			
		||||
_The build process requires [Rust](https://www.rust-lang.org/tools/install) to be installed._
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										19
									
								
								backend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										19
									
								
								backend/package-lock.json
									
									
									
										generated
									
									
									
								
							@ -1,18 +1,19 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mempool-backend",
 | 
			
		||||
  "version": "3.0.0-beta",
 | 
			
		||||
  "version": "3.1.0-dev",
 | 
			
		||||
  "lockfileVersion": 2,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "mempool-backend",
 | 
			
		||||
      "version": "3.0.0-beta",
 | 
			
		||||
      "version": "3.1.0-dev",
 | 
			
		||||
      "hasInstallScript": true,
 | 
			
		||||
      "license": "GNU Affero General Public License v3.0",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@babel/core": "^7.25.2",
 | 
			
		||||
        "@mempool/electrum-client": "1.1.9",
 | 
			
		||||
        "@types/node": "^18.15.3",
 | 
			
		||||
        "axios": "~1.7.2",
 | 
			
		||||
        "axios": "~1.7.4",
 | 
			
		||||
        "bitcoinjs-lib": "~6.1.3",
 | 
			
		||||
        "crypto-js": "~4.2.0",
 | 
			
		||||
        "express": "~4.19.2",
 | 
			
		||||
@ -2277,9 +2278,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/axios": {
 | 
			
		||||
      "version": "1.7.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
 | 
			
		||||
      "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
 | 
			
		||||
      "version": "1.7.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
 | 
			
		||||
      "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "follow-redirects": "^1.15.6",
 | 
			
		||||
        "form-data": "^4.0.0",
 | 
			
		||||
@ -9438,9 +9439,9 @@
 | 
			
		||||
      "integrity": "sha512-+H+kuK34PfMaI9PNU/NSjBKL5hh/KDM9J72kwYeYEm0A8B1AC4fuCy3qsjnA7lxklgyXsB68yn8Z2xoZEjgwCQ=="
 | 
			
		||||
    },
 | 
			
		||||
    "axios": {
 | 
			
		||||
      "version": "1.7.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
 | 
			
		||||
      "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
 | 
			
		||||
      "version": "1.7.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
 | 
			
		||||
      "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "follow-redirects": "^1.15.6",
 | 
			
		||||
        "form-data": "^4.0.0",
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mempool-backend",
 | 
			
		||||
  "version": "3.0.0-beta",
 | 
			
		||||
  "version": "3.1.0-dev",
 | 
			
		||||
  "description": "Bitcoin mempool visualizer and blockchain explorer backend",
 | 
			
		||||
  "license": "GNU Affero General Public License v3.0",
 | 
			
		||||
  "homepage": "https://mempool.space",
 | 
			
		||||
@ -42,7 +42,7 @@
 | 
			
		||||
    "@babel/core": "^7.25.2",
 | 
			
		||||
    "@mempool/electrum-client": "1.1.9",
 | 
			
		||||
    "@types/node": "^18.15.3",
 | 
			
		||||
    "axios": "~1.7.2",
 | 
			
		||||
    "axios": "~1.7.4",
 | 
			
		||||
    "bitcoinjs-lib": "~6.1.3",
 | 
			
		||||
    "crypto-js": "~4.2.0",
 | 
			
		||||
    "express": "~4.19.2",
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@ $ npm run config:defaults:liquid
 | 
			
		||||
 | 
			
		||||
### 3. Run the Frontend
 | 
			
		||||
 | 
			
		||||
_Make sure to use Node.js 16.10 and npm 7._
 | 
			
		||||
_Make sure to use Node.js 20.x and npm 9.x or newer._
 | 
			
		||||
 | 
			
		||||
Install project dependencies and run the frontend server:
 | 
			
		||||
 | 
			
		||||
@ -70,7 +70,7 @@ Set up the [Mempool backend](../backend/) first, if you haven't already.
 | 
			
		||||
 | 
			
		||||
### 1. Build the Frontend
 | 
			
		||||
 | 
			
		||||
_Make sure to use Node.js 16.10 and npm 7._
 | 
			
		||||
_Make sure to use Node.js 20.x and npm 9.x or newer._
 | 
			
		||||
 | 
			
		||||
Build the frontend:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -54,6 +54,10 @@
 | 
			
		||||
            "translation": "src/locale/messages.fr.xlf",
 | 
			
		||||
            "baseHref": "/fr/"
 | 
			
		||||
          },
 | 
			
		||||
          "hr": {
 | 
			
		||||
            "translation": "src/locale/messages.hr.xlf",
 | 
			
		||||
            "baseHref": "/hr/"
 | 
			
		||||
          },
 | 
			
		||||
          "ja": {
 | 
			
		||||
            "translation": "src/locale/messages.ja.xlf",
 | 
			
		||||
            "baseHref": "/ja/"
 | 
			
		||||
 | 
			
		||||
@ -750,7 +750,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    "backendInfo": {
 | 
			
		||||
      "hostname": "node205.tk7.mempool.space",
 | 
			
		||||
      "version": "3.0.0-beta",
 | 
			
		||||
      "version": "3.1.0-dev",
 | 
			
		||||
      "gitCommit": "abbc8a134",
 | 
			
		||||
      "lightning": false
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										40
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							@ -1,12 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mempool-frontend",
 | 
			
		||||
  "version": "3.0.0-beta",
 | 
			
		||||
  "version": "3.1.0-dev",
 | 
			
		||||
  "lockfileVersion": 2,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "mempool-frontend",
 | 
			
		||||
      "version": "3.0.0-beta",
 | 
			
		||||
      "version": "3.1.0-dev",
 | 
			
		||||
      "license": "GNU Affero General Public License v3.0",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@angular-devkit/build-angular": "^17.3.1",
 | 
			
		||||
@ -42,7 +42,7 @@
 | 
			
		||||
        "rxjs": "~7.8.1",
 | 
			
		||||
        "tinyify": "^4.0.0",
 | 
			
		||||
        "tlite": "^0.1.9",
 | 
			
		||||
        "tslib": "~2.6.0",
 | 
			
		||||
        "tslib": "~2.7.0",
 | 
			
		||||
        "zone.js": "~0.14.4"
 | 
			
		||||
      },
 | 
			
		||||
      "devDependencies": {
 | 
			
		||||
@ -699,6 +699,11 @@
 | 
			
		||||
        "node": ">=10"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-angular/node_modules/tslib": {
 | 
			
		||||
      "version": "2.6.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
 | 
			
		||||
      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@angular-devkit/build-webpack": {
 | 
			
		||||
      "version": "0.1703.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.1.tgz",
 | 
			
		||||
@ -8805,9 +8810,9 @@
 | 
			
		||||
      "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/elliptic": {
 | 
			
		||||
      "version": "6.5.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
 | 
			
		||||
      "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
 | 
			
		||||
      "version": "6.5.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz",
 | 
			
		||||
      "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "bn.js": "^4.11.9",
 | 
			
		||||
        "brorand": "^1.1.0",
 | 
			
		||||
@ -16925,9 +16930,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/tslib": {
 | 
			
		||||
      "version": "2.6.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
 | 
			
		||||
      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
 | 
			
		||||
      "version": "2.7.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
 | 
			
		||||
      "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/tuf-js": {
 | 
			
		||||
      "version": "2.2.0",
 | 
			
		||||
@ -18849,6 +18854,11 @@
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "lru-cache": "^6.0.0"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "tslib": {
 | 
			
		||||
          "version": "2.6.2",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
 | 
			
		||||
          "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@ -24723,9 +24733,9 @@
 | 
			
		||||
      "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg=="
 | 
			
		||||
    },
 | 
			
		||||
    "elliptic": {
 | 
			
		||||
      "version": "6.5.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
 | 
			
		||||
      "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
 | 
			
		||||
      "version": "6.5.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz",
 | 
			
		||||
      "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==",
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "bn.js": "^4.11.9",
 | 
			
		||||
        "brorand": "^1.1.0",
 | 
			
		||||
@ -30763,9 +30773,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "tslib": {
 | 
			
		||||
      "version": "2.6.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
 | 
			
		||||
      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
 | 
			
		||||
      "version": "2.7.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
 | 
			
		||||
      "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA=="
 | 
			
		||||
    },
 | 
			
		||||
    "tuf-js": {
 | 
			
		||||
      "version": "2.2.0",
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mempool-frontend",
 | 
			
		||||
  "version": "3.0.0-beta",
 | 
			
		||||
  "version": "3.1.0-dev",
 | 
			
		||||
  "description": "Bitcoin mempool visualizer and blockchain explorer backend",
 | 
			
		||||
  "license": "GNU Affero General Public License v3.0",
 | 
			
		||||
  "homepage": "https://mempool.space",
 | 
			
		||||
@ -95,7 +95,7 @@
 | 
			
		||||
    "esbuild": "^0.23.0",
 | 
			
		||||
    "tinyify": "^4.0.0",
 | 
			
		||||
    "tlite": "^0.1.9",
 | 
			
		||||
    "tslib": "~2.6.0",
 | 
			
		||||
    "tslib": "~2.7.0",
 | 
			
		||||
    "zone.js": "~0.14.4"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
 | 
			
		||||
@ -53,7 +53,7 @@
 | 
			
		||||
        <span>Spiral</span>
 | 
			
		||||
      </a>
 | 
			
		||||
      <a href="https://foundrydigital.com/" target="_blank" title="Foundry">
 | 
			
		||||
        <svg xmlns="http://www.w3.org/2000/svg" id="b" data-name="Layer 2" style="zoom: 1;" width="32" height="76" viewBox="0 0 32 76">
 | 
			
		||||
        <svg xmlns="http://www.w3.org/2000/svg" id="b" data-name="Layer 2" style="zoom: 1;" width="32" height="76" viewBox="0 0 32 76" class="image">
 | 
			
		||||
          <defs>
 | 
			
		||||
            <style>
 | 
			
		||||
              .d {
 | 
			
		||||
@ -125,7 +125,9 @@
 | 
			
		||||
        <span>Blockstream</span>
 | 
			
		||||
      </a>
 | 
			
		||||
      <a href="https://unchained.com/" target="_blank" title="Unchained">
 | 
			
		||||
        <svg id="Layer_1" width="78" height="78" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 156.68 156.68"><defs><style>.cls-unchained-1{fill:#fff;}</style></defs><path class="cls-unchained-1" d="m78.34,0C35.07,0,0,35.07,0,78.34s35.07,78.34,78.34,78.34,78.34-35.07,78.34-78.34S121.6,0,78.34,0ZM20.23,109.5c-4.99-9.28-7.81-19.89-7.81-31.16C12.42,41.93,41.93,12.42,78.34,12.42c33.15,0,60.58,24.46,65.23,56.32h-37.48c-45.29,0-71.19,20.05-85.85,40.76Zm58.11,34.76c-12.42,0-24.04-3.44-33.96-9.41,3.94-8.85,9.11-18.7,15.84-28.9,20.99-31.8,52.2-31.19,76.49-31.19h7.45c.06,1.18.1,2.38.1,3.58,0,36.41-29.51,65.92-65.92,65.92Z"/><path class="cls-unchained-1" d="m91.98,42.4l-3.62-1.18c-3.94-1.29-7.03-4.38-8.32-8.32l-1.18-3.63c-.13-.39-.68-.39-.81,0l-1.18,3.63c-1.29,3.94-4.38,7.03-8.32,8.32l-3.62,1.18c-.39.13-.39.68,0,.81l3.62,1.18c3.94,1.29,7.03,4.38,8.32,8.32l1.18,3.63c.13.39.68.39.81,0l1.18-3.63c1.29-3.94,4.38-7.03,8.32-8.32l3.62-1.18c.39-.13.39-.68,0-.81Z"/></svg>
 | 
			
		||||
        <svg id="Layer_1" width="78" height="78" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 156.68 156.68" class="image">
 | 
			
		||||
          <defs><style>.cls-unchained-1{fill:#fff;}</style></defs><path class="cls-unchained-1" d="m78.34,0C35.07,0,0,35.07,0,78.34s35.07,78.34,78.34,78.34,78.34-35.07,78.34-78.34S121.6,0,78.34,0ZM20.23,109.5c-4.99-9.28-7.81-19.89-7.81-31.16C12.42,41.93,41.93,12.42,78.34,12.42c33.15,0,60.58,24.46,65.23,56.32h-37.48c-45.29,0-71.19,20.05-85.85,40.76Zm58.11,34.76c-12.42,0-24.04-3.44-33.96-9.41,3.94-8.85,9.11-18.7,15.84-28.9,20.99-31.8,52.2-31.19,76.49-31.19h7.45c.06,1.18.1,2.38.1,3.58,0,36.41-29.51,65.92-65.92,65.92Z"/><path class="cls-unchained-1" d="m91.98,42.4l-3.62-1.18c-3.94-1.29-7.03-4.38-8.32-8.32l-1.18-3.63c-.13-.39-.68-.39-.81,0l-1.18,3.63c-1.29,3.94-4.38,7.03-8.32,8.32l-3.62,1.18c-.39.13-.39.68,0,.81l3.62,1.18c3.94,1.29,7.03,4.38,8.32,8.32l1.18,3.63c.13.39.68.39.81,0l1.18-3.63c1.29-3.94,4.38-7.03,8.32-8.32l3.62-1.18c.39-.13.39-.68,0-.81Z"/>
 | 
			
		||||
        </svg>
 | 
			
		||||
        <span>Unchained</span>
 | 
			
		||||
      </a>
 | 
			
		||||
      <a href="https://gemini.com/" target="_blank" title="Gemini">
 | 
			
		||||
@ -150,7 +152,7 @@
 | 
			
		||||
        <span>Bull Bitcoin</span>
 | 
			
		||||
      </a>
 | 
			
		||||
      <a href="https://exodus.com/" target="_blank" title="Exodus">
 | 
			
		||||
        <svg width="80" height="80" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
			
		||||
        <svg width="80" height="80" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg" class="image">
 | 
			
		||||
          <circle cx="250" cy="250" r="250" fill="#1F2033"/>
 | 
			
		||||
          <g clip-path="url(#clip0_2_14)">
 | 
			
		||||
            <path d="M411.042 178.303L271.79 87V138.048L361.121 196.097L350.612 229.351H271.79V271.648H350.612L361.121 304.903L271.79 362.952V414L411.042 322.989L388.271 250.646L411.042 178.303Z" fill="url(#paint0_linear_2_14)"/>
 | 
			
		||||
@ -435,7 +437,7 @@
 | 
			
		||||
      Trademark Notice<br>
 | 
			
		||||
    </div>
 | 
			
		||||
    <p>
 | 
			
		||||
      The Mempool Open Source Project®, Mempool Accelerator™, Mempool Enterprise®, Mempool Liquidity™, mempool.space®, Be your own explorer™, Explore the full Bitcoin ecosystem®, Mempool Goggles™, the mempool logo, the mempool Square logo, the mempool Blocks logo, the mempool Blocks 3 | 2 logo, the mempool.space Vertical Logo, and the mempool.space Horizontal logo are either registered trademarks or trademarks of Mempool Space K.K in Japan, the United States, and/or other countries.
 | 
			
		||||
      The Mempool Open Source Project®, Mempool Accelerator™, Mempool Enterprise®, Mempool Liquidity™, mempool.space®, Be your own explorer™, Explore the full Bitcoin ecosystem®, Mempool Goggles™, the mempool Logo, the mempool Square Logo, the mempool block visualization Logo, the mempool Blocks Logo, the mempool transaction Logo, the mempool Blocks 3 | 2 Logo, the mempool research Logo, the mempool.space Vertical Logo, and the mempool.space Horizontal Logo are either registered trademarks or trademarks of Mempool Space K.K in Japan, the United States, and/or other countries.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      While our software is available under an open source software license, the copyright license does not include an implied right or license to use our trademarks. See our <a href="https://mempool.space/trademark-policy">Trademark Policy and Guidelines</a> for more details, published on <https://mempool.space/trademark-policy>.
 | 
			
		||||
 | 
			
		||||
@ -13,8 +13,6 @@
 | 
			
		||||
 | 
			
		||||
  .image.not-rounded {
 | 
			
		||||
    border-radius: 0;
 | 
			
		||||
    width: 60px;
 | 
			
		||||
    height: 60px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .intro {
 | 
			
		||||
@ -158,9 +156,8 @@
 | 
			
		||||
          margin: 40px 29px 10px;
 | 
			
		||||
          &.image.coldcard {
 | 
			
		||||
            border-radius: 0;
 | 
			
		||||
            width: auto;
 | 
			
		||||
            max-height: 50px;
 | 
			
		||||
            margin: 40px 29px 14px 29px;
 | 
			
		||||
            height: auto;
 | 
			
		||||
            margin: 20px 29px 20px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -67,13 +67,17 @@ export class ActiveAccelerationBox implements OnChanges {
 | 
			
		||||
 | 
			
		||||
    const acceleratingPools = (poolList || []).filter(id => pools[id]).sort((a,b) => pools[a].lastEstimatedHashrate - pools[b].lastEstimatedHashrate);
 | 
			
		||||
    const totalAcceleratedHashrate = acceleratingPools.reduce((total, pool) => total + pools[pool].lastEstimatedHashrate, 0);
 | 
			
		||||
    const lightenStep = acceleratingPools.length ? (0.48 / acceleratingPools.length) : 0;
 | 
			
		||||
    // Find the first pool with at least 1% of the total network hashrate
 | 
			
		||||
    const firstSignificantPool = acceleratingPools.findIndex(pool => pools[pool].lastEstimatedHashrate > this.miningStats.lastEstimatedHashrate / 100);
 | 
			
		||||
    const numSignificantPools = acceleratingPools.length - firstSignificantPool;
 | 
			
		||||
    acceleratingPools.forEach((poolId, index) => {
 | 
			
		||||
      const pool = pools[poolId];
 | 
			
		||||
      const poolShare = ((pool.lastEstimatedHashrate / this.miningStats.lastEstimatedHashrate) * 100).toFixed(1);
 | 
			
		||||
      data.push(getDataItem(
 | 
			
		||||
        pool.lastEstimatedHashrate,
 | 
			
		||||
        toRGB(lighten({ r: 147, g: 57, b: 244 }, index * lightenStep)),
 | 
			
		||||
        index >= firstSignificantPool
 | 
			
		||||
          ? toRGB(lighten({ r: 147, g: 57, b: 244 }, 1 - (index - firstSignificantPool) / (numSignificantPools - 1)))
 | 
			
		||||
          : 'white',
 | 
			
		||||
        `<b style="color: white">${pool.name} (${poolShare}%)</b>`,
 | 
			
		||||
        true,
 | 
			
		||||
      ) as PieSeriesOption);
 | 
			
		||||
 | 
			
		||||
@ -213,7 +213,7 @@ export class MempoolBlocksComponent implements OnInit, OnChanges, OnDestroy {
 | 
			
		||||
        }
 | 
			
		||||
        if (state.mempoolPosition) {
 | 
			
		||||
          this.txPosition = state.mempoolPosition;
 | 
			
		||||
          if (this.txPosition.accelerated && !oldTxPosition.accelerated) {
 | 
			
		||||
          if (this.txPosition.accelerated && !oldTxPosition?.accelerated) {
 | 
			
		||||
            this.acceleratingArrow = true;
 | 
			
		||||
            setTimeout(() => {
 | 
			
		||||
              this.acceleratingArrow = false;
 | 
			
		||||
 | 
			
		||||
@ -293,7 +293,7 @@ export class TrackerComponent implements OnInit, OnDestroy {
 | 
			
		||||
      })
 | 
			
		||||
    ).subscribe((accelerationHistory) => {
 | 
			
		||||
      for (const acceleration of accelerationHistory) {
 | 
			
		||||
        if (acceleration.txid === this.txId && (acceleration.status === 'completed' || acceleration.status === 'completed_provisional')) {
 | 
			
		||||
        if (acceleration.txid === this.txId && (acceleration.status === 'completed' || acceleration.status === 'completed_provisional') && acceleration.pools.includes(acceleration.minedByPoolUniqueId)) {
 | 
			
		||||
          const boostCost = acceleration.boostCost || acceleration.bidBoost;
 | 
			
		||||
          acceleration.acceleratedFeeRate = Math.max(acceleration.effectiveFee, acceleration.effectiveFee + boostCost) / acceleration.effectiveVsize;
 | 
			
		||||
          acceleration.boost = boostCost;
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@
 | 
			
		||||
  <div *ngIf="officialMempoolSpace">
 | 
			
		||||
    <h2>Trademark Policy and Guidelines</h2>
 | 
			
		||||
    <h5>The Mempool Open Source Project ®</h5>
 | 
			
		||||
    <h6>Updated: July 3, 2024</h6>
 | 
			
		||||
    <h6>Updated: August 19, 2024</h6>
 | 
			
		||||
    <br>
 | 
			
		||||
 | 
			
		||||
    <div class="text-left">
 | 
			
		||||
@ -100,11 +100,26 @@
 | 
			
		||||
            <p>The Mempool Accelerator Logo</p>
 | 
			
		||||
            <br><br>
 | 
			
		||||
 | 
			
		||||
            <img src="/resources/mempool-research.png" style="width: 500px; max-width: 80%">
 | 
			
		||||
            <br><br>
 | 
			
		||||
            <p>The mempool research Logo</p>
 | 
			
		||||
            <br><br>
 | 
			
		||||
 | 
			
		||||
            <app-svg-images name="goggles" height="96px"></app-svg-images>
 | 
			
		||||
            <br><br>
 | 
			
		||||
            <p>The Mempool Goggles Logo</p>
 | 
			
		||||
            <br><br>
 | 
			
		||||
 | 
			
		||||
            <img src="/resources/mempool-transaction.png" style="width: 500px; max-width: 80%">
 | 
			
		||||
            <br><br>
 | 
			
		||||
            <p>The mempool transaction Logo</p>
 | 
			
		||||
            <br><br>
 | 
			
		||||
 | 
			
		||||
            <img src="/resources/mempool-block-visualization.png" style="width: 500px; max-width: 80%">
 | 
			
		||||
            <br><br>
 | 
			
		||||
            <p>The mempool block visualization Logo</p>
 | 
			
		||||
            <br><br>
 | 
			
		||||
 | 
			
		||||
            <img src="/resources/mempool-blocks-2-3-logo.jpeg" style="width: 500px; max-width: 80%">
 | 
			
		||||
            <br><br>
 | 
			
		||||
            <p>The mempool Blocks Logo</p>
 | 
			
		||||
 | 
			
		||||
@ -607,15 +607,10 @@
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td class="td-width" i18n="transaction.fee|Transaction fee">Fee</td>
 | 
			
		||||
      <td class="text-wrap">{{ tx.fee | number }} <span class="symbol" i18n="shared.sat|sat">sat</span>
 | 
			
		||||
        @if (accelerationInfo?.bidBoost) {
 | 
			
		||||
          <span class="oobFees" i18n-ngbTooltip="Acceleration Fees" ngbTooltip="Acceleration fees paid out-of-band"> +{{ accelerationInfo.bidBoost | number }} </span><span class="symbol" i18n="shared.sat|sat">sat</span>
 | 
			
		||||
          <span class="fiat"><app-fiat [blockConversion]="tx.price" [value]="tx.fee + accelerationInfo.bidBoost"></app-fiat></span>
 | 
			
		||||
        } @else if (tx.feeDelta && !accelerationInfo) {
 | 
			
		||||
          <span class="oobFees" i18n-ngbTooltip="Acceleration Fees" ngbTooltip="Acceleration fees paid out-of-band"> +{{ tx.feeDelta | number }} </span><span class="symbol" i18n="shared.sat|sat">sat</span>
 | 
			
		||||
          <span class="fiat"><app-fiat [blockConversion]="tx.price" [value]="tx.fee + tx.feeDelta"></app-fiat></span>
 | 
			
		||||
        } @else {
 | 
			
		||||
          <span class="fiat"><app-fiat [blockConversion]="tx.price" [value]="tx.fee"></app-fiat></span>
 | 
			
		||||
        @if (accelerationInfo?.bidBoost ?? tx.feeDelta > 0) {
 | 
			
		||||
          <span class="oobFees" i18n-ngbTooltip="Acceleration Fees" ngbTooltip="Acceleration fees paid out-of-band"> +{{ accelerationInfo?.bidBoost ?? tx.feeDelta | number }} </span><span class="symbol" i18n="shared.sat|sat">sat</span>
 | 
			
		||||
        }
 | 
			
		||||
        <span class="fiat"><app-fiat [blockConversion]="tx.price" [value]="tx.fee + ((accelerationInfo?.bidBoost ?? tx.feeDelta) || 0)"></app-fiat></span>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
  } @else {
 | 
			
		||||
 | 
			
		||||
@ -358,12 +358,18 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
 | 
			
		||||
      }),
 | 
			
		||||
    ).subscribe((accelerationHistory) => {
 | 
			
		||||
      for (const acceleration of accelerationHistory) {
 | 
			
		||||
        if (acceleration.txid === this.txId && (acceleration.status === 'completed' || acceleration.status === 'completed_provisional')) {
 | 
			
		||||
        if (acceleration.txid === this.txId) {
 | 
			
		||||
          if (acceleration.status === 'completed' || acceleration.status === 'completed_provisional') {
 | 
			
		||||
            if (acceleration.pools.includes(acceleration.minedByPoolUniqueId)) {
 | 
			
		||||
              const boostCost = acceleration.boostCost || acceleration.bidBoost;
 | 
			
		||||
              acceleration.acceleratedFeeRate = Math.max(acceleration.effectiveFee, acceleration.effectiveFee + boostCost) / acceleration.effectiveVsize;
 | 
			
		||||
              acceleration.boost = boostCost;
 | 
			
		||||
              this.tx.acceleratedAt = acceleration.added;
 | 
			
		||||
              this.accelerationInfo = acceleration;  
 | 
			
		||||
            } else {
 | 
			
		||||
              this.tx.feeDelta = undefined;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          this.waitingForAccelerationInfo = false;
 | 
			
		||||
          this.setIsAccelerated();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1567,7 +1567,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="bdb8bbb38e4ca3c73e19dc4167fbe4aec316f818" datatype="html">
 | 
			
		||||
        <source>Total Bid Boost</source>
 | 
			
		||||
        <target>Ukupno povećanje ponude</target>
 | 
			
		||||
        <target>Total Bid Boost</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/acceleration/acceleration-stats/acceleration-stats.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">11</context>
 | 
			
		||||
@ -1969,7 +1969,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="841f2a74ae5095e6e37f5749f3cc1851cf36a420" datatype="html">
 | 
			
		||||
        <source>Avg Max Bid</source>
 | 
			
		||||
        <target>Prosječna maks. ponuda</target>
 | 
			
		||||
        <target>Prosj. max ponuda</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/acceleration/pending-stats/pending-stats.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">11</context>
 | 
			
		||||
@ -3622,7 +3622,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="14779b0ce4cbc4d975a35a8fe074426228a324f3" datatype="html">
 | 
			
		||||
        <source><x id="INTERPOLATION" equiv-text="transactions</ng-template>   </h2>   <ngb-pagination class="pagination-container float-ri"/> transactions</source>
 | 
			
		||||
        <target><x id="INTERPOLATION" equiv-text="transactions</ng-template>   </h2>   <ngb-pagination class="pagination-container float-ri"/> transakcije</target>
 | 
			
		||||
        <target><x id="INTERPOLATION" equiv-text="transactions</ng-template>   </h2>   <ngb-pagination class="pagination-container float-ri"/> transakcija</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/block/block-transactions.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">5</context>
 | 
			
		||||
@ -4046,7 +4046,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="8a7b4bd44c0ac71b2e72de0398b303257f7d2f54" datatype="html">
 | 
			
		||||
        <source>Blocks</source>
 | 
			
		||||
        <target>Blokovi</target>
 | 
			
		||||
        <target>Blokova</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">4</context>
 | 
			
		||||
@ -4360,7 +4360,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="23c872b0336e20284724607f2887da39bd8142c3" datatype="html">
 | 
			
		||||
        <source>Previous fee</source>
 | 
			
		||||
        <target>Prethodna naknada</target>
 | 
			
		||||
        <target>Preth. naknada</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/custom-dashboard/custom-dashboard.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">107</context>
 | 
			
		||||
@ -4594,7 +4594,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html">
 | 
			
		||||
        <source><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template>             <ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
 | 
			
		||||
        <target><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template>             <ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blokovi<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
 | 
			
		||||
        <target><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template>             <ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blokova<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">10,11</context>
 | 
			
		||||
@ -4671,7 +4671,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="df71fa93f0503396ea2bb3ba5161323330314d6c" datatype="html">
 | 
			
		||||
        <source>Next Halving</source>
 | 
			
		||||
        <target>Sljedeće prepolovljenje</target>
 | 
			
		||||
        <target>Slj prepolovljenje</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">47</context>
 | 
			
		||||
@ -5465,7 +5465,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="1a8246eba9a999ee881248c4767d63b875ef07fe" datatype="html">
 | 
			
		||||
        <source>blocks</source>
 | 
			
		||||
        <target>blokovi</target>
 | 
			
		||||
        <target>blokova</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/liquid-reserves-audit/federation-utxos-list/federation-utxos-list.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">63</context>
 | 
			
		||||
@ -5885,7 +5885,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="9ef8b357c32266f8423e24bf654006d3aa8fcd0b" datatype="html">
 | 
			
		||||
        <source>Blocks (1w)</source>
 | 
			
		||||
        <target>Blokova (1w)</target>
 | 
			
		||||
        <target>Blokova (1 tj)</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">25</context>
 | 
			
		||||
@ -6165,7 +6165,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="3dc78651b2810cbb6e830fe7e57499d8cf6a8e4d" datatype="html">
 | 
			
		||||
        <source>Blocks (24h)</source>
 | 
			
		||||
        <target>Blokovi (24h)</target>
 | 
			
		||||
        <target>Blokova (24h)</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">120</context>
 | 
			
		||||
@ -6815,7 +6815,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="time-until" datatype="html">
 | 
			
		||||
        <source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
 | 
			
		||||
        <target>U ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
 | 
			
		||||
        <target>Za ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/time/time.component.ts</context>
 | 
			
		||||
          <context context-type="linenumber">188</context>
 | 
			
		||||
 | 
			
		||||
@ -510,7 +510,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="e4b2d9e6a2ab9e6ca34027ec03beaac42b7badd4" datatype="html">
 | 
			
		||||
        <source>sats</source>
 | 
			
		||||
        <target>sats</target>
 | 
			
		||||
        <target>sat</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">57</context>
 | 
			
		||||
@ -881,7 +881,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="65fd4251d8ddfe4017d4d83f8cec6f5a80d89289" datatype="html">
 | 
			
		||||
        <source>Pay</source>
 | 
			
		||||
        <target>Betale</target>
 | 
			
		||||
        <target>Betal</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">378</context>
 | 
			
		||||
@ -4846,7 +4846,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="615ba6c4511a36f93c225c725935fdbf16f162a5" datatype="html">
 | 
			
		||||
        <source>Amount (sats)</source>
 | 
			
		||||
        <target>Beløp (sats)</target>
 | 
			
		||||
        <target>Beløp (sat)</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/faucet/faucet.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">51</context>
 | 
			
		||||
@ -6442,7 +6442,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="31443c29cb161e8aa661eb5035f675746ef95b45" datatype="html">
 | 
			
		||||
        <source>sats/tx</source>
 | 
			
		||||
        <target>sats/tx</target>
 | 
			
		||||
        <target>sat/tx</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">33</context>
 | 
			
		||||
@ -8145,7 +8145,7 @@
 | 
			
		||||
      </trans-unit>
 | 
			
		||||
      <trans-unit id="6acd06bd5a3af583cd46c6d9f7954d7a2b44095e" datatype="html">
 | 
			
		||||
        <source>mSats</source>
 | 
			
		||||
        <target>mSats</target>
 | 
			
		||||
        <target>mSat</target>
 | 
			
		||||
        <context-group purpose="location">
 | 
			
		||||
          <context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
 | 
			
		||||
          <context context-type="linenumber">35</context>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								frontend/src/resources/mempool-block-visualization.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								frontend/src/resources/mempool-block-visualization.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 16 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								frontend/src/resources/mempool-research.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								frontend/src/resources/mempool-research.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 52 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								frontend/src/resources/mempool-transaction.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								frontend/src/resources/mempool-transaction.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 60 KiB  | 
@ -84,11 +84,11 @@ pkg install -y zsh sudo git screen curl wget neovim rsync nginx openssl openssh-
 | 
			
		||||
 | 
			
		||||
### Node.js + npm
 | 
			
		||||
 | 
			
		||||
Build Node.js v16.16.0 and npm v8 from source using `nvm`:
 | 
			
		||||
Build Node.js v20.17.0 and npm v9 from source using `nvm`:
 | 
			
		||||
```
 | 
			
		||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh
 | 
			
		||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | zsh
 | 
			
		||||
source $HOME/.zshrc
 | 
			
		||||
nvm install v16.16.0 --shared-zlib
 | 
			
		||||
nvm install v20.17.0 --shared-zlib
 | 
			
		||||
nvm alias default node
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,7 @@ update_repo()
 | 
			
		||||
    git fetch origin || exit 1
 | 
			
		||||
    for remote in origin;do
 | 
			
		||||
        git remote add "${remote}" "https://github.com/${remote}/mempool" >/dev/null 2>&1
 | 
			
		||||
        git fetch "${remote}" || exit 1
 | 
			
		||||
        git fetch "${remote}" --tags || exit 1
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    if [ $(git tag -l "${REF}") ];then
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								unfurler/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								unfurler/package-lock.json
									
									
									
										generated
									
									
									
								
							@ -1,12 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mempool-unfurl",
 | 
			
		||||
  "version": "3.0.0-beta",
 | 
			
		||||
  "version": "3.1.0-dev",
 | 
			
		||||
  "lockfileVersion": 2,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "mempool-unfurl",
 | 
			
		||||
      "version": "3.0.0-beta",
 | 
			
		||||
      "version": "3.0.0",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@types/node": "^16.11.41",
 | 
			
		||||
        "ejs": "^3.1.10",
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "mempool-unfurl",
 | 
			
		||||
  "version": "3.0.0-beta",
 | 
			
		||||
  "version": "3.1.0-dev",
 | 
			
		||||
  "description": "Renderer for mempool open graph link preview images",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user