2020-03-05 16:13:46 +07:00
< div class = "container-xl" >
2020-02-16 22:15:07 +07:00
2020-02-19 23:50:23 +07:00
< div class = "title-block" >
2020-06-08 18:55:53 +07:00
< div * ngIf = "rbfTransaction" class = "alert alert-mempool" role = "alert" >
2021-05-18 11:56:42 -03:00
< span i18n = "transaction.rbf.replacement|RBF replacement" > This transaction has been replaced by:</ span >
2022-11-07 20:05:33 -06:00
< a class = "alert-link" [ routerLink ]="['/ tx /' | relativeUrl , rbfTransaction . txid ]" >
2020-06-08 18:55:53 +07:00
< span class = "d-inline d-lg-none" > {{ rbfTransaction.txid | shortenString : 24 }}</ span >
< span class = "d-none d-lg-inline" > {{ rbfTransaction.txid }}</ span >
</ a >
</ div >
2021-09-28 21:09:36 -03:00
2022-03-08 14:49:25 +01:00
< ng-container * ngIf = "!rbfTransaction || rbfTransaction?.size" >
2021-10-11 22:33:20 -03:00
< h1 i18n = "shared.transaction" > Transaction</ h1 >
2020-03-10 14:46:12 +07:00
2021-10-11 22:33:20 -03:00
< span class = "tx-link float-left" >
2021-07-06 13:56:32 -03:00
< a [ routerLink ]="['/ tx /' | relativeUrl , txId ]" >
< span class = "d-inline d-lg-none" > {{ txId | shortenString : 24 }}</ span >
< span class = "d-none d-lg-inline" > {{ txId }}</ span >
</ a >
< app-clipboard [ text ]=" txId " ></ app-clipboard >
2021-10-11 22:33:20 -03:00
</ span >
2021-09-28 21:09:36 -03:00
< div class = "container-buttons" >
2021-07-06 13:56:32 -03:00
< ng-template [ ngIf ]=" tx ?. status ?. confirmed " >
< button * ngIf = "latestBlock" type = "button" class = "btn btn-sm btn-success" >
< ng-container * ngTemplateOutlet = "latestBlock.height - tx.status.block_height + 1 == 1 ? confirmationSingular : confirmationPlural; context: {$implicit: latestBlock.height - tx.status.block_height + 1}" ></ ng-container >
< ng-template # confirmationSingular let-i i18n = "shared.confirmation-count.singular|Transaction singular confirmation count" > {{ i }} confirmation</ ng-template >
< ng-template # confirmationPlural let-i i18n = "shared.confirmation-count.plural|Transaction plural confirmation count" > {{ i }} confirmations</ ng-template >
</ button >
</ ng-template >
< ng-template [ ngIf ]=" tx && ! tx ?. status . confirmed " >
< button type = "button" class = "btn btn-sm btn-danger" i18n = "transaction.unconfirmed|Transaction unconfirmed state" > Unconfirmed</ button >
</ ng-template >
</ div >
2021-10-11 22:33:20 -03:00
</ ng-container >
2021-05-18 11:56:42 -03:00
</ div >
2020-03-25 02:55:26 +07:00
< div class = "clearfix" ></ div >
2020-02-16 22:15:07 +07:00
< ng-template [ ngIf ]="! isLoadingTx && ! error " >
< ng-template [ ngIf ]=" tx . status . confirmed " [ ngIfElse ]=" unconfirmedTemplate " >
2021-09-28 21:09:36 -03:00
2020-02-16 22:15:07 +07:00
< div class = "box" >
2020-03-23 04:07:31 +07:00
< div class = "row" >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
2020-08-09 10:44:01 +07:00
< tr >
2022-05-10 17:05:07 +04:00
< td i18n = "block.timestamp" > Timestamp</ td >
2020-08-09 10:44:01 +07:00
< td >
2021-09-15 10:56:30 +02:00
‎ {{ tx.status.block_time * 1000 | date:'yyyy-MM-dd HH:mm' }}
2020-08-09 10:44:01 +07:00
< div class = "lg-inline" >
2021-05-18 11:20:17 -03:00
< i class = "symbol" > (< app-time-since [ time ]=" tx . status . block_time " [ fastRender ]=" true " ></ app-time-since > )</ i >
2020-08-09 10:44:01 +07:00
</ div >
</ td >
</ tr >
2020-09-29 18:27:44 +07:00
< tr * ngIf = "latestBlock && tx.status.block_height <= latestBlock.height - 8" >
2020-12-02 04:19:33 +09:00
< td class = "td-width" i18n = "transaction.included-in-block|Transaction included in block" > Included in block</ td >
2020-03-23 04:07:31 +07:00
< td >
2020-05-09 20:37:50 +07:00
< a [ routerLink ]="['/ block /' | relativeUrl , tx . status . block_hash ]" [ state ]="{ data: { blockHeight: tx . status . block_height } }" > {{ tx.status.block_height }}</ a >
2020-03-23 04:07:31 +07:00
</ td >
</ tr >
< ng-template [ ngIf ]=" transactionTime > 0">
< tr >
2020-12-02 04:19:33 +09:00
< td i18n = "transaction.confirmed|Transaction Confirmed state" > Confirmed</ td >
2021-07-17 08:58:16 -03:00
< td >< app-time-span [ time ]=" tx . status . block_time - transactionTime " [ fastRender ]=" true " ></ app-time-span ></ td >
2020-03-23 04:07:31 +07:00
</ tr >
</ ng-template >
2021-12-27 22:54:45 +04:00
< tr * ngIf = "network !== 'liquid' && network !== 'liquidtestnet'" >
2020-12-02 04:19:33 +09:00
< td class = "td-width" i18n = "transaction.features|Transaction features" > Features</ td >
2020-07-19 14:54:42 +07:00
< td >
< app-tx-features [ tx ]=" tx " ></ app-tx-features >
</ td >
</ tr >
2020-03-23 04:07:31 +07:00
</ tbody >
</ table >
</ div >
< div class = "col-sm" >
2021-03-18 23:47:40 +07:00
< ng-container * ngTemplateOutlet = "feeTable" ></ ng-container >
2020-03-23 04:07:31 +07:00
</ div >
</ div >
2020-02-16 22:15:07 +07:00
</ div >
</ ng-template >
< ng-template # unconfirmedTemplate >
< div class = "box" >
2020-03-23 04:07:31 +07:00
< div class = "row" >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< ng-template [ ngIf ]=" transactionTime !== 0 " >
< tr * ngIf = "transactionTime === -1; else firstSeenTmpl" >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
< ng-template # firstSeenTmpl >
< tr >
2020-12-02 04:19:33 +09:00
< td i18n = "transaction.first-seen|Transaction first seen" > First seen</ td >
< td >< i >< app-time-since [ time ]=" transactionTime " [ fastRender ]=" true " ></ app-time-since ></ i ></ td >
2020-03-23 04:07:31 +07:00
</ tr >
</ ng-template >
</ ng-template >
2020-02-28 01:09:07 +07:00
< tr >
2020-12-02 04:19:33 +09:00
< td class = "td-width" i18n = "transaction.eta|Transaction ETA" > ETA</ td >
2020-03-23 04:07:31 +07:00
< td >
< ng-template [ ngIf ]=" txInBlockIndex = == undefined " [ ngIfElse ]=" estimationTmpl " >
< span class = "skeleton-loader" ></ span >
</ ng-template >
< ng-template # estimationTmpl >
2020-05-24 00:25:04 +07:00
< ng-template [ ngIf ]=" txInBlockIndex > = 7" [ngIfElse]="belowBlockLimit">
2020-12-02 04:19:33 +09:00
< span i18n = "transaction.eta.in-several-hours|Transaction ETA in several hours or more" > In several hours (or more)</ span >
2020-03-25 21:29:40 +07:00
</ ng-template >
2020-05-24 00:25:04 +07:00
< ng-template # belowBlockLimit >
2021-12-27 22:54:45 +04:00
< ng-template [ ngIf ]=" network = == ' liquid ' || network = == ' liquidtestnet '" [ ngIfElse ]=" timeEstimateDefault " >
2021-07-24 19:26:29 -03:00
< app-time-until [ time ]="( 60 * 1000 * txInBlockIndex ) + now " [ fastRender ]=" false " [ fixedRender ]=" true " ></ app-time-until >
2020-05-24 00:25:04 +07:00
</ ng-template >
< ng-template # timeEstimateDefault >
2021-07-31 19:25:24 -03:00
< app-time-until * ngIf = "(timeAvg$ | async) as timeAvg;" [ time ]="( timeAvg * txInBlockIndex ) + now + timeAvg " [ fastRender ]=" false " [ fixedRender ]=" true " [ forceFloorOnTimeIntervals ]="[' hour ']" ></ app-time-until >
2020-05-24 00:25:04 +07:00
</ ng-template >
2020-03-25 21:29:40 +07:00
</ ng-template >
2020-03-23 04:07:31 +07:00
</ ng-template >
</ td >
2020-02-28 01:09:07 +07:00
</ tr >
2021-12-27 22:54:45 +04:00
< tr * ngIf = "network !== 'liquid' && network !== 'liquidtestnet'" >
2020-12-02 04:19:33 +09:00
< td class = "td-width" i18n = "transaction.features|Transaction Features" > Features</ td >
2020-07-19 14:54:42 +07:00
< td >
< app-tx-features [ tx ]=" tx " ></ app-tx-features >
</ td >
</ tr >
2020-03-23 04:07:31 +07:00
</ tbody >
</ table >
</ div >
< div class = "col-sm" >
2021-03-18 23:47:40 +07:00
< ng-container * ngTemplateOutlet = "feeTable" ></ ng-container >
2020-03-23 04:07:31 +07:00
</ div >
</ div >
2020-02-16 22:15:07 +07:00
</ div >
</ ng-template >
2021-03-22 18:04:50 +07:00
< ng-template [ ngIf ]=" showCpfpDetails " >
< br >
< h2 class = "text-left" > CPFP < fa-icon [ icon ]="[' fas ', ' info-circle ']" [ fixedWidth ]=" true " size = "xs" ></ fa-icon ></ h2 >
< div class = "box" >
< table class = "table table-borderless table-striped" >
< thead >
< tr >
< th i18n = "transactions-list.vout.scriptpubkey-type" > Type</ th >
< th i18n = "dashboard.latest-transactions.txid" > TXID</ th >
< th class = "d-none d-lg-table-cell" i18n = "transaction.vsize|Transaction Virtual Size" > Virtual size</ th >
< th i18n = "transaction.fee-rate|Transaction fee rate" > Fee rate</ th >
< th class = "d-none d-lg-table-cell" ></ th >
</ tr >
</ thead >
< tbody >
2022-11-27 13:46:54 +09:00
< ng-template [ ngIf ]=" cpfpInfo ?. descendants ?. length " >
< tr * ngFor = "let cpfpTx of cpfpInfo.descendants" >
< td >< span class = "badge badge-primary" i18n = "transaction.descendant|Descendant" > Descendant</ span ></ td >
< td >< a [ routerLink ]="['/ tx ' | relativeUrl , cpfpTx . txid ]" >
< span class = "d-inline d-lg-none" > {{ cpfpTx.txid | shortenString : 8 }}</ span >
< span class = "d-none d-lg-inline" > {{ cpfpTx.txid }}</ span >
</ a >
</ td >
< td class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpTx . weight / 4 | vbytes: 2 " ></ td >
< td > {{ cpfpTx.fee / (cpfpTx.weight / 4) | feeRounding }} < span class = "symbol" i18n = "shared.sat-vbyte|sat/vB" > sat/vB</ span ></ td >
< td class = "d-none d-lg-table-cell" >< fa-icon * ngIf = "roundToOneDecimal(cpfpTx) > roundToOneDecimal(tx)" class = "arrow-green" [ icon ]="[' fas ', ' angle-double-up ']" [ fixedWidth ]=" true " ></ fa-icon ></ td >
</ tr >
</ ng-template >
< ng-template [ ngIf ]=" cpfpInfo ?. bestDescendant " >
2021-03-22 18:04:50 +07:00
< tr >
< td >< span class = "badge badge-success" i18n = "transaction.descendant|Descendant" > Descendant</ span ></ td >
< td >
< a [ routerLink ]="['/ tx ' | relativeUrl , cpfpInfo . bestDescendant . txid ]" >
2021-05-18 11:20:17 -03:00
< span class = "d-inline d-lg-none" > {{ cpfpInfo.bestDescendant.txid | shortenString : 8 }}</ span >
2021-03-22 18:04:50 +07:00
< span class = "d-none d-lg-inline" > {{ cpfpInfo.bestDescendant.txid }}</ span >
</ a >
</ td >
2021-05-18 11:20:17 -03:00
< td class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpInfo . bestDescendant . weight / 4 | vbytes: 2 " ></ td >
2021-08-18 18:57:35 +05:30
< td > {{ cpfpInfo.bestDescendant.fee / (cpfpInfo.bestDescendant.weight / 4) | feeRounding }} < span class = "symbol" i18n = "shared.sat-vbyte|sat/vB" > sat/vB</ span ></ td >
2021-03-22 18:04:50 +07:00
< td class = "d-none d-lg-table-cell" >< fa-icon class = "arrow-green" [ icon ]="[' fas ', ' angle-double-up ']" [ fixedWidth ]=" true " ></ fa-icon ></ td >
</ tr >
</ ng-template >
2022-11-27 13:46:54 +09:00
< ng-template [ ngIf ]=" cpfpInfo ?. ancestors ?. length " >
2021-03-22 18:04:50 +07:00
< tr * ngFor = "let cpfpTx of cpfpInfo.ancestors" >
< td >< span class = "badge badge-primary" i18n = "transaction.ancestor|Transaction Ancestor" > Ancestor</ span ></ td >
< td >< a [ routerLink ]="['/ tx ' | relativeUrl , cpfpTx . txid ]" >
2021-05-18 11:20:17 -03:00
< span class = "d-inline d-lg-none" > {{ cpfpTx.txid | shortenString : 8 }}</ span >
2021-03-22 18:04:50 +07:00
< span class = "d-none d-lg-inline" > {{ cpfpTx.txid }}</ span >
</ a >
</ td >
2021-05-18 11:20:17 -03:00
< td class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpTx . weight / 4 | vbytes: 2 " ></ td >
2021-08-18 18:57:35 +05:30
< td > {{ cpfpTx.fee / (cpfpTx.weight / 4) | feeRounding }} < span class = "symbol" i18n = "shared.sat-vbyte|sat/vB" > sat/vB</ span ></ td >
2021-04-10 23:23:05 +04:00
< td class = "d-none d-lg-table-cell" >< fa-icon * ngIf = "roundToOneDecimal(cpfpTx) < roundToOneDecimal(tx)" class = "arrow-red" [ icon ]="[' fas ', ' angle-double-down ']" [ fixedWidth ]=" true " ></ fa-icon ></ td >
2021-03-22 18:04:50 +07:00
</ tr >
</ ng-template >
</ tbody >
</ table >
</ div >
</ ng-template >
2020-04-13 01:26:53 +07:00
< br >
2022-10-11 17:01:23 +00:00
< ng-container * ngIf = "flowEnabled; else flowPlaceholder" >
2022-09-29 15:41:14 +00:00
< div class = "title float-left" >
< h2 id = "flow" i18n = "transaction.flow|Transaction flow" > Flow</ h2 >
</ div >
2022-09-16 20:50:12 +00:00
2022-10-04 21:08:54 +00:00
< button type = "button" class = "btn btn-outline-info flow-toggle btn-sm float-right" ( click )=" toggleGraph ()" i18n = "hide-diagram" > Hide diagram</ button >
2022-09-29 15:41:14 +00:00
< div class = "clearfix" ></ div >
< div class = "box" >
< div class = "graph-container" # graphContainer >
< tx-bowtie-graph
[ tx ]=" tx "
[ width ]=" graphWidth "
2022-11-22 16:30:04 +09:00
[ height ]=" graphHeight "
2022-09-29 15:41:14 +00:00
[ lineLimit ]=" inOutLimit "
[ maxStrands ]=" graphExpanded ? maxInOut : 24 "
[ network ]=" network "
2022-10-04 21:00:46 +00:00
[ tooltip ]=" true "
2022-11-21 12:28:26 +09:00
[ connectors ]=" true "
2022-10-04 23:30:14 +00:00
[ inputIndex ]=" inputIndex " [ outputIndex ]=" outputIndex "
2022-10-04 21:00:46 +00:00
>
2022-09-29 15:41:14 +00:00
</ tx-bowtie-graph >
</ div >
< div class = "toggle-wrapper" * ngIf = "maxInOut > 24" >
< button class = "btn btn-sm btn-primary graph-toggle" ( click )=" expandGraph ();" * ngIf = "!graphExpanded; else collapseBtn" >< span i18n = "show-more" > Show more</ span ></ button >
< ng-template # collapseBtn >
< button class = "btn btn-sm btn-primary graph-toggle" ( click )=" collapseGraph ();" >< span i18n = "show-less" > Show less</ span ></ button >
</ ng-template >
</ div >
2022-09-16 20:50:12 +00:00
</ div >
2022-09-29 15:41:14 +00:00
< br >
</ ng-container >
< ng-template # flowPlaceholder >
< div class = "box hidden" >
< div class = "graph-container" # graphContainer >
</ div >
2022-09-16 20:50:12 +00:00
</ div >
2022-09-29 15:41:14 +00:00
</ ng-template >
2022-09-16 20:50:12 +00:00
2022-09-29 15:41:14 +00:00
< div class = "subtitle-block" >
< div class = "title" >
< h2 i18n = "transaction.inputs-and-outputs|Transaction inputs and outputs" > Inputs & Outputs</ h2 >
</ div >
2022-09-16 20:50:12 +00:00
2022-09-29 15:41:14 +00:00
< div class = "title-buttons" >
2022-10-11 17:01:23 +00:00
< button * ngIf = "!flowEnabled" type = "button" class = "btn btn-outline-info flow-toggle btn-sm" ( click )=" toggleGraph ()" i18n = "show-diagram" > Show diagram</ button >
2022-09-29 15:41:14 +00:00
< button type = "button" class = "btn btn-outline-info btn-sm" ( click )=" txList . toggleDetails ()" i18n = "transaction.details|Transaction Details" > Details</ button >
</ div >
2021-10-26 21:47:17 -03:00
</ div >
2020-02-16 22:15:07 +07:00
2020-11-15 17:58:38 +07:00
2022-10-04 21:00:46 +00:00
< app-transactions-list # txList [ transactions ]="[ tx ]" [ errorUnblinded ]=" errorUnblinded " [ inputIndex ]=" inputIndex " [ outputIndex ]=" outputIndex " [ transactionPage ]=" true " ></ app-transactions-list >
2020-02-16 22:15:07 +07:00
2022-04-05 20:37:18 +02:00
< div class = "title text-left" >
2021-10-26 21:47:17 -03:00
< h2 i18n = "transaction.details" > Details</ h2 >
</ div >
2020-02-16 22:15:07 +07:00
< div class = "box" >
2021-11-15 12:00:41 +04:00
< div class = "row" >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
2022-05-10 17:05:07 +04:00
< td i18n = "block.size" > Size</ td >
2021-11-15 12:00:41 +04:00
< td [ innerHTML ]="'& lrm ;' + ( tx . size | bytes: 2 )" ></ td >
</ tr >
< tr >
< td i18n = "transaction.vsize|Transaction Virtual Size" > Virtual size</ td >
< td [ innerHTML ]="'& lrm ;' + ( tx . weight / 4 | vbytes: 2 )" ></ td >
</ tr >
< tr >
2022-05-10 17:05:07 +04:00
< td i18n = "block.weight" > Weight</ td >
2021-11-15 12:00:41 +04:00
< td [ innerHTML ]="'& lrm ;' + ( tx . weight | wuBytes: 2 )" ></ td >
</ tr >
</ tbody >
</ table >
</ div >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td i18n = "transaction.version" > Version</ td >
< td [ innerHTML ]="'& lrm ;' + ( tx . version | number )" ></ td >
</ tr >
< tr >
< td i18n = "transaction.locktime" > Locktime</ td >
< td [ innerHTML ]="'& lrm ;' + ( tx . locktime | number )" ></ td >
</ tr >
< tr >
2022-05-10 17:05:07 +04:00
< td i18n = "transaction.hex" > Transaction hex</ td >
2021-11-15 12:00:41 +04:00
< td >< a target = "_blank" href = "{{ network === '' ? '' : '/' + network }}/api/tx/{{ txId }}/hex" >< fa-icon [ icon ]="[' fas ', ' external-link-alt ']" [ fixedWidth ]=" true " ></ fa-icon ></ a ></ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
2020-03-11 16:06:11 +07:00
</ div >
2020-02-16 22:15:07 +07:00
</ ng-template >
< ng-template [ ngIf ]=" isLoadingTx && ! error " >
2020-03-11 16:06:11 +07:00
< div class = "box" >
2020-03-23 04:07:31 +07:00
< div class = "row" >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td class = "td-width" >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td class = "td-width" >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
2020-03-11 16:06:11 +07:00
</ div >
< br >
2022-10-11 17:01:23 +00:00
< ng-container * ngIf = "flowEnabled" >
2022-09-29 15:41:14 +00:00
< div class = "title" >
< h2 i18n = "transaction.flow|Transaction flow" > Flow</ h2 >
</ div >
2022-09-16 20:50:12 +00:00
2022-09-29 15:41:14 +00:00
< div class = "box" >
< div class = "graph-container" # graphContainer style = "visibility: hidden;" ></ div >
< div class = "row" >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
2022-09-16 20:50:12 +00:00
</ div >
</ div >
2022-09-29 15:41:14 +00:00
< br >
</ ng-container >
2022-09-16 20:50:12 +00:00
2021-11-27 13:06:57 +04:00
< div class = "title" >
< h2 i18n = "transaction.inputs-and-outputs|Transaction inputs and outputs" > Inputs & Outputs</ h2 >
</ div >
2020-03-11 16:06:11 +07:00
< div class = "box" >
< div class = "row" >
2021-11-27 13:06:57 +04:00
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
2020-03-11 16:06:11 +07:00
</ div >
</ div >
< br >
2021-11-27 13:06:57 +04:00
< div class = "title" >
< h2 i18n = "transaction.details" > Details</ h2 >
</ div >
2020-02-16 22:15:07 +07:00
< div class = "box" >
2021-11-15 12:00:41 +04:00
< div class = "row" >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
< div class = "col-sm" >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
< tr >
< td >< span class = "skeleton-loader" ></ span ></ td >
< td >< span class = "skeleton-loader" ></ span ></ td >
</ tr >
</ tbody >
</ table >
</ div >
</ div >
2020-02-16 22:15:07 +07:00
</ div >
</ ng-template >
< ng-template [ ngIf ]=" error " >
2020-04-13 01:26:53 +07:00
2020-07-16 16:18:35 +07:00
< div class = "text-center" * ngIf = "waitingForTransaction; else errorTemplate" >
2020-12-02 04:19:33 +09:00
< h3 i18n = "transaction.error.transaction-not-found" > Transaction not found.</ h3 >
< h5 i18n = "transaction.error.waiting-for-it-to-appear" > Waiting for it to appear in the mempool...</ h5 >
2020-04-13 01:26:53 +07:00
< div class = "spinner-border text-light mt-2" ></ div >
2020-02-16 22:15:07 +07:00
</ div >
2021-09-28 21:09:36 -03:00
2020-04-13 01:26:53 +07:00
< ng-template # errorTemplate >
< div class = "text-center" >
< h3 > {{ error.error }}</ h3 >
</ div >
</ ng-template >
2020-02-16 22:15:07 +07:00
</ ng-template >
2020-03-05 16:13:46 +07:00
</ div >
2020-02-16 22:15:07 +07:00
< br >
2020-12-04 21:29:31 +07:00
2021-03-18 23:47:40 +07:00
< ng-template # feeTable >
< table class = "table table-borderless table-striped" >
< tbody >
< tr >
< td class = "td-width" i18n = "transaction.fee|Transaction fee" > Fee</ td >
2022-05-10 17:05:07 +04:00
< td > {{ tx.fee | number }} < span class = "symbol" i18n = "shared.sat|sat" > sat</ span > < span class = "fiat" >< app-fiat [ value ]=" tx . fee " ></ app-fiat ></ span ></ td >
2021-03-18 23:47:40 +07:00
</ tr >
< tr >
2021-03-22 18:04:50 +07:00
< td i18n = "transaction.fee-rate|Transaction fee rate" > Fee rate</ td >
2021-03-18 23:47:40 +07:00
< td >
2021-08-18 18:57:35 +05:30
{{ tx.feePerVsize | feeRounding }} < span class = "symbol" i18n = "shared.sat-vbyte|sat/vB" > sat/vB</ span >
2021-03-18 23:47:40 +07:00
< ng-template [ ngIf ]=" tx . status . confirmed " >
2022-11-27 13:46:54 +09:00
< app-tx-fee-rating * ngIf = "tx.fee && ((cpfpInfo && !cpfpInfo?.descendants?.length && !cpfpInfo?.bestDescendant && !cpfpInfo?.ancestors?.length) || !cpfpInfo)" [ tx ]=" tx " ></ app-tx-fee-rating >
2021-03-18 23:47:40 +07:00
</ ng-template >
</ td >
</ tr >
2022-11-27 13:46:54 +09:00
< tr * ngIf = "cpfpInfo && (cpfpInfo?.bestDescendant || cpfpInfo?.descendants?.length || cpfpInfo?.ancestors?.length)" >
2021-03-22 18:04:50 +07:00
< td i18n = "transaction.effective-fee-rate|Effective transaction fee rate" > Effective fee rate</ td >
2021-03-18 23:47:40 +07:00
< td >
2021-05-18 11:20:17 -03:00
< div class = "effective-fee-container" >
2021-08-18 18:57:35 +05:30
{{ tx.effectiveFeePerVsize | feeRounding }} < span class = "symbol" i18n = "shared.sat-vbyte|sat/vB" > sat/vB</ span >
2021-05-18 11:20:17 -03:00
< ng-template [ ngIf ]=" tx . status . confirmed " >
< app-tx-fee-rating class = "d-none d-lg-inline ml-2" * ngIf = "tx.fee" [ tx ]=" tx " ></ app-tx-fee-rating >
</ ng-template >
</ div >
< button type = "button" class = "btn btn-outline-info btn-sm btn-small-height float-right" ( click )=" showCpfpDetails = !showCpfpDetails" > CPFP < fa-icon [ icon ]="[' fas ', ' info-circle ']" [ fixedWidth ]=" true " ></ fa-icon ></ button >
2021-03-18 23:47:40 +07:00
</ td >
</ tr >
</ tbody >
</ table >
2021-03-22 18:04:50 +07:00
</ ng-template >