- var fontawesomeInputName = "sign-in-alt"; - var fontawesomeOutputName = "sign-out-alt"; - var totalIOValues = utils.getTxTotalInputOutputValues(tx, txInputs, blockHeight); script. function showAllTxOutputs(link, txid) { var hiddenRows = document.querySelectorAll("[data-txid='" + txid + "']"); hiddenRows.forEach(function(hiddenRow) { hiddenRow.classList.remove("d-none"); }); link.classList.add("d-none"); } div(class="row text-monospace") div(class="col-lg-6") if (txInputs) - var extraInputCount = 0; each txVin, txVinIndex in tx.vin if (!txVin.coinbase) - var vout = null; if (txInputs && txInputs[txVinIndex]) - var txInput = txInputs[txVinIndex]; if (txInput.vout && txInput.vout[txVin.vout]) - var vout = txInput.vout[txVin.vout]; if (txVin.coinbase || vout) div(class="row") div(class="tx-io-label") a(data-toggle="tooltip", title=("Input #" + (txVinIndex + 1).toLocaleString()), style="white-space: nowrap;") i(class=("fas fa-" + fontawesomeInputName + " mr-2")) span(class="d-inline d-md-none") Input # span #{(txVinIndex + 1).toLocaleString()} if (tx.vin.length > 0) span(class="d-inline d-md-none font-weight-light text-muted") / #{tx.vin.length.toLocaleString()} div(class="tx-io-content") div(class="row pr-3") div(class="tx-io-desc") if (txVin.coinbase) span(class="rounded bg-primary text-white px-2 py-1 mr-2") coinbase span Newly minted coins else if (vout && vout.scriptPubKey && vout.scriptPubKey.addresses) div(class="word-wrap") a(href=("/address/" + vout.scriptPubKey.addresses[0]), class=(txIOHighlightAddress == vout.scriptPubKey.addresses[0] ? "font-weight-bold" : null)) #{vout.scriptPubKey.addresses[0]} if (global.specialAddresses[vout.scriptPubKey.addresses[0]]) - var specialAddressInfo = global.specialAddresses[vout.scriptPubKey.addresses[0]]; if (specialAddressInfo.type == "minerPayout") span a(data-toggle="tooltip", title=("Miner payout address: " + specialAddressInfo.minerInfo.name)) i(class="fas fa-certificate text-primary") else if (specialAddressInfo.type == "donation") span a(data-toggle="tooltip", title=("Development donation address. All support is appreciated!")) i(class="fas fa-certificate text-primary") span(class="small") via a(href=("/tx/" + txInput.txid + "#output-" + txVin.vout)) #{txInput.txid.substring(0, 20)}...[#{txVin.vout}] div(class="tx-io-value") if (txVin.coinbase) - var currencyValue = coinConfig.blockRewardFunction(blockHeight, global.activeBlockchain); include ./value-display.pug else if (vout && vout.value) - var currencyValue = vout.value; include ./value-display.pug hr else - extraInputCount = extraInputCount + 1; if (extraInputCount > 0) div(class="row") div(class="tx-io-label") a(data-toggle="tooltip", title=("Input #" + (tx.vin.length - extraInputCount + 1).toLocaleString() + " - " + tx.vin.length.toLocaleString()), style="white-space: nowrap;") i(class=("fas fa-" + fontawesomeInputName + " mr-2")) span(class="d-inline d-md-none") Input # i(class=("fas fa-ellipsis-h mr-2")) div(class="tx-io-content") div(class="row pr-3") div(class="tx-io-desc") span #{extraInputCount.toLocaleString()} more input(s) br span(class="small") see a(href=("/tx/" + tx.txid)) transactions details div(class="tx-io-value") - var currencyValue = new Decimal(totalIOValues.output).minus(new Decimal(totalIOValues.input)); include ./value-display.pug hr div(class="row mb-5 mb-lg-2 pr-3") div(class="col") div(class="font-weight-bold text-left text-md-right") span(class="d-block d-md-none") Total Input: - var currencyValue = totalIOValues.input; include ./value-display.pug div(class="col-lg-6") - var maxRegularRowCount = (txIOHighlightAddress != null ? config.site.addressPage.txOutputMaxDefaultDisplay : 10000000); - var regularRowCount = 0; - var hiddenRowCount = 0; each vout, voutIndex in tx.vout - var highlightRow = false; if (txIOHighlightAddress != null && vout.scriptPubKey && vout.scriptPubKey.addresses && vout.scriptPubKey.addresses[0] == txIOHighlightAddress) - highlightRow = true; if (!highlightRow) - regularRowCount++; - var hiddenRow = false; if (!highlightRow && regularRowCount > maxRegularRowCount) - hiddenRow = true; - hiddenRowCount++; div(data-txid=tx.txid, class=("pr-0 " + (hiddenRow ? "d-none" : ""))) div(class="row") div(class="tx-io-label") a(data-toggle="tooltip", title=("Output #" + (voutIndex + 1).toLocaleString()), style="white-space: nowrap;") i(class=("fas fa-" + fontawesomeOutputName + " mr-2")) span(class="d-inline d-md-none") Output # span #{(voutIndex + 1).toLocaleString()} if (tx.vout.length > 0) span(class="d-inline d-md-none font-weight-light text-muted") / #{tx.vout.length.toLocaleString()} div(class="tx-io-content") div(class=("row pr-3")) div(class="tx-io-desc") if (vout.scriptPubKey) if (vout.scriptPubKey.addresses) if (false) if (vout.scriptPubKey.type == "pubkey") span(class="border border-secondary rounded bg-light px-2 py-1 mr-2") P2PK else if (vout.scriptPubKey.type == "pubkeyhash") span(class="border border-secondary rounded bg-light px-2 py-1 mr-2") P2PKH else if (vout.scriptPubKey.type == "scripthash") span(class="border border-secondary rounded bg-light px-2 py-1 mr-2") P2SH else if (vout.scriptPubKey.type == "witness_v0_keyhash") span(class="border border-secondary rounded bg-light px-2 py-1 mr-2") V0_P2WPKH a(id=("output-" + voutIndex), href=("/address/" + vout.scriptPubKey.addresses[0])) span(class=("monospace word-wrap " + (highlightRow ? "font-weight-bold" : ""))) #{vout.scriptPubKey.addresses[0]} if (global.specialAddresses[vout.scriptPubKey.addresses[0]]) - var specialAddressInfo = global.specialAddresses[vout.scriptPubKey.addresses[0]]; if (specialAddressInfo.type == "minerPayout") span a(data-toggle="tooltip", title=("Miner payout address: " + specialAddressInfo.minerInfo.name)) i(class="fas fa-certificate text-primary") else if (specialAddressInfo.type == "donation") span a(data-toggle="tooltip", title=("Development donation address. All support is appreciated!")) i(class="fas fa-certificate text-primary") else if (vout.scriptPubKey.hex && vout.scriptPubKey.hex.startsWith('6a24aa21a9ed')) span(class="monospace") span(class="rounded bg-primary text-white px-2 py-1 mr-2") OP_RETURN span(title="Segregated Witness", data-toggle="tooltip") SegWit span committment a(href="https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#commitment-structure", data-toggle="tooltip", title="View developer docs", target="_blank") i(class="fas fa-info-circle") else if (vout.scriptPubKey.asm && vout.scriptPubKey.asm.startsWith('OP_RETURN ')) span(class="monospace") span(class="rounded bg-primary text-white px-2 py-1 mr-2") OP_RETURN span #{utils.hex2ascii(vout.scriptPubKey.asm.substring("OP_RETURN ".length))} else span(class="monospace") span(class="text-warning font-weight-bold") Unable to decode output: br span(class="font-weight-bold") type: span #{vout.scriptPubKey.type} br span(class="font-weight-bold") asm: span #{vout.scriptPubKey.asm} br span(class="font-weight-bold") decodedHex: span #{utils.hex2ascii(vout.scriptPubKey.hex)} div(class="tx-io-value") if (utxos) if (utxos[voutIndex]) i.fas.fa-lock.text-success.mr-2(title="Unspent output." data-toggle="tooltip") else if (utxos[voutIndex] == null) i.fas.fa-lock-open.text-secondary.mr-2(title="Spent output." data-toggle="tooltip") - var currencyValue = vout.value; include ./value-display.pug hr if (hiddenRowCount > 0) a(href="javascript:void(0)", onclick=("showAllTxOutputs(this, '" + tx.txid + "');")) Show all #{tx.vout.length.toLocaleString()} outputs div(class="row mb-2 pr-3") div(class="col") div(class="font-weight-bold text-left text-md-right") span(class="d-block d-md-none") Total Output: - var currencyValue = totalIOValues.output; include ./value-display.pug