2022-01-23 12:00:28 +00:00
{% include 'header.html' %}
2024-05-20 14:29:14 +00:00
{% from 'style.html' import select_box_arrow_svg, select_box_class, circular_arrows_svg, circular_error_svg, circular_info_svg, cross_close_svg, breadcrumb_line_svg, withdraw_svg, utxo_groups_svg, create_utxo_svg, red_cross_close_svg, blue_cross_close_svg, circular_update_messages_svg, circular_error_messages_svg %}
2024-04-12 12:46:47 +00:00
< script src = "/static/js/libs//qrcode.js" > < / script >
2022-10-10 21:44:14 +00:00
< div class = "container mx-auto" >
2024-04-12 12:46:47 +00:00
< section class = "p-5 mt-5" >
< div class = "flex flex-wrap items-center -m-2" >
< div class = "w-full md:w-1/2 p-2" >
< ul class = "flex flex-wrap items-center gap-x-3 mb-2" >
< li > < a class = "flex font-medium text-xs text-coolGray-500 dark:text-gray-300 hover:text-coolGray-700" href = "/" > Home< / a > < / li >
< li > {{ breadcrumb_line_svg | safe }}< / li >
< li > < a class = "flex font-medium text-xs text-coolGray-500 dark:text-gray-300 hover:text-coolGray-700" href = "/wallets" > Wallets< / a > < / li >
< li > {{ breadcrumb_line_svg | safe }}< / li >
< li > < a class = "flex font-medium text-xs text-coolGray-500 dark:text-gray-300 hover:text-coolGray-700" href = "/wallet/{{ w.ticker }}" > {{ w.ticker }}< / a > < / li >
< / ul >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / section >
< section class = "py-4" >
< div class = "container px-4 mx-auto" >
< div class = "relative py-11 px-16 bg-coolGray-900 dark:bg-blue-500 rounded-md overflow-hidden" > < img class = "absolute z-10 left-4 top-4 right-4 bottom-4" src = "/static/images/elements/dots-red.svg" alt = "dots-red" > < img class = "absolute h-64 left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 object-cover" src = "/static/images/elements/wave.svg" alt = "wave" >
< div class = "relative z-20 flex flex-wrap items-center -m-3" >
< div class = "w-full md:w-1/2" >
< h2 class = "text-3xl font-bold text-white" > < span class = "inline-block align-middle" > < img class = "mr-2 h-16" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }}" > < / span > ({{ w.ticker }}) {{ w.name }} Wallet < / h2 >
< / div >
< div class = "w-full md:w-1/2 p-3 p-6 container flex flex-wrap items-center justify-end items-center mx-auto" > < a class = "rounded-full mr-5 flex flex-wrap justify-center px-5 py-3 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border dark:bg-gray-500 dark:hover:bg-gray-700 border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" id = "refresh" href = "/wallet/{{ w.ticker }}" > {{ circular_arrows_svg | safe }}< span > Refresh< / span > < / a > < / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / section >
2024-05-20 14:29:14 +00:00
{% include 'inc_messages.html' %}
2024-04-12 12:46:47 +00:00
{% if w.updating %}
2024-04-26 14:32:31 +00:00
< section class = "py-4" id = "messages_updating" role = "alert" >
< div class = "container px-4 mx-auto" >
< div class = "p-6 text-green-800 rounded-lg bg-blue-50 border border-blue-500 dark:bg-gray-500 dark:text-blue-400 rounded-md" >
< div class = "flex flex-wrap justify-between items-center -m-2" >
< div class = "flex-1 p-2" >
< div class = "flex flex-wrap -m-1" >
< div class = "w-auto p-1" >
{{ circular_update_messages_svg | safe }}
2024-01-25 16:50:06 +00:00
< / div >
2024-04-26 14:32:31 +00:00
< ul class = "ml-4 mt-1" >
< li class = "font-semibold text-sm text-blue-500 error_msg" > < span class = "bold" > UPDATING:< / span > < / li >
< li class = "font-medium text-sm text-blue-500" > Please wait...< / li >
< / ul >
2024-05-20 14:29:14 +00:00
< / div >
2024-04-26 14:32:31 +00:00
< / div >
< div class = "w-auto p-2" >
< button type = "button" class = "ms-auto bg-blue-50 text-blue-500 rounded-lg focus:ring-0 focus:ring-blue-400 p-1.5 hover:bg-blue-200 inline-flex items-center justify-center h-8 w-8 focus:outline-none dark:bg-gray-800 dark:text-blue-400 dark:hover:bg-gray-700" data-dismiss-target = "#messages_updating" aria-label = "Close" > < span class = "sr-only" > Close< / span >
{{ blue_cross_close_svg | safe }}
< / button >
2024-01-25 16:50:06 +00:00
< / div >
2022-10-10 21:44:14 +00:00
< / div >
< / div >
2024-04-26 14:32:31 +00:00
< / div >
< / section >
2024-04-12 12:46:47 +00:00
{% endif %}
{% if w.havedata %}
2024-05-20 14:29:14 +00:00
{% if w.error %}
2024-04-26 14:32:31 +00:00
< section class = "py-4" id = "messages_error" role = "alert" >
< div class = "container px-4 mx-auto" >
< div class = "p-6 text-green-800 rounded-lg bg-red-50 border border-red-400 dark:bg-gray-500 dark:text-red-400 rounded-md" >
< div class = "flex flex-wrap justify-between items-center -m-2" >
< div class = "flex-1 p-2" >
< div class = "flex flex-wrap -m-1" >
< div class = "w-auto p-1" >
{{ circular_error_messages_svg | safe }}
2024-04-12 12:46:47 +00:00
< / div >
2024-04-26 14:32:31 +00:00
< ul class = "ml-4 mt-1" >
< li class = "font-semibold text-sm text-red-500 error_msg" > < span class = "bold" > ERROR:< / span > < / li >
< li class = "font-medium text-sm text-red-500 error_msg" > {{ w.error }}< / li >
< / ul >
< / div >
< / div >
< div class = "w-auto p-2" >
< button type = "button" class = "ml-auto bg-red-100 text-red-500 rounded-lg focus:ring-0 focus:ring-red-400 p-1.5 hover:bg-red-200 inline-flex h-8 w-8 focus:outline-none inline-flex items-center justify-center h-8 w-8 dark:bg-gray-800 dark:text-red-400 dark:hover:bg-gray-700" data-dismiss-target = "#messages_error" aria-label = "Close" >
< span class = "sr-only" > Close< / span >
{{ red_cross_close_svg | safe }}
< / button >
2024-01-25 16:50:06 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / div >
2022-10-10 21:44:14 +00:00
< / div >
2024-04-26 14:32:31 +00:00
< / div >
< / section >
2024-04-12 12:46:47 +00:00
{% else %}
< form method = "post" autocomplete = "off" >
< section >
< div class = "pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden" >
< div class = "pb-6 border-coolGray-100" >
< div class = "flex flex-wrap items-center justify-between -m-2" >
< div class = "w-full pt-2" >
< div class = "container mt-5 mx-auto" >
< div class = "pt-6 pb-8 bg-coolGray-100 dark:bg-gray-500 rounded-xl" >
< div class = "px-6" >
< div class = "w-full mt-6 pb-6 overflow-x-auto" >
< table class = "w-full min-w-max text-sm" >
< thead class = "uppercase" >
< tr class = "text-left" >
< th class = "p-0" >
< div class = "py-3 px-6 rounded-tl-xl bg-coolGray-200 dark:bg-gray-600" > < span class = "text-xs text-gray-600 dark:text-gray-300 font-semibold" > Wallet< / span > < / div >
< / th >
< th class = "p-0" >
< div class = "py-3 px-6 rounded-tr-xl bg-coolGray-200 dark:bg-gray-600" > < span class = "text-xs text-gray-600 dark:text-gray-300 font-semibold" > Details< / span > < / div >
< / th >
< / tr >
< / thead >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > < span class = "inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }}" > < / span > Balance: < / td >
< td class = "py-3 px-6 bold coinname-value" data-coinname = "{{ w.name }}" > {{ w.balance }} {{ w.ticker }} (< span class = "usd-value" > < / span > )
{% if w.pending %}
< span class = "inline-block py-1 px-2 rounded-full bg-green-100 text-green-500 dark:bg-gray-500 dark:text-green-500" > Pending: +{{ w.pending }} {{ w.ticker }} < / span >
{% endif %}
2024-01-25 16:50:06 +00:00
< / td >
2024-04-12 12:46:47 +00:00
< / tr > {% if w.cid == '1' %} {# PART #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > < span class = "inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }} Blind" > < / span > Blind Balance: < / td >
2024-05-20 14:29:14 +00:00
< td class = "py-3 px-6 bold coinname-value" data-coinname = "{{ w.name }}" > {{ w.blind_balance }} {{ w.ticker }} (< span class = "usd-value" > < / span > )
2024-04-12 12:46:47 +00:00
{% if w.blind_unconfirmed %}
< span class = "inline-block py-1 px-2 rounded-full bg-green-100 text-green-500 dark:bg-gray-500 dark:text-green-500" > Unconfirmed: +{{ w.blind_unconfirmed }} {{ w.ticker }}< / span >
{% endif %}
2024-01-25 16:50:06 +00:00
< / td >
2024-04-12 12:46:47 +00:00
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > < span class = "inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }} Anon" > < / span > Anon Balance: < / td >
< td class = "py-3 px-6 bold coinname-value" data-coinname = "{{ w.name }}" > {{ w.anon_balance }} {{ w.ticker }} (< span class = "usd-value" > < / span > )
{% if w.anon_pending %}
< span class = "inline-block py-1 px-2 rounded-full bg-green-100 text-green-500 dark:bg-gray-500 dark:text-green-500" > Pending: +{{ w.anon_pending }} {{ w.ticker }}< / span >
{% endif %}
2024-01-25 16:50:06 +00:00
< / td >
2024-04-12 12:46:47 +00:00
< td class = "usd-value" > < / td >
< / tr >
{% endif %}
{# / PART #}
{% if w.cid == '3' %} {# LTC #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > < span class = "pr-3 inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }} MWEB" > < / span > MWEB Balance: < / td >
< td class = "py-3 px-6 bold coinname-value" data-coinname = "{{ w.name }}" > {{ w.mweb_balance }} {{ w.ticker }} (< span class = "usd-value" > < / span > )
{% if w.mweb_pending %}
< span class = "inline-block py-1 px-2 rounded-full bg-green-100 text-green-500 dark:bg-gray-500 dark:text-green-500" > Pending: +{{ w.mweb_pending }} {{ w.ticker }} < / span >
2024-05-20 14:29:14 +00:00
{% endif %}
2024-04-12 12:46:47 +00:00
< / td >
< / tr >
{% endif %}
2024-05-20 14:29:14 +00:00
{# / LTC #}
2024-04-12 12:46:47 +00:00
{% if w.locked_utxos %}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > Locked Outputs:< / td >
< td id = 'locked_utxos' class = "py-3 px-6" > {{ w.locked_utxos }}< / td >
< / tr >
{% endif %}
{# / locked_utxos #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold w-96" > Last updated:< / td >
< td class = "py-3 px-6" > {{ w.lastupdated }}< / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > {{ w.name }} Version:< / td >
< td class = "py-3 px-6" > {{ w.version }}< / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > Blocks:< / td >
< td class = "py-3 px-6" > {{ w.blocks }}
{% if w.known_block_count %} / {{ w.known_block_count }}
{% endif %}
< / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > Synced:< / td >
< td class = "py-3 px-6" > {{ w.synced }}< / td >
< / tr >
{% if w.bootstrapping %}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > Bootstrapping:< / td >
< td class = "py-3 px-6" > {{ w.bootstrapping }}< / td >
< / tr >
{% endif %}
{# / bootstrapping #}
{% if w.encrypted %}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > Locked:< / td >
< td class = "py-3 px-6" > {{ w.locked }}< / td >
< / tr >
{% endif %}
{# / encrypted #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > Expected Seed:< / td >
< td class = "py-3 px-6" > {{ w.expected_seed }}< / td > {% if block_unknown_seeds and w.expected_seed != true %} {# Only show addresses if wallet seed is correct #}
< / tr >
< / table >
< / div >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
< / div >
2022-11-10 21:49:55 +00:00
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / section >
< section class = "pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden" >
< div class = "pb-6 border-coolGray-100" >
< div class = "flex flex-wrap items-center justify-between -m-2" >
< div class = "w-full pt-2" >
< div class = "container mt-5 mx-auto" >
< div class = "pt-6 pb-6 bg-coolGray-100 dark:bg-gray-500 rounded-xl" >
< div class = "px-6" >
2024-05-20 14:29:14 +00:00
{% if w.cid != '4' %} {# DCR #}
2024-04-12 12:46:47 +00:00
< div class = "flex flex-wrap justify-end" >
< div class = "w-full md:w-auto p-1.5" > < input class = "flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-white hover:text-red border border-red-500 hover:border-red-500 hover:bg-red-600 bg-red-500 rounded-md shadow-button focus:ring-0 focus:outline-none cursor-pointer" type = "submit" name = "reseed_{{ w.cid }}" value = "Reseed wallet" onclick = "return confirmReseed();" > < / div >
< / div >
2024-05-20 14:29:14 +00:00
{% endif %}
2024-01-25 16:50:06 +00:00
< / div >
< / div >
< / div >
< / div >
2023-08-02 15:38:15 +00:00
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / section >
{% else %}
< / table >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / section >
< section class = "p-6" >
2024-01-25 16:50:06 +00:00
< div class = "flex items-center" >
2024-04-12 12:46:47 +00:00
< h4 class = "font-semibold text-2xl text-black dark:text-white" > Deposit< / h4 >
2023-04-06 14:59:28 +00:00
< / div >
< / section >
2024-04-12 12:46:47 +00:00
< form method = "post" autocomplete = "off" >
< section >
< div class = "pl-6 pr-6 pt-0 pb-0 overflow-hidden" >
< div class = "pb-6 border-coolGray-100" >
< div class = "flex flex-wrap items-center justify-between -m-2" >
< div class = "w-full pt-2" >
< div class = "container mt-5 mx-auto" >
< div class = "pb-6 bg-coolGray-100 dark:bg-gray-500 rounded-xl" >
< div class = "px-6" >
< div class = "container mx-auto" >
< div class = "flex flex-wrap max-w-7xl mx-auto -m-3" >
{% if w.cid == '1' %} {# PART #}
< div class = "w-full md:w-1/2 p-3 flex justify-center items-center" >
< div class = "h-full" >
< div class = "flex flex-wrap -m-3" >
< div class = "w-full p-3" >
< div class = "mb-2 qrcode-container flex h-60 justify-center items-center" >
< div class = "qrcode-border flex" >
< div id = "qrcode-stealth" class = "qrcode" > < / div >
< / div >
< / div >
< div class = "font-normal bold text-gray-500 text-center dark:text-white mb-5" > {{ w.name }} Stealth Address: < / div >
< div class = "relative flex justify-center items-center" >
2024-05-03 11:09:59 +00:00
< div data-tooltip-target = "tooltip-copy-particl-stealth" class = "input-like-container hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-10 focus:ring-0" id = "stealth_address" > {{ w.stealth_address }}
< / div >
2024-04-12 12:46:47 +00:00
< / div >
< div id = "tooltip-copy-particl-stealth" role = "tooltip" class = "inline-block absolute invisible z-10 py-2 px-3 text-sm font-medium text-white bg-blue-500 rounded-lg shadow-sm opacity-0 transition-opacity duration-300 tooltip" >
< p > Copy to clipboard< / p >
< div class = "tooltip-arrow" data-popper-arrow > < / div >
< / div >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / div >
< / div >
2024-02-10 17:05:48 +00:00
{% endif %}
2024-04-12 12:46:47 +00:00
{# / PART #}
{% if w.cid == '6' %}
{# XMR #}
< div class = "w-full md:w-1/2 p-3 flex justify-center items-center" >
< div class = "h-full" >
< div class = "flex flex-wrap -m-3" >
< div class = "w-full p-3" >
< div class = "mb-2 qrcode-container flex h-60 justify-center items-center" >
< div class = "qrcode-border flex" >
< div id = "qrcode-monero-main" class = "qrcode" > < / div >
< / div >
< / div >
< div class = "font-normal bold text-gray-500 text-center dark:text-white mb-5" > {{ w.name }} Main Address: < / div >
< div class = "relative flex justify-center items-center" >
< div data-tooltip-target = "tooltip-copy-monero-main" class = "input-like-container hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full focus:ring-0" id = "monero_main_address" > {{ w.main_address }}< / div >
< / div >
< div id = "tooltip-copy-monero-main" role = "tooltip" class = "inline-block absolute invisible z-10 py-2 px-3 text-sm font-medium text-white bg-blue-500 rounded-lg shadow-sm opacity-0 transition-opacity duration-300 tooltip" >
< p > Copy to clipboard< / p >
< div class = "tooltip-arrow" data-popper-arrow > < / div >
< / div >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / div >
< div class = "w-full md:w-1/2 p-3 flex justify-center items-center" >
< div class = "h-full" >
< div class = "flex flex-wrap -m-3" >
< div class = "w-full p-3" >
< div class = "mb-2 qrcode-container flex h-60 justify-center items-center" >
< div class = "qrcode-border flex" >
< div id = "qrcode-monero-sub" class = "qrcode" > < / div >
< / div >
< / div >
< div class = "font-normal bold text-gray-500 text-center dark:text-white mb-5" > {{ w.name }} Sub Address: < / div >
< div class = "relative flex justify-center items-center" >
< div data-tooltip-target = "tooltip-copy-monero-sub" class = "input-like-container hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full focus:ring-0" id = "monero_sub_address" > {{ w.deposit_address }}< / div >
< / div >
< div class = "opacity-100 text-gray-500 dark:text-gray-100 flex justify-center items-center" >
2024-05-03 11:09:59 +00:00
< div class = "py-3 px-6 bold mt-5" >
< button type = "submit" class = "flex justify-center py-2 px-4 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" name = "newaddr_{{ w.cid }}" value = "New Subaddress" > {{ circular_arrows_svg }} New {{ w.name }} Deposit Address< / button >
< / div >
2024-04-12 12:46:47 +00:00
< / div >
< div id = "tooltip-copy-monero-sub" role = "tooltip" class = "inline-block absolute invisible z-10 py-2 px-3 text-sm font-medium text-white bg-blue-500 rounded-lg shadow-sm opacity-0 transition-opacity duration-300 tooltip" >
< p > Copy to clipboard< / p >
< div class = "tooltip-arrow" data-popper-arrow > < / div >
< / div >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / div >
{% else %}
< div class = "w-full md:w-1/2 p-3 flex justify-center items-center" >
< div class = "h-full" >
< div class = "flex flex-wrap -m-3" >
< div class = "w-full p-3" >
< div class = "mb-2 qrcode-container flex h-60 justify-center items-center" >
< div class = "qrcode-border flex" >
< div id = "qrcode-deposit" class = "qrcode" > < / div >
< / div >
< / div >
< div class = "font-normal bold text-gray-500 text-center dark:text-white mb-5" > {{ w.name }} Deposit Address: < / div >
< div class = "relative flex justify-center items-center" >
< div data-tooltip-target = "tooltip-copy-default" class = "input-like-container hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full focus:ring-0" id = "main_deposit_address" > {{ w.deposit_address }}< / div >
< / div >
< div class = "opacity-100 text-gray-500 dark:text-gray-100 flex justify-center items-center" >
2024-05-03 11:09:59 +00:00
< div class = "py-3 px-6 bold mt-5" >
< button type = "submit" class = "flex justify-center py-2 px-4 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" name = "newaddr_{{ w.cid }}" value = "New Deposit Address" > {{ circular_arrows_svg }} New {{ w.name }} Deposit Address < / button >
< / div >
2024-04-12 12:46:47 +00:00
< / div >
< div id = "tooltip-copy-default" role = "tooltip" class = "inline-block absolute invisible z-10 py-2 px-3 text-sm font-medium text-white bg-blue-500 rounded-lg shadow-sm opacity-0 transition-opacity duration-300 tooltip" >
< p > Copy to clipboard< / p >
< div class = "tooltip-arrow" data-popper-arrow > < / div >
< / div >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / div >
{% endif %}
{% if w.cid == '3' %}
{# LTC #}
< div class = "w-full md:w-1/2 p-3 flex justify-center items-center" >
< div class = "h-full" >
< div class = "flex flex-wrap -m-3" >
< div class = "w-full p-3" >
< div class = "mb-2 qrcode-container flex h-60 justify-center items-center" >
< div class = "qrcode-border flex" >
< div id = "qrcode-mweb" class = "qrcode" > < / div >
< / div >
< / div >
< div class = "font-normal bold text-gray-500 text-center dark:text-white mb-5" > {{ w.name }} MWEB Address: < / div >
< div class = "text-center relative" >
2024-05-03 11:09:59 +00:00
< div data-tooltip-target = "tooltip-copy-litecoin-mweb" class = "input-like-container hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" id = "stealth_address" > {{ w.mweb_address }}< / div >
< span class = "absolute inset-y-0 right-0 flex items-center pr-3 cursor-pointer" id = "copyIcon" > < / span >
2024-04-12 12:46:47 +00:00
< / div >
2024-05-03 11:09:59 +00:00
< div class = "opacity-100 text-gray-500 dark:text-gray-100 flex justify-center items-center" >
< div class = "py-3 px-6 bold mt-5" >
< button type = "submit" class = "flex justify-center py-2 px-4 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" name = "newmwebaddr_{{ w.cid }}" value = "New MWEB Address" > {{ circular_arrows_svg }} New MWEB Address < / button >
< / div >
2024-04-12 12:46:47 +00:00
< div id = "tooltip-copy-litecoin-mweb" role = "tooltip" class = "inline-block absolute invisible z-10 py-2 px-3 text-sm font-medium text-white bg-blue-500 rounded-lg shadow-sm opacity-0 transition-opacity duration-300 tooltip" >
< p > Copy to clipboard< / p >
< div class = "tooltip-arrow" data-popper-arrow > < / div >
< / div >
< / div >
< / div >
< / div >
< / div >
2024-05-20 14:29:14 +00:00
{% endif %}
2024-04-12 12:46:47 +00:00
{# / LTC #}
< / div >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
2023-12-29 13:36:00 +00:00
< / div >
2024-01-25 16:50:06 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / section >
{% if w.cid == '1' %}
{# PART #}
< script >
2024-05-03 11:09:59 +00:00
// Particl Stealth
2024-04-12 12:46:47 +00:00
var stealthAddress = "{{ w.stealth_address }}";
2024-05-20 14:29:14 +00:00
2024-05-03 11:09:59 +00:00
var qrCodeStealth = new QRCode(document.getElementById("qrcode-stealth"), {
2024-04-12 12:46:47 +00:00
text: stealthAddress,
width: 170,
height: 170,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.L
});
< / script >
{% endif %}
{% if w.cid == '3' %}
{# LTC #}
< script >
// Litecoin MWEB
var mwebAddress = "{{ w.mweb_address }}";
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
var qrCodeMWEB = new QRCode(document.getElementById("qrcode-mweb"), {
text: mwebAddress,
width: 170,
height: 170,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.L
});
2024-05-20 14:29:14 +00:00
< / script >
2024-04-12 12:46:47 +00:00
{% endif %}
{% if w.cid == '6' %}
{# XMR #}
< script >
// Monero Sub
var moneroSubAddress = "{{ w.deposit_address }}";
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
var qrCodeMoneroSub = new QRCode(document.getElementById("qrcode-monero-sub"), {
text: moneroSubAddress,
width: 170,
height: 170,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.L
});
< / script >
< script >
// Monero Main
var moneroMainAddress = "{{ w.main_address }}";
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
var qrCodeMoneroMain = new QRCode(document.getElementById("qrcode-monero-main"), {
text: moneroMainAddress,
width: 170,
height: 170,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.L
});
< / script >
{% else %}
< script >
// Default
var defaultAddress = "{{ w.deposit_address }}";
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
var qrCodeDepost = new QRCode(document.getElementById("qrcode-deposit"), {
text: defaultAddress,
width: 170,
height: 170,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.L
});
< / script >
{% endif %}
< script >
function copyToClipboard(text) {
const el = document.createElement('textarea');
el.value = text;
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
function copyAndShowMessage(elementId) {
const addressElement = document.getElementById(elementId);
if (!addressElement) return;
const addressText = addressElement.innerText.trim();
copyToClipboard(addressText);
addressElement.innerText = 'Copied to clipboard';
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const originalWidth = addressElement.offsetWidth;
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
addressElement.classList.add('copying');
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
addressElement.parentElement.style.width = `${originalWidth}px`;
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
setTimeout(function () {
addressElement.innerText = addressText;
addressElement.classList.remove('copying');
addressElement.parentElement.style.width = '';
}, 2000);
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const stealthAddressElement = document.getElementById('stealth_address');
if (stealthAddressElement) {
stealthAddressElement.addEventListener('click', function () {
copyAndShowMessage('stealth_address');
});
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const mainDepositAddressElement = document.getElementById('main_deposit_address');
if (mainDepositAddressElement) {
mainDepositAddressElement.addEventListener('click', function () {
copyAndShowMessage('main_deposit_address');
});
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const moneroMainAddressElement = document.getElementById('monero_main_address');
if (moneroMainAddressElement) {
moneroMainAddressElement.addEventListener('click', function () {
copyAndShowMessage('monero_main_address');
});
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const moneroSubAddressElement = document.getElementById('monero_sub_address');
if (moneroSubAddressElement) {
moneroSubAddressElement.addEventListener('click', function () {
copyAndShowMessage('monero_sub_address');
});
}
< / script >
< section class = "p-6" >
< div class = "flex items-center" >
< h4 class = "font-semibold text-2xl text-black dark:text-white" > Withdraw< / h4 >
2022-10-10 21:44:14 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / section >
< section >
< div class = "pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden" >
< div class = "border-coolGray-100" >
< div class = "flex flex-wrap items-center justify-between -m-2" >
< div class = "w-full pt-2" >
< div class = "container mt-5 mx-auto" >
< div class = "pt-6 pb-6 bg-coolGray-100 dark:bg-gray-500 rounded-xl" >
< div class = "px-6" >
< div class = "w-full mt-6 pb-6 overflow-x-auto" >
< table class = "w-full min-w-max text-sm" >
< thead class = "uppercase" >
< tr class = "text-left" >
< th class = "p-0" >
< div class = "py-3 px-6 rounded-tl-xl bg-coolGray-200 dark:bg-gray-600" > < span class = "text-xs text-gray-600 dark:text-gray-300 font-semibold" > Options< / span > < / div >
< / th >
< th class = "p-0" >
< div class = "py-3 px-6 rounded-tr-xl bg-coolGray-200 dark:bg-gray-600" > < span class = "text-xs text-gray-600 dark:text-gray-300 font-semibold" > Input< / span > < / div >
< / th >
< / tr >
< / thead >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-4 pl-6 bold" > < span class = "inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }}" > < / span > {{ w.name }} Balance: < / td >
< td class = "py-3 px-6" data-coinname = "{{ w.name }}" > {{ w.balance }} {{ w.ticker }} < / td >
{% if w.cid == '3' %}
{# LTC #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-4 pl-6 bold w-1/4" > < span class = "inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }}" > < / span > {{ w.name }} MWEB Balance: < / td >
< td class = "py-3 px-6" data-coinname = "{{ w.name }}" > {{ w.mweb_balance }} {{ w.ticker }} < / td >
{% endif %}
{% if w.cid == '1' %}
{# PART #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-4 pl-6 bold" > < span class = "inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }}" > < / span > {{ w.name }} Blind Balance: < / td >
< td class = "py-3 px-6" data-coinname = "{{ w.name }}" > {{ w.blind_balance }} {{ w.ticker }} < / td >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-4 pl-6 bold" > < span class = "inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded" > < img class = "h-7" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }}" > < / span > {{ w.name }} Anon Balance: < / td >
< td class = "py-3 px-6" data-coinname = "{{ w.name }}" > {{ w.anon_balance }} {{ w.ticker }} < / td > {% endif %}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-4 pl-6 bold" > {{ w.name }} Address: < / td >
< td class = "py-3 px-6" > < input placeholder = "{{ w.ticker }} Address" class = "hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" type = "text" name = "to_{{ w.cid }}" value = "{{ w.wd_address }}" > < / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-4 pl-6 bold" > {{ w.name }} Amount:
< td class = "py-3 px-6" >
< div class = "flex" > < input placeholder = "{{ w.ticker }} Amount" class = "hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" type = "text" id = "amount" name = "amt_{{ w.cid }}" value = "{{ w.wd_value }}" >
< div class = "ml-2 flex" >
{% if w.cid == '1' %}
{# PART #}
< button type = "button" class = "py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(0.25, '{{ w.balance }}', '{{ w.blind_balance }}', '{{ w.anon_balance }}')" > 25%< / button > < button type = "button" class = "ml-2 py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(0.5, '{{ w.balance }}', '{{ w.blind_balance }}', '{{ w.anon_balance }}')" > 50%< / button > < button type = "button" class = "ml-2 py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(1, '{{ w.balance }}', '{{ w.blind_balance }}', '{{ w.anon_balance }}')" > 100%< / button >
< script >
function setAmount(percent, balance, blindBalance, anonBalance) {
var amountInput = document.getElementById('amount');
var typeSelect = document.getElementById('withdraw_type');
var selectedType = typeSelect.value;
var floatBalance;
var calculatedAmount;
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
switch(selectedType) {
case 'plain':
floatBalance = parseFloat(balance);
calculatedAmount = floatBalance * percent;
break;
case 'blind':
floatBalance = parseFloat(blindBalance);
calculatedAmount = floatBalance * percent;
break;
case 'anon':
floatBalance = parseFloat(anonBalance);
calculatedAmount = floatBalance * percent;
break;
default:
floatBalance = parseFloat(balance);
calculatedAmount = floatBalance * percent;
break;
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
amountInput.value = calculatedAmount.toFixed(8);
}
< / script >
{# / PART #}
{% elif w.cid == '3' %}
{# LTC #}
< button type = "button" class = "py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(0.25, '{{ w.balance }}', '{{ w.mweb_balance }}', 'mweb')" > 25%< / button > < button type = "button" class = "ml-2 py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(0.5, '{{ w.balance }}', '{{ w.mweb_balance }}', 'mweb')" > 50%< / button > < button type = "button" class = "ml-2 py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(1, '{{ w.balance }}', '{{ w.mweb_balance }}', 'mweb')" > 100%< / button >
< script >
function setAmount(percent, balance, mwebBalance, selectedType) {
var amountInput = document.getElementById('amount');
var typeSelect = document.getElementById('withdraw_type');
var selectedType = typeSelect.value;
var floatBalance;
var calculatedAmount;
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
switch(selectedType) {
case 'plain':
floatBalance = parseFloat(balance);
calculatedAmount = floatBalance * percent;
break;
case 'mweb':
floatBalance = parseFloat(mwebBalance);
calculatedAmount = floatBalance * percent;
break;
default:
floatBalance = parseFloat(balance);
calculatedAmount = floatBalance * percent;
break;
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
amountInput.value = calculatedAmount.toFixed(8);
}
< / script >
{# / LTC #}
{% else %}
< button type = "button" class = "py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(0.25, '{{ w.balance }}')" > 25%< / button > < button type = "button" class = "ml-2 py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(0.5, '{{ w.balance }}')" > 50%< / button > < button type = "button" class = "ml-2 py-1 px-2 bg-blue-500 text-white text-sm rounded-md focus:outline-none" onclick = "setAmount(1, '{{ w.balance }}', '{{ w.cid }}')" > 100%< / button >
< script >
function setAmount(percent, balance, cid) {
var amountInput = document.getElementById('amount');
var floatBalance;
var calculatedAmount;
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
floatBalance = parseFloat(balance);
calculatedAmount = floatBalance * percent;
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
if (cid === '6' & & percent === 1) {
amountInput.setAttribute('data-hidden', 'true');
amountInput.placeholder = 'Sweep All';
amountInput.value = '';
amountInput.disabled = true;
} else if (amountInput.getAttribute('data-hidden') === 'true' & & percent !== 1) {
amountInput.value = calculatedAmount.toFixed(8);
amountInput.setAttribute('data-hidden', 'false');
amountInput.placeholder = '';
amountInput.disabled = false;
} else {
amountInput.value = calculatedAmount.toFixed(8);
amountInput.placeholder = '';
amountInput.disabled = false;
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
if (cid === '6' & & percent === 1) {
var sweepAllCheckbox = document.getElementById('sweepall');
if (sweepAllCheckbox) {
sweepAllCheckbox.checked = true;
}
} else {
var sweepAllCheckbox = document.getElementById('sweepall');
if (sweepAllCheckbox) {
sweepAllCheckbox.checked = false;
}
}
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
< / script >
{% endif %}
< / div >
< / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
{% if w.cid == '6' %} {# XMR #}
< td class = "py-3 px-6 bold" > Sweep All:< / td >
< td class = "py-3 px-6" > < input class = "hover:border-blue-500 w-5 h-5 form-check-input text-blue-600 bg-gray-50 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-1 dark:bg-gray-500 dark:border-gray-400" type = "checkbox" id = "sweepall" name = "sweepall_{{ w.cid }}" { % if w . wd_sweepall = =true % } checked = checked{% endif % } > < / td > {% else %} < td class = "py-3 px-6 bold" > Subtract Fee:< / td >
< td class = "py-3 px-6" > < input class = "hover:border-blue-500 w-5 h-5 form-check-input text-blue-600 bg-gray-50 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-1 dark:bg-gray-500 dark:border-gray-400" type = "checkbox" name = "subfee_{{ w.cid }}" { % if w . wd_subfee = =true % } checked = checked{% endif % } > < / td >
{% endif %}
2024-05-20 14:29:14 +00:00
< td >
2024-04-12 12:46:47 +00:00
< / td >
< / tr >
{% if w.cid == '1' %}
{# PART #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-3 px-6 bold" > Type From:< / td >
< td class = "py-3 px-6" >
< div class = "w-full md:flex-1" >
< div class = "relative" > {{ select_box_arrow_svg | safe }} < select id = "withdraw_type" class = "{{ select_box_class }}" name = "withdraw_type_from_{{ w.cid }}" >
< option value = "any" { % if w . wd_type_from = =-1 % } selected { % endif % } > Select Type< / option >
< option value = "plain" { % if w . wd_type_from = ='plain' % } selected { % endif % } > Plain< / option >
< option value = "blind" { % if w . wd_type_from = ='blind' % } selected { % endif % } > Blind< / option >
< option value = "anon" { % if w . wd_type_from = ='anon' % } selected { % endif % } > Anon< / option >
< / select > < / div >
2024-01-25 16:50:06 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-3 px-6 bold" > Type To:< / td >
< td class = "py-3 px-6" >
< div class = "w-full md:flex-1" >
< div class = "relative" > {{ select_box_arrow_svg }} < select class = "{{ select_box_class }}" name = "withdraw_type_to_{{ w.cid }}" >
< option value = "any" { % if w . wd_type_to = =-1 % } selected { % endif % } > Select Type< / option >
< option value = "plain" { % if w . wd_type_to = ='plain' % } selected { % endif % } > Plain< / option >
< option value = "blind" { % if w . wd_type_to = ='blind' % } selected { % endif % } > Blind< / option >
< option value = "anon" { % if w . wd_type_to = ='anon' % } selected { % endif % } > Anon< / option >
< / select > < / div >
2024-01-25 16:50:06 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / td >
2024-01-25 16:50:06 +00:00
< / tr >
2024-04-12 12:46:47 +00:00
{% endif %}
{# / PART #}
{% if w.cid == '3' %} {# LTC #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-3 px-6 bold" > Type From:< / td >
< td class = "py-3 px-6" >
< div class = "w-full md:flex-1" >
< div class = "relative" > {{ select_box_arrow_svg }} < select id = "withdraw_type" class = "{{ select_box_class }}" name = "withdraw_type_from_{{ w.cid }}" >
< option value = "plain" { % if w . wd_type_from = ='plain' % } selected { % endif % } > Plain< / option >
< option value = "mweb" { % if w . wd_type_from = ='mweb' % } selected { % endif % } > MWEB< / option >
< / select > < / div >
< / div >
< / td >
< / tr >
{% endif %}
{# / LTC #}
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-3 px-6 bold" > Fee Rate:< / td >
< td class = "py-3 px-6" > {{ w.fee_rate }}< / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-3 px-6 bold" > Estimate Fee:< / td >
< td class = "py-3 px-6" > {{ w.est_fee }} < / td >
< / tr >
< / table >
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / section >
< section >
< div class = "pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden " >
< div class = "pb-6 " >
< div class = "flex flex-wrap items-center justify-between -m-2" >
< div class = "w-full pt-2" >
< div class = "container mx-auto" >
< div class = "pt-6 pb-6 bg-coolGray-100 border-t border-gray-100 dark:border-gray-400 dark:bg-gray-500 rounded-bl-xl rounded-br-xl" >
< div class = "px-6" >
< div class = "flex flex-wrap justify-end" >
{% if w.cid != '6' %}
{# !XMR #}
{% if w.show_utxo_groups %}
{% else %}
< div class = "w-full md:w-auto p-1.5" > < button type = "submit" class = "flex flex-wrap justify-center px-4 py-2.5 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" id = "showutxogroups" name = "showutxogroups" value = "Show UTXO Groups" > {{ utxo_groups_svg | safe }} Show UTXO Groups < / button > < / div >
{% endif %} {% endif %}
{% if w.cid == '6' %}
{# XMR #}
< div class = "w-full md:w-auto p-1.5 ml-2" > < button type = "submit" class = "flex flex-wrap justify-center w-full px-4 py-2.5 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" name = "estfee_{{ w.cid }}" value = "Estimate Fee" > Estimate {{ w.ticker }} Fee < / button > < / div >
{% endif %}
{# / XMR #} < div class = "w-full md:w-auto p-1.5 ml-2" > < button type = "submit" class = "flex flex-wrap justify-center w-full px-4 py-2.5 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" name = "withdraw_{{ w.cid }}" value = "Withdraw" onclick = "return confirmWithdrawal();" > {{ withdraw_svg | safe }} Withdraw {{ w.ticker }} < / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / section >
{% if w.cid != '6' %}
{# !XMR #}
{% if w.show_utxo_groups %}
< section class = "p-6" >
< div class = "flex items-center" >
< h4 class = "font-semibold text-2xl text-black dark:text-white" > UTXO Groups< / h4 >
2023-04-06 14:59:28 +00:00
< / div >
2024-04-12 12:46:47 +00:00
< / section >
< section >
< div class = "pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden" >
< div class = "border-coolGray-100" >
< div class = "flex flex-wrap items-center justify-between -m-2" >
< div class = "w-full pt-2" >
< div class = "container mt-5 mx-auto" >
< div class = "pt-6 pb-8 bg-coolGray-100 dark:bg-gray-500 rounded-xl" >
< div class = "px-6" >
< div class = "w-full mt-6 pb-6 overflow-x-auto" >
< table class = "w-full min-w-max text-sm" >
< thead class = "uppercase" >
< tr class = "text-left" >
< th class = "p-0" >
< div class = "py-3 px-6 rounded-tl-xl bg-coolGray-200 dark:bg-gray-600" > < span class = "text-xs text-gray-600 dark:text-gray-300 font-semibold" > Options< / span > < / div >
< / th >
< th class = "p-0" >
< div class = "py-3 px-6 rounded-tr-xl bg-coolGray-200 dark:bg-gray-600" > < span class = "text-xs text-gray-600 dark:text-gray-300 font-semibold p-10" > < / span > < / div >
< / th >
< / tr >
< / thead >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-3 px-6 w-1/4 bold" > UTXO Groups:< / td >
< td class = "py-3 px-6" > < textarea class = "hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-50 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" id = "tx_view" rows = "10" readonly > {{ w.utxo_groups }} < / textarea > < / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< td class = "py-3 px-6" > < button type = "submit" class = "flex flex-wrap justify-center px-4 py-2 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" id = "create_utxo" name = "create_utxo" value = "Create UTXO" onclick = "return confirmUTXOResize();" > {{ create_utxo_svg | safe }}Create UTXO < / button > < / td >
< td class = "py-3 px-6" > < input placeholder = "Amount" class = "hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" type = "text" name = "utxo_value" value = "{{ w.utxo_value }}" > < / td >
< / tr >
< / table >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / div >
2024-04-12 12:46:47 +00:00
< / section >
< section >
< div class = "pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden " >
< div class = "pb-6 " >
< div class = "flex flex-wrap items-center justify-between -m-2" >
< div class = "w-full pt-2" >
< div class = "container mx-auto" >
< div class = "pt-6 pb-6 bg-coolGray-100 border-t border-gray-100 dark:border-gray-400 dark:bg-gray-500 rounded-bl-xl rounded-br-xl" >
< div class = "px-6" >
< div class = "flex flex-wrap justify-end" > < button type = "submit" class = "flex flex-wrap justify-center px-4 py-2.5 bg-blue-500 hover:bg-blue-600 font-medium text-sm text-white border border-blue-500 rounded-md shadow-button focus:ring-0 focus:outline-none" id = "closeutxogroups" name = "closeutxogroups" value = "Close UTXO Groups" > {{ utxo_groups_svg | safe }} Close UTXO Groups < / button > < / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / section >
{% else %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
< input type = "hidden" name = "formid" value = "{{ form_id }}" >
2023-04-06 14:59:28 +00:00
< / form >
2023-06-26 18:01:09 +00:00
< script >
2024-04-12 12:46:47 +00:00
const coinNameToSymbol = {
'Bitcoin': 'BTC',
'Particl': 'PART',
'Particl Blind': 'PART',
'Particl Anon': 'PART',
'Monero': 'XMR',
'Litecoin': 'LTC',
'Firo': 'FIRO',
'Dash': 'DASH',
'PIVX': 'PIVX',
'DECRED': 'DCR',
'WOWNERO': 'WOW'
};
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const getUsdValue = (cryptoValue, coinSymbol) => fetch(`https://min-api.cryptocompare.com/data/price?fsym=${coinSymbol}& tsyms=USD`)
.then(response => response.json())
.then(data => {
const exchangeRate = data.USD;
if (!isNaN(exchangeRate)) {
return cryptoValue * exchangeRate;
} else {
throw new Error(`Invalid exchange rate for ${coinSymbol}`);
}
});
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const updateUsdValue = async (cryptoCell, coinFullName, usdValueSpan) => {
const coinSymbol = coinNameToSymbol[coinFullName] || '';
if (!coinSymbol) {
console.error(`Coin symbol not found for full name: ${coinFullName}`);
return;
2023-06-26 18:01:09 +00:00
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const cryptoValue = parseFloat(cryptoCell.textContent);
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
if (!isNaN(cryptoValue) & & cryptoValue !== 0) {
try {
const usdValue = await getUsdValue(cryptoValue, coinSymbol);
if (usdValueSpan) {
usdValueSpan.textContent = `$${usdValue.toFixed(2)}`;
}
} catch (error) {
console.error('Error in updateUsdValue:', error);
if (usdValueSpan) {
usdValueSpan.textContent = 'Error retrieving exchange rate';
}
2023-06-26 18:01:09 +00:00
}
2024-04-12 12:46:47 +00:00
} else {
2023-06-26 18:01:09 +00:00
if (usdValueSpan) {
2024-04-12 12:46:47 +00:00
usdValueSpan.textContent = `$0.00`;
2023-06-26 18:01:09 +00:00
}
}
2024-04-12 12:46:47 +00:00
};
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const calculateTotalUsdValue = async () => {
const coinNameValues = document.querySelectorAll('.coinname-value');
let totalUsdValue = 0;
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
for (const coinNameValue of coinNameValues) {
const coinFullName = coinNameValue.getAttribute('data-coinname');
const cryptoValue = parseFloat(coinNameValue.textContent);
const coinSymbol = coinNameToSymbol[coinFullName];
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
if (coinSymbol) {
const usdValueSpan = coinNameValue.querySelector('.usd-value');
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
if (!isNaN(cryptoValue) & & cryptoValue !== 0) {
try {
const usdValue = await getUsdValue(cryptoValue, coinSymbol);
totalUsdValue += usdValue;
if (usdValueSpan) {
usdValueSpan.textContent = `$${usdValue.toFixed(2)}`;
}
} catch (error) {
console.error(`Error retrieving exchange rate for ${coinFullName}`);
}
} else {
2023-06-26 18:01:09 +00:00
if (usdValueSpan) {
2024-04-12 12:46:47 +00:00
usdValueSpan.textContent = `$0.00`;
2023-06-26 18:01:09 +00:00
}
}
} else {
2024-04-12 12:46:47 +00:00
console.error(`Coin symbol not found for full name: ${coinFullName}`);
2023-06-26 18:01:09 +00:00
}
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
const totalUsdValueElement = document.getElementById('total-usd-value');
if (totalUsdValueElement) {
totalUsdValueElement.textContent = `$${totalUsdValue.toFixed(2)}`;
}
};
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
document.addEventListener('DOMContentLoaded', () => {
const coinNameValues = document.querySelectorAll('.coinname-value');
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
for (const coinNameValue of coinNameValues) {
const coinFullName = coinNameValue.getAttribute('data-coinname');
const usdValueSpan = coinNameValue.querySelector('.usd-value');
updateUsdValue(coinNameValue, coinFullName, usdValueSpan);
2024-02-10 17:05:48 +00:00
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
calculateTotalUsdValue();
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
function set_sweep_all(element) {
let input = document.getElementById('amount');
if (element.checked) {
input.disabled = true;
} else {
input.disabled = false;
2024-02-10 17:05:48 +00:00
}
2024-04-12 12:46:47 +00:00
}
2024-05-20 14:29:14 +00:00
2024-02-10 17:05:48 +00:00
let cb_sweepall = document.getElementById('sweepall');
if (cb_sweepall) {
2024-04-12 12:46:47 +00:00
set_sweep_all(cb_sweepall);
cb_sweepall.addEventListener('change', (event) => {
set_sweep_all(event.currentTarget);
});
2024-02-10 17:05:48 +00:00
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
});
2024-05-26 09:32:43 +00:00
2024-04-12 12:46:47 +00:00
function confirmReseed() {
return confirm("Are you sure?\nBackup your wallet before and after.\nWon't detect used keys.\nShould only be used for new wallets.");
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
function confirmWithdrawal() {
return confirm("Are you sure?");
}
2024-05-20 14:29:14 +00:00
2024-04-12 12:46:47 +00:00
function confirmUTXOResize() {
return confirm("Are you sure?");
}
2023-04-06 14:59:28 +00:00
< / script >
2024-05-26 09:32:43 +00:00
{% include 'footer.html' %}
2022-10-10 21:44:14 +00:00
< / body >
2024-04-12 12:46:47 +00:00
< / html >