Publish Nerbus source snapshot and build documentation

This commit is contained in:
Nerbus Contributors committed 2026-10-17 18:56:29 +00:00
commit 76cccceca7
198 files changed
+338574

No files matched your search

+180
View File
@@ -0,0 +1,180 @@
extends layout
block content
script.
var hashAddress = "#{address.a_id}";
var setting_maxTxCount = parseInt("#{settings.api_page.public_apis.ext.getaddresstxs.max_items_per_query}");
var setting_txPerPage = parseInt("#{settings.address_page.history_table.items_per_page}");
var lengthMenuOptsAdd = !{JSON.stringify(settings.address_page.history_table.page_length_options)};
var lengthMenuOpts = [];
var addedLength = false;
for (i = 0; i < lengthMenuOptsAdd.length; i++) {
if (setting_maxTxCount >= lengthMenuOptsAdd[i]) {
if (!addedLength) {
if (lengthMenuOptsAdd[i] > setting_txPerPage) {
lengthMenuOpts.push(setting_txPerPage);
addedLength = true;
}
}
lengthMenuOpts.push(lengthMenuOptsAdd[i]);
if (!addedLength) {
if (lengthMenuOptsAdd[i] > setting_txPerPage)
lengthMenuOpts.push(setting_txPerPage);
if (lengthMenuOptsAdd[i] == setting_txPerPage || lengthMenuOptsAdd[i] > setting_txPerPage)
addedLength = true;
}
}
}
if (!addedLength && setting_txPerPage <= setting_maxTxCount && setting_txPerPage != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_txPerPage);
if (!addedLength && setting_txPerPage > setting_maxTxCount && setting_maxTxCount != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_maxTxCount);
if (setting_maxTxCount < setting_txPerPage) {
var displayLengthMax = setting_maxTxCount;
} else {
var displayLengthMax = setting_txPerPage;
}
$(document).ready(function () {
var rtable = $('#address-txs').dataTable({
autoWidth: true,
searching: false,
ordering: false,
responsive: true,
lengthChange: true,
processing: true,
serverSide: true,
iDisplayLength: displayLengthMax,
lengthMenu: lengthMenuOpts,
scrollX: true,
ajax: {
url: '/ext/getaddresstxs/' + hashAddress,
beforeSend: function(jqXHR, settings) {
settings.url = settings.url.substring(0, settings.url.indexOf('?')) + '/' + getParameterByName('start', settings.url) + '/' + getParameterByName('length', settings.url) + '/internal';
return true;
}
},
language: {
paginate: {
previous: '<',
next: '>'
}
},
rowCallback: function (row, data, index) {
// variables for better readability
const timestamp = data[0];
const txhash = data[1];
const balance = data[2];
const amount = data[3];
const updown = data[4];
const rowclass = data[5];
const amountParts = amount.split('.');
const balanceParts = balance.split('.');
$("td:eq(0)", row).html('<a href="/tx/' + txhash + '"><span class="fa-regular fa-eye" data-bs-toggle="tooltip" data-bs-placement="top" title="#{settings.localization.view_tx}"></span></a>').addClass('text-center d-table-cell d-md-none');
$("td:eq(1)", row).html('<a href="/tx/' + txhash + '">' + txhash + '</a>').addClass('breakWord d-none d-md-table-cell');
$("td:eq(2)", row).html(updown + amountParts[0] + '.<span class="decimal">' + amountParts[1] + '</span>').addClass(rowclass + ' text-center');
$("td:eq(3)", row).html(balanceParts[0] + '.<span class="decimal">' + balanceParts[1] + '</span>').addClass('text-center');
$("td:eq(4)", row).html('<span' + (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true ? ' data-bs-toggle="tooltip" data-bs-placement="auto" title="' + format_unixtime(timestamp, true) + '"' : '') + '>' + format_unixtime(timestamp) + '</span>').addClass('text-center');
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
enableTooltips();
}
});
$('.summary-table').dataTable({
info: false,
paging: false,
searching: false,
ordering: false,
responsive: true,
scrollX: true,
fnDrawCallback: function(settings) {
fixDataTableColumns();
}
});
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.address_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
- var balanceParts = balance.split('.');
- var sentParts = sent.split('.');
- var receivedParts = received.split('.');
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
.col-xs-12.col-md-12
if settings.address_page.page_header.show_img == true || settings.address_page.page_header.show_title == true || settings.address_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.address_page.page_header.show_img == true && settings.address_page.page_header.show_title == true && settings.address_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.address_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.address_page.page_header.show_title == true
h3#page-title #{settings.localization.a_title.replace('{1}', settings.coin.name)}
if settings.address_page.page_header.show_description == true
if settings.address_page.page_header.show_title != true
#page-title-container
.sub-page-header.text-muted=settings.localization.a_description.replace('{1}', settings.coin.name).replace('{2}', (address.a_id == 'hidden_address' ? settings.localization.hidden_address : (address.a_id == 'unknown_address' ? settings.localization.unknown_address : address.a_id)))
else
.sub-page-header.text-muted=settings.localization.a_description.replace('{1}', settings.coin.name).replace('{2}', (address.a_id == 'hidden_address' ? settings.localization.hidden_address : (address.a_id == 'unknown_address' ? settings.localization.unknown_address : address.a_id)))
.cardSpacer.clearfix
.card.card-default.border-0.card-address-summary.cardSpacer
.card-header(style='position:relative;')
if settings.claim_address_page.enabled == false || claim_name == null || claim_name == ''
if address.a_id == 'hidden_address'
strong #{settings.localization.hidden_address}
else if address.a_id == 'unknown_address'
strong #{settings.localization.unknown_address}
else
strong #{address.a_id}
else
strong #{claim_name}
| &#8203;
include ./includes/rl_labels.pug
if (!settings.labels[address.a_id] || !settings.labels[address.a_id].enabled) && settings.claim_address_page.enabled == true
a#claim-address.fw-bold(href='/claim/' + address.a_id, style='font-size:smaller;padding-bottom:0;')
if claim_name == null || claim_name == ''
=" Is this yours? Claim it now for free!"
else
=" Update claimed address"
table#address-summary.table.table-bordered.table-striped.summary-table.mobile-border-right(style='border-top:0;margin-top:0 !important;')
thead
tr(class=theadClasses)
th.text-center #{settings.localization.rl_balance}
span.small.fw-normal (#{settings.coin.symbol})
if settings.address_page.show_sent_received == true
th.text-center #{settings.localization.total_sent}
span.small.fw-normal (#{settings.coin.symbol})
if settings.address_page.show_sent_received == true
th.text-center #{settings.localization.total_received}
span.small.fw-normal (#{settings.coin.symbol})
th.text-center #{settings.localization.a_qr}
tbody
tr
td.text-center.addr-summary #{balanceParts[0]}.
span.decimal #{balanceParts[1]}
if settings.address_page.show_sent_received == true
td.text-center.addr-summary #{sentParts[0]}.
span.decimal #{sentParts[1]}
if settings.address_page.show_sent_received == true
td.text-center.addr-summary #{receivedParts[0]}.
span.decimal #{receivedParts[1]}
td.text-center.addr-summary
img.qrcode(src='/qr/' + address.a_id)
.card.card-default.border-0.cardSpacer
.card-header
strong #{settings.localization.ex_latest_transactions}
table#address-txs.table.table-bordered.table-striped.table-paging.table-hover.mobile-border-right
thead
tr(class=theadClasses)
th.d-table-cell.d-md-none
th.d-none.d-md-table-cell #{settings.localization.tx_hash}
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{settings.coin.symbol})
th.text-center #{settings.localization.rl_balance}
span.small.fw-normal (#{settings.coin.symbol})
th.text-center #{settings.localization.timestamp}
tbody
+142
View File
@@ -0,0 +1,142 @@
extends layout
block content
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
script.
$(document).ready(function() {
$('#block-summary').dataTable({
info: false,
paging: false,
searching: false,
ordering: false,
responsive: true,
scrollX: true,
fnDrawCallback: function(settings) {
fixDataTableColumns();
}
});
$('span#timestampCol').html(format_unixtime(#{block.time}));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#timestampCol').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(#{block.time}, true));
enableTooltips();
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.block_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
.col-xs-12.col-md-12
if orphan != null && orphan == true
.col-12
.alert.alert-warning.alert-dismissible.fade.show(role='alert')
button.btn-close(type='button', data-bs-dismiss='alert')
.cardSpacer
span.fa-solid.fa-triangle-exclamation(style='margin-right:5px')
strong=settings.localization.ex_warning
div="This is an orphaned block"
if settings.block_page.page_header.show_img == true || settings.block_page.page_header.show_title == true || settings.block_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.block_page.page_header.show_img == true && settings.block_page.page_header.show_title == true && settings.block_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.block_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.block_page.page_header.show_title == true
h3#page-title #{settings.localization.block_title.replace('{1}', settings.coin.name)}
if settings.block_page.page_header.show_description == true
if settings.block_page.page_header.show_title != true
#page-title-container
.sub-page-header.text-muted=settings.localization.block_description.replace('{1}', settings.coin.name).replace('{2}', block.height)
else
.sub-page-header.text-muted=settings.localization.block_description.replace('{1}', settings.coin.name).replace('{2}', block.height)
.cardSpacer.clearfix
.card.card-default.border-0.cardSpacer
.card-header
div(style='display: flex;flex-wrap: wrap;')
if block.previousblockhash != null
a(href='/block/' + block.previousblockhash)
span.fa-solid.fa-chevron-left.block-last(data-bs-toggle='tooltip', data-bs-placement='top', title=settings.localization.block_previous, style='color: var(--bs-body-color);')
strong.d-none.d-md-block #{settings.localization.tx_block_hash}: #{block.hash}
strong.d-block.d-md-none #{settings.localization.ex_summary}
else
strong.d-none.d-md-block(style='margin-left:10px;') #{settings.localization.tx_block_hash}: #{block.hash}
strong.d-block.d-md-none(style='margin-left:10px;') #{settings.localization.ex_summary}
if block.nextblockhash != null
a(href='/block/' + block.nextblockhash)
span.fa-solid.fa-chevron-right.block-next(data-bs-toggle='tooltip', data-bs-placement='top', title=settings.localization.block_next, style='color: var(--bs-body-color);')
if settings.api_page.public_apis.rpc.getblock.enabled == true
a.d-none.d-md-block(href='/api/getblock?hash=' + block.hash, style='margin-left:auto;', data-bs-toggle='tooltip', data-bs-placement='top', title=settings.localization.view_raw_block_data)
span.fa-solid.fa-circle-info(style='color: var(--bs-body-color);')
table#block-summary.table.table-bordered.summary-table.bottom-border-0.single-row-table(style='border-top:0;margin-top:0 !important;')
thead
tr(class=theadClasses)
th.text-center #{settings.localization.height}
th.text-center #{settings.localization.difficulty}
if settings.block_page.multi_algorithm.show_algo == true
th.text-center='Algorithm'
if settings.block_page.show_extracted_by == true
th.text-center='Extracted By'
th.text-center #{settings.localization.confirmations}
if settings.blockchain_specific.heavycoin.enabled == true
th.text-center Vote
th.text-center #{settings.localization.size} (kB)
th.text-center #{settings.localization.bits}
th.text-center #{settings.localization.nonce}
th.text-center #{settings.localization.timestamp}
tbody
- var splitDifficulty = block.difficulty.split('.');
- var splitBlockSize = block.size.split('.');
tr
td.text-center=block.height
td.text-center #{splitDifficulty[0]}.
span.decimal #{splitDifficulty[1]}
if settings.block_page.multi_algorithm.show_algo == true
td.text-center=block[settings.block_page.multi_algorithm.key_name]
if settings.block_page.show_extracted_by == true
td.text-center
each address in extracted_by_addresses
div(style='overflow: auto;')
a(href=`/address/${address.a_id}`)=(address.claimname == '' ? address.a_id : address.claimname)
include ./includes/rl_labels.pug
if block.confirmations >= confirmations
td.text-center.table-success=block.confirmations
else if block.confirmations < (confirmations / 2)
td.text-center.table-danger=block.confirmations
else
td.text-center.table-warning=block.confirmations
if settings.blockchain_specific.heavycoin.enabled == true
td.text-center=block.vote
td.text-center #{splitBlockSize[0]}.
span.decimal #{splitBlockSize[1]}
td.text-center=block.bits
td.text-center=block.nonce
td.text-center
span#timestampCol
if block.hash == settings.block_page.genesis_block
.alert.alert-info(role='alert', style='text-align:center;')
strong #{settings.localization.block_genesis}
else
.card.card-default.border-0
.card-header
strong #{settings.localization.ex_latest_transactions}
table.table.table-bordered.table-striped.table-hover.summary-table.mobile-border-right
thead
tr(class=theadClasses)
th.text-center.d-table-cell.d-md-none
th.d-none.d-md-table-cell #{settings.localization.tx_hash}
th.text-center #{settings.localization.tx_recipients}
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{settings.coin.symbol})
tbody
each txn in txs
tr
- var totalParts = txn.totalFixed.split('.');
td.text-center.d-table-cell.d-md-none
a(href='/tx/' + txn.txid)
span.fa-regular.fa-eye(data-bs-toggle='tooltip', data-bs-placement='top', title=settings.localization.view_tx)
td.d-none.d-md-table-cell
a.breakWord(href='/tx/' + txn.txid) #{txn.txid}
td.text-center #{txn.vout.length}
td.text-center #{totalParts[0]}.
span.decimal #{totalParts[1]}
+229
View File
@@ -0,0 +1,229 @@
extends layout
block content
- var selected_captcha_object = null
- var selected_captcha_name = ''
if settings.claim_address_page.enable_captcha == true
each captcha, name in settings.captcha
if selected_captcha_object == null && captcha != null && captcha.enabled == true
- selected_captcha_object = captcha
- selected_captcha_name = name
script.
$(document).ready(function () {
$('#claimInstructions').on('show.bs.collapse', function () {
$('#showClaimInstructions').html('<i class="fa-solid fa-angle-down" style="margin-right:5px;"></i><span>Hide claim instructions</span>');
}).on('hide.bs.collapse', function () {
$('#showClaimInstructions').html('<i class="fa-solid fa-angle-up" style="margin-right:5px;"></i><span>Show claim instructions</span>');
}).on('shown.bs.collapse', function () {
fixFooterHeightAndPosition();
}).on('hidden.bs.collapse', function () {
fixFooterHeightAndPosition();
});
$('#claimForm').on('submit', function (e) {
e.preventDefault();
var address = $('input#address').val();
var message = $('input#message').val();
var signature = $('input#signature').val();
var recaptcha2 = ($('#g-recaptcha-response').length > 0 ? $('#g-recaptcha-response').val() : '');
var hcaptcha = ($('textarea[name^="h-captcha-response"]').length > 0 ? $('textarea[name^="h-captcha-response"]').val() : '');
if (address == null || address.trim().length == 0) {
showClaimAlert('warning', 'Please enter the wallet address you wish to claim', false);
$('input#address').focus();
} else if (signature == null || signature.trim().length == 0) {
showClaimAlert('warning', 'Please enter the signature value from your wallet software', false);
$('input#signature').focus();
} else if (
(
'#{selected_captcha_name}' == 'google_recaptcha2' &&
'#{settings.captcha.google_recaptcha2.captcha_type}' == 'checkbox' &&
$('#g-recaptcha-response').length > 0 &&
recaptcha2 == ''
) ||
(
$('textarea[name^="h-captcha-response"]').length > 0 &&
hcaptcha == ''
)
) {
showClaimAlert('warning', 'The captcha validation has not been set', false);
} else {
$('button.btn-success').attr('disabled', true);
if ('#{selected_captcha_name}' == 'google_recaptcha2' && '#{settings.captcha.google_recaptcha2.captcha_type}' == 'invisible') {
grecaptcha.execute();
} else if ('#{selected_captcha_name}' == 'google_recaptcha3') {
grecaptcha.ready(function() {
grecaptcha.execute('#{(selected_captcha_name != '' && settings.captcha[selected_captcha_name].site_key != null ? settings.captcha[selected_captcha_name].site_key : '')}', {action: 'submit'}).then(function(token) {
submitForm(token);
});
});
} else if (recaptcha2 != '') {
submitForm(recaptcha2);
} else if (hcaptcha != '') {
submitForm(hcaptcha);
} else {
submitForm('');
}
}
});
if ('!{hash}' != 'null' && '!{hash}' != '') {
$('<div id="claimAlert"></div>').insertBefore('#claimForm');
$('#claimAlert').html(generateAlertHTML('info', true, ('!{claim_name}' == '' ? 'Unc' : 'C') + 'laimed address', '<strong>!{hash}</strong> is currently ' + ('!{claim_name}' == '' ? 'un' : '') + 'claimed' + ('!{claim_name}' == '' ? '' : ' as <strong>' + displayAsText('!{claim_name}') + '.</strong>')));
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.claim_address_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
function displayAsText(str) {
return str.replace(/</g, '&#60;').replace(/>/g, '&#62;');
}
function showClaimAlert(claimClass, warnMsg, removedClaim) {
if ($('#claimAlert').length == 0)
$('<div id="claimAlert"></div>').insertBefore('#claimForm');
$('#claimAlert').html(generateAlertHTML(claimClass, true, (claimClass == 'success' ? (removedClaim ? 'Address claim removed successfully' : 'Address claimed successfully') : (claimClass == 'danger' ? 'Failed to claim address' : 'Required field missing')), (claimClass == 'success' ? '<strong>' + $('input#address').val() + '</strong> will now be referred to as <strong>' + (removedClaim ? $('input#address').val() : displayAsText($('#message').val())) + '</strong> throughout the website' : warnMsg) + '.'));
fixFooterHeightAndPosition();
}
function generateAlertHTML(alertClass, allowDismiss, headerText, msgText) {
return '<div class="alert alert-' + alertClass + (allowDismiss ? ' alert-dismissible fade show' : '') + '" role="alert">' +
(allowDismiss ? '<button type="button" class="btn-close" data-bs-dismiss="alert"></button>' : '') +
'<div' + (msgText == null || msgText == '' ? '' : ' class="cardSpacer"') + '>' +
'<span class="fa-solid ' + (alertClass == 'success' ? 'fa-circle-check' : (alertClass == 'danger' ? 'fa-circle-exclamation' : (alertClass == 'info' ? 'fa-circle-info' : 'fa-triangle-exclamation'))) + '" style="margin-right:5px"></span>' +
'<strong>' + headerText + '</strong>' +
'</div>' +
(msgText == null || msgText == '' ? '' : '<span>' + msgText + '</span>') +
'</div>';
}
function submitForm(captchaData) {
const url = '/claim';
let postData = {
'address': $('input#address').val(),
'message': $('input#message').val(),
'signature': $('input#signature').val()
};
if ('#{selected_captcha_name}' != '' && captchaData != '')
postData['#{selected_captcha_name}'] = captchaData;
$.ajax({
type: 'post',
url: url,
data: postData
})
.done(function(data) {
showClaimAlert((data.status == 'success' ? 'success' : 'danger'), data.message, (data.status == 'success' && message == ''));
if (
'#{selected_captcha_name}' == 'google_recaptcha2' &&
'#{settings.captcha.google_recaptcha2.captcha_type}' == 'checkbox'
) {
// clear out the captcha to allow the form to be submitted again
grecaptcha.reset();
} else if (
'#{selected_captcha_name}' == 'hcaptcha'
) {
// clear out the captcha to allow the form to be submitted again
hcaptcha.reset()
}
$('button.btn-success').attr('disabled', false);
});
}
function onSubmit(token) {
submitForm(token);
// ensure the onSubmit event can fire again without needing to reload the page in the event that the server returns an error and the form must be submitted again
grecaptcha.reset();
$('button.btn-success').attr('disabled', false);
}
.col-xs-12.col-md-12
if settings.claim_address_page.page_header.show_img == true || settings.claim_address_page.page_header.show_title == true || settings.claim_address_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.claim_address_page.page_header.show_img == true && settings.claim_address_page.page_header.show_title == true && settings.claim_address_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.claim_address_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.claim_address_page.page_header.show_title == true
h3#page-title #{settings.localization.claim_title.replace('{1}', settings.coin.name)}
if settings.claim_address_page.page_header.show_description == true
if settings.claim_address_page.page_header.show_title != true
#page-title-container
.sub-page-header.text-muted=settings.localization.claim_description.replace('{1}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.claim_description.replace('{1}', settings.coin.name)
.cardSpacer.clearfix
.card.card-default.border-0.cardSpacer
.card-header
strong Claim Wallet Address
.card-body
a#showClaimInstructions.instructions.badge.bg-primary(href='#claimInstructions', style='font-size:100%;margin-bottom:15px;', data-bs-toggle='collapse' role='button' aria-expanded='false' aria-controls='claimInstructions')
i.fa-solid.fa-angle-up(style='margin-right:5px;')
span Show claim instructions
div#claimInstructions.collapse
div.alert.alert-primary
div
span Use the
span.fw-bold Sign Message
span feature from your
span.fw-bold #{settings.coin.name}
span wallet to verify ownership of a wallet address that belongs to you.
br
div Enter the following data into the wallet software:
br
div
span.fw-bold Address:
if hash == null || hash == ''
span=' <wallet address from the form below>'
else
span #{hash}
div
span.fw-bold Message:
span=' <display name from the form below>'
br
div
span Click the
span.fw-bold Sign Message
span button in the wallet, and copy/paste the resulting
span.fw-bold Signature
span at the bottom of this form.
br
div
span Finally, click the
span.fw-bold Claim
span button below to claim your address, which will display your custom display name instead of the default wallet address on this site.
br
div
span.fw-bold NOTE:
span You can update your claimed address at any time, as often as you wish. To remove a previously claimed display name, simply sign a blank message to return the address back to its original value.
form#claimForm
.form-group
fieldset.entryField
label.form-label(for='address') Wallet Address
if hash == null || hash == ''
input#address.form-control(type='text', maxlength='70')
else
input#address.form-control(type='text', value=hash, readonly='readonly', maxlength='70')
.form-group
fieldset.entryField
label.form-label.mt-3(for='message') Display Name
input#message.form-control(type='text', placeholder='Display Name', maxlength='50')
.form-group
fieldset.entryField
label.form-label.mt-3(for='signature') Signature
input#signature.form-control.mb-3(type='text', placeholder='Signature', maxlength='100')
if settings.claim_address_page.enable_captcha == true && selected_captcha_object != null
case selected_captcha_name
when 'google_recaptcha2'
if settings.captcha.google_recaptcha2.captcha_type == 'invisible'
div#recaptcha.g-recaptcha(data-sitekey=settings.captcha[selected_captcha_name].site_key, data-callback='onSubmit' data-size='invisible')
else
.form-group
fieldset.entryField
div(class='g-recaptcha mb-3', data-sitekey=settings.captcha[selected_captcha_name].site_key)
when 'hcaptcha'
.form-group
fieldset.entryField
div.h-captcha(data-sitekey=settings.captcha[selected_captcha_name].site_key)
.form-group
fieldset.entryField
button.btn.btn-success(type='submit') Claim
+25
View File
@@ -0,0 +1,25 @@
extends layout
block content
if settings.shared_pages.page_header.page_title_image.enable_animation == true && settings.error_page.page_header.show_img
script.
$(document).ready(function() {
startRotateElement('img#header-img');
});
.col-xs-12.col-md-12
if settings.error_page.page_header.show_img == true || settings.error_page.page_header.show_title == true || settings.error_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.error_page.page_header.show_img == true && settings.error_page.page_header.show_title == true && settings.error_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.error_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.error_page.page_header.show_title == true
h3#page-title=settings.localization.error_title.replace('{1}', settings.coin.name)
if settings.error_page.page_header.show_description == true
if settings.error_page.page_header.show_title != true
#page-title-container
.sub-page-header.text-muted=(error.status == null ? settings.localization.error_description_alt : settings.localization.error_description)
else
.sub-page-header.text-muted=(error.status == null ? settings.localization.error_description_alt : settings.localization.error_description)
.cardSpacer.clearfix
h2=(error.status == null ? '' : error.status + ' ') + message
+12
View File
@@ -0,0 +1,12 @@
script(type='text/javascript', src='https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0&features=Intl')
script(type='text/javascript', src='https://cdn.jsdelivr.net/npm/luxon@3.4.3/build/global/luxon.min.js')
script.
function format_unixtime(unixtime, alt) {
if (alt == null)
alt = false;
// check if this date should be displayed in utc or local timezone
if (('#{settings.shared_pages.date_time.timezone}'.toLowerCase() == 'local' && !alt) || ('#{settings.shared_pages.date_time.timezone}'.toLowerCase() == 'utc' && alt))
return luxon.DateTime.fromSeconds(unixtime).toLocal().toFormat('#{settings.shared_pages.date_time.display_format}');
else
return luxon.DateTime.fromSeconds(unixtime).toUTC().toFormat('#{settings.shared_pages.date_time.display_format}');
}
+6
View File
@@ -0,0 +1,6 @@
div#difficultyChartParent(class=chartColumnClass, style='display:none;margin:10px 0;')
.card.card-default.border-0
.card-header
strong Network Difficulty
.card-body(style=(settings.shared_pages.page_header.network_charts.difficulty_chart.stretch_to_fit == true ? 'padding:0!important;' : ''))
canvas#difficultyChart(style='min-height:'+settings.shared_pages.page_header.network_charts.difficulty_chart.chart_height+'px;max-height:'+settings.shared_pages.page_header.network_charts.difficulty_chart.chart_height+'px;background-color:'+settings.shared_pages.page_header.network_charts.difficulty_chart.bgcolor+';')
+6
View File
@@ -0,0 +1,6 @@
div#nethashChartParent(class=chartColumnClass, style='display:none;margin:10px 0;')
.card.card-default.border-0
.card-header
strong Network Hashrate
.card-body(style=(settings.shared_pages.page_header.network_charts.nethash_chart.stretch_to_fit == true ? 'padding:0!important;' : ''))
canvas#nethashChart(style='min-height:'+settings.shared_pages.page_header.network_charts.nethash_chart.chart_height+'px;max-height:'+settings.shared_pages.page_header.network_charts.nethash_chart.chart_height+'px;background-color:'+settings.shared_pages.page_header.network_charts.nethash_chart.bgcolor+';')
+8
View File
@@ -0,0 +1,8 @@
if address.a_id == null
- address.a_id = address.addresses;
if settings.labels[address.a_id] != null && settings.labels[address.a_id].enabled == true
label(class='badge bg-' + (settings.labels[address.a_id].type == null || settings.labels[address.a_id].type == '' ? 'default' : settings.labels[address.a_id].type) + ' float-end d-none d-' + (active == 'richlist' ? 'md' : (active == 'tx' ? 'lg' : 'sm')) + '-block', style='margin-left:15px;margin-bottom:0;')
=settings.labels[address.a_id].label
if settings.labels[address.a_id].url
a(href=settings.labels[address.a_id].url, target='_blank', alt='Visit site', title='Visit site', data-bs-toggle='tooltip', data-bs-placement='top')
span.fa-solid.fa-circle-question(style='margin-left:5px;')
+213
View File
@@ -0,0 +1,213 @@
extends layout
block content
script.
var setting_maxTxCount = parseInt("#{settings.api_page.public_apis.ext.getlasttxs.max_items_per_query}");
var setting_txPerPage = parseInt("#{settings.index_page.transaction_table.items_per_page}");
var lengthMenuOptsAdd = !{JSON.stringify(settings.index_page.transaction_table.page_length_options)};
var lengthMenuOpts = [];
var addedLength = false;
for (i = 0; i < lengthMenuOptsAdd.length; i++) {
if (setting_maxTxCount >= lengthMenuOptsAdd[i]) {
if (!addedLength) {
if (lengthMenuOptsAdd[i] > setting_txPerPage) {
lengthMenuOpts.push(setting_txPerPage);
addedLength = true;
}
}
lengthMenuOpts.push(lengthMenuOptsAdd[i]);
if (!addedLength) {
if (lengthMenuOptsAdd[i] > setting_txPerPage)
lengthMenuOpts.push(setting_txPerPage);
if (lengthMenuOptsAdd[i] == setting_txPerPage || lengthMenuOptsAdd[i] > setting_txPerPage)
addedLength = true;
}
}
}
if (!addedLength && setting_txPerPage <= setting_maxTxCount && setting_txPerPage != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_txPerPage);
if (!addedLength && setting_txPerPage > setting_maxTxCount && setting_maxTxCount != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_maxTxCount);
if (setting_maxTxCount < setting_txPerPage)
var displayLengthMax = setting_maxTxCount;
else
var displayLengthMax = setting_txPerPage;
$(document).ready(function() {
var rtable = $('#recent-table').dataTable({
autoWidth: false,
searching: false,
ordering: false,
responsive: false,
lengthChange: true,
processing: true,
serverSide: true,
iDisplayLength: displayLengthMax,
lengthMenu: lengthMenuOpts,
scrollX: true,
ajax: {
url: '/ext/getlasttxs/0',
beforeSend: function(jqXHR, settings) {
settings.url = settings.url.substring(0, settings.url.indexOf('?')) + '/' + getParameterByName('start', settings.url) + '/' + getParameterByName('length', settings.url) + '/internal';
return true;
}
},
language: {
paginate: {
previous: '<',
next: '>'
}
},
rowCallback: function(row, data, index) {
// variables for better readability
const blockindex = data[0];
const blockhash = data[1];
const txhash = data[2];
const outputs = data[3];
const amount = data[4];
const amountParts = amount.split('.');
const updatedAmount = amountParts[0] + '.<span class="decimal">' + amountParts[1] + '</span>';
const timestamp = data[5];
let offset = 0;
$("td:eq(0)", row).html('<a href="/tx/' + txhash + '"><span class="fa-regular fa-eye" data-bs-toggle="tooltip" data-bs-placement="top" title="#{settings.localization.view_tx}"></span></a>').addClass('text-center d-table-cell d-md-none');
$("td:eq(1)", row).html('<a href="/block/' + blockhash + '">' + blockindex + '</a>');
$("td:eq(2)", row).html('<a href="/tx/' + txhash + '">' + txhash + '</a>').addClass("text-center breakWord d-none d-md-table-cell");
$("td:eq(3)", row).html(outputs).addClass("text-center d-none d-sm-table-cell");
$("td:eq(4)", row).html(updatedAmount);
if (#{settings.block_page.multi_algorithm.show_algo} == true) {
const algo = (data.length > 6 && data[6].indexOf('algo:') == 0 ? data[6].substring('algo:'.length) : '');
$("td:eq(5)", row).html(algo);
offset += 1;
}
if (#{settings.index_page.show_extracted_by} == true) {
const extracted_by = JSON.parse(data.length > 6 && data[6 + offset].indexOf('extracted_by:') == 0 ? data[6 + offset].substring('extracted_by:'.length) : '');
const labels = !{JSON.stringify(settings.labels)};
const active = '#{active}';
let extracted_contents = '';
for (i = 0; i < extracted_by.length; i++) {
extracted_contents += '<div style="overflow: auto;">';
extracted_contents += `<a href='/address/${extracted_by[i].a_id}'>${(extracted_by[i].claimname == '' ? extracted_by[i].a_id : extracted_by[i].claimname)}</a>`;
if (labels[extracted_by[i].a_id] != null && labels[extracted_by[i].a_id].enabled == true) {
extracted_contents += `<label class="badge bg-${(labels[extracted_by[i].a_id].type == null || labels[extracted_by[i].a_id].type == '' ? 'default' : labels[extracted_by[i].a_id].type)} float-end d-none d-${active == 'richlist' ? 'md' : (active == 'tx' ? 'lg' : 'sm')}-block" style="margin-left:15px;margin-bottom:0;">${labels[extracted_by[i].a_id].label}`;
if (labels[extracted_by[i].a_id].url)
extracted_contents += `<a href="${labels[extracted_by[i].a_id].url}" target="_blank" alt="Visit site" title="Visit site" data-bs-toggle="tooltip" data-bs-placement="top"><span class="fa-solid fa-circle-question" style="margin-left:5px;" /></a>`;
extracted_contents += `</label>`;
}
extracted_contents += '</div>';
}
$("td:eq(" + (5 + offset) + ")", row).html(extracted_contents).addClass("text-center");
offset += 1;
}
$("td:eq(" + (5 + offset) + ")", row).html('<span' + (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true ? ' data-bs-toggle="tooltip" data-bs-placement="auto" title="' + format_unixtime(timestamp, true) + '"' : '') + '>' + format_unixtime(timestamp) + '</span>').addClass('text-center');
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
enableTooltips();
}
});
function update_last_updated(lastUpdatedDate) {
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true)).attr('data-bs-original-title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
var setting_reload_table_seconds = parseInt("#{settings.index_page.transaction_table.reload_table_seconds}");
if (setting_reload_table_seconds > 0) {
setInterval(function () {
rtable.api().ajax.reload(null, false);
}, (setting_reload_table_seconds * 1000));
if ('#{settings.index_page.page_header.show_last_updated}' == 'true') {
setInterval(function () {
$.ajax({url: '/ext/getlastupdated/blockchain', headers: { Accept: 'application/json, text/javascript, */*; q=0.01' }, success: function(json) {
if (json != null && json.last_updated_date != null)
update_last_updated(json.last_updated_date);
else
update_last_updated(0);
}});
}, (setting_reload_table_seconds * 1000));
}
}
if ('#{settings.index_page.page_header.show_last_updated}' == 'true') {
var lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
update_last_updated(lastUpdatedDate);
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.index_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
if error !== null
.col-12
.alert.alert-danger.alert-dismissible.fade.show(role='alert')
button.btn-close(type='button', data-bs-dismiss='alert')
.cardSpacer
span.fa-solid.fa-circle-exclamation(style='margin-right:5px')
strong #{settings.localization.ex_error}
div #{error}
.col-md-12.cardSpacer
if settings.index_page.page_header.show_img == true || settings.index_page.page_header.show_title == true || settings.index_page.page_header.show_last_updated == true || settings.index_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.index_page.page_header.show_img == true && settings.index_page.page_header.show_title == true && settings.index_page.page_header.show_last_updated == true && settings.index_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.index_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.index_page.page_header.show_title == true
h3#page-title #{settings.localization.ex_title.replace('{1}', settings.coin.name)}
if settings.index_page.page_header.show_last_updated == true
if settings.index_page.page_header.show_title != true && settings.index_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.index_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.index_page.page_header.show_description == true
if settings.index_page.page_header.show_title != true && settings.index_page.page_header.show_last_updated != true
#page-title-container
.sub-page-header.text-muted=settings.localization.ex_description.replace('{1}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.ex_description.replace('{1}', settings.coin.name)
.cardSpacer.clearfix
.card.card-default.border-0.cardSpacer
.card-header
strong #{settings.localization.ex_latest_transactions}
table#recent-table.table.table-bordered.table-striped.table-paging.table-hover
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
thead
tr(class=theadClasses)
th.d-table-cell.d-md-none
th.text-center #{settings.localization.ex_block}
th.text-center.d-none.d-md-table-cell #{settings.localization.tx_hash}
th.text-center.d-none.d-sm-table-cell #{settings.localization.tx_recipients}
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{settings.coin.symbol})
if settings.block_page.multi_algorithm.show_algo == true
th.text-center="Algorithm"
if settings.index_page.show_extracted_by == true
th.text-center="Extracted By"
th.text-center #{settings.localization.timestamp}
tbody.text-center
+300
View File
@@ -0,0 +1,300 @@
extends layout
block content
script.
$(document).ready(function() {
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.api_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
.col-md-12.cardSpacer
if settings.api_page.page_header.show_img == true || settings.api_page.page_header.show_title == true || settings.api_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.api_page.page_header.show_img == true && settings.api_page.page_header.show_title == true && settings.api_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.api_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.api_page.page_header.show_title == true
h3#page-title #{settings.localization.api_title.replace('{1}', settings.coin.name)}
if settings.api_page.page_header.show_description == true
if settings.api_page.page_header.show_title != true
#page-title-container
.sub-page-header.text-muted=settings.localization.api_description.replace('{1}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.api_description.replace('{1}', settings.coin.name)
.cardSpacer.clearfix
.card.card-default.border-0
.card-header
strong #{settings.localization.api_documentation}
.card-body
if settings.api_page.show_logo == true
img(src=settings.shared_pages.logo, style='margin:0;height:128px;')
hr
- var hide_rpc_api_section = !(settings.api_page.public_apis.rpc.getdifficulty.enabled == true && settings.api_cmds['getdifficulty'] != null && settings.api_cmds['getdifficulty'] != '') && !(settings.api_page.public_apis.rpc.getconnectioncount.enabled == true && settings.api_cmds['getconnectioncount'] != null && settings.api_cmds['getconnectioncount'] != '') && !(settings.api_page.public_apis.rpc.getblockcount.enabled == true && settings.api_cmds['getblockcount'] != null && settings.api_cmds['getblockcount'] != '') && !(settings.api_page.public_apis.rpc.getblockhash.enabled == true && settings.api_cmds['getblockhash'] != null && settings.api_cmds['getblockhash'] != '') && !(settings.api_page.public_apis.rpc.getblock.enabled == true && settings.api_cmds['getblock'] != null && settings.api_cmds['getblock'] != '') && !(settings.api_page.public_apis.rpc.getrawtransaction.enabled == true && settings.api_cmds['getrawtransaction'] != null && settings.api_cmds['getrawtransaction'] != '') && !(settings.api_page.public_apis.rpc.getnetworkhashps.enabled == true && settings.shared_pages.show_hashrate == true && settings.api_cmds['getnetworkhashps'] != null && settings.api_cmds['getnetworkhashps'] != '') && !(settings.api_page.public_apis.rpc.getvotelist.enabled == true && settings.api_cmds['getvotelist'] != null && settings.api_cmds['getvotelist'] != '') && !(settings.api_page.public_apis.rpc.getmasternodecount.enabled == true && settings.api_cmds['getmasternodecount'] != null && settings.api_cmds['getmasternodecount'] != '') && (!settings.blockchain_specific.heavycoin.enabled || (!(settings.blockchain_specific.heavycoin.public_apis.getmaxmoney.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getmaxmoney'] != null && settings.blockchain_specific.heavycoin.api_cmds['getmaxmoney'] != '') && !(settings.blockchain_specific.heavycoin.public_apis.getmaxvote.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getmaxvote'] != null && settings.blockchain_specific.heavycoin.api_cmds['getmaxvote'] != '') && !(settings.blockchain_specific.heavycoin.public_apis.getvote.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getvote'] != null && settings.blockchain_specific.heavycoin.api_cmds['getvote'] != '') && !(settings.blockchain_specific.heavycoin.public_apis.getphase.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getphase'] != null && settings.blockchain_specific.heavycoin.api_cmds['getphase'] != '') && !(settings.blockchain_specific.heavycoin.public_apis.getreward.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getreward'] != null && settings.blockchain_specific.heavycoin.api_cmds['getreward'] != '') && !(settings.blockchain_specific.heavycoin.public_apis.getsupply.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getsupply'] != null && settings.blockchain_specific.heavycoin.api_cmds['getsupply'] != '') && !(settings.blockchain_specific.heavycoin.public_apis.getnextrewardestimate.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardestimate'] != null && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardestimate'] != '') && !(settings.blockchain_specific.heavycoin.public_apis.getnextrewardwhenstr.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardwhenstr'] != null && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardwhenstr'] != '')));
- var hide_ext_api_section = !settings.api_page.public_apis.ext.getmoneysupply.enabled && !settings.api_page.public_apis.ext.getdistribution.enabled && !settings.api_page.public_apis.ext.getaddress.enabled && !settings.api_page.public_apis.ext.getaddresstxs.enabled && !settings.api_page.public_apis.ext.gettx.enabled && !settings.api_page.public_apis.ext.getbalance.enabled && !settings.api_page.public_apis.ext.getlasttxs.enabled && !settings.api_page.public_apis.ext.getcurrentprice.enabled && !settings.api_page.public_apis.ext.getnetworkpeers.enabled && !settings.api_page.public_apis.ext.getbasicstats.enabled && !settings.api_page.public_apis.ext.getsummary.enabled && !(settings.api_page.public_apis.ext.getmasternodelist.enabled && settings.api_cmds['getmasternodelist'] != null && settings.api_cmds['getmasternodelist'] != '') && !settings.api_page.public_apis.ext.getmasternoderewards.enabled && !settings.api_page.public_apis.ext.getmasternoderewardstotal.enabled && pluginApisExt.length == 0;
- var market_currency = (settings.markets_page.market_price == 'COINGECKO' ? (settings.markets_page.coingecko_currency == null || settings.markets_page.coingecko_currency == '' ? '' : settings.markets_page.coingecko_currency) : (settings.markets_page.default_exchange.trading_pair != null && settings.markets_page.default_exchange.trading_pair.indexOf('/') > -1 ? settings.markets_page.default_exchange.trading_pair.split('/')[1] : '')).toUpperCase();
if !hide_rpc_api_section
h3 #{settings.localization.api_calls}
p
em Return data from coind
ul
if settings.api_page.public_apis.rpc.getdifficulty.enabled == true && settings.api_cmds['getdifficulty'] != null && settings.api_cmds['getdifficulty'] != ''
li
p
div.fw-bold getdifficulty
div
em #{settings.localization.api_getdifficulty}
a(href='/api/getdifficulty') #{address}/api/getdifficulty
if settings.api_page.public_apis.rpc.getconnectioncount.enabled == true && settings.api_cmds['getconnectioncount'] != null && settings.api_cmds['getconnectioncount'] != ''
li
p
div.fw-bold getconnectioncount
div
em #{settings.localization.api_getconnectioncount}
a(href='/api/getconnectioncount') #{address}/api/getconnectioncount
if settings.api_page.public_apis.rpc.getblockcount.enabled == true && settings.api_cmds['getblockcount'] != null && settings.api_cmds['getblockcount'] != ''
li
p
div.fw-bold getblockcount
div
em #{settings.localization.api_getblockcount}
a(href='/api/getblockcount') #{address}/api/getblockcount
if settings.api_page.public_apis.rpc.getblockhash.enabled == true && settings.api_cmds['getblockhash'] != null && settings.api_cmds['getblockhash'] != ''
li
p
div.fw-bold getblockhash [index]
div
em #{settings.localization.api_getblockhash}
a(href='/api/getblockhash?index=' + settings.api_page.sample_data.blockindex) #{address}/api/getblockhash?index=#{settings.api_page.sample_data.blockindex}
if settings.api_page.public_apis.rpc.getblock.enabled == true && settings.api_cmds['getblock'] != null && settings.api_cmds['getblock'] != ''
li
p
div.fw-bold getblock [hash]
div
em #{settings.localization.api_getblock}
a(href='/api/getblock?hash=' + settings.api_page.sample_data.blockhash) #{address}/api/getblock?hash=#{settings.api_page.sample_data.blockhash}
if settings.api_page.public_apis.rpc.getrawtransaction.enabled == true && settings.api_cmds['getrawtransaction'] != null && settings.api_cmds['getrawtransaction'] != ''
li
p
div.fw-bold getrawtransaction [txid] [decrypt]
div
em #{settings.localization.api_getrawtransaction}
div
a(href='/api/getrawtransaction?txid=' + settings.api_page.sample_data.txhash + '&decrypt=0') #{address}/api/getrawtransaction?txid=#{settings.api_page.sample_data.txhash}&decrypt=0
div
a(href='/api/getrawtransaction?txid=' + settings.api_page.sample_data.txhash + '&decrypt=1') #{address}/api/getrawtransaction?txid=#{settings.api_page.sample_data.txhash}&decrypt=1
if settings.api_page.public_apis.rpc.getnetworkhashps.enabled == true && settings.shared_pages.show_hashrate == true && settings.api_cmds['getnetworkhashps'] != null && settings.api_cmds['getnetworkhashps'] != ''
li
p
div.fw-bold getnetworkhashps
div
em #{settings.localization.api_getnetworkhashps}
a(href='/api/getnetworkhashps') #{address}/api/getnetworkhashps
if settings.api_page.public_apis.rpc.getvotelist.enabled == true && settings.api_cmds['getvotelist'] != null && settings.api_cmds['getvotelist'] != ''
li
p
div.fw-bold getvotelist
div
em #{settings.localization.api_getvotelist}
a(href='/api/getvotelist') #{address}/api/getvotelist
if settings.api_page.public_apis.rpc.getmasternodecount.enabled == true && settings.api_cmds['getmasternodecount'] != null && settings.api_cmds['getmasternodecount'] != ''
li
p
div.fw-bold getmasternodecount
div
em #{settings.localization.api_getmasternodecount}
a(href='/api/getmasternodecount') #{address}/api/getmasternodecount
if settings.blockchain_specific.heavycoin.enabled == true
if settings.blockchain_specific.heavycoin.public_apis.getmaxmoney.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getmaxmoney'] != null && settings.blockchain_specific.heavycoin.api_cmds['getmaxmoney'] != ''
li
p
div.fw-bold getmaxmoney
div
em #{settings.localization.api_getmaxmoney}
a(href='/api/getmaxmoney') #{address}/api/getmaxmoney
if settings.blockchain_specific.heavycoin.public_apis.getmaxvote.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getmaxvote'] != null && settings.blockchain_specific.heavycoin.api_cmds['getmaxvote'] != ''
li
p
div.fw-bold getmaxvote
div
em #{settings.localization.api_getmaxvote}
a(href='/api/getmaxvote') #{address}/api/getmaxvote
if settings.blockchain_specific.heavycoin.public_apis.getvote.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getvote'] != null && settings.blockchain_specific.heavycoin.api_cmds['getvote'] != ''
li
p
div.fw-bold getvote
div
em #{settings.localization.api_getvote}
a(href='/api/getvote') #{address}/api/getvote
if settings.blockchain_specific.heavycoin.public_apis.getphase.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getphase'] != null && settings.blockchain_specific.heavycoin.api_cmds['getphase'] != ''
li
p
div.fw-bold getphase
div
em #{settings.localization.api_getphase}
a(href='/api/getphase') #{address}/api/getphase
if settings.blockchain_specific.heavycoin.public_apis.getreward.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getreward'] != null && settings.blockchain_specific.heavycoin.api_cmds['getreward'] != ''
li
p
div.fw-bold getreward
div
em #{settings.localization.api_getreward}
a(href='/api/getreward') #{address}/api/getreward
if settings.blockchain_specific.heavycoin.public_apis.getsupply.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getsupply'] != null && settings.blockchain_specific.heavycoin.api_cmds['getsupply'] != ''
li
p
div.fw-bold getsupply
div
em #{settings.localization.api_getsupply}
a(href='/api/getsupply') #{address}/api/getsupply
if settings.blockchain_specific.heavycoin.public_apis.getnextrewardestimate.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardestimate'] != null && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardestimate'] != ''
li
p
div.fw-bold getnextrewardestimate
div
em #{settings.localization.api_getnextrewardestimate}
a(href='/api/getnextrewardestimate') #{address}/api/getnextrewardestimate
if settings.blockchain_specific.heavycoin.public_apis.getnextrewardwhenstr.enabled == true && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardwhenstr'] != null && settings.blockchain_specific.heavycoin.api_cmds['getnextrewardwhenstr'] != ''
li
p
div.fw-bold getnextrewardwhenstr
div
em #{settings.localization.api_getnextrewardwhenstr}
a(href='/api/getnextrewardwhenstr') #{address}/api/getnextrewardwhenstr
hr
if !hide_ext_api_section
h3 Extended API
p
em Return data from local indexes
ul
if settings.api_page.public_apis.ext.getmoneysupply.enabled == true
li
p
div.fw-bold getmoneysupply
div
em Returns current money supply
a(href='/ext/getmoneysupply') #{address}/ext/getmoneysupply
if settings.api_page.public_apis.ext.getdistribution.enabled == true
li
p
div.fw-bold getdistribution
div
em Returns wealth distribution stats
a(href='/ext/getdistribution') #{address}/ext/getdistribution
if settings.api_page.public_apis.ext.getaddress.enabled == true
li
p
div.fw-bold getaddress (/ext/getaddress/hash)
div
em Returns information for given address
a(href='/ext/getaddress/' + settings.api_page.sample_data.address) #{address}/ext/getaddress/#{settings.api_page.sample_data.address}
if settings.api_page.public_apis.ext.getaddresstxs.enabled == true
li
p
div.fw-bold getaddresstxs (/ext/getaddresstxs/hash/start/length)
div
em Returns last [length] transactions for address [hash], starting from offset [start]
a(href='/ext/getaddresstxs/' + settings.api_page.sample_data.address + '/0/50') #{address}/ext/getaddresstxs/#{settings.api_page.sample_data.address}/0/50
if settings.api_page.public_apis.ext.gettx.enabled == true
li
p
div.fw-bold gettx (/ext/gettx/hash)
div
em Returns information for given tx hash
a(href='/ext/gettx/' + settings.api_page.sample_data.txhash) #{address}/ext/gettx/#{settings.api_page.sample_data.txhash}
if settings.api_page.public_apis.ext.getbalance.enabled == true
li
p
div.fw-bold getbalance (/ext/getbalance/hash)
div
em Returns current balance of given address
a(href='/ext/getbalance/' + settings.api_page.sample_data.address) #{address}/ext/getbalance/#{settings.api_page.sample_data.address}
if settings.api_page.public_apis.ext.getlasttxs.enabled == true
li
p
div.fw-bold getlasttxs (/ext/getlasttxs/min/start/length)
div
em Returns last [length] transactions greater than [min] coins, starting from offset [start]
div
em Note: [length] is limited to returning #{settings.api_page.public_apis.ext.getlasttxs.max_items_per_query} records per query
div
a(href='/ext/getlasttxs/100/0/100') #{address}/ext/getlasttxs/100/0/100
if settings.api_page.public_apis.ext.getcurrentprice.enabled == true
li
p
div.fw-bold getcurrentprice
div
em Returns last known exchange price
a(href='/ext/getcurrentprice') #{address}/ext/getcurrentprice
if settings.api_page.public_apis.ext.getnetworkpeers.enabled == true
li
p
div.fw-bold getnetworkpeers
div
em Returns the list of network peers that have connected to the explorer node in the last 24 hours
a(href='/ext/getnetworkpeers') #{address}/ext/getnetworkpeers
if settings.api_page.public_apis.ext.getbasicstats.enabled == true
li
p
div.fw-bold getbasicstats
div
em="Returns basic statistics about the coin including: block count, circulating supply, USD price, " + market_currency + " price" + (settings.api_page.public_apis.rpc.getmasternodecount.enabled == true && settings.api_cmds['getmasternodecount'] != null && settings.api_cmds['getmasternodecount'] != '' ? ', ' + '# of masternodes' : '')
a(href='/ext/getbasicstats') #{address}/ext/getbasicstats
if settings.api_page.public_apis.ext.getsummary.enabled == true
li
p
div.fw-bold getsummary
div
em="Returns a summary of coin data including: difficulty, hybrid difficulty, circulating supply, hash rate, " + market_currency + " price, USD price, network connection count, block count" + (settings.api_page.public_apis.rpc.getmasternodecount.enabled == true && settings.api_cmds['getmasternodecount'] != null && settings.api_cmds['getmasternodecount'] != '' ? ', ' + 'count of online masternodes' + ', ' + 'count of offline masternodes' : '')
a(href='/ext/getsummary') #{address}/ext/getsummary
if settings.api_page.public_apis.ext.getmasternodelist.enabled == true && settings.api_cmds['getmasternodelist'] != null && settings.api_cmds['getmasternodelist'] != ''
li
p
div.fw-bold getmasternodelist
div
em #{settings.localization.api_getmasternodelist}
a(href='/ext/getmasternodelist') #{address}/ext/getmasternodelist
if settings.api_page.public_apis.ext.getmasternoderewards.enabled == true
li
p
div.fw-bold getmasternoderewards (/ext/getmasternoderewards/hash/since)
div
em Returns a list of masternode reward transactions for address [hash] that arrived after block height [since]
a(href='/ext/getmasternoderewards/' + settings.api_page.sample_data.address + '/' + settings.api_page.sample_data.blockindex) #{address}/ext/getmasternoderewards/#{settings.api_page.sample_data.address}/#{settings.api_page.sample_data.blockindex}
if settings.api_page.public_apis.ext.getmasternoderewardstotal.enabled == true
li
p
div.fw-bold getmasternoderewardstotal (/ext/getmasternoderewardstotal/hash/since)
div
em Returns the total number of coins earned in masternode rewards for address [hash] that arrived after block height [since]
a(href='/ext/getmasternoderewardstotal/' + settings.api_page.sample_data.address + '/' + settings.api_page.sample_data.blockindex) #{address}/ext/getmasternoderewardstotal/#{settings.api_page.sample_data.address}/#{settings.api_page.sample_data.blockindex}
each extApi in pluginApisExt
li
p
- var api_path = ''
each apiParam in extApi.api_parameters
- api_path += (api_path == '' ? '/ext/' + extApi.api_name : '') + '/' + apiParam.parameter_name
div.fw-bold #{extApi.api_name}#{(api_path == null || api_path == '' ? '' : ' (' + api_path + ')')}
div
em #{extApi.api_desc}
a(href=extApi.api_url_sample) #{address}#{extApi.api_url_sample}
hr
h3 Linking (GET)
p
em Linking to the block explorer
ul
li
p
div.fw-bold transaction (/tx/txid)
a(href='/tx/' + settings.api_page.sample_data.txhash) #{address}/tx/#{settings.api_page.sample_data.txhash}
li
p
div.fw-bold block (/block/hash)
a(href='/block/' + settings.api_page.sample_data.blockhash) #{address}/block/#{settings.api_page.sample_data.blockhash}
li
p
div.fw-bold address (/address/hash)
a(href='/address/' + settings.api_page.sample_data.address) #{address}/address/#{settings.api_page.sample_data.address}
li
p
div.fw-bold qrcode (/qr/hash)
a(href='/qr/' + settings.api_page.sample_data.address) #{address}/qr/#{settings.api_page.sample_data.address}
+1748
View File
File diff suppressed because it is too large. Load diff
+504
View File
@@ -0,0 +1,504 @@
extends layout
block content
script.
$(document).ready(function() {
if ('#{settings.markets_page.page_header.show_last_updated}' == 'true') {
var lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.markets_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
if marketdata.data != null && ((marketdata.data.buys != null && marketdata.data.buys.length > 0) || (marketdata.data.sells != null && marketdata.data.sells.length > 0) || (marketdata.data.history != null && marketdata.data.history.length > 0))
script.
$(document).ready(function() {
$('.summary-table').dataTable({
info: false,
paging: false,
searching: false,
ordering: false,
autowidth: true,
responsive: true,
scrollX: true,
fnDrawCallback: function(settings) {
fixDataTableColumns();
}
});
$('.order-table').dataTable({
info: false,
paging: false,
searching: false,
ordering: false,
scrollY: '250px',
scrollCollapse: true,
autowidth: true,
responsive: true,
scrollX: true,
fnDrawCallback: function(settings) {
fixDataTableColumns();
}
});
$('#history-table').dataTable({
searching: false,
ordering: false,
responsive: true,
scrollX: true,
language: {
paginate: {
previous: '<',
next: '>'
}
},
fnDrawCallback: function(settings) {
if ($('#history-table > tbody > tr > td > span.timestampCol').length > 0) {
$('#history-table > tbody > tr > td > span.timestampCol').each(function() {
if ($.isNumeric($(this).text())) {
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true)
$(this).attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(parseInt($(this).text()), true));
$(this).html(format_unixtime(parseInt($(this).text())));
}
});
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true)
enableTooltips();
}
fixDataTableColumns();
}
});
});
.col-xs-12.col-md-12
if settings.markets_page.page_header.show_img == true || settings.markets_page.page_header.show_title == true || settings.markets_page.page_header.show_last_updated == true || (settings.markets_page.page_header.show_exchange_url == true && marketdata.url != null && marketdata.url != '') || settings.markets_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.markets_page.page_header.show_img == true && settings.markets_page.page_header.show_title == true && ((settings.markets_page.page_header.show_last_updated == true && settings.markets_page.page_header.show_description == true) || ((settings.markets_page.page_header.show_exchange_url == true && marketdata.url != null && marketdata.url != '') && settings.markets_page.page_header.show_description == true) || ((settings.markets_page.page_header.show_exchange_url == true && marketdata.url != null && marketdata.url != '') && settings.markets_page.page_header.show_last_updated == true)) ? 'flex-start' : 'center'))
if settings.markets_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.markets_page.page_header.show_title == true
h3#page-title !{settings.localization.mkt_title.replace('{1}', marketdata.market_name + ' <span class="small fw-normal">(' + marketdata.coin + '/' + marketdata.exchange + ')</span>')}
if settings.markets_page.page_header.show_last_updated == true
if settings.markets_page.page_header.show_title != true && settings.markets_page.page_header.show_description != true && (settings.markets_page.page_header.show_exchange_url != true && marketdata.url != null && marketdata.url != '')
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.markets_page.page_header.show_description == true || (settings.markets_page.page_header.show_exchange_url == true && marketdata.url != null && marketdata.url != '') ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.markets_page.page_header.show_exchange_url == true && marketdata.url != null && marketdata.url != ''
if settings.markets_page.page_header.show_title != true && settings.markets_page.page_header.show_last_updated != true && settings.markets_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold='Link to Exchange:'
a.sub-page-header(title='Link to Exchange', target='_blank', href=marketdata.url)
span !{' Trade <span class="small fw-normal">(' + marketdata.coin + '/' + marketdata.exchange + ')</span>'}
else
.sub-page-header(style='margin-bottom:' + (settings.markets_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold='Link to Exchange:'
a.sub-page-header(title='Link to Exchange', target='_blank', href=marketdata.url)
span !{' Trade <span class="small fw-normal">(' + marketdata.coin + '/' + marketdata.exchange + ')</span>'}
if settings.markets_page.page_header.show_description == true
if settings.markets_page.page_header.show_title != true && settings.markets_page.page_header.show_last_updated != true && (settings.markets_page.page_header.show_exchange_url != true && marketdata.url != null && marketdata.url != '')
#page-title-container
.sub-page-header.text-muted=settings.localization.mkt_description.replace('{1}', marketdata.coin + '/' + marketdata.exchange).replace('{2}', marketdata.market_name)
else
.sub-page-header.text-muted=settings.localization.mkt_description.replace('{1}', marketdata.coin + '/' + marketdata.exchange).replace('{2}', marketdata.market_name)
.cardSpacer.clearfix
if settings.markets_page.show_market_select == true && settings.market_count > 1
.row
.col-md-12.cardSpacer
.card.card-default.border-0
.card-header
strong #{settings.localization.mkt_select}
.card-body
ul.nav.nav-pills
each mkt in settings.market_data
if mkt != null && mkt.id != null
each pair in mkt.trading_pairs
if market == mkt.id && marketdata.coin.toLowerCase() + '/' + marketdata.exchange.toLowerCase() == pair.pair.toLowerCase()
li.nav-item
a.nav-link.active(href='/markets/' + mkt.id + '/' + pair.pair)
if pair.isAlt == true
if mkt.alt_logo != null && mkt.alt_logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + mkt.alt_logo, title=mkt.alt_name + ' (' + pair.pair + ')', alt=mkt.alt_name + ' (' + pair.pair + ')')
else
i.market-logo.fa-solid.fa-circle-question
span #{mkt.alt_name}
span.small.fw-normal (#{pair.pair})
else
if mkt.logo != null && mkt.logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + mkt.logo, title=mkt.name + ' (' + pair.pair + ')', alt=mkt.name + ' (' + pair.pair + ')')
else
i.market-logo.fa-solid.fa-circle-question
span #{mkt.name}
span.small.fw-normal (#{pair.pair})
else
li.nav-item
a.nav-link(href='/markets/' + mkt.id + '/' + pair.pair)
if pair.isAlt == true
if mkt.alt_logo != null && mkt.alt_logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + mkt.alt_logo, title=mkt.alt_name + ' (' + pair.pair + ')', alt=mkt.alt_name + ' (' + pair.pair + ')')
else
i.market-logo.fa-solid.fa-circle-question
span #{mkt.alt_name}
span.small.fw-normal (#{pair.pair})
else
if mkt.logo != null && mkt.logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + mkt.logo, title=mkt.name + ' (' + pair.pair + ')', alt=mkt.name + ' (' + pair.pair + ')')
else
i.market-logo.fa-solid.fa-circle-question
span #{mkt.name}
span.small.fw-normal (#{pair.pair})
if marketdata.data != null && ((marketdata.data.buys != null && marketdata.data.buys.length > 0) || (marketdata.data.sells != null && marketdata.data.sells.length > 0) || (marketdata.data.history != null && marketdata.data.history.length > 0))
block market_view
script.
$(document).ready(function() {
let chartData = !{(marketdata.data.chartdata == null || marketdata.data.chartdata == 'null' || marketdata.data.chartdata == '' || marketdata.data.chartdata == '[]' ? 'null' : marketdata.data.chartdata)};
if (chartData != null) {
chartData = chartData.map(function(item) {
return {
x: item[0],
o: item[1],
h: item[2],
l: item[3],
c: item[4]
};
});
const backgroundPlugin = {
id: 'backgroundFill',
beforeDraw(chart) {
const ctx = chart.ctx;
ctx.save();
ctx.fillStyle = '#FFFFFF'; // Change chart background color
const chartArea = chart.chartArea;
ctx.fillRect(chartArea.left, chartArea.top, chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);
ctx.restore();
}
};
Chart.register(backgroundPlugin);
var ohlcvChart = new Chart('chart', {
type: 'candlestick',
data: {
datasets: [{
label: 'Market Data',
data: chartData,
borderColor: {
up: 'rgba(80, 160, 115, 1)',
down: 'rgba(215, 85, 65, 1)',
unchanged: 'rgba(90, 90, 90, 1)'
},
color: {
up: 'rgba(80, 160, 115, 1)',
down: 'rgba(215, 85, 65, 1)',
unchanged: 'rgba(90, 90, 90, 1)'
}
}]
},
options: {
maintainAspectRatio: true,
aspectRatio: 3,
scales: {
x: {
type: 'time',
offset: true,
ticks: {
padding: 10
}
},
y: {
position: 'right',
grace: '10%',
ticks: {
callback: function(value, index, values) {
return parseFloat(value).toFixed(8);
}
}
}
},
plugins: {
legend: {
display: false
},
tooltip: {
mode: 'nearest',
callbacks: {
title: function(context) {
return format_unixtime(context[0].raw.x / 1000);
},
beforeBody: function(context) {
const dataset = context[0].dataset;
const data = dataset.data[context[0].dataIndex];
return [
'Open: ' + data.o.toFixed(8),
'High: ' + data.h.toFixed(8),
'Low: ' + data.l.toFixed(8),
'Close: ' + data.c.toFixed(8)
];
},
label: function(context) {
// Suppress the default body content
return null;
}
}
},
crosshair: {
line: {
color: '#000000',
width: 1
},
sync: {
enabled: false
},
zoom: {
enabled: false
}
}
}
}
});
}
});
.row
.col-md-12.cardSpacer
.card.card-default.border-0
.card-header
if marketdata.market_logo != null && marketdata.market_logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo')
strong #{marketdata.market_name}
span.small.fw-normal (#{marketdata.coin}/#{marketdata.exchange})
strong - #{settings.localization.mkt_hours}
if marketdata.data.chartdata == null || marketdata.data.chartdata == 'null' || marketdata.data.chartdata == '' || marketdata.data.chartdata == '[]'
span.fa-solid.fa-chart-line.float-end.view-chart-disabled.market-toggle(style='cursor: pointer;color: var(--bs-body-color);', data-bs-toggle='tooltip', data-bs-placement='bottom', title=settings.localization.mkt_no_chart)
table#market-summary.table.table-bordered.bottom-border-0.summary-table.single-row-table(style='border-top:0;margin-top:0 !important;')
thead
tr(class=theadClasses)
if marketdata.data.summary != null
if marketdata.data.summary.high != null
th.text-center #{settings.localization.mkt_high}
if marketdata.data.summary.low != null
th.text-center #{settings.localization.mkt_low}
if marketdata.data.summary.volume != null
th.text-center #{settings.localization.mkt_volume}
span.small.fw-normal (#{marketdata.coin})
if marketdata.data.summary.volume_btc != null
th.text-center #{settings.localization.mkt_volume}
span.small.fw-normal (#{marketdata.exchange})
if marketdata.data.summary.bid != null
th.text-center #{settings.localization.mkt_top_bid}
if marketdata.data.summary.ask != null
th.text-center #{settings.localization.mkt_top_ask}
if marketdata.data.summary.last != null
th.text-center #{settings.localization.mkt_last}
if marketdata.data.summary.prev != null
th.text-center #{settings.localization.mkt_yesterday}
if marketdata.data.summary.change != null || (marketdata.data.summary.last != null && marketdata.data.summary.prev != null)
th.text-center #{settings.localization.mkt_change}
else
th.text-center #{settings.localization.mkt_high}
th.text-center #{settings.localization.mkt_low}
th.text-center #{settings.localization.mkt_volume}
span.small.fw-normal (#{marketdata.coin})
th.text-center #{settings.localization.mkt_volume}
span.small.fw-normal (#{marketdata.exchange})
th.text-center #{settings.localization.mkt_top_bid}
th.text-center #{settings.localization.mkt_top_ask}
th.text-center #{settings.localization.mkt_last}
th.text-center #{settings.localization.mkt_yesterday}
th.text-center #{settings.localization.mkt_change}
tbody
tr
if marketdata.data.summary != null
if marketdata.data.summary.high != null
- var splitHigh = marketdata.data.summary.high.split('.');
td.text-center #{splitHigh[0]}.
span.decimal #{splitHigh[1]}
if marketdata.data.summary.low != null
- var splitLow = marketdata.data.summary.low.split('.');
td.text-center #{splitLow[0]}.
span.decimal #{splitLow[1]}
if marketdata.data.summary.volume != null
- var splitVolume = marketdata.data.summary.volume.split('.');
td.text-center #{splitVolume[0]}.
span.decimal #{splitVolume[1]}
if marketdata.data.summary.volume_btc != null
- var splitVolumeBTC = marketdata.data.summary.volume_btc.split('.');
td.text-center #{splitVolumeBTC[0]}.
span.decimal #{splitVolumeBTC[1]}
if marketdata.data.summary.bid != null
- var splitBid = marketdata.data.summary.bid.split('.');
td.text-center #{splitBid[0]}.
span.decimal #{splitBid[1]}
if marketdata.data.summary.ask != null
- var splitAsk = marketdata.data.summary.ask.split('.');
td.text-center #{splitAsk[0]}.
span.decimal #{splitAsk[1]}
if marketdata.data.summary.last != null
- var splitLast = marketdata.data.summary.last.split('.');
td.text-center #{splitLast[0]}.
span.decimal #{splitLast[1]}
if marketdata.data.summary.prev != null
- var splitPrev = marketdata.data.summary.prev.split('.');
td.text-center #{splitPrev[0]}.
span.decimal #{splitPrev[1]}
if marketdata.data.summary.change != null || (marketdata.data.summary.last != null && marketdata.data.summary.prev != null)
- var splitChange = marketdata.data.summary.change.split('.');
if marketdata.data.summary.change_num > 0
td.text-center.text-success.fw-bold +#{splitChange[0]}.
span.decimal #{splitChange[1]}
span %
else if marketdata.data.summary.change_num < 0
td.text-center.text-danger.fw-bold #{splitChange[0]}.
span.decimal #{splitChange[1]}
span %
else
td.text-center.fw-bold #{splitChange[0]}.
span.decimal #{splitChange[1]}
span %
else
td.text-center -
td.text-center -
td.text-center -
td.text-center -
td.text-center -
td.text-center -
td.text-center -
td.text-center -
td.text-center -
if marketdata.data.chartdata != null && marketdata.data.chartdata != 'null' && marketdata.data.chartdata != '' && marketdata.data.chartdata != '[]'
#marketChart.row
.col-md-12.cardSpacer
.card.card-default.border-0
.card-header
if marketdata.market_logo != null && marketdata.market_logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo')
strong #{marketdata.market_name} - #{marketdata.coin}/#{marketdata.exchange} - #{settings.localization.mkt_hours}
.card-body
canvas#chart(style='height:300px;')
.row
.col-md-6.col-xs-12.cardSpacer
.card.card-default.border-0.wrapper-border-0(class=theadClasses)
.card-header(style='border-bottom-width:1px;')
if marketdata.market_logo != null && marketdata.market_logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo')
strong(style='color:var(--bs-body-color)') #{settings.localization.mkt_buy_orders}
table#buy-orders.table.table-striped.table-bordered.table-hover.order-table.bottom-border-0
thead
tr(class=theadClasses)
th.text-center #{settings.localization.mkt_price}
span.small.fw-normal (#{marketdata.exchange})
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{marketdata.coin})
th.text-center #{settings.localization.mkt_total}
span.small.fw-normal (#{marketdata.exchange})
tbody
if marketdata.data.buys != null
each buy in marketdata.data.buys
- var splitPrice = buy.price.split('.');
- var splitQuantity = buy.quantity.split('.');
- var splitTotal = buy.total.split('.');
tr
td.text-center.text-success.fw-bold #{splitPrice[0]}.
span.decimal #{splitPrice[1]}
td.text-center #{splitQuantity[0]}.
span.decimal #{splitQuantity[1]}
td.text-center #{splitTotal[0]}.
span.decimal #{splitTotal[1]}
.col-md-6.col-xs-12.cardSpacer
.card.card-default.border-0.wrapper-border-0(class=theadClasses)
.card-header(style='border-bottom-width:1px;')
if marketdata.market_logo != null && marketdata.market_logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo')
strong(style='color:var(--bs-body-color)') #{settings.localization.mkt_sell_orders}
table#sell-orders.table.table-striped.table-bordered.table-hover.order-table.bottom-border-0
thead
tr(class=theadClasses)
th.text-center #{settings.localization.mkt_price}
span.small.fw-normal (#{marketdata.exchange})
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{marketdata.coin})
th.text-center #{settings.localization.mkt_total}
span.small.fw-normal (#{marketdata.exchange})
tbody
if marketdata.data.sells != null
each sell in marketdata.data.sells
- var splitPrice = sell.price.split('.');
- var splitQuantity = sell.quantity.split('.');
- var splitTotal = sell.total.split('.');
tr
td.text-center.text-danger.fw-bold #{splitPrice[0]}.
span.decimal #{splitPrice[1]}
td.text-center #{splitQuantity[0]}.
span.decimal #{splitQuantity[1]}
td.text-center #{splitTotal[0]}.
span.decimal #{splitTotal[1]}
.row
.col-md-12
.card.card-default.border-0
.card-header
if marketdata.market_logo != null && marketdata.market_logo != ''
img.align-top.market-logo(src='data:image/png;base64,' + marketdata.market_logo, title=marketdata.market_name + ' Logo', alt=marketdata.market_name + ' Logo')
strong #{settings.localization.mkt_trade_history}
table#history-table.table.table-hover.table-bordered.table-striped.table-paging(cellspacing='0')
thead
tr(class=theadClasses)
th.text-center #{settings.localization.mkt_price}
span.small.fw-normal (#{marketdata.exchange})
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{marketdata.coin})
th.text-center #{settings.localization.mkt_total}
span.small.fw-normal (#{marketdata.exchange})
th.text-center #{settings.localization.mkt_time_stamp}
tbody
if marketdata.data.history != null
each order in marketdata.data.history
if order.ordertype != null
- var splitPrice = order.price.split('.');
- var splitQuantity = order.quantity.split('.');
- var splitTotal = order.total.split('.');
if order.ordertype.toUpperCase() == 'BUY'
tr
td.text-center.text-success.fw-bold #{splitPrice[0]}.
span.decimal #{splitPrice[1]}
td.text-center #{splitQuantity[0]}.
span.decimal #{splitQuantity[1]}
td.text-center #{splitTotal[0]}.
span.decimal #{splitTotal[1]}
td.text-center
span.timestampCol=order.timestamp
else
tr
td.text-center.text-danger.fw-bold #{splitPrice[0]}.
span.decimal #{splitPrice[1]}
td.text-center #{splitQuantity[0]}.
span.decimal #{splitQuantity[1]}
td.text-center #{splitTotal[0]}.
span.decimal #{splitTotal[1]}
td.text-center
span.timestampCol=order.timestamp
else
.alert.alert-danger.alert-dismissible.fade.show(role='alert')
button.btn-close(type='button', data-bs-dismiss='alert')
.cardSpacer
span.fa-solid.fa-circle-exclamation(style='margin-right:5px')
strong #{marketdata.market_name} #{settings.localization.ex_error}
div This market has no data to display.
+239
View File
@@ -0,0 +1,239 @@
extends layout
block content
script.
var setting_txPerPage = parseInt("#{settings.masternodes_page.masternode_table.items_per_page}");
var lengthMenuOpts = !{JSON.stringify(settings.masternodes_page.masternode_table.page_length_options)};
var addedLength = false;
for (i = 0; i < lengthMenuOpts.length; i++) {
if (!addedLength) {
if (lengthMenuOpts[i] > setting_txPerPage) {
lengthMenuOpts.splice(i, 0, setting_txPerPage);
addedLength = true;
} else if (lengthMenuOpts[i] == setting_txPerPage)
addedLength = true;
}
}
if (!addedLength && setting_txPerPage != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_txPerPage);
function secondsToHms(d) {
d = Number(d);
var h = Math.floor(d / 3600);
var m = Math.floor(d % 3600 / 60);
var s = Math.floor(d % 3600 % 60);
var dy = Math.floor(h / 24);
var h = h % 24;
return ('0' + dy).slice(-2) + " day" + (('0' + dy).slice(-2) == 1 ? "" : "s") + " " + ('0' + h).slice(-2) + "h " + ('0' + m).slice(-2) + "m " + ('0' + s).slice(-2) + "s";
}
$(document).ready(function() {
var enabled_columns = {
rank: false,
network: false,
status : false,
addr: false,
version : false,
lastseen: false,
activetime: false,
lastpaid: false,
ip_address: false,
last_paid_block: false
};
var labels = !{JSON.stringify(settings.labels)};
var ctable = $('#masternodes-table').dataTable({
autoWidth: true,
searching: true,
ordering: true,
order: [[ 5, 'desc' ]],
responsive: true,
lengthChange: true,
processing: true,
iDisplayLength: setting_txPerPage,
lengthMenu: lengthMenuOpts,
scrollX: true,
language: {
paginate: {
previous: '<',
next: '>'
}
},
ajax: {
url: '/ext/getmasternodelist',
dataSrc: function(json) {
for (i = 0; i < json.length; i++) {
if (json[i]['rank'] != null && json[i]['rank'] > 0)
enabled_columns.rank = true;
if (json[i]['network'] != null && json[i]['network'] != '')
enabled_columns.network = true;
if (json[i]['ip_address'] != null && json[i]['ip_address'] != '')
enabled_columns.ip_address = true;
if (json[i]['version'] != null && json[i]['version'] > 0)
enabled_columns.version = true;
if (json[i]['lastseen'] != null && json[i]['lastseen'] > 0)
enabled_columns.lastseen = true;
if (json[i]['lastpaid'] != null && json[i]['lastpaid'] > 0)
enabled_columns.lastpaid = true;
if (json[i]['last_paid_block'] != null && json[i]['last_paid_block'] > 0)
enabled_columns.last_paid_block = true;
if (json[i]['activetime'] != null && json[i]['activetime'] > 0)
enabled_columns.activetime = true;
if (json[i]['status'] != null && json[i]['status'] != '')
enabled_columns.status = true;
if (json[i]['addr'] != null && json[i]['addr'] != '')
enabled_columns.addr = true;
var addr = json[i]['addr'];
if (json[i]['lastseen'] != null)
json[i]['lastseen'] = '<span' + (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true ? ' data-bs-toggle="tooltip" data-bs-placement="auto" title="' + format_unixtime(json[i]['lastseen'], true) + '"' : '') + '>' + format_unixtime(json[i]['lastseen']) + '</span>';
if (json[i]['lastpaid'] != null && json[i]['lastpaid'] != '' && json[i]['lastpaid'] != '0')
json[i]['lastpaid'] = '<span' + (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true ? ' data-bs-toggle="tooltip" data-bs-placement="auto" title="' + format_unixtime(json[i]['lastpaid'], true) + '"' : '') + '>' + format_unixtime(json[i]['lastpaid']) + '</span>';
else
json[i]['lastpaid'] = '<em>N/A</em>';
if (json[i]['activetime'])
json[i]['activetime'] = secondsToHms(json[i]['activetime']);
else
json[i]['activetime'] = '<em>N/A</em>';
json[i]['addr'] = "<a href='/address/" + json[i]['addr'] + "'>" + json[i]['addr'] + ('#{settings.claim_address_page.enabled}' == 'true' && json[i]['claim_name'] != null && json[i]['claim_name'] != '' ? ' <span class="small fw-normal">(' + json[i]['claim_name'] + ')</span>' : '') + "</a>";
if (labels[addr] != null && labels[addr].enabled == true) {
if (labels[addr].type)
json[i]['addr'] = '<div><label class="badge bg-' + labels[addr].type + '" style="margin-bottom:10px;">' + labels[addr].label + (labels[addr].url ? '<a href="' + labels[addr].url + '" target="_blank", alt="Visit site", title="Visit site" data-bs-toggle="tooltip" data-bs-placement="top"><span class="fa-solid fa-circle-question" style="margin-left:5px"></span></a>' : '') + '</label></div>' + json[i]['addr'];
else
json[i]['addr'] = '<div><label class="badge bg-default" style="margin-bottom:10px;">' + labels[addr].label + (labels[addr].url ? '<a href="' + labels[addr].url + '" target="_blank", alt="Visit site", title="Visit site" data-bs-toggle="tooltip" data-bs-placement="top"><span class="fa-solid fa-circle-question" style="margin-left:5px"></span></a>' : '') + '</label></div>' + json[i]['addr'];
}
}
return json;
}
},
columns: [
{ name: 'ip_address', data: 'ip_address', className: "ipAddressCol" },
{ name: 'rank', data: 'rank', className: "rankCol" },
{ name: 'network', data: 'network', className: "networkCol" },
{ name: 'addr', data: 'addr', className: "addressCol" },
{ name: 'version', data: 'version', className: "versionCol" },
{ name: 'lastseen', data: 'lastseen', className: "lastSeenCol" },
{ name: 'lastpaid', data: 'lastpaid', className: "lastPaidCol" },
{ name: 'last_paid_block', data: 'last_paid_block', className: "lastPaidBlockCol" },
{ name: 'activetime', data: 'activetime', className: "activeTimeCol" },
{ name: 'status', data: 'status', className: "statusCol" }
],
rowCallback: function(row, data, index) {
$("td.addressCol", row).addClass("breakWord");
$("td.ipAddressCol", row).addClass("breakWord");
switch (data['status'].toUpperCase()) {
case 'ENABLED':
$("td.statusCol", row).addClass('table-success');
break;
case 'REMOVE':
$("td.statusCol", row).addClass('table-danger');
break;
case 'EXPIRED':
case 'WATCHDOG_EXPIRED':
case 'NEW_START_REQUIRED':
case 'UPDATE_REQUIRED':
case 'POSE_BANNED':
$("td.statusCol", row).addClass('table-warning');
break;
default:
$("td.statusCol", row).addClass('table-info');
break;
}
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
enableTooltips();
},
fnInitComplete: function(settings, json) {
setTimeout(function () {
// Hide/show columns based on whether they have data or not
ctable.api().column('rank:name').visible(enabled_columns.rank, false);
ctable.api().column('network:name').visible(enabled_columns.network, false);
ctable.api().column('version:name').visible(enabled_columns.version, false);
ctable.api().column('lastseen:name').visible(enabled_columns.lastseen, false);
ctable.api().column('activetime:name').visible(enabled_columns.activetime, false);
ctable.api().column('ip_address:name').visible(enabled_columns.ip_address, false);
ctable.api().column('last_paid_block:name').visible(enabled_columns.last_paid_block, false);
ctable.api().column('status:name').visible(enabled_columns.status, false);
ctable.api().column('addr:name').visible(enabled_columns.addr, false);
ctable.api().column('lastpaid:name').visible(enabled_columns.lastpaid, false);
fixDataTableColumns();
}, 0);
}
});
if ('#{settings.masternodes_page.page_header.show_last_updated}' == 'true') {
const lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.masternodes_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
.col-md-12.cardSpacer
if settings.masternodes_page.page_header.show_img == true || settings.masternodes_page.page_header.show_title == true || settings.masternodes_page.page_header.show_last_updated == true || settings.masternodes_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.masternodes_page.page_header.show_img == true && settings.masternodes_page.page_header.show_title == true && settings.masternodes_page.page_header.show_last_updated == true && settings.masternodes_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.masternodes_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.masternodes_page.page_header.show_title == true
h3#page-title #{settings.localization.mn_title.replace('{1}', settings.coin.name)}
if settings.masternodes_page.page_header.show_last_updated == true
if settings.masternodes_page.page_header.show_title != true && settings.masternodes_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.masternodes_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.masternodes_page.page_header.show_description == true
if settings.masternodes_page.page_header.show_title != true && settings.masternodes_page.page_header.show_last_updated != true
#page-title-container
.sub-page-header.text-muted=settings.localization.mn_description.replace('{1}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.mn_description.replace('{1}', settings.coin.name)
.cardSpacer.clearfix
.card.card-default.border-0.cardSpacer
.card-header
strong Masternode List
table#masternodes-table.table.table-bordered.table-striped.table-paging.table-hover
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
thead
tr(class=theadClasses)
th.text-center IP address
th.text-center Pay rank
th.text-center Network
th.text-center Wallet address
th.text-center Protocol
th.text-center Last seen
th.text-center Last paid
th.text-center Last paid block
th.text-center Active since
th.text-center Status
tbody.text-center
+164
View File
@@ -0,0 +1,164 @@
extends layout
block content
script.
var setting_maxTxCount = parseInt("#{settings.api_page.public_apis.ext.getlasttxs.max_items_per_query}");
var setting_txPerPage = parseInt("#{settings.movement_page.movement_table.items_per_page}");
var lengthMenuOptsAdd = !{JSON.stringify(settings.movement_page.movement_table.page_length_options)};
var lengthMenuOpts = [];
var addedLength = false;
for (i = 0; i < lengthMenuOptsAdd.length; i++) {
if (setting_maxTxCount >= lengthMenuOptsAdd[i]) {
if (!addedLength) {
if (lengthMenuOptsAdd[i] > setting_txPerPage) {
lengthMenuOpts.push(setting_txPerPage);
addedLength = true;
}
}
lengthMenuOpts.push(lengthMenuOptsAdd[i]);
if (!addedLength) {
if (lengthMenuOptsAdd[i] > setting_txPerPage)
lengthMenuOpts.push(setting_txPerPage);
if (lengthMenuOptsAdd[i] == setting_txPerPage || lengthMenuOptsAdd[i] > setting_txPerPage)
addedLength = true;
}
}
}
if (!addedLength && setting_txPerPage <= setting_maxTxCount && setting_txPerPage != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_txPerPage);
if (!addedLength && setting_txPerPage > setting_maxTxCount && setting_maxTxCount != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_maxTxCount);
if (setting_maxTxCount < setting_txPerPage)
var displayLengthMax = setting_maxTxCount;
else
var displayLengthMax = setting_txPerPage;
$(document).ready(function() {
var rtable = $('#movement-table').dataTable({
autoWidth: true,
searching: false,
ordering: false,
lengthChange: true,
processing: true,
serverSide: true,
iDisplayLength: displayLengthMax,
lengthMenu: lengthMenuOpts,
scrollX: true,
ajax: {
url: '/ext/getlasttxs/#{settings.movement_page.movement_table.min_amount}',
beforeSend: function(jqXHR, settings) {
settings.url = settings.url.substring(0, settings.url.indexOf('?')) + '/' + getParameterByName('start', settings.url) + '/' + getParameterByName('length', settings.url) + '/internal';
return true;
}
},
language: {
paginate: {
previous: '<',
next: '>'
}
},
rowCallback: function(row, data, index) {
// variables for better readability
var blockindex = data[0];
var blockhash = data[1];
var txhash = data[2];
var outputs = data[3];
var amountString = data[4];
var timestamp = data[5];
var amount = Number(amountString.replace(/,/g, ''));
var amountParts = amountString.split('.');
var amountStr = amountParts[0] + '.<span class="decimal">' + amountParts[1] + '</span>';
var total = "<label class='badge bg-" + (amount > '#{settings.movement_page.movement_table.high_warning_flag}' ? 'danger' : (amount > '#{settings.movement_page.movement_table.low_warning_flag}' ? 'warning' : 'success')) + "' style='margin-bottom:0;'>" + amountStr + "</label>";
$("td:eq(0)", row).html('<a href="/tx/' + txhash + '"><span class="fa-regular fa-eye" data-bs-toggle="tooltip" data-bs-placement="top" title="#{settings.localization.view_tx}"></span></a>').addClass('text-center d-table-cell d-md-none');
$("td:eq(1)", row).html('<a href="/tx/' + txhash + '">' + txhash + '</a>').addClass('breakWord d-none d-md-table-cell');
$("td:eq(2)", row).html(total).addClass('text-center');
$("td:eq(3)", row).html('<span' + (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true ? ' data-bs-toggle="tooltip" data-bs-placement="auto" title="' + format_unixtime(timestamp, true) + '"' : '') + '>' + format_unixtime(timestamp) + '</span>').addClass('text-center');
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
enableTooltips();
}
});
function update_last_updated(lastUpdatedDate) {
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true)).attr('data-bs-original-title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
var setting_reload_table_seconds = parseInt("#{settings.movement_page.movement_table.reload_table_seconds}");
if (setting_reload_table_seconds > 0) {
setInterval(function () {
rtable.api().ajax.reload(null, false);
}, (setting_reload_table_seconds * 1000));
if ('#{settings.movement_page.page_header.show_last_updated}' == 'true') {
setInterval(function () {
$.ajax({url: '/ext/getlastupdated/movement', headers: { Accept: 'application/json, text/javascript, */*; q=0.01' }, success: function(json) {
if (json != null && json.last_updated_date != null)
update_last_updated(json.last_updated_date);
else
update_last_updated(0);
}});
}, (setting_reload_table_seconds * 1000));
}
}
if ('#{settings.movement_page.page_header.show_last_updated}' == 'true') {
var lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
update_last_updated(lastUpdatedDate);
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.movement_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
.col-md-12
if settings.movement_page.page_header.show_img == true || settings.movement_page.page_header.show_title == true || settings.movement_page.page_header.show_last_updated == true || settings.movement_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.movement_page.page_header.show_img == true && settings.movement_page.page_header.show_title == true && settings.movement_page.page_header.show_last_updated == true && settings.movement_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.movement_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.movement_page.page_header.show_title == true
h3#page-title #{settings.localization.move_title.replace('{1}', settings.coin.name)}
if settings.movement_page.page_header.show_last_updated == true
if settings.movement_page.page_header.show_title != true && settings.movement_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.movement_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.movement_page.page_header.show_description == true
if settings.movement_page.page_header.show_title != true && settings.movement_page.page_header.show_last_updated != true
#page-title-container
.sub-page-header.text-muted=settings.localization.move_description.replace('{1}', settings.movement_page.movement_table.min_amount).replace('{2}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.move_description.replace('{1}', settings.movement_page.movement_table.min_amount).replace('{2}', settings.coin.name)
.cardSpacer.clearfix
.card.card-default.border-0.cardSpacer
.card-header
strong="Latest Movement"
table#movement-table.table.table-bordered.table-striped.table-paging.table-hover.mobile-border-right
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
thead
tr(class=theadClasses)
th.d-table-cell.d-md-none
th.d-none.d-md-table-cell #{settings.localization.tx_hash}
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{settings.coin.symbol})
th.text-center #{settings.localization.timestamp}
tbody
+279
View File
@@ -0,0 +1,279 @@
extends layout
block content
script.
function generateLengthMenu(setting_txPerPage, lengthMenuOpts) {
var addedLength = false;
for (i = 0; i < lengthMenuOpts.length; i++) {
if (!addedLength) {
if (lengthMenuOpts[i] > setting_txPerPage) {
lengthMenuOpts.splice(i, 0, setting_txPerPage);
addedLength = true;
} else if (lengthMenuOpts[i] == setting_txPerPage)
addedLength = true;
}
}
if (!addedLength && setting_txPerPage != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_txPerPage);
return lengthMenuOpts;
}
$(document).ready(function() {
$.ajax({
method: 'GET',
url: '/ext/getnetworkpeers/internal',
dataType: 'json'
}).done(function(peers) {
const connection_table_enabled = #{settings.network_page.connections_table.enabled};
if (connection_table_enabled) {
const setting_con_txPerPage = parseInt("#{settings.network_page.connections_table.items_per_page}");
const setting_con_port_filter = "#{settings.network_page.connections_table.port_filter}";
const column_width = (setting_con_port_filter == '-1' ? '25%' : '20%');
let columns = [];
columns.push({ data: 'address', width: column_width });
if (setting_con_port_filter != '' && setting_con_port_filter != '-1')
columns.push({ data: 'port', width: column_width });
columns.push({ data: 'protocol', width: column_width });
columns.push({ data: 'version', width: column_width });
columns.push({ data: 'country', width: column_width });
$('#connections-table').dataTable({
autoWidth: true,
searching: false,
ordering: true,
order: [],
responsive: true,
lengthChange: true,
processing: true,
iDisplayLength: setting_con_txPerPage,
lengthMenu: generateLengthMenu(setting_con_txPerPage, !{JSON.stringify(settings.network_page.connections_table.page_length_options)}),
scrollX: true,
language: {
paginate: {
previous: '<',
next: '>'
}
},
data: peers.connection_peers,
rowCallback: function (row, data, index) {
const flagBlock = (data['country_code'].length > 1 ? '<span class="margin-left-5 fi fi-'+data['country_code'].toLowerCase()+'"></span>' : '');
let colIndex = 1;
$("td:eq(0)", row).html(data['address']).addClass('breakWord');
if (setting_con_port_filter != '' && setting_con_port_filter != '-1') {
$("td:eq(1)", row).html(data['port'] || '');
colIndex = 2;
}
$(`td:eq(${colIndex})`, row).html(data['protocol']);
$(`td:eq(${colIndex + 1})`, row).html(data['version']);
$(`td:eq(${colIndex + 2})`, row).html(data['country'] + flagBlock);
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
},
columns: columns
});
}
const addnode_table_enabled = #{settings.network_page.addnodes_table.enabled};
if (addnode_table_enabled) {
const setting_add_txPerPage = parseInt("#{settings.network_page.addnodes_table.items_per_page}");
const setting_add_port_filter = "#{settings.network_page.addnodes_table.port_filter}";
$('#addnodes-table').dataTable({
autoWidth: true,
searching: false,
ordering: false,
responsive: true,
lengthChange: true,
processing: true,
iDisplayLength: setting_add_txPerPage,
lengthMenu: generateLengthMenu(setting_add_txPerPage, !{JSON.stringify(settings.network_page.addnodes_table.page_length_options)}),
scrollX: true,
language: {
paginate: {
previous: '<',
next: '>'
}
},
data: peers.addnode_peers,
rowCallback: function(row, data, index) {
const nodes = 'addnode=' + (data['address'] != null && data['address'].indexOf(':') > -1 ? '[' + data['address'] + ']' : data['address']) + (data['port'] == null || data['port'] == '' || setting_add_port_filter == '' || setting_add_port_filter == '-1' ? '' : ':' + data['port']);
$("td:eq(0)", row).css('white-space', 'nowrap').html(`<button class="btn btn-sm btn-copy" type="button"><i class="fa-regular fa-copy"></i></button>&nbsp;<span>${nodes}</span>`);
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
},
columns: [
{data: null, width: '100%'}
],
columnDefs: [
{targets: '_all', className: 'text-start'}
]
});
}
const onetry_table_enabled = #{settings.network_page.onetry_table.enabled};
if (onetry_table_enabled) {
const setting_one_txPerPage = parseInt("#{settings.network_page.onetry_table.items_per_page}");
const setting_one_port_filter = "#{settings.network_page.onetry_table.port_filter}";
$('#onetry-table').dataTable({
autoWidth: true,
searching: false,
ordering: false,
responsive: true,
lengthChange: true,
processing: true,
iDisplayLength: setting_one_txPerPage,
lengthMenu: generateLengthMenu(setting_one_txPerPage, !{JSON.stringify(settings.network_page.onetry_table.page_length_options)}),
scrollX: true,
language: {
paginate: {
previous: '<',
next: '>'
}
},
data: peers.onetry_peers,
rowCallback: function(row, data, index) {
const nodes = 'addnode ' + (data['address'] != null && data['address'].indexOf(':') > -1 ? '[' + data['address'] + ']' : data['address']) + (data['port'] == null || data['port'] == '' || setting_one_port_filter == '' || setting_one_port_filter == '-1' ? '' : ':' + data['port']) + ' onetry';
$("td:eq(0)", row).css('white-space', 'nowrap').html(`<button class="btn btn-sm btn-copy" type="button"><i class="fa-regular fa-copy"></i></button>&nbsp;<span>${nodes}</span>`);
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
},
columns: [
{data: null, width: '100%'}
],
columnDefs: [
{targets: '_all', className: 'text-start'}
]
});
}
});
$('a[data-bs-toggle="tab"]').on('shown.bs.tab', function (e) {
fixDataTableColumns();
fixFooterHeightAndPosition();
});
if ('#{settings.network_page.page_header.show_last_updated}' == 'true') {
const lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.network_page.page_header.show_img} == true)
startRotateElement('img#header-img');
$('#addnodes').on('click', 'button.btn-copy', function (event) {
const btn = $(this);
if (btn.html().indexOf('fa-copy') > -1) {
const tmp = $('<input>');
$('body').append(tmp);
tmp.val(btn.parent().find('span').html()).select();
document.execCommand('copy');
tmp.remove();
btn.tooltip({title: 'Copied!', placement: 'top', trigger: 'manual'}).tooltip('show');
btn.html('<i class="fa-solid fa-check"></i>');
setTimeout(function() {
btn.html('<i class="fa-regular fa-copy"></i>');
btn.tooltip('dispose');
}, 1500);
}
});
});
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
.col-md-12.cardSpacer
.container
if settings.network_page.page_header.show_img == true || settings.network_page.page_header.show_title == true || settings.network_page.page_header.show_last_updated == true || settings.network_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.network_page.page_header.show_img == true && settings.network_page.page_header.show_title == true && settings.network_page.page_header.show_last_updated == true && settings.network_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.network_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.network_page.page_header.show_title == true
h3#page-title #{settings.localization.net_title.replace('{1}', settings.coin.name)}
if settings.network_page.page_header.show_last_updated == true
if settings.network_page.page_header.show_title != true && settings.network_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.network_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.network_page.page_header.show_description == true
if settings.network_page.page_header.show_title != true && settings.network_page.page_header.show_last_updated != true
#page-title-container
.sub-page-header.text-muted=settings.localization.net_description.replace('{1}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.net_description.replace('{1}', settings.coin.name)
.cardSpacer.clearfix
ul.nav.nav-tabs(role='tablist')
if settings.network_page.connections_table.enabled
li.nav-item(role='presentation')
a.nav-link.active(href='#connections', aria-controls='connections', role='tab', data-bs-toggle='tab') #{settings.localization.net_connections}
if settings.network_page.addnodes_table.enabled || settings.network_page.onetry_table.enabled
li.nav-item(role='presentation')
a.nav-link(class=(settings.network_page.connections_table.enabled ? '' : 'active'), href='#addnodes', aria-controls='addnodes', role='tab', data-bs-toggle='tab') #{settings.localization.net_addnodes}
.tab-content
if settings.network_page.connections_table.enabled
#connections.container.tab-pane.active(style='margin-top:0;border-top:0;')
.card.card-default.border-0
table#connections-table.table.table-bordered.table-striped.table-paging.table-hover.mobile-border-right
thead
tr(class=theadClasses)
th.text-center #{settings.localization.net_address}
if settings.network_page.connections_table.port_filter != null && settings.network_page.connections_table.port_filter != -1
th.text-center='Port'
th.text-center #{settings.localization.net_protocol}
th.text-center #{settings.localization.net_subversion}
th.text-center #{settings.localization.net_country}
tbody.text-center
if settings.network_page.addnodes_table.enabled || settings.network_page.onetry_table.enabled
#addnodes.container.tab-pane(class=(settings.network_page.connections_table.enabled ? '' : 'active'), style='margin-top:0;border-top:0;')
.card.card-default.border-0
if settings.network_page.addnodes_table.enabled
.card-body.border-top-0
p If you have trouble syncing your wallet, add these lines to your coin daemon .conf file and restart the wallet.
p
em Typically you can access the config file through QT-wallet menu, Tools > Open Wallet Configuration File
table#addnodes-table.table.table-bordered.table-striped.table-paging.table-hover.mobile-border-right
thead
tr(class=theadClasses)
th AddNode Config Lines
tbody
if settings.network_page.onetry_table.enabled
.card-body.border-top-0
p If you have trouble syncing your wallet, run these lines in the coin wallet debug window, or add them with
em coindaemon-cli
table#onetry-table.table.table-bordered.table-striped.table-paging.table-hover.mobile-border-right
thead
tr(class=theadClasses)
th OneTry Node Lines
tbody
+122
View File
@@ -0,0 +1,122 @@
extends layout
block content
script.
var setting_txPerPage = parseInt("#{settings.orphans_page.orphans_table.items_per_page}");
var lengthMenuOpts = !{JSON.stringify(settings.orphans_page.orphans_table.page_length_options)};
var addedLength = false;
for (i = 0; i < lengthMenuOpts.length; i++) {
if (!addedLength) {
if (lengthMenuOpts[i] > setting_txPerPage) {
lengthMenuOpts.splice(i, 0, setting_txPerPage);
addedLength = true;
} else if (lengthMenuOpts[i] == setting_txPerPage)
addedLength = true;
}
}
if (!addedLength && setting_txPerPage != lengthMenuOpts[lengthMenuOpts.length - 1])
lengthMenuOpts.push(setting_txPerPage);
$(document).ready(function() {
var otable = $('#orphans-table').dataTable({
autoWidth: true,
searching: false,
ordering: false,
lengthChange: true,
processing: true,
serverSide: true,
iDisplayLength: setting_txPerPage,
lengthMenu: lengthMenuOpts,
scrollX: true,
ajax: {
url: '/ext/getorphanlist',
beforeSend: function(jqXHR, settings) {
settings.url = settings.url.substring(0, settings.url.indexOf('?')) + '/' + getParameterByName('start', settings.url) + '/' + getParameterByName('length', settings.url);
return true;
}
},
language: {
paginate: {
previous: '<',
next: '>'
}
},
rowCallback: function(row, data, index) {
var blockindex = data[0];
var orphan_blockhash = data[1];
var good_blockhash = data[2];
var prev_blockhash = data[3];
var next_blockhash = data[4];
$("td:eq(0)", row).html('<a href="/block/' + orphan_blockhash + '"><span class="fa-regular fa-eye" data-bs-toggle="tooltip" data-bs-placement="top" title="#{settings.localization.view_orphan}"></span></a>').addClass('text-center d-table-cell d-md-none');
$("td:eq(1)", row).html('<a href="/block/' + orphan_blockhash + '">' + orphan_blockhash + '</a>').addClass('breakWord d-none d-md-table-cell');
$("td:eq(2)", row).html('<a href="/block/' + good_blockhash + '">' + blockindex.toString() + '</a>').addClass('text-center');
$("td:eq(3)", row).html('<a href="/block/' + prev_blockhash + '">' + (blockindex - 1).toString() + '</a>').addClass('text-center');
if (next_blockhash == null)
$("td:eq(4)", row).html('&nbsp;');
else
$("td:eq(4)", row).html('<a href="/block/' + next_blockhash + '">' + (blockindex + 1).toString() + '</a>').addClass('text-center');
},
fnDrawCallback: function(settings) {
fixDataTableColumns();
fixFooterHeightAndPosition();
enableTooltips();
}
});
if ('#{settings.orphans_page.page_header.show_last_updated}' == 'true') {
var lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.orphans_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
.col-md-12
if settings.orphans_page.page_header.show_img == true || settings.orphans_page.page_header.show_title == true || settings.orphans_page.page_header.show_last_updated == true || settings.orphans_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.orphans_page.page_header.show_img == true && settings.orphans_page.page_header.show_title == true && settings.orphans_page.page_header.show_last_updated == true && settings.orphans_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.orphans_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.orphans_page.page_header.show_title == true
h3#page-title #{settings.localization.orphan_title.replace('{1}', settings.coin.name)}
if settings.orphans_page.page_header.show_last_updated == true
if settings.orphans_page.page_header.show_title != true && settings.orphans_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.orphans_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.orphans_page.page_header.show_description == true
if settings.orphans_page.page_header.show_title != true && settings.orphans_page.page_header.show_last_updated != true
#page-title-container
.sub-page-header.text-muted=settings.localization.orphan_description
else
.sub-page-header.text-muted=settings.localization.orphan_description
.cardSpacer.clearfix
.card.card-default.border-0.cardSpacer
.card-header
strong=settings.localization.orphan_block_list
table#orphans-table.table.table-bordered.table-striped.table-paging.table-hover.mobile-border-right
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
thead
tr(class=theadClasses)
th.d-table-cell.d-md-none
th.d-none.d-md-table-cell #{settings.localization.orphan_block_hash}
th.text-center #{settings.localization.orphan_actual_block}
th.text-center #{settings.localization.orphan_prev_block}
th.text-center #{settings.localization.orphan_next_block}
tbody
+198
View File
@@ -0,0 +1,198 @@
extends layout
block content
script.
$(document).ready(function() {
$('.summary-table').dataTable({
info: false,
paging: false,
searching: false,
ordering: false,
responsive: true,
scrollX: true,
fnDrawCallback: function(settings) {
fixDataTableColumns();
}
});
if ('#{settings.blockchain_specific.heavycoin.reward_page.page_header.show_last_updated}' == 'true') {
var lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.blockchain_specific.heavycoin.reward_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
.row(style='margin-left:0;margin-right:0;')
.col-xs-12.col-md-12
if settings.blockchain_specific.heavycoin.reward_page.page_header.show_img == true || settings.blockchain_specific.heavycoin.reward_page.page_header.show_title == true || settings.blockchain_specific.heavycoin.reward_page.page_header.show_last_updated == true || settings.blockchain_specific.heavycoin.reward_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.blockchain_specific.heavycoin.reward_page.page_header.show_img == true && settings.blockchain_specific.heavycoin.reward_page.page_header.show_title == true && settings.blockchain_specific.heavycoin.reward_page.page_header.show_last_updated == true && settings.blockchain_specific.heavycoin.reward_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.blockchain_specific.heavycoin.reward_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.blockchain_specific.heavycoin.reward_page.page_header.show_title == true
h3#page-title #{settings.localization.heavy_title.replace('{1}', settings.coin.name)}
if settings.blockchain_specific.heavycoin.reward_page.page_header.show_last_updated == true
if settings.blockchain_specific.heavycoin.reward_page.page_header.show_title != true && settings.blockchain_specific.heavycoin.reward_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.blockchain_specific.heavycoin.reward_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.blockchain_specific.heavycoin.reward_page.page_header.show_description == true
if settings.blockchain_specific.heavycoin.reward_page.page_header.show_title != true && settings.blockchain_specific.heavycoin.reward_page.page_header.show_last_updated != true
#page-title-container
.sub-page-header.text-muted=settings.localization.heavy_description.replace('{1}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.heavy_description.replace('{1}', settings.coin.name)
.cardSpacer.clearfix
.card.card-default.border-0.card-address-reward
.card-header(style='position:relative;')
strong #{settings.localization.heavy_reward_voting_info}
span.small.fw-normal (#{settings.coin.symbol})
table#reward-summary.table.table-bordered.table-striped.summary-table.single-row-table(style='border-top:0;border-bottom:0;margin-top:0 !important;')
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
thead
tr(class=theadClasses)
th.text-center #{settings.localization.ex_supply}
span.small.fw-normal (#{settings.coin.symbol})
th.text-center #{settings.localization.heavy_cap}
span.small.fw-normal (#{settings.coin.symbol})
th.text-center #{settings.localization.heavy_phase}
th.text-center #{settings.localization.heavy_maxvote}
th.text-center #{settings.localization.heavy_reward}
th.text-center #{settings.localization.heavy_estnext}
tbody
- var splitSupply = heavy.supplyFixed.split('.');
- var splitCap = heavy.capFixed.split('.');
- var splitReward = heavy.rewardFixed.split('.');
- var splitNext = heavy.estnextFixed.split('.');
tr
td.text-center #{splitSupply[0]}.
span.decimal #{splitSupply[1]}
td.text-center #{splitCap[0]}.
span.decimal #{splitCap[1]}
td.text-center
=heavy.phase
td.text-center
=heavy.maxvote
td.text-center #{splitReward[0]}.
span.decimal #{splitReward[1]}
td.text-center #{splitNext[0]}.
span.decimal #{splitNext[1]}
.row(style='margin-left:0;margin-right:0;')
.col-md-3
.card.card-default.border-0
.card-body
div.text-center
canvas.d-inline(id="rewardChange", width="150", height="150" style="max-width:150px;max-height:150px;")
script.
var ctx = document.getElementById("rewardChange").getContext("2d");
var data = {
labels: [
"Est. Next",
"Current Reward"
],
datasets: [
{
data: [(((#{stats.count}/3600)%1)*100).toFixed(2), ((1-((#{stats.count}/3600)%1))*100).toFixed(2)],
backgroundColor: ["rgba(92,184,92,1.0)", "#222"]
}
]
};
var options = {
plugins: {
legend: {
display: false
},
crosshair: false
}
};
new Chart(ctx, { type: 'doughnut', data: data, options: options });
h5 #{settings.localization.heavy_changein}
h5
=heavy.nextin
form
table.table
tbody
tr
th #{settings.localization.heavy_key}
td
tr
th #{settings.localization.heavy_vote}
td
div(style="width:20px;height:20px;background-color:#428bca")
tr
th #{settings.localization.heavy_current}
td
div(style="width:20px;height:20px;background-color:#222")
tr
th #{settings.localization.heavy_estnext}
td
div(style="width:20px;height:20px;background-color:rgba(92,184,92,1.0)")
.col-md-9
.card.card-default.border-0
.card-body
div.text-center
.div
strong #{settings.localization.heavy_lastxvotes}
.div
canvas.d-inline(id="lastVotes", width="800", height="300", style="margin-left:-30px;margin-top:30px;max-width:800px;")
script.
var ctx = document.getElementById("lastVotes").getContext("2d");
var options = {
plugins: {
legend: {
display: false
},
crosshair: false
},
scales: {
y: {
beginAtZero: true,
min: 0,
suggestedMax: 8,
ticks: {
stepSize: 1,
maxTicksLimit: 8
}
},
},
line: {
tension: 0
}
};
var data = {
labels: [#{(votes.length > 0 ? votes[0].count : 0)},#{(votes.length > 1 ? votes[1].count : 0)},#{(votes.length > 2 ? votes[2].count : 0)},#{(votes.length > 3 ? votes[3].count : 0)},#{(votes.length > 4 ? votes[4].count : 0)},#{(votes.length > 5 ? votes[5].count : 0)},#{(votes.length > 6 ? votes[6].count : 0)},#{(votes.length > 7 ? votes[7].count : 0)},#{(votes.length > 8 ? votes[8].count : 0)},#{(votes.length > 9 ? votes[9].count : 0)},#{(votes.length > 10 ? votes[10].count : 0)},#{(votes.length > 11 ? votes[11].count : 0)},#{(votes.length > 12 ? votes[12].count : 0)},#{(votes.length > 13 ? votes[13].count : 0)},#{(votes.length > 14 ? votes[14].count : 0)},#{(votes.length > 15 ? votes[15].count : 0)},#{(votes.length > 16 ? votes[16].count : 0)},#{(votes.length > 17 ? votes[17].count : 0)},#{(votes.length > 18 ? votes[18].count : 0)},#{(votes.length > 19 ? votes[19].count : 0)}],
datasets: [
{
backgroundColor: "rgba(66,139,202,0.5)",
borderColor: "rgba(66,139,202,0.8)",
pointBackgroundColor: '#428bca',
pointBorderColor: "#fff",
data: [#{(votes.length > 0 ? votes[0].vote : 0)},#{(votes.length > 1 ? votes[1].vote : 0)},#{(votes.length > 2 ? votes[2].vote : 0)},#{(votes.length > 3 ? votes[3].vote : 0)},#{(votes.length > 4 ? votes[4].vote : 0)},#{(votes.length > 5 ? votes[5].vote : 0)},#{(votes.length > 6 ? votes[6].vote : 0)},#{(votes.length > 7 ? votes[7].vote : 0)},#{(votes.length > 8 ? votes[8].vote : 0)},#{(votes.length > 9 ? votes[9].vote : 0)},#{(votes.length > 10 ? votes[10].vote : 0)},#{(votes.length > 11 ? votes[11].vote : 0)},#{(votes.length > 12 ? votes[12].vote : 0)},#{(votes.length > 13 ? votes[13].vote : 0)},#{(votes.length > 14 ? votes[14].vote : 0)},#{(votes.length > 15 ? votes[15].vote : 0)},#{(votes.length > 16 ? votes[16].vote : 0)},#{(votes.length > 17 ? votes[17].vote : 0)},#{(votes.length > 18 ? votes[18].vote : 0)},#{(votes.length > 19 ? votes[19].vote : 0)}]
},
{
backgroundColor: "rgba(151,187,205,0.0)",
borderColor: '#222',
pointBackgroundColor: "rgba(0,0,0,0)",
pointBorderColor: "rgba(0,0,0,0.0)",
data: [#{(votes.length > 0 ? votes[0].reward : 0)},#{(votes.length > 1 ? votes[1].reward : 0)},#{(votes.length > 2 ? votes[2].reward : 0)},#{(votes.length > 3 ? votes[3].reward : 0)},#{(votes.length > 4 ? votes[4].reward : 0)},#{(votes.length > 5 ? votes[5].reward : 0)},#{(votes.length > 6 ? votes[6].reward : 0)},#{(votes.length > 7 ? votes[7].reward : 0)},#{(votes.length > 8 ? votes[8].reward : 0)},#{(votes.length > 9 ? votes[9].reward : 0)},#{(votes.length > 10 ? votes[10].reward : 0)},#{(votes.length > 11 ? votes[11].reward : 0)},#{(votes.length > 12 ? votes[12].reward : 0)},#{(votes.length > 13 ? votes[13].reward : 0)},#{(votes.length > 14 ? votes[14].reward : 0)},#{(votes.length > 15 ? votes[15].reward : 0)},#{(votes.length > 16 ? votes[16].reward : 0)},#{(votes.length > 17 ? votes[17].reward : 0)},#{(votes.length > 18 ? votes[18].reward : 0)},#{(votes.length > 19 ? votes[19].reward : 0)}]
}
]
};
var myNewChart = new Chart(ctx, { type: 'line', data: data, options: options });
+265
View File
@@ -0,0 +1,265 @@
extends layout
block content
script.
$(document).ready(function() {
if ('#{settings.richlist_page.page_header.show_last_updated}' == 'true') {
const lastUpdatedDate = #{(last_updated == null || last_updated == '0' ? 0 : last_updated)};
if (lastUpdatedDate != 0) {
$('span#lastUpdatedDate').html(' ' + format_unixtime(lastUpdatedDate));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#lastUpdatedDate').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(lastUpdatedDate, true));
enableTooltips();
}
} else
$('span#lastUpdatedDate').html(' N/A');
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.richlist_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
if settings.richlist_page.wealth_distribution.show_distribution_chart == true
script.
$(document).ready(function() {
let xValues = ['Top 1-25', 'Top 26-50', 'Top 51-75', 'Top 76-100', '101+'];
let yValues = ['!{dista.total}', '!{distb.total}', '!{distc.total}', '!{distd.total}', '!{diste.total}'];
let totals = ['!{dista.totalFixed}', '!{distb.totalFixed}', '!{distc.totalFixed}', '!{distd.totalFixed}', '!{diste.totalFixed}'];
let percentages = ['!{dista.percentFixed}', '!{distb.percentFixed}', '!{distc.percentFixed}', '!{distd.percentFixed}', '!{diste.percentFixed}'];
const burned = !{JSON.stringify(burned)};
if ('#{settings.richlist_page.burned_coins.include_burned_coins_in_distribution}' == 'true' && burned != null && burned != '' && burned.total != null && parseFloat(burned.total) > 0) {
xValues.push('Burned Coins');
yValues.push(burned.total);
totals.push(burned.totalFixed);
percentages.push(burned.percentFixed);
}
new Chart("pieChart", {
type: "pie",
data: {
labels: xValues,
datasets: [{
backgroundColor: !{JSON.stringify(settings.richlist_page.wealth_distribution.colors)},
data: yValues
}]
},
options: {
responsive: true,
plugins: {
legend: {
display: false
},
tooltip: {
callbacks: {
label: function(context) {
return `${totals[xValues.indexOf(context.label)]} (${percentages[xValues.indexOf(context.label)]}%)`;
}
}
}
}
}
});
});
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
if settings.richlist_page.page_header.show_img == true || settings.richlist_page.page_header.show_title == true || settings.richlist_page.page_header.show_last_updated == true || settings.richlist_page.page_header.show_description == true
.row(style='margin: 0 0 5px 0;')
div(class=(settings.richlist_page.wealth_distribution.show_distribution_table == true || settings.richlist_page.wealth_distribution.show_distribution_chart == true ? 'col-xs-12' : 'col-12'))
.container
#page-header-container(style='align-items:' + (settings.richlist_page.page_header.show_img == true && settings.richlist_page.page_header.show_title == true && settings.richlist_page.page_header.show_last_updated == true && settings.richlist_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.richlist_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.richlist_page.page_header.show_title == true
h3#page-title #{settings.localization.rl_title.replace('{1}', settings.coin.name)}
if settings.richlist_page.page_header.show_last_updated == true
if settings.richlist_page.page_header.show_title != true && settings.richlist_page.page_header.show_description != true
#page-title-container
.sub-page-header
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
else
.sub-page-header(style='margin-bottom:' + (settings.richlist_page.page_header.show_description == true ? '5' : '0') + 'px')
span.fw-bold=settings.localization.last_updated + ':'
span.text-muted#lastUpdatedDate
if settings.richlist_page.page_header.show_description == true
if settings.richlist_page.page_header.show_title != true && settings.richlist_page.page_header.show_last_updated != true
#page-title-container
.sub-page-header.text-muted=settings.localization.rl_description.replace('{1}', settings.coin.name)
else
.sub-page-header.text-muted=settings.localization.rl_description.replace('{1}', settings.coin.name)
.cardSpacer.clearfix
.row(style='margin-left:0;margin-right:0;')
if settings.richlist_page.show_current_balance == true || settings.richlist_page.show_received_coins == true
div(class=(settings.richlist_page.wealth_distribution.show_distribution_table == true || settings.richlist_page.wealth_distribution.show_distribution_chart == true ? 'col-xs-12 col-lg-8' : 'col-12'))
.container
ul.nav.nav-tabs(role='tablist')
if settings.richlist_page.show_current_balance == true
li.nav-item(role='presentation')
a(class='nav-link' + (settings.richlist_page.show_current_balance == true ? ' active' : ''), href='#balance', aria-controls='balance', role='tab', data-bs-toggle='tab') #{settings.localization.rl_current_balance}
if settings.richlist_page.show_received_coins == true
li.nav-item(role='presentation')
a(class='nav-link' + (!settings.richlist_page.show_current_balance ? ' active' : ''), href='#received', aria-controls='received', role='tab', data-bs-toggle='tab') #{settings.localization.rl_received_coins}
.tab-content
if settings.richlist_page.show_current_balance == true
#balance(class='container tab-pane' + (settings.richlist_page.show_current_balance == true ? ' active' : ''), style='margin-top:0;')
.card.card-default.border-0
table.table.table-hover.table-bordered.table-striped.summary-table.right-border-0(style='margin-bottom:0;', cellspacing='0')
thead
tr(class=theadClasses)
th.text-center
span.fa-solid.fa-flag-checkered
th #{settings.localization.tx_address}
th.text-center #{settings.localization.rl_balance}
span.small.fw-normal (#{settings.coin.symbol})
th.text-center %
tbody
- let count = 0;
each address in balance
- count++;
- const itemFixedParts = address.balanceFixed.split('.');
- const percentParts = address.percentFixed.split('.');
tr
td.text-center
=count
td
if settings.claim_address_page.enabled == false || address.claim_name == null || address.claim_name == ''
a.breakWord(href='/address/' + address.a_id) #{address.a_id}
else
a.breakWord(href='/address/' + address.a_id) #{address.claim_name}
include ./includes/rl_labels.pug
td.text-center #{itemFixedParts[0]}.
span.decimal #{itemFixedParts[1]}
td.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
if settings.richlist_page.show_received_coins == true
#received(class='container tab-pane' + (!settings.richlist_page.show_current_balance ? ' active' : ''), style='margin-top:0;')
.card.card-default.border-0
table.table.table-hover.table-bordered.table-striped.summary-table.right-border-0(style='margin-bottom:0;', cellspacing='0')
thead
tr(class=theadClasses)
th.text-center
span.fa-solid.fa-flag-checkered
th #{settings.localization.tx_address}
th.text-center #{settings.localization.rl_received}
span.small.fw-normal (#{settings.coin.symbol})
tbody
- let count = 0;
each address in received
- count++;
- const itemFixedParts = address.receivedFixed.split('.');
tr
td.text-center
=count
td
if settings.claim_address_page.enabled == false || address.claim_name == null || address.claim_name == ''
a.breakWord(href='/address/' + address.a_id) #{address.a_id}
else
a.breakWord(href='/address/' + address.a_id) #{address.claim_name}
include ./includes/rl_labels.pug
td.text-center #{itemFixedParts[0]}.
span.decimal #{itemFixedParts[1]}
if settings.richlist_page.wealth_distribution.show_distribution_table == true || settings.richlist_page.wealth_distribution.show_distribution_chart == true
div(class=(settings.richlist_page.show_received_coins == true || settings.richlist_page.show_current_balance == true ? 'col-xs-12 col-lg-4' : 'col-12'))
if settings.richlist_page.wealth_distribution.show_distribution_table == true
#summary-panel.card.card-default.border-0(style='margin-top:' + (settings.richlist_page.show_current_balance == true || settings.richlist_page.show_received_coins == true ? '34' : '0') + 'px;')
.card-header
strong #{settings.localization.rl_wealth}
table.table.table-hover.table-bordered.summary-table.right-border-0(style='margin-bottom:0;')
thead
tr(class=theadClasses)
th
th.text-center Amount
span.small.fw-normal (#{settings.coin.symbol})
th.text-center %
tbody
tr
td.fw-bold
div.float-start.wealth-dist-color-box(style=('background-color:' + settings.richlist_page.wealth_distribution.colors[0] + ';'))
span #{settings.localization.rl_top25}
- var totalParts = dista.totalFixed.split('.');
- var percentParts = dista.percentFixed.split('.');
td.text-center.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
tr
td.fw-bold
div.float-start.wealth-dist-color-box(style=('background-color:' + settings.richlist_page.wealth_distribution.colors[1] + ';'))
span #{settings.localization.rl_top50}
- var totalParts = distb.totalFixed.split('.');
- var percentParts = distb.percentFixed.split('.');
td.text-center.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
tr
td.fw-bold
div.float-start.wealth-dist-color-box(style=('background-color:' + settings.richlist_page.wealth_distribution.colors[2] + ';'))
span #{settings.localization.rl_top75}
- var totalParts = distc.totalFixed.split('.');
- var percentParts = distc.percentFixed.split('.');
td.text-center.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
tr
td.fw-bold
div.float-start.wealth-dist-color-box(style=('background-color:' + settings.richlist_page.wealth_distribution.colors[3] + ';'))
span #{settings.localization.rl_top100}
- var totalParts = distd.totalFixed.split('.');
- var percentParts = distd.percentFixed.split('.');
td.text-center.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
tr.text-end
td.fw-bold
span #{settings.localization.total_top_100}
- var totalParts = distsubtotal.totalFixed.split('.');
- var percentParts = distsubtotal.percentFixed.split('.');
td.text-center.fw-bold.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.fw-bold.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
tr
td.fw-bold
div.float-start.wealth-dist-color-box(style=('background-color:' + settings.richlist_page.wealth_distribution.colors[4] + ';'))
span 101+
- var totalParts = diste.totalFixed.split('.');
- var percentParts = diste.percentFixed.split('.');
td.text-center.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
if settings.richlist_page.burned_coins.include_burned_coins_in_distribution == true && burned != null && parseFloat(burned.total) > 0
tr
td.fw-bold
div.float-start.wealth-dist-color-box(style=('background-color:' + settings.richlist_page.wealth_distribution.colors[5] + ';'))
span Burned Coins
- var totalParts = burned.totalFixed.split('.');
- var percentParts = burned.percentFixed.split('.');
td.text-center.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
tr.text-end
td.fw-bold
span #{settings.localization.total}
- var totalParts = disttotal.totalFixed.split('.');
- var percentParts = disttotal.percentFixed.split('.');
td.text-center.fw-bold.breakWord #{totalParts[0]}.
span.decimal.breakWord #{totalParts[1]}
td.fw-bold.text-center #{percentParts[0]}.
span.decimal #{percentParts[1]}
if settings.richlist_page.wealth_distribution.show_address_count == true
tr.text-end
td.fw-bold
span Total Wallet Addresses
td.text-center.breakWord(colspan='2')
span #{address_count}
if settings.richlist_page.wealth_distribution.show_distribution_chart == true
canvas#pieChart(style="margin-top:10px;max-height:305px;")
+200
View File
@@ -0,0 +1,200 @@
extends layout
block content
- var theadClasses = [];
if settings.shared_pages.table_header_bgcolor != null && settings.shared_pages.table_header_bgcolor != ''
- theadClasses.push('table-' + settings.shared_pages.table_header_bgcolor);
script.
$(document).ready(function() {
$('span#timestampCol').html(format_unixtime(#{tx.timestamp}));
if (#{settings.shared_pages.date_time.enable_alt_timezone_tooltips} == true) {
$('span#timestampCol').attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'auto').attr('title', format_unixtime(#{tx.timestamp}, true));
enableTooltips();
}
if (#{settings.shared_pages.page_header.page_title_image.enable_animation} == true && #{settings.transaction_page.page_header.show_img} == true)
startRotateElement('img#header-img');
});
.col-xs-12.col-md-12
if orphan != null && orphan == true
.col-12
.alert.alert-warning.alert-dismissible.fade.show(role='alert')
button.btn-close(type='button', data-bs-dismiss='alert')
.cardSpacer
span.fa-solid.fa-triangle-exclamation(style='margin-right:5px')
strong=settings.localization.ex_warning
div="This is an orphaned transaction"
if settings.transaction_page.page_header.show_img == true || settings.transaction_page.page_header.show_title == true || settings.transaction_page.page_header.show_description == true
#page-header-container(style='align-items:' + (settings.transaction_page.page_header.show_img == true && settings.transaction_page.page_header.show_title == true && settings.transaction_page.page_header.show_description == true ? 'flex-start' : 'center'))
if settings.transaction_page.page_header.show_img == true
#header-img-container
img#header-img(src=(settings.shared_pages.page_header.page_title_image == null || settings.shared_pages.page_header.page_title_image.image_path == null || settings.shared_pages.page_header.page_title_image.image_path == '' ? '/img/page-title-img.png' : settings.shared_pages.page_header.page_title_image.image_path))
#page-title-container
if settings.transaction_page.page_header.show_title == true
h3#page-title #{settings.localization.tx_title.replace('{1}', settings.coin.name)}
if settings.transaction_page.page_header.show_description == true
if settings.transaction_page.page_header.show_title != true
#page-title-container
.sub-page-header.text-muted=settings.localization.tx_description.replace('{1}', settings.coin.name).replace('{2}', tx.blockindex)
else
.sub-page-header.text-muted=settings.localization.tx_description.replace('{1}', settings.coin.name).replace('{2}', tx.blockindex)
.cardSpacer.clearfix
.card.card-default.border-0.cardSpacer
.card-header
strong=settings.localization.tx_hash + ': ' + 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`, style='color: var(--bs-body-color);')
span.fa-solid.fa-circle-info.float-end(data-bs-toggle='tooltip', data-bs-placement='top', title=settings.localization.view_raw_tx_data)
table#tx-table.table.table-bordered.table-striped.summary-table.mobile-border-right
thead
tr(class=theadClasses)
th.text-center.d-table-cell.d-md-none
th.d-none.d-md-table-cell #{settings.localization.tx_block_hash}
if settings.transaction_page.show_extracted_by == true && extracted_by_addresses != null && extracted_by_addresses.length > 0
th.text-center='Extracted By'
if settings.transaction_page.show_op_return == true
th='OP_RETURN'
th.text-center #{settings.localization.confirmations}
th.text-center #{settings.localization.timestamp}
tbody
- var confirms = (blockcount - tx.blockindex + 1);
tr
td.text-center.d-table-cell.d-md-none
a(href='/block/' + tx.blockhash)
span.fa-regular.fa-eye(data-bs-toggle='tooltip', data-bs-placement='top', title=settings.localization.view_block)
td.d-none.d-md-table-cell
a.breakWord(href='/block/' + tx.blockhash) #{tx.blockhash}
if settings.transaction_page.show_extracted_by == true && extracted_by_addresses != null && extracted_by_addresses.length > 0
td.text-center
each address in extracted_by_addresses
div(style='overflow: auto;')
a(href=`/address/${address.a_id}`)=(address.claimname == '' ? address.a_id : address.claimname)
include ./includes/rl_labels.pug
if settings.transaction_page.show_op_return == true
td.breakWord #{tx.op_return}
if confirms >= confirmations
td.text-center.table-success #{confirms}
else if confirms < (confirmations / 2)
td.text-center.table-danger #{confirms}
else
td.text-center.table-warning #{confirms}
td.text-center
span#timestampCol
if tx.vout.length < 1
.alert.alert-info.text-center(role='alert', style='margin-bottom:0;')
strong #{settings.localization.tx_nonstandard}
else
.row
.col-md-6.cardSpacer
.card.card-default.border-0
.card-header
strong #{settings.localization.tx_contributors}
span.fa-solid.fa-arrow-right.float-end.d-none.d-md-block
table.table.table-bordered.table-striped.table-hover.summary-table.mobile-border-right
thead
tr(class=theadClasses)
th #{settings.localization.tx_address}
if (tx.vin.length > 0)
if tx.vin[0].addresses != 'coinbase'
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{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.localization.new_coins}
else
- var ramountParts = address.amountFixed.split('.');
tr
td
if address.addresses != 'hidden_address' && address.addresses != 'unknown_address'
a.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'
if settings.address_page.enable_hidden_address_view == true
a.breakWord(href='/address/hidden_address')
=settings.localization.hidden_sender
else
=settings.localization.hidden_sender
else
if settings.address_page.enable_unknown_address_view == true
a.breakWord(href='/address/unknown_address')
=settings.localization.unknown_sender
else
=settings.localization.unknown_sender
td.table-danger.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}
else
tr.table-info.text-center
td.bottom-border-1 #{settings.localization.proof_of_stake}
.col-md-6.cardSpacer
.card.card-default.border-0
.card-header
strong #{settings.localization.tx_recipients}
table.table.table-bordered.table-striped.table-hover.summary-table.mobile-border-right
thead
tr(class=theadClasses)
th #{settings.localization.tx_address}
th.text-center #{settings.localization.mkt_amount}
span.small.fw-normal (#{settings.coin.symbol})
tbody
each address in tx.vout
- var ramountParts = address.amountFixed.split('.');
if tx.vout.length > 0
tr
if address.addresses != 'hidden_address' && address.addresses != 'unknown_address'
td
a.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.table-success.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}
else if address.amount > 0
td
if address.addresses == 'hidden_address'
if settings.address_page.enable_hidden_address_view == true
a.breakWord(href='/address/hidden_address')
=settings.localization.hidden_recipient
else
=settings.localization.hidden_recipient
else
if settings.address_page.enable_unknown_address_view == true
a.breakWord(href='/address/unknown_address')
=settings.localization.unknown_recipient
else
=settings.localization.unknown_recipient
td.table-success.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}
else
td(colspan='2')
if address.addresses == 'hidden_address'
if settings.address_page.enable_hidden_address_view == true
a.breakWord(href='/address/hidden_address')
=settings.localization.hidden_recipient
else
=settings.localization.hidden_recipient
else
if settings.address_page.enable_unknown_address_view == true
a.breakWord(href='/address/unknown_address')
=settings.localization.unknown_recipient
else
=settings.localization.unknown_recipient
else
tr
td
a.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.table-success.text-center #{ramountParts[0]}.
span.decimal #{ramountParts[1]}