Files
purple-explorer/views/tx.pug
T
joeuhren 66e3ca31e6 Add support for bitcoin P2PK scripts/txes
-Adds a tx_type field to the tx model which is typically null for "normal" transaction types, but can also display 'p2pk' for bitcoin txes which require addtional encoding to reveal the P2PKH address as well as 'zksnarks' for transactions with hidden sender or receiver data
-Additional fixes for how data is displayed when a valid wallet address cannot be found
-Includes some small updates to how zksnarks transactions display hidden sender/receiver data
2021-03-20 01:34:13 -06:00

150 lines
7.7 KiB
Plaintext

extends layout
block content
include ./includes/common.pug
- var time = format_unixtime(tx.timestamp);
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('thead-' + settings.shared_pages.table_header_bgcolor);
.col-xs-12.col-md-12
.card.card-default.border-0.cardSpacer
.card-header
strong=settings.coin.symbol + ' TXid: ' + tx.txid
if settings.api_page.public_apis.rpc.getrawtransaction.enabled == true
a.d-none.d-md-inline(href=`/api/getrawtransaction?txid=${tx.txid}&decrypt=1`)
span.fa.fa-info-circle.iquidus.float-right(data-toggle='tooltip', data-placement='top', title=settings.locale.view_raw_tx_data)
table.table.table-bordered.table-striped.summary-table.mobile-border-right
thead(class=theadClasses)
tr
th.text-center.d-table-cell.d-md-none
th.d-none.d-md-table-cell #{settings.locale.tx_block_hash}
th.text-center #{settings.locale.confirmations}
th.text-center #{settings.locale.timestamp}
tbody
- var confirms = (blockcount - tx.blockindex);
if confirms >= confirmations
tr.bg-success.text-dark
td.text-center.d-table-cell.d-md-none
a(href='/block/' + tx.blockhash)
span.fa.fa-eye(data-toggle='tooltip', data-placement='top', title=settings.locale.view_block)
td.d-none.d-md-table-cell
a.breakWord(href='/block/' + tx.blockhash) #{tx.blockhash}
td.text-center #{confirms}
td.text-center #{time}
else
if confirms < (confirmations / 2)
tr.bg-danger
td.text-center.d-table-cell.d-md-none
a(href='/block/' + tx.blockhash)
span.fa.fa-eye(data-toggle='tooltip', data-placement='top', title=settings.locale.view_block)
td.d-none.d-md-table-cell
a.breakWord(href='/block/' + tx.blockhash) #{tx.blockhash}
td.text-center #{confirms}
td.text-center #{time}
else
tr.table-warning
td.text-center.d-table-cell.d-md-none
a(href='/block/' + tx.blockhash)
span.fa.fa-eye(data-toggle='tooltip', data-placement='top', title=settings.locale.view_block)
td.d-none.d-md-table-cell
a.breakWord(href='/block/' + tx.blockhash) #{tx.blockhash}
td.text-center #{confirms}
td.text-center #{time}
if tx.vout.length < 1
.alert.alert-info.text-center(role='alert', style='margin-bottom:0;')
strong #{settings.locale.tx_nonstandard}
else
.row
.col-md-6.cardSpacer
.card.card-default.border-0
.card-header
strong #{settings.locale.tx_contributors}
span.fa.fa-arrow-right.float-right.d-none.d-md-block
table.table.table-bordered.table-striped.summary-table.mobile-border-right
thead(class=theadClasses)
tr
th #{settings.locale.tx_address}
if (tx.vin.length > 0)
if tx.vin[0].addresses != 'coinbase'
th.text-center #{settings.locale.mkt_amount}
span.small (#{settings.coin.symbol})
tbody
if tx.vin.length > 0
each address in tx.vin
if address.addresses == 'coinbase'
tr.table-info.text-center
td #{settings.locale.new_coins}
else
- var ramount = Number(address.amount / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
- var ramountParts = ramount.split('.');
tr
td
if address.addresses != 'hidden_address' && address.addresses != 'unknown_address'
a.loading.breakWord(href='/address/' + address.addresses)
if address.claim_name == null || address.claim_name == ''
=address.addresses
else
=address.claim_name
include ./includes/rl_labels.pug
else if address.addresses == 'hidden_address'
=settings.locale.hidden_sender
else
=settings.locale.unknown_sender
td.bg-danger.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}
else
tr.table-info.text-center
td #{settings.locale.proof_of_stake}
.col-md-6.cardSpacer
.card.card-default.border-0
.card-header
strong #{settings.locale.tx_recipients}
table.table.table-bordered.table-striped.summary-table.mobile-border-right
thead(class=theadClasses)
tr
th #{settings.locale.tx_address}
th.text-center #{settings.locale.mkt_amount}
span.small (#{settings.coin.symbol})
tbody
each address in tx.vout
if tx.vout.length > 0
- var ramount = Number(address.amount / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
- var ramountParts = ramount.split('.');
tr
if address.addresses != 'hidden_address' && address.addresses != 'unknown_address'
td
a.loading.breakWord(href='/address/' + address.addresses)
if address.claim_name == null || address.claim_name == ''
=address.addresses
else
=address.claim_name
include ./includes/rl_labels.pug
td.bg-success.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}
else if address.amount > 0
td
if address.addresses == 'hidden_address'
=settings.locale.hidden_recipient
else
=settings.locale.unknown_recipient
td.bg-success.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}
else
td(colspan='2')
if address.addresses == 'hidden_address'
=settings.locale.hidden_recipient
else
=settings.locale.unknown_recipient
else
- var ramount = Number(address.amount / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
- var ramountParts = ramount.split('.');
tr
td
a.loading.breakWord(href='/address/' + address.addresses)
if address.claim_name == null || address.claim_name == ''
=address.addresses
else
=address.claim_name
include ./includes/rl_labels.pug
td.bg-success.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}