Merge branch 'master' into bug/improve-x-axis-intervals

This commit is contained in:
nymkappa
2021-12-11 15:32:10 +09:00
64 changed files with 5020 additions and 10147 deletions

1
frontend/.gitignore vendored
View File

@@ -34,6 +34,7 @@ speed-measure-plugin.json
.history/*
# misc
/.angular/cache
/.sass-cache
/connect.lock
/coverage

View File

@@ -255,20 +255,6 @@
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"tsconfig.server.json",
"cypress/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@cypress/schematic:cypress",
"options": {

View File

@@ -11,5 +11,6 @@
"retries": {
"runMode": 3,
"openMode": 0
}
}
},
"chromeWebSecurity": false
}

View File

@@ -62,6 +62,40 @@ describe('Liquid', () => {
});
});
describe('peg in/peg out', () => {
it('loads peg in addresses', () => {
cy.visit(`${basePath}/tx/fe764f7bedfc2a37b29d9c8aef67d64a57d253a6b11c5a55555cfd5826483a58`);
cy.waitForSkeletonGone();
//TODO: Change to an element id so we don't assert on a string
cy.get('#table-tx-vin').should('contain', 'Peg-in');
cy.get('#table-tx-vin a').click().then(() => {
cy.waitForSkeletonGone();
if (baseModule === 'liquid') {
cy.url().should('eq', 'https://mempool.space/tx/f148c0d854db4174ea420655235f910543f0ec3680566dcfdf84fb0a1697b592');
} else {
//TODO: Use an environment variable to get the hostname
cy.url().should('eq', 'http://localhost:4200/tx/f148c0d854db4174ea420655235f910543f0ec3680566dcfdf84fb0a1697b592');
}
});
});
it('loads peg out addresses', () => {
cy.visit(`${basePath}/tx/ecf6eba04ffb3946faa172343c87162df76f1a57b07b0d6dc6ad956b13376dc8`);
cy.waitForSkeletonGone();
cy.get('#table-tx-vout a').first().click().then(() => {
cy.waitForSkeletonGone();
if (baseModule === 'liquid') {
cy.url().should('eq', 'https://mempool.space/address/1BxoGcMg14oaH3CwHD2hF4gU9VcfgX5yoR');
} else {
//TODO: Use an environment variable to get the hostname
cy.url().should('eq', 'http://localhost:4200/address/1BxoGcMg14oaH3CwHD2hF4gU9VcfgX5yoR');
}
//TODO: Add a custom class so we don't assert on a string
cy.get('.badge').should('contain','Liquid Peg Out');
});
});
});
describe('assets', () => {
it('shows the assets screen', () => {
cy.visit(`${basePath}/assets`);

12371
frontend/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -53,18 +53,18 @@
"cypress:run:ci": "node update-config.js TESTNET_ENABLED=true SIGNET_ENABLED=true LIQUID_ENABLED=true BISQ_ENABLED=true ITEMS_PER_PAGE=25 && npm run generate-config && start-server-and-test serve:local-prod 4200 cypress:run:record"
},
"dependencies": {
"@angular-devkit/build-angular": "^12.2.6",
"@angular/animations": "~12.2.6",
"@angular/cli": "~12.2.6",
"@angular/common": "~12.2.6",
"@angular/compiler": "~12.2.6",
"@angular/core": "~12.2.6",
"@angular/forms": "~12.2.6",
"@angular/localize": "^12.2.6",
"@angular/platform-browser": "~12.2.6",
"@angular/platform-browser-dynamic": "~12.2.6",
"@angular/platform-server": "~12.2.6",
"@angular/router": "~12.2.6",
"@angular-devkit/build-angular": "^13.0.4",
"@angular/animations": "~13.0.3",
"@angular/cli": "~13.0.4",
"@angular/common": "~13.0.3",
"@angular/compiler": "~13.0.3",
"@angular/core": "~13.0.3",
"@angular/forms": "~13.0.3",
"@angular/localize": "^13.0.3",
"@angular/platform-browser": "~13.0.3",
"@angular/platform-browser-dynamic": "~13.0.3",
"@angular/platform-server": "~13.0.3",
"@angular/router": "~13.0.3",
"@fortawesome/angular-fontawesome": "^0.8.2",
"@fortawesome/fontawesome-common-types": "^0.2.35",
"@fortawesome/fontawesome-svg-core": "^1.2.35",
@@ -73,7 +73,7 @@
"@mempool/mempool.js": "^2.2.4",
"@ng-bootstrap/ng-bootstrap": "^10.0.0",
"@nguniversal/express-engine": "11.2.1",
"@types/qrcode": "^1.3.4",
"@types/qrcode": "1.4.1",
"bootstrap": "4.5.0",
"browserify": "^17.0.0",
"clipboard": "^2.0.4",
@@ -84,7 +84,7 @@
"ngx-bootrap-multiselect": "^2.0.0",
"ngx-echarts": "^7.0.1",
"ngx-infinite-scroll": "^10.0.1",
"qrcode": "^1.4.4",
"qrcode": "1.5.0",
"rxjs": "^6.6.7",
"tinyify": "^3.0.0",
"tlite": "^0.1.9",
@@ -92,8 +92,8 @@
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular/compiler-cli": "~12.2.6",
"@angular/language-service": "~12.2.6",
"@angular/compiler-cli": "~13.0.3",
"@angular/language-service": "~13.0.3",
"@nguniversal/builders": "^11.2.1",
"@types/express": "^4.17.0",
"@types/jasmine": "~3.6.0",
@@ -110,7 +110,7 @@
"karma-jasmine-html-reporter": "^1.5.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "~4.3.5"
"typescript": "~4.4.4"
},
"optionalDependencies": {
"@cypress/schematic": "^1.3.0",
@@ -120,4 +120,4 @@
"mock-socket": "^9.0.3",
"start-server-and-test": "^1.12.6"
}
}
}

View File

@@ -14,7 +14,7 @@ import { AssetsComponent } from './assets/assets.component';
import { StatusViewComponent } from './components/status-view/status-view.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { LatestBlocksComponent } from './components/latest-blocks/latest-blocks.component';
import { ApiDocsComponent } from './components/api-docs/api-docs.component';
import { DocsComponent } from './components/docs/docs.component';
import { TermsOfServiceComponent } from './components/terms-of-service/terms-of-service.component';
import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component';
import { TrademarkPolicyComponent } from './components/trademark-policy/trademark-policy.component';
@@ -66,9 +66,21 @@ let routes: Routes = [
path: 'about',
component: AboutComponent,
},
{
path: 'docs/api/:type',
component: DocsComponent
},
{
path: 'docs/api',
redirectTo: 'docs/api/rest'
},
{
path: 'docs',
redirectTo: 'docs/api/rest'
},
{
path: 'api',
component: ApiDocsComponent,
redirectTo: 'docs/api/rest'
},
{
path: 'terms-of-service',
@@ -146,9 +158,21 @@ let routes: Routes = [
path: 'assets',
component: AssetsComponent,
},
{
path: 'docs/api/:type',
component: DocsComponent
},
{
path: 'docs/api',
redirectTo: 'docs/api/rest'
},
{
path: 'docs',
redirectTo: 'docs/api/rest'
},
{
path: 'api',
component: ApiDocsComponent,
redirectTo: 'docs/api/rest'
},
],
},
@@ -212,9 +236,21 @@ let routes: Routes = [
children: [],
component: AddressComponent
},
{
path: 'docs/api/:type',
component: DocsComponent
},
{
path: 'docs/api',
redirectTo: 'docs/api/rest'
},
{
path: 'docs',
redirectTo: 'docs/api/rest'
},
{
path: 'api',
component: ApiDocsComponent,
redirectTo: 'docs/api/rest'
},
],
},
@@ -278,9 +314,21 @@ let routes: Routes = [
children: [],
component: AddressComponent
},
{
path: 'docs/api/:type',
component: DocsComponent
},
{
path: 'docs/api',
redirectTo: 'docs/api/rest'
},
{
path: 'docs',
redirectTo: 'docs/api/rest'
},
{
path: 'api',
component: ApiDocsComponent,
redirectTo: 'docs/api/rest'
},
],
},
@@ -380,9 +428,21 @@ if (browserWindowEnv && browserWindowEnv.BASE_MODULE === 'liquid') {
path: 'assets',
component: AssetsComponent,
},
{
path: 'docs/api/:type',
component: DocsComponent
},
{
path: 'docs/api',
redirectTo: 'docs/api/rest'
},
{
path: 'docs',
redirectTo: 'docs/api/rest'
},
{
path: 'api',
component: ApiDocsComponent,
redirectTo: 'docs/api/rest'
},
{
path: 'about',
@@ -429,3 +489,4 @@ if (browserWindowEnv && browserWindowEnv.BASE_MODULE === 'liquid') {
exports: [RouterModule]
})
export class AppRoutingModule { }

View File

@@ -47,9 +47,10 @@ import { FeesBoxComponent } from './components/fees-box/fees-box.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faDatabase, faExchangeAlt, faInfoCircle,
faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';
import { ApiDocsComponent } from './components/api-docs/api-docs.component';
import { CodeTemplateComponent } from './components/api-docs/code-template.component';
faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook } from '@fortawesome/free-solid-svg-icons';
import { ApiDocsComponent } from './components/docs/api-docs.component';
import { DocsComponent } from './components/docs/docs.component';
import { CodeTemplateComponent } from './components/docs/code-template.component';
import { TermsOfServiceComponent } from './components/terms-of-service/terms-of-service.component';
import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component';
import { TrademarkPolicyComponent } from './components/trademark-policy/trademark-policy.component';
@@ -98,6 +99,7 @@ import { PushTransactionComponent } from './components/push-transaction/push-tra
TrademarkPolicyComponent,
SponsorComponent,
PushTransactionComponent,
DocsComponent,
],
imports: [
BrowserModule.withServerTransition({ appId: 'serverApp' }),
@@ -156,5 +158,6 @@ export class AppModule {
library.addIcons(faCaretDown);
library.addIcons(faAngleRight);
library.addIcons(faAngleLeft);
library.addIcons(faBook);
}
}

View File

@@ -7,7 +7,7 @@ import { BisqBlockComponent } from './bisq-block/bisq-block.component';
import { BisqBlocksComponent } from './bisq-blocks/bisq-blocks.component';
import { BisqAddressComponent } from './bisq-address/bisq-address.component';
import { BisqStatsComponent } from './bisq-stats/bisq-stats.component';
import { ApiDocsComponent } from '../components/api-docs/api-docs.component';
import { DocsComponent } from '../components/docs/docs.component';
import { BisqDashboardComponent } from './bisq-dashboard/bisq-dashboard.component';
import { BisqMarketComponent } from './bisq-market/bisq-market.component';
import { BisqMainDashboardComponent } from './bisq-main-dashboard/bisq-main-dashboard.component';
@@ -60,9 +60,21 @@ const routes: Routes = [
path: 'about',
component: AboutComponent,
},
{
path: 'docs/api/:type',
component: DocsComponent
},
{
path: 'docs/api',
redirectTo: 'docs/api/rest'
},
{
path: 'docs',
redirectTo: 'docs/api/rest'
},
{
path: 'api',
component: ApiDocsComponent,
redirectTo: 'docs/api/rest'
},
{
path: 'terms-of-service',

View File

@@ -1,899 +0,0 @@
<ng-container *ngIf="{ val: network$ | async } as network">
<div class="container-xl text-left">
<div class="text-center">
<h2>{{ network.val === '' ? 'Bitcoin' : network.val.charAt(0).toUpperCase() + network.val.slice(1) }} <ng-container i18n="api-docs.title">API Service</ng-container></h2>
</div>
<ul ngbNav #nav="ngbNav" [(activeId)]="active" class="nav-tabs">
<li *ngIf="network.val !== 'bisq' && network.val !== 'liquid'" [ngbNavItem]="0">
<a ngbNavLink i18n="api-docs.tab.general|API Docs tab for General">General</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark">
<ngb-panel id="difficultyAdjustment" *ngIf="network.val !== 'liquid'">
<ng-template ngbPanelTitle>
<span>GET Difficulty Adjustment</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="difficulty">
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.difficulty)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/difficulty-adjustment</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about difficulty adjustment.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.difficulty" [network]="network.val" ></app-code-template>
</div>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li *ngIf="network.val === 'bisq'" [ngbNavItem]="0">
<a ngbNavLink i18n="Bisq All Markets">Markets</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="bisqMarketsCurrencies">
<ng-template ngbPanelTitle>
<span>GET Market Currencies</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketsCurrencies)" target="_blank">GET {{ baseNetworkUrl }}/api/currencies</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of available currencies for a given base currency. </div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketsCurrencies" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="marketDepth">
<ng-template ngbPanelTitle>
<span>GET Market Depth</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketDepth)" target="_blank">GET {{ baseNetworkUrl }}/api/depth?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of open offer prices for a single market.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketDepth" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsHloc">
<ng-template ngbPanelTitle>
<span>GET Market HLOC</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketHloc)" target="_blank">GET {{ baseNetworkUrl }}/api/hloc?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides hi/low/open/close data for a given market. This can be used to generate a candlestick chart.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketHloc" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsMarkets">
<ng-template ngbPanelTitle>
<span>GET Markets</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.markets)" target="_blank">GET {{ baseNetworkUrl }}/api/markets</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of available markets.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.markets" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsOffers">
<ng-template ngbPanelTitle>
<span>GET Market Offers</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketOffers)" target="_blank">GET {{ baseNetworkUrl }}/api/offers?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of open offer details for a single market.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketOffers" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsTicker">
<ng-template ngbPanelTitle>
<span>GET Market Ticker</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketTicker)" target="_blank">GET {{ baseNetworkUrl }}/api/ticker?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides 24 hour price ticker for single market or all markets</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketTicker" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsTrades">
<ng-template ngbPanelTitle>
<span>GET Market Trades</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketTrades)" target="_blank">GET {{ baseNetworkUrl }}/api/trades?market=[:market]&limit=[:limit]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of completed trades for a single market.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketTrades" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsVolumes">
<ng-template ngbPanelTitle>
<span>GET Market Volumes</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketVolumes)" target="_blank">GET {{ baseNetworkUrl }}/api/volumes?basecurrency=[:basecurrency]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides periodic volume data in terms of base currency for one or all markets.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketVolumes" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li *ngIf="network.val === 'bisq'" [ngbNavItem]="1">
<a ngbNavLink i18n="api-docs.tab.bsq|API Docs tab for BSQ">General</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="bisqStats">
<ng-template ngbPanelTitle>
<span>GET Stats</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.stats)" target="_blank'" target="_blank">GET {{ baseNetworkUrl }}/api/stats</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns statistics about all Bisq transactions.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.stats" [network]="network.val"></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li [ngbNavItem]="2">
<a ngbNavLink i18n="api-docs.tab.addresses|API Docs tab for Addresses">Addresses</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="address">
<ng-template ngbPanelTitle>
<span>GET Address</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.address)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about an address. Available fields: <code>address</code>, <code>chain_stats</code>, and <code>mempool_stats</code>. {{ '{' }}chain,mempool{{ '}' }}_stats each contain an object with <code>tx_count</code>, <code>funded_txo_count</code>, <code>funded_txo_sum</code>, <code>spent_txo_count</code>, and <code>spent_txo_sum</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.address" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressTransactions">
<ng-template ngbPanelTitle>
<span>GET Address Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressTransactions)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/txs</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get transaction history for the specified address/scripthash, sorted with newest first. Returns up to 50 mempool transactions plus the first 25 confirmed transactions. You can request more confirmed transactions using <code>:last_seen_txid</code> (see below).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressTransactions" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressTransactionsChain">
<ng-template ngbPanelTitle>
<span>GET Address Transactions Chain</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressTransactionsChain)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/txs/chain</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get confirmed transaction history for the specified address/scripthash, sorted with newest first. Returns 25 transactions per page. More can be requested by specifying the last txid seen by the previous query.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressTransactionsChain" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressTransactionsMempool">
<ng-template ngbPanelTitle>
<span>GET Address Transactions Mempool</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressTransactionsMempool)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/txs/mempool</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get unconfirmed transaction history for the specified address/scripthash. Returns up to 50 transactions (no paging).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressTransactionsMempool" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressUTXO">
<ng-template ngbPanelTitle>
<span>GET Address UTXO</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressUTXO)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/utxo</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get the list of unspent transaction outputs associated with the address/scripthash. Available fields: <code>txid</code>, <code>vout</code>, <code>value</code>, and <code>status</code> (with the status of the funding tx).<ng-container *ngIf="network.val === 'liquid'">There is also a <code>valuecommitment</code> field that may appear in place of <code>value</code>, plus the following additional fields: <code>asset</code>/<code>assetcommitment</code>, <code>nonce</code>/<code>noncecommitment</code>, <code>surjection_proof</code>, and <code>range_proof</code>.</ng-container></div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressUTXO" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li *ngIf="network.val === 'liquid'" [ngbNavItem]="3">
<a ngbNavLink i18n="api-docs.tab.assets|API Docs tab for Assets">Assets</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="assets">
<ng-template ngbPanelTitle>
<span>GET Assets</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.assets)" target="_blank">GET /liquid/api/asset/:asset_id</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns information about a Liquid asset.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.assets" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="assetTransactions">
<ng-template ngbPanelTitle>
<span>GET Asset Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<a [href]="wrapUrl(network.val, code.assetTransactions)" target="_blank">GET /liquid/api/asset/:asset_id/txs[/mempool|/chain]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns transactions associated with the specified Liquid asset. For the network's native asset, returns a list of peg in, peg out, and burn transactions. For user-issued assets, returns a list of issuance, reissuance, and burn transactions. Does not include regular transactions transferring this asset.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.assetTransactions" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="assetSupply">
<ng-template ngbPanelTitle>
<span>GET Asset Supply</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.assetSupply)" target="_blank">GET /liquid/api/asset/:asset_id/supply[/decimal]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get the current total supply of the specified asset. For the native asset (L-BTC), this is calculated as [chain,mempool]_stats.peg_in_amount - [chain,mempool]_stats.peg_out_amount - [chain,mempool]_stats.burned_amount. For issued assets, this is calculated as [chain,mempool]_stats.issued_amount - [chain,mempool]_stats.burned_amount. Not available for assets with blinded issuances. If /decimal is specified, returns the supply as a decimal according to the asset's divisibility. Otherwise, returned in base units.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.assetSupply" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li [ngbNavItem]="4">
<a ngbNavLink i18n="api-docs.tab.blocks|API Docs tab for Blocks">Blocks</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="block">
<ng-template ngbPanelTitle>
<span>GET Block</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.block)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about a block. Available fields: <code>id</code>, <code>height</code>, <code>version</code>, <code>timestamp</code>, <code>bits</code>, <code>nonce</code>, <code>merkle_root</code>, <code>tx_count</code>, <code>size</code>, <code>weight</code>,<ng-container *ngIf="network.val === 'liquid'"> <code>proof</code>,</ng-container> and <code>previousblockhash</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.block" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockHeader">
<ng-template ngbPanelTitle>
<span>GET Block Header</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockHeader)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/header</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the hex-encoded block header.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockHeader" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockHeight">
<ng-template ngbPanelTitle>
<span>GET Block Height</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockHeader)" target="_blank">GET {{ baseNetworkUrl }}/api/block-height/:height</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the hash of the block currently at <code>:height</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockHeight" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockRaw">
<ng-template ngbPanelTitle>
<span>GET Block Raw</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<a [href]="wrapUrl(network.val, code.blockRaw)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/raw</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the raw block representation in binary.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockRaw" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockStatus">
<ng-template ngbPanelTitle>
<span>GET Block Status</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="title">Get Block Status</div>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockStatus)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/status</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the confirmation status of a block. Available fields: <code>in_best_chain</code> (boolean, false for orphaned blocks), <code>next_best</code> (the hash of the next block, only available for blocks in the best chain).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockStatus" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="blockTipHeight">
<ng-template ngbPanelTitle>
<span>GET Block Tip Height</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTipHeight)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks/tip/height</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the height of the last block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTipHeight" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTipHash">
<ng-template ngbPanelTitle>
<span>GET Block Tip Hash</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTipHash)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks/tip/hash</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the hash of the last block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTipHash" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTxId">
<ng-template ngbPanelTitle>
<span>GET Block Transaction ID</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTxId)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/txid/:index</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the transaction at index <code>:index</code> within the specified block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTxId" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTxIds">
<ng-template ngbPanelTitle>
<span>GET Block Transaction IDs</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTxIds)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/txids</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a list of all txids in the block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTxIds" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTxs">
<ng-template ngbPanelTitle>
<span>GET Block Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTxs)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/txs[/:start_index]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a list of transactions in the block (up to 25 transactions beginning at <code>start_index</code>). Transactions returned here do not have the <code>status</code> field, since all the transactions share the same block and confirmation status.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTxs" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blocks">
<ng-template ngbPanelTitle>
<span>GET Blocks</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blocks)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks[/:start_height]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the 10 newest blocks starting at the tip or at <code>:start_height</code> if specified.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blocks" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val === 'bisq'" id="blocks">
<ng-template ngbPanelTitle>
<span>GET Blocks</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blocksBisq)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks/:index/:length</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the 10 newest blocks starting at the tip or at <code>:start_height</code> if specified.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blocksBisq" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li *ngIf="network.val !== 'bisq'" [ngbNavItem]="5">
<a ngbNavLink i18n="api-docs.tab.fees|API Docs tab for Fees">Fees</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark">
<ngb-panel id="feeMempoolBlocks">
<ng-template ngbPanelTitle>
<span>GET Mempool Blocks Fees</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.feeMempoolBlocks)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/fees/mempool-blocks</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.fees.mempool-blocks|API Docs for /api/v1/fees/mempool-blocks">Returns current mempool as projected blocks.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.feeMempoolBlocks" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="feeRecommended">
<ng-template ngbPanelTitle>
<span>GET Recommended Fees</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.feeRecommended)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/fees/recommended</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.fees.recommended|API Docs for /api/v1/fees/recommended">Returns our currently suggested fees for new transactions.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.feeRecommended" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li *ngIf="network.val !== 'bisq'" [ngbNavItem]="6">
<a ngbNavLink i18n="api-docs.tab.mempool|API Docs tab for Mempool">Mempool</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="mempool">
<ng-template ngbPanelTitle>
<span>GET Mempool</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.mempool)" target="_blank">GET {{ baseNetworkUrl }}/api/mempool</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.mempool.mempool|API Docs for /api/mempool">Returns current mempool backlog statistics.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.mempool" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="mempoolTxs">
<ng-template ngbPanelTitle>
<span>GET Mempool Transactions IDs</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.mempoolTxs)" target="_blank">GET {{ baseNetworkUrl }}/api/mempool/txids</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.mempool.txids|API Docs for /api/mempool/txids">Get the full list of txids in the mempool as an array. The order of the txids is arbitrary and does not match bitcoind.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.mempoolTxs" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="mempoolRecent">
<ng-template ngbPanelTitle>
<span>GET Mempool Recent</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.mempoolRecent)" target="_blank">GET {{ baseNetworkUrl }}/api/mempool/recent</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.mempool.recent|API Docs for /api/mempool/recent">Get a list of the last 10 transactions to enter the mempool. Each transaction object contains simplified overview data, with the following fields: <code>txid</code>, <code>fee</code>, <code>vsize</code>, and <code>value</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.mempoolRecent" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li [ngbNavItem]="7">
<a ngbNavLink i18n="api-docs.tab.transactions|API Docs tab for Transactions">Transactions</a>
<ng-template ngbNavContent>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel *ngIf="network.val !== 'bisq'" id="cpfp">
<ng-template ngbPanelTitle>
<span>GET Children Pay for Parent</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionCpfp)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/cpfp/:txid</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.fees.cpfp|API Docs for /api/v1/fees/cpfp">Returns the ancestors and the best descendant fees for a transaction.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionCpfp" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="transaction">
<ng-template ngbPanelTitle>
<span>GET Transaction</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<a [href]="wrapUrl(network.val, code.transaction)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about a transaction. Available fields: <code>txid</code>, <code>version</code>, <code>locktime</code>, <code>size</code>, <code>weight</code>, <code>fee</code>, <code>vin</code>, <code>vout</code>, and <code>status</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transaction" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionHex">
<ng-template ngbPanelTitle>
<span>GET Transaction Hex</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionHex)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/hex</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a transaction serialized as hex.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionHex" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq' && network.val !== 'liquid'" id="transactionMerkleBlockProof">
<ng-template ngbPanelTitle>
<span>GET Transaction Merkleblock Proof</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionMerkleBlockProof)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/merkleblock-proof</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a merkle inclusion proof for the transaction using <a href="https://bitcoin.org/en/glossary/merkle-block">bitcoind's merkleblock</a> format.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionMerkleBlockProof" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionMerkleProof">
<ng-template ngbPanelTitle>
<span>GET Transaction Merkle Proof</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionMerkleProof)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/merkle-proof</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a merkle inclusion proof for the transaction using <a href="https://electrumx.readthedocs.io/en/latest/protocol-methods.html#blockchain-transaction-get-merkle">Electrum's blockchain.transaction.get_merkle format.</a></div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionMerkleProof" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionOutspend">
<ng-template ngbPanelTitle>
<span>GET Transaction Outspend</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionOutspend)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/outspend/:vout</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the spending status of a transaction output. Available fields: <code>spent</code> (boolean), <code>txid</code> (optional), <code>vin</code> (optional), and <code>status</code> (optional, the status of the spending tx).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionOutspend" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionOutspends">
<ng-template ngbPanelTitle>
<span>GET Transaction Outspends</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionOutspends)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/outspends</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the spending status of all transaction outputs.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionOutspends" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionRaw">
<ng-template ngbPanelTitle>
<span>GET Transaction Raw</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionRaw)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/raw</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a transaction as binary data.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionRaw" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionStatus">
<ng-template ngbPanelTitle>
<span>GET Transaction Status</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionStatus)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/status</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the confirmation status of a transaction. Available fields: <code>confirmed</code> (boolean), <code>block_height</code> (optional), and <code>block_hash</code> (optional).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionStatus" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val === 'bisq'" id="transactionsBisq">
<ng-template ngbPanelTitle>
<span>GET Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="title">Get Mempool Txids</div>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionsBisq)" target="_blank">GET {{ baseNetworkUrl }}/api/txs/:index/:length</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns :length of latest Bisq transactions, starting from :index.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionsBisq" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="postTransaction">
<ng-template ngbPanelTitle>
<span>POST Transaction</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<div>POST /api/tx</div>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Broadcast a raw transaction to the network. The transaction should be provided as hex in the request body. The <code>txid</code> will be returned on success.</div>
</div>
<app-code-template [method]="'post'" [hostname]="hostname" [code]="code.transactionPost" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</ng-template>
</li>
<li *ngIf="network.val !== 'bisq'" [ngbNavItem]="8">
<a ngbNavLink i18n="api-docs.tab.websocket|API Docs tab for Websocket">Websocket</a>
<ng-template ngbNavContent >
<div class="websocket">
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
{{ wrapUrl(network.val, code.websocket, true) }}
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.websocket.websocket">Default push: <code>{{ '{' }} action: 'want', data: ['blocks', ...] {{ '}' }}</code> to express what you want pushed. Available: <code>blocks</code>, <code>mempool-blocks</code>, <code>live-2h-chart</code>, and <code>stats</code>.<br><br>Push transactions related to address: <code>{{ '{' }} 'track-address': '3PbJ...bF9B' {{ '}' }}</code> to receive all new transactions containing that address as input or output. Returns an array of transactions. <code>address-transactions</code> for new mempool transactions, and <code>block-transactions</code> for new block confirmed transactions.</div>
</div>
<app-code-template [method]="'websocket'" [hostname]="hostname" [code]="code.websocket" [network]="network.val" ></app-code-template>
</div>
</ng-template>
</li>
</ul>
<div [ngbNavOutlet]="nav" class="mt-2"></div>
<br>
<div class="text-center">
<a [routerLink]="['/terms-of-service']" i18n="shared.terms-of-service|Terms of Service">Terms of Service</a>
|
<a [routerLink]="['/privacy-policy']" i18n="shared.privacy-policy|Privacy Policy">Privacy Policy</a>
</div>
</div>
</ng-container>

View File

@@ -38,8 +38,8 @@
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/stats']" (click)="collapse()"><fa-icon [icon]="['fas', 'file-alt']" [fixedWidth]="true" i18n-title="master-page.stats" title="Stats"></fa-icon></a>
</li>
<li class="nav-item mr-2" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/api' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'cogs']" [fixedWidth]="true" i18n-title="master-page.api" title="API"></fa-icon></a>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/docs']" (click)="collapse()"><fa-icon [icon]="['fas', 'book']" [fixedWidth]="true" i18n-title="master-page.docs" title="Docs"></fa-icon></a>
</li>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/about']" (click)="collapse()"><fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" i18n-title="master-page.about" title="About"></fa-icon></a>

View File

@@ -0,0 +1,880 @@
<ng-container *ngIf="{ val: network$ | async } as network">
<div class="container-xl text-left">
<div id="restAPI" *ngIf="restTabActivated">
<p>Reference for the {{ network.val === '' ? 'Bitcoin' : network.val.charAt(0).toUpperCase() + network.val.slice(1) }} <ng-container i18n="api-docs.title">API service</ng-container>.</p>
<div class="api-category" *ngIf="network.val !== 'bisq' && network.val !== 'liquid'">
<h4 i18n="api-docs.tab.general|API Docs tab for General">General</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark">
<ngb-panel id="difficultyAdjustment" *ngIf="network.val !== 'liquid'">
<ng-template ngbPanelTitle>
<span>GET Difficulty Adjustment</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="difficulty">
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.difficulty)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/difficulty-adjustment</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about difficulty adjustment.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.difficulty" [network]="network.val" ></app-code-template>
</div>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category" *ngIf="network.val === 'bisq'">
<h4 i18n="Bisq All Markets">Markets</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="bisqMarketsCurrencies">
<ng-template ngbPanelTitle>
<span>GET Market Currencies</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketsCurrencies)" target="_blank">GET {{ baseNetworkUrl }}/api/currencies</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of available currencies for a given base currency. </div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketsCurrencies" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="marketDepth">
<ng-template ngbPanelTitle>
<span>GET Market Depth</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketDepth)" target="_blank">GET {{ baseNetworkUrl }}/api/depth?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of open offer prices for a single market.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketDepth" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsHloc">
<ng-template ngbPanelTitle>
<span>GET Market HLOC</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketHloc)" target="_blank">GET {{ baseNetworkUrl }}/api/hloc?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides hi/low/open/close data for a given market. This can be used to generate a candlestick chart.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketHloc" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsMarkets">
<ng-template ngbPanelTitle>
<span>GET Markets</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.markets)" target="_blank">GET {{ baseNetworkUrl }}/api/markets</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of available markets.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.markets" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsOffers">
<ng-template ngbPanelTitle>
<span>GET Market Offers</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketOffers)" target="_blank">GET {{ baseNetworkUrl }}/api/offers?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of open offer details for a single market.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketOffers" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsTicker">
<ng-template ngbPanelTitle>
<span>GET Market Ticker</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketTicker)" target="_blank">GET {{ baseNetworkUrl }}/api/ticker?market=[:market]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides 24 hour price ticker for single market or all markets</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketTicker" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsTrades">
<ng-template ngbPanelTitle>
<span>GET Market Trades</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketTrades)" target="_blank">GET {{ baseNetworkUrl }}/api/trades?market=[:market]&limit=[:limit]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides list of completed trades for a single market.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketTrades" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="bisqMarketsVolumes">
<ng-template ngbPanelTitle>
<span>GET Market Volumes</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.marketVolumes)" target="_blank">GET {{ baseNetworkUrl }}/api/volumes?basecurrency=[:basecurrency]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Provides periodic volume data in terms of base currency for one or all markets.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.marketVolumes" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category" *ngIf="network.val === 'bisq'">
<h4 ngbNavLink i18n="api-docs.tab.bsq|API Docs tab for BSQ">General</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="bisqStats">
<ng-template ngbPanelTitle>
<span>GET Stats</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.stats)" target="_blank'" target="_blank">GET {{ baseNetworkUrl }}/api/stats</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns statistics about all Bisq transactions.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.stats" [network]="network.val"></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category">
<h4 i18n="api-docs.tab.addresses|API Docs tab for Addresses">Addresses</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="address">
<ng-template ngbPanelTitle>
<span>GET Address</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.address)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about an address. Available fields: <code>address</code>, <code>chain_stats</code>, and <code>mempool_stats</code>. {{ '{' }}chain,mempool{{ '}' }}_stats each contain an object with <code>tx_count</code>, <code>funded_txo_count</code>, <code>funded_txo_sum</code>, <code>spent_txo_count</code>, and <code>spent_txo_sum</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.address" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressTransactions">
<ng-template ngbPanelTitle>
<span>GET Address Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressTransactions)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/txs</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get transaction history for the specified address/scripthash, sorted with newest first. Returns up to 50 mempool transactions plus the first 25 confirmed transactions. You can request more confirmed transactions using <code>:last_seen_txid</code> (see below).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressTransactions" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressTransactionsChain">
<ng-template ngbPanelTitle>
<span>GET Address Transactions Chain</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressTransactionsChain)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/txs/chain</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get confirmed transaction history for the specified address/scripthash, sorted with newest first. Returns 25 transactions per page. More can be requested by specifying the last txid seen by the previous query.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressTransactionsChain" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressTransactionsMempool">
<ng-template ngbPanelTitle>
<span>GET Address Transactions Mempool</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressTransactionsMempool)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/txs/mempool</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get unconfirmed transaction history for the specified address/scripthash. Returns up to 50 transactions (no paging).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressTransactionsMempool" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="addressUTXO">
<ng-template ngbPanelTitle>
<span>GET Address UTXO</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.addressUTXO)" target="_blank">GET {{ baseNetworkUrl }}/api/address/:address/utxo</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get the list of unspent transaction outputs associated with the address/scripthash. Available fields: <code>txid</code>, <code>vout</code>, <code>value</code>, and <code>status</code> (with the status of the funding tx).<ng-container *ngIf="network.val === 'liquid'">There is also a <code>valuecommitment</code> field that may appear in place of <code>value</code>, plus the following additional fields: <code>asset</code>/<code>assetcommitment</code>, <code>nonce</code>/<code>noncecommitment</code>, <code>surjection_proof</code>, and <code>range_proof</code>.</ng-container></div>
</div>
<app-code-template [hostname]="hostname" [code]="code.addressUTXO" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category" *ngIf="network.val === 'liquid'">
<h4 i18n="api-docs.tab.assets|API Docs tab for Assets">Assets</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="assets">
<ng-template ngbPanelTitle>
<span>GET Assets</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.assets)" target="_blank">GET /liquid/api/asset/:asset_id</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns information about a Liquid asset.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.assets" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="assetTransactions">
<ng-template ngbPanelTitle>
<span>GET Asset Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<a [href]="wrapUrl(network.val, code.assetTransactions)" target="_blank">GET /liquid/api/asset/:asset_id/txs[/mempool|/chain]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns transactions associated with the specified Liquid asset. For the network's native asset, returns a list of peg in, peg out, and burn transactions. For user-issued assets, returns a list of issuance, reissuance, and burn transactions. Does not include regular transactions transferring this asset.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.assetTransactions" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="assetSupply">
<ng-template ngbPanelTitle>
<span>GET Asset Supply</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.assetSupply)" target="_blank">GET /liquid/api/asset/:asset_id/supply[/decimal]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Get the current total supply of the specified asset. For the native asset (L-BTC), this is calculated as [chain,mempool]_stats.peg_in_amount - [chain,mempool]_stats.peg_out_amount - [chain,mempool]_stats.burned_amount. For issued assets, this is calculated as [chain,mempool]_stats.issued_amount - [chain,mempool]_stats.burned_amount. Not available for assets with blinded issuances. If /decimal is specified, returns the supply as a decimal according to the asset's divisibility. Otherwise, returned in base units.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.assetSupply" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category">
<h4 i18n="api-docs.tab.blocks|API Docs tab for Blocks">Blocks</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="block">
<ng-template ngbPanelTitle>
<span>GET Block</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.block)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about a block. Available fields: <code>id</code>, <code>height</code>, <code>version</code>, <code>timestamp</code>, <code>bits</code>, <code>nonce</code>, <code>merkle_root</code>, <code>tx_count</code>, <code>size</code>, <code>weight</code>,<ng-container *ngIf="network.val === 'liquid'"> <code>proof</code>,</ng-container> and <code>previousblockhash</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.block" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockHeader">
<ng-template ngbPanelTitle>
<span>GET Block Header</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockHeader)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/header</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the hex-encoded block header.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockHeader" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockHeight">
<ng-template ngbPanelTitle>
<span>GET Block Height</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockHeader)" target="_blank">GET {{ baseNetworkUrl }}/api/block-height/:height</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the hash of the block currently at <code>:height</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockHeight" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockRaw">
<ng-template ngbPanelTitle>
<span>GET Block Raw</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<a [href]="wrapUrl(network.val, code.blockRaw)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/raw</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the raw block representation in binary.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockRaw" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockStatus">
<ng-template ngbPanelTitle>
<span>GET Block Status</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="title">Get Block Status</div>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockStatus)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/status</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the confirmation status of a block. Available fields: <code>in_best_chain</code> (boolean, false for orphaned blocks), <code>next_best</code> (the hash of the next block, only available for blocks in the best chain).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockStatus" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="blockTipHeight">
<ng-template ngbPanelTitle>
<span>GET Block Tip Height</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTipHeight)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks/tip/height</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the height of the last block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTipHeight" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTipHash">
<ng-template ngbPanelTitle>
<span>GET Block Tip Hash</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTipHash)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks/tip/hash</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the hash of the last block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTipHash" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTxId">
<ng-template ngbPanelTitle>
<span>GET Block Transaction ID</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTxId)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/txid/:index</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the transaction at index <code>:index</code> within the specified block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTxId" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTxIds">
<ng-template ngbPanelTitle>
<span>GET Block Transaction IDs</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTxIds)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/txids</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a list of all txids in the block.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTxIds" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blockTxs">
<ng-template ngbPanelTitle>
<span>GET Block Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blockTxs)" target="_blank">GET {{ baseNetworkUrl }}/api/block/:hash/txs[/:start_index]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a list of transactions in the block (up to 25 transactions beginning at <code>start_index</code>). Transactions returned here do not have the <code>status</code> field, since all the transactions share the same block and confirmation status.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blockTxs" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="blocks">
<ng-template ngbPanelTitle>
<span>GET Blocks</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blocks)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks[/:start_height]</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the 10 newest blocks starting at the tip or at <code>:start_height</code> if specified.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blocks" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val === 'bisq'" id="blocks">
<ng-template ngbPanelTitle>
<span>GET Blocks</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.blocksBisq)" target="_blank">GET {{ baseNetworkUrl }}/api/blocks/:index/:length</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the 10 newest blocks starting at the tip or at <code>:start_height</code> if specified.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.blocksBisq" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category" *ngIf="network.val !== 'bisq'">
<h4 i18n="api-docs.tab.fees|API Docs tab for Fees">Fees</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark">
<ngb-panel id="feeMempoolBlocks">
<ng-template ngbPanelTitle>
<span>GET Mempool Blocks Fees</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.feeMempoolBlocks)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/fees/mempool-blocks</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.fees.mempool-blocks|API Docs for /api/v1/fees/mempool-blocks">Returns current mempool as projected blocks.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.feeMempoolBlocks" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="feeRecommended">
<ng-template ngbPanelTitle>
<span>GET Recommended Fees</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.feeRecommended)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/fees/recommended</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.fees.recommended|API Docs for /api/v1/fees/recommended">Returns our currently suggested fees for new transactions.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.feeRecommended" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category" *ngIf="network.val !== 'bisq'">
<h4 i18n="api-docs.tab.mempool|API Docs tab for Mempool">Mempool</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel id="mempool">
<ng-template ngbPanelTitle>
<span>GET Mempool</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.mempool)" target="_blank">GET {{ baseNetworkUrl }}/api/mempool</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.mempool.mempool|API Docs for /api/mempool">Returns current mempool backlog statistics.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.mempool" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="mempoolTxs">
<ng-template ngbPanelTitle>
<span>GET Mempool Transactions IDs</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.mempoolTxs)" target="_blank">GET {{ baseNetworkUrl }}/api/mempool/txids</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.mempool.txids|API Docs for /api/mempool/txids">Get the full list of txids in the mempool as an array. The order of the txids is arbitrary and does not match bitcoind.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.mempoolTxs" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="mempoolRecent">
<ng-template ngbPanelTitle>
<span>GET Mempool Recent</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.mempoolRecent)" target="_blank">GET {{ baseNetworkUrl }}/api/mempool/recent</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.mempool.recent|API Docs for /api/mempool/recent">Get a list of the last 10 transactions to enter the mempool. Each transaction object contains simplified overview data, with the following fields: <code>txid</code>, <code>fee</code>, <code>vsize</code>, and <code>value</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.mempoolRecent" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
<div class="api-category">
<h4 i18n="api-docs.tab.transactions|API Docs tab for Transactions">Transactions</h4>
<ngb-accordion [closeOthers]="true" animated="true" type="dark" >
<ngb-panel *ngIf="network.val !== 'bisq'" id="cpfp">
<ng-template ngbPanelTitle>
<span>GET Children Pay for Parent</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionCpfp)" target="_blank">GET {{ baseNetworkUrl }}/api/v1/cpfp/:txid</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.fees.cpfp|API Docs for /api/v1/fees/cpfp">Returns the ancestors and the best descendant fees for a transaction.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionCpfp" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel id="transaction">
<ng-template ngbPanelTitle>
<span>GET Transaction</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<a [href]="wrapUrl(network.val, code.transaction)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns details about a transaction. Available fields: <code>txid</code>, <code>version</code>, <code>locktime</code>, <code>size</code>, <code>weight</code>, <code>fee</code>, <code>vin</code>, <code>vout</code>, and <code>status</code>.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transaction" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionHex">
<ng-template ngbPanelTitle>
<span>GET Transaction Hex</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionHex)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/hex</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a transaction serialized as hex.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionHex" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq' && network.val !== 'liquid'" id="transactionMerkleBlockProof">
<ng-template ngbPanelTitle>
<span>GET Transaction Merkleblock Proof</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionMerkleBlockProof)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/merkleblock-proof</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a merkle inclusion proof for the transaction using <a href="https://bitcoin.org/en/glossary/merkle-block">bitcoind's merkleblock</a> format.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionMerkleBlockProof" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionMerkleProof">
<ng-template ngbPanelTitle>
<span>GET Transaction Merkle Proof</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionMerkleProof)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/merkle-proof</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a merkle inclusion proof for the transaction using <a href="https://electrumx.readthedocs.io/en/latest/protocol-methods.html#blockchain-transaction-get-merkle">Electrum's blockchain.transaction.get_merkle format.</a></div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionMerkleProof" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionOutspend">
<ng-template ngbPanelTitle>
<span>GET Transaction Outspend</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionOutspend)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/outspend/:vout</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the spending status of a transaction output. Available fields: <code>spent</code> (boolean), <code>txid</code> (optional), <code>vin</code> (optional), and <code>status</code> (optional, the status of the spending tx).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionOutspend" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionOutspends">
<ng-template ngbPanelTitle>
<span>GET Transaction Outspends</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionOutspends)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/outspends</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the spending status of all transaction outputs.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionOutspends" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionRaw">
<ng-template ngbPanelTitle>
<span>GET Transaction Raw</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionRaw)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/raw</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns a transaction as binary data.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionRaw" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="transactionStatus">
<ng-template ngbPanelTitle>
<span>GET Transaction Status</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionStatus)" target="_blank">GET {{ baseNetworkUrl }}/api/tx/:txid/status</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns the confirmation status of a transaction. Available fields: <code>confirmed</code> (boolean), <code>block_height</code> (optional), and <code>block_hash</code> (optional).</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionStatus" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val === 'bisq'" id="transactionsBisq">
<ng-template ngbPanelTitle>
<span>GET Transactions</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="title">Get Mempool Txids</div>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<a [href]="wrapUrl(network.val, code.transactionsBisq)" target="_blank">GET {{ baseNetworkUrl }}/api/txs/:index/:length</a>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Returns :length of latest Bisq transactions, starting from :index.</div>
</div>
<app-code-template [hostname]="hostname" [code]="code.transactionsBisq" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
<ngb-panel *ngIf="network.val !== 'bisq'" id="postTransaction">
<ng-template ngbPanelTitle>
<span>POST Transaction</span>
</ng-template>
<ng-template ngbPanelContent>
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
<div>POST /api/tx</div>
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n>Broadcast a raw transaction to the network. The transaction should be provided as hex in the request body. The <code>txid</code> will be returned on success.</div>
</div>
<app-code-template [method]="'post'" [hostname]="hostname" [code]="code.transactionPost" [network]="network.val" ></app-code-template>
</ng-template>
</ngb-panel>
</ngb-accordion>
</div>
</div>
<div id="websocketAPI" *ngIf="!restTabActivated && ( network.val !== 'bisq' )">
<div class="api-category">
<div class="websocket">
<div class="endpoint">
<div class="subtitle" i18n="Api docs endpoint">Endpoint</div>
{{ wrapUrl(network.val, code.websocket, true) }}
</div>
<div class="description">
<div class="subtitle" i18n>Description</div>
<div i18n="api-docs.websocket.websocket">Default push: <code>{{ '{' }} action: 'want', data: ['blocks', ...] {{ '}' }}</code> to express what you want pushed. Available: <code>blocks</code>, <code>mempool-blocks</code>, <code>live-2h-chart</code>, and <code>stats</code>.<br><br>Push transactions related to address: <code>{{ '{' }} 'track-address': '3PbJ...bF9B' {{ '}' }}</code> to receive all new transactions containing that address as input or output. Returns an array of transactions. <code>address-transactions</code> for new mempool transactions, and <code>block-transactions</code> for new block confirmed transactions.</div>
</div>
<app-code-template [method]="'websocket'" [hostname]="hostname" [code]="code.websocket" [network]="network.val" ></app-code-template>
</div>
</div>
</div>
<br>
<div class="text-center">
<a [routerLink]="['/terms-of-service']" i18n="shared.terms-of-service|Terms of Service">Terms of Service</a>
|
<a [routerLink]="['/privacy-policy']" i18n="shared.privacy-policy|Privacy Policy">Privacy Policy</a>
</div>
</div>
</ng-container>

View File

@@ -29,7 +29,7 @@ li.nav-item {
}
}
.code-tab {
.code-tab {
width: auto;
margin: 20px auto 10px;
li.nav-item {
@@ -67,10 +67,15 @@ li.nav-item {
height: 1px;
background: #333;
}
.websocket {
padding: 15px;
}
.difficulty {
padding: 15px;
}
}
#restAPI .api-category {
margin: 30px 0;
}
.api-category h4 {
margin-bottom: 15px;
}

View File

@@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core';
import { Component, OnInit, Input } from '@angular/core';
import { Env, StateService } from 'src/app/services/state.service';
import { Observable, merge, of } from 'rxjs';
import { SeoService } from 'src/app/services/seo.service';
@@ -16,6 +16,7 @@ export class ApiDocsComponent implements OnInit {
env: Env;
code: any;
baseNetworkUrl = '';
@Input() restTabActivated: Boolean;
constructor(
private stateService: StateService,

View File

@@ -0,0 +1,31 @@
<div class="container-xl">
<div class="text-center">
<h2 i18n="documentation.title">Documentation</h2>
<ul ngbNav #nav="ngbNav" [(activeId)]="activeTab" class="nav-tabs">
<li [ngbNavItem]="0">
<a ngbNavLink routerLink="../rest">API - REST</a>
<ng-template ngbNavContent>
<app-api-docs [restTabActivated]="true"></app-api-docs>
</ng-template>
</li>
<li [ngbNavItem]="1" *ngIf="showWebSocketTab">
<a ngbNavLink routerLink="../websocket">API - WebSocket</a>
<ng-template ngbNavContent>
<app-api-docs [restTabActivated]="false"></app-api-docs>
</ng-template>
</li>
</ul>
<div id="main-tab-content" [ngbNavOutlet]="nav" class="mt-2"></div>
</div>
</div>

View File

@@ -0,0 +1,4 @@
#main-tab-content {
text-align: left;
padding-top: 10px;
}

View File

@@ -0,0 +1,27 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Env, StateService } from 'src/app/services/state.service';
@Component({
selector: 'app-docs',
templateUrl: './docs.component.html',
styleUrls: ['./docs.component.scss']
})
export class DocsComponent implements OnInit {
activeTab = 0;
env: Env;
showWebSocketTab = true;
constructor(
private route: ActivatedRoute,
private stateService: StateService,
) { }
ngOnInit(): void {
const url = this.route.snapshot.url;
this.activeTab = ( url[2].path === "rest" ) ? 0 : 1;
this.env = this.stateService.env;
this.showWebSocketTab = ( ! ( ( this.env.BASE_MODULE === "bisq" ) || ( this.stateService.network === "bisq" ) ) );
}
}

View File

@@ -44,7 +44,7 @@
<a class="nav-link" [routerLink]="['/assets']" (click)="collapse()"><fa-icon [icon]="['fas', 'database']" [fixedWidth]="true" i18n-title="master-page.assets" title="Assets"></fa-icon></a>
</li>
<li [hidden]="isMobile" class="nav-item mr-2" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/api' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'cogs']" [fixedWidth]="true" i18n-title="master-page.api" title="API"></fa-icon></a>
<a class="nav-link" [routerLink]="['/docs' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'book']" [fixedWidth]="true" i18n-title="master-page.docs" title="Docs"></fa-icon></a>
</li>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/about']" (click)="collapse()"><fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" i18n-title="master-page.about" title="About"></fa-icon></a>
@@ -59,4 +59,4 @@
<router-outlet></router-outlet>
<br>
<br>

View File

@@ -57,8 +57,8 @@
<li *ngIf="network.val === 'liquid'" class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/liquid/assets']" (click)="collapse()"><fa-icon [icon]="['fas', 'database']" [fixedWidth]="true" i18n-title="master-page.assets" title="Assets"></fa-icon></a>
</li>
<li [hidden]="isMobile" class="nav-item mr-2" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/api' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'cogs']" [fixedWidth]="true" i18n-title="master-page.api" title="API"></fa-icon></a>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/docs' | relativeUrl ]" (click)="collapse()"><fa-icon [icon]="['fas', 'book']" [fixedWidth]="true" i18n-title="documentation.title" title="Documentation"></fa-icon></a>
</li>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/about']" (click)="collapse()"><fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" i18n-title="master-page.about" title="About"></fa-icon></a>

View File

@@ -1,5 +1,5 @@
import { Component, Input, AfterViewInit, OnDestroy, ViewChild, ElementRef } from '@angular/core';
import * as QRCode from 'qrcode/build/qrcode.js';
import { Component, Input, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
import * as QRCode from 'qrcode';
import { StateService } from 'src/app/services/state.service';
@Component({
@@ -23,7 +23,7 @@ export class QrcodeComponent implements AfterViewInit {
if (!this.stateService.isBrowser) {
return;
}
const opts = {
const opts: QRCode.QRCodeRenderersOptions = {
errorCorrectionLevel: 'H',
margin: 0,
color: {
@@ -31,7 +31,6 @@ export class QrcodeComponent implements AfterViewInit {
light: '#fff'
},
width: this.size,
height: this.size,
};
if (!this.data) {

View File

@@ -17,7 +17,7 @@
.chart-holder {
position: relative;
height: 650px;
height: 655px;
width: 100%;
margin: 30px auto 0;
}

View File

@@ -29,9 +29,16 @@
</span>
</ng-template>
<ng-template #hasPrevout>
<a *ngIf="vin.is_pegin; else defaultPrevout" [routerLink]="['/tx/', vin.txid]" class="red">
<fa-icon [icon]="['fas', 'arrow-alt-circle-right']" [fixedWidth]="true"></fa-icon>
</a>
<ng-template [ngIf]="vin.is_pegin" [ngIfElse]="defaultPrevout">
<a *ngIf="stateService.env.BASE_MODULE === 'liquid'; else localPegInLink" [attr.href]="'https://mempool.space/tx/' + vin.txid" class="red">
<fa-icon [icon]="['fas', 'arrow-alt-circle-right']" [fixedWidth]="true"></fa-icon>
</a>
<ng-template #localPegInLink>
<a [routerLink]="['/tx/', vin.txid]" class="red">
<fa-icon [icon]="['fas', 'arrow-alt-circle-right']" [fixedWidth]="true"></fa-icon>
</a>
</ng-template>
</ng-template>
<ng-template #defaultPrevout>
<a [routerLink]="['/tx/' | relativeUrl, vin.txid + ':' + vin.vout]" class="red">
<fa-icon [icon]="['fas', 'arrow-alt-circle-right']" [fixedWidth]="true"></fa-icon>
@@ -138,10 +145,16 @@
<ng-template [ngIf]="vout.pegout" [ngIfElse]="defaultscriptpubkey_type">
<ng-container i18n="transactions-list.peg-out-to">Peg-out to <ng-container *ngTemplateOutlet="pegOutLink"></ng-container></ng-container>
<ng-template #pegOutLink>
<a [routerLink]="['/address/', vout.pegout.scriptpubkey_address]" title="{{ vout.pegout.scriptpubkey_address }}">
<a *ngIf="stateService.env.BASE_MODULE === 'liquid'; else localPegoutLink" [attr.href]="'https://mempool.space/address/' + vout.pegout.scriptpubkey_address" title="{{ vout.pegout.scriptpubkey_address }}">
<span class="d-block d-lg-none">{{ vout.pegout.scriptpubkey_address | shortenString : 16 }}</span>
<span class="d-none d-lg-block">{{ vout.pegout.scriptpubkey_address | shortenString : 35 }}</span>
</a>
<ng-template #localPegoutLink>
<a [routerLink]="['/address/', vout.pegout.scriptpubkey_address]" title="{{ vout.pegout.scriptpubkey_address }}">
<span class="d-block d-lg-none">{{ vout.pegout.scriptpubkey_address | shortenString : 16 }}</span>
<span class="d-none d-lg-block">{{ vout.pegout.scriptpubkey_address | shortenString : 35 }}</span>
</a>
</ng-template>
</ng-template>
</ng-template>
<ng-template #defaultscriptpubkey_type>

View File

@@ -31,7 +31,7 @@ export class TransactionsListComponent implements OnInit, OnChanges {
assetsMinimal: any;
constructor(
private stateService: StateService,
public stateService: StateService,
private electrsApiService: ElectrsApiService,
private assetsService: AssetsService,
private ref: ChangeDetectorRef,

View File

@@ -218,7 +218,7 @@
}
.mempool-graph {
height: 250px;
height: 255px;
}
.loadingGraphs{
height: 250px;

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="ar">
<body>
<trans-unit datatype="html" id="ngb.alert.close">
@@ -11,6 +11,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.carousel.slide-number">
<source> Slide <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> of <x equiv-text="; private _pa" id="INTERPOLATION_1"/> </source>
<target>الشريحة <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> من <x equiv-text="; private _pa" id="INTERPOLATION_1"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/carousel/carousel.ts</context>
<context context-type="linenumber">114,118</context>
@@ -147,6 +148,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.progressbar.value">
<source><x equiv-text="; } /** *" id="INTERPOLATION"/></source>
<target><x equiv-text="; } /** *" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/progressbar/progressbar.ts</context>
<context context-type="linenumber">32,38</context>
@@ -250,6 +252,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.AM">
<source><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></source>
<target><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">115,121</context>
@@ -257,6 +260,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.PM">
<source><x equiv-text="t() meridian: b" id="INTERPOLATION"/></source>
<target><x equiv-text="t() meridian: b" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">123,131</context>
@@ -490,6 +494,7 @@
</trans-unit>
<trans-unit datatype="html" id="70572fa5fe9d93f071fbb0f3556d86de39f9e4af">
<source>Block <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></source>
<target>الكتلة <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/> <x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context>
<context context-type="linenumber">4</context>
@@ -2077,6 +2082,7 @@
</trans-unit>
<trans-unit datatype="html" id="a351aa34e0a33f13f4d3eb06de0faee9e99f8d0a">
<source>General</source>
<target>عام</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">181,183</context>
@@ -2761,6 +2767,7 @@
</trans-unit>
<trans-unit datatype="html" id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">
<source>Next Block</source>
<target>الكتلة القادمة</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">7,8</context>
@@ -2773,6 +2780,7 @@
</trans-unit>
<trans-unit datatype="html" id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a">
<source>Previous Block</source>
<target>الكتلة السابقة</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">26,27</context>
@@ -3314,6 +3322,7 @@
</trans-unit>
<trans-unit datatype="html" id="f13cbfe8cfc955918e9f64466d2cafddb4760d9a">
<source>Broadcast Transaction</source>
<target>نشر التحويلات</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.html</context>
<context context-type="linenumber">2</context>
@@ -3922,6 +3931,7 @@
</trans-unit>
<trans-unit datatype="html" id="e7699861471f18a60e583512c45d84b388cfa120">
<source>Previous output type</source>
<target>نص النتائج السابقة.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
<context context-type="linenumber">109,110</context>
@@ -4036,6 +4046,7 @@
</trans-unit>
<trans-unit datatype="html" id="e6da407140d70e08b6fba731455f8e0d72f900b5">
<source>This transaction uses Taproot</source>
<target>هذه الحوالة استخدمت التابروت</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4044,6 +4055,7 @@
</trans-unit>
<trans-unit datatype="html" id="71ed5c65589f49a732b8e93a780200191b2b6596">
<source>Taproot</source>
<target>تابروت</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4094,6 +4106,7 @@
</trans-unit>
<trans-unit datatype="html" id="60601e02e7c1f6c4dbabd0ef0bb8946003db8dec">
<source>Only ~<x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> sat/vB was needed to get into this block</source>
<target>كان المطلوب <x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> سات/vB فقط لأضافة المعاملة لهذة الكتلة</target>
<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>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="ca">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="cs">
<body>
<trans-unit datatype="html" id="ngb.alert.close">
@@ -11,6 +11,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.carousel.slide-number">
<source> Slide <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> of <x equiv-text="; private _pa" id="INTERPOLATION_1"/> </source>
<target> Slide <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> z <x equiv-text="; private _pa" id="INTERPOLATION_1"/> </target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/carousel/carousel.ts</context>
<context context-type="linenumber">114,118</context>
@@ -147,6 +148,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.progressbar.value">
<source><x equiv-text="; } /** *" id="INTERPOLATION"/></source>
<target><x equiv-text="; } /** *" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/progressbar/progressbar.ts</context>
<context context-type="linenumber">32,38</context>
@@ -250,6 +252,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.AM">
<source><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></source>
<target><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">115,121</context>
@@ -257,6 +260,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.PM">
<source><x equiv-text="t() meridian: b" id="INTERPOLATION"/></source>
<target><x equiv-text="t() meridian: b" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">123,131</context>
@@ -490,6 +494,7 @@
</trans-unit>
<trans-unit datatype="html" id="70572fa5fe9d93f071fbb0f3556d86de39f9e4af">
<source>Block <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></source>
<target>Blok <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context>
<context context-type="linenumber">4</context>
@@ -1544,6 +1549,7 @@
</trans-unit>
<trans-unit datatype="html" id="04ffd930e7a2dc086c952a3a51b42c836bf21cc1">
<source>Unconfidential</source>
<target>Nedůvěrné</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/address/address.component.html</context>
<context context-type="linenumber">23,24</context>
@@ -2021,6 +2027,7 @@
</trans-unit>
<trans-unit datatype="html" id="842f6eb4d8f230db4bdf483a08d4d2a77e2d5869">
<source>Provides list of available currencies for a given base currency. </source>
<target>Poskytuje seznam dostupných měn pro danou základní měnu. </target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">51,53</context>
@@ -2028,6 +2035,7 @@
</trans-unit>
<trans-unit datatype="html" id="9c7dafb6f51e229d02a80844f6f99a01487e7cb2">
<source>Provides list of open offer prices for a single market.</source>
<target>Poskytuje seznam otevřených nabídkových cen pro jeden trh.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">68,70</context>
@@ -2035,6 +2043,7 @@
</trans-unit>
<trans-unit datatype="html" id="9e95c144fcb1afd7724dc5a3aad31125a59d9d71">
<source>Provides hi/low/open/close data for a given market. This can be used to generate a candlestick chart.</source>
<target>Poskytuje údaje o vysokých/nízkých/otevřených/zavřených hodnotách pro daný trh. To lze použít k vytvoření svíčkového grafu.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">85,87</context>
@@ -2042,6 +2051,7 @@
</trans-unit>
<trans-unit datatype="html" id="9c6e8e72b7a5f4e8a0e8ede12ab5ede4e0af2484">
<source>Provides list of available markets.</source>
<target>Poskytuje seznam dostupných trhů.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">102,104</context>
@@ -2049,6 +2059,7 @@
</trans-unit>
<trans-unit datatype="html" id="a02929fcc15f8b54d2f6d602722d2c7d1d790a2a">
<source>Provides list of open offer details for a single market.</source>
<target>Poskytuje seznam otevřených nabídek pro jeden trh.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">119,121</context>
@@ -2056,6 +2067,7 @@
</trans-unit>
<trans-unit datatype="html" id="342f8a4ceda8cda17584e920ad7459b41e86b069">
<source>Provides 24 hour price ticker for single market or all markets</source>
<target>Poskytuje 24hodinový cenový ticker pro jeden trh nebo všechny trhy</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">136,138</context>
@@ -2063,6 +2075,7 @@
</trans-unit>
<trans-unit datatype="html" id="dd194a2109134d62cb518ba0ccfc296701de5522">
<source>Provides list of completed trades for a single market.</source>
<target>Poskytuje seznam dokončených obchodů pro jeden trh.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">153,155</context>
@@ -2070,6 +2083,7 @@
</trans-unit>
<trans-unit datatype="html" id="b925fd1f3213560c0737f6016be18eaba7c28c9c">
<source>Provides periodic volume data in terms of base currency for one or all markets.</source>
<target>Poskytuje pravidelné údaje o objemu v základní měně pro jeden nebo všechny trhy.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">170,172</context>
@@ -2077,6 +2091,7 @@
</trans-unit>
<trans-unit datatype="html" id="a351aa34e0a33f13f4d3eb06de0faee9e99f8d0a">
<source>General</source>
<target>Obecné</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">181,183</context>
@@ -2761,6 +2776,7 @@
</trans-unit>
<trans-unit datatype="html" id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">
<source>Next Block</source>
<target>Další blok</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">7,8</context>
@@ -2773,6 +2789,7 @@
</trans-unit>
<trans-unit datatype="html" id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a">
<source>Previous Block</source>
<target>Předchozí blok</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">26,27</context>
@@ -3275,6 +3292,7 @@
</trans-unit>
<trans-unit datatype="html" id="2348971518300945764">
<source>Range</source>
<target>Rozsah</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-graph/mempool-graph.component.ts</context>
<context context-type="linenumber">263</context>
@@ -3282,6 +3300,7 @@
</trans-unit>
<trans-unit datatype="html" id="1033261550402895380">
<source>Sum</source>
<target>Součet</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-graph/mempool-graph.component.ts</context>
<context context-type="linenumber">265</context>
@@ -3314,6 +3333,7 @@
</trans-unit>
<trans-unit datatype="html" id="f13cbfe8cfc955918e9f64466d2cafddb4760d9a">
<source>Broadcast Transaction</source>
<target>Vysílat transakci</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.html</context>
<context context-type="linenumber">2</context>
@@ -3420,6 +3440,7 @@
</trans-unit>
<trans-unit datatype="html" id="5ca707824ab93066c7d9b44e1b8bf216725c2c22">
<source>Filter</source>
<target>Filtr</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
<context context-type="linenumber">40</context>
@@ -3774,6 +3795,7 @@
</trans-unit>
<trans-unit datatype="html" id="516a786e59a57efaf80e11370b4bade400f19445">
<source>Locktime</source>
<target>Locktime</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">236,238</context>
@@ -3922,6 +3944,7 @@
</trans-unit>
<trans-unit datatype="html" id="e7699861471f18a60e583512c45d84b388cfa120">
<source>Previous output type</source>
<target>Předchozí typ výstupu</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
<context context-type="linenumber">109,110</context>
@@ -4036,6 +4059,7 @@
</trans-unit>
<trans-unit datatype="html" id="e6da407140d70e08b6fba731455f8e0d72f900b5">
<source>This transaction uses Taproot</source>
<target>Tato transakce používá Taproot</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4044,6 +4068,7 @@
</trans-unit>
<trans-unit datatype="html" id="71ed5c65589f49a732b8e93a780200191b2b6596">
<source>Taproot</source>
<target>Taproot</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4094,6 +4119,7 @@
</trans-unit>
<trans-unit datatype="html" id="60601e02e7c1f6c4dbabd0ef0bb8946003db8dec">
<source>Only ~<x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> sat/vB was needed to get into this block</source>
<target>Pro vstup do tohoto bloku bylo potřeba pouze ~<x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> sat/vB</target>
<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>
@@ -4230,6 +4256,7 @@
</trans-unit>
<trans-unit datatype="html" id="eb7a000cd340b44291d790f7b56f7b926edc275b">
<source>L-BTC in circulation</source>
<target>L-BTC v oběhu</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">207,208</context>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="de">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="es">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="fa">
<body>
<trans-unit datatype="html" id="ngb.alert.close">
@@ -11,6 +11,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.carousel.slide-number">
<source> Slide <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> of <x equiv-text="; private _pa" id="INTERPOLATION_1"/> </source>
<target>صفحه <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> از <x equiv-text="; private _pa" id="INTERPOLATION_1"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/carousel/carousel.ts</context>
<context context-type="linenumber">114,118</context>
@@ -147,6 +148,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.progressbar.value">
<source><x equiv-text="; } /** *" id="INTERPOLATION"/></source>
<target><x equiv-text="; } /** *" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/progressbar/progressbar.ts</context>
<context context-type="linenumber">32,38</context>
@@ -250,6 +252,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.AM">
<source><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></source>
<target><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">115,121</context>
@@ -257,6 +260,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.PM">
<source><x equiv-text="t() meridian: b" id="INTERPOLATION"/></source>
<target><x equiv-text="t() meridian: b" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">123,131</context>
@@ -490,6 +494,7 @@
</trans-unit>
<trans-unit datatype="html" id="70572fa5fe9d93f071fbb0f3556d86de39f9e4af">
<source>Block <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></source>
<target>بلاک <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context>
<context context-type="linenumber">4</context>
@@ -1544,6 +1549,7 @@
</trans-unit>
<trans-unit datatype="html" id="04ffd930e7a2dc086c952a3a51b42c836bf21cc1">
<source>Unconfidential</source>
<target>غیرمحرمانه</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/address/address.component.html</context>
<context context-type="linenumber">23,24</context>
@@ -2021,6 +2027,7 @@
</trans-unit>
<trans-unit datatype="html" id="842f6eb4d8f230db4bdf483a08d4d2a77e2d5869">
<source>Provides list of available currencies for a given base currency. </source>
<target>لیست ارزهای در دسترس برای یک ارز پایه را ارائه می‌دهد.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">51,53</context>
@@ -2028,6 +2035,7 @@
</trans-unit>
<trans-unit datatype="html" id="9c7dafb6f51e229d02a80844f6f99a01487e7cb2">
<source>Provides list of open offer prices for a single market.</source>
<target>لیست قیمت‌های پیشنهادهای باز برای یک بازار را ارائه می‌دهد.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">68,70</context>
@@ -2035,6 +2043,7 @@
</trans-unit>
<trans-unit datatype="html" id="9e95c144fcb1afd7724dc5a3aad31125a59d9d71">
<source>Provides hi/low/open/close data for a given market. This can be used to generate a candlestick chart.</source>
<target>داده‌های بیشینه/کمینه/باز/بسته مربوط به یک بازار را ارائه می‌دهد. از آن می‌توان برای ساختن نمودار شمعی استفاده کرد.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">85,87</context>
@@ -2042,6 +2051,7 @@
</trans-unit>
<trans-unit datatype="html" id="9c6e8e72b7a5f4e8a0e8ede12ab5ede4e0af2484">
<source>Provides list of available markets.</source>
<target>لیست بازارهای در دسترس را ارائه می‌دهد</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">102,104</context>
@@ -2049,6 +2059,7 @@
</trans-unit>
<trans-unit datatype="html" id="a02929fcc15f8b54d2f6d602722d2c7d1d790a2a">
<source>Provides list of open offer details for a single market.</source>
<target>لیست جزئیات پیشنهادهای باز برای یک بازار را ارائه می‌دهد.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">119,121</context>
@@ -2056,6 +2067,7 @@
</trans-unit>
<trans-unit datatype="html" id="342f8a4ceda8cda17584e920ad7459b41e86b069">
<source>Provides 24 hour price ticker for single market or all markets</source>
<target>نشان‌گر قیمتی 24 ساعته برای یک یا همه بازارها را ارائه می‌دهد</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">136,138</context>
@@ -2063,6 +2075,7 @@
</trans-unit>
<trans-unit datatype="html" id="dd194a2109134d62cb518ba0ccfc296701de5522">
<source>Provides list of completed trades for a single market.</source>
<target>لیست معاملات کامل شده برای یک بازار را ارائه می‌دهد.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">153,155</context>
@@ -2070,6 +2083,7 @@
</trans-unit>
<trans-unit datatype="html" id="b925fd1f3213560c0737f6016be18eaba7c28c9c">
<source>Provides periodic volume data in terms of base currency for one or all markets.</source>
<target>داده‌های حجم دوره‌ای را بر اساس ارز پایه برای یک یا همه بازارها ارائه می‌دهد.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">170,172</context>
@@ -2077,6 +2091,7 @@
</trans-unit>
<trans-unit datatype="html" id="a351aa34e0a33f13f4d3eb06de0faee9e99f8d0a">
<source>General</source>
<target>عمومی</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">181,183</context>
@@ -2765,6 +2780,7 @@
</trans-unit>
<trans-unit datatype="html" id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">
<source>Next Block</source>
<target>بلاک بعدی</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">7,8</context>
@@ -2777,6 +2793,7 @@
</trans-unit>
<trans-unit datatype="html" id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a">
<source>Previous Block</source>
<target>بلاک قبلی</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">26,27</context>
@@ -3279,6 +3296,7 @@
</trans-unit>
<trans-unit datatype="html" id="2348971518300945764">
<source>Range</source>
<target>بازه</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-graph/mempool-graph.component.ts</context>
<context context-type="linenumber">263</context>
@@ -3286,6 +3304,7 @@
</trans-unit>
<trans-unit datatype="html" id="1033261550402895380">
<source>Sum</source>
<target>مجموع</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-graph/mempool-graph.component.ts</context>
<context context-type="linenumber">265</context>
@@ -3318,6 +3337,7 @@
</trans-unit>
<trans-unit datatype="html" id="f13cbfe8cfc955918e9f64466d2cafddb4760d9a">
<source>Broadcast Transaction</source>
<target>انتشار تراکنش</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.html</context>
<context context-type="linenumber">2</context>
@@ -3424,6 +3444,7 @@
</trans-unit>
<trans-unit datatype="html" id="5ca707824ab93066c7d9b44e1b8bf216725c2c22">
<source>Filter</source>
<target>پالایش</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
<context context-type="linenumber">40</context>
@@ -3778,6 +3799,7 @@
</trans-unit>
<trans-unit datatype="html" id="516a786e59a57efaf80e11370b4bade400f19445">
<source>Locktime</source>
<target>قفل‌زمانی</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">236,238</context>
@@ -3926,6 +3948,7 @@
</trans-unit>
<trans-unit datatype="html" id="e7699861471f18a60e583512c45d84b388cfa120">
<source>Previous output type</source>
<target>نوع خروجی قبلی</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
<context context-type="linenumber">109,110</context>
@@ -4040,6 +4063,7 @@
</trans-unit>
<trans-unit datatype="html" id="e6da407140d70e08b6fba731455f8e0d72f900b5">
<source>This transaction uses Taproot</source>
<target>این تراکنش از تپروت استقاده می‌کند</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4048,6 +4072,7 @@
</trans-unit>
<trans-unit datatype="html" id="71ed5c65589f49a732b8e93a780200191b2b6596">
<source>Taproot</source>
<target>تپروت</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4098,6 +4123,7 @@
</trans-unit>
<trans-unit datatype="html" id="60601e02e7c1f6c4dbabd0ef0bb8946003db8dec">
<source>Only ~<x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> sat/vB was needed to get into this block</source>
<target>تنها به حدود <x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> ساتوشی بر بایت مجازی نیاز بود تا در این بلاک قرار بگیرد</target>
<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>
@@ -4234,6 +4260,7 @@
</trans-unit>
<trans-unit datatype="html" id="eb7a000cd340b44291d790f7b56f7b926edc275b">
<source>L-BTC in circulation</source>
<target>مقدار L-BTC در گردش</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">207,208</context>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="fi">
<body>
<trans-unit datatype="html" id="ngb.alert.close">
@@ -11,6 +11,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.carousel.slide-number">
<source> Slide <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> of <x equiv-text="; private _pa" id="INTERPOLATION_1"/> </source>
<target> Slide <x equiv-text="OnHover$ = new" id="INTERPOLATION"/> of <x equiv-text="; private _pa" id="INTERPOLATION_1"/> </target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/carousel/carousel.ts</context>
<context context-type="linenumber">114,118</context>
@@ -147,6 +148,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.progressbar.value">
<source><x equiv-text="; } /** *" id="INTERPOLATION"/></source>
<target><x equiv-text="; } /** *" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/progressbar/progressbar.ts</context>
<context context-type="linenumber">32,38</context>
@@ -250,6 +252,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.AM">
<source><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></source>
<target><x equiv-text="NgbTime; pr" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">115,121</context>
@@ -257,6 +260,7 @@
</trans-unit>
<trans-unit datatype="html" id="ngb.timepicker.PM">
<source><x equiv-text="t() meridian: b" id="INTERPOLATION"/></source>
<target><x equiv-text="t() meridian: b" id="INTERPOLATION"/></target>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/@ng-bootstrap/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">123,131</context>
@@ -490,6 +494,7 @@
</trans-unit>
<trans-unit datatype="html" id="70572fa5fe9d93f071fbb0f3556d86de39f9e4af">
<source>Block <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></source>
<target>Lohko <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context>
<context context-type="linenumber">4</context>
@@ -1544,6 +1549,7 @@
</trans-unit>
<trans-unit datatype="html" id="04ffd930e7a2dc086c952a3a51b42c836bf21cc1">
<source>Unconfidential</source>
<target>Ei-luottamuksellinen</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/address/address.component.html</context>
<context context-type="linenumber">23,24</context>
@@ -2021,6 +2027,7 @@
</trans-unit>
<trans-unit datatype="html" id="842f6eb4d8f230db4bdf483a08d4d2a77e2d5869">
<source>Provides list of available currencies for a given base currency. </source>
<target>Luettelo tietylle perusvaluutalle käytettävissä olevista valuutoista. </target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">51,53</context>
@@ -2028,6 +2035,7 @@
</trans-unit>
<trans-unit datatype="html" id="9c7dafb6f51e229d02a80844f6f99a01487e7cb2">
<source>Provides list of open offer prices for a single market.</source>
<target>Tarjoaa luettelon yksittäisten markkinoiden avoimista tarjoushinnoista.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">68,70</context>
@@ -2035,6 +2043,7 @@
</trans-unit>
<trans-unit datatype="html" id="9e95c144fcb1afd7724dc5a3aad31125a59d9d71">
<source>Provides hi/low/open/close data for a given market. This can be used to generate a candlestick chart.</source>
<target>Tarjoaa hi/low/open/close -tiedot tietyille markkinoille. Tätä voidaan käyttää candlestick-kaavion luomiseen.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">85,87</context>
@@ -2042,6 +2051,7 @@
</trans-unit>
<trans-unit datatype="html" id="9c6e8e72b7a5f4e8a0e8ede12ab5ede4e0af2484">
<source>Provides list of available markets.</source>
<target>Tarjoaa luettelon saatavilla olevista markkinoista.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">102,104</context>
@@ -2049,6 +2059,7 @@
</trans-unit>
<trans-unit datatype="html" id="a02929fcc15f8b54d2f6d602722d2c7d1d790a2a">
<source>Provides list of open offer details for a single market.</source>
<target>Tarjoaa luettelon avoimen tarjouksen yksityiskohdista yksittäisillä markkinoilla.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">119,121</context>
@@ -2056,6 +2067,7 @@
</trans-unit>
<trans-unit datatype="html" id="342f8a4ceda8cda17584e920ad7459b41e86b069">
<source>Provides 24 hour price ticker for single market or all markets</source>
<target>Tarjoaa 24 tunnin hintatickerin yksittäisille markkinoille tai kaikille markkinoille.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">136,138</context>
@@ -2063,6 +2075,7 @@
</trans-unit>
<trans-unit datatype="html" id="dd194a2109134d62cb518ba0ccfc296701de5522">
<source>Provides list of completed trades for a single market.</source>
<target>Tarjoaa luettelon yksittäisen markkinan toteutuneista kaupoista.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">153,155</context>
@@ -2070,6 +2083,7 @@
</trans-unit>
<trans-unit datatype="html" id="b925fd1f3213560c0737f6016be18eaba7c28c9c">
<source>Provides periodic volume data in terms of base currency for one or all markets.</source>
<target>Tarjoaa säännöllisiä volyymitietoja perusvaluutan muodossa yhdeltä tai kaikilta markkinoilta.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">170,172</context>
@@ -2077,6 +2091,7 @@
</trans-unit>
<trans-unit datatype="html" id="a351aa34e0a33f13f4d3eb06de0faee9e99f8d0a">
<source>General</source>
<target>Yleinen</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">181,183</context>
@@ -2761,6 +2776,7 @@
</trans-unit>
<trans-unit datatype="html" id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">
<source>Next Block</source>
<target>Seuraava lohko</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">7,8</context>
@@ -2773,6 +2789,7 @@
</trans-unit>
<trans-unit datatype="html" id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a">
<source>Previous Block</source>
<target>Edellinen lohko</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">26,27</context>
@@ -3275,6 +3292,7 @@
</trans-unit>
<trans-unit datatype="html" id="2348971518300945764">
<source>Range</source>
<target>Alue</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-graph/mempool-graph.component.ts</context>
<context context-type="linenumber">263</context>
@@ -3282,6 +3300,7 @@
</trans-unit>
<trans-unit datatype="html" id="1033261550402895380">
<source>Sum</source>
<target>Summa</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-graph/mempool-graph.component.ts</context>
<context context-type="linenumber">265</context>
@@ -3420,6 +3439,7 @@
</trans-unit>
<trans-unit datatype="html" id="5ca707824ab93066c7d9b44e1b8bf216725c2c22">
<source>Filter</source>
<target>Suodatin</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
<context context-type="linenumber">40</context>
@@ -3774,6 +3794,7 @@
</trans-unit>
<trans-unit datatype="html" id="516a786e59a57efaf80e11370b4bade400f19445">
<source>Locktime</source>
<target>Lukitusaika</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">236,238</context>
@@ -3922,6 +3943,7 @@
</trans-unit>
<trans-unit datatype="html" id="e7699861471f18a60e583512c45d84b388cfa120">
<source>Previous output type</source>
<target>Edellinen tulostetyyppi</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
<context context-type="linenumber">109,110</context>
@@ -4036,6 +4058,7 @@
</trans-unit>
<trans-unit datatype="html" id="e6da407140d70e08b6fba731455f8e0d72f900b5">
<source>This transaction uses Taproot</source>
<target>Tässä siirtotapahtumassa käytetään Taproot:ia</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4044,6 +4067,7 @@
</trans-unit>
<trans-unit datatype="html" id="71ed5c65589f49a732b8e93a780200191b2b6596">
<source>Taproot</source>
<target>Taproot</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
<context context-type="linenumber">8</context>
@@ -4094,6 +4118,7 @@
</trans-unit>
<trans-unit datatype="html" id="60601e02e7c1f6c4dbabd0ef0bb8946003db8dec">
<source>Only ~<x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> sat/vB was needed to get into this block</source>
<target>Vain ~ <x equiv-text="{{ medianFeeNeeded | feeRounding }}" id="INTERPOLATION"/> sat/vB tarvittiin tähän lohkoon pääsemiseksi</target>
<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>
@@ -4230,6 +4255,7 @@
</trans-unit>
<trans-unit datatype="html" id="eb7a000cd340b44291d790f7b56f7b926edc275b">
<source>L-BTC in circulation</source>
<target>Käytössä olevat L-BTC</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">207,208</context>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="fr">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="he">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="hi">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="hr">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="hu">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="it">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="ja">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="ka">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="ko">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="mk">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="nb">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="nl">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="pl">
<body>
<trans-unit datatype="html" id="ngb.alert.close">
@@ -3364,7 +3364,7 @@
</trans-unit>
<trans-unit datatype="html" id="78fe1342aab9e91cb7cbd1becbaacf3b719546b3">
<source>TXID, block height, hash or address</source>
<target>ID transakcji, wysokość bloku, hash lub adres</target>
<target>ID transakcji, numer bloku, hash lub adres</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context>
<context context-type="linenumber">4</context>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="pt">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="ro">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="ru">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="sl">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="sv">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="th">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="tr">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="uk">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="vi">
<body>
<trans-unit datatype="html" id="ngb.alert.close">

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" ?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<?xml version="1.0" ?><xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="ng2.template" source-language="en-US" target-language="zh">
<body>
<trans-unit datatype="html" id="ngb.alert.close">
@@ -490,6 +490,7 @@
</trans-unit>
<trans-unit datatype="html" id="70572fa5fe9d93f071fbb0f3556d86de39f9e4af">
<source>Block <x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></source>
<target>区块<x ctype="x-ng_container" equiv-text="&lt;ng-container *ngTemplateOutlet=&quot;blockTemplateContent&quot;&gt;" id="START_TAG_NG_CONTAINER"/><x ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;" id="CLOSE_TAG_NG_CONTAINER"/></target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context>
<context context-type="linenumber">4</context>
@@ -1544,6 +1545,7 @@
</trans-unit>
<trans-unit datatype="html" id="04ffd930e7a2dc086c952a3a51b42c836bf21cc1">
<source>Unconfidential</source>
<target>不保密</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/address/address.component.html</context>
<context context-type="linenumber">23,24</context>
@@ -2077,6 +2079,7 @@
</trans-unit>
<trans-unit datatype="html" id="a351aa34e0a33f13f4d3eb06de0faee9e99f8d0a">
<source>General</source>
<target>通用</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/api-docs/api-docs.component.html</context>
<context context-type="linenumber">181,183</context>
@@ -2761,6 +2764,7 @@
</trans-unit>
<trans-unit datatype="html" id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">
<source>Next Block</source>
<target>下一个区块</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">7,8</context>
@@ -2773,6 +2777,7 @@
</trans-unit>
<trans-unit datatype="html" id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a">
<source>Previous Block</source>
<target>上一个区块</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">26,27</context>
@@ -3314,6 +3319,7 @@
</trans-unit>
<trans-unit datatype="html" id="f13cbfe8cfc955918e9f64466d2cafddb4760d9a">
<source>Broadcast Transaction</source>
<target>广播交易</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.html</context>
<context context-type="linenumber">2</context>
@@ -3420,6 +3426,7 @@
</trans-unit>
<trans-unit datatype="html" id="5ca707824ab93066c7d9b44e1b8bf216725c2c22">
<source>Filter</source>
<target>过滤</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
<context context-type="linenumber">40</context>

View File

@@ -22,16 +22,6 @@ import '@angular/localize/init';
* BROWSER POLYFILLS
*/
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js'; // Run `npm install --save classlist.js`.
/**
* Web Animations `@angular/platform-browser/animations`
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags

View File

@@ -12,7 +12,9 @@ declare const require: any;
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: false }
}
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);