diff --git a/frontend/src/app/components/block-filters/block-filters.component.html b/frontend/src/app/components/block-filters/block-filters.component.html index 90b66ddc3..7b1c2f9e5 100644 --- a/frontend/src/app/components/block-filters/block-filters.component.html +++ b/frontend/src/app/components/block-filters/block-filters.component.html @@ -1,7 +1,11 @@
+ + beta + +
-
diff --git a/frontend/src/app/components/block-filters/block-filters.component.scss b/frontend/src/app/components/block-filters/block-filters.component.scss index 20b565293..6406a1d93 100644 --- a/frontend/src/app/components/block-filters/block-filters.component.scss +++ b/frontend/src/app/components/block-filters/block-filters.component.scss @@ -20,7 +20,21 @@ margin-left: 0.5em; } + .info-badges { + display: flex; + flex-direction: row; + align-items: center; + float: right; + + &:hover, &:active { + text-decoration: none; + } + } + .menu-toggle { + width: 2em; + height: 2em; + padding: 0px 1px; opacity: 0; cursor: pointer; color: white; 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 5e8d7d29f..11dfe1d79 100644 --- a/frontend/src/app/components/svg-images/svg-images.component.html +++ b/frontend/src/app/components/svg-images/svg-images.component.html @@ -84,6 +84,14 @@ + + + + + + + + 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 ce0b7eaef..97be0c2b1 100644 --- a/frontend/src/app/docs/api-docs/api-docs-data.ts +++ b/frontend/src/app/docs/api-docs/api-docs-data.ts @@ -8911,6 +8911,13 @@ export const faqData = [ fragment: "what-is-block-health", title: "What is block health?", }, + { + type: "endpoint", + category: "advanced", + showConditions: bitcoinNetworks, + fragment: "how-do-mempool-goggles-work", + title: "How do Mempool Goggles work?", + }, { 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 49493d210..49b11ad7b 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.html +++ b/frontend/src/app/docs/api-docs/api-docs.component.html @@ -279,6 +279,95 @@

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

+ +

Mempool Goggles are a set of filters that can be applied to the mempool block visualizations to highlight different types of transactions.

+

There are currently 25 different Mempool Goggles filters, grouped into six categories:

+
+
Features
+
+
+
RBF enabled
+
The transaction opts-in to BIP-125 replaceability.
+
RBF disabled
+
The transaction does not opt-in to BIP-125 replaceability.
+
Version 1
+
The default version for most transactions.
+
Version 2
+
Required for transactions which use OP_CHECKSEQUENCEVERIFY relative timelocks.
+
+
+ +
Address Types
+
+
+
P2PK
+
Pay-to-public-key. A legacy output format most commonly found in old coinbase transactions.
+
Bare multisig
+
A legacy form of multisig, most commonly used for data embedding schemes (see also "Fake pubkey").
+
P2PKH
+
Pay-to-public-key-hash. A legacy address type that locks outputs to a public key.
+
P2SH
+
Pay-to-script-hash. A legacy address type that locks outputs to a redeem script.
+
P2WPKH
+
Pay-to-witness-public-key-hash. The SegWit version of P2PKH.
+
P2WSH
+
Pay-to-witness-script-hash. The SegWit version of P2SH.
+
Taproot
+
Addresses using the SegWit V1 format added in the Taproot upgrade.
+
+
+ +
Behavior
+
+
+
Paid for by child
+
The transaction's effective fee rate has been increased by a higher rate CPFP child.
+
Pays for parent
+
The transaction bumps the effective fee rate of a lower rate CPFP ancestor.
+
Replacement
+
The transaction replaced a prior version via RBF.
+
+
+ +
Data
+
+ Different methods of embedding arbitrary data in a Bitcoin transaction. +
+
OP_RETURN
+
Fake pubkey
+
Data may be embedded in an invalid public key in a P2PK or Bare multisig output. This is a heuristic filter and can be prone to false positives and false negatives.
+
Inscription
+
Data is embedded in the witness script of a taproot input.
+
+
+ +
Heuristics
+
+ These filters match common types of transactions according to subjective criteria. +
+
Coinjoin
+
A type of collaborative privacy-improving transaction.
+
Consolidation
+
The transaction condenses many inputs into a few outputs.
+
Batch payment
+
The transaction sends coins from a few inputs to many outputs.
+
+
+ +
Sighash Flags
+
+ Different ways of signing inputs to Bitcoin transactions. Note that selecting multiple sighash filters will highlight transactions in which each sighash flag is used, but not necessarily in the same input. +
+
sighash_all
+
sighash_none
+
sighash_single
+
sighash_default
+
sighash_anyonecanpay
+
+
+
+
+ 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 f90274046..8a4150262 100644 --- a/frontend/src/app/docs/api-docs/api-docs.component.scss +++ b/frontend/src/app/docs/api-docs/api-docs.component.scss @@ -389,3 +389,44 @@ h3 { margin-bottom: 4rem; } } + +/* styles for nested definition lists */ +dl { + margin: 0; + padding: 0; +} + +dt { + font-weight: bold; + color: #4a68b9; + padding: 5px 0; +} + +dd { + padding: 2px 0; + + & > dl { + padding-left: 1em; + border-left: 2px solid #4a68b9; + margin-left: 1em; + margin-top: 5px; + } + + & > dl > dt { + display: inline; + font-weight: normal; + color: #e83e8c; + font-family: Consolas, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New; + text-transform: uppercase; + + &:before { + content: ""; + display: block; + } + } + + & > dl > dd { + display: inline; + margin-left: 1em; + } +} diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index 9bcfb932c..f092e81bc 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -322,7 +322,7 @@ import { OnlyVsizeDirective, OnlyWeightDirective } from './components/weight-dir ClockFaceComponent, OnlyVsizeDirective, - OnlyWeightDirective + OnlyWeightDirective, ] }) export class SharedModule {