github.com/trezor/blockbook@v0.4.1-0.20240328132726-e9a08582ee2c/static/templates/txdetail.html (about) 1 {{define "txdetail"}}{{$addr := .AddrStr}}{{$tx := .Tx}}{{$data := .}} 2 <div class="tx-detail"> 3 <div class="row head"> 4 <div class="col-xs-7 col-md-8"> 5 <a href="/tx/{{$tx.Txid}}" class="ellipsis copyable txid">{{$tx.Txid}}</a> 6 {{if $tx.Rbf}}<span class="ps-1" tt="Replace-by-Fee (RBF) transaction, could be overridden"> RBF</span>{{end}} 7 </div> 8 {{if $tx.Blocktime}}<div class="col-xs-5 col-md-4 text-end">{{if $tx.Confirmations}}mined{{else}}first seen{{end}} <span class="txvalue ms-1">{{unixTimeSpan $tx.Blocktime}}</span></div>{{end}} 9 {{if $tx.ConfirmationETABlocks}}<div class="col-12 text-end"> 10 <span class="badge bg-info fw-bold" style="text-transform: none;" tt="Estimated first potential confirmation of this transaction.">confirmation estimated in {{relativeTime $tx.ConfirmationETASeconds}} <span class="fw-normal ps-1">({{$tx.ConfirmationETABlocks}} blocks)</span></span> 11 </div> 12 {{end}} 13 </div> 14 <div class="row body"> 15 <div class="col-md-5"> 16 <div class="row tx-in"> 17 {{range $vin := $tx.Vin}} 18 <div class="col-12{{if $vin.IsOwn}} tx-own{{end}}"> 19 {{range $a := $vin.Addresses}} 20 <span class="ellipsis copyable"> 21 {{if and (ne $a $addr) $vin.IsAddress}}<a href="/address/{{$a}}">{{$a}}</a>{{else}}{{$a}}{{end}} 22 </span> 23 {{else}} 24 {{if $vin.Hex}}Unparsed address{{else}}No Inputs (Newly Generated Coins){{end}} 25 {{end}} 26 {{if $vin.Txid}} 27 <a class="outpoint" href="/tx/{{$vin.Txid}}" tt="Outpoint {{$vin.Txid}},{{$vin.Vout}}">←</a> 28 {{end}} 29 {{if $vin.Addresses}}{{amountSpan $vin.ValueSat $data "tx-amt copyable"}}{{end}} 30 </div> 31 {{else}} 32 <div class="col-12">No Inputs</div> 33 {{end}} 34 </div> 35 </div> 36 <div class="col-md-1 col-xs-12 text-center"> <span class="octicon"></span></div> 37 <div class="col-md-6"> 38 <div class="row tx-out"> 39 {{range $vout := $tx.Vout}} 40 <div class="col-12{{if $vout.IsOwn}} tx-own{{end}}"> 41 {{range $a := $vout.Addresses}} 42 <span class="ellipsis copyable"> 43 {{if and (ne $a $addr) $vout.IsAddress}}<a href="/address/{{$a}}">{{$a}}</a>{{else}}{{$a}}{{end}} 44 </span> 45 {{else}} 46 Unparsed address 47 {{end}} 48 <span class="tx-amt"> 49 {{amountSpan $vout.ValueSat $data "copyable"}}{{if $vout.Spent}}<a class="spent" href="{{if $vout.SpentTxID}}/tx/{{$vout.SpentTxID}}{{else}}/spending/{{$tx.Txid}}/{{$vout.N}}{{end}}" tt="Spent">→</a>{{else}}<span class="unspent" tt="Unspent">×</span> 50 {{end}} 51 </span> 52 </td> 53 </div> 54 {{else}} 55 <div class="col-12">No Outputs</div> 56 {{end}} 57 </div> 58 </div> 59 </div> 60 <div class="row footer"> 61 <div class="col-sm-12 col-md-4"> 62 {{if $tx.FeesSat}}{{$fpb := feePerByte $tx}} 63 Fee {{amountSpan $tx.FeesSat $data "txvalue copyable ms-3"}}{{if $fpb}} <span class="fw-normal small">({{$fpb}})</span>{{end}} 64 {{end}} 65 </div> 66 <div class="col-sm-12 col-md-8 text-end"> 67 <span class="me-4"> 68 {{if $tx.Confirmations}} 69 <span class="txvalue">{{formatUint32 $tx.Confirmations}}</span> confirmations 70 {{else}} 71 <span class="txvalue unconfirmed">Unconfirmed Transaction!</span> 72 {{end}} 73 </span> 74 {{amountSpan $tx.ValueOutSat $data "txvalue copyable"}} 75 </div> 76 </div> 77 </div> 78 {{end}}