2022-01-23 12:00:28 +00:00
{% include 'header.html' %}
2024-01-25 16:50:06 +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 %}
2023-12-29 13:36:00 +00:00
2022-10-10 21:44:14 +00:00
< div class = "container mx-auto" >
2024-01-25 16:50:06 +00:00
< section class = "p-5 mt-5" >
2023-04-06 14:59:28 +00:00
< div class = "flex flex-wrap items-center -m-2" >
2024-01-25 16:50:06 +00:00
< 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 >
2023-04-06 14:59:28 +00:00
< / div >
2024-01-25 16:50:06 +00:00
< / section >
< section class = "py-4" >
2023-04-06 14:59:28 +00:00
< div class = "container px-4 mx-auto" >
2024-01-25 16:50:06 +00:00
< 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 p-3" >
< h2 class = "text-4xl font-bold text-white tracking-tighter" >
< span class = "inline-block align-middle" > < img class = "mr-2 h-16" src = "/static/images/coins/{{ w.name }}.png" alt = "{{ w.name }}" > < / span > {{ w.name }} Wallet - < span id = "total-usd-value" > < / span >
< / h2 >
< p class = "font-normal text-coolGray-200 dark:text-white pl-2 pt-5" > Manage your {{ w.ticker }} wallet. {% if refresh %} (Page Refresh: {{ refresh }} seconds) {% endif %}< / p >
< / 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 >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
2024-01-25 16:50:06 +00:00
< / section >
{% include 'inc_messages.html' %}
{% if w.updating %}
< section class = "py-4" id = "updating" role = "alert" >
2023-04-06 14:59:28 +00:00
< div class = "container px-4 mx-auto" >
2024-01-25 16:50:06 +00:00
< div class = "p-6 bg-blue-100 border border-blue-200 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" >
< div class = "w-auto p-1" >
{{ circular_info_svg | safe }}
< / div >
< / div >
< div class = "flex-1 p-1" >
< h3 class = "font-medium text-sm text-blue-900" > Updating, please wait...< / h3 >
< / div >
< / div >
< / div >
< div class = "w-auto p-2" >
< button type = "button" class = "ml-auto bg-blue-100 text-blue-500 rounded-lg focus:ring-0 focus:ring-blue-400 p-1.5 hover:bg-blue-200 inline-flex h-8 w-8 focus:outline-none" data-dismiss-target = "#updating" aria-label = "Close" >
< span class = "sr-only" > Close< / span >
{{ cross_close_svg | safe }}
< / button >
< / div >
2022-10-10 21:44:14 +00:00
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
2024-01-25 16:50:06 +00:00
< / section >
{% endif %}
{% if w.havedata %}
{% if w.error %}
< section class = "py-4" id = "error" role = "alert" >
2023-04-06 14:59:28 +00:00
< div class = "container px-4 mx-auto" >
< div class = "p-6 bg-red-100 border border-red-200 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" >
2024-01-25 16:50:06 +00:00
{{ circular_error_svg | safe }}
2023-04-06 14:59:28 +00:00
< / div >
< div class = "flex-1 p-1" >
< h3 class = "font-medium text-sm text-red-900 error_msg" >
< p class = "error_msg" > Error: {{ w.error }}< / p >
< / h3 >
< / div >
2022-10-10 21:44:14 +00:00
< / div >
2023-04-06 14:59:28 +00:00
< / div >
2024-01-25 16:50:06 +00:00
< 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" data-dismiss-target = "#error" aria-label = "Close" >
< span class = "sr-only" > Close< / span >
{{ cross_close_svg | safe }}
< / button >
< / div >
2022-10-10 21:44:14 +00:00
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / section >
2024-01-25 16:50:06 +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" >
2023-04-06 14:59:28 +00:00
< div class = "pb-6 border-coolGray-100" >
2024-01-25 16:50:06 +00:00
< 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 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" >
< 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 >
2024-02-09 20:53:37 +00:00
< 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 %}< / td >
2024-01-25 16:50:06 +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 >
< td class = "py-3 px-6 bold coinname-value" data-coinname = "{{ w.name }}" > {{ w.blind_balance }} {{ w.ticker }} (< span class = "usd-value" > < / span > ) {% 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 %}< / 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" >
< 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 %}< / td >
< 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 = "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 > {% endif %}< / td >
< / tr >
{% endif %} {# / LTC #}
2024-01-28 18:16:30 +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 #}
2024-01-25 16:50:06 +00:00
< 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 >
< / div >
2022-11-10 21:49:55 +00:00
< / div >
2024-01-25 16:50:06 +00:00
< / div >
< / div >
< / div >
< / div >
2023-08-02 15:38:15 +00:00
< / section >
2024-01-25 16:50:06 +00:00
< section class = "pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden" >
2023-08-02 15:38:15 +00:00
< div class = "pb-6 border-coolGray-100" >
2024-01-25 16:50:06 +00:00
< 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 = "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 >
< / div >
< / div >
2023-08-02 15:38:15 +00:00
< / div >
< / div >
< / div >
< / div >
< / section >
2024-01-25 16:50:06 +00:00
{% else %}
{% 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" > Stealth Address< / td >
< td colspan = 2 class = "py-3 px-6 monospace bold select-all" > {{ w.stealth_address }}< / 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" >
< button type = "submit" class = "flex flex-wrap 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 >
< / td >
< td colspan = 2 class = "py-3 px-6 monospace bold select-all" > {{ w.mweb_address }}< / td >
< / tr >
{% endif %} {# / LTC #}
{% if w.cid == '6' %} {# XMR #}
< 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" > Main Address< / td >
< td colspan = 2 class = "py-3 px-6 monospace bold select-all" > {{ w.main_address }}< / 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" >
< button type = "submit" class = "flex flex-wrap 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.ticker }} Sub Address < / button >
< / td >
< td colspan = 2 class = "py-3 px-6 monospace select-all" > {{ w.deposit_address }}< / td >
< / tr >
2023-08-02 15:38:15 +00:00
2024-01-25 16:50:06 +00:00
{% else %}
< 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" >
< button type = "submit" class = "flex flex-wrap 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.ticker }} Deposit Address< / button >
< / td >
< td colspan = 2 class = "py-3 px-6 monospace bold select-all" id = "deposit_address" > {{ w.deposit_address }}< / td >
< / tr >
{% endif %}
2023-08-02 15:38:15 +00:00
2023-04-06 14:59:28 +00:00
< / table >
2022-11-10 21:49:55 +00:00
< / div >
2023-04-06 14:59:28 +00:00
< / div >
2022-11-10 21:49:55 +00:00
< / div >
2023-04-06 14:59:28 +00:00
< / div >
2022-11-10 21:49:55 +00:00
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / div >
< / section >
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
< section class = "p-6" >
2024-01-25 16:50:06 +00:00
< div class = "flex items-center" >
< h4 class = "font-semibold text-2xl text-black dark:text-white" > Withdraw< / h4 >
2023-04-06 14:59:28 +00:00
< / div >
< / section >
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
< section >
2024-01-25 16:50:06 +00:00
< div 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-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 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 >
< 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-4 pl-6 bold w-1/4" >
< button type = "submit" class = "flex flex-wrap 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 = "withdraw_{{ w.cid }}" value = "Withdraw" onclick = "return confirmWithdrawal();" > {{ withdraw_svg | safe }} Withdraw {{ w.ticker }}< / button >
< / 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 >
< td class = "py-3 px-6" >
< 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" name = "amt_{{ w.cid }}" value = "{{ w.wd_value }}" >
< / td >
< / tr >
< tr class = "opacity-100 text-gray-500 dark:text-gray-100" >
< 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 >
< td > < / 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 -> To:< / td >
< td class = "py-3 px-6" >
< div class = "w-full md:flex-1" >
< div class = "relative" >
{{ select_box_arrow_svg | safe }}
< select 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 = "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 >
< / div >
< / 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 = "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 >
< / div >
< / td >
< / tr >
{% 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 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 hover:bg-coolGray-200 dark:hover:bg-gray-600" >
< td class = "py-3 px-6 bold" > Fee Rate:< / td >
< td class = "py-3 px-6 bold" > {{ w.fee_rate }}< / td >
< td class = "py-3 px-6" >
< b > Est Fee:< / b > {{ w.est_fee }}
< / td >
< / tr >
< / table >
< / div >
< / div >
2023-12-29 13:36:00 +00:00
< / div >
2024-01-25 16:50:06 +00:00
< / div >
2022-10-10 21:44:14 +00:00
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / section >
2024-01-25 16:50:06 +00:00
2023-12-29 13:36:00 +00:00
{% if w.cid != '6' %} {# !XMR #}
2023-04-06 14:59:28 +00:00
{% if w.show_utxo_groups %}
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
< section class = "p-6" >
2024-01-25 16:50:06 +00:00
< 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 >
< / section >
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
< section >
2024-01-25 16:50:06 +00:00
< div 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-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 >
< / div >
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / div >
< / div >
< / section >
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
< section >
2024-01-25 16:50:06 +00:00
< div 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" >
< div class = "flex flex-wrap justify-end" >
< 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 = "closeutxogroups" name = "closeutxogroups" value = "Close UTXO Groups" >
{{ utxo_groups_svg | safe }} Close UTXO Groups< / button >
< / div >
< / div >
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / div >
2022-11-10 21:49:55 +00:00
< / div >
2023-04-06 14:59:28 +00:00
< / section >
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
{% else %}
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
< section >
2024-01-25 16:50:06 +00:00
< div 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" >
< div class = "flex flex-wrap justify-end" >
< 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 >
< / div >
< / div >
< / div >
< / div >
2023-04-06 14:59:28 +00:00
< / div >
< / div >
< / div >
< / div >
< / section >
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
< input type = "hidden" name = "formid" value = "{{ form_id }}" >
< / form >
< / div >
2023-06-26 18:01:09 +00:00
< / div >
< / div >
< / div >
< / div >
2024-01-25 16:50:06 +00:00
2023-06-26 18:01:09 +00:00
< script >
const coinNameToSymbol = {
'Bitcoin': 'BTC',
'Particl': 'PART',
'Particl Blind': 'PART',
'Particl Anon': 'PART',
'Monero': 'XMR',
'Litecoin': 'LTC',
'Firo': 'FIRO',
'Dash': 'DASH',
'PIVX': 'PIVX'
};
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}`);
}
});
const updateUsdValue = async (cryptoCell, coinFullName, usdValueSpan) => {
console.log('updateUsdValue called with:', cryptoCell, coinFullName);
const coinSymbol = coinNameToSymbol[coinFullName] || '';
if (!coinSymbol) {
console.error(`Coin symbol not found for full name: ${coinFullName}`);
return;
}
const cryptoValue = parseFloat(cryptoCell.textContent);
if (!isNaN(cryptoValue) & & cryptoValue !== 0) {
try {
const usdValue = await getUsdValue(cryptoValue, coinSymbol);
console.log('usdValue:', usdValue);
if (usdValueSpan) {
usdValueSpan.textContent = `$${usdValue.toFixed(2)}`;
}
} catch (error) {
console.error('Error in updateUsdValue:', error);
if (usdValueSpan) {
usdValueSpan.textContent = 'Error retrieving exchange rate';
}
}
} else {
if (usdValueSpan) {
usdValueSpan.textContent = `$0.00`;
}
}
};
const calculateTotalUsdValue = async () => {
const coinNameValues = document.querySelectorAll('.coinname-value');
let totalUsdValue = 0;
for (const coinNameValue of coinNameValues) {
const coinFullName = coinNameValue.getAttribute('data-coinname');
const cryptoValue = parseFloat(coinNameValue.textContent);
const coinSymbol = coinNameToSymbol[coinFullName];
if (coinSymbol) {
const usdValueSpan = coinNameValue.querySelector('.usd-value');
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 {
if (usdValueSpan) {
usdValueSpan.textContent = `$0.00`;
}
}
} else {
console.error(`Coin symbol not found for full name: ${coinFullName}`);
}
}
const totalUsdValueElement = document.getElementById('total-usd-value');
if (totalUsdValueElement) {
totalUsdValueElement.textContent = `$${totalUsdValue.toFixed(2)}`;
}
};
// Call the function to calculate the USD values and total USD value when the DOM content is loaded
document.addEventListener('DOMContentLoaded', () => {
const coinNameValues = document.querySelectorAll('.coinname-value');
for (const coinNameValue of coinNameValues) {
const coinFullName = coinNameValue.getAttribute('data-coinname');
const usdValueSpan = coinNameValue.querySelector('.usd-value');
updateUsdValue(coinNameValue, coinFullName, usdValueSpan);
}
calculateTotalUsdValue();
});
< / script >
2024-01-25 16:50:06 +00:00
2023-06-26 18:01:09 +00:00
{% include 'footer.html' %}
2024-01-25 16:50:06 +00:00
2023-04-06 14:59:28 +00:00
< script >
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.");
}
2022-11-10 21:49:55 +00:00
2023-04-06 14:59:28 +00:00
function confirmWithdrawal() {
return confirm("Are you sure?");
}
2022-11-10 21:49:55 +00:00
2023-04-06 14:59:28 +00:00
function confirmUTXOResize() {
return confirm("Are you sure?");
}
< / script >
2024-01-25 16:50:06 +00:00
2022-10-10 21:44:14 +00:00
< / body >
2024-01-28 18:16:30 +00:00
< / html >