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" >
2023-04-05 07:11:13 +09:00
< div * ngIf = "rbfTransaction && !tx?.status?.confirmed" 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 >
2023-01-16 16:47:05 -06:00
< app-truncate [ text ]=" rbfTransaction . txid " [ lastChars ]=" 12 " [ link ]="['/ tx /' | relativeUrl , rbfTransaction . txid ]" ></ app-truncate >
2020-06-08 18:55:53 +07:00
</ div >
2021-09-28 21:09:36 -03:00
2022-12-09 10:32:58 -06:00
< ng-container * ngIf = "!rbfTransaction || rbfTransaction?.size || tx" >
2021-10-11 22:33:20 -03:00
< h1 i18n = "shared.transaction" > Transaction</ h1 >
2020-03-10 14:46:12 +07:00
2023-01-05 11:01:46 -06:00
< span class = "tx-link" >
2023-01-16 16:47:05 -06:00
< span class = "txid" >
< app-truncate [ text ]=" txId " [ lastChars ]=" 12 " [ link ]="['/ tx /' | relativeUrl , txId ]" >
2023-01-05 11:01:46 -06:00
< app-clipboard [ text ]=" txId " ></ app-clipboard >
</ app-truncate >
2023-01-16 16:47:05 -06:00
</ span >
2021-10-11 22:33:20 -03:00
</ span >
2021-09-28 21:09:36 -03:00
< div class = "container-buttons" >
2023-06-16 13:47:09 -04:00
< app-confirmations
[ chainTip ]=" latestBlock ?. height "
[ height ]=" tx ?. status ?. block_height "
[ replaced ]=" replaced "
[ removed ]=" this . rbfInfo ?. mined && ! this . tx ?. status ?. confirmed "
></ app-confirmations >
2021-07-06 13:56:32 -03:00
</ 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 " >
2023-04-05 07:11:13 +09:00
< 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" >
2023-03-05 18:54:04 -06:00
< i class = "symbol" > (< app-time kind = "since" [ time ]=" tx . status . block_time " [ fastRender ]=" true " ></ app-time > )</ i >
2020-08-09 10:44:01 +07:00
</ div >
</ td >
</ tr >
2020-03-23 04:07:31 +07:00
< ng-template [ ngIf ]=" transactionTime > 0">
< tr >
2020-12-02 04:19:33 +09:00
< td i18n = "transaction.confirmed|Transaction Confirmed state" > Confirmed</ td >
2023-03-05 18:54:04 -06:00
< td >< app-time kind = "span" [ time ]=" tx . status . block_time - transactionTime " [ fastRender ]=" true " [ relative ]=" true " ></ app-time ></ td >
2020-03-23 04:07:31 +07:00
</ tr >
</ ng-template >
2023-03-13 12:48:01 +09:00
< tr * ngIf = "network !== 'liquid' && network !== 'liquidtestnet' && featuresEnabled" >
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 >
2023-05-05 15:12:05 -07:00
< ng-template [ ngIf ]=" transactionTime !== 0 " >
2020-03-23 04:07:31 +07:00
< 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 >
2023-03-05 18:54:04 -06:00
< td >< i >< app-time kind = "since" [ time ]=" transactionTime " [ fastRender ]=" true " ></ app-time ></ i ></ td >
2020-03-23 04:07:31 +07:00
</ tr >
</ ng-template >
</ ng-template >
2023-03-04 03:16:59 -06:00
< tr * ngIf = "!replaced && !isCached" >
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 >
2023-05-03 10:30:45 -06:00
< ng-template [ ngIf ]=" this . mempoolPosition ?. block = = null " [ ngIfElse ]=" estimationTmpl " >
2020-03-23 04:07:31 +07:00
< span class = "skeleton-loader" ></ span >
</ ng-template >
< ng-template # estimationTmpl >
2023-05-03 10:30:45 -06:00
< ng-template [ ngIf ]=" this . mempoolPosition . block > = 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 " >
2023-04-22 05:56:10 +09:00
< app-time kind = "until" [ time ]="( 60 * 1000 * this . mempoolPosition . block ) + now " [ fastRender ]=" false " [ fixedRender ]=" true " ></ app-time >
2020-05-24 00:25:04 +07:00
</ ng-template >
< ng-template # timeEstimateDefault >
2023-06-29 11:22:33 -04:00
< app-time kind = "until" * ngIf = "(da$ | async) as da;" [ time ]=" da . timeAvg * ( this . mempoolPosition . block + 1 ) + now + da . timeOffset " [ fastRender ]=" false " [ fixedRender ]=" true " ></ app-time >
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 >
2023-01-05 11:01:46 -06:00
< div class = "box cpfp-details" >
< table class = "table table-fixed table-borderless table-striped" >
2021-03-22 18:04:50 +07:00
< thead >
< tr >
< th i18n = "transactions-list.vout.scriptpubkey-type" > Type</ th >
2023-01-05 11:01:46 -06:00
< th class = "txids" i18n = "dashboard.latest-transactions.txid" > TXID</ th >
2023-06-15 18:56:34 -04:00
< th * only-vsize class = "d-none d-lg-table-cell" i18n = "transaction.vsize|Transaction Virtual Size" > Virtual size</ th >
< th * only-weight class = "d-none d-lg-table-cell" i18n = "transaction.weight|Transaction Weight" > Weight</ th >
2021-03-22 18:04:50 +07:00
< 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 >
2023-01-16 16:47:05 -06:00
< td >
< app-truncate [ text ]=" cpfpTx . txid " [ link ]="['/ tx ' | relativeUrl , cpfpTx . txid ]" ></ app-truncate >
2022-11-27 13:46:54 +09:00
</ td >
2023-06-15 18:56:34 -04:00
< td * only-vsize class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpTx . weight / 4 | vbytes: 2 " ></ td >
< td * only-weight class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpTx . weight | wuBytes: 2 " ></ td >
2023-06-15 15:17:32 -04:00
< td >< app-fee-rate [ fee ]=" cpfpTx . fee " [ weight ]=" cpfpTx . weight " ></ app-fee-rate ></ td >
2022-11-27 13:46:54 +09:00
< 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 >
2023-01-05 11:01:46 -06:00
< td class = "txids" >
2023-01-16 16:47:05 -06:00
< app-truncate [ text ]=" cpfpInfo . bestDescendant . txid " [ link ]="['/ tx ' | relativeUrl , cpfpInfo . bestDescendant . txid ]" ></ app-truncate >
2021-03-22 18:04:50 +07:00
</ td >
2023-06-15 18:56:34 -04:00
< td * only-vsize class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpInfo . bestDescendant . weight / 4 | vbytes: 2 " ></ td >
< td * only-weight class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpInfo . bestDescendant . weight | wuBytes: 2 " ></ td >
2023-06-15 15:17:32 -04:00
< td >< app-fee-rate [ fee ]=" cpfpInfo . bestDescendant . fee " [ weight ]=" cpfpInfo . bestDescendant . weight " ></ app-fee-rate ></ 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 >
2023-01-05 11:01:46 -06:00
< td class = "txids" >
2023-01-16 16:47:05 -06:00
< app-truncate [ text ]=" cpfpTx . txid " [ link ]="['/ tx ' | relativeUrl , cpfpTx . txid ]" ></ app-truncate >
2021-03-22 18:04:50 +07:00
</ td >
2023-06-15 18:56:34 -04:00
< td * only-vsize class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpTx . weight / 4 | vbytes: 2 " ></ td >
< td * only-weight class = "d-none d-lg-table-cell" [ innerHTML ]=" cpfpTx . weight | wuBytes: 2 " ></ td >
2023-06-15 15:17:32 -04:00
< td >< app-fee-rate [ fee ]=" cpfpTx . fee " [ weight ]=" cpfpTx . weight " ></ app-fee-rate ></ 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-12-17 09:39:06 -06:00
< ng-container * ngIf = "rbfInfo" >
2022-12-13 17:11:37 -06:00
< div class = "title float-left" >
2023-03-05 19:51:49 -06:00
< h2 id = "rbf" i18n = "transaction.rbf-history|RBF History" > RBF History</ h2 >
2022-12-13 17:11:37 -06:00
</ div >
< div class = "clearfix" ></ div >
< app-rbf-timeline [ txid ]=" txId " [ replacements ]=" rbfInfo " ></ app-rbf-timeline >
< br >
</ ng-container >
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 "
2023-03-06 00:02:21 -06:00
[ cached ]=" isCached "
2022-09-29 15:41:14 +00:00
[ 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
2023-03-06 00:02:21 -06:00
< app-transactions-list # txList [ transactions ]="[ tx ]" [ cached ]=" isCached " [ 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 >
2023-05-29 17:19:22 -04:00
< tr * ngIf = "cpfpInfo && cpfpInfo.adjustedVsize && cpfpInfo.adjustedVsize > (tx.weight / 4)" >
< td i18n = "transaction.adjusted-vsize|Transaction Adjusted VSize" > Adjusted vsize</ td >
< td [ innerHTML ]="'& lrm ;' + ( cpfpInfo . adjustedVsize | vbytes: 2 )" ></ td >
</ tr >
2021-11-15 12:00:41 +04:00
< 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 >
2023-05-29 17:19:22 -04:00
< tr * ngIf = "cpfpInfo && cpfpInfo.adjustedVsize && cpfpInfo.adjustedVsize > (tx.weight / 4)" >
< td i18n = "transaction.sigops|Transaction Sigops" > Sigops</ td >
< td [ innerHTML ]="'& lrm ;' + ( cpfpInfo . sigops | number )" ></ td >
</ tr >
2021-11-15 12:00:41 +04:00
< 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
2021-03-18 23:47:40 +07:00
< ng-template # feeTable >
< table class = "table table-borderless table-striped" >
< tbody >
2023-03-13 12:48:01 +09:00
< tr * ngIf = "isMobile && (network === 'liquid' || network === 'liquidtestnet' || !featuresEnabled)" ></ tr >
2021-03-18 23:47:40 +07:00
< tr >
< td class = "td-width" i18n = "transaction.fee|Transaction fee" > Fee</ td >
2023-02-21 12:36:43 +09:00
< td > {{ tx.fee | number }} < span class = "symbol" i18n = "shared.sat|sat" > sat</ span > < span class = "fiat" >< app-fiat [ blockConversion ]=" blockConversion " [ 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 >
2023-06-15 15:17:32 -04:00
< app-fee-rate [ fee ]=" tx . feePerVsize " ></ app-fee-rate >
2023-04-05 07:11:13 +09:00
< ng-template [ ngIf ]=" tx ?. status ?. confirmed " >
2021-03-18 23:47:40 +07:00
2023-05-31 12:11:56 -04:00
< app-tx-fee-rating * ngIf = "tx.fee && !hasEffectiveFeeRate" [ tx ]=" tx " ></ app-tx-fee-rating >
2021-03-18 23:47:40 +07:00
</ ng-template >
</ td >
</ tr >
2023-05-31 12:11:56 -04:00
< tr * ngIf = "cpfpInfo && hasEffectiveFeeRate" >
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" >
2023-06-15 15:17:32 -04:00
< app-fee-rate [ fee ]=" tx . effectiveFeePerVsize " ></ app-fee-rate >
2023-04-05 07:11:13 +09:00
< ng-template [ ngIf ]=" tx ?. status ?. confirmed " >
2023-03-09 19:31:53 -06:00
< app-tx-fee-rating class = "ml-2 mr-2" * ngIf = "tx.fee || tx.effectiveFeePerVsize" [ tx ]=" tx " ></ app-tx-fee-rating >
2021-05-18 11:20:17 -03:00
</ ng-template >
</ div >
2023-05-18 13:35:02 -04:00
< button * ngIf = "cpfpInfo.bestDescendant || cpfpInfo.descendants?.length || cpfpInfo.ancestors?.length" 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 >