Merge branch 'master' into simon/bisq-dashboard
# Conflicts: # frontend/package-lock.json # frontend/package.json
This commit is contained in:
@@ -143,7 +143,6 @@
|
||||
"optimization": true,
|
||||
"outputHashing": "all",
|
||||
"sourceMap": false,
|
||||
"extractCss": true,
|
||||
"namedChunks": false,
|
||||
"extractLicenses": true,
|
||||
"vendorChunk": false,
|
||||
|
||||
15257
frontend/package-lock.json
generated
15257
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -26,10 +26,11 @@
|
||||
"i18n-pull-from-transifex": "tx pull -a --parallel --minimum-perc 1 --force",
|
||||
"serve": "ng serve --proxy-config proxy.conf.json",
|
||||
"start": "npm run generate-config && npm run sync-assets-dev && ng serve --proxy-config proxy.conf.json",
|
||||
"build": "npm run generate-config && ng build --prod --localize && npm run sync-assets",
|
||||
"build": "npm run generate-config && ng build --prod --localize && npm run sync-assets && npm run build-mempool-js",
|
||||
"sync-assets": "node sync-assets.js && rsync -av ./dist/mempool/browser/en-US/resources ./dist/mempool/browser/resources",
|
||||
"sync-assets-dev": "node sync-assets.js dev",
|
||||
"generate-config": "node generate-config.js",
|
||||
"build-mempool-js": "tsc | browserify -p tinyify ./node_modules/@mempool/mempool-js/lib/index.js --standalone mempoolJS > ./dist/mempool/browser/en-US/mempool.js",
|
||||
"test": "ng test",
|
||||
"lint": "ng lint",
|
||||
"e2e": "ng e2e",
|
||||
@@ -39,59 +40,62 @@
|
||||
"prerender": "ng run mempool:prerender"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular/animations": "~10.2.3",
|
||||
"@angular/common": "~10.2.3",
|
||||
"@angular/compiler": "~10.2.3",
|
||||
"@angular/core": "~10.2.3",
|
||||
"@angular/forms": "~10.2.3",
|
||||
"@angular/localize": "^10.2.3",
|
||||
"@angular/platform-browser": "~10.2.3",
|
||||
"@angular/platform-browser-dynamic": "~10.2.3",
|
||||
"@angular/platform-server": "~10.2.2",
|
||||
"@angular/router": "~10.2.3",
|
||||
"@fortawesome/angular-fontawesome": "^0.7.0",
|
||||
"@fortawesome/fontawesome-common-types": "^0.2.30",
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.30",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.14.0",
|
||||
"@angular/animations": "~11.2.8",
|
||||
"@angular/common": "~11.2.8",
|
||||
"@angular/compiler": "~11.2.8",
|
||||
"@angular/core": "~11.2.8",
|
||||
"@angular/forms": "~11.2.8",
|
||||
"@angular/localize": "^11.2.8",
|
||||
"@angular/platform-browser": "~11.2.8",
|
||||
"@angular/platform-browser-dynamic": "~11.2.8",
|
||||
"@angular/platform-server": "~11.2.8",
|
||||
"@angular/router": "~11.2.8",
|
||||
"@fortawesome/angular-fontawesome": "^0.8.2",
|
||||
"@fortawesome/fontawesome-common-types": "^0.2.35",
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.35",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.15.3",
|
||||
"@mempool/chartist": "^0.11.4",
|
||||
"@mempool/mempool-js": "^2.2.1",
|
||||
"@ng-bootstrap/ng-bootstrap": "^7.0.0",
|
||||
"@nguniversal/express-engine": "10.1.0",
|
||||
"@nguniversal/express-engine": "11.2.1",
|
||||
"@types/qrcode": "^1.3.4",
|
||||
"bootstrap": "4.5.0",
|
||||
"browserify": "^17.0.0",
|
||||
"clipboard": "^2.0.4",
|
||||
"domino": "^2.1.6",
|
||||
"express": "^4.15.2",
|
||||
"lightweight-charts": "^3.3.0",
|
||||
"express": "^4.17.1",
|
||||
"ngx-bootrap-multiselect": "^2.0.0",
|
||||
"ngx-infinite-scroll": "^9.0.0",
|
||||
"ngx-infinite-scroll": "^10.0.1",
|
||||
"qrcode": "^1.4.4",
|
||||
"rxjs": "^6.6.3",
|
||||
"rxjs": "^6.6.7",
|
||||
"tinyify": "^3.0.0",
|
||||
"tlite": "^0.1.9",
|
||||
"tslib": "^2.0.0",
|
||||
"zone.js": "~0.10.3"
|
||||
"tslib": "^2.2.0",
|
||||
"zone.js": "~0.11.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^0.1002.0",
|
||||
"@angular/cli": "~10.2.0",
|
||||
"@angular/compiler-cli": "~10.2.2",
|
||||
"@angular/language-service": "~10.2.2",
|
||||
"@nguniversal/builders": "^10.1.0",
|
||||
"@angular-devkit/build-angular": "^0.1102.7",
|
||||
"@angular/cli": "~11.2.7",
|
||||
"@angular/compiler-cli": "~11.2.8",
|
||||
"@angular/language-service": "~11.2.8",
|
||||
"@nguniversal/builders": "^11.2.1",
|
||||
"@types/express": "^4.17.0",
|
||||
"@types/jasmine": "~3.3.8",
|
||||
"@types/jasmine": "~3.6.0",
|
||||
"@types/jasminewd2": "~2.0.3",
|
||||
"@types/node": "^12.11.1",
|
||||
"codelyzer": "^6.0.0",
|
||||
"codelyzer": "^6.0.1",
|
||||
"http-proxy-middleware": "^1.0.5",
|
||||
"jasmine-core": "~3.5.0",
|
||||
"jasmine-core": "~3.6.0",
|
||||
"jasmine-spec-reporter": "~5.0.0",
|
||||
"karma": "~5.0.0",
|
||||
"karma": "~6.1.0",
|
||||
"karma-chrome-launcher": "~3.1.0",
|
||||
"karma-coverage-istanbul-reporter": "~3.0.2",
|
||||
"karma-jasmine": "~3.3.0",
|
||||
"karma-coverage": "~2.0.3",
|
||||
"karma-jasmine": "~4.0.0",
|
||||
"karma-jasmine-html-reporter": "^1.5.0",
|
||||
"protractor": "~7.0.0",
|
||||
"ts-node": "~7.0.0",
|
||||
"ts-node": "~8.3.0",
|
||||
"tslint": "~6.1.0",
|
||||
"typescript": "~4.0.5"
|
||||
"typescript": "~4.1.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ import { FeesBoxComponent } from './components/fees-box/fees-box.component';
|
||||
import { DashboardComponent } from './dashboard/dashboard.component';
|
||||
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
|
||||
import { faAngleDown, faAngleUp, faBolt, faChartArea, faCogs, faCubes, faDatabase, faExchangeAlt, faInfoCircle,
|
||||
faLink, faList, faSearch, faTachometerAlt, faThList, faTint, faTv } from '@fortawesome/free-solid-svg-icons';
|
||||
faLink, faList, faSearch, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faAngleDoubleUp } from '@fortawesome/free-solid-svg-icons';
|
||||
import { ApiDocsComponent } from './components/api-docs/api-docs.component';
|
||||
import { TermsOfServiceComponent } from './components/terms-of-service/terms-of-service.component';
|
||||
import { StorageService } from './services/storage.service';
|
||||
@@ -127,5 +127,7 @@ export class AppModule {
|
||||
library.addIcons(faAngleDown);
|
||||
library.addIcons(faAngleUp);
|
||||
library.addIcons(faExchangeAlt);
|
||||
library.addIcons(faAngleDoubleUp);
|
||||
library.addIcons(faAngleDoubleDown);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,31 +19,49 @@
|
||||
|
||||
<a target="_blank" class="m-2 fw6 mb3 mt2 truncate black-80 f4 link" href="https://github.com/mempool/mempool">
|
||||
<span class="dib v-mid">
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="github" class="svg-inline--fa fa-github fa-w-16 fa-3x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="github" class="svg-inline--fa fa-github fa-w-16 fa-4x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a target="_blank" class="m-2 fw6 mb3 mt2 truncate black-80 f4 link" href="https://twitter.com/mempool">
|
||||
<span class="dib v-mid">
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" class="svg-inline--fa fa-twitter fa-w-16 fa-3x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" class="svg-inline--fa fa-twitter fa-w-16 fa-4x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a target="_blank" class="m-2 fw6 mb3 mt2 truncate black-80 f4 link" href="https://t.me/mempoolspace">
|
||||
<span class="dib v-mid">
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="telegram-plane" class="svg-inline--fa fa-telegram-plane fa-w-14 fa-3x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg>
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="telegram-plane" class="svg-inline--fa fa-telegram-plane fa-w-14 fa-4x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a target="_blank" class="m-2 fw6 mb3 mt2 truncate black-80 f4 link" href="https://keybase.io/team/mempool">
|
||||
<span class="dib v-mid">
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="keybase" class="svg-inline--fa fa-keybase fa-w-14 fa-3x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"></path></svg>
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="keybase" class="svg-inline--fa fa-keybase fa-w-14 fa-4x" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"></path></svg>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<br><br><br>
|
||||
<br><br>
|
||||
<br><br>
|
||||
|
||||
<h3 style="display: none;" i18n="about.sponsors.enterprise">Enterprise Sponsors</h3>
|
||||
<h3 i18n="about.sponsors.enterprise">Enterprise Sponsors 🚀</h3>
|
||||
|
||||
<a href="https://squarecrypto.org/" target="_blank">
|
||||
<div class="profile_photo enterprise_sponsor d-inline-block" title="Square Crypto">
|
||||
<img class="profile_img" src="/resources/profile/sqcrypto.png" />
|
||||
Square
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://gemini.com/" target="_blank">
|
||||
<div class="profile_photo enterprise_sponsor d-inline-block" title="Gemini">
|
||||
<img class="profile_img" src="/resources/profile/gemini.svg" />
|
||||
Gemini
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<br><br>
|
||||
<br><br>
|
||||
|
||||
<h3 i18n="about.sponsors.withHeart">Community Sponsors ❤️</h3>
|
||||
|
||||
@@ -54,7 +72,7 @@
|
||||
|
||||
<ng-template ngFor let-sponsor [ngForOf]="sponsors">
|
||||
<a [href]="'https://twitter.com/' + sponsor.handle" target="_blank" rel="sponsored">
|
||||
<div class="profile_photo d-inline-block" [title]="sponsor.handle">
|
||||
<div class="profile_photo community_sponsor d-inline-block" [title]="sponsor.handle">
|
||||
<img class="profile_img" [src]="'/api/v1/donations/images/' + sponsor.handle" />
|
||||
</div>
|
||||
</a>
|
||||
@@ -176,7 +194,8 @@
|
||||
<h2><span i18n="about.sponsor.donation-confirmed">Donation confirmed!</span><br><span i18n="about.sponsor.thank-you">Thank you!</span></h2>
|
||||
</div>
|
||||
|
||||
<br><br><br>
|
||||
<br><br>
|
||||
<br><br>
|
||||
|
||||
<h3 i18n="about.integrations">Community Integrations</h3>
|
||||
|
||||
@@ -215,10 +234,10 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/ACINQ/phoenix" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="Phoenix Wallet by ACINQ">
|
||||
<img class="profile_img" src="/resources/profile/phoenix.jpg" />
|
||||
Phoenix
|
||||
<a href="https://github.com/spesmilo/electrum" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="Electrum Wallet">
|
||||
<img class="profile_img" src="/resources/profile/electrum.jpg" />
|
||||
Electrum
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -229,10 +248,31 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/spesmilo/electrum" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="Electrum Wallet">
|
||||
<img class="profile_img" src="/resources/profile/electrum.jpg" />
|
||||
Electrum
|
||||
<a href="https://github.com/sparrowwallet/sparrow" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="Sparrow Wallet">
|
||||
<img class="profile_img" src="/resources/profile/sparrow.png" />
|
||||
Sparrow
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/ACINQ/phoenix" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="Phoenix Wallet by ACINQ">
|
||||
<img class="profile_img" src="/resources/profile/phoenix.jpg" />
|
||||
Phoenix
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/muun/apollo" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="Muun Wallet">
|
||||
<img class="profile_img" src="/resources/profile/muun.png" />
|
||||
Muun
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/BlueWallet/BlueWallet" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="BlueWallet">
|
||||
<img class="profile_img" src="/resources/profile/bluewallet.png" />
|
||||
BlueWallet
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -257,13 +297,6 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/sparrowwallet/sparrow" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="Sparrow Wallet">
|
||||
<img class="profile_img" src="/resources/profile/sparrow.png" />
|
||||
Sparrow
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/pxsocs/warden" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="WARden Portfolio">
|
||||
<img class="profile_img" src="/resources/profile/warden.jpg" />
|
||||
@@ -271,7 +304,8 @@
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<br><br><br>
|
||||
<br><br>
|
||||
<br><br>
|
||||
|
||||
<h3 i18n="about.alliances">Community Alliances</h3>
|
||||
|
||||
@@ -287,7 +321,8 @@
|
||||
<img src="/resources/profile/bisq.svg" height="62">
|
||||
</a>
|
||||
|
||||
<br><br><br>
|
||||
<br><br>
|
||||
<br><br>
|
||||
|
||||
<h3 i18n="about.contributors">Project Contributors</h3>
|
||||
|
||||
@@ -298,62 +333,62 @@
|
||||
|
||||
<ng-template ngFor let-contributor [ngForOf]="contributors">
|
||||
<a [href]="'https://github.com/' + contributor.name" target="_blank">
|
||||
<div class="profile_photo d-inline-block" [title]="contributor.name">
|
||||
<div class="profile_photo project_contributor d-inline-block" [title]="contributor.name">
|
||||
<img class="profile_img" [src]="'/api/v1/contributors/images/' + contributor.id" />
|
||||
{{ contributor.name }}
|
||||
</div>
|
||||
</a>
|
||||
</ng-template>
|
||||
|
||||
<br><br><br>
|
||||
<br><br>
|
||||
<br><br>
|
||||
|
||||
<h3 i18n="about.maintainers">Project Maintainers</h3>
|
||||
|
||||
<div class="container text-center">
|
||||
<div class="row row-cols-2" dir="ltr">
|
||||
<div class="col col-md-2 offset-md-4">
|
||||
<a href="https://twitter.com/softsimon_">
|
||||
<div class="profile_photo d-inline-block" title="softsimon">
|
||||
<img class="profile_img" src="resources/profile/softsimon.jpg" />
|
||||
softsimon
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col col-md-2">
|
||||
<a href="https://twitter.com/wiz">
|
||||
<div class="profile_photo d-inline-block" title="wiz">
|
||||
<img class="profile_img" src="resources/profile/wiz.png" />
|
||||
wiz
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<a href="https://twitter.com/softsimon_" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="softsimon">
|
||||
<img class="profile_img" src="/resources/profile/softsimon.jpg" />
|
||||
softsimon
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/wiz" target="_blank">
|
||||
<div class="profile_photo d-inline-block" title="wiz">
|
||||
<img class="profile_img" src="/resources/profile/wiz.png" />
|
||||
wiz
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<br><br>
|
||||
|
||||
<br>
|
||||
<code>Copyright (c) 2019-2021</code><br>
|
||||
<code>The Mempool Open Source Project</code><br>
|
||||
<div class="col-md-8 offset-md-2 text-center">
|
||||
<code>Copyright (c) 2019-2021</code><br>
|
||||
<code>The Mempool Open Source Project</code><br>
|
||||
</div>
|
||||
<br>
|
||||
<code>This program is free software: you can redistribute it and/or modify it</code><br>
|
||||
<code>under the terms of the GNU Affero General Public License as published by</code><br>
|
||||
<code>the Free Software Foundation, either version 3 of the License, or (at your</code><br>
|
||||
<code>option) any later version.</code><br>
|
||||
<div class="col-md-8 offset-md-2 text-left" style="padding-left: 20px">
|
||||
<code>This program is free software; you can redistribute it and/or modify it under the terms of (at your option) either:</code><br>
|
||||
</div>
|
||||
<br>
|
||||
<code>This program is distributed in the hope that it will be useful, but</code><br>
|
||||
<code>WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY</code><br>
|
||||
<code>or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public</code><br>
|
||||
<code>License for more details.</code><br>
|
||||
<img src="/resources/profile/gnuagplv3.svg" style="margin: 20px; width: 200px">
|
||||
<div class="col-md-8 offset-md-2 text-left" style="padding-left: 40px">
|
||||
<code> 1) the <a href="https://www.gnu.org/licenses/agpl-3.0-standalone.html">GNU Affero General Public License</a> as published by the Free Software Foundation, either version 3 of the License or any later version approved by a proxy statement published on <https://mempool.space/about>; or</code><br>
|
||||
<br>
|
||||
<code> 2) the <a href="https://www.gnu.org/licenses/gpl-3.0-standalone.html">GNU General Public License</a> as published by the Free Software Foundation, either version 3 of the License or any later version approved by a proxy statement published on <https://mempool.space/about>.</code><br>
|
||||
</div>
|
||||
<br>
|
||||
<a href="https://www.gnu.org/licenses/agpl-3.0-standalone.html">GNU Affero General Public License v3.0</a>
|
||||
<br><br>
|
||||
<a href="/3rdpartylicenses.txt">Third Party Licenses</a>
|
||||
<div class="col-md-8 offset-md-2 text-left" style="padding-left: 20px">
|
||||
<code>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the full license terms for more details.</code><br>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="text-center">
|
||||
<a href="/3rdpartylicenses.txt">Third-party Licenses</a>
|
||||
<br>
|
||||
<br>
|
||||
<a [routerLink]="['/terms-of-service']" i18n="shared.terms-of-service|Terms of Service">Terms of Service</a>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
height: 80px;
|
||||
background-size: 100%, 100%;
|
||||
border-radius: 50%;
|
||||
margin: 10px;
|
||||
margin: 25px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.profile_img {
|
||||
@@ -20,6 +21,20 @@
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.community_sponsor {
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.enterprise_sponsor {
|
||||
margin-left: 40px;
|
||||
margin-right: 40px;
|
||||
}
|
||||
|
||||
.project_contributor {
|
||||
width: 130px;
|
||||
margin: 25px auto;
|
||||
}
|
||||
|
||||
.text-small {
|
||||
font-size: 12px;
|
||||
}
|
||||
@@ -32,4 +47,4 @@
|
||||
.required {
|
||||
color: #FF0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<i>{{ error.error }}</i>
|
||||
<ng-template [ngIf]="error.status === 413 || error.status === 405">
|
||||
<br><br>
|
||||
Consider view this address on the official Mempool website instead:
|
||||
Consider viewing this address on the official Mempool website instead:
|
||||
<br>
|
||||
<a href="https://mempool.space/address/{{ addressString }}" target="_blank">https://mempool.space/address/{{ addressString }}</a>
|
||||
<br>
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
<td i18n>Returns the transaction at index <code>:index</code> within the specified block.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="nowrap"><a href="{{ network.val === '' ? '' : '/' + network.val }}/api/block/000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce/raw" target="_blank">GET {{ network.val === '' ? '' : '/' + network.val }}/api/block/:hash/txid/raw</a></td>
|
||||
<td class="nowrap"><a href="{{ network.val === '' ? '' : '/' + network.val }}/api/block/000000000000000015dc777b3ff2611091336355d3f0ee9766a2cf3be8e4b1ce/raw" target="_blank">GET {{ network.val === '' ? '' : '/' + network.val }}/api/block/:hash/raw</a></td>
|
||||
<td i18n>Returns the raw block representation in binary.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -137,6 +137,54 @@
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template [ngIf]="showCpfpDetails">
|
||||
<br>
|
||||
|
||||
<h2 class="text-left">CPFP <fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" size="xs"></fa-icon></h2>
|
||||
<div class="box">
|
||||
<table class="table table-borderless table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th i18n="transactions-list.vout.scriptpubkey-type">Type</th>
|
||||
<th i18n="dashboard.latest-transactions.txid">TXID</th>
|
||||
<th class="d-none d-lg-table-cell" i18n="transaction.vsize|Transaction Virtual Size">Virtual size</th>
|
||||
<th i18n="transaction.fee-rate|Transaction fee rate">Fee rate</th>
|
||||
<th class="d-none d-lg-table-cell"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<ng-template [ngIf]="cpfpInfo.bestDescendant">
|
||||
<tr>
|
||||
<td><span class="badge badge-success" i18n="transaction.descendant|Descendant">Descendant</span></td>
|
||||
<td>
|
||||
<a [routerLink]="['/tx' | relativeUrl, cpfpInfo.bestDescendant.txid]">
|
||||
<span class="d-inline d-lg-none">{{ cpfpInfo.bestDescendant.txid | shortenString : 10 }}</span>
|
||||
<span class="d-none d-lg-inline">{{ cpfpInfo.bestDescendant.txid }}</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="d-none d-lg-table-cell">{{ cpfpInfo.bestDescendant.weight / 4 | vbytes: 2 }}</td>
|
||||
<td>{{ cpfpInfo.bestDescendant.fee / (cpfpInfo.bestDescendant.weight / 4) | number : '1.1-1' }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span></td>
|
||||
<td class="d-none d-lg-table-cell"><fa-icon class="arrow-green" [icon]="['fas', 'angle-double-up']" [fixedWidth]="true"></fa-icon></td>
|
||||
</tr>
|
||||
</ng-template>
|
||||
<ng-template [ngIf]="cpfpInfo.ancestors.length">
|
||||
<tr *ngFor="let cpfpTx of cpfpInfo.ancestors">
|
||||
<td><span class="badge badge-primary" i18n="transaction.ancestor|Transaction Ancestor">Ancestor</span></td>
|
||||
<td><a [routerLink]="['/tx' | relativeUrl, cpfpTx.txid]">
|
||||
<span class="d-inline d-lg-none">{{ cpfpTx.txid | shortenString : 10 }}</span>
|
||||
<span class="d-none d-lg-inline">{{ cpfpTx.txid }}</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="d-none d-lg-table-cell">{{ cpfpTx.weight / 4 | vbytes: 2 }}</td>
|
||||
<td>{{ cpfpTx.fee / (cpfpTx.weight / 4) | number : '1.1-1' }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span></td>
|
||||
<td class="d-none d-lg-table-cell"><fa-icon *ngIf="roundToOneDecimal(cpfpTx) < roundToOneDecimal(tx)" class="arrow-red" [icon]="['fas', 'angle-double-down']" [fixedWidth]="true"></fa-icon></td>
|
||||
</tr>
|
||||
</ng-template>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<br>
|
||||
|
||||
<h2 class="float-left" i18n="transaction.inputs-and-outputs|Transaction inputs and outputs">Inputs & Outputs</h2>
|
||||
@@ -279,26 +327,25 @@
|
||||
<td>{{ tx.fee | number }} <span i18n="transaction.fee.sat|Transaction Fee sat">sat</span> (<app-fiat [value]="tx.fee"></app-fiat>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td i18n="transaction.fee-per-vbyte|Transaction fee">Fee per vByte</td>
|
||||
<td i18n="transaction.fee-rate|Transaction fee rate">Fee rate</td>
|
||||
<td>
|
||||
{{ tx.fee / (tx.weight / 4) | number : '1.1-1' }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span>
|
||||
{{ tx.feePerVsize | number : '1.1-1' }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span>
|
||||
<ng-template [ngIf]="tx.status.confirmed">
|
||||
|
||||
<app-tx-fee-rating *ngIf="tx.fee && (!tx.effectiveFeePerVsize || tx.effectiveFeePerVsize === tx.fee / (tx.weight / 4))" [tx]="tx"></app-tx-fee-rating>
|
||||
<app-tx-fee-rating *ngIf="tx.fee && (cpfpInfo && !cpfpInfo.bestDescendant && !cpfpInfo.ancestors.length)" [tx]="tx"></app-tx-fee-rating>
|
||||
</ng-template>
|
||||
</td>
|
||||
</tr>
|
||||
<tr *ngIf="tx.effectiveFeePerVsize && tx.effectiveFeePerVsize !== tx.fee / (tx.weight / 4)">
|
||||
<td i18n="transaction.effective-fee|Effective transaction fee">Effective fee</td>
|
||||
<tr *ngIf="cpfpInfo && (cpfpInfo.bestDescendant || cpfpInfo.ancestors.length)">
|
||||
<td i18n="transaction.effective-fee-rate|Effective transaction fee rate">Effective fee rate</td>
|
||||
<td>
|
||||
{{ tx.effectiveFeePerVsize | number : '1.1-1' }} <span i18n="shared.sat-vbyte|sat/vB">sat/vB</span>
|
||||
<ng-template [ngIf]="tx.status.confirmed">
|
||||
|
||||
<app-tx-fee-rating *ngIf="tx.fee" [tx]="tx"></app-tx-fee-rating>
|
||||
<app-tx-fee-rating class="d-none d-lg-inline ml-2" *ngIf="tx.fee" [tx]="tx"></app-tx-fee-rating>
|
||||
</ng-template>
|
||||
<button type="button" class="btn btn-outline-info btn-sm btn-small-height ml-2 float-right" (click)="showCpfpDetails = !showCpfpDetails">CPFP <fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon></button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
|
||||
@@ -26,4 +26,21 @@
|
||||
|
||||
h1 {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.badge {
|
||||
position: relative;
|
||||
top: -1px;
|
||||
}
|
||||
|
||||
.btn-small-height {
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.arrow-green {
|
||||
color: #1a9436;
|
||||
}
|
||||
|
||||
.arrow-red {
|
||||
color: #dc3545;
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import { WebsocketService } from '../../services/websocket.service';
|
||||
import { AudioService } from 'src/app/services/audio.service';
|
||||
import { ApiService } from 'src/app/services/api.service';
|
||||
import { SeoService } from 'src/app/services/seo.service';
|
||||
import { CpfpInfo } from 'src/app/interfaces/node-api.interface';
|
||||
|
||||
@Component({
|
||||
selector: 'app-transaction',
|
||||
@@ -27,6 +28,8 @@ export class TransactionComponent implements OnInit, OnDestroy {
|
||||
transactionTime = -1;
|
||||
subscription: Subscription;
|
||||
rbfTransaction: undefined | Transaction;
|
||||
cpfpInfo: CpfpInfo | null;
|
||||
showCpfpDetails = false;
|
||||
|
||||
constructor(
|
||||
private route: ActivatedRoute,
|
||||
@@ -77,6 +80,7 @@ export class TransactionComponent implements OnInit, OnDestroy {
|
||||
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;
|
||||
@@ -97,20 +101,25 @@ export class TransactionComponent implements OnInit, OnDestroy {
|
||||
} else {
|
||||
if (tx.effectiveFeePerVsize) {
|
||||
this.stateService.markBlock$.next({ txFeePerVSize: tx.effectiveFeePerVsize });
|
||||
this.cpfpInfo = {
|
||||
ancestors: tx.ancestors,
|
||||
bestDescendant: tx.bestDescendant,
|
||||
};
|
||||
} else {
|
||||
this.apiService.getCpfpinfo$(this.tx.txid)
|
||||
this.apiService.getCpfpinfo$(this.tx.txid)
|
||||
.subscribe((cpfpInfo) => {
|
||||
let totalWeight = tx.weight + cpfpInfo.ancestors.reduce((prev, val) => prev + val.weight, 0);
|
||||
let totalFees = tx.fee + cpfpInfo.ancestors.reduce((prev, val) => prev + val.fee, 0);
|
||||
const lowerFeeParents = cpfpInfo.ancestors.filter((parent) => (parent.fee / (parent.weight / 4)) < tx.feePerVsize);
|
||||
let totalWeight = tx.weight + lowerFeeParents.reduce((prev, val) => prev + val.weight, 0);
|
||||
let totalFees = tx.fee + lowerFeeParents.reduce((prev, val) => prev + val.fee, 0);
|
||||
|
||||
if (cpfpInfo.bestDescendant) {
|
||||
totalWeight += cpfpInfo.bestDescendant.weight;
|
||||
totalFees += cpfpInfo.bestDescendant.fee;
|
||||
}
|
||||
|
||||
const effectiveFeePerVsize = totalFees / (totalWeight / 4);
|
||||
this.tx.effectiveFeePerVsize = effectiveFeePerVsize;
|
||||
this.stateService.markBlock$.next({ txFeePerVSize: effectiveFeePerVsize });
|
||||
this.tx.effectiveFeePerVsize = totalFees / (totalWeight / 4);
|
||||
this.stateService.markBlock$.next({ txFeePerVSize: this.tx.effectiveFeePerVsize });
|
||||
this.cpfpInfo = cpfpInfo;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -183,6 +192,8 @@ export class TransactionComponent implements OnInit, OnDestroy {
|
||||
this.isLoadingTx = true;
|
||||
this.rbfTransaction = undefined;
|
||||
this.transactionTime = -1;
|
||||
this.cpfpInfo = null;
|
||||
this.showCpfpDetails = false;
|
||||
document.body.scrollTo(0, 0);
|
||||
this.leaveTransaction();
|
||||
}
|
||||
@@ -192,6 +203,10 @@ export class TransactionComponent implements OnInit, OnDestroy {
|
||||
this.stateService.markBlock$.next({});
|
||||
}
|
||||
|
||||
roundToOneDecimal(cpfpTx: any): number {
|
||||
return +(cpfpTx.fee / (cpfpTx.weight / 4)).toFixed(1);
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
this.subscription.unsubscribe();
|
||||
this.leaveTransaction();
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<span *ngIf="feeRating === 1" class="badge badge-success" i18n="tx-fee-rating.optimal|TX Fee Rating is Optimal">Optimal</span>
|
||||
<span *ngIf="feeRating === 2" class="badge badge-warning" placement="bottom" i18n-ngbTooltip="tx-fee-rating.warning-tooltip" ngbTooltip="Only ~{{ medianFeeNeeded | number : '1.1-1' }} sat/vB was needed to get into this block" i18n="tx-fee-rating.overpaid.warning|TX Fee Rating is Warning">Overpaid {{ overpaidTimes }}x</span>
|
||||
<span *ngIf="feeRating === 3" class="badge badge-danger" placement="bottom" i18n-ngbTooltip="tx-fee-rating.danger-tooltip" ngbTooltip="Only ~{{ medianFeeNeeded | number : '1.1-1' }} sat/vB was needed to get into this block" i18n="tx-fee-rating.overpaid.danger|TX Fee Rating is Danger">Overpaid {{ overpaidTimes }}x</span>
|
||||
<span *ngIf="feeRating === 3" class="badge badge-danger" placement="bottom" i18n-ngbTooltip="tx-fee-rating.warning-tooltip" ngbTooltip="Only ~{{ medianFeeNeeded | number : '1.1-1' }} sat/vB was needed to get into this block" i18n="tx-fee-rating.overpaid.warning|TX Fee Rating is Warning">Overpaid {{ overpaidTimes }}x</span>
|
||||
|
||||
@@ -11,7 +11,24 @@ export interface Transaction {
|
||||
|
||||
// Custom properties
|
||||
firstSeen?: number;
|
||||
feePerVsize?: number;
|
||||
effectiveFeePerVsize?: number;
|
||||
ancestors?: Ancestor[];
|
||||
bestDescendant?: BestDescendant | null;
|
||||
cpfpChecked?: boolean;
|
||||
deleteAfter?: number;
|
||||
}
|
||||
|
||||
interface Ancestor {
|
||||
txid: string;
|
||||
weight: number;
|
||||
fee: number;
|
||||
}
|
||||
|
||||
interface BestDescendant {
|
||||
txid: string;
|
||||
weight: number;
|
||||
fee: number;
|
||||
}
|
||||
|
||||
export interface Recent {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<base href="/">
|
||||
|
||||
<meta name="description" content="An open-source explorer developed for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem." />
|
||||
<meta property="og:image" content="https://mempool.space/resources/mempool-preview.png?20201101" />
|
||||
<meta property="og:image" content="https://mempool.space/resources/mempool-space-preview.png" />
|
||||
<meta property="og:image:type" content="image/png" />
|
||||
<meta property="og:image:width" content="1000" />
|
||||
<meta property="og:image:height" content="500" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<meta property="twitter:creator" content="@mempool">
|
||||
<meta property="twitter:title" content="mempool">
|
||||
<meta property="twitter:description" content="An open-source explorer developed for the Bitcoin community, focusing on the transition into a multi-layer ecosystem." />
|
||||
<meta property="twitter:image:src" content="https://mempool.space/resources/mempool-preview.png?20201101" />
|
||||
<meta property="twitter:image:src" content="https://mempool.space/resources/mempool-space-preview.png" />
|
||||
<meta property="twitter:domain" content="mempool.space">
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/resources/favicons/apple-touch-icon.png">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<source>Transaction: <x id="INTERPOLATION" equiv-text="this.txId"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.ts</context>
|
||||
@@ -97,7 +97,7 @@
|
||||
<source>Inputs & Outputs</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
@@ -114,7 +114,7 @@
|
||||
<source>Details</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction Details</note>
|
||||
<note priority="1" from="meaning">transaction.details</note>
|
||||
@@ -123,11 +123,11 @@
|
||||
<source>Details</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">150</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">226</context>
|
||||
<context context-type="linenumber">277</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
@@ -143,7 +143,7 @@
|
||||
<source>Size</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction Size</note>
|
||||
<note priority="1" from="meaning">transaction.size</note>
|
||||
@@ -152,7 +152,11 @@
|
||||
<source>Virtual size</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">159</context>
|
||||
<context context-type="linenumber">210</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">150</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction Virtual Size</note>
|
||||
<note priority="1" from="meaning">transaction.vsize</note>
|
||||
@@ -161,7 +165,7 @@
|
||||
<source>Weight</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">163</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction Weight</note>
|
||||
<note priority="1" from="meaning">transaction.weight</note>
|
||||
@@ -262,116 +266,77 @@
|
||||
<note priority="1" from="description">Transaction ETA in several hours or more</note>
|
||||
<note priority="1" from="meaning">transaction.eta.in-several-hours</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c9d9612bcd520103486b5fc84d84c9476a1b7f78" datatype="html">
|
||||
<source>Transaction not found.</source>
|
||||
<trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">
|
||||
<source>Type</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">transaction.error.transaction-not-found</note>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">169</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">transactions-list.vout.scriptpubkey-type</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="66b65556acb90d8764fe166a260af0309671698c" datatype="html">
|
||||
<source>Waiting for it to appear in the mempool...</source>
|
||||
<trans-unit id="94c248797dd2b6af49068cb49c3b4bc26bec6a16" datatype="html">
|
||||
<source>TXID</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">252</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">transaction.error.waiting-for-it-to-appear</note>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">107</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">dashboard.latest-transactions.txid</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="02c35681bc187cde4d0d3a98a3a1f2035dfe7398" datatype="html">
|
||||
<source>In ~<x id="INTERPOLATION" equiv-text="{{ i }}"/> minutes</source>
|
||||
<trans-unit id="3e322ffba6477484e0dd2e65650fdd70322ea6d0" datatype="html">
|
||||
<source>Fee rate</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">267</context>
|
||||
<context context-type="linenumber">151</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-blocks/mempool-blocks.component.html</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">333</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Block Frequency (plural)</note>
|
||||
<note priority="1" from="meaning">mempool-blocks.eta-of-next-block-plural</note>
|
||||
<note priority="1" from="description">Transaction fee rate</note>
|
||||
<note priority="1" from="meaning">transaction.fee-rate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e8b52d333f9395e1ae9c541d45dfb8c1cd017424" datatype="html">
|
||||
<source>In ~<x id="INTERPOLATION" equiv-text="{{ i }}"/> minute</source>
|
||||
<trans-unit id="dd230222e3ae689913445ce93b6ae3f7cce7458b" datatype="html">
|
||||
<source>Descendant</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">269</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-blocks/mempool-blocks.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Block Frequency</note>
|
||||
<note priority="1" from="meaning">mempool-blocks.eta-of-next-block</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="3aef75db6f65e1371d54d8bed1767299de9457d8" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/footer/footer.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">shared.block</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="588930712875bfa0834655249093d99eaa3d162e" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-blocks/mempool-blocks.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/footer/footer.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">shared.blocks</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
||||
<source>Fee</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction fee</note>
|
||||
<note priority="1" from="meaning">transaction.fee</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="071dc2ed21e40ad2199ea5dda884f48c0414a42a" datatype="html">
|
||||
<source>sat</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction Fee sat</note>
|
||||
<note priority="1" from="meaning">transaction.fee.sat</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e5026f6e33b13e7d8185288b9691d006a139d36d" datatype="html">
|
||||
<source>Fee per vByte</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction fee</note>
|
||||
<note priority="1" from="meaning">transaction.fee-per-vbyte</note>
|
||||
<note priority="1" from="description">Descendant</note>
|
||||
<note priority="1" from="meaning">transaction.descendant</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d2eb45d1cd8cd146b7cb0223ab97a4b03b614060" datatype="html">
|
||||
<source>sat/vB</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">284</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">294</context>
|
||||
<context context-type="linenumber">179</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">345</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
@@ -428,14 +393,111 @@
|
||||
<note priority="1" from="description">sat/vB</note>
|
||||
<note priority="1" from="meaning">shared.sat-vbyte</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="9f34e3c1751028c9bc6564547d07c927d7088fca" datatype="html">
|
||||
<source>Effective fee</source>
|
||||
<trans-unit id="8c16167a5d7c96d14ff280b09de312d18d5e2511" datatype="html">
|
||||
<source>Ancestor</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
<context context-type="linenumber">172</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Effective transaction fee</note>
|
||||
<note priority="1" from="meaning">transaction.effective-fee</note>
|
||||
<note priority="1" from="description">Transaction Ancestor</note>
|
||||
<note priority="1" from="meaning">transaction.ancestor</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c9d9612bcd520103486b5fc84d84c9476a1b7f78" datatype="html">
|
||||
<source>Transaction not found.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">transaction.error.transaction-not-found</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="66b65556acb90d8764fe166a260af0309671698c" datatype="html">
|
||||
<source>Waiting for it to appear in the mempool...</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">transaction.error.waiting-for-it-to-appear</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="02c35681bc187cde4d0d3a98a3a1f2035dfe7398" datatype="html">
|
||||
<source>In ~<x id="INTERPOLATION" equiv-text="{{ i }}"/> minutes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">318</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-blocks/mempool-blocks.component.html</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Block Frequency (plural)</note>
|
||||
<note priority="1" from="meaning">mempool-blocks.eta-of-next-block-plural</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e8b52d333f9395e1ae9c541d45dfb8c1cd017424" datatype="html">
|
||||
<source>In ~<x id="INTERPOLATION" equiv-text="{{ i }}"/> minute</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">320</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-blocks/mempool-blocks.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Block Frequency</note>
|
||||
<note priority="1" from="meaning">mempool-blocks.eta-of-next-block</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="3aef75db6f65e1371d54d8bed1767299de9457d8" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/footer/footer.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">shared.block</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="588930712875bfa0834655249093d99eaa3d162e" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">323</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-blocks/mempool-blocks.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/footer/footer.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">shared.blocks</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cb1b52c13b95fa29ea4044f2bbe0ac623b890c80" datatype="html">
|
||||
<source>Fee</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">329</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction fee</note>
|
||||
<note priority="1" from="meaning">transaction.fee</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="071dc2ed21e40ad2199ea5dda884f48c0414a42a" datatype="html">
|
||||
<source>sat</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">330</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction Fee sat</note>
|
||||
<note priority="1" from="meaning">transaction.fee.sat</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="eb1737af67381ce6f0b347038bb4c65b3deb84be" datatype="html">
|
||||
<source>Effective fee rate</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">343</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Effective transaction fee rate</note>
|
||||
<note priority="1" from="meaning">transaction.effective-fee-rate</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="7e06b8dd9f29261827018351cd71efe1c87839de" datatype="html">
|
||||
<source>Coinbase</source>
|
||||
@@ -557,22 +619,6 @@
|
||||
<note priority="1" from="description">ScriptPubKey (HEX)</note>
|
||||
<note priority="1" from="meaning">transactions-list.scriptpubkey.hex</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">
|
||||
<source>Type</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">169</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction-details/bisq-transaction-details.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">transactions-list.vout.scriptpubkey-type</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="3ac775768c0ab6f813c8bab0fe0e68960fc87c4d" datatype="html">
|
||||
<source>data</source>
|
||||
<context-group purpose="location">
|
||||
@@ -1728,14 +1774,6 @@
|
||||
</context-group>
|
||||
<note priority="1" from="description">dashboard.latest-transactions</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="94c248797dd2b6af49068cb49c3b4bc26bec6a16" datatype="html">
|
||||
<source>TXID</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">107</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">dashboard.latest-transactions.txid</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="dfc2fb58e2a04ed944a4bd80f0a2087775134068" datatype="html">
|
||||
<source>Amount</source>
|
||||
<context-group purpose="location">
|
||||
@@ -2354,16 +2392,12 @@
|
||||
<note priority="1" from="description">TX Fee Rating is Optimal</note>
|
||||
<note priority="1" from="meaning">tx-fee-rating.optimal</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f1b50928719b5261ccc81e9ec3ea4cc074018f89" datatype="html">
|
||||
<source>Only ~<x id="INTERPOLATION" equiv-text="ltip="Only ~{{ median"/> sat/vB was needed to get into this block</source>
|
||||
<trans-unit id="9d92d02835569b64f0dce58e81a0d22dd798f6e5" datatype="html">
|
||||
<source>Only ~<x id="INTERPOLATION" equiv-text="ltip="Only ~{{ medianFeeNeeded | number "/> sat/vB was needed to get into this block</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">tx-fee-rating.warning-tooltip</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0fa66b0c410bef320d3f370d7c98c51754b5f28f" datatype="html">
|
||||
@@ -2372,17 +2406,20 @@
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">TX Fee Rating is Warning</note>
|
||||
<note priority="1" from="meaning">tx-fee-rating.overpaid.warning</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f948156b1396cbbf78bbbce437c4d73a1f0770f3" datatype="html">
|
||||
<source>Overpaid <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/>x</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">TX Fee Rating is Danger</note>
|
||||
<note priority="1" from="meaning">tx-fee-rating.overpaid.danger</note>
|
||||
<note priority="1" from="description">TX Fee Rating is Warning</note>
|
||||
<note priority="1" from="meaning">tx-fee-rating.overpaid.warning</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="34c2bcb58f4d34598076134799a4c92eec7ba43c" datatype="html">
|
||||
<source>Only ~<x id="INTERPOLATION" equiv-text="ltip="Only ~{{ medianFeeNeeded | number :"/> sat/vB was needed to get into this block</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">tx-fee-rating.warning-tooltip</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since.just-now" datatype="html">
|
||||
<source>Just now</source>
|
||||
@@ -2517,6 +2554,13 @@
|
||||
<context context-type="linenumber">97</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bisq-address.component.browser-title" datatype="html">
|
||||
<source>Address: <x id="INTERPOLATION" equiv-text="this.addressString"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.ts</context>
|
||||
<context context-type="linenumber">39</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2a30a4cdb123a03facc5ab8c5b3e6d8b8dbbc3d4" datatype="html">
|
||||
<source>BSQ statistics</source>
|
||||
<context-group purpose="location">
|
||||
@@ -2628,13 +2672,6 @@
|
||||
</context-group>
|
||||
<note priority="1" from="description">BSQ token market cap</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bisq-address.component.browser-title" datatype="html">
|
||||
<source>Address: <x id="INTERPOLATION" equiv-text="this.addressString"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.ts</context>
|
||||
<context context-type="linenumber">39</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a1daf43d26259bffdd5eb2d405c61583540b113b" datatype="html">
|
||||
<source>Confirmed</source>
|
||||
<context-group purpose="location">
|
||||
@@ -2691,6 +2728,15 @@
|
||||
<note priority="1" from="description">Transaction Previous Hash</note>
|
||||
<note priority="1" from="meaning">block.previous_hash</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e5026f6e33b13e7d8185288b9691d006a139d36d" datatype="html">
|
||||
<source>Fee per vByte</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Transaction fee</note>
|
||||
<note priority="1" from="meaning">transaction.fee-per-vbyte</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bisq-transactions.filter" datatype="html">
|
||||
<source>Filter</source>
|
||||
<context-group purpose="location">
|
||||
|
||||
BIN
frontend/src/resources/mempool-space-preview.png
Normal file
BIN
frontend/src/resources/mempool-space-preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 308 KiB |
BIN
frontend/src/resources/profile/bluewallet.png
Normal file
BIN
frontend/src/resources/profile/bluewallet.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
6
frontend/src/resources/profile/gemini.svg
Normal file
6
frontend/src/resources/profile/gemini.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="360" height="360" viewBox="0 0 360 360">
|
||||
<rect style="fill: white" width="360" height="360" />
|
||||
<g transform="matrix(0.62 0 0 0.62 180 180)" id="fdfc8ede-1ea7-4fcd-b8cd-38f5fb196623" >
|
||||
<path style="fill: rgb(0,220,250)" transform=" translate(-162, -162)" d="M 211.74 0 C 154.74 0 106.35 43.84 100.25 100.25 C 43.84 106.35 1.4210854715202004e-14 154.76 1.4210854715202004e-14 211.74 C 0.044122601308501076 273.7212006364817 50.27879936351834 323.95587739869154 112.26 324 C 169.26 324 217.84 280.15999999999997 223.75 223.75 C 280.15999999999997 217.65 324 169.24 324 112.26 C 323.95587739869154 50.278799363518324 273.72120063648174 0.04412260130848722 211.74 -1.4210854715202004e-14 z M 297.74 124.84 C 291.9644950552469 162.621439649343 262.2969457716857 192.26062994820046 224.51 198 L 224.51 124.84 z M 26.3 199.16 C 31.986912917108594 161.30935034910615 61.653433460549415 131.56986937804106 99.48999999999998 125.78999999999999 L 99.49 199 L 26.3 199 z M 198.21 224.51 C 191.87736076583954 267.0991541201681 155.312384597087 298.62923417787493 112.255 298.62923417787493 C 69.19761540291302 298.62923417787493 32.63263923416048 267.0991541201682 26.3 224.51 z M 199.16 124.83999999999999 L 199.16 199 L 124.84 199 L 124.84 124.84 z M 297.7 99.48999999999998 L 125.78999999999999 99.48999999999998 C 132.12263923416046 56.90084587983182 168.687615402913 25.37076582212505 211.745 25.37076582212505 C 254.80238459708698 25.37076582212505 291.3673607658395 56.900845879831834 297.7 99.49 z" stroke-linecap="round" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
BIN
frontend/src/resources/profile/muun.png
Normal file
BIN
frontend/src/resources/profile/muun.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
BIN
frontend/src/resources/profile/sqcrypto.png
Normal file
BIN
frontend/src/resources/profile/sqcrypto.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.2 KiB |
@@ -10,7 +10,7 @@
|
||||
"module": "es2020",
|
||||
"moduleResolution": "node",
|
||||
"importHelpers": true,
|
||||
"target": "es2015",
|
||||
"target": "es2020",
|
||||
"typeRoots": [
|
||||
"node_modules/@types"
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user