29 KiB
{{tx.tx_hash}}
{# FIXME {%if config.enable_mixins_details%}{{tx.tx_prefix_hash}}
{%endif%} #}{{tx.extra.pubkey}}
{%-for pk in tx.extra.additional_pubkeys%} {%-if not loop.first%}; {%endif-%} {{pk}} {%-endfor-%} {%if tx.extra.payment_id%}{{tx.extra.payment_id}}
{%endif%} {# FIXME - what is this? {%if have_prev_hash%}Previous TX: {{prev_hash}}
{%endif%} {%if have_next_hash%}Next TX: {{next_hash}}
{%endif%} #}Metadata
{%if 'block_height' in tx%} {{tx.block_height}} {%else%} {{tx.received_timestamp | from_timestamp | format_datetime('short')}} UTC ({{tx.received_timestamp | from_timestamp | ago}} ago) {%endif%} {% import 'include/tx_type_symbol.html' as sym %} {{tx.info.version}}/{{sym.display(tx, text=true)}} {%if not have_raw_tx%} {%if 'block_timestamp' in tx%} {{tx.block_timestamp | from_timestamp | format_datetime('short')}} UTC ({{tx.block_timestamp | from_timestamp | ago}} ago) {%endif%} {%endif%} {# FIXME - if in mempool then link to mempool page instead #} {%if tx.coinbase or 'rct_signatures' not in tx.info%} N/A {%else%} {% import 'include/tx_fee.html' as fee %} {{fee.display(tx)}} ({{(tx.info.rct_signatures.txnFee * 1000 / tx.size) | oxen(tag=false, decimals=6)}}) {%endif%} {{tx.size|si}}B {%if 'block_height' in tx%}{{info.height - tx.block_height}}{%else%}None (in mempool){%endif%} {%if tx.info.version >= 2 and 'rct_signatures' in tx.info and not tx.coinbase%}Yes/{{tx.info.rct_signatures.type}}{%else%}No{%endif%} {%if tx.coinbase and tx.extra.sn_winner%} {%if tx.extra.sn_winner == "0000000000000000000000000000000000000000000000000000000000000000"%} None {%else%} {{tx.extra.sn_winner}} {%endif%} {%endif%}
{%- if tx.extra.sn_state_change.type == 'decom' -%} 👎 Service Node Decommission Metadata {% elif tx.extra.sn_state_change.type == 'recom' -%} 👍 Service Node Recommission Metadata {% elif tx.extra.sn_state_change.type == 'dereg' -%} 🚫 Service Node Deregistration Metadata {% elif tx.extra.sn_state_change.type == 'ip' -%} 📋 Service Node IP Change Metadata {% else -%} ❓ Unknown State Change Metadata {% endif -%}
{%set sn_index = tx.extra.sn_state_change.index%} {%if testing_quorum%}Service Node Public Key: {{testing_quorum.workers[sn_index]}}
Service Node Index: {{sn_index}}
Testing quorum: {{tx.extra.sn_state_change.height}}
🔓 Service Node Unlock
{{unlock_key_image}}
{# FIXME #}{{unlock_signature}}
{# FIXME #} {% elif tx.info.type == 4 and 'lns' in tx.extra %} {% if 'buy' in tx.extra.lns %}🎫 Oxen Name Service Registration
{% elif 'update' in tx.extra.lns %}💾 Oxen Name Service Update
{% endif %} {#FIXME - show some metadata?#} {% elif 'sn_registration' in tx.extra %}🏁 Service Node Register Metadata
{%if tx.extra.sn_registration.fee == 1000000%}N/A (solo registration) {%else%}{{(tx.extra.sn_registration.fee / 10000) | chop0}}% {%endif%}
{{tx.stake_amount | loki}}
{{tx.extra.sn_registration.expiry | from_timestamp | format_datetime}} ({{tx.extra.sn_registration.expiry}}), or {{(tx.extra.sn_registration.expiry|from_timestamp - server.datetime) | reltime}}
Service Node Registration Address(es)
{%for c in tx.extra.sn_registration.contributors%} {%endfor%}Address | Portions |
{{c.wallet}} | {{(c.portion / 10000) | chop0}}% |
⚑ Service Node Contribution
{{tx.extra.sn_pubkey}}
{{tx.extra.sn_contributor}}
{{tx.stake_amount | loki}}
{% endif %} {% endif %} {%if tx.info.vout%}Outputs
{{tx.info.vout|length}} output(s) for total of {{tx.info.vout | sum(attribute='amount') | oxen(zero='???') | safe}}
Stealth Address | Amount | Output Index |
{{out.target.key}} | {{out.amount | oxen(zero='?')}} | {%if 'output_indices' in tx%}{{tx.output_indices[loop.index0]}}{# FIXME: of {{num_outputs}}#}{%endif%} |
Check which outputs belong to given Loki address/subaddress and viewkey
For RingCT transactions, outputs' amounts are also decoded
{%if enable_js%}
Note: Address/Subaddress and viewkey are NOT sent to the server, as the calculations are done on the client side
{%else%}
Note: address/Subaddress and viewkey are sent to the server, as the calculations are done on the server side
{%endif%}
{%if enable_js%} Decode outputs {%else%} {%endif%}
Prove to someone that you have sent them Loki in this transaction
TX private key can be obtained using get_tx_key
command in oxen-wallet-cli command line tool
{%if enable_js%}
Note: Address/Subaddress and TX private key are NOT sent to the server, as the calculations are done on the client side
{%else%}
Note: Address/Subaddress and TX private key are sent to the server, as the calculations are done on the server side
{%endif%}
{%if enable_js%} Prove sending {%else%} {%endif%}
Inputs
{{tx.info.vin|length}} input(s) for total of {{tx.info.vin | sum(attribute='key.amount') | oxen(zero='???') | safe}}
{#FIXME#} {%if enable_mixins_details%}Inputs' ring size time scale (from {{min_mix_time}} till {{max_mix_time}}; resolution: {{timescales_scale}} days{%if have_raw_tx%}; R - real ring member {%endif%})
-
{%if timescales%}
- |{{timescale}}| {%endif%}
{{inp.key.k_image}} {#FIXME:#} {%if have_raw_tx%} Already spent: {%if already_spent%} True {%else%} False {%endif%} {%endif%} | Amount: {{inp.key.amount | oxen(zero='?')}} | |||
Ring Members | Is It Real? | Block | Timestamp (UTC) | |
{{oinfo.key}} | {{mix_is_it_real}} | {{mix_is_it_real}} | {{binfo.height}} | {{binfo.timestamp | from_timestamp | format_datetime('short')}} ({{(binfo.timestamp|from_timestamp - server.datetime) | reltime}}) |
Unknown output ({%if inp.key.amount != 0%}amount {{inp.key.amount}}, {%endif%}index {{kindex}}) |
Show raw details
{%endif%} {%if not have_raw_tx%} {%if with_ring_signatures%}
{{tx_json}}
{%elif show_more_details_link%}
More Details {%if enable_as_hex%} | TX As Hex | TX Ring Members As Hex {%endif%}
{%endif%} {%endif%} {%if show_cache_times%}
TX details construction time: {{construction_time}} s
{%if from_cache%}
TX read from the TX cache
{%endif%}
Attempt failed
{%if error_tx_not_found%}Tx {{tx_hash}} not found.
If this is newly made tx, it can take some time (up to minute)
for it to get propagated to all nodes' txpools.
Please refresh in 10-20 seconds to check if its here then.