From ad3785ff417e07b1edc7b7ee3247b3da03cf1973 Mon Sep 17 00:00:00 2001
From: hunicus <93150691+hunicus@users.noreply.github.com>
Date: Fri, 24 Mar 2023 21:22:49 -0400
Subject: [PATCH 01/12] Fix anchor link expand on mobile for mempool faq
---
frontend/src/app/docs/api-docs/api-docs-data.ts | 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-data.ts b/frontend/src/app/docs/api-docs/api-docs-data.ts
index e6ed38a77..53e6bbdec 100644
--- a/frontend/src/app/docs/api-docs/api-docs-data.ts
+++ b/frontend/src/app/docs/api-docs/api-docs-data.ts
@@ -8863,7 +8863,7 @@ export const faqData = [
type: "endpoint",
category: "advanced",
showConditions: bitcoinNetworks,
- fragment: "how-big-is-mempool-used-by-mempool.space",
+ fragment: "how-big-is-mempool-used-by-mempool-space",
title: "How big is the mempool used by mempool.space?",
options: { officialOnly: true },
},
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 8d274625a..392cda19e 100644
--- a/frontend/src/app/docs/api-docs/api-docs.component.html
+++ b/frontend/src/app/docs/api-docs/api-docs.component.html
@@ -207,7 +207,7 @@
When a Bitcoin transaction is made, it is stored in a Bitcoin node's mempool before it is confirmed into a block. When the rate of incoming transactions exceeds the rate transactions are confirmed, the mempool grows in size.
By default, Bitcoin Core allocates 300MB of memory for its mempool, so when a node's mempool grows big enough to use all 300MB of allocated memory, we say it's "full".
Once a node's mempool is using all of its allocated memory, it will start rejecting new transactions below a certain feerate threshold—so when this is the case, be extra sure to set a feerate that (at a minimum) exceeds that threshold. The current threshold feerate (and memory usage) are displayed right on Mempool's front page.
-
+
mempool.space uses multiple Bitcoin nodes to obtain data: some with the default 300MB mempool memory limit (call these Small Nodes) and others with a much larger mempool memory limit (call these Big Nodes).
Many nodes on the Bitcoin network are configured to run with the default 300MB mempool memory setting. When all 300MB of memory are used up, such nodes will reject transactions below a certain threshold feerate. Running Small Nodes allows mempool.space to tell you what this threshold feerate is—this is the "Purging" feerate that shows on the front page when mempools are full, which you can use to be reasonably sure that your transaction will be widely propagated.
Big Node mempools are so big that they don't need to reject (or purge) transactions. Such nodes allow for mempool.space to provide you with information on any pending transaction it has received—no matter how congested the mempool is, and no matter how low-feerate or low-priority the transaction is.
From ef09912d1bc17c6256f81e4fa1eee7a801364d89 Mon Sep 17 00:00:00 2001
From: Mononaut
Date: Wed, 29 Mar 2023 03:15:01 +0900
Subject: [PATCH 02/12] Fix node unfurl row overflow
---
frontend/src/app/lightning/node/node-preview.component.html | 2 +-
frontend/src/app/lightning/node/node-preview.component.scss | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/frontend/src/app/lightning/node/node-preview.component.html b/frontend/src/app/lightning/node/node-preview.component.html
index 89d5d4245..eae076bf5 100644
--- a/frontend/src/app/lightning/node/node-preview.component.html
+++ b/frontend/src/app/lightning/node/node-preview.component.html
@@ -12,7 +12,7 @@
-
+
{{ node.public_key }}
diff --git a/frontend/src/app/lightning/node/node-preview.component.scss b/frontend/src/app/lightning/node/node-preview.component.scss
index c1775dd52..baa33915b 100644
--- a/frontend/src/app/lightning/node/node-preview.component.scss
+++ b/frontend/src/app/lightning/node/node-preview.component.scss
@@ -18,6 +18,10 @@
}
}
+.table-col {
+ max-width: calc(100% - 470px);
+}
+
.map-col {
flex-grow: 0;
flex-shrink: 0;
From 0bc244b9f16372b4f59f7159de27d3f707d7c136 Mon Sep 17 00:00:00 2001
From: nymkappa <1612910616@pm.me>
Date: Wed, 29 Mar 2023 15:10:59 +0900
Subject: [PATCH 03/12] Use window.location object instead of angular router
for default graph window preference setting
---
frontend/src/app/services/storage.service.ts | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/frontend/src/app/services/storage.service.ts b/frontend/src/app/services/storage.service.ts
index 73a013146..60d66b284 100644
--- a/frontend/src/app/services/storage.service.ts
+++ b/frontend/src/app/services/storage.service.ts
@@ -12,20 +12,22 @@ export class StorageService {
setDefaultValueIfNeeded(key: string, defaultValue: string) {
const graphWindowPreference: string = this.getValue(key);
+ const fragment = window.location.hash.replace('#', '');
+
if (graphWindowPreference === null) { // First visit to mempool.space
- if (this.router.url.includes('graphs') && key === 'graphWindowPreference' ||
- this.router.url.includes('pools') && key === 'miningWindowPreference'
+ if (window.location.pathname.includes('graphs') && key === 'graphWindowPreference' ||
+ window.location.pathname.includes('pools') && key === 'miningWindowPreference'
) {
- this.setValue(key, this.route.snapshot.fragment ? this.route.snapshot.fragment : defaultValue);
+ this.setValue(key, fragment ? fragment : defaultValue);
} else {
this.setValue(key, defaultValue);
}
- } else if (this.router.url.includes('graphs') && key === 'graphWindowPreference' ||
- this.router.url.includes('pools') && key === 'miningWindowPreference'
+ } else if (window.location.pathname.includes('graphs') && key === 'graphWindowPreference' ||
+ window.location.pathname.includes('pools') && key === 'miningWindowPreference'
) {
// Visit a different graphs#fragment from last visit
- if (this.route.snapshot.fragment !== null && graphWindowPreference !== this.route.snapshot.fragment) {
- this.setValue(key, this.route.snapshot.fragment);
+ if (fragment !== null && graphWindowPreference !== fragment) {
+ this.setValue(key, fragment);
}
}
}
From 7562407a0cff67397a928e51683c8b551ff0589d Mon Sep 17 00:00:00 2001
From: nymkappa <1612910616@pm.me>
Date: Sat, 18 Mar 2023 17:01:31 +0900
Subject: [PATCH 04/12] Show warning on testnet/signet
---
.../master-page/master-page.component.html | 15 +++++++++++++++
.../master-page/master-page.component.scss | 15 +++++++++++++++
.../master-page/master-page.component.ts | 6 ++++++
frontend/src/app/shared/shared.module.ts | 3 ++-
4 files changed, 38 insertions(+), 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 13935c04a..6f4e30d60 100644
--- a/frontend/src/app/components/master-page/master-page.component.html
+++ b/frontend/src/app/components/master-page/master-page.component.html
@@ -62,6 +62,21 @@
+
+
+
+
+
+ This is a test network. Coins have no value
+
+
+
+ ×
+
+
+
+
+
diff --git a/frontend/src/app/components/master-page/master-page.component.scss b/frontend/src/app/components/master-page/master-page.component.scss
index 95f05245e..0f4fb840d 100644
--- a/frontend/src/app/components/master-page/master-page.component.scss
+++ b/frontend/src/app/components/master-page/master-page.component.scss
@@ -192,4 +192,19 @@ nav {
margin: 33px 0px 0px -19px;
font-size: 7px;
}
+}
+
+.close {
+ position: absolute;
+ color: black;
+ right: 10px;
+ top: 17px;
+ @media (max-width: 620px) {
+ right: 10px;
+ top: 0px;
+ };
+ @media (min-width: 992px) {
+ right: 10px;
+ top: 13px;
+ };
}
\ No newline at end of file
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 34c525108..1fd040f47 100644
--- a/frontend/src/app/components/master-page/master-page.component.ts
+++ b/frontend/src/app/components/master-page/master-page.component.ts
@@ -4,6 +4,7 @@ import { Observable, merge, of } from 'rxjs';
import { LanguageService } from '../../services/language.service';
import { EnterpriseService } from '../../services/enterprise.service';
import { NavigationService } from '../../services/navigation.service';
+import { StorageService } from '../../services/storage.service';
@Component({
selector: 'app-master-page',
@@ -26,6 +27,7 @@ export class MasterPageComponent implements OnInit {
private languageService: LanguageService,
private enterpriseService: EnterpriseService,
private navigationService: NavigationService,
+ public storageService: StorageService
) { }
ngOnInit() {
@@ -46,4 +48,8 @@ export class MasterPageComponent implements OnInit {
onResize(event: any) {
this.isMobile = window.innerWidth <= 767.98;
}
+
+ dismissWarning() {
+ this.storageService.setValue('hideWarning', 'hidden');
+ }
}
diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts
index 188942c02..8aa2fb173 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, faExclamationTriangle } 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(faExclamationTriangle);
}
}
From d9b4ad64bb7d6f4277e77134060c019cb7def9be Mon Sep 17 00:00:00 2001
From: nymkappa <1612910616@pm.me>
Date: Thu, 16 Mar 2023 14:35:09 +0900
Subject: [PATCH 05/12] Fix % on heap limit warn
---
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 a34ffd21b..a7f805313 100644
--- a/backend/src/index.ts
+++ b/backend/src/index.ts
@@ -276,7 +276,7 @@ class Server {
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)})!`);
+ logger.warn(`Used ${(this.maxHeapSize / stats.heap_size_limit * 100).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)}`);
From ea2193a42da6f679d7e2466962bb62cfb99d5bca Mon Sep 17 00:00:00 2001
From: nymkappa <1612910616@pm.me>
Date: Mon, 27 Mar 2023 20:02:33 +0900
Subject: [PATCH 06/12] Add missing sanity check when fetching single price
datapoint
---
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 4cbc06afd..ed9d1fd72 100644
--- a/backend/src/repositories/PricesRepository.ts
+++ b/backend/src/repositories/PricesRepository.ts
@@ -160,7 +160,7 @@ class PricesRepository {
// Compute fiat exchange rates
let latestPrice = rates[0] as ApiPrice;
- if (latestPrice.USD === -1) {
+ if (!latestPrice || latestPrice.USD === -1) {
latestPrice = priceUpdater.getEmptyPricesObj();
}
From 96121a86f8de51edd60592b87c2cccb5b9b4632f Mon Sep 17 00:00:00 2001
From: nymkappa <1612910616@pm.me>
Date: Wed, 29 Mar 2023 17:35:49 +0900
Subject: [PATCH 07/12] Fix search 1wizS test
---
frontend/cypress/e2e/mainnet/mainnet.spec.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/cypress/e2e/mainnet/mainnet.spec.ts b/frontend/cypress/e2e/mainnet/mainnet.spec.ts
index 71a35ba86..3319b4835 100644
--- a/frontend/cypress/e2e/mainnet/mainnet.spec.ts
+++ b/frontend/cypress/e2e/mainnet/mainnet.spec.ts
@@ -127,7 +127,7 @@ describe('Mainnet', () => {
cy.get('.search-box-container > .form-control').type('S').then(() => {
cy.wait('@search-1wizS');
- cy.get('app-search-results button.dropdown-item').should('have.length', 5);
+ cy.get('app-search-results button.dropdown-item').should('have.length', 6);
});
cy.get('.search-box-container > .form-control').type('A').then(() => {
From aba49897f9f2e145b7615504ae7564d4907a61b1 Mon Sep 17 00:00:00 2001
From: nymkappa <1612910616@pm.me>
Date: Thu, 30 Mar 2023 17:07:34 +0900
Subject: [PATCH 08/12] Fix infinite scroll transaction list component
---
.../transactions-list/transactions-list.component.html | 6 +++++-
.../transactions-list/transactions-list.component.ts | 9 +--------
2 files changed, 6 insertions(+), 9 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 cb54e1870..adadf0a1c 100644
--- a/frontend/src/app/components/transactions-list/transactions-list.component.html
+++ b/frontend/src/app/components/transactions-list/transactions-list.component.html
@@ -1,3 +1,5 @@
+
+
-