-
This commit is contained in:
gerlofvanek 2022-10-10 23:44:14 +02:00
parent af766876a1
commit 9495249e70
60 changed files with 427938 additions and 1381 deletions

View file

@ -2415,9 +2415,21 @@ class BasicSwap(BaseApp):
initiate_tx_block_time = int(self.callcoinrpc(coin_from, 'getblock', [initiate_tx_block_hash, ])['time']) initiate_tx_block_time = int(self.callcoinrpc(coin_from, 'getblock', [initiate_tx_block_hash, ])['time'])
if offer.lock_type == TxLockTypes.ABS_LOCK_BLOCKS: if offer.lock_type == TxLockTypes.ABS_LOCK_BLOCKS:
# Walk the coin_to chain back until block time matches # Walk the coin_to chain back until block time matches
block_header_at = ci_to.getBlockHeaderAt(initiate_tx_block_time, block_after=True) blockchaininfo = self.callcoinrpc(coin_to, 'getblockchaininfo')
cblock_hash = block_header_at['hash'] cblock_hash = blockchaininfo['bestblockhash']
cblock_height = block_header_at['height'] cblock_height = blockchaininfo['blocks']
max_tries = 1000
for i in range(max_tries):
prev_block = self.callcoinrpc(coin_to, 'getblock', [cblock_hash, ])
self.log.debug('prev_block %s', str(prev_block))
if prev_block['time'] <= initiate_tx_block_time:
break
# cblock_hash and height are out of step unless loop breaks
cblock_hash = prev_block['previousblockhash']
cblock_height = prev_block['height']
ensure(prev_block['time'] <= initiate_tx_block_time, 'Block not found for lock height')
self.log.debug('Setting lock value from height of block %s %s', coin_to, cblock_hash) self.log.debug('Setting lock value from height of block %s %s', coin_to, cblock_hash)
contract_lock_value = cblock_height + lock_value contract_lock_value = cblock_height + lock_value
@ -4072,10 +4084,7 @@ class BasicSwap(BaseApp):
ensure(script_lock_value == expect_sequence, 'sequence mismatch') ensure(script_lock_value == expect_sequence, 'sequence mismatch')
else: else:
if offer.lock_type == TxLockTypes.ABS_LOCK_BLOCKS: if offer.lock_type == TxLockTypes.ABS_LOCK_BLOCKS:
block_header_from = ci_from.getBlockHeaderAt(bid.created_at) self.log.warning('TODO: validate absolute lock values')
chain_height_at_bid_creation = block_header_from['height']
ensure(script_lock_value <= chain_height_at_bid_creation + offer.lock_value + atomic_swap_1.ABS_LOCK_BLOCKS_LEEWAY, 'script lock height too high')
ensure(script_lock_value >= chain_height_at_bid_creation + offer.lock_value - atomic_swap_1.ABS_LOCK_BLOCKS_LEEWAY, 'script lock height too low')
else: else:
ensure(script_lock_value <= bid.created_at + offer.lock_value + atomic_swap_1.INITIATE_TX_TIMEOUT, 'script lock time too high') ensure(script_lock_value <= bid.created_at + offer.lock_value + atomic_swap_1.INITIATE_TX_TIMEOUT, 'script lock time too high')
ensure(script_lock_value >= bid.created_at + offer.lock_value, 'script lock time too low') ensure(script_lock_value >= bid.created_at + offer.lock_value, 'script lock time too low')
@ -5318,7 +5327,7 @@ class BasicSwap(BaseApp):
'version': self.coin_clients[coin]['core_version'], 'version': self.coin_clients[coin]['core_version'],
'name': ci.coin_name(), 'name': ci.coin_name(),
'blocks': blockchaininfo['blocks'], 'blocks': blockchaininfo['blocks'],
'synced': '{0:.2f}'.format(round(blockchaininfo['verificationprogress'], 2)), 'synced': '{:.2f}'.format(round(100*blockchaininfo['verificationprogress'], 2)),
} }
if 'known_block_count' in blockchaininfo: if 'known_block_count' in blockchaininfo:

View file

@ -28,9 +28,11 @@ from .basicswap_util import (
strTxState, strTxState,
strAddressType, strAddressType,
) )
from .js_server import ( from .js_server import (
js_error, js_error,
js_url_to_function, js_url_to_function,
js_generatenotification,
) )
from .ui.util import ( from .ui.util import (
getCoinName, getCoinName,
@ -43,6 +45,7 @@ from .ui.page_automation import (
page_automation_strategy, page_automation_strategy,
page_automation_strategy_new, page_automation_strategy_new,
) )
from .ui.page_bids import page_bids, page_bid from .ui.page_bids import page_bids, page_bid
from .ui.page_offers import page_offers, page_offer, page_newoffer from .ui.page_offers import page_offers, page_offer, page_newoffer
from .ui.page_tor import page_tor, get_tor_established_state from .ui.page_tor import page_tor, get_tor_established_state
@ -85,7 +88,6 @@ def listExplorerActions(swap_client):
('unspent', 'List Unspent')] ('unspent', 'List Unspent')]
return actions return actions
class HttpHandler(BaseHTTPRequestHandler): class HttpHandler(BaseHTTPRequestHandler):
def checkForm(self, post_string, name, messages): def checkForm(self, post_string, name, messages):
@ -130,22 +132,29 @@ class HttpHandler(BaseHTTPRequestHandler):
**args_dict, **args_dict,
), 'UTF-8') ), 'UTF-8')
def page_info(self, info_str): def page_info(self, info_str, post_string):
template = env.get_template('info.html') template = env.get_template('info.html')
return self.render_simple_template(template, { swap_client = self.server.swap_client
summary = swap_client.getSummary()
return self.render_template(template, {
'title_str': 'BasicSwap Info', 'title_str': 'BasicSwap Info',
'message_str': info_str, 'message_str': info_str,
'summary': summary,
}) })
def page_error(self, error_str): def page_error(self, error_str, post_string):
template = env.get_template('error.html') template = env.get_template('error.html')
return self.render_simple_template(template, { swap_client = self.server.swap_client
summary = swap_client.getSummary()
return self.render_template(template, {
'title_str': 'BasicSwap Error', 'title_str': 'BasicSwap Error',
'message_str': error_str, 'message_str': error_str,
'summary': summary,
}) })
def page_explorers(self, url_split, post_string): def page_explorers(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
result = None result = None
explorer = -1 explorer = -1
@ -182,11 +191,13 @@ class HttpHandler(BaseHTTPRequestHandler):
'explorer': explorer, 'explorer': explorer,
'actions': listExplorerActions(swap_client), 'actions': listExplorerActions(swap_client),
'action': action, 'action': action,
'result': result 'result': result,
'summary': summary,
}) })
def page_rpc(self, url_split, post_string): def page_rpc(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
result = None result = None
coin_type = -1 coin_type = -1
@ -242,10 +253,12 @@ class HttpHandler(BaseHTTPRequestHandler):
'coin_type': coin_id, 'coin_type': coin_id,
'result': result, 'result': result,
'messages': messages, 'messages': messages,
'summary': summary,
}) })
def page_debug(self, url_split, post_string): def page_debug(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
result = None result = None
messages = [] messages = []
@ -262,20 +275,24 @@ class HttpHandler(BaseHTTPRequestHandler):
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'result': result, 'result': result,
'summary': summary,
}) })
def page_active(self, url_split, post_string): def page_active(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
active_swaps = swap_client.listSwapsInProgress() active_swaps = swap_client.listSwapsInProgress()
summary = swap_client.getSummary()
template = env.get_template('active.html') template = env.get_template('active.html')
return self.render_template(template, { return self.render_template(template, {
'refresh': 30, 'refresh': 30,
'active_swaps': [(s[0].hex(), s[1], strBidState(s[2]), strTxState(s[3]), strTxState(s[4])) for s in active_swaps], 'active_swaps': [(s[0].hex(), s[1], strBidState(s[2]), strTxState(s[3]), strTxState(s[4])) for s in active_swaps],
'summary': summary,
}) })
def page_settings(self, url_split, post_string): def page_settings(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
messages = [] messages = []
form_data = self.checkForm(post_string, 'settings', messages) form_data = self.checkForm(post_string, 'settings', messages)
@ -342,21 +359,25 @@ class HttpHandler(BaseHTTPRequestHandler):
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'chains': chains_formatted, 'chains': chains_formatted,
'summary': summary,
}) })
def page_watched(self, url_split, post_string): def page_watched(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
watched_outputs, last_scanned = swap_client.listWatchedOutputs() watched_outputs, last_scanned = swap_client.listWatchedOutputs()
summary = swap_client.getSummary()
template = env.get_template('watched.html') template = env.get_template('watched.html')
return self.render_template(template, { return self.render_template(template, {
'refresh': 30, 'refresh': 30,
'last_scanned': [(getCoinName(ls[0]), ls[1]) for ls in last_scanned], 'last_scanned': [(getCoinName(ls[0]), ls[1]) for ls in last_scanned],
'watched_outputs': [(wo[1].hex(), getCoinName(wo[0]), wo[2], wo[3], int(wo[4])) for wo in watched_outputs], 'watched_outputs': [(wo[1].hex(), getCoinName(wo[0]), wo[2], wo[3], int(wo[4])) for wo in watched_outputs],
'summary': summary,
}) })
def page_smsgaddresses(self, url_split, post_string): def page_smsgaddresses(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
page_data = {} page_data = {}
messages = [] messages = []
@ -424,12 +445,14 @@ class HttpHandler(BaseHTTPRequestHandler):
'data': page_data, 'data': page_data,
'smsgaddresses': smsgaddresses, 'smsgaddresses': smsgaddresses,
'network_addr': network_addr, 'network_addr': network_addr,
'summary': summary,
}) })
def page_identity(self, url_split, post_string): def page_identity(self, url_split, post_string):
ensure(len(url_split) > 2, 'Address not specified') ensure(len(url_split) > 2, 'Address not specified')
identity_address = url_split[2] identity_address = url_split[2]
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
page_data = {'identity_address': identity_address} page_data = {'identity_address': identity_address}
messages = [] messages = []
@ -464,6 +487,7 @@ class HttpHandler(BaseHTTPRequestHandler):
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'data': page_data, 'data': page_data,
'summary': summary,
}) })
def page_shutdown(self, url_split, post_string): def page_shutdown(self, url_split, post_string):
@ -538,6 +562,8 @@ class HttpHandler(BaseHTTPRequestHandler):
'.svg': 'image/svg+xml', '.svg': 'image/svg+xml',
'.png': 'image/png', '.png': 'image/png',
'.jpg': 'image/jpeg', '.jpg': 'image/jpeg',
'.gif': 'image/gif',
'.ico': 'image/x-icon',
}.get(extension, '') }.get(extension, '')
if mime_type == '': if mime_type == '':
raise ValueError('Unknown file type ' + filename) raise ValueError('Unknown file type ' + filename)
@ -578,6 +604,10 @@ class HttpHandler(BaseHTTPRequestHandler):
return page_wallet(self, url_split, post_string) return page_wallet(self, url_split, post_string)
if page == 'settings': if page == 'settings':
return self.page_settings(url_split, post_string) return self.page_settings(url_split, post_string)
if page == 'error':
return self.page_error(url_split, post_string)
if page == 'info':
return self.page_info(url_split, post_string)
if page == 'rpc': if page == 'rpc':
return self.page_rpc(url_split, post_string) return self.page_rpc(url_split, post_string)
if page == 'debug': if page == 'debug':
@ -594,8 +624,8 @@ class HttpHandler(BaseHTTPRequestHandler):
return page_offers(self, url_split, post_string, sent=True) return page_offers(self, url_split, post_string, sent=True)
if page == 'bid': if page == 'bid':
return page_bid(self, url_split, post_string) return page_bid(self, url_split, post_string)
if page == 'bids': if page == 'receivedbids':
return page_bids(self, url_split, post_string) return page_bids(self, url_split, post_string, received=True)
if page == 'sentbids': if page == 'sentbids':
return page_bids(self, url_split, post_string, sent=True) return page_bids(self, url_split, post_string, sent=True)
if page == 'availablebids': if page == 'availablebids':
@ -656,7 +686,7 @@ class HttpThread(threading.Thread, HTTPServer):
self.port_no = port_no self.port_no = port_no
self.allow_cors = allow_cors self.allow_cors = allow_cors
self.swap_client = swap_client self.swap_client = swap_client
self.title = 'BasicSwap, ' + self.swap_client.chain self.title = 'BasicSwap - ' + __version__
self.last_form_id = dict() self.last_form_id = dict()
self.session_tokens = dict() self.session_tokens = dict()
self.env = env self.env = env

View file

@ -243,19 +243,6 @@ class BTCInterface(CoinInterface):
def getBlockHeader(self, block_hash): def getBlockHeader(self, block_hash):
return self.rpc_callback('getblockheader', [block_hash]) return self.rpc_callback('getblockheader', [block_hash])
def getBlockHeaderAt(self, time, block_after=False):
blockchaininfo = self.rpc_callback('getblockchaininfo')
last_block_header = self.rpc_callback('getblockheader', [blockchaininfo['bestblockhash']])
max_tries = 5000
for i in range(max_tries):
prev_block_header = self.rpc_callback('getblock', [last_block_header['previousblockhash']])
if prev_block_header['time'] <= time:
return last_block_header if block_after else prev_block_header
last_block_header = prev_block_header
raise ValueError(f'Block header not found at time: {time}')
def initialiseWallet(self, key_bytes): def initialiseWallet(self, key_bytes):
key_wif = self.encodeKey(key_bytes) key_wif = self.encodeKey(key_bytes)

View file

@ -5,6 +5,7 @@
# file LICENSE or http://www.opensource.org/licenses/mit-license.php. # file LICENSE or http://www.opensource.org/licenses/mit-license.php.
import json import json
import random
import urllib.parse import urllib.parse
from .util import ( from .util import (
@ -13,6 +14,7 @@ from .util import (
from .basicswap_util import ( from .basicswap_util import (
strBidState, strBidState,
SwapTypes, SwapTypes,
NotificationTypes as NT,
) )
from .chainparams import ( from .chainparams import (
Coins, Coins,
@ -406,5 +408,20 @@ def js_url_to_function(url_split):
'rate': js_rate, 'rate': js_rate,
'rates': js_rates, 'rates': js_rates,
'rateslist': js_rates_list, 'rateslist': js_rates_list,
'generatenotification': js_generatenotification,
}.get(url_split[2], js_index) }.get(url_split[2], js_index)
return js_index return js_index
def js_generatenotification(self, url_split, post_string, is_json):
swap_client = self.server.swap_client
r = random.randint(0, 3)
if r == 0:
swap_client.notify(NT.OFFER_RECEIVED, {'offer_id': random.randbytes(28).hex()})
elif r == 1:
swap_client.notify(NT.BID_RECEIVED, {'type': 'atomic', 'bid_id': random.randbytes(28).hex(), 'offer_id': random.randbytes(28).hex()})
elif r == 2:
swap_client.notify(NT.BID_ACCEPTED, {'bid_id': random.randbytes(28).hex()})
elif r == 3:
swap_client.notify(NT.BID_RECEIVED, {'type': 'xmr', 'bid_id': random.randbytes(28).hex(), 'offer_id': random.randbytes(28).hex()})
return bytes(json.dumps({'type': r}), 'UTF-8')

View file

@ -12,7 +12,6 @@ from basicswap.script import (
) )
INITIATE_TX_TIMEOUT = 40 * 60 # TODO: make variable per coin INITIATE_TX_TIMEOUT = 40 * 60 # TODO: make variable per coin
ABS_LOCK_BLOCKS_LEEWAY = 5
def buildContractScript(lock_val, secret_hash, pkh_redeem, pkh_refund, op_lock=OpCodes.OP_CHECKSEQUENCEVERIFY): def buildContractScript(lock_val, secret_hash, pkh_redeem, pkh_refund, op_lock=OpCodes.OP_CHECKSEQUENCEVERIFY):

BIN
basicswap/static/css/.DS_Store vendored Normal file

Binary file not shown.

416019
basicswap/static/css/libs/tailwind.min.css vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,35 @@
.padded_row td
{
padding-top:1.5em;
}
.bold
{
font-weight:bold;
}
.monospace
{
font-family:monospace;
}
.floatright
{
position:fixed;
top:50px;
right:18px;
margin: 0;
width:calc(33.33% - 25px);
z-index: 50;
}
.error
{
border: 1px solid red;
}
.error_msg
{
color:red;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View file

@ -0,0 +1,25 @@
<svg width="289" height="289" viewBox="0 0 289 289" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_1384_22144" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="289" height="289">
<circle cx="144.5" cy="144.5" r="142.507" fill="#C4C4C4" stroke="#F8BB54" stroke-width="3.98621"/>
</mask>
<g mask="url(#mask0_1384_22144)">
<path d="M-83.9766 60.6005C-83.9766 60.6005 -16.689 48.136 0.672082 4.51091C17.2756 -37.3086 85.6704 -48.5495 85.6704 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 81.5681C-83.9766 81.5681 -1.42521 67.182 19.8389 14.529C40.1127 -35.736 123.946 -48.5495 123.946 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 102.595C-83.9766 102.595 13.7801 86.2279 38.9475 24.6636C62.9497 -34.2214 162.221 -48.5495 162.221 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 123.563C-83.9766 123.563 29.0437 105.274 58.1143 34.6817C85.7869 -32.6488 200.497 -48.5495 200.497 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 144.531C-83.9766 144.531 44.3072 124.32 77.2812 44.7578C108.624 -31.0762 238.714 -48.5495 238.714 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 165.557C-83.9766 165.557 59.5125 143.424 96.3898 54.8339C131.519 -29.562 276.989 -48.5495 276.989 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 186.525C-83.9766 186.525 74.7761 162.411 115.557 64.9105C154.356 -27.9894 315.265 -48.5495 315.265 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 207.493C-83.9766 207.493 90.0398 181.457 134.665 74.9286C177.193 -26.4168 353.54 -48.5495 353.54 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 228.519C-83.9766 228.519 105.245 200.562 153.832 85.0628C200.031 -24.9026 391.758 -48.5495 391.758 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 249.485C-83.9766 249.485 120.509 219.608 172.941 95.1393C222.868 -23.33 430.033 -48.5495 430.033 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 270.512C-83.9766 270.512 135.772 238.653 192.108 105.215C245.705 -21.7574 468.308 -48.5495 468.308 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 291.482C-83.9766 291.482 150.977 257.7 211.216 115.292C268.542 -20.2428 506.583 -48.5495 506.583 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 312.447C-83.9766 312.447 166.241 276.746 230.383 125.31C291.379 -18.6701 544.858 -48.5495 544.858 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 333.473C-83.9766 333.473 181.505 295.792 249.55 135.444C314.216 -17.0975 583.076 -48.5495 583.076 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 354.443C-83.9766 354.443 196.71 314.837 268.658 145.462C337.053 -15.5833 621.352 -48.5495 621.352 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 375.413C-83.9766 375.413 211.974 333.883 287.825 155.538C359.89 -14.0107 659.627 -48.5495 659.627 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 396.439C-83.9766 396.439 227.237 352.986 306.934 165.615C382.727 -12.4381 697.902 -48.5495 697.902 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
<path d="M-83.9766 417.405C-83.9766 417.405 242.442 371.975 326.101 175.691C405.565 -10.9239 736.121 -48.5495 736.121 -48.5495" stroke="#A855F7" stroke-width="4.48062" stroke-miterlimit="10"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -0,0 +1,84 @@
<svg width="149" height="199" viewBox="0 0 149 199" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1384_22237)">
<path d="M146.249 198.91C147.707 198.91 148.889 197.728 148.889 196.27C148.889 194.812 147.707 193.63 146.249 193.63C144.791 193.63 143.609 194.812 143.609 196.27C143.609 197.728 144.791 198.91 146.249 198.91Z" fill="#3B82F6"/>
<path d="M122.31 198.91C123.768 198.91 124.95 197.728 124.95 196.27C124.95 194.812 123.768 193.63 122.31 193.63C120.852 193.63 119.67 194.812 119.67 196.27C119.67 197.728 120.852 198.91 122.31 198.91Z" fill="#3B82F6"/>
<path d="M98.3802 198.91C98.9048 198.912 99.4181 198.759 99.8552 198.469C100.292 198.179 100.634 197.765 100.836 197.281C101.038 196.797 101.092 196.264 100.991 195.75C100.889 195.235 100.638 194.762 100.268 194.39C99.8975 194.018 99.4253 193.765 98.911 193.662C98.3967 193.559 97.8633 193.611 97.3785 193.811C96.8937 194.011 96.4793 194.351 96.1876 194.787C95.896 195.223 95.7402 195.736 95.7402 196.26C95.7402 196.961 96.0181 197.634 96.5129 198.131C97.0078 198.627 97.6792 198.908 98.3802 198.91V198.91Z" fill="#3B82F6"/>
<path d="M74.4498 198.91C74.9739 198.91 75.4863 198.755 75.9221 198.464C76.3579 198.173 76.6975 197.759 76.8981 197.274C77.0986 196.79 77.1511 196.257 77.0488 195.743C76.9466 195.229 76.6942 194.757 76.3236 194.387C75.953 194.016 75.4808 193.764 74.9668 193.661C74.4527 193.559 73.9199 193.612 73.4357 193.812C72.9514 194.013 72.5376 194.352 72.2465 194.788C71.9553 195.224 71.7998 195.736 71.7998 196.26C71.7998 196.608 71.8683 196.953 72.0015 197.274C72.1346 197.596 72.3299 197.888 72.5759 198.134C72.822 198.38 73.1142 198.576 73.4357 198.709C73.7572 198.842 74.1018 198.91 74.4498 198.91V198.91Z" fill="#3B82F6"/>
<path d="M50.5101 198.91C51.9681 198.91 53.1501 197.728 53.1501 196.27C53.1501 194.812 51.9681 193.63 50.5101 193.63C49.0521 193.63 47.8701 194.812 47.8701 196.27C47.8701 197.728 49.0521 198.91 50.5101 198.91Z" fill="#3B82F6"/>
<path d="M27.5901 198.595C28.9386 198.041 29.5823 196.498 29.0279 195.15C28.4735 193.801 26.9308 193.157 25.5823 193.712C24.2338 194.266 23.5901 195.809 24.1445 197.157C24.6989 198.506 26.2416 199.15 27.5901 198.595Z" fill="#3B82F6"/>
<path d="M2.65017 193.66C2.1252 193.658 1.61153 193.812 1.17421 194.103C0.736895 194.393 0.395678 194.807 0.193868 195.291C-0.00794293 195.776 -0.0612624 196.31 0.0406694 196.825C0.142601 197.34 0.395167 197.813 0.766377 198.184C1.13759 198.555 1.61065 198.808 2.12563 198.91C2.64061 199.012 3.17433 198.958 3.65896 198.756C4.14359 198.555 4.55737 198.214 4.8478 197.776C5.13822 197.339 5.29216 196.825 5.29018 196.3C5.28755 195.601 5.00858 194.931 4.51406 194.436C4.01953 193.942 3.34953 193.663 2.65017 193.66V193.66Z" fill="#3B82F6"/>
<path d="M146.249 177.5C147.707 177.5 148.889 176.318 148.889 174.86C148.889 173.402 147.707 172.22 146.249 172.22C144.791 172.22 143.609 173.402 143.609 174.86C143.609 176.318 144.791 177.5 146.249 177.5Z" fill="#3B82F6"/>
<path d="M122.31 177.5C123.768 177.5 124.95 176.318 124.95 174.86C124.95 173.402 123.768 172.22 122.31 172.22C120.852 172.22 119.67 173.402 119.67 174.86C119.67 176.318 120.852 177.5 122.31 177.5Z" fill="#3B82F6"/>
<path d="M98.3803 177.5C98.9052 177.502 99.419 177.348 99.8563 177.058C100.294 176.767 100.635 176.354 100.837 175.869C101.038 175.384 101.092 174.851 100.99 174.336C100.888 173.821 100.635 173.348 100.264 172.976C99.893 172.605 99.4198 172.353 98.9048 172.251C98.3898 172.149 97.8562 172.202 97.3716 172.404C96.887 172.606 96.4732 172.947 96.1828 173.384C95.8923 173.821 95.7383 174.335 95.7403 174.86C95.7429 175.56 96.022 176.229 96.5165 176.724C97.011 177.219 97.6809 177.498 98.3803 177.5V177.5Z" fill="#3B82F6"/>
<path d="M74.4498 177.5C74.9744 177.5 75.4871 177.345 75.9231 177.053C76.3591 176.761 76.6988 176.347 76.8991 175.862C77.0993 175.377 77.1512 174.844 77.0481 174.329C76.9451 173.815 76.6917 173.343 76.3201 172.973C75.9485 172.603 75.4753 172.351 74.9606 172.25C74.4459 172.149 73.9128 172.203 73.4287 172.405C72.9447 172.607 72.5316 172.948 72.2416 173.385C71.9516 173.822 71.7978 174.336 71.7998 174.86C71.7998 175.208 71.8684 175.552 72.0017 175.873C72.135 176.194 72.3304 176.485 72.5766 176.73C72.8228 176.976 73.115 177.17 73.4364 177.302C73.7579 177.434 74.1023 177.502 74.4498 177.5V177.5Z" fill="#3B82F6"/>
<path d="M50.5101 177.5C51.9681 177.5 53.1501 176.318 53.1501 174.86C53.1501 173.402 51.9681 172.22 50.5101 172.22C49.0521 172.22 47.8701 173.402 47.8701 174.86C47.8701 176.318 49.0521 177.5 50.5101 177.5Z" fill="#3B82F6"/>
<path d="M27.5921 177.193C28.9406 176.639 29.5843 175.096 29.0299 173.747C28.4754 172.399 26.9328 171.755 25.5843 172.31C24.2358 172.864 23.592 174.407 24.1465 175.755C24.7009 177.104 26.2436 177.747 27.5921 177.193Z" fill="#3B82F6"/>
<path d="M2.65004 177.5C3.17459 177.5 3.68731 177.345 4.12331 177.053C4.55931 176.761 4.89899 176.347 5.09926 175.862C5.29954 175.377 5.3515 174.844 5.24843 174.329C5.14537 173.815 4.89189 173.343 4.52028 172.973C4.14867 172.603 3.67561 172.351 3.16091 172.25C2.6462 172.149 2.11309 172.203 1.62905 172.405C1.145 172.607 0.731771 172.948 0.441791 173.385C0.151812 173.822 -0.00196055 174.336 1.88721e-05 174.86C1.63788e-05 175.208 0.0686259 175.552 0.201923 175.873C0.33522 176.194 0.530667 176.485 0.776874 176.73C1.02308 176.976 1.31528 177.17 1.63674 177.302C1.95819 177.434 2.30251 177.502 2.65004 177.5Z" fill="#3B82F6"/>
<path d="M146.249 156.09C147.707 156.09 148.889 154.908 148.889 153.45C148.889 151.992 147.707 150.81 146.249 150.81C144.791 150.81 143.609 151.992 143.609 153.45C143.609 154.908 144.791 156.09 146.249 156.09Z" fill="#3B82F6"/>
<path d="M122.31 156.09C123.768 156.09 124.95 154.908 124.95 153.45C124.95 151.992 123.768 150.81 122.31 150.81C120.852 150.81 119.67 151.992 119.67 153.45C119.67 154.908 120.852 156.09 122.31 156.09Z" fill="#3B82F6"/>
<path d="M98.3802 156.1C98.9048 156.102 99.4181 155.948 99.8552 155.658C100.292 155.368 100.634 154.955 100.836 154.471C101.038 153.987 101.092 153.454 100.991 152.939C100.889 152.424 100.638 151.951 100.268 151.58C99.8975 151.208 99.4253 150.955 98.911 150.851C98.3967 150.748 97.8633 150.8 97.3785 151.001C96.8937 151.201 96.4793 151.541 96.1876 151.977C95.896 152.413 95.7402 152.925 95.7402 153.45C95.7402 154.151 96.0181 154.823 96.5129 155.32C97.0078 155.817 97.6792 156.097 98.3802 156.1V156.1Z" fill="#3B82F6"/>
<path d="M74.4498 156.1C74.9739 156.1 75.4863 155.944 75.9221 155.653C76.3579 155.362 76.6975 154.948 76.8981 154.464C77.0986 153.98 77.1511 153.447 77.0488 152.933C76.9466 152.419 76.6942 151.947 76.3236 151.576C75.953 151.205 75.4808 150.953 74.9668 150.851C74.4527 150.748 73.9199 150.801 73.4357 151.002C72.9514 151.202 72.5376 151.542 72.2465 151.978C71.9553 152.413 71.7998 152.926 71.7998 153.45C71.7998 153.798 71.8683 154.142 72.0015 154.464C72.1346 154.785 72.3299 155.078 72.5759 155.324C72.822 155.57 73.1142 155.765 73.4357 155.898C73.7572 156.031 74.1018 156.1 74.4498 156.1V156.1Z" fill="#3B82F6"/>
<path d="M50.5101 156.09C51.9681 156.09 53.1501 154.908 53.1501 153.45C53.1501 151.992 51.9681 150.81 50.5101 150.81C49.0521 150.81 47.8701 151.992 47.8701 153.45C47.8701 154.908 49.0521 156.09 50.5101 156.09Z" fill="#3B82F6"/>
<path d="M27.5911 155.791C28.9396 155.237 29.5833 153.694 29.0289 152.346C28.4744 150.997 26.9318 150.354 25.5833 150.908C24.2348 151.463 23.591 153.005 24.1455 154.354C24.6999 155.702 26.2426 156.346 27.5911 155.791Z" fill="#3B82F6"/>
<path d="M2.65002 156.1C3.17414 156.1 3.68652 155.944 4.12231 155.653C4.5581 155.362 4.89769 154.948 5.09827 154.464C5.29884 153.98 5.3514 153.447 5.24915 152.933C5.14689 152.419 4.89453 151.947 4.52393 151.576C4.15332 151.205 3.68104 150.953 3.16699 150.851C2.65294 150.748 2.12021 150.801 1.63599 151.002C1.15176 151.202 0.737841 151.542 0.446655 151.978C0.15547 152.413 0 152.926 0 153.45C0 154.153 0.279274 154.827 0.776245 155.324C1.27322 155.821 1.9472 156.1 2.65002 156.1V156.1Z" fill="#3B82F6"/>
<path d="M146.249 134.69C147.707 134.69 148.889 133.508 148.889 132.05C148.889 130.592 147.707 129.41 146.249 129.41C144.791 129.41 143.609 130.592 143.609 132.05C143.609 133.508 144.791 134.69 146.249 134.69Z" fill="#3B82F6"/>
<path d="M122.31 134.69C123.768 134.69 124.95 133.508 124.95 132.05C124.95 130.592 123.768 129.41 122.31 129.41C120.852 129.41 119.67 130.592 119.67 132.05C119.67 133.508 120.852 134.69 122.31 134.69Z" fill="#3B82F6"/>
<path d="M98.3803 134.66C98.9052 134.662 99.419 134.508 99.8563 134.218C100.294 133.927 100.635 133.514 100.837 133.029C101.038 132.544 101.092 132.011 100.99 131.496C100.888 130.981 100.635 130.508 100.264 130.137C99.893 129.765 99.4198 129.513 98.9048 129.411C98.3898 129.309 97.8562 129.362 97.3716 129.564C96.887 129.766 96.4732 130.107 96.1828 130.544C95.8923 130.982 95.7383 131.495 95.7403 132.02C95.7429 132.72 96.022 133.39 96.5165 133.884C97.011 134.379 97.6809 134.658 98.3803 134.66V134.66Z" fill="#3B82F6"/>
<path d="M74.4498 134.66C74.9744 134.66 75.4871 134.505 75.9231 134.213C76.3591 133.921 76.6988 133.507 76.8991 133.022C77.0993 132.537 77.1512 132.004 77.0481 131.49C76.9451 130.975 76.6917 130.503 76.3201 130.133C75.9485 129.763 75.4753 129.511 74.9606 129.41C74.4459 129.309 73.9128 129.363 73.4287 129.565C72.9447 129.767 72.5316 130.108 72.2416 130.545C71.9516 130.982 71.7978 131.496 71.7998 132.02C71.7998 132.368 71.8684 132.712 72.0017 133.033C72.135 133.354 72.3304 133.645 72.5766 133.891C72.8228 134.136 73.115 134.33 73.4364 134.462C73.7579 134.594 74.1023 134.662 74.4498 134.66V134.66Z" fill="#3B82F6"/>
<path d="M50.5101 134.69C51.9681 134.69 53.1501 133.508 53.1501 132.05C53.1501 130.592 51.9681 129.41 50.5101 129.41C49.0521 129.41 47.8701 130.592 47.8701 132.05C47.8701 133.508 49.0521 134.69 50.5101 134.69Z" fill="#3B82F6"/>
<path d="M27.594 134.389C28.9425 133.835 29.5863 132.292 29.0318 130.944C28.4774 129.595 26.9347 128.951 25.5862 129.506C24.2377 130.06 23.594 131.603 24.1484 132.951C24.7029 134.3 26.2455 134.944 27.594 134.389Z" fill="#3B82F6"/>
<path d="M2.65004 134.66C3.17459 134.66 3.68731 134.505 4.12331 134.213C4.55931 133.921 4.89899 133.507 5.09926 133.022C5.29954 132.537 5.3515 132.004 5.24843 131.49C5.14537 130.975 4.89189 130.503 4.52028 130.133C4.14867 129.763 3.67561 129.511 3.16091 129.41C2.6462 129.309 2.11309 129.363 1.62905 129.565C1.145 129.767 0.731771 130.108 0.441791 130.545C0.151812 130.982 -0.00196055 131.496 1.88721e-05 132.02C1.63788e-05 132.368 0.0686259 132.712 0.201923 133.033C0.33522 133.354 0.530667 133.645 0.776874 133.891C1.02308 134.136 1.31528 134.33 1.63674 134.462C1.95819 134.594 2.30251 134.662 2.65004 134.66V134.66Z" fill="#3B82F6"/>
<path d="M146.249 113.28C147.707 113.28 148.889 112.098 148.889 110.64C148.889 109.182 147.707 108 146.249 108C144.791 108 143.609 109.182 143.609 110.64C143.609 112.098 144.791 113.28 146.249 113.28Z" fill="#3B82F6"/>
<path d="M122.31 113.28C123.768 113.28 124.95 112.098 124.95 110.64C124.95 109.182 123.768 108 122.31 108C120.852 108 119.67 109.182 119.67 110.64C119.67 112.098 120.852 113.28 122.31 113.28Z" fill="#3B82F6"/>
<path d="M98.3802 113.29C98.9048 113.292 99.4181 113.139 99.8552 112.849C100.292 112.559 100.634 112.145 100.836 111.661C101.038 111.177 101.092 110.644 100.991 110.129C100.889 109.615 100.638 109.142 100.268 108.77C99.8975 108.398 99.4253 108.145 98.911 108.042C98.3967 107.939 97.8633 107.991 97.3785 108.191C96.8937 108.391 96.4793 108.731 96.1876 109.167C95.896 109.603 95.7402 110.116 95.7402 110.64C95.7402 111.341 96.0181 112.014 96.5129 112.511C97.0078 113.007 97.6792 113.288 98.3802 113.29V113.29Z" fill="#3B82F6"/>
<path d="M74.4498 113.29C74.9739 113.29 75.4863 113.135 75.9221 112.844C76.3579 112.552 76.6975 112.139 76.8981 111.654C77.0986 111.17 77.1511 110.637 77.0488 110.123C76.9466 109.609 76.6942 109.137 76.3236 108.766C75.953 108.396 75.4808 108.143 74.9668 108.041C74.4527 107.939 73.9199 107.991 73.4357 108.192C72.9514 108.393 72.5376 108.732 72.2465 109.168C71.9553 109.604 71.7998 110.116 71.7998 110.64C71.7998 110.988 71.8683 111.333 72.0015 111.654C72.1346 111.976 72.3299 112.268 72.5759 112.514C72.822 112.76 73.1142 112.955 73.4357 113.089C73.7572 113.222 74.1018 113.29 74.4498 113.29V113.29Z" fill="#3B82F6"/>
<path d="M50.5101 113.28C51.9681 113.28 53.1501 112.098 53.1501 110.64C53.1501 109.182 51.9681 108 50.5101 108C49.0521 108 47.8701 109.182 47.8701 110.64C47.8701 112.098 49.0521 113.28 50.5101 113.28Z" fill="#3B82F6"/>
<path d="M27.592 112.977C28.9406 112.423 29.5843 110.88 29.0298 109.531C28.4754 108.183 26.9328 107.539 25.5843 108.094C24.2358 108.648 23.592 110.191 24.1465 111.539C24.7009 112.888 26.2435 113.532 27.592 112.977Z" fill="#3B82F6"/>
<path d="M2.65002 113.29C3.17414 113.29 3.68652 113.135 4.12231 112.844C4.5581 112.552 4.89769 112.139 5.09827 111.654C5.29884 111.17 5.3514 110.637 5.24915 110.123C5.14689 109.609 4.89453 109.137 4.52393 108.766C4.15332 108.396 3.68104 108.143 3.16699 108.041C2.65294 107.939 2.12021 107.991 1.63599 108.192C1.15176 108.393 0.737841 108.732 0.446655 109.168C0.15547 109.604 0 110.116 0 110.64C0 111.343 0.279274 112.017 0.776245 112.514C1.27322 113.011 1.9472 113.29 2.65002 113.29V113.29Z" fill="#3B82F6"/>
</g>
<g clip-path="url(#clip1_1384_22237)">
<path d="M146.249 90.9099C147.707 90.9099 148.889 89.7279 148.889 88.2699C148.889 86.8119 147.707 85.6299 146.249 85.6299C144.791 85.6299 143.609 86.8119 143.609 88.2699C143.609 89.7279 144.791 90.9099 146.249 90.9099Z" fill="#3B82F6"/>
<path d="M122.31 90.9099C123.768 90.9099 124.95 89.7279 124.95 88.2699C124.95 86.8119 123.768 85.6299 122.31 85.6299C120.852 85.6299 119.67 86.8119 119.67 88.2699C119.67 89.7279 120.852 90.9099 122.31 90.9099Z" fill="#3B82F6"/>
<path d="M98.3802 90.9104C98.9048 90.9123 99.4181 90.7586 99.8552 90.4686C100.292 90.1787 100.634 89.7654 100.836 89.2814C101.038 88.7973 101.092 88.2642 100.991 87.7495C100.889 87.2348 100.638 86.7617 100.268 86.3901C99.8975 86.0185 99.4253 85.7651 98.911 85.662C98.3967 85.5589 97.8633 85.6108 97.3785 85.8111C96.8937 86.0114 96.4793 86.3511 96.1876 86.7871C95.896 87.2231 95.7402 87.7358 95.7402 88.2603C95.7402 88.9614 96.0181 89.6339 96.5129 90.1306C97.0078 90.6273 97.6792 90.9077 98.3802 90.9104V90.9104Z" fill="#3B82F6"/>
<path d="M74.4498 90.9104C74.9739 90.9104 75.4863 90.7549 75.9221 90.4638C76.3579 90.1726 76.6975 89.7587 76.8981 89.2745C77.0986 88.7903 77.1511 88.2574 77.0488 87.7434C76.9466 87.2293 76.6942 86.7572 76.3236 86.3865C75.953 86.0159 75.4808 85.7635 74.9668 85.6613C74.4527 85.559 73.9199 85.6115 73.4357 85.8121C72.9514 86.0127 72.5376 86.3523 72.2465 86.7881C71.9553 87.2239 71.7998 87.7362 71.7998 88.2603C71.7998 88.6083 71.8683 88.953 72.0015 89.2745C72.1346 89.596 72.3299 89.8881 72.5759 90.1342C72.822 90.3802 73.1142 90.5755 73.4357 90.7087C73.7572 90.8419 74.1018 90.9104 74.4498 90.9104V90.9104Z" fill="#3B82F6"/>
<path d="M50.5101 90.9099C51.9681 90.9099 53.1501 89.7279 53.1501 88.2699C53.1501 86.8119 51.9681 85.6299 50.5101 85.6299C49.0521 85.6299 47.8701 86.8119 47.8701 88.2699C47.8701 89.7279 49.0521 90.9099 50.5101 90.9099Z" fill="#3B82F6"/>
<path d="M27.5901 90.5952C28.9386 90.0408 29.5823 88.4982 29.0279 87.1497C28.4735 85.8012 26.9308 85.1575 25.5823 85.7119C24.2338 86.2664 23.5901 87.809 24.1445 89.1575C24.6989 90.506 26.2416 91.1497 27.5901 90.5952Z" fill="#3B82F6"/>
<path d="M2.65017 85.6602C2.1252 85.6582 1.61153 85.8122 1.17421 86.1026C0.736895 86.393 0.395678 86.8068 0.193868 87.2915C-0.00794293 87.7761 -0.0612624 88.3097 0.0406694 88.8247C0.142601 89.3397 0.395167 89.8128 0.766377 90.184C1.13759 90.5552 1.61065 90.8078 2.12563 90.9097C2.64061 91.0116 3.17433 90.9583 3.65896 90.7565C4.14359 90.5547 4.55737 90.2135 4.8478 89.7762C5.13822 89.3389 5.29216 88.8252 5.29018 88.3002C5.28755 87.6008 5.00858 86.9308 4.51406 86.4363C4.01953 85.9418 3.34953 85.6628 2.65017 85.6602V85.6602Z" fill="#3B82F6"/>
<path d="M146.249 69.4997C147.707 69.4997 148.889 68.3178 148.889 66.8597C148.889 65.4017 147.707 64.2197 146.249 64.2197C144.791 64.2197 143.609 65.4017 143.609 66.8597C143.609 68.3178 144.791 69.4997 146.249 69.4997Z" fill="#3B82F6"/>
<path d="M122.31 69.4997C123.768 69.4997 124.95 68.3178 124.95 66.8597C124.95 65.4017 123.768 64.2197 122.31 64.2197C120.852 64.2197 119.67 65.4017 119.67 66.8597C119.67 68.3178 120.852 69.4997 122.31 69.4997Z" fill="#3B82F6"/>
<path d="M98.3803 69.5002C98.9052 69.5022 99.419 69.3482 99.8563 69.0578C100.294 68.7673 100.635 68.3535 100.837 67.8689C101.038 67.3843 101.092 66.8506 100.99 66.3357C100.888 65.8207 100.635 65.3475 100.264 64.9763C99.893 64.6051 99.4198 64.3526 98.9048 64.2506C98.3898 64.1487 97.8562 64.202 97.3716 64.4038C96.887 64.6056 96.4732 64.9469 96.1828 65.3842C95.8923 65.8215 95.7383 66.3352 95.7403 66.8602C95.7429 67.5595 96.022 68.2295 96.5165 68.724C97.011 69.2185 97.6809 69.4976 98.3803 69.5002V69.5002Z" fill="#3B82F6"/>
<path d="M74.4498 69.5002C74.9744 69.5002 75.4871 69.3445 75.9231 69.0529C76.3591 68.7612 76.6988 68.3468 76.8991 67.862C77.0993 67.3772 77.1512 66.8438 77.0481 66.3295C76.9451 65.8152 76.6917 65.343 76.3201 64.9728C75.9485 64.6026 75.4753 64.351 74.9606 64.2499C74.4459 64.1488 73.9128 64.2027 73.4287 64.4048C72.9447 64.6069 72.5316 64.9481 72.2416 65.3852C71.9516 65.8223 71.7978 66.3356 71.7998 66.8602C71.7998 67.2077 71.8684 67.5518 72.0017 67.8728C72.135 68.1937 72.3304 68.4852 72.5766 68.7305C72.8228 68.9758 73.115 69.17 73.4364 69.3021C73.7579 69.4342 74.1023 69.5015 74.4498 69.5002V69.5002Z" fill="#3B82F6"/>
<path d="M50.5101 69.4997C51.9681 69.4997 53.1501 68.3178 53.1501 66.8597C53.1501 65.4017 51.9681 64.2197 50.5101 64.2197C49.0521 64.2197 47.8701 65.4017 47.8701 66.8597C47.8701 68.3178 49.0521 69.4997 50.5101 69.4997Z" fill="#3B82F6"/>
<path d="M27.5921 69.193C28.9406 68.6385 29.5843 67.0959 29.0299 65.7474C28.4754 64.3989 26.9328 63.7551 25.5843 64.3096C24.2358 64.864 23.592 66.4067 24.1465 67.7552C24.7009 69.1037 26.2436 69.7474 27.5921 69.193Z" fill="#3B82F6"/>
<path d="M2.65004 69.5002C3.17459 69.5002 3.68731 69.3445 4.12331 69.0529C4.55931 68.7612 4.89899 68.3468 5.09926 67.862C5.29954 67.3772 5.3515 66.8438 5.24843 66.3295C5.14537 65.8152 4.89189 65.343 4.52028 64.9728C4.14867 64.6026 3.67561 64.351 3.16091 64.2499C2.6462 64.1488 2.11309 64.2027 1.62905 64.4048C1.145 64.6069 0.731771 64.9481 0.441791 65.3852C0.151812 65.8223 -0.00196055 66.3356 1.88721e-05 66.8602C1.63788e-05 67.2077 0.0686259 67.5518 0.201923 67.8728C0.33522 68.1937 0.530667 68.4852 0.776874 68.7305C1.02308 68.9758 1.31528 69.17 1.63674 69.3021C1.95819 69.4342 2.30251 69.5015 2.65004 69.5002Z" fill="#3B82F6"/>
<path d="M146.249 48.0896C147.707 48.0896 148.889 46.9076 148.889 45.4496C148.889 43.9915 147.707 42.8096 146.249 42.8096C144.791 42.8096 143.609 43.9915 143.609 45.4496C143.609 46.9076 144.791 48.0896 146.249 48.0896Z" fill="#3B82F6"/>
<path d="M122.31 48.0896C123.768 48.0896 124.95 46.9076 124.95 45.4496C124.95 43.9915 123.768 42.8096 122.31 42.8096C120.852 42.8096 119.67 43.9915 119.67 45.4496C119.67 46.9076 120.852 48.0896 122.31 48.0896Z" fill="#3B82F6"/>
<path d="M98.3802 48.0998C98.9048 48.1018 99.4181 47.9481 99.8552 47.6581C100.292 47.3681 100.634 46.9549 100.836 46.4708C101.038 45.9868 101.092 45.4537 100.991 44.939C100.889 44.4243 100.638 43.9512 100.268 43.5795C99.8975 43.2079 99.4253 42.9545 98.911 42.8515C98.3967 42.7484 97.8633 42.8003 97.3785 43.0006C96.8937 43.2008 96.4793 43.5405 96.1876 43.9765C95.896 44.4125 95.7402 44.9252 95.7402 45.4498C95.7402 46.1509 96.0181 46.8234 96.5129 47.3201C97.0078 47.8168 97.6792 48.0972 98.3802 48.0998V48.0998Z" fill="#3B82F6"/>
<path d="M74.4498 48.0998C74.9739 48.0998 75.4863 47.9444 75.9221 47.6532C76.3579 47.362 76.6975 46.9482 76.8981 46.4639C77.0986 45.9797 77.1511 45.4469 77.0488 44.9328C76.9466 44.4188 76.6942 43.9465 76.3236 43.5759C75.953 43.2053 75.4808 42.953 74.9668 42.8507C74.4527 42.7485 73.9199 42.801 73.4357 43.0015C72.9514 43.2021 72.5376 43.5418 72.2465 43.9776C71.9553 44.4133 71.7998 44.9257 71.7998 45.4498C71.7998 45.7978 71.8683 46.1424 72.0015 46.4639C72.1346 46.7855 72.3299 47.0775 72.5759 47.3236C72.822 47.5697 73.1142 47.7649 73.4357 47.8981C73.7572 48.0313 74.1018 48.0998 74.4498 48.0998V48.0998Z" fill="#3B82F6"/>
<path d="M50.5101 48.0896C51.9681 48.0896 53.1501 46.9076 53.1501 45.4496C53.1501 43.9915 51.9681 42.8096 50.5101 42.8096C49.0521 42.8096 47.8701 43.9915 47.8701 45.4496C47.8701 46.9076 49.0521 48.0896 50.5101 48.0896Z" fill="#3B82F6"/>
<path d="M27.5911 47.7915C28.9396 47.237 29.5833 45.6944 29.0289 44.3459C28.4744 42.9974 26.9318 42.3537 25.5833 42.9081C24.2348 43.4626 23.591 45.0052 24.1455 46.3537C24.6999 47.7022 26.2426 48.3459 27.5911 47.7915Z" fill="#3B82F6"/>
<path d="M2.65002 48.0998C3.17414 48.0998 3.68652 47.9444 4.12231 47.6532C4.5581 47.362 4.89769 46.9482 5.09827 46.4639C5.29884 45.9797 5.3514 45.4469 5.24915 44.9328C5.14689 44.4188 4.89453 43.9465 4.52393 43.5759C4.15332 43.2053 3.68104 42.953 3.16699 42.8507C2.65294 42.7485 2.12021 42.801 1.63599 43.0015C1.15176 43.2021 0.737841 43.5418 0.446655 43.9776C0.15547 44.4133 0 44.9257 0 45.4498C0 46.1526 0.279274 46.8266 0.776245 47.3236C1.27322 47.8206 1.9472 48.0998 2.65002 48.0998V48.0998Z" fill="#3B82F6"/>
<path d="M146.249 26.6902C147.707 26.6902 148.889 25.5082 148.889 24.0502C148.889 22.5921 147.707 21.4102 146.249 21.4102C144.791 21.4102 143.609 22.5921 143.609 24.0502C143.609 25.5082 144.791 26.6902 146.249 26.6902Z" fill="#3B82F6"/>
<path d="M122.31 26.6902C123.768 26.6902 124.95 25.5082 124.95 24.0502C124.95 22.5921 123.768 21.4102 122.31 21.4102C120.852 21.4102 119.67 22.5921 119.67 24.0502C119.67 25.5082 120.852 26.6902 122.31 26.6902Z" fill="#3B82F6"/>
<path d="M98.3803 26.6604C98.9052 26.6623 99.419 26.5083 99.8563 26.2179C100.294 25.9275 100.635 25.5137 100.837 25.0291C101.038 24.5444 101.092 24.0108 100.99 23.4958C100.888 22.9808 100.635 22.5078 100.264 22.1366C99.893 21.7653 99.4198 21.5127 98.9048 21.4108C98.3898 21.3089 97.8562 21.3622 97.3716 21.564C96.887 21.7658 96.4732 22.107 96.1828 22.5443C95.8923 22.9817 95.7383 23.4954 95.7403 24.0203C95.7429 24.7197 96.022 25.3897 96.5165 25.8842C97.011 26.3788 97.6809 26.6577 98.3803 26.6604V26.6604Z" fill="#3B82F6"/>
<path d="M74.4498 26.6604C74.9744 26.6604 75.4871 26.5047 75.9231 26.213C76.3591 25.9214 76.6988 25.507 76.8991 25.0222C77.0993 24.5374 77.1512 24.004 77.0481 23.4897C76.9451 22.9754 76.6917 22.5032 76.3201 22.133C75.9485 21.7628 75.4753 21.5112 74.9606 21.4101C74.4459 21.3089 73.9128 21.3629 73.4287 21.565C72.9447 21.7671 72.5316 22.1083 72.2416 22.5454C71.9516 22.9825 71.7978 23.4958 71.7998 24.0203C71.7998 24.3679 71.8684 24.712 72.0017 25.033C72.135 25.3539 72.3304 25.6454 72.5766 25.8906C72.8228 26.1359 73.115 26.3302 73.4364 26.4623C73.7579 26.5944 74.1023 26.6617 74.4498 26.6604V26.6604Z" fill="#3B82F6"/>
<path d="M50.5101 26.6902C51.9681 26.6902 53.1501 25.5082 53.1501 24.0502C53.1501 22.5921 51.9681 21.4102 50.5101 21.4102C49.0521 21.4102 47.8701 22.5921 47.8701 24.0502C47.8701 25.5082 49.0521 26.6902 50.5101 26.6902Z" fill="#3B82F6"/>
<path d="M27.594 26.3892C28.9425 25.8348 29.5863 24.2922 29.0318 22.9437C28.4774 21.5952 26.9347 20.9514 25.5862 21.5059C24.2377 22.0603 23.594 23.603 24.1484 24.9515C24.7029 26.3 26.2455 26.9437 27.594 26.3892Z" fill="#3B82F6"/>
<path d="M2.65004 26.6604C3.17459 26.6604 3.68731 26.5047 4.12331 26.213C4.55931 25.9214 4.89899 25.507 5.09926 25.0222C5.29954 24.5374 5.3515 24.004 5.24843 23.4897C5.14537 22.9754 4.89189 22.5032 4.52028 22.133C4.14867 21.7628 3.67561 21.5112 3.16091 21.4101C2.6462 21.3089 2.11309 21.3629 1.62905 21.565C1.145 21.7671 0.731771 22.1083 0.441791 22.5454C0.151812 22.9825 -0.00196055 23.4958 1.88721e-05 24.0203C1.63788e-05 24.3679 0.0686259 24.712 0.201923 25.033C0.33522 25.3539 0.530667 25.6454 0.776874 25.8906C1.02308 26.1359 1.31528 26.3302 1.63674 26.4623C1.95819 26.5944 2.30251 26.6617 2.65004 26.6604V26.6604Z" fill="#3B82F6"/>
<path d="M146.249 5.28C147.707 5.28 148.889 4.09803 148.889 2.64C148.889 1.18197 147.707 0 146.249 0C144.791 0 143.609 1.18197 143.609 2.64C143.609 4.09803 144.791 5.28 146.249 5.28Z" fill="#3B82F6"/>
<path d="M122.31 5.28C123.768 5.28 124.95 4.09803 124.95 2.64C124.95 1.18197 123.768 0 122.31 0C120.852 0 119.67 1.18197 119.67 2.64C119.67 4.09803 120.852 5.28 122.31 5.28Z" fill="#3B82F6"/>
<path d="M98.3802 5.29024C98.9048 5.29222 99.4181 5.13851 99.8552 4.84853C100.292 4.55855 100.634 4.14532 100.836 3.66127C101.038 3.17723 101.092 2.64412 100.991 2.12941C100.889 1.61471 100.638 1.14159 100.268 0.769978C99.8975 0.398368 99.4253 0.144953 98.911 0.0418894C98.3967 -0.0611745 97.8633 -0.00927669 97.3785 0.190998C96.8937 0.391273 96.4793 0.730946 96.1876 1.16695C95.896 1.60295 95.7402 2.11567 95.7402 2.64022C95.7402 3.34131 96.0181 4.01383 96.5129 4.51052C97.0078 5.0072 97.6792 5.2876 98.3802 5.29024V5.29024Z" fill="#3B82F6"/>
<path d="M74.4498 5.29023C74.9739 5.29023 75.4863 5.13483 75.9221 4.84364C76.3579 4.55245 76.6975 4.13859 76.8981 3.65437C77.0986 3.17015 77.1511 2.63729 77.0488 2.12324C76.9466 1.60919 76.6942 1.13698 76.3236 0.76637C75.953 0.395761 75.4808 0.143401 74.9668 0.04115C74.4527 -0.0611008 73.9199 -0.00860433 73.4357 0.191968C72.9514 0.39254 72.5376 0.732191 72.2465 1.16798C71.9553 1.60377 71.7998 2.11609 71.7998 2.64021C71.7998 2.98821 71.8683 3.33286 72.0015 3.65437C72.1346 3.97588 72.3299 4.26798 72.5759 4.51405C72.822 4.76013 73.1142 4.95534 73.4357 5.08851C73.7572 5.22169 74.1018 5.29023 74.4498 5.29023V5.29023Z" fill="#3B82F6"/>
<path d="M50.5101 5.28C51.9681 5.28 53.1501 4.09803 53.1501 2.64C53.1501 1.18197 51.9681 0 50.5101 0C49.0521 0 47.8701 1.18197 47.8701 2.64C47.8701 4.09803 49.0521 5.28 50.5101 5.28Z" fill="#3B82F6"/>
<path d="M27.592 4.97708C28.9406 4.42265 29.5843 2.87999 29.0298 1.53149C28.4754 0.182988 26.9328 -0.460681 25.5843 0.0937553C24.2358 0.648191 23.592 2.19079 24.1465 3.53929C24.7009 4.88779 26.2435 5.53152 27.592 4.97708Z" fill="#3B82F6"/>
<path d="M2.65002 5.29023C3.17414 5.29023 3.68652 5.13483 4.12231 4.84364C4.5581 4.55245 4.89769 4.13859 5.09827 3.65437C5.29884 3.17015 5.3514 2.63729 5.24915 2.12324C5.14689 1.60919 4.89453 1.13698 4.52393 0.76637C4.15332 0.395761 3.68104 0.143401 3.16699 0.04115C2.65294 -0.0611008 2.12021 -0.00860433 1.63599 0.191968C1.15176 0.39254 0.737841 0.732191 0.446655 1.16798C0.15547 1.60377 0 2.11609 0 2.64021C0 3.34303 0.279274 4.01708 0.776245 4.51405C1.27322 5.01102 1.9472 5.29023 2.65002 5.29023V5.29023Z" fill="#3B82F6"/>
</g>
<defs>
<clipPath id="clip0_1384_22237">
<rect width="148.89" height="90.91" fill="white" transform="translate(0 108)"/>
</clipPath>
<clipPath id="clip1_1384_22237">
<rect width="148.89" height="90.91" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -0,0 +1,44 @@
<svg width="79" height="48" viewBox="0 0 79 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2892_21290)">
<path d="M77.5993 48C78.3729 48 79 47.3759 79 46.6061C79 45.8362 78.3729 45.2122 77.5993 45.2122C76.8256 45.2122 76.1985 45.8362 76.1985 46.6061C76.1985 47.3759 76.8256 48 77.5993 48Z" fill="#F48B7C"/>
<path d="M64.8969 48C65.6705 48 66.2976 47.3759 66.2976 46.6061C66.2976 45.8362 65.6705 45.2122 64.8969 45.2122C64.1232 45.2122 63.4961 45.8362 63.4961 46.6061C63.4961 47.3759 64.1232 48 64.8969 48Z" fill="#F48B7C"/>
<path d="M52.1997 48C52.478 48.0011 52.7504 47.9199 52.9823 47.7668C53.2143 47.6137 53.3953 47.3955 53.5026 47.1399C53.6098 46.8844 53.6384 46.6029 53.5848 46.3311C53.5311 46.0594 53.3976 45.8096 53.2012 45.6134C53.0048 45.4172 52.7542 45.2834 52.4813 45.2289C52.2084 45.1745 51.9255 45.2019 51.6682 45.3077C51.411 45.4134 51.1911 45.5928 51.0363 45.823C50.8816 46.0532 50.799 46.3239 50.799 46.6008C50.7989 46.971 50.9464 47.3261 51.2089 47.5883C51.4715 47.8506 51.8277 47.9986 52.1997 48Z" fill="#F48B7C"/>
<path d="M39.5026 48C39.7807 48 40.0526 47.918 40.2838 47.7642C40.5151 47.6105 40.6952 47.392 40.8017 47.1363C40.9081 46.8806 40.9359 46.5993 40.8816 46.3279C40.8274 46.0565 40.6935 45.8072 40.4969 45.6115C40.3002 45.4158 40.0497 45.2825 39.7769 45.2285C39.5042 45.1746 39.2215 45.2023 38.9645 45.3082C38.7076 45.4141 38.4881 45.5934 38.3335 45.8235C38.179 46.0536 38.0966 46.3241 38.0966 46.6008C38.0966 46.7846 38.1329 46.9666 38.2036 47.1363C38.2742 47.3061 38.3778 47.4603 38.5084 47.5902C38.6389 47.7201 38.7939 47.8232 38.9645 47.8936C39.1351 47.9639 39.318 48 39.5026 48Z" fill="#F48B7C"/>
<path d="M26.8003 48C27.5739 48 28.2011 47.3759 28.2011 46.6061C28.2011 45.8362 27.5739 45.2122 26.8003 45.2122C26.0267 45.2122 25.3995 45.8362 25.3995 46.6061C25.3995 47.3759 26.0267 48 26.8003 48Z" fill="#F48B7C"/>
<path d="M14.6392 47.834C15.3547 47.5412 15.6962 46.7267 15.4021 46.0147C15.1079 45.3027 14.2894 44.9629 13.5739 45.2556C12.8584 45.5483 12.5168 46.3628 12.811 47.0748C13.1052 47.7868 13.9237 48.1267 14.6392 47.834Z" fill="#F48B7C"/>
<path d="M1.40609 45.228C1.12755 45.227 0.855001 45.3083 0.622963 45.4616C0.390924 45.615 0.209877 45.8335 0.102797 46.0893C-0.00428191 46.3452 -0.0325729 46.627 0.0215115 46.8989C0.0755958 47.1708 0.209606 47.4206 0.406567 47.6166C0.603529 47.8126 0.854533 47.9459 1.12778 47.9998C1.40102 48.0536 1.68421 48.0254 1.94135 47.9189C2.19849 47.8123 2.41804 47.6322 2.57214 47.4013C2.72624 47.1704 2.80792 46.8991 2.80687 46.622C2.80547 46.2527 2.65745 45.8989 2.39506 45.6378C2.13267 45.3767 1.77717 45.2294 1.40609 45.228Z" fill="#F48B7C"/>
<path d="M77.5993 36.6956C78.3729 36.6956 79 36.0716 79 35.3017C79 34.5319 78.3729 33.9078 77.5993 33.9078C76.8256 33.9078 76.1985 34.5319 76.1985 35.3017C76.1985 36.0716 76.8256 36.6956 77.5993 36.6956Z" fill="#F48B7C"/>
<path d="M64.8969 36.6956C65.6705 36.6956 66.2976 36.0716 66.2976 35.3017C66.2976 34.5319 65.6705 33.9078 64.8969 33.9078C64.1232 33.9078 63.4961 34.5319 63.4961 35.3017C63.4961 36.0716 64.1232 36.6956 64.8969 36.6956Z" fill="#F48B7C"/>
<path d="M52.1997 36.6957C52.4783 36.6967 52.7509 36.6154 52.9829 36.462C53.215 36.3087 53.396 36.0902 53.5031 35.8343C53.6102 35.5785 53.6385 35.2967 53.5844 35.0248C53.5303 34.7529 53.3963 34.5031 53.1993 34.3071C53.0024 34.1111 52.7513 33.9777 52.478 33.9239C52.2048 33.8701 51.9217 33.8982 51.6645 34.0048C51.4074 34.1114 51.1878 34.2915 51.0337 34.5224C50.8797 34.7533 50.7979 35.0246 50.799 35.3017C50.8004 35.671 50.9484 36.0247 51.2108 36.2858C51.4732 36.5469 51.8287 36.6943 52.1997 36.6957Z" fill="#F48B7C"/>
<path d="M39.5027 36.6957C39.781 36.6957 40.053 36.6135 40.2844 36.4595C40.5157 36.3055 40.6959 36.0866 40.8022 35.8307C40.9085 35.5747 40.936 35.2931 40.8813 35.0215C40.8266 34.75 40.6922 34.5007 40.495 34.3052C40.2978 34.1097 40.0467 33.9769 39.7736 33.9235C39.5005 33.8701 39.2177 33.8986 38.9609 34.0053C38.704 34.112 38.4848 34.2922 38.331 34.523C38.1771 34.7538 38.0955 35.0248 38.0966 35.3017C38.0966 35.4852 38.133 35.6669 38.2037 35.8364C38.2744 36.0058 38.3781 36.1597 38.5087 36.2893C38.6393 36.4188 38.7944 36.5213 38.9649 36.5911C39.1355 36.6608 39.3183 36.6964 39.5027 36.6957Z" fill="#F48B7C"/>
<path d="M26.8003 36.6956C27.5739 36.6956 28.2011 36.0716 28.2011 35.3017C28.2011 34.5319 27.5739 33.9078 26.8003 33.9078C26.0267 33.9078 25.3995 34.5319 25.3995 35.3017C25.3995 36.0716 26.0267 36.6956 26.8003 36.6956Z" fill="#F48B7C"/>
<path d="M14.6405 36.5336C15.356 36.2409 15.6976 35.4264 15.4034 34.7144C15.1092 34.0024 14.2907 33.6625 13.5752 33.9552C12.8597 34.248 12.5181 35.0625 12.8123 35.7745C13.1065 36.4865 13.925 36.8264 14.6405 36.5336Z" fill="#F48B7C"/>
<path d="M1.40609 36.6957C1.68441 36.6957 1.95646 36.6135 2.1878 36.4595C2.41914 36.3055 2.59937 36.0866 2.70563 35.8307C2.8119 35.5747 2.83947 35.2931 2.78478 35.0215C2.7301 34.75 2.5956 34.5007 2.39843 34.3052C2.20126 34.1097 1.95026 33.9769 1.67716 33.9235C1.40406 33.8701 1.12119 33.8986 0.864361 34.0053C0.607529 34.112 0.388273 34.2922 0.234411 34.523C0.0805501 34.7538 -0.00104025 35.0248 1.00134e-05 35.3017C8.6905e-06 35.4852 0.0364124 35.6669 0.107139 35.8364C0.177866 36.0058 0.281568 36.1597 0.412204 36.2893C0.54284 36.4188 0.69788 36.5213 0.868442 36.5911C1.039 36.6608 1.2217 36.6964 1.40609 36.6957Z" fill="#F48B7C"/>
<path d="M77.5993 25.3913C78.3729 25.3913 79 24.7672 79 23.9974C79 23.2275 78.3729 22.6035 77.5993 22.6035C76.8256 22.6035 76.1985 23.2275 76.1985 23.9974C76.1985 24.7672 76.8256 25.3913 77.5993 25.3913Z" fill="#F48B7C"/>
<path d="M64.8969 25.3913C65.6705 25.3913 66.2976 24.7672 66.2976 23.9974C66.2976 23.2275 65.6705 22.6035 64.8969 22.6035C64.1232 22.6035 63.4961 23.2275 63.4961 23.9974C63.4961 24.7672 64.1232 25.3913 64.8969 25.3913Z" fill="#F48B7C"/>
<path d="M52.1997 25.3966C52.478 25.3976 52.7504 25.3165 52.9823 25.1634C53.2143 25.0103 53.3953 24.7921 53.5026 24.5365C53.6098 24.2809 53.6384 23.9994 53.5848 23.7277C53.5311 23.4559 53.3976 23.2061 53.2012 23.0099C53.0048 22.8137 52.7542 22.6799 52.4813 22.6255C52.2084 22.5711 51.9255 22.5985 51.6682 22.7042C51.411 22.81 51.1911 22.9893 51.0363 23.2195C50.8816 23.4497 50.799 23.7204 50.799 23.9974C50.7989 24.3676 50.9464 24.7226 51.2089 24.9849C51.4715 25.2471 51.8277 25.3952 52.1997 25.3966Z" fill="#F48B7C"/>
<path d="M39.5026 25.3966C39.7807 25.3966 40.0526 25.3145 40.2838 25.1608C40.5151 25.007 40.6952 24.7885 40.8017 24.5328C40.9081 24.2772 40.9359 23.9958 40.8816 23.7244C40.8274 23.453 40.6935 23.2037 40.4969 23.008C40.3002 22.8123 40.0497 22.6791 39.7769 22.6251C39.5042 22.5711 39.2215 22.5988 38.9645 22.7047C38.7076 22.8106 38.4881 22.99 38.3335 23.22C38.179 23.4501 38.0966 23.7206 38.0966 23.9974C38.0966 24.1811 38.1329 24.3631 38.2036 24.5328C38.2742 24.7026 38.3778 24.8568 38.5084 24.9868C38.6389 25.1167 38.7939 25.2198 38.9645 25.2901C39.1351 25.3604 39.318 25.3966 39.5026 25.3966Z" fill="#F48B7C"/>
<path d="M26.8003 25.3913C27.5739 25.3913 28.2011 24.7672 28.2011 23.9974C28.2011 23.2275 27.5739 22.6035 26.8003 22.6035C26.0267 22.6035 25.3995 23.2275 25.3995 23.9974C25.3995 24.7672 26.0267 25.3913 26.8003 25.3913Z" fill="#F48B7C"/>
<path d="M14.6397 25.2337C15.3552 24.9409 15.6967 24.1264 15.4025 23.4144C15.1084 22.7024 14.2899 22.3626 13.5744 22.6553C12.8588 22.948 12.5173 23.7625 12.8115 24.4745C13.1056 25.1865 13.9242 25.5264 14.6397 25.2337Z" fill="#F48B7C"/>
<path d="M1.40608 25.3966C1.68418 25.3966 1.95604 25.3145 2.18727 25.1608C2.4185 25.007 2.59868 24.7885 2.70511 24.5328C2.81153 24.2772 2.83941 23.9958 2.78516 23.7244C2.73091 23.453 2.59701 23.2037 2.40036 23.008C2.20372 22.8123 1.95314 22.6791 1.68038 22.6251C1.40763 22.5711 1.12497 22.5988 0.868043 22.7047C0.611117 22.8106 0.391493 22.99 0.236992 23.22C0.0824911 23.4501 0 23.7206 0 23.9974C0 24.3685 0.148181 24.7244 0.41187 24.9868C0.67556 25.2492 1.03317 25.3966 1.40608 25.3966Z" fill="#F48B7C"/>
<path d="M77.5993 14.0922C78.3729 14.0922 79 13.4681 79 12.6983C79 11.9285 78.3729 11.3044 77.5993 11.3044C76.8256 11.3044 76.1985 11.9285 76.1985 12.6983C76.1985 13.4681 76.8256 14.0922 77.5993 14.0922Z" fill="#F48B7C"/>
<path d="M64.8969 14.0922C65.6705 14.0922 66.2976 13.4681 66.2976 12.6983C66.2976 11.9285 65.6705 11.3044 64.8969 11.3044C64.1232 11.3044 63.4961 11.9285 63.4961 12.6983C63.4961 13.4681 64.1232 14.0922 64.8969 14.0922Z" fill="#F48B7C"/>
<path d="M52.1997 14.0763C52.4783 14.0774 52.7509 13.9961 52.9829 13.8427C53.215 13.6894 53.396 13.4709 53.5031 13.215C53.6102 12.9591 53.6385 12.6774 53.5844 12.4055C53.5303 12.1336 53.3963 11.8838 53.1993 11.6878C53.0024 11.4918 52.7513 11.3584 52.478 11.3046C52.2048 11.2508 51.9217 11.2789 51.6645 11.3855C51.4074 11.492 51.1878 11.6722 51.0337 11.9031C50.8797 12.134 50.7979 12.4052 50.799 12.6824C50.8004 13.0517 50.9484 13.4054 51.2108 13.6665C51.4732 13.9276 51.8287 14.0749 52.1997 14.0763Z" fill="#F48B7C"/>
<path d="M39.5027 14.0763C39.781 14.0763 40.053 13.9941 40.2844 13.8401C40.5157 13.6862 40.6959 13.4674 40.8022 13.2114C40.9085 12.9554 40.936 12.6738 40.8813 12.4022C40.8266 12.1307 40.6922 11.8814 40.495 11.6859C40.2978 11.4904 40.0467 11.3576 39.7736 11.3042C39.5005 11.2508 39.2177 11.2793 38.9609 11.386C38.704 11.4927 38.4848 11.6728 38.331 11.9036C38.1771 12.1344 38.0955 12.4055 38.0966 12.6824C38.0966 12.8659 38.133 13.0476 38.2037 13.2171C38.2744 13.3865 38.3781 13.5404 38.5087 13.6699C38.6393 13.7994 38.7944 13.902 38.9649 13.9718C39.1355 14.0415 39.3183 14.077 39.5027 14.0763Z" fill="#F48B7C"/>
<path d="M26.8003 14.0922C27.5739 14.0922 28.2011 13.4681 28.2011 12.6983C28.2011 11.9285 27.5739 11.3044 26.8003 11.3044C26.0267 11.3044 25.3995 11.9285 25.3995 12.6983C25.3995 13.4681 26.0267 14.0922 26.8003 14.0922Z" fill="#F48B7C"/>
<path d="M14.641 13.9333C15.3565 13.6406 15.6981 12.826 15.4039 12.114C15.1097 11.402 14.2912 11.0622 13.5757 11.3549C12.8602 11.6476 12.5186 12.4621 12.8128 13.1741C13.107 13.8862 13.9255 14.226 14.641 13.9333Z" fill="#F48B7C"/>
<path d="M1.40609 14.0763C1.68441 14.0763 1.95646 13.9941 2.1878 13.8401C2.41914 13.6862 2.59937 13.4674 2.70563 13.2114C2.8119 12.9554 2.83947 12.6738 2.78478 12.4022C2.7301 12.1307 2.5956 11.8814 2.39843 11.6859C2.20126 11.4904 1.95026 11.3576 1.67716 11.3042C1.40406 11.2508 1.12119 11.2793 0.864361 11.386C0.607529 11.4927 0.388273 11.6728 0.234411 11.9036C0.0805501 12.1344 -0.00104025 12.4055 1.00134e-05 12.6824C8.6905e-06 12.8659 0.0364124 13.0476 0.107139 13.2171C0.177866 13.3865 0.281568 13.5404 0.412204 13.6699C0.54284 13.7994 0.69788 13.902 0.868442 13.9718C1.039 14.0415 1.2217 14.077 1.40609 14.0763Z" fill="#F48B7C"/>
<path d="M77.5993 2.78781C78.3729 2.78781 79 2.16374 79 1.39391C79 0.624073 78.3729 0 77.5993 0C76.8256 0 76.1985 0.624073 76.1985 1.39391C76.1985 2.16374 76.8256 2.78781 77.5993 2.78781Z" fill="#F48B7C"/>
<path d="M64.8969 2.78781C65.6705 2.78781 66.2976 2.16374 66.2976 1.39391C66.2976 0.624073 65.6705 0 64.8969 0C64.1232 0 63.4961 0.624073 63.4961 1.39391C63.4961 2.16374 64.1232 2.78781 64.8969 2.78781Z" fill="#F48B7C"/>
<path d="M52.1997 2.79313C52.478 2.79417 52.7504 2.71301 52.9823 2.55991C53.2143 2.4068 53.3953 2.18861 53.5026 1.93304C53.6098 1.67747 53.6384 1.39599 53.5848 1.12423C53.5311 0.852464 53.3976 0.60266 53.2012 0.406451C53.0048 0.210243 52.7542 0.0764418 52.4813 0.0220246C52.2084 -0.0323926 51.9255 -0.00499087 51.6682 0.100753C51.411 0.206497 51.1911 0.385843 51.0363 0.616051C50.8816 0.846259 50.799 1.11697 50.799 1.39393C50.7989 1.7641 50.9464 2.11919 51.2089 2.38144C51.4715 2.64368 51.8277 2.79173 52.1997 2.79313Z" fill="#F48B7C"/>
<path d="M39.5026 2.79312C39.7807 2.79312 40.0526 2.71107 40.2838 2.55732C40.5151 2.40358 40.6952 2.18506 40.8017 1.9294C40.9081 1.67373 40.9359 1.39238 40.8816 1.12097C40.8274 0.849553 40.6935 0.600226 40.4969 0.404546C40.3002 0.208867 40.0497 0.0756221 39.7769 0.0216342C39.5042 -0.0323537 39.2215 -0.00463587 38.9645 0.101265C38.7076 0.207166 38.4881 0.3865 38.3335 0.616595C38.179 0.84669 38.0966 1.11719 38.0966 1.39392C38.0966 1.57767 38.1329 1.75964 38.2036 1.9294C38.2742 2.09915 38.3778 2.25338 38.5084 2.3833C38.6389 2.51323 38.7939 2.6163 38.9645 2.68662C39.1351 2.75693 39.318 2.79312 39.5026 2.79312Z" fill="#F48B7C"/>
<path d="M26.8003 2.78781C27.5739 2.78781 28.2011 2.16374 28.2011 1.39391C28.2011 0.624073 27.5739 0 26.8003 0C26.0267 0 25.3995 0.624073 25.3995 1.39391C25.3995 2.16374 26.0267 2.78781 26.8003 2.78781Z" fill="#F48B7C"/>
<path d="M14.6403 2.62809C15.3558 2.33535 15.6973 1.52084 15.4032 0.808835C15.109 0.096833 14.2905 -0.243021 13.575 0.0497186C12.8595 0.342458 12.5179 1.15694 12.8121 1.86894C13.1062 2.58095 13.9248 2.92083 14.6403 2.62809Z" fill="#F48B7C"/>
<path d="M1.40608 2.79312C1.68418 2.79312 1.95604 2.71107 2.18727 2.55732C2.4185 2.40358 2.59868 2.18506 2.70511 1.9294C2.81153 1.67373 2.83941 1.39238 2.78516 1.12097C2.73091 0.849553 2.59701 0.600226 2.40036 0.404546C2.20372 0.208867 1.95314 0.0756221 1.68038 0.0216342C1.40763 -0.0323537 1.12497 -0.00463587 0.868043 0.101265C0.611117 0.207166 0.391493 0.3865 0.236992 0.616595C0.0824911 0.84669 0 1.11719 0 1.39392C0 1.76501 0.148181 2.1209 0.41187 2.3833C0.67556 2.6457 1.03317 2.79312 1.40608 2.79312Z" fill="#F48B7C"/>
</g>
<defs>
<clipPath id="clip0_2892_21290">
<rect width="79" height="48" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,7 @@
<svg width="616" height="220" viewBox="0 0 616 220" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M615.24 218.233V219.948H538.078C538.078 234.694 520.93 246.697 499.668 246.697C478.405 246.697 461.258 234.694 461.258 219.948H384.439C384.439 234.694 367.292 246.697 346.029 246.697C324.767 246.697 307.62 234.694 307.62 219.948H230.801C230.801 234.694 213.653 246.697 192.391 246.697C171.129 246.697 153.981 234.694 153.981 219.948H76.8192C76.8192 234.694 59.6721 246.697 38.4096 246.697C17.1472 246.697 0 234.694 0 219.948H76.8192V218.233C76.8192 203.486 94.3093 191.484 115.572 191.484C136.834 191.484 153.981 203.486 153.981 218.233V219.948H230.801V218.233C230.801 203.486 247.948 191.484 269.21 191.484C290.473 191.484 307.62 203.486 307.62 218.233V219.948H384.439V218.233C384.439 203.486 401.586 191.484 422.849 191.484C444.111 191.484 461.258 203.486 461.258 218.233V219.948H538.078V218.233C538.078 203.486 555.568 191.484 576.83 191.484C598.093 191.484 615.24 203.486 615.24 218.233Z" fill="black" fill-opacity="0.05"/>
<path d="M615.24 163.362V165.077H538.078C538.078 179.823 520.93 191.826 499.668 191.826C478.405 191.826 461.258 179.823 461.258 165.077H384.439C384.439 179.823 367.292 191.826 346.029 191.826C324.767 191.826 307.62 179.823 307.62 165.077H230.801C230.801 179.823 213.653 191.826 192.391 191.826C171.129 191.826 153.981 179.823 153.981 165.077H76.8192C76.8192 179.823 59.6721 191.826 38.4096 191.826C17.1472 191.826 0 179.823 0 165.077H76.8192V163.362C76.8192 148.616 94.3093 136.613 115.572 136.613C136.834 136.613 153.981 148.616 153.981 163.362V165.077H230.801V163.362C230.801 148.616 247.948 136.613 269.21 136.613C290.473 136.613 307.62 148.616 307.62 163.362V165.077H384.439V163.362C384.439 148.616 401.586 136.613 422.849 136.613C444.111 136.613 461.258 148.616 461.258 163.362V165.077H538.078V163.362C538.078 148.616 555.568 136.613 576.83 136.613C598.093 136.613 615.24 148.616 615.24 163.362Z" fill="black" fill-opacity="0.05"/>
<path d="M615.24 108.491V110.206H538.078C538.078 124.953 520.93 136.956 499.668 136.956C478.405 136.956 461.258 124.953 461.258 110.206H384.439C384.439 124.953 367.292 136.956 346.029 136.956C324.767 136.956 307.62 124.953 307.62 110.206H230.801C230.801 124.953 213.653 136.956 192.391 136.956C171.129 136.956 153.981 124.953 153.981 110.206H76.8192C76.8192 124.953 59.6721 136.956 38.4096 136.956C17.1472 136.956 0 124.953 0 110.206H76.8192V108.491C76.8192 93.7447 94.3093 81.7418 115.572 81.7418C136.834 81.7418 153.981 93.7447 153.981 108.491V110.206H230.801V108.491C230.801 93.7447 247.948 81.7418 269.21 81.7418C290.473 81.7418 307.62 93.7447 307.62 108.491V110.206H384.439V108.491C384.439 93.7447 401.586 81.7418 422.849 81.7418C444.111 81.7418 461.258 93.7447 461.258 108.491V110.206H538.078V108.491C538.078 93.7447 555.568 81.7418 576.83 81.7418C598.093 81.7418 615.24 93.7447 615.24 108.491Z" fill="black" fill-opacity="0.05"/>
<path d="M615.24 53.6204V55.3351H538.078C538.078 70.0816 520.93 82.0847 499.668 82.0847C478.405 82.0847 461.258 70.0816 461.258 55.3351H384.439C384.439 70.0816 367.292 82.0847 346.029 82.0847C324.767 82.0847 307.62 70.0816 307.62 55.3351H230.801C230.801 70.0816 213.653 82.0847 192.391 82.0847C171.129 82.0847 153.981 70.0816 153.981 55.3351H76.8192C76.8192 70.0816 59.6721 82.0847 38.4096 82.0847C17.1472 82.0847 0 70.0816 0 55.3351H76.8192V53.6204C76.8192 38.8738 94.3093 26.8708 115.572 26.8708C136.834 26.8708 153.981 38.8738 153.981 53.6204V55.3351H230.801V53.6204C230.801 38.8738 247.948 26.8708 269.21 26.8708C290.473 26.8708 307.62 38.8738 307.62 53.6204V55.3351H384.439V53.6204C384.439 38.8738 401.586 26.8708 422.849 26.8708C444.111 26.8708 461.258 38.8738 461.258 53.6204V55.3351H538.078V53.6204C538.078 38.8738 555.568 26.8708 576.83 26.8708C598.093 26.8708 615.24 38.8738 615.24 53.6204Z" fill="black" fill-opacity="0.05"/>
<path d="M615.24 -1.25049V0.464224H538.078C538.078 15.2108 520.93 27.2138 499.668 27.2138C478.405 27.2138 461.258 15.2108 461.258 0.464224H384.439C384.439 15.2108 367.292 27.2138 346.029 27.2138C324.767 27.2138 307.62 15.2108 307.62 0.464224H230.801C230.801 15.2108 213.653 27.2138 192.391 27.2138C171.129 27.2138 153.981 15.2108 153.981 0.464224H76.8192C76.8192 15.2108 59.6721 27.2138 38.4096 27.2138C17.1472 27.2138 0 15.2108 0 0.464224H76.8192V-1.25049C76.8192 -15.997 94.3093 -28 115.572 -28C136.834 -28 153.981 -15.997 153.981 -1.25049V0.464224H230.801V-1.25049C230.801 -15.997 247.948 -28 269.21 -28C290.473 -28 307.62 -15.997 307.62 -1.25049V0.464224H384.439V-1.25049C384.439 -15.997 401.586 -28 422.849 -28C444.111 -28 461.258 -15.997 461.258 -1.25049V0.464224H538.078V-1.25049C538.078 -15.997 555.568 -28 576.83 -28C598.093 -28 615.24 -15.997 615.24 -1.25049Z" fill="black" fill-opacity="0.05"/>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="121px" height="32px" viewBox="0 0 121 32" style="enable-background:new 0 0 121 32;" xml:space="preserve">
<style type="text/css">
.st0{fill:#212121;}
.st1{fill:#0073FF;stroke:#0073FF;stroke-miterlimit:10;}
</style>
<path class="st0" d="M29.6,21.3V8.4h4.5c1.6,0,2.7,0.3,3.5,0.9c0.8,0.6,1.2,1.5,1.2,2.6c0,0.6-0.2,1.2-0.5,1.7s-0.8,0.8-1.3,1
c0.7,0.2,1.2,0.5,1.5,1c0.4,0.5,0.6,1.1,0.6,1.8c0,1.2-0.4,2.2-1.2,2.8c-0.8,0.6-1.9,1-3.4,1h-4.9V21.3z M32.2,15.7v3.5h2.3
c0.6,0,1.1-0.1,1.5-0.4s0.5-0.7,0.5-1.2c0-1.2-0.6-1.8-1.8-1.8h-2.5V15.7z M32.2,13.8h2c1.3,0,2-0.6,2-1.6c0-0.6-0.2-1-0.5-1.2
c-0.3-0.3-0.9-0.4-1.6-0.4h-1.8v3.2H32.2z M46.5,21.3c-0.1-0.2-0.2-0.5-0.3-0.9c-0.6,0.7-1.4,1-2.4,1c-0.9,0-1.7-0.3-2.3-0.8
s-0.9-1.2-0.9-2c0-1,0.4-1.8,1.1-2.3c0.8-0.5,1.8-0.8,3.2-0.8h1.2V15c0-0.4-0.1-0.8-0.3-1.1s-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3
s-0.4,0.5-0.4,0.8h-2.5c0-0.6,0.2-1.1,0.5-1.5c0.3-0.5,0.8-0.8,1.4-1.1c0.6-0.3,1.3-0.4,2.1-0.4c1.2,0,2.1,0.3,2.8,0.9
c0.7,0.6,1,1.4,1,2.5v4.1c0,0.9,0.1,1.6,0.4,2v0.1L46.5,21.3L46.5,21.3z M44.4,19.5c0.4,0,0.7-0.1,1-0.2c0.3-0.2,0.6-0.4,0.7-0.7V17
h-0.9c-1.3,0-1.9,0.4-2,1.3v0.1c0,0.3,0.1,0.6,0.3,0.8C43.7,19.4,44,19.5,44.4,19.5z M55.9,18.6c0-0.3-0.2-0.6-0.5-0.7
c-0.3-0.2-0.8-0.3-1.5-0.5c-2.3-0.5-3.4-1.4-3.4-2.9c0-0.8,0.3-1.5,1-2.1s1.6-0.9,2.8-0.9s2.2,0.3,2.9,0.9c0.7,0.6,1.1,1.3,1.1,2.2
h-2.5c0-0.4-0.1-0.7-0.4-0.9c-0.2-0.2-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3s-0.4,0.4-0.4,0.7s0.1,0.5,0.4,0.7
c0.3,0.2,0.7,0.3,1.4,0.4c0.6,0.1,1.2,0.3,1.6,0.4c1.3,0.5,2,1.3,2,2.6c0,0.9-0.4,1.6-1.1,2.1c-0.7,0.5-1.7,0.8-2.9,0.8
c-0.8,0-1.5-0.1-2.1-0.4s-1.1-0.7-1.5-1.2s-0.5-1-0.5-1.6h2.4c0,0.5,0.2,0.8,0.5,1s0.7,0.4,1.2,0.4s0.9-0.1,1.1-0.3
C55.8,19.2,55.9,18.9,55.9,18.6z M62.8,21.3h-2.6v-9.5h2.6V21.3z M60.1,9.3c0-0.4,0.1-0.7,0.4-0.9C60.7,8.1,61,8,61.5,8
c0.4,0,0.8,0.1,1,0.4c0.3,0.2,0.4,0.6,0.4,0.9c0,0.4-0.1,0.7-0.4,1c-0.3,0.2-0.6,0.4-1,0.4s-0.8-0.1-1-0.4
C60.2,10,60.1,9.7,60.1,9.3z M68.9,19.4c0.5,0,0.9-0.1,1.1-0.4c0.3-0.3,0.4-0.6,0.5-1h2.4c0,0.6-0.2,1.2-0.5,1.8
c-0.3,0.5-0.8,1-1.4,1.2c-0.6,0.3-1.3,0.4-2,0.4c-1.4,0-2.4-0.4-3.2-1.3c-0.8-0.9-1.2-2.1-1.2-3.6v-0.2c0-1.5,0.4-2.6,1.2-3.5
s1.9-1.3,3.2-1.3c1.2,0,2.1,0.3,2.9,1c0.7,0.7,1.1,1.6,1.1,2.7h-2.4c0-0.5-0.2-0.9-0.5-1.2s-0.7-0.5-1.2-0.5c-0.6,0-1,0.2-1.3,0.7
c-0.3,0.4-0.4,1.1-0.4,2.1v0.3c0,1,0.1,1.7,0.4,2.1C67.8,19.2,68.3,19.4,68.9,19.4z M79.6,18.6c0-0.3-0.2-0.6-0.5-0.7
c-0.3-0.2-0.8-0.3-1.5-0.5c-2.3-0.5-3.4-1.4-3.4-2.9c0-0.8,0.3-1.5,1-2.1s1.6-0.9,2.8-0.9c1.2,0,2.2,0.3,2.9,0.9
c0.7,0.6,1.1,1.3,1.1,2.2h-2.5c0-0.4-0.1-0.7-0.4-0.9c-0.2-0.2-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3s-0.4,0.4-0.4,0.7
s0.1,0.5,0.4,0.7s0.7,0.3,1.4,0.4c0.6,0.1,1.2,0.3,1.6,0.4c1.3,0.5,2,1.3,2,2.6c0,0.9-0.4,1.6-1.1,2.1s-1.7,0.8-2.9,0.8
c-0.8,0-1.5-0.1-2.1-0.4s-1.1-0.7-1.5-1.2s-0.5-1-0.5-1.6h2.4c0,0.5,0.2,0.8,0.5,1s0.7,0.4,1.2,0.4s0.9-0.1,1.1-0.3
C79.4,19.2,79.6,18.9,79.6,18.6z M92,17.8l1.2-6.1h2.5l-2.4,9.5h-2.1l-1.8-6l-1.8,6h-2.1L83,11.7h2.5l1.2,6.1l1.7-6.1h1.8L92,17.8z
M102.6,21.3c-0.1-0.2-0.2-0.5-0.3-0.9c-0.6,0.7-1.4,1-2.4,1c-0.9,0-1.7-0.3-2.3-0.8c-0.6-0.5-0.9-1.2-0.9-2c0-1,0.4-1.8,1.1-2.3
c0.8-0.5,1.8-0.8,3.2-0.8h1.2V15c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3s-0.4,0.5-0.4,0.8h-2.5
c0-0.6,0.2-1.1,0.5-1.5c0.3-0.5,0.8-0.8,1.4-1.1s1.3-0.4,2.1-0.4c1.2,0,2.1,0.3,2.8,0.9c0.7,0.6,1,1.4,1,2.5v4.1
c0,0.9,0.1,1.6,0.4,2v0.1L102.6,21.3L102.6,21.3z M100.5,19.5c0.4,0,0.7-0.1,1-0.2c0.3-0.2,0.6-0.4,0.7-0.7V17h-0.9
c-1.3,0-1.9,0.4-2,1.3v0.1c0,0.3,0.1,0.6,0.3,0.8C99.8,19.4,100.1,19.5,100.5,19.5z M115.4,16.6c0,1.5-0.3,2.6-1,3.5
s-1.6,1.3-2.7,1.3c-1,0-1.7-0.3-2.3-1v4.5h-2.5V11.7h2.4l0.1,0.9c0.6-0.7,1.4-1.1,2.4-1.1c1.2,0,2.1,0.4,2.7,1.3
c0.7,0.9,1,2.1,1,3.6L115.4,16.6L115.4,16.6z M112.8,16.4c0-0.9-0.2-1.6-0.5-2c-0.3-0.5-0.8-0.7-1.4-0.7c-0.8,0-1.3,0.3-1.6,0.9v3.9
c0.3,0.6,0.9,0.9,1.7,0.9C112.2,19.4,112.8,18.4,112.8,16.4z"/>
<path class="st1" d="M5.4,10.6C5.4,9.1,6.6,8,8,8h11.8l-2,2c-0.3,0.3-0.3,0.9,0,1.2s0.9,0.3,1.2,0l3.4-3.4c0.2-0.1,0.3-0.4,0.3-0.7
c0-0.2-0.1-0.5-0.3-0.6L19,3c-0.3-0.3-0.9-0.3-1.2,0c-0.3,0.3-0.3,0.9,0,1.2l2,2H8c-2.4,0-4.3,2-4.3,4.4v8.1c0,0.5,0.4,0.9,0.9,0.9
s0.9-0.4,0.9-0.9L5.4,10.6L5.4,10.6z"/>
<path class="st1" d="M18.1,24H6.3l2-2c0.3-0.3,0.3-0.9,0-1.2c-0.3-0.3-0.9-0.3-1.2,0l-3.4,3.4c-0.2,0.1-0.3,0.4-0.3,0.7
c0,0.2,0.1,0.5,0.3,0.6L7.1,29c0.3,0.3,0.9,0.3,1.2,0s0.3-0.9,0-1.2l-2-2h11.8c2.4,0,4.3-2,4.3-4.4v-8.1c0-0.5-0.4-0.9-0.9-0.9
s-0.9,0.4-0.9,0.9v8.1C20.7,22.9,19.5,24,18.1,24z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="121px" height="32px" viewBox="0 0 121 32" style="enable-background:new 0 0 121 32;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#0073FF;stroke:#0073FF;stroke-miterlimit:10;}
</style>
<path class="st0" d="M29.6,21.3V8.4h4.5c1.6,0,2.7,0.3,3.5,0.9c0.8,0.6,1.2,1.5,1.2,2.6c0,0.6-0.2,1.2-0.5,1.7
c-0.3,0.5-0.8,0.8-1.3,1c0.7,0.2,1.2,0.5,1.5,1c0.4,0.5,0.6,1.1,0.6,1.8c0,1.2-0.4,2.2-1.2,2.8c-0.8,0.6-1.9,1-3.4,1H29.6z
M32.2,15.7v3.5h2.3c0.6,0,1.1-0.1,1.5-0.4c0.4-0.3,0.5-0.7,0.5-1.2c0-1.2-0.6-1.8-1.8-1.8H32.2z M32.2,13.8h2c1.3,0,2-0.6,2-1.6
c0-0.6-0.2-1-0.5-1.2c-0.3-0.3-0.9-0.4-1.6-0.4h-1.8V13.8z M46.5,21.3c-0.1-0.2-0.2-0.5-0.3-0.9c-0.6,0.7-1.4,1-2.4,1
c-0.9,0-1.7-0.3-2.3-0.8c-0.6-0.5-0.9-1.2-0.9-2c0-1,0.4-1.8,1.1-2.3c0.8-0.5,1.8-0.8,3.2-0.8h1.2v-0.5c0-0.4-0.1-0.8-0.3-1.1
c-0.2-0.3-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3c-0.2,0.2-0.4,0.5-0.4,0.8h-2.5c0-0.6,0.2-1.1,0.5-1.5c0.3-0.5,0.8-0.8,1.4-1.1
c0.6-0.3,1.3-0.4,2.1-0.4c1.2,0,2.1,0.3,2.8,0.9c0.7,0.6,1,1.4,1,2.5v4.1c0,0.9,0.1,1.6,0.4,2v0.1H46.5z M44.4,19.5
c0.4,0,0.7-0.1,1-0.2c0.3-0.2,0.6-0.4,0.7-0.7v-1.6h-0.9c-1.3,0-1.9,0.4-2,1.3l0,0.1c0,0.3,0.1,0.6,0.3,0.8
C43.7,19.4,44,19.5,44.4,19.5z M55.9,18.6c0-0.3-0.2-0.6-0.5-0.7c-0.3-0.2-0.8-0.3-1.5-0.5c-2.3-0.5-3.4-1.4-3.4-2.9
c0-0.8,0.3-1.5,1-2.1c0.7-0.6,1.6-0.9,2.8-0.9c1.2,0,2.2,0.3,2.9,0.9c0.7,0.6,1.1,1.3,1.1,2.2h-2.5c0-0.4-0.1-0.7-0.4-0.9
c-0.2-0.2-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3c-0.2,0.2-0.4,0.4-0.4,0.7c0,0.3,0.1,0.5,0.4,0.7c0.3,0.2,0.7,0.3,1.4,0.4
c0.6,0.1,1.2,0.3,1.6,0.4c1.3,0.5,2,1.3,2,2.6c0,0.9-0.4,1.6-1.1,2.1c-0.7,0.5-1.7,0.8-2.9,0.8c-0.8,0-1.5-0.1-2.1-0.4
c-0.6-0.3-1.1-0.7-1.5-1.2c-0.4-0.5-0.5-1-0.5-1.6h2.4c0,0.5,0.2,0.8,0.5,1c0.3,0.2,0.7,0.4,1.2,0.4c0.5,0,0.9-0.1,1.1-0.3
C55.8,19.2,55.9,18.9,55.9,18.6z M62.8,21.3h-2.6v-9.5h2.6V21.3z M60.1,9.3c0-0.4,0.1-0.7,0.4-0.9C60.7,8.1,61,8,61.5,8
c0.4,0,0.8,0.1,1,0.4c0.3,0.2,0.4,0.6,0.4,0.9c0,0.4-0.1,0.7-0.4,1c-0.3,0.2-0.6,0.4-1,0.4c-0.4,0-0.8-0.1-1-0.4
C60.2,10,60.1,9.7,60.1,9.3z M68.9,19.4c0.5,0,0.9-0.1,1.1-0.4c0.3-0.3,0.4-0.6,0.5-1h2.4c0,0.6-0.2,1.2-0.5,1.8
c-0.3,0.5-0.8,1-1.4,1.2c-0.6,0.3-1.3,0.4-2,0.4c-1.4,0-2.4-0.4-3.2-1.3c-0.8-0.9-1.2-2.1-1.2-3.6v-0.2c0-1.5,0.4-2.6,1.2-3.5
s1.9-1.3,3.2-1.3c1.2,0,2.1,0.3,2.9,1c0.7,0.7,1.1,1.6,1.1,2.7h-2.4c0-0.5-0.2-0.9-0.5-1.2c-0.3-0.3-0.7-0.5-1.2-0.5
c-0.6,0-1,0.2-1.3,0.7c-0.3,0.4-0.4,1.1-0.4,2.1v0.3c0,1,0.1,1.7,0.4,2.1C67.8,19.2,68.3,19.4,68.9,19.4z M79.6,18.6
c0-0.3-0.2-0.6-0.5-0.7c-0.3-0.2-0.8-0.3-1.5-0.5c-2.3-0.5-3.4-1.4-3.4-2.9c0-0.8,0.3-1.5,1-2.1c0.7-0.6,1.6-0.9,2.8-0.9
c1.2,0,2.2,0.3,2.9,0.9c0.7,0.6,1.1,1.3,1.1,2.2h-2.5c0-0.4-0.1-0.7-0.4-0.9c-0.2-0.2-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3
c-0.2,0.2-0.4,0.4-0.4,0.7c0,0.3,0.1,0.5,0.4,0.7c0.3,0.2,0.7,0.3,1.4,0.4c0.6,0.1,1.2,0.3,1.6,0.4c1.3,0.5,2,1.3,2,2.6
c0,0.9-0.4,1.6-1.1,2.1c-0.7,0.5-1.7,0.8-2.9,0.8c-0.8,0-1.5-0.1-2.1-0.4c-0.6-0.3-1.1-0.7-1.5-1.2c-0.4-0.5-0.5-1-0.5-1.6h2.4
c0,0.5,0.2,0.8,0.5,1c0.3,0.2,0.7,0.4,1.2,0.4c0.5,0,0.9-0.1,1.1-0.3C79.4,19.2,79.6,18.9,79.6,18.6z M92,17.8l1.2-6.1h2.5l-2.4,9.5
h-2.1l-1.8-6l-1.8,6h-2.1L83,11.7h2.5l1.2,6.1l1.7-6.1h1.8L92,17.8z M102.6,21.3c-0.1-0.2-0.2-0.5-0.3-0.9c-0.6,0.7-1.4,1-2.4,1
c-0.9,0-1.7-0.3-2.3-0.8c-0.6-0.5-0.9-1.2-0.9-2c0-1,0.4-1.8,1.1-2.3c0.8-0.5,1.8-0.8,3.2-0.8h1.2v-0.5c0-0.4-0.1-0.8-0.3-1.1
c-0.2-0.3-0.6-0.4-1.1-0.4c-0.4,0-0.8,0.1-1,0.3c-0.2,0.2-0.4,0.5-0.4,0.8h-2.5c0-0.6,0.2-1.1,0.5-1.5c0.3-0.5,0.8-0.8,1.4-1.1
c0.6-0.3,1.3-0.4,2.1-0.4c1.2,0,2.1,0.3,2.8,0.9c0.7,0.6,1,1.4,1,2.5v4.1c0,0.9,0.1,1.6,0.4,2v0.1H102.6z M100.5,19.5
c0.4,0,0.7-0.1,1-0.2c0.3-0.2,0.6-0.4,0.7-0.7v-1.6h-0.9c-1.3,0-1.9,0.4-2,1.3l0,0.1c0,0.3,0.1,0.6,0.3,0.8
C99.8,19.4,100.1,19.5,100.5,19.5z M115.4,16.6c0,1.5-0.3,2.6-1,3.5c-0.7,0.9-1.6,1.3-2.7,1.3c-1,0-1.7-0.3-2.3-1v4.5h-2.5V11.7h2.4
l0.1,0.9c0.6-0.7,1.4-1.1,2.4-1.1c1.2,0,2.1,0.4,2.7,1.3c0.7,0.9,1,2.1,1,3.6V16.6z M112.8,16.4c0-0.9-0.2-1.6-0.5-2
c-0.3-0.5-0.8-0.7-1.4-0.7c-0.8,0-1.3,0.3-1.6,0.9v3.9c0.3,0.6,0.9,0.9,1.7,0.9C112.2,19.4,112.8,18.4,112.8,16.4z"/>
<path class="st1" d="M5.4,10.6C5.4,9.1,6.6,8,8,8h11.8l-2,2c-0.3,0.3-0.3,0.9,0,1.2c0.3,0.3,0.9,0.3,1.2,0l3.4-3.4
c0.2-0.1,0.3-0.4,0.3-0.7c0-0.2-0.1-0.5-0.3-0.6L19,3c-0.3-0.3-0.9-0.3-1.2,0c-0.3,0.3-0.3,0.9,0,1.2l2,2H8c-2.4,0-4.3,2-4.3,4.4
v8.1c0,0.5,0.4,0.9,0.9,0.9c0.5,0,0.9-0.4,0.9-0.9V10.6z"/>
<path class="st1" d="M18.1,24H6.3l2-2c0.3-0.3,0.3-0.9,0-1.2c-0.3-0.3-0.9-0.3-1.2,0l-3.4,3.4c-0.2,0.1-0.3,0.4-0.3,0.7
c0,0.2,0.1,0.5,0.3,0.6L7.1,29c0.3,0.3,0.9,0.3,1.2,0c0.3-0.3,0.3-0.9,0-1.2l-2-2h11.8c2.4,0,4.3-2,4.3-4.4v-8.1
c0-0.5-0.4-0.9-0.9-0.9c-0.5,0-0.9,0.4-0.9,0.9v8.1C20.7,22.9,19.5,24,18.1,24z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,40 @@
// Burger menus
document.addEventListener('DOMContentLoaded', function() {
// open
const burger = document.querySelectorAll('.navbar-burger');
const menu = document.querySelectorAll('.navbar-menu');
if (burger.length && menu.length) {
for (var i = 0; i < burger.length; i++) {
burger[i].addEventListener('click', function() {
for (var j = 0; j < menu.length; j++) {
menu[j].classList.toggle('hidden');
}
});
}
}
// close
const close = document.querySelectorAll('.navbar-close');
const backdrop = document.querySelectorAll('.navbar-backdrop');
if (close.length) {
for (var i = 0; i < close.length; i++) {
close[i].addEventListener('click', function() {
for (var j = 0; j < menu.length; j++) {
menu[j].classList.toggle('hidden');
}
});
}
}
if (backdrop.length) {
for (var i = 0; i < backdrop.length; i++) {
backdrop[i].addEventListener('click', function() {
for (var j = 0; j < menu.length; j++) {
menu[j].classList.toggle('hidden');
}
});
}
}
});

View file

@ -1,16 +1,97 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<h3>Active Swaps</h3> <section class="bg-white p-5 mt-5">
{% if refresh %} <div class="flex flex-wrap items-center -m-2">
<p>Page Refresh: {{ refresh }} seconds</p> <div class="w-full md:w-1/2 p-2">
{% endif %} <ul class="flex flex-wrap items-center gap-x-3 mb-2">
<li>
<a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/active">Swaps In Progres</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<table> <section class="py-4">
<tr><th>Bid ID</th><th>Offer ID</th><th>Bid Status</th><th>ITX Status</th><th>PTX Status</th></tr> <div class="container px-4 mx-auto">
{% for s in active_swaps %} <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<tr><td><a class="monospace" href=/bid/{{ s[0] }}>{{ s[0] }}</a></td><td><a class="monospace" href=/offer/{{ s[1] }}>{{ s[1] }}</a></td><td>{{ s[2] }}</td><td>{{ s[3] }}</td><td>{{ s[4] }}</td></tr> <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
{% endfor %} <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
</table> <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="">
<div class="relative z-20 flex flex-wrap items-center">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Swaps in Progress / Active Swaps</h2>
<p class="font-semibold text-coolGray-200">
{% if refresh %}
Page Refresh {{ refresh }} seconds
{% endif %}
</p>
</div>
<div class="w-full md:w-1/2 p-3">
<a id="refresh" href="/active"><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh</button></a>
</div>
</div>
</div>
</div>
</section>
<p><a href="/">home</a></p> <section class="bg-white">
</body></html> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white">
<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 px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6"> Bid ID </th>
<th scope="col" class="py-3 px-6"> Offer ID </th>
<th scope="col" class="py-3 px-6"> Bid Status </th>
<th scope="col" class="py-4 px-7"> ITX Status </th>
<th scope="col" class="py-3 px-7"> PTX Status </th>
</tr>
</thead>
<tbody>
{% for s in active_swaps %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 text-xs monospace"><a href=/bid/{{ s[0] }}>{{ s[0] }}</a></td>
<td class="py-4 px-6 text-xs monospace"><a href=/offer/{{ s[1] }}>{{ s[1] }}</a></td>
<td class="py-4 px-6">{{ s[2] }}</td>
<td class="py-4 px-6">{{ s[3] }}</td>
<td class="py-4 px-6">{{ s[4] }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,38 +1,237 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/automation">Automation Strategies</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<h3>Automation Strategies</h3> <section class="py-4">
{% for m in messages %} <div class="container px-4 mx-auto">
<p>{{ m }}</p> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% endfor %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute h-64 left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 object-cover" src="/static/elements/wave.svg" alt="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Automation Strategies</h2>
<p class="font-semibold text-coolGray-200"></p>
</div>
<div class="w-full md:w-1/2 p-3">
<a id="refresh" href="/newautomationstrategy"><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Create New Strategy</button></a>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% for m in messages %}
<table>
<tr><td>Sort By</td><td> <section class="py-4">
<select name="sort_by"> <div class="container px-4 mx-auto">
<option value="created_at"{% if filters.sort_by=='created_at' %} selected{% endif %}>Created At</option> <div class="p-6 bg-green-100 border border-green-200 rounded-md">
</select> <div class="flex flex-wrap justify-between items-center -m-2">
<select name="sort_dir"> <div class="flex-1 p-2">
<option value="asc"{% if filters.sort_dir=='asc' %} selected{% endif %}>Ascending</option> <div class="flex flex-wrap -m-1">
<option value="desc"{% if filters.sort_dir=='desc' %} selected{% endif %}>Descending</option> <div class="w-auto p-1">
</select> <svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
</td></tr> <path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr><td><input type="submit" name='applyfilters' value="Apply Filters"></td><td><input type="submit" name='clearfilters' value="Clear Filters"></td></tr> {% endfor %}
<tr><td><input type="submit" name='pageback' value="Page Back"></td><td>Page: {{ filters.page_no }}</td><td><input type="submit" name='pageforwards' value="Page Forwards"></td></tr>
</table>
<input type="hidden" name="formid" value="{{ form_id }}">
<input type="hidden" name="pageno" value="{{ filters.page_no }}">
</form>
<p><a href="/newautomationstrategy">Create New Strategy</a></p> {% for m in err_messages %}
<table> <section class="py-4">
<tr><th>Name</th><th>Type</th></tr> <div class="container px-4 mx-auto">
{% for s in strategies %} <div class="p-6 bg-red-100 border border-red-200 rounded-md">
<tr><td><a class="monospace" href=/automationstrategy/{{ s[0] }}>{{ s[1] }}</a></td><td>{{ s[2] }}</td></tr> <div class="flex flex-wrap justify-between items-center -m-2">
{% endfor %} <div class="flex-1 p-2">
</table> <div class="flex flex-wrap -m-1">
<div class="w-auto p-1">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<p><a href="/">home</a></p> {% endfor %}
</body></html>
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<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 px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<form method="post">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Filter</th>
<th scope="col" class="py-3 px-6"></th>
<th scope="col"></th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">
Sort by:
</td>
<td class="py-4 bold w-96">
<select class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="sort_by">
<option value="created_at"{% if filters.sort_by=='created_at' %} selected{% endif %}>Created At</option>
</select>
</td>
<td class="py-4 px-6 pr-5">
<select class="pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="sort_dir">
<option value="asc"{% if filters.sort_dir=='asc' %} selected{% endif %}>Ascending</option>
<option value="desc"{% if filters.sort_dir=='desc' %} selected{% endif %}>Descending</option>
</select>
</td>
</tr>
</table>
</div>
</div>
<div class="pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5">
<button type="submit" name='pageback' value="Page Back" class="outline-none flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg aria-hidden="true" class="mr-2 w-5 h-5" fill="#556987" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M7.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l2.293 2.293a1 1 0 010 1.414z" clip-rule="evenodd"></path>
</svg> <span>Page Back</span> </button>
</div>
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading">Page: {{ filters.page_no }}</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<button type="submit" name='pageforwards' value="Page Forwards" class="outline-none flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none"> <span>Page Forwards</span>
<svg aria-hidden="true" class="ml-2 w-5 h-5" fill="#556987" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z" clip-rule="evenodd"></path>
</svg>
</button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name='clearfilters' value="Clear Filters" class="outline-none flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Clear Filters</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button value="Submit" 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">
<span>Submit</span> </button>
</div>
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
<input type="hidden" name="pageno" value="{{ filters.page_no }}">
</form>
<div class="container px-0 mx-auto mt-10">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Name</th>
<th scope="col" class="py-3">Type</th>
</tr>
</thead>
{% for s in strategies %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">
<a class="monospace" href=/automationstrategy/{{ s[0] }}>{{ s[1] }}</a>
</td>
<td class="py-4 pr-5">{{ s[2] }}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,27 +1,186 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/automation">Automation Strategies</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/automation">ID: {{ strategy_id }}</a></li>
</ul>
</div>
</div>
</section>
<h3>Automation Strategy {{ strategy_id }}</h3> <section class="py-4">
<div class="container px-4 mx-auto">
<div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Automation Strategy {{ strategy_id }}</h2>
</div>
</div>
</div>
</div>
</section>
{% for m in messages %} {% for m in messages %}
<p>{{ m }}</p>
{% endfor %}
<table> <section class="py-4">
<tr><td>Label</td><td>{{ strategy.label }}</td></tr> <div class="container px-4 mx-auto">
<tr><td>Type</td><td>{{ strategy.type }}</td></tr> <div class="p-6 bg-green-100 border border-green-200 rounded-md">
<tr><td>Only known identities</td><td>{{ strategy.only_known_identities }}</td></tr> <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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr><td>Data</td><td> {% endfor %}
<textarea class="monospace" rows="10" cols="150" readonly>
{{ strategy.data }}
</textarea>
<tr><td>Notes</td><td>
<textarea rows="10" cols="150" readonly>
{{ strategy.note }}
</textarea>
</td></tr>
</table>
{% for m in err_messages %}
<p><a href="/">home</a></p> <section class="py-4">
</body></html> <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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full pt-2 text-center ">
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Option</th>
<th scope="col" class="py-3">Type</th>
<th scope="col"></th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">Label</td>
<td>{{ strategy.label }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">Type</td>
<td>{{ strategy.type }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">Only known identities</td>
<td>{{ strategy.only_known_identities }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">Data</td>
<td class="py-4 pr-5">
<textarea class="block p-2.5 text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 w-full monospace" rows="5" readonly>
{{ strategy.data }}
</textarea>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">Notes</td>
<td class="py-4 pr-5">
<textarea class="block p-2.5 text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 w-full monospace" rows="5" readonly>
{{ strategy.note }}
</textarea>
</td>
</tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<a href="/automation" 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">
<span>Back</span> </a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,11 +1,127 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/automation">Automation Strategies</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/newautomationstrategy">New</a></li>
</ul>
</div>
</div>
</section>
<h3>New Automation Strategy</h3> <section class="py-4">
{% for m in messages %} <div class="container px-4 mx-auto">
<p>{{ m }}</p> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% endfor %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">New Automation Strategy (todo)</h2>
</div>
</div>
</div>
</div>
</section>
<p>TODO</p> {% for m in messages %}
<p><a href="/">home</a></p> <section class="py-4">
</body></html> <div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full pt-2 text-center ">
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,126 +1,461 @@
{% include 'header.html' %} {% include 'header.html' %}
<h3>Bid {{ bid_id }}</h3> <div class="container mx-auto">
{% if refresh %} <section class="bg-white p-5 mt-5">
<p><a href=/bid/{{ bid_id }}>Page Refresh: {{ refresh }} second</a></p> <div class="flex flex-wrap items-center -m-2">
{% else %} <div class="w-full md:w-1/2 p-2">
<p><a href=/bid/{{ bid_id }}>refresh</a></p> <ul class="flex flex-wrap items-center gap-x-3 mb-2">
{% endif %} <li>
<a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Bids</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="{{ bid_id }}">BID ID:{{ bid_id }}</a></li>
</ul>
</div>
</div>
</section>
{% for m in messages %} <section class="py-4">
<p>{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Bid
{% if debug_mode == true %}
(Debug: bid template)
{% endif %}
</h2>
<p class="font-semibold text-coolGray-200">Bid ID: {{ bid_id }}</p>
</div>
<div class="w-full md:w-1/2 p-3">
{% if refresh %}
<a id="refresh" href=/bid/{{ bid_id }}><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh {{ refresh }} seconds</button></a>
{% else %}
<a id="refresh" href=/bid/{{ bid_id }}><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh</button></a>
{% endif %}
</div>
</div>
</div>
</div>
</section>
<table> {% for m in messages %}
{% if data.was_sent == 'True' %}
<tr><td>Swap</td><td>{{ data.amt_to }} {{ data.ticker_to }} for {{ data.amt_from }} {{ data.ticker_from }}</td></tr>
{% else %}
<tr><td>Swap</td><td>{{ data.amt_from }} {{ data.ticker_from }} for {{ data.amt_to }} {{ data.ticker_to }}</td></tr>
{% endif %}
<tr><td>Bid Rate</td><td>{{ data.bid_rate }}</td></tr>
<tr><td>Bid State</td><td>{{ data.bid_state }}</td></tr>
<tr><td>State Description </td><td>{{ data.state_description }}</td></tr>
<tr><td>ITX State</td><td>{{ data.itx_state }}</td></tr>
<tr><td>PTX State</td><td>{{ data.ptx_state }}</td></tr>
<tr><td>Offer</td><td><a class="monospace" href="/offer/{{ data.offer_id }}">{{ data.offer_id }}</a></td></tr>
<tr><td>Address From</td><td><a class="monospace" href="/identity/{{ data.addr_from }}">{{ data.addr_from }}</a> {{ data.addr_from_label }}</td></tr>
<tr><td>Proof of Funds</td><td>{{ data.proof_address }}</td></tr>
<tr><td>Created At</td><td>{{ data.created_at }}</td></tr>
<tr><td>Expired At</td><td>{{ data.expired_at }}</td></tr>
<tr><td>Sent</td><td>{{ data.was_sent }}</td></tr>
<tr><td>Received</td><td>{{ data.was_received }}</td></tr>
<tr><td>Initiate Tx</td><td class="monospace">{{ data.initiate_tx }}</td></tr>
<tr><td>Initiate Conf</td><td>{{ data.initiate_conf }}</td></tr>
<tr><td>Participate Tx</td><td class="monospace">{{ data.participate_tx }}</td></tr>
<tr><td>Participate Conf</td><td>{{ data.participate_conf }}</td></tr>
{% if data.show_txns %}
<tr><td>Initiate Tx Refund</td><td class="monospace">{{ data.initiate_tx_refund }}</td></tr>
<tr><td>Participate Tx Refund</td><td class="monospace">{{ data.participate_tx_refund }}</td></tr>
<tr><td>Initiate Tx Spend Tx</td><td class="monospace">{{ data.initiate_tx_spend }}</td></tr>
<tr><td>Participate Tx Spend Tx</td><td class="monospace">{{ data.participate_tx_spend }}</td></tr>
{% endif %}
</table>
<section class="py-4">
<div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% endfor %}
{% if edit_bid %}
<h4>Edit Bid</h4>
<table>
<tr><td>Change Bid State</td><td>
<select name="new_state">
{% for s in data.bid_states %}
<option value="{{ s[0] }}"{% if data.bid_state_ind==s[0] %} selected{% endif %}>{{ s[1] }}</option>
{% endfor %}
</select></td></tr>
{% if data.debug_ui == true %}
<tr><td>Debug Option</td><td><select name="debugind">
<option{% if data.debug_ind=="-1" %} selected{% endif %} value="-1">-- None --</option>
{% for a in data.debug_options %}
<option{% if data.debug_ind==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[1] }}</option>
{% endfor %}
</select></td></tr>
{% endif %}
</table>
<input name="edit_bid_cancel" type="submit" value="Cancel">
<input name="edit_bid_submit" type="submit" value="Submit">
{% else %}
{% if data.was_received == 'True' %}
<input name="accept_bid" type="submit" value="Accept Bid"><br/>
{% endif %}
{% if data.can_abandon == true %}
<input name="abandon_bid" type="submit" value="Abandon Bid" onclick="return confirmPopup();">
{% endif %}
{% if data.show_txns %}
<input name="hide_txns" type="submit" value="Hide Info">
{% else %}
<input name="show_txns" type="submit" value="Show More Info">
{% endif %}
<input name="edit_bid" type="submit" value="Edit Bid">
{% endif %}
<br/>
{% if data.show_bidder_seq_diagram %}
<input name="hide_bidder_seq_diagram" type="submit" value="Hide Bidder Sequence Diagram">
{% else %}
<input name="show_bidder_seq_diagram" type="submit" value="Show Bidder Sequence Diagram">
{% endif %}
{% if data.show_offerer_seq_diagram %}
<input name="hide_offerer_seq_diagram" type="submit" value="Hide Offerer Sequence Diagram">
{% else %}
<input name="show_offerer_seq_diagram" type="submit" value="Show Offerer Sequence Diagram">
{% endif %}
<input type="hidden" name="formid" value="{{ form_id }}">
</form>
{% if data.show_bidder_seq_diagram %} {% for m in err_messages %}
<img src="/static/sequence_diagrams/bidder.alt.xu.min.svg" />
{% endif %}
{% if data.show_offerer_seq_diagram %} <section class="py-4">
<img src="/static/sequence_diagrams/offerer.alt.xu.min.svg" /> <div class="container px-4 mx-auto">
{% endif %} <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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<h4>Old States</h4>
<table>
<tr><th>State</th><th>Set At</th></tr>
{% for s in old_states %}
<tr><td>{{ s[1] }}</td><td>{{ s[0] | formatts }}</td></tr>
{% endfor %}
</table>
<h4>Events</h4> <section class="bg-white">
<table> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<tr><th>At</th><th>Event</th></tr> <div class="pb-6 border-coolGray-100">
{% for e in data.events %} <div class="flex flex-wrap items-center justify-between -m-2">
<tr><td>{{ e.at | formatts }}</td><td>{{ e.desc }}</td></tr> <div class="w-full pt-2">
{% endfor %}
</table>
<p><a href="/">home</a></p>
<script>
function confirmPopup() { <div class="container px-0 mx-auto mt-5">
return confirm("Are you sure?"); <div class="overflow-x-auto relative border sm:rounded-lg">
}
</script>
</body></html> <table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Item</th>
<th scope="col">Data </th>
</tr>
</thead>
{% if data.was_sent == 'True' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Swap</td>
<td>{{ data.amt_to }} {{ data.ticker_to }} for {{ data.amt_from }} {{ data.ticker_from }}</td>
</tr>
{% else %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Swap</td>
<td>{{ data.amt_from }} {{ data.ticker_from }} for {{ data.amt_to }} {{ data.ticker_to }}</td>
</tr>
{% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Bid Rate</td>
<td>{{ data.bid_rate }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Bid State</td>
<td>{{ data.bid_state }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">State Description </td>
<td>{{ data.state_description }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">ITX State</td>
<td>{{ data.itx_state }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">PTX State</td>
<td>{{ data.ptx_state }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Offer</td>
<td><a class="monospace" href="/offer/{{ data.offer_id }}">{{ data.offer_id }}</a></td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Address From</td>
<td><a class="monospace" href="/identity/{{ data.addr_from }}">{{ data.addr_from }}</a> {{ data.addr_from_label }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Proof of Funds</td>
<td>{{ data.proof_address }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Created At</td>
<td>{{ data.created_at }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Expired At</td>
<td>{{ data.expired_at }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Sent</td>
<td>{{ data.was_sent }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Received</td>
<td>{{ data.was_received }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Initiate Tx</td>
<td class="monospace">{{ data.initiate_tx }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Initiate Conf</td>
<td>{{ data.initiate_conf }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Participate Tx</td>
<td class="monospace">{{ data.participate_tx }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Participate Conf</td>
<td>{{ data.participate_conf }}</td>
</tr>
{% if data.show_txns %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Initiate Tx Refund</td>
<td class="monospace">{{ data.initiate_tx_refund }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Participate Tx Refund</td>
<td class="monospace">{{ data.participate_tx_refund }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Initiate Tx Spend Tx</td>
<td class="monospace">{{ data.initiate_tx_spend }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Participate Tx Spend Tx</td>
<td class="monospace">{{ data.participate_tx_spend }}</td>
</tr>
{% endif %}
</table>
</div>
</div>
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Old states</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Old States</th>
<th scope="col">Set at Time</th>
</tr>
</thead>
{% for s in old_states %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">{{ s[1] }}</td>
<td>{{ s[0] | formatts }} </td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% if data.events %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Events</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Time</th>
<th scope="col">Events</th>
</tr>
</thead>
{% for e in data.events %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">{{ e.at | formatts }}</td>
<td>{{ e.desc }}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% else %}
{% endif %}
<form method="post">
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
{% if edit_bid %}
<table>
<tr>
<td class="bold pr-5">Change Bid State:</td>
<td>
<select class="pappearance-none pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="new_state">
{% for s in data.bid_states %}
<option value="{{ s[0] }}" {% if data.bid_state_ind==s[0] %} selected{% endif %}>{{ s[1] }}</option>
{% endfor %}
</select>
</td>
</tr>
{% if data.debug_ui == true %}
<tr>
<td class="bold pr-5">Debug Option:</td>
<td>
<select class="apappearance-none pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="debugind">
<option{% if data.debug_ind=="-1" %} selected{% endif %} value="-1">None</option>
{% for a in data.debug_options %}
<option{% if data.debug_ind==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[1] }}</option>
{% endfor %}
</select>
</td>
</tr>
{% endif %}
</table>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="edit_bid_cancel" value="Cancel" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Cancel</span> </button>
</div>
<div class="w-full md:w-auto p-1.5">
<button name="edit_bid_submit" value="Submit" 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">
<span>Submit Edit Bid</span> </button>
</div>
{% else %}
{% if data.can_abandon == true %}
<div class="w-full md:w-auto p-1.5">
<button name="abandon_bid" type="submit" value="Abandon Bid" onclick="return confirmPopup();" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Abandon Bid</span> </button>
</div>
{% endif %}
{% if data.show_txns %}
<div class="w-full md:w-auto p-1.5">
<button name="hide_txns" type="submit" value="Hide Info" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Hide info</span> </button>
</div>
{% else %}
<div class="w-full md:w-auto p-1.5">
<button name="show_txns" type="submit" value="Show More Info" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Show More Info</span> </button>
</div>
{% endif %}
<div class="w-full md:w-auto p-1.5">
<button name="edit_bid" type="submit" value="Edit Bid" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Edit bit</span> </button>
</div>
{% endif %}
{% if data.was_received == 'True' %}
<div class="w-full md:w-auto p-1.5">
<button name="accept_bid" value="Accept Bid" type="submit" onclick='return confirmPopup("Accept");' 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">
<span>Accept Bid</span> </button>
</div>
{% endif %}
</div>
</div>
</div>
{% if data.show_bidder_seq_diagram %}
<!-- <input name="hide_bidder_seq_diagram" type="submit" value="Hide Bidder Sequence Diagram"> -->
{% else %}
<!-- <input name="show_bidder_seq_diagram" type="submit" value="Show Bidder Sequence Diagram"> -->
{% endif %}
{% if data.show_offerer_seq_diagram %}
<!-- <input name="hide_offerer_seq_diagram" type="submit" value="Hide Offerer Sequence Diagram"> -->
{% else %}
<!-- <input name="show_offerer_seq_diagram" type="submit" value="Show Offerer Sequence Diagram"> -->
{% endif %}
<input type="hidden" name="formid" value="{{ form_id }}">
</form>
{% if data.show_bidder_seq_diagram %}
<!-- <img src="/static/sequence_diagrams/bidder.alt.xu.min.svg" /> -->
{% endif %}
{% if data.show_offerer_seq_diagram %}
<!-- <img src="/static/sequence_diagrams/offerer.alt.xu.min.svg" /> -->
{% endif %}
</div>
</div>
</div>
</div>
</section>
<script>
function confirmPopup() {
return confirm("Are you sure?");
}
</script>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,184 +1,642 @@
{% include 'header.html' %} {% include 'header.html' %}
<h3>Bid {{ bid_id }}</h3> <div class="container mx-auto">
{% if refresh %} <section class="bg-white p-5 mt-5">
<p><a href=/bid/{{ bid_id }}>Page Refresh: {{ refresh }} second</a></p> <div class="flex flex-wrap items-center -m-2">
{% else %} <div class="w-full md:w-1/2 p-2">
<p><a href=/bid/{{ bid_id }}>refresh</a></p> <ul class="flex flex-wrap items-center gap-x-3 mb-2">
{% endif %} <li>
<a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Bids</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="{{ bid_id }}">BID ID: {{ bid_id }}</a></li>
</ul>
</div>
</div>
</section>
{% for m in messages %} <section class="py-4">
<p>{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% for m in err_messages %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<p class="error_msg">Error: {{ m }}</p> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
{% endfor %} <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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Bid
{% if debug_mode == true %}
(Debug: bid_xmr template)
{% endif %}
</h2>
<p class="font-semibold text-coolGray-200">Bid ID: {{ bid_id }}</p>
</div>
<div class="w-full md:w-1/2 p-3">
{% if refresh %}
<a id="refresh" href=/bid/{{ bid_id }}><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh {{ refresh }} seconds</button></a>
{% else %}
<a id="refresh" href=/bid/{{ bid_id }}><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh</button></a>
{% endif %}
</div>
</div>
</div>
</div>
</section>
<table> {% for m in messages %}
{% if data.was_sent == 'True' %}
<tr><td>Swap</td><td>{{ data.amt_to }} {{ data.ticker_to }} for {{ data.amt_from }} {{ data.ticker_from }}</td></tr>
{% else %}
<tr><td>Swap</td><td>{{ data.amt_from }} {{ data.ticker_from }} for {{ data.amt_to }} {{ data.ticker_to }}</td></tr>
{% endif %}
<tr><td>Bid Rate</td><td>{{ data.bid_rate }}</td></tr>
<tr><td>Coin From</td><td>{{ data.coin_from }}</td></tr>
<tr><td>Coin To</td><td>{{ data.coin_to }}</td></tr>
<tr><td>Bid State</td><td>{{ data.bid_state }}</td></tr>
<tr><td>State Description </td><td>{{ data.state_description }}</td></tr>
<tr><td>Offer</td><td><a class="monospace" href="/offer/{{ data.offer_id }}">{{ data.offer_id }}</a></td></tr>
<tr><td>Address From</td><td><a class="monospace" href="/identity/{{ data.addr_from }}">{{ data.addr_from }}</a> {{ data.addr_from_label }}</td></tr>
<tr><td>Created At</td><td>{{ data.created_at }}</td></tr>
<tr><td>Expired At</td><td>{{ data.expired_at }}</td></tr>
<tr><td>Sent</td><td>{{ data.was_sent }}</td></tr>
<tr><td>Received</td><td>{{ data.was_received }}</td></tr>
{% if data.coin_a_lock_refund_tx_est_final != 'None' %}
<tr><td>{{ data.ticker_from }} lock refund tx valid at</td><td>{{ data.coin_a_lock_refund_tx_est_final | formatts }}</td></tr>
{% if data.coin_a_lock_refund_swipe_tx_est_final != 'None' %}
<tr><td>{{ data.ticker_from }} lock refund tx swipeable at</td><td>{{ data.coin_a_lock_refund_swipe_tx_est_final | formatts }}</td></tr>
{% endif %}
<tr><td>{{ data.ticker_from }} chain median time</td><td>{{ data.coin_a_last_median_time | formatts }}</td></tr>
{% endif %}
</table> <section class="py-4">
<div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% endfor %}
{% if edit_bid %}
<h4>Edit Bid</h4>
<table>
<tr><td>Change Bid State</td><td>
<select name="new_state">
{% for s in data.bid_states %}
<option value="{{ s[0] }}"{% if data.bid_state_ind==s[0] %} selected{% endif %}>{{ s[1] }}</option>
{% endfor %}
</select></td></tr>
{% if data.debug_ui == true %}
<tr><td>Debug Option</td><td><select name="debugind">
<option{% if data.debug_ind=="-1" %} selected{% endif %} value="-1">-- None --</option>
{% for a in data.debug_options %}
<option{% if data.debug_ind==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[1] }}</option>
{% endfor %}
</select></td></tr>
<tr><td>Sweep No-Script TX</td><td><input type="text" id="kbs_other" name="kbs_other"></td></tr>
{% endif %}
</table>
<input name="edit_bid_cancel" type="submit" value="Cancel">
<input name="edit_bid_submit" type="submit" value="Submit">
{% else %}
{% if data.was_received == 'True' %}
<input name="accept_bid" type="submit" value="Accept Bid" onclick='return confirmPopup("Accept");'><br/>
{% endif %}
{% if data.can_abandon == true %}
<input name="abandon_bid" type="submit" value="Abandon Bid" onclick='return confirmPopup("Abandon");'>
{% endif %}
{% if data.show_txns %}
<input name="hide_txns" type="submit" value="Hide Info">
{% else %}
<input name="show_txns" type="submit" value="Show More Info">
{% endif %}
<input name="edit_bid" type="submit" value="Edit Bid">
{% endif %}
<br/>
{% if data.show_bidder_seq_diagram %}
<input name="hide_bidder_seq_diagram" type="submit" value="Hide Bidder Sequence Diagram">
{% else %}
<input name="show_bidder_seq_diagram" type="submit" value="Show Bidder Sequence Diagram">
{% endif %}
{% if data.show_offerer_seq_diagram %}
<input name="hide_offerer_seq_diagram" type="submit" value="Hide Offerer Sequence Diagram">
{% else %}
<input name="show_offerer_seq_diagram" type="submit" value="Show Offerer Sequence Diagram">
{% endif %}
<input type="hidden" name="formid" value="{{ form_id }}">
{% if data.show_txns %} {% for m in err_messages %}
{% if data.xmr_b_shared_address %}
<p class="monospace">Shared Address: {{ data.xmr_b_shared_address }}</p>
{% endif %}
{% if data.xmr_b_shared_viewkey %}
<p class="monospace">Shared View Key: {{ data.xmr_b_shared_viewkey }}</p>
{% endif %}
{% if data.xmr_b_half_privatekey %}
<p class="monospace">Key Half: {{ data.xmr_b_half_privatekey }}</p>
{% endif %}
<h4>Transactions</h4>
<table>
<tr><th>Tx Type</th><th>Tx ID</th><th>Blocks Deep</th></tr>
{% for tx in data.txns %}
<tr><td>{{ tx.type }}</td><td class="monospace">{{ tx.txid }}</td><td>{{ tx.confirms }}</td></tr>
{% endfor %}
</table>
<table>
<tr><td>View Transaction</td><td>
<select name="view_tx">
{% if data.txns|length %}
{% for tx in data.txns %}
<option value="{{ tx.txid }}"{% if data.view_tx_ind==tx.txid %} selected{% endif %}>{{ tx.type }} {{ tx.txid }}</option>
{% endfor %}
{% else %}
<option value="0">--- None exist yet ---</option>
{% endif %}
</select></td></tr>
</table>
<input name="view_tx_submit" type="submit" value="View Tx">
<input name="view_lock_transfers" type="submit" value="View Lock Wallet Transfers">
{% if data.view_tx_hex %} <section class="py-4">
<p>{{ data.view_tx_hex }}</p> <div class="container px-4 mx-auto">
<textarea class="monospace" id="tx_view" rows="10" cols="150" readonly> <div class="p-6 bg-red-100 border border-red-200 rounded-md">
{{ data.view_tx_desc }} <div class="flex flex-wrap justify-between items-center -m-2">
</textarea> <div class="flex-1 p-2">
{% endif %} <div class="flex flex-wrap -m-1">
<div class="w-auto p-1">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% if data.lock_transfers %} {% endfor %}
<p>
<label for="transfers_view">Lock wallet transfers:</label><br/>
<textarea class="monospace" id="transfers_view" rows="10" cols="150" readonly>
{{ data.lock_transfers }}
</textarea>
</p>
{% endif %}
{% endif %}
</form>
{% if data.show_bidder_seq_diagram %} <section class="bg-white">
<img src="/static/sequence_diagrams/xmr.bidder.alt.xu.min.svg" /> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
{% endif %} <div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full pt-2">
{% if data.show_offerer_seq_diagram %} <div class="container px-0 mx-auto mt-5">
<img src="/static/sequence_diagrams/xmr.offerer.alt.xu.min.svg" /> <div class="overflow-x-auto relative border sm:rounded-lg">
{% endif %}
{% if data.chain_a_lock_tx_inputs %} <table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<h5>Chain A Lock TX Inputs:</h5>
<table> <thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr><th>txid</th><th>vout</th><th>locked</th></tr> <tr>
{% for txi in data.chain_a_lock_tx_inputs %} <th scope="col" class="py-3 px-6">Item</th>
<tr><td>{{ txi.txid }}</td><td>{{ txi.vout }}</td><td>{% if txi.islocked %} true {% else %} false {% endif %}</td></tr> <th scope="col">Data </th>
{% endfor %}
</table> </tr>
{% endif %} </thead>
{% if data.was_sent == 'True' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Swap</td>
<td>{{ data.amt_to }} {{ data.ticker_to }} for {{ data.amt_from }} {{ data.ticker_from }}</td>
</tr>
{% else %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Swap</td>
<td>{{ data.amt_from }} {{ data.ticker_from }} for {{ data.amt_to }} {{ data.ticker_to }}</td>
</tr>
{% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Bid Rate</td>
<td>{{ data.bid_rate }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Coin From</td>
<td>{{ data.coin_from }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Coin To</td>
<td>{{ data.coin_to }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Bid State</td>
<td>{{ data.bid_state }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">State Description </td>
<td>{{ data.state_description }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Offer</td>
<td><a class="monospace" href="/offer/{{ data.offer_id }}">{{ data.offer_id }}</a></td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Address From</td>
<td><a class="monospace" href="/identity/{{ data.addr_from }}">{{ data.addr_from }}</a> {{ data.addr_from_label }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Created At</td>
<td>{{ data.created_at }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Expired At</td>
<td>{{ data.expired_at }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Sent</td>
<td>{{ data.was_sent }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Received</td>
<td>{{ data.was_received }}</td>
</tr>
{% if data.coin_a_lock_refund_tx_est_final != 'None' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">{{ data.ticker_from }} lock refund tx valid at</td>
<td>{{ data.coin_a_lock_refund_tx_est_final | formatts }}</td>
</tr>
{% if data.coin_a_lock_refund_swipe_tx_est_final != 'None' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">{{ data.ticker_from }} lock refund tx swipeable at</td>
<td>{{ data.coin_a_lock_refund_swipe_tx_est_final | formatts }}</td>
</tr>
{% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">{{ data.ticker_from }} chain median time</td>
<td>{{ data.coin_a_last_median_time | formatts }}</td>
</tr>
{% endif %}
</table>
</div>
</div>
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Old states</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<h4>Old States</h4> <table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<table>
<tr><th>State</th><th>Set At</th></tr>
{% for s in old_states %}
<tr><td>{{ s[1] }}</td><td>{{ s[0] | formatts }}</td></tr>
{% endfor %}
</table>
<h4>Events</h4> <thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<table> <tr>
<tr><th>At</th><th>Event</th></tr> <th scope="col" class="py-3 px-6">Old States</th>
{% for e in data.events %} <th scope="col">Set at Time</th>
<tr><td>{{ e.at | formatts }}</td><td>{{ e.desc }}</td></tr>
{% endfor %}
</table>
<p><a href="/">home</a></p> </tr>
<script> </thead>
function confirmPopup(name) {
return confirm(name + " Bid - Are you sure?"); {% for s in old_states %}
} <tr class="bg-white border-t hover:bg-gray-50">
</script> <td class="py-4 px-6">{{ s[1] }}</td>
</body></html> <td>{{ s[0] | formatts }} </td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% if data.events %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Events</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Time</th>
<th scope="col">Events</th>
</tr>
</thead>
{% for e in data.events %}
<tr class="bg-white border-t hover:bg-gray-50" <td class="py-4 px-6">{{ e.at | formatts }}</td>
<td>{{ e.desc }}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% else %}
{% endif %}
<form method="post">
{% if data.show_txns %}
{% if data.xmr_b_shared_address %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">View keys/Shared Address:</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6 w-96">Type</th>
<th scope="col">Output</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Shared Address:</td>
<td class="py-4 monospace">{{ data.xmr_b_shared_address }}</td>
</tr>
</table>
</div>
</div>
{% endif %}
{% if data.xmr_b_shared_viewkey %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">View keys/Shared Address:</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6 w-96">Type</th>
<th scope="col">Output</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Shared View Key:</td>
<td class="py-4 monospace">{{ data.xmr_b_shared_viewkey }}</td>
</tr>
</table>
</div>
</div>
{% endif %}
{% if data.xmr_b_half_privatekey %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">View keys/Shared Address:</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6 w-96">Type</th>
<th scope="col">Output</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Key Half:</td>
<td class="py-4 monospace">{{ data.xmr_b_half_privatekey }}</td>
</tr>
</table>
</div>
</div>
{% endif %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Transactions</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Tx Type</th>
<th scope="col">Tx ID</th>
<th scope="col">Blocks Deep</th>
</tr>
</thead>
{% for tx in data.txns %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">{{ tx.type }}</td>
<td class="py-4 px-6 monospace">{{ tx.txid }}</td>
<td class="py-4 px-6">{{ tx.confirms }}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<table>
<tr>
<td class="bold pr-5">View Transaction:</td>
<td>
<select class="pappearance-none pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="view_tx">
{% if data.txns|length %}
{% for tx in data.txns %}
<option value="{{ tx.txid }}" {% if data.view_tx_ind==tx.txid %} selected{% endif %}>{{ tx.type }} {{ tx.txid }}</option>
{% endfor %}
{% else %}
<option value="0">None exist yet</option>
{% endif %}
</select>
</td>
</tr>
</table>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="view_tx_submit" value="View Tx" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>View Tx</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="view_lock_transfers" value="View Lock Wallet Transfers" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>View Lock Wallet Transfers</span> </button>
</div>
</div>
</div>
</div>
{% if data.view_tx_hex %}
<label for="transfers_view" class="bold block mb-2 text-sm font-medium text-gray-900">{{ data.view_tx_hex }}</label>
<textarea rows="4" class="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 monospace" id="tx_view" readonly>
{{ data.view_tx_desc }}
</textarea>
{% endif %}
{% if data.lock_transfers %}
<label for="transfers_view" class="bold block mb-2 text-sm font-medium text-gray-900">Lock wallet transfers:</label>
<textarea rows="4" class="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 monospace" id="transfers_view" readonly>
{{ data.lock_transfers }}
</textarea>
{% endif %}
{% endif %}
{% if data.show_bidder_seq_diagram %}
<!--<img src="/static/sequence_diagrams/xmr.bidder.alt.xu.min.svg" />-->
{% endif %}
{% if data.show_offerer_seq_diagram %}
<!--<img src="/static/sequence_diagrams/xmr.offerer.alt.xu.min.svg" />-->
{% endif %}
{% if data.chain_a_lock_tx_inputs %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Chain A Lock TX Inputs:</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">txid</th>
<th scope="col">vout</th>
<th scope="col">locked</th>
</tr>
</thead>
{% for txi in data.chain_a_lock_tx_inputs %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">{{ txi.txid }}</td>
<td class="py-4 px-6 monospace">{{ txi.vout }}</td>
<td class="py-4 px-6">{% if txi.islocked %} true {% else %} false {% endif %}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
{% endif %}
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
{% if edit_bid %}
<table class="mt-1">
<tr>
<td class="bold pr-5 ">Change Bid State:</td>
<td>
<select class="pappearance-none pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="new_state">
{% for s in data.bid_states %}
<option value="{{ s[0] }}" {% if data.bid_state_ind==s[0] %} selected{% endif %}>{{ s[1] }}</option>
{% endfor %}
</select>
</td>
</tr>
{% if data.debug_ui == true %}
<tr>
<td class="bold pr-5">Debug Option</td>
<td>
<select class="pappearance-none pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="debugind">
<option{% if data.debug_ind=="-1" %} selected{% endif %} value="-1">-- None --</option>
{% for a in data.debug_options %}
<option{% if data.debug_ind==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[1] }}</option>
{% endfor %}
</select>
</td>
</tr>
<tr>
<td class="bold pr-5">Sweep No-Script TX</td>
<td><input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" type="text" id="kbs_other" name="kbs_other"></td>
</tr>
{% endif %}
</table>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="edit_bid_cancel" value="Cancel" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Cancel</span> </button>
</div>
<div class="w-full md:w-auto p-1.5">
<button name="edit_bid_submit" value="Submit" 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">
<span>Submit Edit Bid</span> </button>
</div>
{% else %}
{% if data.was_received == 'True' %}
<div class="w-full md:w-auto p-1.5">
<button name="accept_bid" value="Accept Bid" onclick='return confirmPopup("Accept");' 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">
<span>Accept Bid</span> </button>
</div>
{% endif %}
{% if data.can_abandon == true %}
<div class="w-full md:w-auto p-1.5">
<button name="abandon_bid" value="Abandon Bid" onclick='return confirmPopup("Abandon");' type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Abandon Bid</span> </button>
</div>
{% endif %}
{% if data.show_txns %}
<div class="w-full md:w-auto p-1.5">
<button name="hide_txns" type="submit" value="Hide Info" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Hide info</span> </button>
</div>
{% else %}
<div class="w-full md:w-auto p-1.5">
<button name="show_txns" type="submit" value="Show More Info" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Show More Info</span> </button>
</div>
{% endif %}
<div class="w-full md:w-auto p-1.5">
<button name="edit_bid" type="submit" value="Edit Bid" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Edit bid</span> </button>
</div>
{% endif %}
{% if data.show_bidder_seq_diagram %}
<!--<input name="hide_bidder_seq_diagram" type="submit" value="Hide Bidder Sequence Diagram">-->
{% else %}
<!--<input name="show_bidder_seq_diagram" type="submit" value="Show Bidder Sequence Diagram">-->
{% endif %}
{% if data.show_offerer_seq_diagram %}
<!--<input name="hide_offerer_seq_diagram" type="submit" value="Hide Offerer Sequence Diagram">-->
{% else %}
<!--<input name="show_offerer_seq_diagram" type="submit" value="Show Offerer Sequence Diagram">-->
{% endif %}
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
</div>
</div>
</div>
</div> <!-- todo double check -->
</form>
<script>
function confirmPopup(name) {
return confirm(name + " Bid - Are you sure?");
}
</script>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,57 +1,267 @@
{% include 'header.html' %} {% include 'header.html' %}
<h3>{{ page_type }} Bids</h3> <div class="container mx-auto">
{% if refresh %}
<p>Page Refresh: {{ refresh }} seconds</p>
{% endif %}
{% for m in messages %}
<p>{{ m }}</p>
{% endfor %}
<form method="post"> <section class="bg-white p-5 mt-5">
<table> <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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">{{ page_type_available }} {{ page_type_received }} {{ page_type_sent }} Bids</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<tr><td>Sort By</td><td> <section class="py-4">
<select name="sort_by"> <div class="container px-4 mx-auto">
<option value="created_at"{% if filters.sort_by=='created_at' %} selected{% endif %}>Created At</option> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
</select> <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<select name="sort_dir"> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<option value="asc"{% if filters.sort_dir=='asc' %} selected{% endif %}>Ascending</option> <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="">
<option value="desc"{% if filters.sort_dir=='desc' %} selected{% endif %}>Descending</option> <div class="relative z-20 flex flex-wrap items-center -m-3">
</select> <div class="w-full md:w-1/2 p-3">
</td></tr> <h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">{{ page_type_available }} {{ page_type_received }} {{ page_type_sent }} Bids</h2>
<tr><td>State</td><td> <p class="font-semibold text-coolGray-200">{{ page_type_available_description }} {{ page_type_received_description }} {{ page_type_sent_description }}</p>
<select name="state"> </div>
<option value="-1"{% if filters.bid_state_ind==-1 %} selected{% endif %}>-- Any --</option> </div>
{% for s in data.bid_states %} </div>
<option value="{{ s[0] }}"{% if filters.bid_state_ind==s[0] %} selected{% endif %}>{{ s[1] }}</option> </div>
{% endfor %} </section>
</select>
<tr><td>Include Expired</td><td>
<select name="with_expired">
<option value="true"{% if filters.with_expired==true %} selected{% endif %}>Include</option>
<option value="false"{% if filters.with_expired==false %} selected{% endif %}>Exclude</option>
</select>
</td></tr>
<tr><td><input type="submit" name='applyfilters' value="Apply Filters"></td><td><input type="submit" name='clearfilters' value="Clear Filters"></td></tr> <!-- todo -->
<tr><td><input type="submit" name='pageback' value="Page Back"></td><td>Page: {{ filters.page_no }}</td><td><input type="submit" name='pageforwards' value="Page Forwards"></td></tr> {% if refresh %}
</table> <p>Page Refresh: {{ refresh }} seconds</p> {% endif %} {% for m in messages %}
<input type="hidden" name="formid" value="{{ form_id }}"> <p>{{ m }}</p>
<input type="hidden" name="pageno" value="{{ filters.page_no }}"> {% endfor %}
</form> <!-- todo -->
<table> <section class="bg-white">
<tr><th>At</th><th>Bid ID</th><th>Offer ID</th><th>Bid From</th><th>Bid Status</th><th>ITX Status</th><th>PTX Status</th></tr> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white">
{% for b in bids %} <div class="pb-6 border-coolGray-100">
<tr> <div class="flex flex-wrap items-center justify-between -m-2">
<td>{{ b[0] }}</td> <div class="w-full pt-2">
<td><a class="monospace" href=/bid/{{ b[1] }}>{{ b[1] }}</a></td>
<td><a class="monospace" href=/offer/{{ b[2] }}>{{ b[2] }}</a></td>
<td><a class="monospace" href=/identity/{{ b[6] }}>{{ b[6] }}</a></td>
<td>{{ b[3] }}</td><td>{{ b[4] }}</td><td>{{ b[5] }}</td></tr>
{% endfor %}
</table>
<p><a href="/">home</a></p> <form method="post">
</body></html>
<div class="flex justify-between items-center pb-4 bg-white">
<div class="bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading bold">Sort By:</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB">
</path>
</svg>
<select name="sort_by" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<option value="created_at" {% if filters.sort_by=='created_at' %} selected{% endif %}>Time At</option>
</select>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB">
</path>
</svg>
<select name="sort_dir" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<option value="asc" {% if filters.sort_dir=='asc' %} selected{% endif %}>Ascending</option>
<option value="desc" {% if filters.sort_dir=='desc' %} selected{% endif %}>Descending</option>
</select>
</div>
</div>
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading bold">State:</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB">
</path>
</svg>
<select name="state" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<option value="-1" {% if filters.bid_state_ind==-1 %} selected{% endif %}>Any</option>
{% for s in data.bid_states %}
<option value="{{ s[0] }}" {% if filters.bid_state_ind==s[0] %} selected{% endif %}>{{ s[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading bold">Include Expired:</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB">
</path>
</svg>
<select name="with_expired" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<option value="true" {% if filters.with_expired==true %} selected{% endif %}>Include</option>
<option value="false" {% if filters.with_expired==false %} selected{% endif %}>Exclude</option>
</select>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<button type="submit" name='clearfilters' value="Clear Filters" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2 w-5 h-5" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#556987" stroke-linejoin="round" class="nc-icon-wrapper">
<line x1="20" y1="2" x2="12.329" y2="11.506"></line>
<path d="M11,11a2,2,0,0,1,2,2,3.659,3.659,0,0,1-.2.891A9.958,9.958,0,0,0,13.258,23H1C1,16.373,4.373,11,11,11Z"></path>
<line x1="18" y1="15" x2="23" y2="15" stroke="#556987"></line>
<line x1="17" y1="19" x2="23" y2="19" stroke="#556987"></line>
<line x1="19" y1="23" x2="23" y2="23" stroke="#556987"></line>
<path d="M8.059,11.415A3.9,3.9,0,0,0,12,16c.041,0,.079-.011.12-.012" data-cap="butt"></path>
<path d="M5,23a13.279,13.279,0,0,1,.208-3.4" data-cap="butt"></path>
<path d="M9.042,23c-.688-1.083-.313-3.4-.313-3.4" data-cap="butt"></path>
</g>
</svg> <span>Clear Filters</span> </button>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<button type="submit" name='applyfilters' value="Apply Filters" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm 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">
<svg class="mr-2 w-5 h-5" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#ffff" stroke-linejoin="round" class="nc-icon-wrapper">
<rect x="2" y="2" width="7" height="7"></rect>
<rect x="15" y="15" width="7" height="7"></rect>
<rect x="2" y="15" width="7" height="7"></rect>
<polyline points="15 6 17 8 22 3" stroke="#fff"></polyline>
</g>
</svg> <span>Apply Filters</span> </button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6"> Time At </th>
<th scope="col" class="py-3 px-6"> Bid ID </th>
<th scope="col" class="py-3 px-6"> Offer ID </th>
<th scope="col" class="py-4 px-7"> Bid From </th>
<th scope="col" class="py-3 px-7"> Bid Status </th>
<th scope="col" class="py-3 px-6"> ITX Status </th>
<th scope="col" class="py-3 px-6"> PTX Status </th>
</tr>
</thead>
<tbody>
{% for b in bids %}
<tr class="bg-white border-t hover:bg-gray-50">
<th scope="row" class="flex items-center py-7 px-46 text-gray-900 whitespace-nowrap">
<svg class="w-5 h-5 rounded-full ml-5" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3B82F6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="11"></circle>
<polyline points=" 12,6 12,12 18,12 " stroke="#3B82F6"></polyline>
</g>
</svg>
<div class="pl-3">
<div class="font-semibold text-xs">{{ b[0] }}</div>
</div>
</th>
<td class="py-4 px-6 text-xs monospace"><a href=/bid/{{ b[1] }}>{{ b[1]|truncate(20, True) }}</a></td>
<td class="py-4 px-6 text-xs monospace"><a href=/offer/{{ b[2] }}>{{ b[2]|truncate(20, True) }}</a></td>
<td class="py-4 px-6 text-xs monospace"><a href=/identity/{{ b[6] }}>{{ b[6] }}</a></td>
<td class="py-4 px-6">{{ b[3] }}</td>
<td class="py-4 px-6">{{ b[4] }}</td>
<td class="py-4 px-6">{{ b[5] }}</td>
</tr>
</tbody>
{% endfor %}
</table>
<input type="hidden" name="formid" value="{{ form_id }}">
<input type="hidden" name="pageno" value="{{ filters.page_no }}">
</div>
</div>
<div class="pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5">
<button type="submit" name='pageback' value="Page Back" class="outline-none flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg aria-hidden="true" class="mr-2 w-5 h-5" fill="#556987" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M7.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l2.293 2.293a1 1 0 010 1.414z" clip-rule="evenodd"></path>
</svg> <span>Page Back</span> </button>
</div>
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading">Page: {{ filters.page_no }}</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<button type="submit" name='pageforwards' value="Page Forwards" class="outline-none flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none"> <span>Page Forwards</span>
<svg aria-hidden="true" class="ml-2 w-5 h-5" fill="#556987" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z" clip-rule="evenodd"></path>
</svg>
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,22 +1,158 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<h3>Debug</h3> <section class="bg-white p-5 mt-5">
{% for m in messages %} <div class="flex flex-wrap items-center -m-2">
<p>{{ m }}</p> <div class="w-full md:w-1/2 p-2">
{% endfor %} <ul class="flex flex-wrap items-center gap-x-3 mb-2">
<li>
<a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/debug">Debug</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<section class="py-4">
<div class="container px-4 mx-auto">
<div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighte r">Debug</h2>
<p class="font-semibold text-coolGray-200"></p>
</div>
</div>
</div>
</div>
</section>
{% for m in messages %}
<section class="py-4">
<div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<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 px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6 w-80">Name</th>
<th scope="col" class="py-3">Input</th>
</tr>
</thead>
<form method="post"> <form method="post">
<p> <tr class="bg-white border-t hover:bg-gray-50">
<input name="reinit_xmr" type="submit" value="Reinitialise XMR wallet" > <td class="py-4 pl-5 pr-5 bold">Reinitialise XMR wallet</td>
<input type="hidden" name="formid" value="{{ form_id }}"> <td td class="py-4"><input name="reinit_xmr" type="submit" value="Yes" class="inline-block w-20 py-1 px-2 font-medium text-center text-sm rounded-md shadow-button bg-blue-500 text-white border border-coolGray-200 hover:border-coolGray-300"></td>
</p> <input type="hidden" name="formid" value="{{ form_id }}">
</tr>
</form> </form>
</table>
</div>
</div
</div>
</div>
</div>
</div>
</section>
<!-- todo
{% if result %} {% if result %}
<textarea class="monospace" rows="40" cols="160"> <textarea class="monospace" rows="40" cols="160">
{{ result }} {{ result }}
</textarea> </textarea>
{% endif %} {% endif %}
-->
<p><a href="/">home</a></p> </div>
</body></html> {% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,12 +1,11 @@
<!DOCTYPE html><html lang="en"><head> <!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link type="text/css" media="all" href="/static/css/simple/style.css" rel="stylesheet">
<link rel=icon sizes="32x32" type="image/png" href="/static/images/favicon-32.png"> <link rel=icon sizes="32x32" type="image/png" href="/static/images/favicon-32.png">
<title>{{ title }}</title> <title>{{ title }}</title>
</head> </head>
<body> <body>
<h2>{{ title_str }}</h2> <h2>{{ title_str }}</h2>
<p>Error: {{ message_str }}</p> <p>Info: {{ message_str }}</p>
<p><a href="/">home</a></p> <p><a href="/">home</a></p>
</body> </body>
</html> </html>

View file

@ -1,33 +1,218 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/explorers">Explorers</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<h3>Explorers</h3> <section class="py-4">
{% for m in messages %} <div class="container px-4 mx-auto">
<p>{{ m }}</p> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% endfor %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Explorers</h2>
<p class="font-semibold text-coolGray-200"></p>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% for m in messages %}
<p>
<select name="explorer"><option value="-1"{% if explorer==-1 %} selected{% endif %}>-- Select Explorer --</option>
{% for e in explorers %}
<option value="{{ e[0] }}"{% if explorer==e[0] %} selected{% endif %}>{{ e[1] }}</option>
{% endfor %}
</select><br/>
<select name="action"><option value="-1"{% if action==-1 %} selected{% endif %}>-- Select Action --</option>
{% for a in actions %}
<option value="{{ a[0] }}"{% if action==a[0] %} selected{% endif %}>{{ a[1] }}</option>
{% endfor %}
</select><br/>
<input type="text" name="args"><br/>
<input type="submit" value="Submit">
<input type="hidden" name="formid" value="{{ form_id }}">
</p>
</form>
{% if result %} <section class="py-4">
<textarea class="monospace" rows="40" cols="160"> <div class="container px-4 mx-auto">
{{ result }} <div class="p-6 bg-green-100 border border-green-200 rounded-md">
</textarea> <div class="flex flex-wrap justify-between items-center -m-2">
{% endif %} <div class="flex-1 p-2">
<div class="flex flex-wrap -m-1">
<div class="w-auto p-1">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<p><a href="/">home</a></p> {% endfor %}
</body></html>
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<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 px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<form method="post">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Select</th>
<th scope="col">Action</th>
</tr>
</thead>
<tr class="bg-white border-t">
<td class="py-4 px-6 bold w-96">
<select class="pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="explorer">
<option value="-1" {% if explorer==-1 %} selected{% endif %}>Select Explorer</option>
{% for e in explorers %}
<option value="{{ e[0] }}" {% if explorer==e[0] %} selected{% endif %}>{{ e[1] }}</option>
{% endfor %}
</select>
</td>
<td class="py-4 pr-5">
<select class="pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="action">
<option value="-1" {% if action==-1 %} selected{% endif %}>Select Action</option>
{% for a in actions %}
<option value="{{ a[0] }}" {% if action==a[0] %} selected{% endif %}>{{ a[1] }}</option>
{% endfor %}
</select>
</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">
Arguments:
</td>
<td class="py-4 pr-5">
<input class="appearance-none bg-gray-50 border w-full border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" type="text" name="args" placeholder="Arguments">
</td>
</tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button value="Submit" 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">
<span>Submit</span> </button>
</div>
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
{% if result %}
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Explorer output:</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 pl-5 pr-5">
<textarea class="block p-2.5 text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 w-full monospace" rows="15">
{{ result }}
</textarea>
</td>
</tr>
</table>
</div>
</div>
{% endif %}
</form>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -0,0 +1,57 @@
<section class="bg-white overflow-hidden">
<div class="container px-4 mx-auto">
<div class="flex flex-wrap lg:items-center pt-24 pb-12 -mx-4">
<div class="w-full md:w-3/4 px-4">
<a class="block mb-8 max-w-max" href="#">
<img class="h-8" src="/static/images/logos/basicswap-logo-dark.svg" alt="">
</a>
<p class="mb-12 text-base md:text-lg text-coolGray-400 font-medium md:max-w-sm">Swap cryptocurrencies in a distributed trading environment with no restrictions and no fees.</p>
<div class="mb-12 md:mb-0 flex flex-wrap -mx-3 md:-mx-6">
<div class="w-full md:w-auto p-3 md:py-0 md:px-6"><a class="inline-block text-coolGray-500 hover:text-coolGray-600 font-medium" href="#">Help</a></div>
</div>
</div>
<div class="w-full md:w-1/4 px-4">
</div>
</div>
</div>
<div class="border-b border-coolGray-100"></div>
<div class="container px-4 mx-auto">
<div class="flex flex-wrap items-center py-12 md:pb-32">
<div class="w-full md:w-1/2 mb-6 md:mb-0">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-1 text-sm text-gray-90 font-medium ">© 2022~ BasicSwap</p>
<p class="text-sm text-coolGray-400 font-medium">version {{ version }}</p>
<span class="w-1 h-1 mx-1.5 bg-gray-500 rounded-full"></span>
<p class="text-sm text-coolGray-400 font-medium">GUI version 0.1 </p>
<span class="w-1 h-1 mx-1.5 bg-gray-500 rounded-full"></span>
<p class="mr-2 text-sm font-bold text-gray-90 ">Made with </p>
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24"><g stroke-linecap="round" stroke-width="2" fill="none" stroke="#f80b0b" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M21.243,3.757 c-2.343-2.343-6.142-2.343-8.485,0c-0.289,0.289-0.54,0.6-0.757,0.927c-0.217-0.327-0.469-0.639-0.757-0.927 c-2.343-2.343-6.142-2.343-8.485,0c-2.343,2.343-2.343,6.142,0,8.485L12,21.485l9.243-9.243C23.586,9.899,23.586,6.1,21.243,3.757z"></path></g></svg>
<span class="ml-2 text-sm font-bold text-gray-90 ">by TV and CRZ</span>
</div>
</div>
</div>
<div class="w-full md:w-1/2">
<div class="flex flex-wrap md:justify-end -mx-5">
<div class="px-5">
<a class="inline-block text-coolGray-300 hover:text-coolGray-400" href="#">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9 0C4.0275 0 0 4.13211 0 9.22838C0 13.3065 2.5785 16.7648 6.15375 17.9841C6.60375 18.0709 6.76875 17.7853 6.76875 17.5403C6.76875 17.3212 6.76125 16.7405 6.7575 15.9712C4.254 16.5277 3.726 14.7332 3.726 14.7332C3.3165 13.6681 2.72475 13.3832 2.72475 13.3832C1.9095 12.8111 2.78775 12.8229 2.78775 12.8229C3.6915 12.887 4.16625 13.7737 4.16625 13.7737C4.96875 15.1847 6.273 14.777 6.7875 14.5414C6.8685 13.9443 7.10025 13.5381 7.3575 13.3073C5.35875 13.0764 3.258 12.2829 3.258 8.74709C3.258 7.73988 3.60675 6.91659 4.18425 6.27095C4.083 6.03774 3.77925 5.0994 4.263 3.82846C4.263 3.82846 5.01675 3.58116 6.738 4.77462C7.458 4.56958 8.223 4.46785 8.988 4.46315C9.753 4.46785 10.518 4.56958 11.238 4.77462C12.948 3.58116 13.7017 3.82846 13.7017 3.82846C14.1855 5.0994 13.8818 6.03774 13.7917 6.27095C14.3655 6.91659 14.7142 7.73988 14.7142 8.74709C14.7142 12.2923 12.6105 13.0725 10.608 13.2995C10.923 13.5765 11.2155 14.1423 11.2155 15.0071C11.2155 16.242 11.2043 17.2344 11.2043 17.5341C11.2043 17.7759 11.3617 18.0647 11.823 17.9723C15.4237 16.7609 18 13.3002 18 9.22838C18 4.13211 13.9703 0 9 0Z" fill="currentColor"></path>
</svg>
</a>
</div>
<div class="px-5">
<a class="inline-block text-coolGray-300 hover:text-coolGray-400" href="#">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
</svg>
</a>
</div>
</div>
</div>
</div>
</div>
</section>

View file

@ -1,55 +1,678 @@
<!DOCTYPE html><html lang="en"> <!DOCTYPE html>
<html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
{% if refresh %} {% if refresh %}
<meta http-equiv="refresh" content="{{ refresh }}"> <meta http-equiv="refresh" content="{{ refresh }}">
{% endif %} {% endif %}
<link type="text/css" media="all" href="/static/css/simple/style.css" rel="stylesheet"> <link type="text/css" media="all" href="/static/css/libs/tailwind.min.css" rel="stylesheet">
<link rel=icon sizes="32x32" type="image/png" href="/static/images/favicon-32.png"> <link type="text/css" media="all" href="/static/css/style.css" rel="stylesheet">
<title>{{ title }}</title> <script src="/static/js/main.js"></script>
<script src="/static/js/libs/flowbite.js"></script>
<link rel=icon sizes="32x32" type="image/png" href="/static/images/favicon-32.png">
<title>{{ title }}</title>
</head> </head>
<body> <body>
{% if h2 %}
<h2>{{ h2 }}</h2>
{% endif %}
{% if debug_mode == true %} <section>
<p>Debug mode: Active</p> <nav class="relative bg-gray-800">
{% endif %} <div class="p-6 container flex flex-wrap items-center justify-between items-center mx-auto">
{% if debug_ui_mode == true %} <a class="flex-shrink-0 mr-12 text-2xl text-white font-semibold" href="/"> <img class="h-10" src="/static/images/logos/basicswap-logo.svg" alt="" width="auto"></a>
<p>Debug UI mode: Active</p> <ul class="hidden xl:flex">
{% endif %} <li>
{% if use_tor_proxy == true %} <a class="flex mr-10 items-center text-gray-50 hover:text-gray-100 text-sm" href="/wallets">
<p>Tor mode: Active{% if tor_established == true %}, Connected{% endif %}</p> <svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
{% endif %} <g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M6,3H3C1.895,3,1,3.895,1,5 v0c0,1.105,0.895,2,2,2"></path>
<polyline points=" 6,7 6,1 20,1 20,7 " stroke="#6b7280"></polyline>
<path d="M23,7H3 C1.895,7,1,6.105,1,5v15c0,1.657,1.343,3,3,3h19V7z"></path>
<circle cx="17" cy="15" r="2"></circle>
</g>
</svg> <span>Wallets</span> </a>
</li>
<li>
<a class="flex mr-10 items-center text-gray-50 hover:text-gray-100 text-sm" href="/newoffer">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle cx="5" cy="5" r="4"></circle>
<circle cx="19" cy="19" r="4"></circle>
<polyline data-cap="butt" points="13,5 21,5 21,11 " stroke="#6b7280"></polyline>
<polyline data-cap="butt" points="11,19 3,19 3,13 " stroke="#6b7280"></polyline>
<polyline points=" 16,2 13,5 16,8 " stroke="#6b7280"></polyline>
<polyline points=" 8,16 11,19 8,22 " stroke="#6b7280"></polyline>
</g>
</svg> <span>New Offer</span> </a>
</li>
</ul>
<ul class="hidden xl:flex lg:justify-end lg:items-center lg:space-x-6 mr-6 ml-auto">
<div id="dropdownNavbarLink" data-dropdown-toggle="dropdownNavbar" class="flex justify-between items-center py-2 pr-4 pl-3 w-full text-gray-50 text-sm md:border-0 md:p-0 md:w-auto text-gray-50">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M14,19l2.95,2.95A3.5,3.5,0,0,0,21.9,22l.051-.051h0A3.5,3.5,0,0,0,22,17l-.051-.051L20,15" stroke="#6b7280"></path>
<polyline data-cap="butt" points="11.491 8.866 4.203 1.578 1.661 4.12 8.779 11.238" stroke="#6b7280"></polyline>
<path d="M22.678,4.922,19.6,7.987l-3.6-3.576,3.08-3.066a4.214,4.214,0,0,0-2.259-.307,5.615,5.615,0,0,0-5.133,5.723A4.223,4.223,0,0,0,12,8.4L2.145,17.083a3.419,3.419,0,0,0-.276,4.827c.023.027.047.052.071.078h0a3.286,3.286,0,0,0,4.647.1,3.232,3.232,0,0,0,.281-.3l8.726-9.81a6.717,6.717,0,0,0,2.875.2A5.687,5.687,0,0,0,22.78,8.192,5.088,5.088,0,0,0,22.678,4.922Z"></path>
</g>
</svg> Settings & Tools
<svg class="text-gray-400 ml-4" width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.08335 0.666657C8.75002 0.333323 8.25002 0.333323 7.91669 0.666657L5.00002 3.58332L2.08335 0.666657C1.75002 0.333323 1.25002 0.333323 0.916687 0.666657C0.583354 0.99999 0.583354 1.49999 0.916687 1.83332L4.41669 5.33332C4.58335 5.49999 4.75002 5.58332 5.00002 5.58332C5.25002 5.58332 5.41669 5.49999 5.58335 5.33332L9.08335 1.83332C9.41669 1.49999 9.41669 0.99999 9.08335 0.666657Z" fill="#6b7280"></path>
</svg>
</div>
{% if ws_url %} <!-- dev mode icons on/off -->
<script> {% if debug_mode == true %}
var ws = new WebSocket("{{ ws_url }}"), <ul class="hidden xl:flex"
floating_div = document.createElement('div'); <li>
floating_div.classList.add('floatright'); <div data-tooltip-target="tooltip-DEV" class="ml-5 flex items-center text-gray-50 hover:text-gray-100 text-sm">
messages = document.createElement('ul'); <svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
messages.setAttribute('id', 'ul_updates'); <g stroke-linecap="round" stroke-width="2" fill="none" stroke="#2ad167" stroke-linejoin="round" class="nc-icon-wrapper">
ws.onmessage = function (event) { <circle cx="12" cy="12" r="11"></circle>
let json = JSON.parse(event.data); <path data-cap="butt" d="M9,16a3,3,0,0,0,6,0" stroke="#2ad167"></path>
<circle cx="17" cy="10" r="3" stroke="#2ad167"></circle>
<circle cx="7" cy="10" r="3" stroke="#2ad167"></circle>
<path data-cap="butt" d="M10,10a2,2,0,0,1,4,0" stroke="#2ad167"></path></g>
</svg>
<span data-tooltip-target="tooltip-DEV" ></span> </div> <div class="tooltip-arrow" data-popper-arrow></div>
<div id="tooltip-DEV" 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>Debug mode: Active </p> {% if debug_ui_mode == true %} <p> Debug UI mode: Active </p> {% endif %}
<div class="tooltip-arrow" data-popper-arrow="" style="position: absolute; left: 0px; transform: translate3d(0px, 0px, 0px);"></div>
</div>
</li>
</ul>
{% endif %}
<!-- dev mode icons on/off -->
let event_message = 'Unknown event'; <!-- tor -->
if (json['event'] == 'new_offer') { {% if use_tor_proxy == true %}
event_message = '<a href=/offer/' + json['offer_id'] + '>New offer</a>'; <ul class="hidden xl:flex"
} else <li>
if (json['event'] == 'new_bid') { <a href="/tor">
event_message = '<a href=/bid/' + json['bid_id'] + '>New bid</a> on offer <a href=/offer/' + json['offer_id'] + '>' + json['offer_id'] + '</a>'; <div data-tooltip-target="tooltip-TOR" class="flex items-center text-gray-50 hover:text-gray-100 text-sm">
} else <svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
if (json['event'] == 'bid_accepted') { <g stroke-linecap="round" stroke-width="2" fill="none" stroke="#AA70E4" stroke-linejoin="round">
event_message = '<a href=/bid/' + json['bid_id'] + '>Bid accepted</a>'; <path d="M9,18.8A6.455,6.455,0,0,1,7,14,6.455,6.455,0,0,1,9,9.2" stroke="#AA70E4"></path>
} <path d="M15,18.8A6.455,6.455,0,0,0,17,14a6.455,6.455,0,0,0-2-4.8" stroke="#AA70E4"></path>
<path d="M14,2.256V1H10V2.256A3.949,3.949,0,0,1,7.658,5.891,8.979,8.979,0,0,0,2,14c0,4.971,4.477,9,10,9s10-4.029,10-9a8.978,8.978,0,0,0-5.658-8.109A3.95,3.95,0,0,1,14,2.256Z"></path>
</g>
</svg>
</a>
<span data-tooltip-target="tooltip-DEV" ></span> </div> <div class="tooltip-arrow" data-popper-arrow></div>
<div id="tooltip-TOR" 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">
Tor mode: Active{% if tor_established == true %}, Connected{% endif %}
<div class="tooltip-arrow" data-popper-arrow="" style="position: absolute; left: 0px; transform: translate3d(0px, 0px, 0px);"></div>
</div>
</li>
</ul>
{% endif %}
<!-- tor -->
let messages = document.getElementById('ul_updates'), <!-- dropdown settings & tools -->
message = document.createElement('li'); <div id="dropdownNavbar" class="hidden z-50 w-50 font-normal bg-white divide-y divide-gray-100">
message.innerHTML = event_message; <ul class="py-0 text-sm text-gray-700" aria-labelledby="dropdownLargeButton">
messages.appendChild(message); <li>
}; <a href="/settings" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">Settings</span>
floating_div.appendChild(messages); <svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
document.body.appendChild(floating_div); <g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
</script> <circle cx="12" cy="12" r="3" stroke="#6b7280"></circle>
{% endif %} <path d="M20,12a8.049,8.049,0,0,0-.188-1.713l2.714-2.055-2-3.464L17.383,6.094a7.987,7.987,0,0,0-2.961-1.719L14,1H10L9.578,4.375A7.987,7.987,0,0,0,6.617,6.094L3.474,4.768l-2,3.464,2.714,2.055a7.9,7.9,0,0,0,0,3.426L1.474,15.768l2,3.464,3.143-1.326a7.987,7.987,0,0,0,2.961,1.719L10,23h4l.422-3.375a7.987,7.987,0,0,0,2.961-1.719l3.143,1.326,2-3.464-2.714-2.055A8.049,8.049,0,0,0,20,12Z"></path>
</g>
</svg> Settings </a>
</li>
{% if debug_mode == true %}
<li>
<a href="/rpc" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">RPC</span>
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<rect x="1" y="2" width="22" height="20"></rect>
<line x1="1" y1="6" x2="23" y2="6"></line>
<polyline points=" 5,11 7,13 5,15 " stroke="#6b7280"></polyline>
<line x1="10" y1="15" x2="14" y2="15" stroke="#6b7280"></line>
<line x1="6" y1="2" x2="6" y2="6"></line>
</g>
</svg> RPC Console </a>
</li>
{% endif %}
{% if debug_mode == true %}
<li>
<a href="/debug" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">Debug</span>
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path data-cap="butt" d="M5.29,10H4A3,3,0,0,1,1,7V6" stroke="#6b7280"></path>
<path data-cap="butt" d="M5.29,18H4a3,3,0,0,0-3,3v1" stroke="#6b7280"></path>
<path data-cap="butt" d="M8,6.255V5a4,4,0,0,1,4-4h0a4,4,0,0,1,4,4V6.255" stroke="#6b7280"></path>
<line x1="5" y1="14" x2="1" y2="14" stroke="#6b7280"></line> <path data-cap="butt" d="M18.71,10H20a3,3,0,0,0,3-3V6" stroke="#6b7280"></path>
<path data-cap="butt" d="M18.71,18H20a3,3,0,0,1,3,3v1" stroke="#6b7280"></path> <line x1="19" y1="14" x2="23" y2="14" stroke="#6b7280"></line>
<path d="M19,16A7,7,0,0,1,5,16V12a7,7,0,0,1,14,0Z"></path></g></svg> Debug </a>
</li>
{% endif %}
{% if debug_mode == true %}
<li>
<a href="/explorers" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">Explorers</span>
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<line x1="22" y1="22" x2="15.656" y2="15.656" stroke="#6b7280"></line>
<circle cx="10" cy="10" r="8"></circle>
</g>
</svg> Explorers </a>
</li>
{% endif %}
<li>
<a href="/smsgaddresses" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">Settings</span>
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path data-cap="butt" d="M11.992,11.737,14.2,13.4A2,2,0,0,1,15,15v1H7V15a2,2,0,0,1,.8-1.6l2.208-1.663" stroke="#6b7280"></path>
<rect x="9" y="7" width="4" height="5" rx="2" ry="2" stroke="#6b7280"></rect>
<path d="M2,1H18a2,2,0,0,1,2,2V21a2,2,0,0,1-2,2H2Z"></path>
<line x1="23" y1="5" x2="23" y2="9" stroke="#6b7280"></line>
</g>
</svg> SMSG Addresses </a>
</li>
<li>
<a href="/watched" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">Automation Strategies</span>
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M1.373,13.183a2.064,2.064,0,0,1,0-2.366C2.946,8.59,6.819,4,12,4s9.054,4.59,10.627,6.817a2.064,2.064,0,0,1,0,2.366C21.054,15.41,17.181,20,12,20S2.946,15.41,1.373,13.183Z"></path>
<circle cx="12" cy="12" r="4" stroke="#6b7280"></circle>
</g>
</svg> Watch Outputs <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_watched_outputs }}</span> </a>
</li>
{% if debug_mode == true %}
<li>
<a href="/automation" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">Automation Strategies</span>
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<line data-cap="butt" x1="5" y1="1" x2="5" y2="6" stroke="#6b7280"></line>
<line x1="3" y1="1" x2="7" y2="1" stroke="#6b7280"> </line>
<line data-cap="butt" x1="19" y1="1" x2="19" y2="6" stroke="#6b7280"></line>
<line x1="17" y1="1" x2="21" y2="1" stroke="#6b7280"></line>
<rect x="6" y="15" width="12" height="4" stroke="#6b7280"></rect>
<line data-cap="butt" x1="10" y1="19" x2="10" y2="15" stroke="#6b7280"></line>
<line data-cap="butt" x1="14" y1="19" x2="14" y2="15" stroke="#6b7280"></line>
<line x1="6" y1="11" x2="8" y2="11" stroke="#6b7280"></line>
<line x1="16" y1="11" x2="18" y2="11" stroke="#6b7280"> </line>
<polygon points="23 6 5 6 1 6 1 23 23 23 23 6"></polygon>
</g>
</svg> Automation Strategies</a>
</li>
{% endif %}
</ul>
<div class="text-sm text-gray-700">
<a href="/shutdown/{{ shutdown_token }}" class="flex items-center block py-4 px-4 hover:bg-gray-100"> <span class="sr-only">Shutdown</span>
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<line data-cap="butt" x1="11" y1="10" x2="22" y2="10" stroke="#6b7280"></line>
<polyline points="18 6 22 10 18 14" stroke="#6b7280"></polyline>
<polyline data-cap="butt" points="13 13 13 17 8 17"></polyline>
<polyline data-cap="butt" points="1 2 8 7.016 8 22 1 17 1 2 13 2 13 7"></polyline>
</g>
</svg> Shutdown </a>
</div>
</div>
<!-- dropdown settings & tools -->
{% if debug_mode == true %}
<!-- notifications (todo) -->
<button id="dropdownNotificationButton" data-dropdown-toggle="dropdownNotification" class="inline-flex items-center text-sm font-medium text-center text-gray-500 focus:outline-none" type="button">
<svg class="h-5 w-5" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 11.18V8C13.9986 6.58312 13.4958 5.21247 12.5806 4.13077C11.6655 3.04908 10.3971 2.32615 9 2.09V1C9 0.734784 8.89464 0.48043 8.70711 0.292893C8.51957 0.105357 8.26522 0 8 0C7.73478 0 7.48043 0.105357 7.29289 0.292893C7.10536 0.48043 7 0.734784 7 1V2.09C5.60294 2.32615 4.33452 3.04908 3.41939 4.13077C2.50425 5.21247 2.00144 6.58312 2 8V11.18C1.41645 11.3863 0.910998 11.7681 0.552938 12.2729C0.194879 12.7778 0.00173951 13.3811 0 14V16C0 16.2652 0.105357 16.5196 0.292893 16.7071C0.48043 16.8946 0.734784 17 1 17H4.14C4.37028 17.8474 4.873 18.5954 5.5706 19.1287C6.26819 19.6621 7.1219 19.951 8 19.951C8.8781 19.951 9.73181 19.6621 10.4294 19.1287C11.127 18.5954 11.6297 17.8474 11.86 17H15C15.2652 17 15.5196 16.8946 15.7071 16.7071C15.8946 16.5196 16 16.2652 16 16V14C15.9983 13.3811 15.8051 12.7778 15.4471 12.2729C15.089 11.7681 14.5835 11.3863 14 11.18ZM4 8C4 6.93913 4.42143 5.92172 5.17157 5.17157C5.92172 4.42143 6.93913 4 8 4C9.06087 4 10.0783 4.42143 10.8284 5.17157C11.5786 5.92172 12 6.93913 12 8V11H4V8ZM8 18C7.65097 17.9979 7.30857 17.9045 7.00683 17.7291C6.70509 17.5536 6.45451 17.3023 6.28 17H9.72C9.54549 17.3023 9.29491 17.5536 8.99317 17.7291C8.69143 17.9045 8.34903 17.9979 8 18ZM14 15H2V14C2 13.7348 2.10536 13.4804 2.29289 13.2929C2.48043 13.1054 2.73478 13 3 13H13C13.2652 13 13.5196 13.1054 13.7071 13.2929C13.8946 13.4804 14 13.7348 14 14V15Z" fill="currentColor"></path>
</svg>
<div class="flex relative">
<!-- green -->
<div class="inline-flex relative -top-2 right-2 w-3 h-3 bg-green-500 rounded-full border-2 border-white"></div>
<!-- Red <div class="inline-flex relative -top-2 right-3 w-3 h-3 bg-red-500 rounded-full border-2 border-white"></div> -->
</div>
</button>
<!-- Dropdown menu -->
<div id="dropdownNotification" class="hidden z-50 w-full max-w-sm bg-white rounded divide-y divide-gray-100" aria-labelledby="dropdownNotificationButton">
<div class="block py-2 px-4 font-medium text-center text-gray-700 bg-gray-50"> Notifications </div>
<div class="divide-y divide-gray-100">
<a href="#" class="flex py-3 px-4 hover:bg-gray-100">
<div class="flex-shrink-0"> <img class="w-11 h-11 rounded-full" src="/static/images/New_Offer.png" alt="New Offer"> </div>
<div class="pl-3 w-full">
<div class="text-gray-500 text-sm mb-1.5"><span class="font-semibold text-gray-900">NEW OFFER</span> on <span class="font-medium text-gray-900">PART->XMR</span></div>
<div class="text-xs text-blue-600">a few moments ago</div>
</div>
</a>
<a href="#" class="flex py-3 px-4 hover:bg-gray-100">
<div class="flex-shrink-0"> <img class="w-11 h-11 rounded-full" src="/static/images/Bid_accepted.png" alt="New Accepted"> </div>
<div class="pl-3 w-full">
<div class="text-gray-500 text-sm mb-1.5"><span class="font-semibold text-gray-900">NEW BID</span> on offer <span class="font-medium text-gray-900">PART->BTC</span></div>
<div class="text-xs text-blue-600">10 minutes ago</div>
</div>
</a>
<a href="#" class="flex py-3 px-4 hover:bg-gray-100">
<div class="flex-shrink-0"> <img class="w-11 h-11 rounded-full" src="/static/images/Bid_accepted.png" alt="Bid Accepted"> </div>
<div class="pl-3 w-full">
<div class="text-gray-500 text-sm mb-1.5"><span class="font-semibold text-gray-900">BID ACCEPTED</span> on <span class="font-medium text-gray-900">PART->BTC</span> 0.0045 BTC</div>
<div class="text-xs text-blue-600">15 minutes ago</div>
</div>
</a>
<a href="#" class="flex py-3 px-4 hover:bg-gray-100">
<div class="flex-shrink-0"> <img class="w-11 h-11 rounded-full" src="/static/images/coins/Bitcoin.png" alt="Bitcoin"> </div>
<div class="pl-3 w-full">
<div class="text-gray-500 text-sm mb-1.5"><span class="font-semibold text-gray-900">BTC DEPOSIT</span> of <span class="font-medium text-gray-900">0.000493 BTC</span> sucesfull.</div>
<div class="text-xs text-blue-600">15 minutes ago</div>
</div>
</a>
<a href="#" class="flex py-3 px-4 hover:bg-gray-100">
<div class="flex-shrink-0"> <img class="w-11 h-11 rounded-full" src="/static/images/coins/Particl.png" alt="Particl"> </div>
<div class="pl-3 w-full">
<div class="text-gray-500 text-sm mb-1.5"><span class="font-semibold text-gray-900">PART WITHDRAW</span> of <span class="font-medium text-gray-900">39.494 PART</span> sucesfull.</div>
<div class="text-xs text-blue-600">30 minutes ago</div>
</div>
</a>
</div>
<a href="#" class="block py-2 text-sm font-medium text-center text-gray-900 bg-gray-50 hover:bg-gray-100">
<div class="inline-flex items-center ">
<svg class="mr-2 w-4 h-4 text-gray-500" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M1.373,13.183a2.064,2.064,0,0,1,0-2.366C2.946,8.59,6.819,4,12,4s9.054,4.59,10.627,6.817a2.064,2.064,0,0,1,0,2.366C21.054,15.41,17.181,20,12,20S2.946,15.41,1.373,13.183Z"></path>
<circle cx="12" cy="12" r="4" stroke="#6b7280"></circle>
</g>
</svg> View all
</div>
</a>
</div>
{% endif %}
<!-- notifications (todo) -->
<!-- connected & sync (todo) -->
<div class="flex mr-2 items-center text-gray-50 hover:text-gray-100 text-sm">
<div class="flex-shrink-0 w-px h-10 bg-gray-600 ml-4 mr-5"></div>
<svg class="text-gray-500 w-5 h-5 mr-4" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#0fe97f" stroke-linejoin="round">
<g class="nc-loop-ripple-24-icon-o">
<circle cx="12" cy="12" r="11"></circle>
<circle cx="12" cy="12" r="11" stroke="#0fe97f"></circle>
</g>
<style>
.nc-loop-ripple-24-icon-o {
--animation-duration: 2.2s
}
.nc-loop-ripple-24-icon-o * {
transform-origin: 50% 50%;
animation: nc-loop-ripple-anim var(--animation-duration) infinite cubic-bezier(.215, .61, .355, 1)
}
.nc-loop-ripple-24-icon-o:nth-child(2) {
animation-delay: calc(var(--animation-duration)/-2)
}
@keyframes nc-loop-ripple-anim {
0% {
opacity: 1;
transform: scale(.2)
}
100% {
opacity: 0;
transform: scale(1)
}
}
</style>
</g>
</svg> <span class="text-cap">{% if h3 %} {{ h3 }} {% endif %}</span>
</div>
<!-- connected & sync (todo) -->
</li>
</ul>
<div class="hidden xl:block"> </div>
<!-- mobile menu -->
<div class="ml-auto flex xl:hidden">
<button class="navbar-burger flex items-center rounded focus:outline-none">
<svg class="text-white bg-blue-500 hover:bg-blue-600 block h-8 w-8 p-2 rounded" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill="currentColor">
<title>Mobile Menu</title>
<path d="M0 3h20v2H0V3zm0 6h20v2H0V9zm0 6h20v2H0v-2z"></path>
</svg>
</button>
</div>
<!-- mobile menu -->
</div>
<div class="hidden xl:block py-5 px-6 bg-gray-50 border-b">
<div class="flex items-center container flex flex-wrap items-center justify-between items-center mx-auto">
<ul class="flex items-center">
<li>
<a class="flex mr-10 items-center text-sm text-gray-500 hover:text-gray-600" href="/active">
<svg class="text-gray-100 w-5 h-5 ml-7 mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle data-cap="butt" cx="12" cy="12" r="3" stroke="#6b7280"></circle>
<polyline points="16.071 5.341 21.763 6.927 21.034 1.13"></polyline>
<path data-cap="butt" d="M1,12A11,11,0,0,1,21.763,6.927"></path>
<polyline points="7.929 18.659 2.237 17.073 2.966 22.87"></polyline>
<path data-cap="butt" d="M23,12A11,11,0,0,1,2.237,17.073"></path>
</g>
</svg> <span>Swaps in Progress </span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_swapping }}</span> </a>
</li>
<div class="flex-shrink-0 w-px h-10 bg-gray-300 mr-10"></div>
<li>
<a class="flex mr-9 items-center text-sm text-gray-500 hover:text-gray-600" href="/offers">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<rect x="3" y="1" width="18" height="22"></rect>
<line x1="12" y1="8" x2="12" y2="16" stroke="#6b7280"></line>
<line x1="8" y1="14" x2="8" y2="16" stroke="#6b7280"></line>
<line x1="16" y1="11" x2="16" y2="16" stroke="#6b7280"> </line>
</g>
</svg> <span>Network Offers</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_network_offers }}</span> </a>
</li>
<li>
<a class="flex mr-5 items-center text-sm text-gray-500 hover:text-gray-600" href="/sentoffers">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle cx="5" cy="5" r="4"></circle>
<circle cx="19" cy="19" r="4"></circle>
<polyline data-cap="butt" points="13,5 21,5 21,11 " stroke="#6b7280"></polyline>
<polyline data-cap="butt" points="11,19 3,19 3,13 " stroke="#6b7280"></polyline>
<polyline points=" 16,2 13,5 16,8 " stroke="#6b7280"></polyline>
<polyline points=" 8,16 11,19 8,22 " stroke="#6b7280"></polyline>
</g>
</svg> <span>Sent Offers</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_sent_offers }}</span> </a>
</li>
<div class="flex-shrink-0 w-px h-10 bg-gray-300 ml-4 mr-10"></div>
<li>
<a class="flex mr-10 items-center text-sm text-gray-500 hover:text-gray-600" href="/availablebids">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle cx="12" cy="12" r="11"></circle>
<polyline points=" 12,6 12,12 18,12 " stroke="#6b7280"></polyline>
</g>
</svg> <span>Available Bids</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_available_bids }}</span> </a>
</li>
<li>
<a class="flex mr-10 items-center text-sm text-gray-500 hover:text-gray-600" href="/receivedbids">
<svg class="text-gray-100 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M2,16v4a2,2,0,0,0,2,2H20a2,2,0,0,0,2-2V16"> </path>
<line data-cap="butt" x1="12" y1="1" x2="12" y2="16" stroke="#6b7280"></line>
<polyline points="7 11 12 16 17 11" stroke="#6b7280"></polyline>
</g>
</svg> <span>Received Bids</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_recv_bids }}</span> </a>
</li>
<li>
<a class="flex mr-10 items-center text-sm text-gray-500 hover:text-gray-600" href="/sentbids">
<svg class="text-gray-100 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M2,16v4a2,2,0,0,0,2,2H20a2,2,0,0,0,2-2V16"></path>
<line data-cap="butt" x1="12" y1="17" x2="12" y2="2" stroke="#6b7280"></line>
<polyline points="17 7 12 2 7 7" stroke="#6b7280"></polyline>
</g>
</svg> <span>Sent Bids</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_sent_bids }}</span> </a>
</li>
</ul>
</div>
</div>
</nav>
<!-- mobile sidebar -->
<div class="hidden navbar-menu fixed top-0 left-0 bottom-0 w-3/4 lg:w-80 sm:max-w-xs z-50">
<div class="navbar-backdrop fixed inset-0 bg-gray-800 opacity-10"></div>
<nav class="relative flex flex-col pt-6 pb-8 h-full w-full bg-gray-800 overflow-y-auto">
<div class="flex w-full items-center px-6 pb-6 mb-6 lg:border-b border-gray-700">
<a class="text-xl text-white font-semibold" href="/"> <img class="h-8" src="/static/images/logos/basicswap-logo.svg" alt="" width="auto"></a>
</div>
<div class="px-4 pb-6">
<h3 class="mb-2 text-xs uppercase text-gray-500 font-medium">Wallet</h3>
<ul class="mb-8 text-sm font-medium">
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/wallets"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M6,3H3C1.895,3,1,3.895,1,5 v0c0,1.105,0.895,2,2,2"></path>
<polyline points=" 6,7 6,1 20,1 20,7 " stroke="#6b7280"></polyline>
<path d="M23,7H3 C1.895,7,1,6.105,1,5v15c0,1.657,1.343,3,3,3h19V7z"></path>
<circle cx="17" cy="15" r="2"></circle>
</g>
</svg>
</span> <span>Wallets</span> <span class="inline-block ml-auto">
</span> </a>
</li>
</ul>
<h3 class="mb-2 text-xs uppercase text-gray-500 font-medium">Exchange</h3>
<ul class="text-sm font-medium">
<li>
<a class="flex items-center pl-3 py-3 pr-2 text-gray-50 hover:bg-gray-900 rounded" href="/newoffer"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle cx="5" cy="5" r="4"></circle>
<circle cx="19" cy="19" r="4"></circle>
<polyline data-cap="butt" points="13,5 21,5 21,11 " stroke="#6b7280"></polyline>
<polyline data-cap="butt" points="11,19 3,19 3,13 " stroke="#6b7280"></polyline>
<polyline points=" 16,2 13,5 16,8 " stroke="#6b7280"></polyline>
<polyline points=" 8,16 11,19 8,22 " stroke="#6b7280"></polyline>
</g>
</svg>
</span> <span>New Offer</span> </a>
</li>
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/active"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle data-cap="butt" cx="12" cy="12" r="3" stroke="#6b7280"></circle>
<polyline points="16.071 5.341 21.763 6.927 21.034 1.13"></polyline>
<path data-cap="butt" d="M1,12A11,11,0,0,1,21.763,6.927"></path>
<polyline points="7.929 18.659 2.237 17.073 2.966 22.87"></polyline>
<path data-cap="butt" d="M23,12A11,11,0,0,1,2.237,17.073"></path>
</g>
</svg>
</span> <span>Swaps in Progress</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_swapping }}</span> </a>
</li>
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/offers"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<rect x="3" y="1" width="18" height="22"></rect>
<line x1="12" y1="8" x2="12" y2="16" stroke="#6b7280"></line>
<line x1="8" y1="14" x2="8" y2="16" stroke="#6b7280"></line>
<line x1="16" y1="11" x2="16" y2="16" stroke="#6b7280"> </line>
</g>
</svg>
</span> <span>Network Offers</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_network_offers }}</span> </a>
</li>
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="sentoffers"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle cx="5" cy="5" r="4"></circle>
<circle cx="19" cy="19" r="4"></circle>
<polyline data-cap="butt" points="13,5 21,5 21,11 " stroke="#6b7280"></polyline>
<polyline data-cap="butt" points="11,19 3,19 3,13 " stroke="#6b7280"></polyline>
<polyline points=" 16,2 13,5 16,8 " stroke="#6b7280"></polyline>
<polyline points=" 8,16 11,19 8,22 " stroke="#6b7280"></polyline>
</g>
</svg>
</span> <span>Sent Offers</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_sent_offers }}</span> </a>
</li>
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/availablebids"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle cx="12" cy="12" r="11"></circle>
<polyline points=" 12,6 12,12 18,12 " stroke="#6b7280"></polyline>
</g>
</svg>
</span> <span>Available Bids</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_available_bids }}</span> </a>
</li>
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/receivedbids"> <span class="inline-block mr-3">
<svg class="text-gray-100 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M2,16v4a2,2,0,0,0,2,2H20a2,2,0,0,0,2-2V16"> </path>
<line data-cap="butt" x1="12" y1="1" x2="12" y2="16" stroke="#6b7280"></line>
<polyline points="7 11 12 16 17 11" stroke="#6b7280"></polyline>
</g>
</svg>
</span> <span>Received Bids</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_recv_bids }}</span> </a>
</li>
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/sentbids"> <span class="inline-block mr-3">
<svg class="text-gray-100 w-5 h-5 mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M2,16v4a2,2,0,0,0,2,2H20a2,2,0,0,0,2-2V16"></path>
<line data-cap="butt" x1="12" y1="17" x2="12" y2="2" stroke="#6b7280"></line>
<polyline points="17 7 12 2 7 7" stroke="#6b7280"></polyline>
</g>
</svg>
</span> <span>Sent Bids</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_sent_bids }}</span> </a>
</li>
</ul>
<h3 class="mb-2 text-xs uppercase text-gray-500 font-medium mt-5">Settings</h3>
<ul class="text-sm font-medium">
<li>
<a class="flex items-center pl-3 py-3 pr-2 text-gray-50 hover:bg-gray-900 rounded" href="/settings"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<circle cx="12" cy="12" r="3" stroke="#6b7280"></circle>
<path d="M20,12a8.049,8.049,0,0,0-.188-1.713l2.714-2.055-2-3.464L17.383,6.094a7.987,7.987,0,0,0-2.961-1.719L14,1H10L9.578,4.375A7.987,7.987,0,0,0,6.617,6.094L3.474,4.768l-2,3.464,2.714,2.055a7.9,7.9,0,0,0,0,3.426L1.474,15.768l2,3.464,3.143-1.326a7.987,7.987,0,0,0,2.961,1.719L10,23h4l.422-3.375a7.987,7.987,0,0,0,2.961-1.719l3.143,1.326,2-3.464-2.714-2.055A8.049,8.049,0,0,0,20,12Z"></path>
</g>
</svg>
</span> <span>Settings</span> </a>
</li>
{% if debug_mode == true %}
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/rpc"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<rect x="1" y="2" width="22" height="20"></rect>
<line x1="1" y1="6" x2="23" y2="6"></line>
<polyline points=" 5,11 7,13 5,15 " stroke="#6b7280"></polyline>
<line x1="10" y1="15" x2="14" y2="15" stroke="#6b7280"></line>
<line x1="6" y1="2" x2="6" y2="6"></line>
</g>
</svg>
</span> <span>RPC Console</span> </a>
</li>
{% endif %}
{% if debug_mode == true %}
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/debug"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round" class="nc-icon-wrapper">
<path data-cap="butt" d="M5.29,10H4A3,3,0,0,1,1,7V6" stroke="#6b7280"></path>
<path data-cap="butt" d="M5.29,18H4a3,3,0,0,0-3,3v1" stroke="#6b7280"></path>
<path data-cap="butt" d="M8,6.255V5a4,4,0,0,1,4-4h0a4,4,0,0,1,4,4V6.255" stroke="#6b7280"></path>
<line x1="5" y1="14" x2="1" y2="14" stroke="#6b7280"></line> <path data-cap="butt" d="M18.71,10H20a3,3,0,0,0,3-3V6" stroke="#6b7280"></path>
<path data-cap="butt" d="M18.71,18H20a3,3,0,0,1,3,3v1" stroke="#6b7280"></path> <line x1="19" y1="14" x2="23" y2="14" stroke="#6b7280"></line>
<path d="M19,16A7,7,0,0,1,5,16V12a7,7,0,0,1,14,0Z"></path></g></svg>
</span> <span>Debug</span> </a>
</li>
{% endif %}
{% if debug_mode == true %}
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/explorers"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<line x1="22" y1="22" x2="15.656" y2="15.656" stroke="#6b7280"></line>
<circle cx="10" cy="10" r="8"></circle>
</g>
</svg>
</span> <span>Explorers</span> </a>
</li>
{% endif %}
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/smsgaddresses"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path data-cap="butt" d="M11.992,11.737,14.2,13.4A2,2,0,0,1,15,15v1H7V15a2,2,0,0,1,.8-1.6l2.208-1.663" stroke="#6b7280"></path>
<rect x="9" y="7" width="4" height="5" rx="2" ry="2" stroke="#6b7280"></rect>
<path d="M2,1H18a2,2,0,0,1,2,2V21a2,2,0,0,1-2,2H2Z"></path>
<line x1="23" y1="5" x2="23" y2="9" stroke="#6b7280"></line>
</g>
</svg>
</span> <span>SMSG Addresses</span> </a>
</li>
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/watched"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<path d="M1.373,13.183a2.064,2.064,0,0,1,0-2.366C2.946,8.59,6.819,4,12,4s9.054,4.59,10.627,6.817a2.064,2.064,0,0,1,0,2.366C21.054,15.41,17.181,20,12,20S2.946,15.41,1.373,13.183Z"></path>
<circle cx="12" cy="12" r="4" stroke="#6b7280"></circle>
</g>
</svg>
</span> <span>Wached Outputs</span> <span class="inline-flex justify-center items-center text-xs font-semibold ml-3 mr-2 px-2.5 py-1 font-small text-white bg-blue-500 rounded-full">{{ summary.num_watched_outputs }}</span></a>
</li>
{% if debug_mode == true %}
<li>
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/automation"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<line data-cap="butt" x1="5" y1="1" x2="5" y2="6" stroke="#6b7280"></line>
<line x1="3" y1="1" x2="7" y2="1" stroke="#6b7280"> </line>
<line data-cap="butt" x1="19" y1="1" x2="19" y2="6" stroke="#6b7280"></line>
<line x1="17" y1="1" x2="21" y2="1" stroke="#6b7280"></line>
<rect x="6" y="15" width="12" height="4" stroke="#6b7280"></rect>
<line data-cap="butt" x1="10" y1="19" x2="10" y2="15" stroke="#6b7280"></line>
<line data-cap="butt" x1="14" y1="19" x2="14" y2="15" stroke="#6b7280"></line>
<line x1="6" y1="11" x2="8" y2="11" stroke="#6b7280"></line>
<line x1="16" y1="11" x2="18" y2="11" stroke="#6b7280"> </line>
<polygon points="23 6 5 6 1 6 1 23 23 23 23 6"></polygon>
</g>
</svg>
</span> <span>Automation Strategies</span> </a>
</li>
{% endif %}
{% if use_tor_proxy == true %}
<li>
<a class="flex items-center pl-3 py-3 pr-2 text-gray-50 hover:bg-gray-900 rounded" href="/tor"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#AA70E4" stroke-linejoin="round">
<path d="M9,18.8A6.455,6.455,0,0,1,7,14,6.455,6.455,0,0,1,9,9.2" stroke="#AA70E4"></path>
<path d="M15,18.8A6.455,6.455,0,0,0,17,14a6.455,6.455,0,0,0-2-4.8" stroke="#AA70E4"></path>
<path d="M14,2.256V1H10V2.256A3.949,3.949,0,0,1,7.658,5.891,8.979,8.979,0,0,0,2,14c0,4.971,4.477,9,10,9s10-4.029,10-9a8.978,8.978,0,0,0-5.658-8.109A3.95,3.95,0,0,1,14,2.256Z"></path>
</g>
</svg>
</span> <span>TOR</span> </a>
</li>
{% endif %}
</ul>
<div class="pt-8 text-sm font-medium">
<a class="flex items-center pl-3 py-3 pr-4 text-gray-50 hover:bg-gray-900 rounded" href="/shutdown/{{ shutdown_token }}"> <span class="inline-block mr-3">
<svg class="text-gray-500 w-5 h-5 mr-3" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#6b7280" stroke-linejoin="round">
<line data-cap="butt" x1="11" y1="10" x2="22" y2="10" stroke="#6b7280"></line>
<polyline points="18 6 22 10 18 14" stroke="#6b7280"></polyline>
<polyline data-cap="butt" points="13 13 13 17 8 17"></polyline>
<polyline data-cap="butt" points="1 2 8 7.016 8 22 1 17 1 2 13 2 13 7"></polyline>
</g>
</svg>
</span> <span>Shutdown</span> </a>
</div>
</div>
</nav>
</div>
<!-- mobile sidebar -->
</section>
{% if ws_url %}
<script>
var ws = new WebSocket("{{ ws_url }}"),
floating_div = document.createElement('div');
floating_div.classList.add('floatright');
messages = document.createElement('ul');
messages.setAttribute('id', 'ul_updates');
ws.onmessage = function (event) {
let json = JSON.parse(event.data);
let event_message = 'Unknown event';
if (json['event'] == 'new_offer') {
event_message = '<a href=/offer/' + json['offer_id'] + '>New offer</a>';
} else
if (json['event'] == 'new_bid') {
event_message = '<a href=/bid/' + json['bid_id'] + '>New bid</a> on offer <a href=/offer/' + json['offer_id'] + '>' + json['offer_id'] + '</a>';
} else
if (json['event'] == 'bid_accepted') {
event_message = '<a href=/bid/' + json['bid_id'] + '>Bid accepted</a>';
}
let messages = document.getElementById('ul_updates'),
message = document.createElement('li');
message.innerHTML = event_message;
messages.appendChild(message);
};
floating_div.appendChild(messages);
document.body.appendChild(floating_div);
</script>
{% endif %}

View file

@ -1,38 +1,184 @@
{% include 'header.html' %} {% include 'header.html' %}
<h3>Identity {{ data.identity_address }}</h3> <div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Identity</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/identity/{{ data.identity_address }}">ADDRESS: {{ data.identity_address }}</a></li>
</ul>
</div>
</div>
</section>
{% for m in messages %} <section class="py-4">
<p>{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Identity</h2>
<p class="font-semibold text-coolGray-200">Address: {{ data.identity_address }}</p>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% for m in messages %}
<table> <section class="py-4">
<div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% if data.show_edit_form %} {% endfor %}
<tr><td>Label</td><td><input type="text" id="label" name="label" value="{{ data.label }}"></td></tr>
{% else %}
<tr><td>Label</td><td>{{ data.label }}</td></tr>
{% endif %}
<tr><td>Successful Sent Bids</td><td>{{ data.num_sent_bids_successful }}</td></tr> <section class="bg-white">
<tr><td>Successful Received Bids</td><td>{{ data.num_recv_bids_successful }}</td></tr> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<tr><td>Rejected Sent Bids</td><td>{{ data.num_sent_bids_rejected }}</td></tr> <div class="pb-6 border-coolGray-100">
<tr><td>Rejected Received Bids</td><td>{{ data.num_recv_bids_rejected }}</td></tr> <div class="flex flex-wrap items-center justify-between -m-2">
<tr><td>Failed Sent Bids</td><td>{{ data.num_sent_bids_failed }}</td></tr> <div class="w-full pt-2">
<tr><td>Failed Received Bids</td><td>{{ data.num_recv_bids_failed }}</td></tr>
</table>
{% if data.show_edit_form %} <div class="container px-0 mx-auto mt-5">
<input type="submit" name="apply" value="Apply"> <div class="overflow-x-auto relative border sm:rounded-lg">
<input type="submit" name="cancel" value="Cancel">
{% else %}
<input type="submit" name="edit" value="Edit">
{% endif %}
<input type="hidden" name="formid" value="{{ form_id }}"> <form method="post">
</form>
<p><a href="/">home</a></p> <table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
</body></html>
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Item</th>
<th scope="col">Data </th>
</tr>
</thead>
{% if data.show_edit_form %}
<tr>
<td class="py-4 px-6 bold">Label</td>
<td class="py-4"><input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" type="text" id="label" name="label" value="{{ data.label }}"></td>
</tr>
{% else %}
<tr>
<td class="py-4 px-6 bold">Label</td>
<td class="py-4">{{ data.label }}</td>
</tr>
{% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">Successful Sent Bids</td>
<td>{{ data.num_sent_bids_successful }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Successful Received Bids</td>
<td>{{ data.num_recv_bids_successful }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Rejected Sent Bids</td>
<td>{{ data.num_sent_bids_rejected }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Rejected Received Bids</td>
<td>{{ data.num_recv_bids_rejected }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Failed Sent Bids</td>
<td>{{ data.num_sent_bids_failed }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Failed Received Bids</td>
<td>{{ data.num_recv_bids_failed }}</td>
</tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
{% if data.show_edit_form %}
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="apply" value="Apply" 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">
<span>Apply</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="cancel" value="Cancel" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Cancel</span> </button>
</div>
{% else %}
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="edit" value="edit" 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">
<span>Edit</span> </button>
</div>
{% endif %}
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
</form>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,32 +1,40 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<p> <section class="py-24 bg-white">
{% if refresh %} <div class="container px-4 mx-auto">
Page Refresh: {{ refresh }} seconds<br/> <div class="text-center">
{% endif %} <div class="inline-block mb-6 px-3 py-1 font-semibold bg-blue-100 rounded-full">
Version: {{ version }} <div class="flex flex-wrap items-center-m-1">
</p> <div class="w-auto p-1"><a class="text-sm" href="">BasicSwap version: {{ version }}</a></div>
<p> </div>
<a href="/wallets">View Wallets</a><br/> </div>
<a href="/settings">Settings</a><br/> <h3 class="mb-10 mx-auto text-3xl md:text-4xl leading-tight text-coolGray-900 font-bold tracking-tighter max-w-5xl">Welcome to BasicSwap DEX</h3>
<a href="/rpc">RPC Console</a><br/> <div class="relative mb-10 mx-auto max-w-max">
<a href="/explorers">Explorers</a><br/> <img class="absolute top-1/2 transform -translate-y-1/2 w-1/2 md:w-auto text-yellow-400" src="/static/images/elements/circle-violet.svg" alt="">
<a href="/smsgaddresses">SMSG Addresses</a><br/> <img class="absolute top-1/2 right-0 transform -translate-y-1/2 w-1/4 md:w-auto text-blue-500" src="/static/images/elements/dots-blue.svg" alt="">
<br/> <img class="absolute p-7 -mt-1 left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 w-10/12 z-20" src="/static/images/gfx/dashboard.png" alt="">
<a href="/active">Swaps in Progress: {{ summary.num_swapping }}</a><br/> <img class="relative z-10" src="/static/images/gfx/macbook.png" alt="">
<a href="/offers">Network Offers: {{ summary.num_network_offers }}</a><br/> </div>
<a href="/sentoffers">Sent Offers: {{ summary.num_sent_offers }}</a><br/> <p class="mb-6 mx-auto text-lg md:text-xl text-coolGray-500 font-medium max-w-4xl">Swap cryptocurrencies in a distributed trading environment with <b>no restrictions</b> and <b>no fees.</b></p>
<a href="/availablebids">Available Bids: {{ summary.num_available_bids }}</a><br/> <div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<a href="/bids">Received Bids: {{ summary.num_recv_bids }}</a><br/> <div class="w-full md:w-0/12">
<a href="/sentbids">Sent Bids: {{ summary.num_sent_bids }}</a><br/> <div class="flex flex-wrap justify-center -m-1.5">
<a href="/watched">Watched Outputs: {{ summary.num_watched_outputs }}</a><br/> <div class="w-full md:w-auto py-1 md:py-0 md:mr-6">
<a href="/automation">Automation Strategies</a><br/> <button name="" value="Apply" type="submit" class="text-center justify-center md:text-lg w-full md:text-lg flex flex-wrap py-4 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"> <span>Top your Wallets</span> </button>
{% if use_tor_proxy %} <a href="/tor">TOR Information</a><br/> {% endif %} </div>
</p> <div class="w-full md:w-auto py-1 md:py-0 md:mr-6">
<button name="" value="Apply" type="submit" class="text-center justify-center md:text-lg w-full md:text-lg flex flex-wrap py-4 px-4 text-coolGray-800 font-medium text-sm bg-white hover:bg-coolGray-100 border border-coolGray-200 rounded-md shadow-button focus:ring-0 focus:outline-none"> <span>Start Trading</span> </button>
<p><a href="/newoffer">New Offer</a></p> </div>
<div class="w-full md:w-auto py-1 md:py-0 md:mr-6">
<p><a href="/shutdown/{{ shutdown_token }}">Shutdown</a></p> <button name="" value="Apply" type="submit" class="text-center justify-center md:text-lg w-full md:text-lg flex flex-wrap py-4 px-4 text-coolGray-800 font-medium text-sm bg-white hover:bg-coolGray-100 border border-coolGray-200 rounded-md shadow-button focus:ring-0 focus:outline-none"> <span>Help (Wiki)</span> </button>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</body> </body>
</html> </html>

View file

@ -1,6 +1,5 @@
<!DOCTYPE html><html lang="en"><head> <!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link type="text/css" media="all" href="/static/css/simple/style.css" rel="stylesheet">
<link rel=icon sizes="32x32" type="image/png" href="/static/images/favicon-32.png"> <link rel=icon sizes="32x32" type="image/png" href="/static/images/favicon-32.png">
<title>{{ title }}</title> <title>{{ title }}</title>
</head> </head>

View file

@ -1,49 +1,171 @@
{% include 'header.html' %} {% include 'header.html' %}
<h3>Offer {{ offer_id }}</h3> <div class="container mx-auto">
{% if refresh %} <section class="bg-white p-5 mt-5">
<p><a href=/offer/{{ offer_id }}>Page Refresh: {{ refresh }} second</a></p> <div class="flex flex-wrap items-center -m-2">
{% else %} <div class="w-full md:w-1/2 p-2">
<p><a href=/offer/{{ offer_id }}>refresh</a></p> <ul class="flex flex-wrap items-center gap-x-3 mb-2">
{% endif %} <li>
<a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Offer</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="{{ offer_id }}">OFFER ID: {{ offer_id }}</a></li>
</ul>
</div>
</div>
</section>
{% for m in messages %} <section class="py-4">
<p>{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% for m in err_messages %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<p class="error_msg">Error: {{ m }}</p> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
{% endfor %} <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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Offer (normal)</h2>
<p class="font-semibold text-coolGray-200">Offer ID: {{ offer_id }}</p>
</div>
<div class="w-full md:w-1/2 p-3">
{% if refresh %}
<a id="refresh" href=/offer/{{ offer_id }}><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh {{ refresh }} seconds</button></a>
{% else %}
<a id="refresh" href=/offer/{{ offer_id }}><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh</button></a>
{% endif %}
</div>
</div>
</div>
</div>
</section>
{% for m in messages %}
<section class="py-4">
<div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
{% if sent_bid_id %} {% if sent_bid_id %}
<p><a href="/bid/{{ sent_bid_id }}">Sent Bid {{ sent_bid_id }}</a></p> <p><a href="/bid/{{ sent_bid_id }}">Sent Bid {{ sent_bid_id }}</a></p>
{% endif %} {% endif %}
<table> <section class="bg-white">
<tr><td>Offer State</td><td>{{ data.state }}</td></tr> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<tr><td>Coin From</td><td>{{ data.coin_from }}</td></tr> <div class="pb-6 border-coolGray-100">
<tr><td>Coin To</td><td>{{ data.coin_to }}</td></tr> <div class="flex flex-wrap items-center justify-between -m-2">
<tr><td>Amount From</td><td>{{ data.amt_from }} {{ data.tla_from }}</td></tr> <div class="w-full pt-2">
<tr><td>Amount To</td><td>{{ data.amt_to }} {{ data.tla_to }}</td></tr>
<tr><td>Minimum Bid Amount</td><td>{{ data.amt_bid_min }} {{ data.tla_from }}</td></tr> <div class="container px-0 mx-auto mt-5">
<tr><td>Rate</td><td>{{ data.rate }}</td></tr> <div class="overflow-x-auto relative border sm:rounded-lg">
<tr><td title="Total coin-from value of completed bids, that this node is involved in">Amount Swapped</td><td>{{ data.amt_swapped }} {{ data.tla_from }}</td></tr>
<tr><td title="If bids can be sent with a different amount">Amount Variable</td><td>{{ data.amount_negotiable }}</td></tr> <table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<tr><td title="If bids can be sent with a different amount">Rate Variable</td><td>{{ data.rate_negotiable }}</td></tr>
<tr><td>Script Lock Type</td><td>{{ data.lock_type }}</td></tr> <thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr><td>Script Lock Value</td><td>{{ data.lock_value }} {{ data.lock_value_hr }}</td></tr> <tr>
<th scope="col" class="py-3 px-6">Item</th>
<th scope="col">Data</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Offer State</td><td>{{ data.state }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Coin From</td><td>{{ data.coin_from }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Coin To</td><td>{{ data.coin_to }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Amount From</td><td>{{ data.amt_from }} {{ data.tla_from }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Amount To</td><td>{{ data.amt_to }} {{ data.tla_to }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Minimum Bid Amount</td><td>{{ data.amt_bid_min }} {{ data.tla_from }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Rate</td><td>{{ data.rate }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold" title="Total coin-from value of completed bids, that this node is involved in">Amount Swapped</td><td>{{ data.amt_swapped }} {{ data.tla_from }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold" title="If bids can be sent with a different amount">Amount Variable</td><td>{{ data.amount_negotiable }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold" title="If bids can be sent with a different amount">Rate Variable</td><td>{{ data.rate_negotiable }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Script Lock Type</td><td>{{ data.lock_type }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Script Lock Value</td><td>{{ data.lock_value }} {{ data.lock_value_hr }}</td></tr>
{% if data.addr_to == "Public" %} {% if data.addr_to == "Public" %}
<tr><td>Address To</td><td>{{ data.addr_to }}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Address To</td><td>{{ data.addr_to }}</td></tr>
{% else %} {% else %}
<tr><td>Address To</td><td><a class="monospace" href="/identity/{{ data.addr_to }}">{{ data.addr_to }}</a> {{ data.addr_to_label }}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Address To</td><td><a class="monospace" href="/identity/{{ data.addr_to }}">{{ data.addr_to }}</a> {{ data.addr_to_label }}</td></tr>
{% endif %} {% endif %}
<tr><td>Address From</td><td><a class="monospace" href="/identity/{{ data.addr_from }}">{{ data.addr_from }}</a> {{ data.addr_from_label }}</td></tr>
<tr><td>Created At</td><td>{{ data.created_at | formatts }}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Address From</td><td><a class="monospace" href="/identity/{{ data.addr_from }}">{{ data.addr_from }}</a> {{ data.addr_from_label }}</td></tr>
<tr><td>Expired At</td><td>{{ data.expired_at | formatts }}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Created At</td><td>{{ data.created_at | formatts }}</td></tr>
<tr><td>Sent</td><td>{{ data.sent }}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Expired At</td><td>{{ data.expired_at | formatts }}</td></tr>
<tr><td>Revoked</td><td>{{ data.was_revoked }}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Sent</td><td>{{ data.sent }}</td></tr>
<tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Revoked</td><td>{{ data.was_revoked }}</td></tr>
{% if data.sent == 'True' %} {% if data.sent == 'True' %}
<tr><td>Auto Accept Strategy</td> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Auto Accept Strategy</td><td>
<td>
{% if data.automation_strat_id == -1 %} {% if data.automation_strat_id == -1 %}
None None
{% else %} {% else %}
@ -53,61 +175,211 @@ None
{% endif %} {% endif %}
{% if data.xmr_type == true %} {% if data.xmr_type == true %}
<tr><td>Chain A offer fee rate</td><td>{{ data.a_fee_rate }}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Chain A offer fee rate</td><td>{{ data.a_fee_rate }}</td></tr>
<tr><td>Chain A local fee rate</td><td>{{ data.a_fee_rate_verify }}, fee source: {{ data.a_fee_rate_verify_src }} {% if data.a_fee_warn == true %} WARNING {% endif %}</td></tr> <tr class="bg-white border-t hover:bg-gray-50"><td class="py-4 px-6 bold">Chain A local fee rate</td><td>{{ data.a_fee_rate_verify }}, fee source: {{ data.a_fee_rate_verify_src }} {% if data.a_fee_warn == true %} WARNING {% endif %}</td></tr>
{% endif %} {% endif %}
</table>
</div>
</div>
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Bids</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Bid ID</th>
<th scope="col" class="py-3 px-6">Bid Amount</th>
<th scope="col" class="py-3 px-6">Bid Rate</th>
<th scope="col" class="py-3 px-6">Bid Status</th>
<th scope="col" class="py-3 px-6">Identity From</th>
</tr>
</thead>
{% for b in bids %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6"><a class="monospace" href=/bid/{{ b[0] }}>{{ b[0] }}</a></td>
<td class="py-4 px-6">{{ b[1] }}</td>
<td class="py-4 px-6">{{ b[3] }}</td>
<td class="py-4 px-6">{{ b[2] }}</td>
<td class="py-4 px-6"><a class="monospace" href=/identity/{{ b[4] }}>{{ b[4] }}</a></td>
</tr>
{% endfor %}
</table> </table>
<form method="post"> </div>
{% if data.show_bid_form %} </div>
<br/><h4>New Bid</h4>
<p>You will send <span id="bid_amt_to">{{ data.amt_to }}</span> {{ data.tla_to }} and receive <span id="bid_amt_from">{{ data.amt_from }}</span> {{ data.tla_from }}
{% if data.xmr_type == true %}
(excluding {{ data.amt_from_lock_spend_tx_fee }} {{ data.tla_from }} in tx fees).
{% else %}
(excluding a tx fee).
{% endif %}
</p>
<table> <form method="post">
<tr><td>Send From Address</td><td>
<select name="addr_from"> {% if data.show_bid_form %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">New Bid</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Input</th>
<th scope="col" class="">Output</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">You will send <span class="bold" id="bid_amt_to">{{ data.amt_to }}</span> {{ data.tla_to }}</td>
<td class="py-4">And receive <span class="bold" id="bid_amt_from">{{ data.amt_from }}</span> {{ data.tla_from }}
{% if data.xmr_type == true %}
(excluding {{ data.amt_from_lock_spend_tx_fee }} {{ data.tla_from }} in tx fees).
{% else %}
(excluding a tx fee).
{% endif %}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-10 px-6 bold">Send From Address</td>
<td>
<select class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="addr_from">
{% for a in addrs %} {% for a in addrs %}
<option value="{{ a[0] }}" {% if data.nb_addr_from==a[0] %} selected{% endif %}>{{ a[0] }} {{ a[1] }}</option> <option value="{{ a[0] }}" {% if data.nb_addr_from==a[0] %} selected{% endif %}>{{ a[0] }} {{ a[1] }}</option>
{% endfor %} {% endfor %}
<option value="-1" {% if data.nb_addr_from=="-1" %} selected{% endif %}>-- New Address --</option> <option value="-1" {% if data.nb_addr_from=="-1" %} selected{% endif %}>New Address</option>
</select> </select>
</td></tr>
</td>
</tr>
{% if data.amount_negotiable == true %} {% if data.amount_negotiable == true %}
<tr><td>Amount</td><td><input type="text" id="bid_amount" name="bid_amount" value="{{ data.bid_amount }}" onchange="updateBidParams('amount');"></td></tr> <tr class="bg-white border-t hover:bg-gray-50">
{% endif %} <td class="py-4 px-6 bold">Amount</td>
{% if data.rate_negotiable == true %} <td class="py-4 px-6"><input type="text" id="bid_amount" name="bid_amount" value="{{ data.bid_amount }}" onchange="updateBidParams('amount');"></td>
<tr><td>Rate</td><td><input type="text" id="bid_rate" name="bid_rate" value="{{ data.bid_rate }}" onchange="updateBidParams('rate');"></td></tr> </tr>
{% endif %} {% endif %}
<tr><td>Minutes valid</td><td><input type="number" name="validmins" min="10" max="1440" value="{{ data.nb_validmins }}"></td></tr> {% if data.rate_negotiable == true %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Rate</td>
<td class="py-4"><input type="text" id="bid_rate" name="bid_rate" value="{{ data.bid_rate }}" onchange="updateBidParams('rate');"></td>
</tr>
{% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Minutes valid</td>
<td class="py-4"><input type="number" name="validmins" min="10" max="1440" value="{{ data.nb_validmins }}">
</td>
</tr>
{% if data.debug_ui == true %} {% if data.debug_ui == true %}
<tr><td>Debug Option</td><td><select name="debugind">
<option{% if data.debug_ind=="-1" %} selected{% endif %} value="-1">-- None --</option> <tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Debug Option:</td>
<td class="py-4">
<select class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="debugind">
<option{% if data.debug_ind=="-1" %} selected{% endif %} value="-1">None</option>
{% for a in data.debug_options %} {% for a in data.debug_options %}
<option{% if data.debug_ind==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[1] }}</option> <option{% if data.debug_ind==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[1] }}</option>
{% endfor %} {% endfor %}
</select></td></tr> </select>
</td>
</tr>
{% endif %} {% endif %}
<tr><td>
<input type="submit" name="sendbid" value="Send Bid">
<input type="submit" name="cancel" value="Cancel">
<input name="check_rates" type="button" value="Lookup Rates" onclick='lookup_rates();'>
</td></tr>
</table> </table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="sendbid" value="Send Bid" 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">
<span>Send Bid</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="cancel" value="Cancel" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Cancel</span> </button>
</div>
<!-- TODO:
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="check_rates" value="Lookup Rates" type="button" onclick='lookup_rates();' class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Lookup Rates</span> </button>
</div>
-->
</div>
</div>
</div>
{% else %} {% else %}
<input type="submit" name="newbid" value="New Bid">
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="newbid" value="New Bid" 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">
<span>New Bid</span> </button>
</div>
{% if data.sent == 'True' and data.was_revoked != true %} {% if data.sent == 'True' and data.was_revoked != true %}
<input name="revoke_offer" type="submit" value="Revoke Offer" onclick="return confirmPopup();">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="revoke_offer" value="Revoke Offer" type="submit" onclick="return confirmPopup();" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Revoke order</span> </button>
</div>
{% endif %} {% endif %}
<input name="check_rates" type="button" value="Lookup Rates" onclick='lookup_rates();'>
<!-- todo
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="check_rates" type="button" value="Lookup Rates" onclick='lookup_rates();' class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Lookup Rates</span> </button>
</div>
-->
</div>
</div>
</div>
{% endif %} {% endif %}
<input type="hidden" id="coin_from" value="{{ data.coin_from_ind }}"> <input type="hidden" id="coin_from" value="{{ data.coin_from_ind }}">
<input type="hidden" id="coin_to" value="{{ data.coin_to_ind }}"> <input type="hidden" id="coin_to" value="{{ data.coin_to_ind }}">
<input type="hidden" id="amt_var" value="{{ data.amount_negotiable }}"> <input type="hidden" id="amt_var" value="{{ data.amount_negotiable }}">
@ -119,15 +391,12 @@ None
<p id="rates_display"></p> <p id="rates_display"></p>
<h4>Bids</h4> </div>
<table> </div>
<tr><th>Bid ID</th><th>Bid Amount</th><th>Bid Rate</th><th>Bid Status</th><th>Identity From</th></tr> </div>
{% for b in bids %} </div>
<tr><td><a class="monospace" href=/bid/{{ b[0] }}>{{ b[0] }}</a></td><td>{{ b[1] }}</td><td>{{ b[3] }}</td><td>{{ b[2] }}</td><td><a class="monospace" href=/identity/{{ b[4] }}>{{ b[4] }}</a></td></tr>
{% endfor %}
</table>
<p><a href="/">home</a></p> </section>
<script> <script>
const xhr_rates = new XMLHttpRequest(); const xhr_rates = new XMLHttpRequest();
@ -135,7 +404,7 @@ xhr_rates.onload = () => {
if (xhr_rates.status == 200) { if (xhr_rates.status == 200) {
const obj = JSON.parse(xhr_rates.response); const obj = JSON.parse(xhr_rates.response);
inner_html = '<h4>Rates</h4><pre><code>' + JSON.stringify(obj, null, ' ') + '</code></pre>'; inner_html = '<h4 class="bold>Rates</h4><pre><code>' + JSON.stringify(obj, null, ' ') + '</code></pre>';
document.getElementById('rates_display').innerHTML = inner_html; document.getElementById('rates_display').innerHTML = inner_html;
} }
} }
@ -198,4 +467,8 @@ function confirmPopup() {
} }
</script> </script>
</body></html>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,106 +1,743 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/newoffer">Place an new Offer</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Step 1</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Step 2</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Confirm</a></li>
<li>
</ul>
</div>
</div>
</section>
<h3>Confirm New Offer</h3> <section class="py-4">
{% for m in messages %} <div class="container px-4 mx-auto">
<p>{{ m }}</p> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden"> <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt=""> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt=""> <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-basic.svg" alt="">
{% endfor %} <div class="relative z-20 flex flex-wrap items-center -m-3">
{% for m in err_messages %} <div class="w-full md:w-1/2 p-3">
<p class="error_msg">Error: {{ m }}</p> <h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Place an new Offer (Confirm)</h2>
{% endfor %} <p class="font-semibold text-coolGray-200">Place an order on the network order book.</p>
</div>
</div>
</div>
</div>
</section <section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden bg-white rounded-t-md">
<div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full p-2">
<form method="post"> {% for m in messages %}
<table> <section class="py-4">
<tr><td>Send To</td><td><select name="addr_to_" disabled> <div class="container px-4 mx-auto">
<option{% if data.addr_to=="-1" %} selected{% endif %} value="-1">-- Public Network --</option> <div class="p-6 bg-green-100 border border-green-200 rounded-md">
{% for a in addrs_to %} <div class="flex flex-wrap justify-between items-center -m-2">
<option{% if data.addr_to==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option> <div class="flex-1 p-2">
{% endfor %} <div class="flex flex-wrap -m-1">
</select></td></tr> <div class="w-auto p-1">
<tr><td>Send From Address</td><td><select name="addr_from_" disabled> <svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
{% for a in addrs %} <path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
<option{% if data.addr_from==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option> </svg>
{% endfor %} </div>
<option{% if data.addr_from=="-1" %} selected{% endif %} value="-1">-- New Address --</option> <div class="flex-1 p-1">
</select></td></tr> <h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr class="padded_row"><td class="bold">Coin From</td><td> {% endfor %}
<select name="coin_from_" disabled><option value="-1">-- Select Coin --</option> {% for m in err_messages %}
{% for c in coins_from %}
<option{% if data.coin_from==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</td><td>Amount From</td><td><input type="text" name="amt_from" value="{{ data.amt_from }}" readonly></td><td>The amount you will send.</td></tr>
{% if data.swap_style == 'xmr' %}
<tr><td>Fee Rate From</td><td><input name="fee_rate_from" value="{{ data.from_fee_override }}" readonly></td><td>Fee Rate Source</td><td>{{ data.from_fee_src }}</td></tr>
<tr><td>Fee From Confirm Target</td><td><input type="number" name="fee_from_conf" min="1" max="32" value="{{ data.fee_from_conf }}" readonly></td></tr>
<tr><td>Fee From Increase By</td><td>
<select name="fee_from_extra_" disabled>
<option value="0">None</option>
<option value="10"{% if data.fee_from_extra==10 %} selected{% endif %}>10%</option>
<option value="50"{% if data.fee_from_extra==50 %} selected{% endif %}>50%</option>
<option value="100"{% if data.fee_from_extra==100 %} selected{% endif %}>100%</option>
</select></td></tr>
<tr><td>Lock Tx Spend Fee</td><td>{{ data.amt_from_lock_spend_tx_fee }} {{ data.tla_from }}</td></tr>
{% endif %}
<tr class="padded_row"><td class="bold">Coin To</td><td> <section class="py-4">
<select name="coin_to_" disabled><option value="-1">-- Select Coin --</option> <div class="container px-4 mx-auto">
{% for c in coins %} <div class="p-6 bg-red-100 border border-red-200 rounded-md">
<option{% if data.coin_to==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option> <div class="flex flex-wrap justify-between items-center -m-2">
{% endfor %} <div class="flex-1 p-2">
</select> <div class="flex flex-wrap -m-1">
</td><td>Amount To</td><td><input type="text" name="amt_to" value="{{ data.amt_to }}" readonly></td><td>The amount you will receive.</td></tr> <div class="w-auto p-1">
{% if data.swap_style == 'xmr' and coin_to != '6' %} <svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<tr><td>Fee Rate To</td><td><input name="fee_rate_to" value="{{ data.to_fee_override }}" readonly></td><td>Fee Rate Source</td><td>{{ data.to_fee_src }}</td></tr> <path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
<tr><td>Fee To Confirm Target</td><td><input type="number" name="fee_to_conf" min="1" max="32" value="{{ data.fee_to_conf }}" readonly></td></tr> </svg>
<tr><td>Fee To Increase By</td><td> </div>
<select name="fee_to_extra_" disabled> <div class="flex-1 p-1">
<option value="0">None</option> <h3 class="font-medium text-sm text-red-900 error_msg">
<option value="10"{% if data.fee_to_extra==10 %} selected{% endif %}>10%</option> <p class="error_msg">Error: {{ m }}</p>
<option value="50"{% if data.fee_to_extra==50 %} selected{% endif %}>50%</option> </h3>
<option value="100"{% if data.fee_to_extra==100 %} selected{% endif %}>100%</option> </div>
</select></td></tr> </div>
{% endif %} </div>
<tr><td>Minimum Bid Amount</td><td><input type="text" id="amt_bid_min" name="amt_bid_min" value="{{ data.amt_bid_min }}" title="Bids with an amount below the minimum bid value will be discarded" readonly></td></tr> <div class="w-auto p-2">
<tr><td>Rate</td><td><input type="text" id="rate" name="rate" value="{{ data.rate }}" readonly></td></tr> <a href="#">
<tr><td>Amount Variable</td><td colspan=3><input type="checkbox" id="amt_var" name="amt_var_" value="av" {% if data.amt_var==true %} checked=checked{% endif %} disabled></td></tr> <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<tr><td>Rate Variable</td><td colspan=3><input type="checkbox" id="rate_var" name="rate_var_" value="rv" {% if data.rate_var==true %} checked=checked{% endif %} disabled></td></tr> <path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr class="padded_row"><td>Offer valid (hrs)</td><td><input type="number" name="validhrs" min="1" max="48" value="{{ data.validhrs }}" readonly></td></tr> {% endfor %}
{% if data.debug_ui == true %}
<tr><td>Contract locked (mins)</td><td><input type="number" name="lockmins" min="10" max="5000" value="{{ data.lockmins }}" readonly></td>{% if data.swap_style != 'xmr' %}<td colspan=2>Participate txn will be locked for half the time.</td>{% endif %}</tr>
{% else %}
<tr><td>Contract locked (hrs)</td><td><input type="number" name="lockhrs" min="1" max="64" value="{{ data.lockhrs }}" readonly></td>{% if data.swap_style != 'xmr' %}<td colspan=2>Participate txn will be locked for half the time.</td>{% endif %}</tr>
{% endif %}
<tr><td>Auto Accept Strategy</td><td colspan=3>
<select name="automation_strat_id_" disabled><option value="-1"{% if data.automation_strat_id==-1 %} selected{% endif %}>-- None --</option>
{% for a in automation_strategies %}
<option value="{{ a[0] }}"{% if data.automation_strat_id==a[0] %} selected{% endif %}>{{ a[1] }}</option>
{% endfor %}
</select>
</td></tr>
</table>
<input name="submit_offer" type="submit" value="Confirm Offer"> <form method="post">
<input name="step2" type="submit" value="Back"> <div class="py-6 border-b border-coolGray-100">
<input type="hidden" name="formid" value="{{ form_id }}"> <div class="w-full md:w-10/12">
<input type="hidden" name="addr_to" value="{{ data.addr_to }}"> <div class="flex flex-wrap -m-3">
<input type="hidden" name="addr_from" value="{{ data.addr_from }}"> <div class="w-full md:w-1/3 p-3">
<input type="hidden" name="coin_from" value="{{ data.coin_from }}"> <p class="text-sm text-coolGray-800 font-semibold">Select network</p>
<input type="hidden" name="fee_from_extra" value="{{ data.fee_from_extra }}"> </div>
<input type="hidden" name="coin_to" value="{{ data.coin_to }}"> <div class="w-full md:flex-1 p-3">
<input type="hidden" name="fee_to_extra" value="{{ data.fee_to_extra }}"> <div class="relative">
{% if data.automation_strat_id != -1 %} <svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<input type="hidden" name="automation_strat_id" value="{{ data.automation_strat_id }}"> <path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
{% endif %} </svg>
{% if data.amt_var==true %} <div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<input type="hidden" name="amt_var" value="av"> <svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
{% endif %} <g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
{% if data.rate_var==true %} <line data-cap="butt" x1="7.6" y1="10.5" x2="16.4" y2="5.5" stroke="#3b82f6"></line>
<input type="hidden" name="rate_var" value="rv"> <line data-cap="butt" x1="7.6" y1="13.5" x2="16.4" y2="18.5" stroke="#3b82f6"></line>
{% endif %} <circle cx="5" cy="12" r="3"></circle>
</form> <circle cx="19" cy="4" r="3"></circle>
<script src="static/js/new_offer.js"></script> <circle cx="19" cy="20" r="3"></circle>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="addr_to" disabled>
<option{% if data.addr_to=="-1" %} selected{% endif %} value="-1">Public Network</option>
{% for a in addrs_to %}
<option{% if data.addr_to==a[0] %} selected{% endif %} value="{{ a[0] }}" class="">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
</div>
</body></html> <div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Select address</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<title>contacts 2</title>
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path data-cap="butt" d="M11.992,11.737,14.2,13.4A2,2,0,0,1,15,15v1H7V15a2,2,0,0,1,.8-1.6l2.208-1.663" stroke="#3b82f6"></path>
<rect x="9" y="7" width="4" height="5" rx="2" ry="2" stroke="#3b82f6"></rect>
<path d="M2,1H18a2,2,0,0,1,2,2V21a2,2,0,0,1-2,2H2Z"></path>
<line x1="23" y1="5" x2="23" y2="9" stroke="#3b82f6"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="addr_from" disabled>
{% for a in addrs %}
<option{% if data.addr_from==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
<option{% if data.addr_from=="-1" %} selected{% endif %} value="-1">New Address</option>
</select>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Coins from</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Coin From</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" id="coin_from" name="coin_from" onchange="set_rate('coin_from');" disabled>
<option value="-1">Coin From</option>
{% for c in coins_from %}
<option{% if data.coin_from==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Amount From (The amount you will send)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="amt_from" name="amt_from" value="{{ data.amt_from }}" onchange="set_rate('amt_from');" readonly>
</div>
</div>
{% if data.swap_style == 'xmr' %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee From Confirm Target</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="number" name="fee_from_conf" min="1" max="32" value="{{ data.fee_from_conf }}" readonly>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee Rate From</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" name="fee_rate_from" value="{{ data.from_fee_override }}" readonly>
</div>
Fee Rate Source: {{ data.from_fee_src }}
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee From Increase By</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="fee_from_extra_" disabled>
<option value="0">None</option>
<option value="10" {% if data.fee_from_extra==10 %} selected{% endif %}>10%</option>
<option value="50" {% if data.fee_from_extra==50 %} selected{% endif %}>50%</option>
<option value="100" {% if data.fee_from_extra==100 %} selected{% endif %}>100%</option>
</select>
</div>
Lock Tx Spend Fee: {{ data.amt_from_lock_spend_tx_fee }} {{ data.tla_from }}
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Coins to</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Coin To</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" id="coin_to" name="coin_to" onchange="set_rate('coin_to');" disabled>
<option value="-1">Coin To</option>
{% for c in coins %}
<option{% if data.coin_to==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Amount to (The amount you will receive)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="amt_to" name="amt_to" value="{{ data.amt_to }}" onchange="set_rate('amt_to');" readonly>
</div>
</div>
{% if data.swap_style == 'xmr' %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee To Confirm Target</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="number" name="fee_to_conf" min="1" max="32" value="{{ data.fee_to_conf }}" readonly>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee Rate To</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" name="fee_rate_to" value="{{ data.to_fee_override }}" readonly>
</div>
Fee Rate Source: {{ data.to_fee_src }}
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee To Increase By</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="fee_to_extra_" disabled>
<option value="0">None</option>
<option value="10" {% if data.fee_from_extra==10 %} selected{% endif %}>10%</option>
<option value="50" {% if data.fee_from_extra==50 %} selected{% endif %}>50%</option>
<option value="100" {% if data.fee_from_extra==100 %} selected{% endif %}>100%</option>
</select>
</div>
</div>
{% endif %}
{% if data.swap_style == 'xmr' and coin_to != '6' %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee To Confirm Target</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="number" name="fee_to_conf" min="1" max="32" value="{{ data.fee_from_conf }}" readonly>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee To Increase By</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="fee_to_extra" disabled>
<option value="0">None</option>
<option value="10" {% if data.fee_from_extra==10 %} selected{% endif %}>10%</option>
<option value="50" {% if data.fee_from_extra==50 %} selected{% endif %}>50%</option>
<option value="100" {% if data.fee_from_extra==100 %} selected{% endif %}>100%</option>
</select>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Bid amount</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Minimum Bid Amount</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<rect x="9.843" y="5.379" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -0.7635 13.1569)" width="11.314" height="4.243"></rect>
<polyline points="3,23 3,19 15,19 15,23 "></polyline>
<line x1="4" y1="15" x2="1" y2="15" stroke="#3b82f6"></line>
<line x1="5.757" y1="10.757" x2="3.636" y2="8.636" stroke="#3b82f6"></line>
<line x1="1" y1="23" x2="17" y2="23"></line>
<line x1="17" y1="9" x2="23" y2="15"></line>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="amt_bid_min" name="amt_bid_min" value="{{ data.amt_bid_min }}" title="Bids with an amount below the minimum bid value will be discarded" readonly>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Rate</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#3b82f6" class="nc-icon-wrapper">
<path d="M9,9h5L7,0,0,9H5V23a1,1,0,0,0,1,1H8a1,1,0,0,0,1-1Z" fill="#3b82f6"></path>
<path d="M14,17a3,3,0,1,1,3-3A3,3,0,0,1,14,17Zm0-4a1,1,0,1,0,1,1A1,1,0,0,0,14,13Z" data-color="color-2"></path>
<path d="M21,24a3,3,0,1,1,3-3A3,3,0,0,1,21,24Zm0-4a1,1,0,1,0,1,1A1,1,0,0,0,21,20Z" data-color="color-2"></path>
<path d="M13,23a1,1,0,0,1-.707-1.707l9-9a1,1,0,0,1,1.414,1.414l-9,9A1,1,0,0,1,13,23Z" data-color="color-2"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="rate" name="rate" value="{{ data.rate }}" onchange="set_rate('rate');" readonly>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Time</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Offer valid (hrs)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="number" name="validhrs" min="1" max="48" value="{{ data.validhrs }}" readonly>
</div>
</div>
{% if data.debug_ui == true %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Contract Locked (Mins)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="number" name="lockmins" min="10" max="5000" value="{{ data.lockmins }}" readonly>
</div>
{% if data.swap_style != 'xmr' %}
<div class="text-sm text-gray-500 mt-1.5">(Participate txn will be locked for half the time.)</div>
{% endif %}
</div>
{% else %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Contract locked (Hours)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="number" name="lockhrs" min="1" max="96" value="{{ data.lockhrs }}" readonly>
</div>
{% if data.swap_style != 'xmr' %}
<div class="text-sm text-gray-500 mt-1.5">(Participate txn will be locked for half the time.)</div>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Strategy (BETA)</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Auto Accept Strategy</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="automation_strat_id" disabled>
<option value="-1" {% if data.automation_strat_id==-1 %} selected{% endif %}>None</option>
{% for a in automation_strategies %}
<option value="{{ a[0] }}" {% if data.automation_strat_id==a[0] %} selected{% endif %}>{{ a[1] }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Options</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="form-check form-check-inline">
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain float-left mr-2 cursor-pointer" type="checkbox" id="amt_var" name="amt_var" value="av" {% if data.amt_var==true %} checked="checked" {% endif %} disabled>
<label class="form-check-label inline-block text-gray-800" for="inlineCheckbox2">Amount Variable</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain float-left mr-2 cursor-pointer" type="checkbox" id="rate_var" name="rate_var" value="rv" {% if data.rate_var==true %} checked="checked" {% endif %} disabled>
<label class="form-check-label bg-gray-50inline-block text-gray-800" for="inlineCheckbox3">Rate Variable</label>
</div>
</div>
</div>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5">
<button name="step2" type="submit" value="Back" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Back</span> </button>
</div>
<div class="w-full md:w-auto p-1.5">
<button name="submit_offer" value="Continue" 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">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#ffffff" stroke-linejoin="round">
<circle cx="12" cy="12" r="11"></circle>
<polyline points="11 8 15 12 11 16" stroke="#ffffff"></polyline>
</g>
</svg> <span>Confirm Offer</span> </button>
</div>
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
<input type="hidden" name="addr_to" value="{{ data.addr_to }}">
<input type="hidden" name="addr_from" value="{{ data.addr_from }}">
<input type="hidden" name="coin_from" value="{{ data.coin_from }}">
<input type="hidden" name="fee_from_extra" value="{{ data.fee_from_extra }}">
<input type="hidden" name="coin_to" value="{{ data.coin_to }}">
<input type="hidden" name="fee_to_extra" value="{{ data.fee_to_extra }}">
{% if data.automation_strat_id != -1 %}
<input type="hidden" name="automation_strat_id" value="{{ data.automation_strat_id }}">
{% endif %}
{% if data.amt_var==true %}
<input type="hidden" name="amt_var" value="av">
{% endif %}
{% if data.rate_var==true %}
<input type="hidden" name="rate_var" value="rv">
{% endif %}
</form>
<script src="static/js/new_offer.js"></script>
</div>
</div>
</div>
</div>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,194 +1,584 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/newoffer">Place an new Offer</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Step 1</a></li>
<li>
</ul>
</div>
</div>
</section>
<h3>New Offer</h3> <section class="py-4">
{% for m in messages %} <div class="container px-4 mx-auto">
<p>{{ m }}</p> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% endfor %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
{% for m in err_messages %} <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<p class="error_msg">Error: {{ m }}</p> <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="">
{% endfor %} <div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Place an new Offer (Step 1)</h2>
<p class="font-semibold text-coolGray-200">Place an order on the network order book.</p>
</div>
</div>
</div>
</div>
</section>
<form method="post"> <section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden bg-white rounded-t-md">
<div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full p-2">
<table> {% for m in messages %}
<tr><td>Send To</td><td><select name="addr_to">
<option{% if data.addr_to=="-1" %} selected{% endif %} value="-1">-- Public Network --</option>
{% for a in addrs_to %}
<option{% if data.addr_to==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
</select></td></tr>
<tr><td>Send From Address</td><td><select name="addr_from">
{% for a in addrs %}
<option{% if data.addr_from==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
<option{% if data.addr_from=="-1" %} selected{% endif %} value="-1">-- New Address --</option>
</select></td></tr>
<tr><td>Coin From</td><td> <section class="py-4">
<select id="coin_from" name="coin_from" onchange="set_rate('coin_from');"><option value="-1">-- Select Coin --</option> <div class="container px-4 mx-auto">
{% for c in coins_from %} <div class="p-6 bg-green-100 border border-green-200 rounded-md">
<option{% if data.coin_from==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option> <div class="flex flex-wrap justify-between items-center -m-2">
{% endfor %} <div class="flex-1 p-2">
</select> <div class="flex flex-wrap -m-1">
</td><td>Amount From</td><td><input type="text" id="amt_from" name="amt_from" value="{{ data.amt_from }}" onchange="set_rate('amt_from');"></td><td>The amount you will send.</td></tr> <div class="w-auto p-1">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr><td>Coin To</td><td> {% endfor %}
<select id="coin_to" name="coin_to" onchange="set_rate('coin_to');"><option value="-1">-- Select Coin --</option>
{% for c in coins %}
<option{% if data.coin_to==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</td><td>Amount To</td><td><input type="text" id="amt_to" name="amt_to" value="{{ data.amt_to }}" onchange="set_rate('amt_to');"></td><td>The amount you will receive.</td></tr>
<tr><td>Minimum Bid Amount</td><td><input type="text" id="amt_bid_min" name="amt_bid_min" value="{{ data.amt_bid_min }}" title="Bids with an amount below the minimum bid value will be discarded"></td></tr>
<tr><td>Rate</td><td><input type="text" id="rate" name="rate" value="{{ data.rate }}" onchange="set_rate('rate');"></td><td>Lock Rate: <input type="checkbox" id="rate_lock" name="rate_lock" value="rl" checked=checked></td></tr>
<tr><td>Amount Variable</td><td><input type="checkbox" id="amt_var" name="amt_var" value="av" {% if data.amt_var==true %} checked=checked{% endif %}></td></tr> {% for m in err_messages %}
<tr><td>Rate Variable</td><td><input type="checkbox" id="rate_var" name="rate_var" value="rv" {% if data.rate_var==true %} checked=checked{% endif %}></td></tr>
</table>
<input name="continue" type="submit" value="Continue"> <section class="py-4">
<input name="check_rates" type="button" value="Lookup Rates" onclick='lookup_rates();'> <div class="container px-4 mx-auto">
<input name="show_rates_table" type="button" value="Show Rates Table" onclick='lookup_rates_table();'> <div class="p-6 bg-red-100 border border-red-200 rounded-md">
<input type="hidden" name="formid" value="{{ form_id }}"> <div class="flex flex-wrap justify-between items-center -m-2">
<input type="hidden" name="step1" value="a"> <div class="flex-1 p-2">
</form> <div class="flex flex-wrap -m-1">
<div class="w-auto p-1">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<p id="rates_display"></p> {% endfor %}
<p><a href="/">home</a></p> <form method="post">
<script> <div class="py-6 border-b border-coolGray-100">
const xhr_rates = new XMLHttpRequest(); <div class="w-full md:w-10/12">
xhr_rates.onload = () => { <div class="flex flex-wrap -m-3">
if (xhr_rates.status == 200) { <div class="w-full md:w-1/3 p-3">
const obj = JSON.parse(xhr_rates.response); <p class="text-sm text-coolGray-800 font-semibold">Select network</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<line data-cap="butt" x1="7.6" y1="10.5" x2="16.4" y2="5.5" stroke="#3b82f6"></line>
<line data-cap="butt" x1="7.6" y1="13.5" x2="16.4" y2="18.5" stroke="#3b82f6"></line>
<circle cx="5" cy="12" r="3"></circle>
<circle cx="19" cy="4" r="3"></circle>
<circle cx="19" cy="20" r="3"></circle>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="addr_to">
<option{% if data.addr_to=="-1" %} selected{% endif %} value="-1">Public Network</option>
{% for a in addrs_to %}
<option{% if data.addr_to==a[0] %} selected{% endif %} value="{{ a[0] }}" class="">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
</div>
inner_html = '<h4>Rates</h4><pre><code>' + JSON.stringify(obj, null, ' ') + '</code></pre>'; <div class="py-6 border-b border-coolGray-100">
document.getElementById('rates_display').innerHTML = inner_html; <div class="w-full md:w-10/12">
} <div class="flex flex-wrap -m-3">
} <div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Select address</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path data-cap="butt" d="M11.992,11.737,14.2,13.4A2,2,0,0,1,15,15v1H7V15a2,2,0,0,1,.8-1.6l2.208-1.663" stroke="#3b82f6"></path>
<rect x="9" y="7" width="4" height="5" rx="2" ry="2" stroke="#3b82f6"></rect>
<path d="M2,1H18a2,2,0,0,1,2,2V21a2,2,0,0,1-2,2H2Z"></path>
<line x1="23" y1="5" x2="23" y2="9" stroke="#3b82f6"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="addr_from">
{% for a in addrs %}
<option{% if data.addr_from==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
<option{% if data.addr_from=="-1" %} selected{% endif %} value="-1">New Address</option>
</select>
</div>
</div>
</div>
</div>
</div>
const xhr_rate = new XMLHttpRequest(); <div class="py-6 border-b border-coolGray-100">
xhr_rate.onload = () => { <div class="w-full md:w-10/12">
if (xhr_rate.status == 200) { <div class="flex flex-wrap -m-3">
const obj = JSON.parse(xhr_rate.response); <div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Coins from</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Coin From</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" id="coin_from" name="coin_from" onchange="set_rate('coin_from');">
<option value="-1">Coin From</option>
{% for c in coins_from %}
<option{% if data.coin_from==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Amount From (The amount you will send)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="text" id="amt_from" name="amt_from" value="{{ data.amt_from }}" onchange="set_rate('amt_from');">
</div>
</div>
if (obj.hasOwnProperty('rate')) { </div>
document.getElementById('rate').value = obj['rate']; </div>
} else </div>
if (obj.hasOwnProperty('amount_to')) { </div>
document.getElementById('amt_to').value = obj['amount_to']; </div>
} else
if (obj.hasOwnProperty('amount_from')) { <div class="py-6 border-b border-coolGray-100">
document.getElementById('amt_from').value = obj['amount_from']; <div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Coins to</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Coin To</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" id="coin_to" name="coin_to" onchange="set_rate('coin_to');">
<option value="-1">Coin To</option>
{% for c in coins %}
<option{% if data.coin_to==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Amount to (The amount you will receive)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 " type="text" id="amt_to" name="amt_to" value="{{ data.amt_to }}" onchange="set_rate('amt_to');">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Bid amount</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Minimum Bid Amount</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<title>law</title>
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<rect x="9.843" y="5.379" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -0.7635 13.1569)" width="11.314" height="4.243"></rect>
<polyline points="3,23 3,19 15,19 15,23 "></polyline>
<line x1="4" y1="15" x2="1" y2="15" stroke="#3b82f6"></line>
<line x1="5.757" y1="10.757" x2="3.636" y2="8.636" stroke="#3b82f6"></line>
<line x1="1" y1="23" x2="17" y2="23"></line>
<line x1="17" y1="9" x2="23" y2="15"></line>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="text" id="amt_bid_min" name="amt_bid_min" value="{{ data.amt_bid_min }}" title="Bids with an amount below the minimum bid value will be discarded">
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Rate</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#3b82f6" class="nc-icon-wrapper">
<path d="M9,9h5L7,0,0,9H5V23a1,1,0,0,0,1,1H8a1,1,0,0,0,1-1Z" fill="#3b82f6"></path>
<path d="M14,17a3,3,0,1,1,3-3A3,3,0,0,1,14,17Zm0-4a1,1,0,1,0,1,1A1,1,0,0,0,14,13Z" data-color="color-2"></path>
<path d="M21,24a3,3,0,1,1,3-3A3,3,0,0,1,21,24Zm0-4a1,1,0,1,0,1,1A1,1,0,0,0,21,20Z" data-color="color-2"></path>
<path d="M13,23a1,1,0,0,1-.707-1.707l9-9a1,1,0,0,1,1.414,1.414l-9,9A1,1,0,0,1,13,23Z" data-color="color-2"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="text" id="rate" name="rate" value="{{ data.rate }}" onchange="set_rate('rate');">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Options</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="form-check form-check-inline">
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain float-left mr-2 cursor-pointer" type="checkbox" id="rate_lock" name="rate_lock" value="rl" checked=checked>
<label class="form-check-label inline-block text-gray-800" for="inlineCheckbox1">Lock Rate</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain float-left mr-2 cursor-pointer" type="checkbox" id="amt_var" name="amt_var" value="av" {% if data.amt_var==true %} checked="checked" {% endif %}>
<label class="form-check-label inline-block text-gray-800" for="inlineCheckbox2">Amount Variable</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain float-left mr-2 cursor-pointer" type="checkbox" id="rate_var" name="rate_var" value="rv" {% if data.rate_var==true %} checked="checked" {% endif %}>
<label class="form-check-label bg-gray-50inline-block text-gray-800" for="inlineCheckbox3">Rate Variable</label>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-t border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Rates</p>
</div>
<div class="w-full md:flex-1 p-3">
<p id="rates_display">
</p>
</div>
</div>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<!--<div class="w-full md:w-auto p-1.5">
<button name="show_rates_table" type="button" value="Show Rates Table" onclick='lookup_rates_table();' class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Show Rates Table</span> </button>
</div>-->
<div class="w-full md:w-auto p-1.5">
<button name="check_rates" type="button" value="Lookup Rates (RAW)" onclick='lookup_rates();' class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Lookup Rates (JSON)</span> </button>
</div>
<div class="w-full md:w-auto p-1.5">
<button name="continue" value="Continue" 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">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#ffffff" stroke-linejoin="round">
<circle cx="12" cy="12" r="11"></circle>
<polyline points="11 8 15 12 11 16" stroke="#ffffff"></polyline>
</g>
</svg> <span>Continue</span> </button>
</div>
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
<input type="hidden" name="step1" value="a">
</form>
</div>
</div>
</div>
</div>
</section>
<script>
const xhr_rates = new XMLHttpRequest();
xhr_rates.onload = () => {
if (xhr_rates.status == 200) {
const obj = JSON.parse(xhr_rates.response);
inner_html = '<pre><code>' + JSON.stringify(obj, null, ' ') + '</code></pre>';
document.getElementById('rates_display').innerHTML = inner_html;
} }
} }
}
const xhr_rates_table = new XMLHttpRequest(); const xhr_rate = new XMLHttpRequest();
xhr_rates_table.onload = () => { xhr_rate.onload = () => {
if (xhr_rates_table.status == 200) { if (xhr_rate.status == 200) {
const list = JSON.parse(xhr_rates_table.response); const obj = JSON.parse(xhr_rate.response);
headings = ['Source', 'Coin From', 'Coin To', 'Coin From USD Rate', 'Coin To USD Rate', 'Coin From BTC Rate', 'Coin To BTC Rate', 'Relative Rate']; if (obj.hasOwnProperty('rate')) {
table = document.createElement('table'); document.getElementById('rate').value = obj['rate'];
headings_row = document.createElement('tr'); } else
for (let i = 0; i < headings.length; i++) { if (obj.hasOwnProperty('amount_to')) {
column = document.createElement('th'); document.getElementById('amt_to').value = obj['amount_to'];
column.textContent = headings[i]; } else
headings_row.appendChild(column); if (obj.hasOwnProperty('amount_from')) {
} document.getElementById('amt_from').value = obj['amount_from'];
table.appendChild(headings_row);
for (let i = 0; i < list.length; i++) {
data_row = document.createElement('tr');
for (let j = 0; j < list[i].length; j++) {
column = document.createElement('td');
column.textContent = list[i][j];
data_row.appendChild(column);
} }
table.appendChild(data_row);
} }
// Clear existing }
const display_node = document.getElementById("rates_display");
while (display_node.lastElementChild) { const xhr_rates_table = new XMLHttpRequest();
display_node.removeChild(display_node.lastElementChild); xhr_rates_table.onload = () => {
if (xhr_rates_table.status == 200) {
const list = JSON.parse(xhr_rates_table.response);
headings = ['Source', 'Coin From', 'Coin To', 'Coin From USD Rate', 'Coin To USD Rate', 'Coin From BTC Rate', 'Coin To BTC Rate', 'Relative Rate'];
table = document.createElement('table');
table.setAttribute("class", "");
heading_head = document.createElement('thead');
headings_row = document.createElement('tr');
data_row.setAttribute("class", "");
for (let i = 0; i < headings.length; i++) {
column = document.createElement('th');
column.textContent = headings[i];
headings_row.appendChild(column);
}
table.appendChild(headings_row);
for (let i = 0; i < list.length; i++) {
data_row = document.createElement('tr');
for (let j = 0; j < list[i].length; j++) {
column = document.createElement('td');
column.textContent = list[i][j];
data_row.appendChild(column);
}
table.appendChild(data_row);
}
// Clear existing
const display_node = document.getElementById("rates_display");
while (display_node.lastElementChild) {
display_node.removeChild(display_node.lastElementChild);
}
heading = document.createElement('h4');
heading.textContent = ''
display_node.appendChild(heading);
display_node.appendChild(table);
} }
heading = document.createElement('h4');
heading.textContent = 'Rates'
display_node.appendChild(heading);
display_node.appendChild(table);
}
}
function lookup_rates() {
const coin_from = document.getElementById('coin_from').value;
const coin_to = document.getElementById('coin_to').value;
if (coin_from == '-1' || coin_to == '-1') {
alert('Coins from and to must be set first.');
return;
} }
inner_html = '<h4>Rates</h4><p>Updating...</p>'; function lookup_rates() {
document.getElementById('rates_display').innerHTML = inner_html; const coin_from = document.getElementById('coin_from').value;
const coin_to = document.getElementById('coin_to').value;
xhr_rates.open('POST', '/json/rates'); if (coin_from == '-1' || coin_to == '-1') {
xhr_rates.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); alert('Coins from and to must be set first.');
xhr_rates.send('coin_from='+coin_from+'&coin_to='+coin_to);
}
function lookup_rates_table() {
const coin_from = document.getElementById('coin_from').value;
const coin_to = document.getElementById('coin_to').value;
if (coin_from == '-1' || coin_to == '-1') {
alert('Coins from and to must be set first.');
return;
}
inner_html = '<h4>Rates</h4><p>Updating...</p>';
document.getElementById('rates_display').innerHTML = inner_html;
xhr_rates_table.open('GET', '/json/rateslist?from='+coin_from+'&to='+coin_to);
xhr_rates_table.send();
}
function set_rate(value_changed) {
const coin_from = document.getElementById('coin_from').value;
const coin_to = document.getElementById('coin_to').value;
const amt_from = document.getElementById('amt_from').value;
const amt_to = document.getElementById('amt_to').value;
const rate = document.getElementById('rate').value;
const lock_rate = rate == '' ? false : document.getElementById('rate_lock').checked;
if (coin_from == '-1' || coin_to == '-1') {
return;
}
params = 'coin_from='+coin_from+'&coin_to='+coin_to;
if (value_changed == 'rate' || (lock_rate && value_changed == 'amt_from') || (amt_to == '' && value_changed == 'amt_from')) {
if (amt_from == '' || rate == '') {
return; return;
} }
params += '&rate='+rate+'&amt_from='+amt_from;
} else inner_html = '<p>Updating...</p>';
if (lock_rate && value_changed == 'amt_to') { document.getElementById('rates_display').innerHTML = inner_html;
if (amt_to == '' || rate == '') {
return; xhr_rates.open('POST', '/json/rates');
} xhr_rates.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
params += '&amt_to='+amt_to+'&rate='+rate; xhr_rates.send('coin_from='+coin_from+'&coin_to='+coin_to);
} else {
if (amt_from == '' || amt_to == '') {
return;
}
params += '&amt_from='+amt_from+'&amt_to='+amt_to;
} }
xhr_rate.open('POST', '/json/rate'); function lookup_rates_table() {
xhr_rate.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); const coin_from = document.getElementById('coin_from').value;
xhr_rate.send(params); const coin_to = document.getElementById('coin_to').value;
}
</script> if (coin_from == '-1' || coin_to == '-1') {
<script src="static/js/new_offer.js"></script> alert('Coins from and to must be set first.');
</body></html> return;
}
inner_html = 'Updating...</p>';
document.getElementById('rates_display').innerHTML = inner_html;
xhr_rates_table.open('GET', '/json/rateslist?from='+coin_from+'&to='+coin_to);
xhr_rates_table.send();
}
function set_rate(value_changed) {
const coin_from = document.getElementById('coin_from').value;
const coin_to = document.getElementById('coin_to').value;
const amt_from = document.getElementById('amt_from').value;
const amt_to = document.getElementById('amt_to').value;
const rate = document.getElementById('rate').value;
const lock_rate = rate == '' ? false : document.getElementById('rate_lock').checked;
if (coin_from == '-1' || coin_to == '-1') {
return;
}
params = 'coin_from='+coin_from+'&coin_to='+coin_to;
if (value_changed == 'rate' || (lock_rate && value_changed == 'amt_from') || (amt_to == '' && value_changed == 'amt_from')) {
if (amt_from == '' || rate == '') {
return;
}
params += '&rate='+rate+'&amt_from='+amt_from;
} else
if (lock_rate && value_changed == 'amt_to') {
if (amt_to == '' || rate == '') {
return;
}
params += '&amt_to='+amt_to+'&rate='+rate;
} else {
if (amt_from == '' || amt_to == '') {
return;
}
params += '&amt_from='+amt_from+'&amt_to='+amt_to;
}
xhr_rate.open('POST', '/json/rate');
xhr_rate.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr_rate.send(params);
}
</script>
<script src="static/js/new_offer.js"></script>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,100 +1,648 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/newoffer">Place an new Offer</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Step 1</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Step 2</a></li>
<li>
</ul>
</div>
</div>
</section>
<h3>New Offer</h3> <section class="py-4">
{% for m in messages %} <div class="container px-4 mx-auto">
<p>{{ m }}</p> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden"> <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt=""> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt=""> <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="">
{% endfor %} <div class="relative z-20 flex flex-wrap items-center -m-3">
{% for m in err_messages %} <div class="w-full md:w-1/2 p-3">
<p class="error_msg">Error: {{ m }}</p> <h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Place an new Offer (Step 2)</h2>
{% endfor %} <p class="font-semibold text-coolGray-200">Place an order on the network order book.</p>
</div>
</div>
</div>
</div>
</section <section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden bg-white rounded-t-md">
<div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full p-2">
<form method="post"> {% for m in messages %}
<table> <section class="py-4">
<tr><td>Send To</td><td><select name="addr_to_" disabled> <div class="container px-4 mx-auto">
<option{% if data.addr_to=="-1" %} selected{% endif %} value="-1">-- Public Network --</option> <div class="p-6 bg-green-100 border border-green-200 rounded-md">
{% for a in addrs_to %} <div class="flex flex-wrap justify-between items-center -m-2">
<option{% if data.addr_to==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option> <div class="flex-1 p-2">
{% endfor %} <div class="flex flex-wrap -m-1">
</select></td></tr> <div class="w-auto p-1">
<tr><td>Send From Address</td><td><select name="addr_from_" disabled> <svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
{% for a in addrs %} <path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
<option{% if data.addr_from==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option> </svg>
{% endfor %} </div>
<option{% if data.addr_from=="-1" %} selected{% endif %} value="-1">-- New Address --</option> <div class="flex-1 p-1">
</select></td></tr> <h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr class="padded_row"><td class="bold">Coin From</td><td> {% endfor %}
<select name="coin_from_" disabled><option value="-1">-- Select Coin --</option>
{% for c in coins_from %}
<option{% if data.coin_from==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</td><td>Amount From</td><td><input type="text" name="amt_from" value="{{ data.amt_from }}" readonly></td><td>The amount you will send.</td></tr>
{% if data.swap_style == 'xmr' %}
<tr><td>Fee From Confirm Target</td><td><input type="number" name="fee_from_conf" min="1" max="32" value="{{ data.fee_from_conf }}"></td></tr>
<tr><td>Fee From Increase By</td><td>
<select name="fee_from_extra">
<option value="0">None</option>
<option value="10"{% if data.fee_from_extra==10 %} selected{% endif %}>10%</option>
<option value="50"{% if data.fee_from_extra==50 %} selected{% endif %}>50%</option>
<option value="100"{% if data.fee_from_extra==100 %} selected{% endif %}>100%</option>
</select></td></tr>
{% endif %}
<tr class="padded_row"><td class="bold">Coin To</td><td> {% for m in err_messages %}
<select name="coin_to_" disabled><option value="-1">-- Select Coin --</option>
{% for c in coins %}
<option{% if data.coin_to==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</td><td>Amount To</td><td><input type="text" name="amt_to" value="{{ data.amt_to }}" readonly></td><td>The amount you will receive.</td></tr>
{% if data.swap_style == 'xmr' and coin_to != '6' %}
<tr><td>Fee To Confirm Target</td><td><input type="number" name="fee_to_conf" min="1" max="32" value="{{ data.fee_to_conf }}"></td></tr>
<tr><td>Fee To Increase By</td><td>
<select name="fee_to_extra">
<option value="0">None</option>
<option value="10"{% if data.fee_to_extra==10 %} selected{% endif %}>10%</option>
<option value="50"{% if data.fee_to_extra==50 %} selected{% endif %}>50%</option>
<option value="100"{% if data.fee_to_extra==100 %} selected{% endif %}>100%</option>
</select></td></tr>
{% endif %}
<tr><td>Minimum Bid Amount</td><td><input type="text" id="amt_bid_min" name="amt_bid_min" value="{{ data.amt_bid_min }}" title="Bids with an amount below the minimum bid value will be discarded" readonly></td></tr>
<tr><td>Rate</td><td><input type="text" id="rate" name="rate" value="{{ data.rate }}" readonly></td></tr>
<tr><td>Amount Variable</td><td colspan=3><input type="checkbox" id="amt_var" name="amt_var_" value="av" {% if data.amt_var==true %} checked=checked{% endif %} disabled></td></tr>
<tr><td>Rate Variable</td><td colspan=3><input type="checkbox" id="rate_var" name="rate_var_" value="rv" {% if data.rate_var==true %} checked=checked{% endif %} disabled></td></tr>
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr class="padded_row"><td>Offer valid (hrs)</td><td><input type="number" name="validhrs" min="1" max="48" value="{{ data.validhrs }}"></td></tr> {% endfor %}
{% if data.debug_ui == true %}
<tr><td>Contract locked (mins)</td><td><input type="number" name="lockmins" min="10" max="5000" value="{{ data.lockmins }}"></td>{% if data.swap_style != 'xmr' %}<td colspan=2>Participate txn will be locked for half the time.</td>{% endif %}</tr>
{% else %}
<tr><td>Contract locked (hrs)</td><td><input type="number" name="lockhrs" min="1" max="96" value="{{ data.lockhrs }}"></td>{% if data.swap_style != 'xmr' %}<td colspan=2>Participate txn will be locked for half the time.</td>{% endif %}</tr>
{% endif %}
<tr><td>Auto Accept Strategy</td><td colspan=3>
<select name="automation_strat_id"><option value="-1"{% if data.automation_strat_id==-1 %} selected{% endif %}>-- None --</option>
{% for a in automation_strategies %}
<option value="{{ a[0] }}"{% if data.automation_strat_id==a[0] %} selected{% endif %}>{{ a[1] }}</option>
{% endfor %}
</select>
</td></tr>
</table> <form method="post">
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Select network</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<line data-cap="butt" x1="7.6" y1="10.5" x2="16.4" y2="5.5" stroke="#3b82f6"></line>
<line data-cap="butt" x1="7.6" y1="13.5" x2="16.4" y2="18.5" stroke="#3b82f6"></line>
<circle cx="5" cy="12" r="3"></circle>
<circle cx="19" cy="4" r="3"></circle>
<circle cx="19" cy="20" r="3"></circle>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="addr_to" disabled>
<option{% if data.addr_to=="-1" %} selected{% endif %} value="-1">Public Network</option>
{% for a in addrs_to %}
<option{% if data.addr_to==a[0] %} selected{% endif %} value="{{ a[0] }}" class="">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
</div>
<input name="check_offer" type="submit" value="Continue"> <div class="py-6 border-b border-coolGray-100">
<input name="step1" type="submit" value="Back"> <div class="w-full md:w-10/12">
<input type="hidden" name="formid" value="{{ form_id }}"> <div class="flex flex-wrap -m-3">
<input type="hidden" name="addr_to" value="{{ data.addr_to }}"> <div class="w-full md:w-1/3 p-3">
<input type="hidden" name="addr_from" value="{{ data.addr_from }}"> <p class="text-sm text-coolGray-800 font-semibold">Select address</p>
<input type="hidden" name="coin_from" value="{{ data.coin_from }}"> </div>
<input type="hidden" name="coin_to" value="{{ data.coin_to }}"> <div class="w-full md:flex-1 p-3">
{% if data.amt_var==true %} <div class="relative">
<input type="hidden" name="amt_var" value="true"> <svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
{% endif %} <path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
{% if data.rate_var==true %} </svg>
<input type="hidden" name="rate_var" value="true"> <div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
{% endif %} <svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
</form> <title>contacts 2</title>
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path data-cap="butt" d="M11.992,11.737,14.2,13.4A2,2,0,0,1,15,15v1H7V15a2,2,0,0,1,.8-1.6l2.208-1.663" stroke="#3b82f6"></path>
<rect x="9" y="7" width="4" height="5" rx="2" ry="2" stroke="#3b82f6"></rect>
<path d="M2,1H18a2,2,0,0,1,2,2V21a2,2,0,0,1-2,2H2Z"></path>
<line x1="23" y1="5" x2="23" y2="9" stroke="#3b82f6"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="addr_from" disabled>
{% for a in addrs %}
<option{% if data.addr_from==a[0] %} selected{% endif %} value="{{ a[0] }}">{{ a[0] }} {{ a[1] }}</option>
{% endfor %}
<option{% if data.addr_from=="-1" %} selected{% endif %} value="-1">New Address</option>
</select>
</div>
</div>
</div>
</div>
</div>
<script src="static/js/new_offer.js"></script> <div class="py-6 border-b border-coolGray-100">
</body></html> <div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Coins from</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Coin From</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" id="coin_from" name="coin_from" onchange="set_rate('coin_from');" disabled>
<option value="-1">Coin From</option>
{% for c in coins_from %}
<option{% if data.coin_from==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Amount From (The amount you will send)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="amt_from" name="amt_from" value="{{ data.amt_from }}" onchange="set_rate('amt_from');" readonly>
</div>
</div>
{% if data.swap_style == 'xmr' %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee From Confirm Target</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="number" name="fee_from_conf" min="1" max="32" value="{{ data.fee_from_conf }}">
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee From Increase By</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="fee_from_extra">
<option value="0">None</option>
<option value="10" {% if data.fee_from_extra==10 %} selected{% endif %}>10%</option>
<option value="50" {% if data.fee_from_extra==50 %} selected{% endif %}>50%</option>
<option value="100" {% if data.fee_from_extra==100 %} selected{% endif %}>100%</option>
</select>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Coins to</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Coin To</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" id="coin_to" name="coin_to" onchange="set_rate('coin_to');" disabled>
<option value="-1">Coin To</option> {% for c in coins %}
<option{% if data.coin_to==c[0] %} selected{% endif %} value="{{ c[0] }}">{{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Amount to (The amount you will receive)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="amt_to" name="amt_to" value="{{ data.amt_to }}" onchange="set_rate('amt_to');" readonly>
</div>
</div>
{% if data.swap_style == 'xmr' and coin_to != '6' %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee From Confirm Target</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="number" name="fee_to_conf" min="1" max="32" value="{{ data.fee_from_conf }}">
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Fee From Increase By</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="fee_to_extra">
<option value="0">None</option>
<option value="10" {% if data.fee_from_extra==10 %} selected{% endif %}>10%</option>
<option value="50" {% if data.fee_from_extra==50 %} selected{% endif %}>50%</option>
<option value="100" {% if data.fee_from_extra==100 %} selected{% endif %}>100%</option>
</select>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Bid amount</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Minimum Bid Amount</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<rect x="9.843" y="5.379" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -0.7635 13.1569)" width="11.314" height="4.243"></rect>
<polyline points="3,23 3,19 15,19 15,23 "></polyline>
<line x1="4" y1="15" x2="1" y2="15" stroke="#3b82f6"></line>
<line x1="5.757" y1="10.757" x2="3.636" y2="8.636" stroke="#3b82f6"></line>
<line x1="1" y1="23" x2="17" y2="23"></line>
<line x1="17" y1="9" x2="23" y2="15"></line>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="amt_bid_min" name="amt_bid_min" value="{{ data.amt_bid_min }}" title="Bids with an amount below the minimum bid value will be discarded" readonly>
</div>
</div>
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Rate</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#3b82f6" class="nc-icon-wrapper">
<path d="M9,9h5L7,0,0,9H5V23a1,1,0,0,0,1,1H8a1,1,0,0,0,1-1Z" fill="#3b82f6"></path>
<path d="M14,17a3,3,0,1,1,3-3A3,3,0,0,1,14,17Zm0-4a1,1,0,1,0,1,1A1,1,0,0,0,14,13Z" data-color="color-2"></path>
<path d="M21,24a3,3,0,1,1,3-3A3,3,0,0,1,21,24Zm0-4a1,1,0,1,0,1,1A1,1,0,0,0,21,20Z" data-color="color-2"></path>
<path d="M13,23a1,1,0,0,1-.707-1.707l9-9a1,1,0,0,1,1.414,1.414l-9,9A1,1,0,0,1,13,23Z" data-color="color-2"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none block w-full p-2.5 opacity-70" type="text" id="rate" name="rate" value="{{ data.rate }}" onchange="set_rate('rate');" readonly>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Time</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Offer valid (hrs)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="number" name="validhrs" min="1" max="48" value="{{ data.validhrs }}">
</div>
</div>
{% if data.debug_ui == true %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Contract Locked (Mins)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="number" name="lockmins" min="10" max="5000" value="{{ data.lockmins }}">
</div>
{% if data.swap_style != 'xmr' %}
<div class="text-sm text-gray-500 mt-1.5">(Participate txn will be locked for half the time.)</div>
{% endif %}
</div>
{% else %}
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Contract locked (Hours)</p>
<div class="relative">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<path d="M15.6,13.873a2.273,2.273,0,0,1-.825,1.833,4.1,4.1,0,0,1-2.31.829v1.47h-.982V16.563a7.95,7.95,0,0,1-3.07-.617V14.053a8.328,8.328,0,0,0,1.5.545,8.019,8.019,0,0,0,1.568.28V12.654L11,12.468a5.357,5.357,0,0,1-2.012-1.216A2.332,2.332,0,0,1,8.4,9.627a2.123,2.123,0,0,1,.814-1.71,4.143,4.143,0,0,1,2.27-.812v-1.1h.982V7.074a8.126,8.126,0,0,1,2.97.66l-.674,1.678a7.768,7.768,0,0,0-2.3-.559v2.116a11.073,11.073,0,0,1,1.991.932,2.733,2.733,0,0,1,.867.868A2.146,2.146,0,0,1,15.6,13.873ZM10.558,9.627a.678.678,0,0,0,.219.52,2.569,2.569,0,0,0,.707.42V8.881Q10.559,9.017,10.558,9.627Zm2.884,4.354a.646.646,0,0,0-.244-.509,3.173,3.173,0,0,0-.732-.431v1.786Q13.441,14.662,13.442,13.981Z" stroke="none" fill="#3b82f6"></path>
<polyline points="5.346 7.929 6.932 2.237 1.135 2.966"></polyline>
<path data-cap="butt" d="M11.789,23A11,11,0,0,1,6.932,2.237"></path>
<polyline points="18.654 16.071 17.068 21.763 22.865 21.034"></polyline>
<path data-cap="butt" d="M12.211,1a11,11,0,0,1,4.857,20.763"></path>
</g>
</svg>
</div>
<input class="pl-10 appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="number" name="lockhrs" min="1" max="96" value="{{ data.lockhrs }}">
</div>
{% if data.swap_style != 'xmr' %}
<div class="text-sm text-gray-500 mt-1.5">(Participate txn will be locked for half the time.)</div>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-b border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Strategy (BETA)</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/2 p-3">
<p class="mb-1.5 font-medium text-base text-coolGray-800">Auto Accept Strategy</p>
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3b82f6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="5" stroke="#3b82f6" data-cap="butt"></circle>
<polygon points="5 6 2 4 5 2 5 6" fill="#3b82f6" stroke="none"></polygon>
<polygon points="19 18 22 20 19 22 19 18" fill="#3b82f6" stroke="none"></polygon>
<polygon points="5 6 2 4 5 2 5 6"></polygon>
<line x1="5" y1="4" x2="9" y2="4"></line>
<polygon points="19 18 22 20 19 22 19 18"></polygon>
<line x1="19" y1="20" x2="15" y2="20"></line>
</g>
</svg>
</div>
<select class="pl-10 appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" name="automation_strat_id">
<option value="-1" {% if data.automation_strat_id==-1 %} selected{% endif %}>None</option>
{% for a in automation_strategies %}
<option value="{{ a[0] }}" {% if data.automation_strat_id==a[0] %} selected{% endif %}>{{ a[1] }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="py-6 border-coolGray-100">
<div class="w-full md:w-10/12">
<div class="flex flex-wrap -m-3">
<div class="w-full md:w-1/3 p-3">
<p class="text-sm text-coolGray-800 font-semibold">Options</p>
</div>
<div class="w-full md:flex-1 p-3">
<div class="form-check form-check-inline">
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain float-left mr-2 cursor-pointer" type="checkbox" id="amt_var" name="amt_var" value="av" {% if data.amt_var==true %} checked="checked" {% endif %} disabled>
<label class="form-check-label inline-block text-gray-800" for="inlineCheckbox2">Amount Variable</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain float-left mr-2 cursor-pointer" type="checkbox" id="rate_var" name="rate_var" value="rv" {% if data.rate_var==true %} checked="checked" {% endif %} disabled>
<label class="form-check-label bg-gray-50inline-block text-gray-800" for="inlineCheckbox3">Rate Variable</label>
</div>
</div>
</div>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5">
<button name="step1" type="submit" value="Back" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Back</span> </button>
</div>
<div class="w-full md:w-auto p-1.5">
<button name="check_offer" value="Continue" 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">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#ffffff" stroke-linejoin="round">
<circle cx="12" cy="12" r="11"></circle>
<polyline points="11 8 15 12 11 16" stroke="#ffffff"></polyline>
</g>
</svg> <span>Continue</span> </button>
</div>
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
<input type="hidden" name="addr_to" value="{{ data.addr_to }}">
<input type="hidden" name="addr_from" value="{{ data.addr_from }}">
<input type="hidden" name="coin_from" value="{{ data.coin_from }}">
<input type="hidden" name="coin_to" value="{{ data.coin_to }}">
{% if data.amt_var==true %}
<input type="hidden" name="amt_var" value="true">
{% endif %}
{% if data.rate_var==true %}
<input type="hidden" name="rate_var" value="true">
{% endif %}
</form>
<script src="static/js/new_offer.js"></script>
</div>
</div>
</div>
</div>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,61 +1,349 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<h3>Network Offers</h3> <section class="bg-white p-5 mt-5">
{% if refresh %} <div class="flex flex-wrap items-center -m-2">
<p>Page Refresh: {{ refresh }} seconds</p> <div class="w-full md:w-1/2 p-2">
{% endif %} <ul class="flex flex-wrap items-center gap-x-3 mb-2">
{% for m in messages %} <li>
<p>{{ m }}</p> <a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
{% endfor %} <p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<!-- todo fix link -->
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">{{ page_type }}</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<form method="post"> <section class="py-4">
<table> <div class="container px-4 mx-auto">
<tr><td>Coin From</td><td> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<select name="coin_from"><option value="-1"{% if filters.coin_from==-1 %} selected{% endif %}>-- Any Coin --</option> <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
{% for c in coins_from %} <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<option value="{{ c[0] }}"{% if filters.coin_from==c[0] %} selected{% endif %}>{{ c[1] }}</option> <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="">
{% endfor %} <div class="relative z-20 flex flex-wrap items-center -m-3">
</select> <div class="w-full md:w-1/2 p-3">
</td> <h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">{{ page_type }}</h2>
<td>Coin To</td><td> <p class="font-semibold text-coolGray-200">{{ page_type_description }}</p>
<select name="coin_to"><option value="-1"{% if filters.coin_to==-1 %} selected{% endif %}>-- Any Coin --</option> </div>
{% for c in coins %} </div>
<option value="{{ c[0] }}"{% if filters.coin_to==c[0] %} selected{% endif %}>{{ c[1] }}</option> </div>
{% endfor %} </div>
</select> </section>
</td></tr>
<tr><td>Sort By</td><td> {% for m in messages %}
<select name="sort_by">
<option value="created_at"{% if filters.sort_by=='created_at' %} selected{% endif %}>Created At</option>
<option value="rate"{% if filters.sort_by=='rate' %} selected{% endif %}>Rate</option>
</select>
<select name="sort_dir">
<option value="asc"{% if filters.sort_dir=='asc' %} selected{% endif %}>Ascending</option>
<option value="desc"{% if filters.sort_dir=='desc' %} selected{% endif %}>Descending</option>
</select>
</td></tr>
<tr><td>Sent From Node</td><td>
<select name="sent_from">
<option value="any"{% if filters.sent_from=='any' %} selected{% endif %}>Any</option>
<option value="only"{% if filters.sent_from=='only' %} selected{% endif %}>Only</option>
</select>
</td></tr>
<tr><td><input type="submit" name='applyfilters' value="Apply Filters"></td><td><input type="submit" name='clearfilters' value="Clear Filters"></td></tr> <section class="py-4">
<tr><td><input type="submit" name='pageback' value="Page Back"></td><td>Page: {{ filters.page_no }}</td><td><input type="submit" name='pageforwards' value="Page Forwards"></td></tr> <div class="container px-4 mx-auto">
</table> <div class="p-6 bg-green-100 border border-green-200 rounded-md">
<input type="hidden" name="formid" value="{{ form_id }}"> <div class="flex flex-wrap justify-between items-center -m-2">
<input type="hidden" name="pageno" value="{{ filters.page_no }}"> <div class="flex-1 p-2">
</form> <div class="flex flex-wrap -m-1">
<div class="w-auto p-1">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full pt-2">
<form method="post">
<div class="flex justify-between items-center pb-4 bg-white">
<div class="bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<select name="coin_to" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<!--<option value="-1"{% if filters.coin_to==-1 %} selected{% endif %}>I'm buying:</option>-->{% for c in coins %}
<option value="{{ c[0] }}" "{% if filters.coin_to==c[0] %} selected{% endif %}">BUYING: {{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="flex items-center ">
<div class="w-full md:w-auto p-1.5 ">
<p class="text-sm font-heading"> <svg aria-hidden="true " class="w-5 h-5 " fill="currentColor " viewBox="0 0 20 20 " xmlns="http://www.w3.org/2000/svg ">
<path fill-rule="evenodd " d="M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z " clip-rule="evenodd "></path>
</svg></p>
</div>
</div>
<div class="w-full md:w-auto p-1.5 ">
<div class="relative ">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2 " width="16 " height="16 " viewBox="0 0 16 16 " fill="none " xmlns="http://www.w3.org/2000/svg ">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z " fill="#8896AB ">
</path>
</svg>
<select name="coin_from " class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<!--<option value="-1 "{% if filters.coin_from==-1 %} selected{% endif %}>SELLING</option>-->
{% for c in coins_from %}
<option value="{{ c[0] }}" "{% if filters.coin_from==c[0] %} selected{% endif %}">SELLING: {{ c[1] }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading bold">Sort By:</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<select name="sort_by" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<option value="created_at" {% if filters.sort_by=='created_at' %} selected{% endif %}>Time Created</option>
<option value="rate" {% if filters.sort_by=='rate' %} selected{% endif %}>Rate</option>
</select>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<select name="sort_dir" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<option value="asc" {% if filters.sort_dir=='asc' %} selected{% endif %}>Ascending</option>
<option value="desc" {% if filters.sort_dir=='desc' %} selected{% endif %}>Descending</option>
</select>
</div>
</div>
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading bold">Sent From Node:</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<svg class="absolute right-4 top-1/2 transform -translate-y-1/2" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3333 6.1133C11.2084 5.98913 11.0395 5.91943 10.8633 5.91943C10.6872 5.91943 10.5182 5.98913 10.3933 6.1133L8.00001 8.47329L5.64001 6.1133C5.5151 5.98913 5.34613 5.91943 5.17001 5.91943C4.99388 5.91943 4.82491 5.98913 4.70001 6.1133C4.63752 6.17527 4.58792 6.249 4.55408 6.33024C4.52023 6.41148 4.50281 6.49862 4.50281 6.58663C4.50281 6.67464 4.52023 6.76177 4.55408 6.84301C4.58792 6.92425 4.63752 6.99799 4.70001 7.05996L7.52667 9.88663C7.58865 9.94911 7.66238 9.99871 7.74362 10.0326C7.82486 10.0664 7.912 10.0838 8.00001 10.0838C8.08801 10.0838 8.17515 10.0664 8.25639 10.0326C8.33763 9.99871 8.41136 9.94911 8.47334 9.88663L11.3333 7.05996C11.3958 6.99799 11.4454 6.92425 11.4793 6.84301C11.5131 6.76177 11.5305 6.67464 11.5305 6.58663C11.5305 6.49862 11.5131 6.41148 11.4793 6.33024C11.4454 6.249 11.3958 6.17527 11.3333 6.1133Z" fill="#8896AB"> </path>
</svg>
<select name="sent_from" class="appearance-none pr-10 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5">
<option value="any" {% if filters.sent_from=='any' %} selected{% endif %}>Any</option>
<option value="only" {% if filters.sent_from=='only' %} selected{% endif %}>Only</option>
</select>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<button type="submit" name='clearfilters' value="Clear Filters" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2 w-5 h-5" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#556987" stroke-linejoin="round" class="nc-icon-wrapper">
<line x1="20" y1="2" x2="12.329" y2="11.506"></line>
<path d="M11,11a2,2,0,0,1,2,2,3.659,3.659,0,0,1-.2.891A9.958,9.958,0,0,0,13.258,23H1C1,16.373,4.373,11,11,11Z"></path>
<line x1="18" y1="15" x2="23" y2="15" stroke="#556987"></line>
<line x1="17" y1="19" x2="23" y2="19" stroke="#556987"></line>
<line x1="19" y1="23" x2="23" y2="23" stroke="#556987"></line>
<path d="M8.059,11.415A3.9,3.9,0,0,0,12,16c.041,0,.079-.011.12-.012" data-cap="butt"></path>
<path d="M5,23a13.279,13.279,0,0,1,.208-3.4" data-cap="butt"></path>
<path d="M9.042,23c-.688-1.083-.313-3.4-.313-3.4" data-cap="butt"></path>
</g>
</svg> <span>Clear Filters</span> </button>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<div class="relative">
<button type="submit" name='applyfilters' value="Apply Filters" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm 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">
<svg class="mr-2 w-5 h-5" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#ffff" stroke-linejoin="round" class="nc-icon-wrapper">
<rect x="2" y="2" width="7" height="7"></rect>
<rect x="15" y="15" width="7" height="7"></rect>
<rect x="2" y="15" width="7" height="7"></rect>
<polyline points="15 6 17 8 22 3" stroke="#fff"></polyline>
</g>
</svg> <span>Apply Filters</span> </button>
</div>
</div>
</div>
</div>
</div>
</div>
<table> <div class="container px-0 mx-auto mt-5">
<tr><th>At</th><th>From</th><th>Recipient</th><th>Offer ID</th><th>Coin From</th><th>Coin To</th><th>Amount From</th><th>Amount To</th><th>Rate</th><th>Amount From Swapped</th></tr> <div class="overflow-x-auto relative border sm:rounded-lg">
{% for o in offers %} <table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<tr><td>{{ o[0] }}</td><td class="monospace">{{ o[8]|truncate(12, True) }}{% if o[9]==true %} <b>Sent</b>{% endif %}</td><td class="monospace">{{ o[7] }}</td><td><a class="monospace" href=/offer/{{ o[1] }}>{{ o[1] }}</a></td><td>{{ o[2] }}</td><td>{{ o[3] }}</td><td>{{ o[4] }}</td><td>{{ o[5] }}</td><td>{{ o[6] }}</td><td>{{ o[10] }}</td></tr>
{% endfor %}
</table>
<p><a href="/">home</a></p> <thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
</body></html> <tr>
<th scope="col" class="py-3 px-6"> TIME AT </th>
<th scope="col" class="py-3 px-6"> From </th>
<th scope="col" class="py-3 px-6"> Recipient </th>
<!--<th scope="col" class="py-3 px-6">ID</th>-->
<th scope="col" class="py-4 px-7"> BUYING </th>
<th scope="col" class="py-3 px-7"> SELLING </th>
<th scope="col" class="py-3 px-6"> Amount From </th>
<th scope="col" class="py-3 px-6"> Amount To </th>
<th scope="col" class="py-3 px-6"> Rate </th>
<!--Todo: Add swap + id back -->
<!--<th scope="col" class="py-3 px-6">Amount From Swapped </th>-->
<th scope="col" class="py-3 px-6"> Trade </th>
</tr>
</thead>
<tbody>
{% for o in offers %}
<tr class="bg-white border-t hover:bg-gray-50">
<th scope="row" class="flex items-center py-7 px-46 text-gray-900 whitespace-nowrap">
<svg class="w-5 h-5 rounded-full ml-5" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="none" stroke="#3B82F6" stroke-linejoin="round" class="nc-icon-wrapper">
<circle cx="12" cy="12" r="11"></circle>
<polyline points=" 12,6 12,12 18,12 " stroke="#3B82F6"></polyline>
</g>
</svg>
<div class="pl-3">
<div class="font-semibold text-xs">{{ o[0] }}</div>
</div>
</th>
<!--<td class="py-4 px-6 text-xs"><a class="monospace text-xs" href=/offer/{{ o[1] }}>{{ o[1]|truncate(6, True) }}</a></td>-->
<!--<td class="py-4 px-6 text-xs monospace">{{ o[8] }}{% if o[9]==true %} <b>Sent</b>{% endif %}</td>-->
<!--Todo: Add link back -->
<td class="py-4 px-6 monospace">{{ o[7] }} </td>
<td class="py-4 px-6 text-xs monospace">{{ o[8] }}{% if o[9]==true %} <b></b>{% endif %}</td>
<td class="py-4 px-6"><span class="inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded"><img class="h-6" src="/static/images/coins/{{ o[3] }}.png" alt=""></span> {{ o[3] }}</td>
<td class="py-4 px-6"><span class="inline-flex align-middle items-center justify-center w-9 h-10 bg-white-50 rounded"><img class="h-6" src="/static/images/coins/{{ o[2] }}.png" alt=""></span> {{ o[2] }}</td>
<td class="py-4 px-6">{{ o[4] }}</td>
<td class="py-4 px-6">{{ o[5] }}</td>
<td class="py-4 px-6">{{ o[6] }}</td>
<!-- <td class="py-4 px-6">{{ o[10] }}</td>-->
<td class="py-4 px-6"> <a class="inline-block w-20 py-1 px-2 font-medium text-center text-sm rounded-md shadow-button {% if o[9]==true %} bg-white text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 {% else %} bg-blue-500 text-white {% endif %}" href="/offer/{{ o[1] }}">{% if o[9]==true %}Edit {% else %} Trade {% endif %}</a>
</td>
</tr>
</tbody>
{% endfor %}
</table>
<input type="hidden" name="formid" value="{{ form_id }}">
<input type="hidden" name="pageno" value="{{ filters.page_no }}">
</div>
</div>
<div class="pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5">
<button type="submit" name='pageback' value="Page Back" class="outline-none flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg aria-hidden="true" class="mr-2 w-5 h-5" fill="#556987" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M7.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l2.293 2.293a1 1 0 010 1.414z" clip-rule="evenodd"></path>
</svg> <span>Page Back</span> </button>
</div>
<div class="flex items-center">
<div class="w-full md:w-auto p-1.5">
<p class="text-sm font-heading">Page: {{ filters.page_no }}</p>
</div>
</div>
<div class="w-full md:w-auto p-1.5">
<button type="submit" name='pageforwards' value="Page Forwards" class="outline-none flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none"> <span>Page Forwards</span>
<svg aria-hidden="true" class="ml-2 w-5 h-5" fill="#556987" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z" clip-rule="evenodd"></path>
</svg>
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,28 +1,199 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<h3>RPC Console</h3> <section class="bg-white p-5 mt-5">
{% for m in messages %} <div class="flex flex-wrap items-center -m-2">
<p>{{ m }}</p> <div class="w-full md:w-1/2 p-2">
{% endfor %} <ul class="flex flex-wrap items-center gap-x-3 mb-2">
<li>
<a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/rpc">RPC Console</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<form method="post"> <section class="py-4">
<p> <div class="container px-4 mx-auto">
<select name="coin_type"><option value="-1"{% if coin_type==-1 %} selected{% endif %}>-- Select Coin --</option> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% for c in coins %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<option value="{{ c[0] }}"{% if coin_type==c[0] %} selected{% endif %}>{{ c[1] }}</option> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
{% endfor %} <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="">
</select><br/> <div class="relative z-20 flex flex-wrap items-center -m-3">
<input type="text" name="cmd"><br/> <div class="w-full md:w-1/2 p-3">
<input type="submit" value="Submit"> <h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">RPC Console</h2>
<input type="hidden" name="formid" value="{{ form_id }}"> <p class="font-semibold text-coolGray-200"></p>
</p> </div>
</form> </div>
</div>
</div>
</section>
{% if result %} {% for m in messages %}
<textarea class="monospace" rows="40" cols="160">
{{ result }}
</textarea>
{% endif %}
<p><a href="/">home</a></p> <section class="py-4">
</body></html> <div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<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 px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<form method="post">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Coins</th>
<th scope="col">Input</th>
</tr>
</thead>
<tr class="bg-white border-t">
<td class="py-4 px-6 bold w-96">
<select class="pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-1/3 p-2.5" name="coin_type">
<option value="-1" {% if coin_type==-1 %} selected{% endif %}>Select Coin</option>
{% for c in coins %}
<option value="{{ c[0] }}" {% if coin_type==c[0] %} selected{% endif %}>{{ c[1] }}</option>
{% endfor %}
</select>
</td>
<td class="py-4 w-96 pr-5"><input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 w-full focus:border-blue-500 block p-2.5" type="text" name="cmd"></td>
</tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button value="Submit" 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">
<span>Submit</span> </button>
</div>
</div>
</div>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
{% if result %}
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">RPC console output:</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 pl-5 pr-5">
<textarea class="block p-2.5 text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 w-full monospace" rows="15">
{{ result }}
</textarea>
</td>
</tr>
</table>
</div>
</div>
{% endif %}
</form>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,86 +1,281 @@
{% include 'header.html' %} {% include 'header.html' %}
<h3>Settings</h3> <div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="#">Settings</a></li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</ul>
</div>
</div>
</section>
{% for m in messages %} <section class="py-4">
<p>{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Settings</h2>
<p class="font-semibold text-coolGray-200">Manage your Basicswap and Coins settings</p>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% for m in messages %}
{% for c in chains %} <section class="py-4">
<h4>{{ c.name|capitalize }}</h4> <div class="container px-4 mx-auto">
<table> <div class="p-6 bg-green-100 border border-green-200 rounded-md">
{% if c.connection_type %} <div class="flex flex-wrap justify-between items-center -m-2">
<tr><td>Connection Type</td><td>{{ c.connection_type }}</td></tr> <div class="flex-1 p-2">
{% endif %} <div class="flex flex-wrap -m-1">
{% if c.manage_daemon is defined %} <div class="w-auto p-1">
{% if c.name == 'monero' %} <svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<tr><td>Manage Daemon</td><td> <path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
<select name="managedaemon_{{ c.name }}"> </svg>
<option value="true"{% if c.manage_daemon==true %} selected{% endif %}>True</option> </div>
<option value="false"{% if c.manage_daemon==false %} selected{% endif %}>False</option> <div class="flex-1 p-1">
</select></td></tr> <h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
<tr><td>Daemon RPC Host</td><td><input type="text" name="rpchost_{{ c.name }}" value="{{ c.rpchost }}"></td></tr> </div>
<tr><td>Daemon RPC Port</td><td><input type="text" name="rpcport_{{ c.name }}" value="{{ c.rpcport }}"></td></tr> </div>
<tr><td colspan=2>Remote Daemon Urls<br/> </div>
List of public nodes to use if "Automatically Select Daemon" is true.<br/> <div class="w-auto p-2">
Add one entry per line, eg:<br/> <a href="#">
node.xmr.to:18081<br/> <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<textarea class="monospace" name="remotedaemonurls_{{ c.name }}" rows="10" cols="100"> <path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
{{ c.remotedaemonurls }} </svg>
</textarea> </a>
</td></tr> </div>
<tr><td>Automatically Select Daemon</td><td> </div>
<select name="autosetdaemon_{{ c.name }}"> </div>
<option value="true"{% if c.autosetdaemon==true %} selected{% endif %}>True</option> </div>
<option value="false"{% if c.autosetdaemon==false %} selected{% endif %}>False</option> </section>
</select></td></tr>
{% else %}
<tr><td>Manage Daemon</td><td>{{ c.manage_daemon }}</td></tr>
{% endif %}
{% endif %}
{% if c.manage_wallet_daemon is defined %}
<tr><td>Manage Wallet Daemon</td><td>{{ c.manage_wallet_daemon }}</td></tr>
{% endif %}
<tr><td>Chain Lookups</td><td>
<select name="lookups_{{ c.name }}">
<option value="local"{% if c.lookups=='local' %} selected{% endif %}>Local Node</option>
<option value="explorer"{% if c.lookups=='explorer' %} selected{% endif %}>Explorer</option>
</select></td></tr>
{% if c.name == 'monero' %}
<tr><td>Transaction Fee Priority</td><td>
<select name="fee_priority_{{ c.name }}">
<option value="0"{% if c.fee_priority==0 %} selected{% endif %}>Default</option>
<option value="1"{% if c.fee_priority==1 %} selected{% endif %}>Low</option>
<option value="2"{% if c.fee_priority==2 %} selected{% endif %}>Medium</option>
<option value="3"{% if c.fee_priority==3 %} selected{% endif %}>High</option>
</select></td></tr>
{% else %}
<tr><td>Blocks Confirmed Target</td><td><input type="number" name="conf_target_{{ c.name }}" min="1" max="32" value="{{ c.conf_target }}"></td></tr>
{% endif %}
{% if c.name == 'particl' %}
<tr><td>Anon Tx Ring Size</td><td><input type="number" name="rct_ring_size_{{ c.name }}" min="3" max="32" value="{{ c.anon_tx_ring_size }}"></td></tr>
{% endif %}
<tr><td><input type="submit" name="apply_{{ c.name }}" value="Apply">
{% if c.can_disable == true %}
<input type="submit" name="disable_{{ c.name }}" value="Disable" onclick="return confirmPopup('Disable', '{{ c.name|capitalize }}');">
{% endif %}
{% if c.can_reenable == true %}
<input type="submit" name="enable_{{ c.name }}" value="Enable" onclick="return confirmPopup('Enable', '{{ c.name|capitalize }}');">
{% endif %}
</td></tr>
</table>
{% endfor %}
</table>
<input type="hidden" name="formid" value="{{ form_id }}"> {% endfor %}
</form>
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<form method="post">
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<div class="pb-6 border-coolGray-100">
<div class="flex flex-wrap items-center justify-between -m-2">
<div class="w-full pt-2">
{% for c in chains %}
<section class="bg-white p-3">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">{{ c.name|capitalize }}</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Name</th>
<th scope="col">Setting</th>
</tr>
</thead>
{% if c.connection_type %}
<tr>
<td class="py-4 px-6 bold w-96 bold">Connection Type</td>
<td class="py-4">{{ c.connection_type }}</td>
</tr>
{% endif %}
{% if c.manage_daemon is defined %}
{% if c.name == 'monero' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">Manage Daemon</td>
<td>
<select class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="managedaemon_{{ c.name }}">
<option value="true" {% if c.manage_daemon==true %} selected{% endif %}>True</option>
<option value="false" {% if c.manage_daemon==false %} selected{% endif %}>False</option>
</select>
</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Daemon RPC Host</td>
<td><input type="text" class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="rpchost_{{ c.name }}" value="{{ c.rpchost }}"></td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Daemon RPC Port</td>
<td><input type="text" class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="rpcport_{{ c.name }}" value="{{ c.rpcport }}"></td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 w-96" colspan=2>
<label for="message" class="block mb-2 text-sm font-medium text-gray-900">Remote Daemon Urls List of public nodes to use if "Automatically Select Daemon" is true. Add one entry per line, eg:
<b>node.xmr.to:18081</b< /label>
<textarea class="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 monospace" name="remotedaemonurls_{{ c.name }}" rows="4" cols="100">
{{ c.remotedaemonurls }}
</textarea>
</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Automatically Select Daemon</td>
<td>
<select class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="autosetdaemon_{{ c.name }}">
<option value="true" {% if c.autosetdaemon==true %} selected{% endif %}>True</option>
<option value="false" {% if c.autosetdaemon==false %} selected{% endif %}>False</option>
</select>
</td>
</tr>
{% else %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Manage Daemon</td>
<td>{{ c.manage_daemon }}</td>
</tr>
{% endif %}
{% endif %}
{% if c.manage_wallet_daemon is defined %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Manage Wallet Daemon</td>
<td>{{ c.manage_wallet_daemon }}</td>
</tr>
{% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Chain Lookups</td>
<td>
<select class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="lookups_{{ c.name }}">
<option value="local" {% if c.lookups=='local' %} selected{% endif %}>Local Node</option>
<option value="explorer" {% if c.lookups=='explorer' %} selected{% endif %}>Explorer</option>
</select>
</td>
</tr>
{% if c.name == 'monero' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Transaction Fee Priority</td>
<td>
<select class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="fee_priority_{{ c.name }}">
<option value="0" {% if c.fee_priority==0 %} selected{% endif %}>Default</option>
<option value="1" {% if c.fee_priority==1 %} selected{% endif %}>Low</option>
<option value="2" {% if c.fee_priority==2 %} selected{% endif %}>Medium</option>
<option value="3" {% if c.fee_priority==3 %} selected{% endif %}>High</option>
</select>
</td>
</tr>
{% else %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Blocks Confirmed Target</td>
<td><input type="number" class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="conf_target_{{ c.name }}" min="1" max="32" value="{{ c.conf_target }}"></td>
</tr>
{% endif %}
{% if c.name == 'particl' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96 bold">Anon Tx Ring Size</td>
<td><input type="number" class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="rct_ring_size_{{ c.name }}" min="3" max="32" value="{{ c.anon_tx_ring_size }}"></td>
</tr>
{% endif %}
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="apply_{{ c.name }}" value="Apply" 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">
<span>Apply</span> </button>
</div>
{% if c.can_disable == true %}
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="disable_{{ c.name }}" value="Disable" onclick="return confirmPopup('Disable', '{{ c.name|capitalize }}');" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Disable</span> </button>
</div>
{% endif %}
{% if c.can_reenable == true %}
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="enable_{{ c.name }}" value="Enable" onclick="return confirmPopup('Enable', '{{ c.name|capitalize }}');" 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">
<span>Enable</span> </button>
</div>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</table>
<input type="hidden" name="formid" value="{{ form_id }}">
</form>
</div>
</div>
</div>
</div>
</div>
</section>
<p><a href="/">home</a></p>
<script> <script>
function confirmPopup(action, coin_name) { function confirmPopup(action, coin_name) {
return confirm(action + " " + coin_name + "?\nWill shutdown basicswap."); return confirm(action + " " + coin_name + "?\nWill shutdown basicswap.");
} }
</script> </script>
</body></html> {% include 'footer.html' %}
</body>
</html>

View file

@ -1,57 +1,381 @@
{% include 'header.html' %} {% include 'header.html' %}
<h3>Active SMSG Addresses</h3> <div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/smsgaddresses">SMSG Addresses</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
{% for m in messages %} <section class="py-4">
<p>{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Active SMSG Addresses</h2>
<p class="font-semibold text-coolGray-200"></p>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% for m in messages %}
{% if data.edit_address %} <section class="py-4">
<input type="hidden" name="edit_address_id" value="{{ data.addr_data.id }}"> <div class="container px-4 mx-auto">
<input type="hidden" name="edit_address" value="{{ data.addr_data.addr }}"> <div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<br/><h4>Edit Address {{ data.addr_data.addr }}</h4> {% endfor %}
<table>
<tr><td>Pubkey</td><td>{{ data.addr_data.pubkey }}</td></tr>
<tr><td>Active</td><td><select name="active_ind">
<option value="1"{% if data.addr_data.active_ind==1 %} selected{% endif %}>True</option>
<option value="0"{% if data.addr_data.active_ind==0 %} selected{% endif %}>False</option>
</select></td></tr>
<tr><td>Note</td><td><input name="addressnote" type="text" value="{{ data.addr_data.note }}" maxlength="30"></td></tr>
<tr><td><input type="submit" name="saveaddr" value="Save Address"><input type="submit" name="cancel" value="Cancel"></td></tr> {% for m in err_messages %}
</table>
{% elif data.new_address %}
<br/><h4>New Receiving Address</h4>
<table>
<tr><td>Note</td><td><input name="addressnote" type="text" value="" maxlength="30"></td></tr>
<tr><td><input type="submit" name="createnewaddr" value="Create Address"><input type="submit" name="cancel" value="Cancel"></td></tr> <section class="py-4">
</table> <div class="container px-4 mx-auto">
{% elif data.new_send_address %} <div class="p-6 bg-red-100 border border-red-200 rounded-md">
<br/><h4>Add Sending Address</h4> <div class="flex flex-wrap justify-between items-center -m-2">
<table> <div class="flex-1 p-2">
<tr><td>Pubkey</td><td><input name="addresspubkey" type="text" value="" maxlength="66"></td></tr> <div class="flex flex-wrap -m-1">
<tr><td>Note</td><td><input name="addressnote" type="text" value="" maxlength="30"></td></tr> <div class="w-auto p-1">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<tr><td><input type="submit" name="createnewsendaddr" value="Add Address"><input type="submit" name="cancel" value="Cancel"></td></tr> {% endfor %}
</table>
{% else %}
<table>
<tr><th>Address</th><th>Type</th><th>Active</th><th>Created At</th><th>Note</th><th>Action</th></tr>
<tr><td><b class="monospace">{{ network_addr }}</b></td><td>Network Address<td/></tr>
{% for sa in smsgaddresses %}
<tr><td class="monospace">{{ sa.addr }}</td><td>{{ sa.type }}</td><td>{{ sa.active_ind }}</td><td>{{ sa.created_at | formatts }}</td><td>{{ sa.note }}</td><td><input type="submit" name="editaddr_{{ sa.id }}" value="Edit"></td></tr>
{% endfor %}
</table>
<input type="submit" name="shownewaddr" value="New Address"> <section class="bg-white">
<input type="submit" name="showaddaddr" value="Add Sending Address"> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
{% endif %} <div class="pb-6 border-coolGray-100">
<input type="hidden" name="formid" value="{{ form_id }}"> <div class="flex flex-wrap items-center justify-between -m-2">
</form> <div class="w-full pt-2">
<p><a href="/">home</a></p> <form method="post">
</body></html>
{% if data.edit_address %}
<input type="hidden" name="edit_address_id" value="{{ data.addr_data.id }}">
<input type="hidden" name="edit_address" value="{{ data.addr_data.addr }}">
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Edit Address: {{ data.addr_data.addr }}</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">SETTING</th>
<th scope="col">VALUE</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 monospace bold">Pubkey</td>
<td class="py-4">{{ data.addr_data.pubkey }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">Active</td>
<td>
<select class="pappearance-none pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="active_ind">
<option value="1" {% if data.addr_data.active_ind==1 %} selected{% endif %}>True</option>
<option value="0" {% if data.addr_data.active_ind==0 %} selected{% endif %}>False</option>
</select>
</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">Note</td>
<td>
<input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="addressnote" type="text" value="{{ data.addr_data.note }}" maxlength="30">
</td>
</tr>
<tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="saveaddr" value="Save Address" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Save Address</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="cancel" value="cancel" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<svg class="mr-2" xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 24 24">
<g fill="#556987">
<path fill="#556987" d="M12,3c1.989,0,3.873,0.65,5.43,1.833l-3.604,3.393l9.167,0.983L22.562,0l-3.655,3.442 C16.957,1.862,14.545,1,12,1C5.935,1,1,5.935,1,12h2C3,7.037,7.037,3,12,3z"></path>
<path data-color="#556987" d="M12,21c-1.989,0-3.873-0.65-5.43-1.833l3.604-3.393l-9.167-0.983L1.438,24l3.655-3.442 C7.043,22.138,9.455,23,12,23c6.065,0,11-4.935,11-11h-2C21,16.963,16.963,21,12,21z"></path>
</g>
</svg> <span>Cancel</span> </button>
</div>
</div>
</div>
</div>
{% elif data.new_address %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">New Receiving Address</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">SETTING</th>
<th scope="col">VALUE</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Note</td>
<td><input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="addressnote" type="text" value="" maxlength="30"></td>
</tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="createnewaddr" value="Create Address" 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">
<span>Create Address</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="cancel" value="Cancel" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Cancel</span> </button>
</div>
</div>
</div>
</div>
{% elif data.new_send_address %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Add Sending Address</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">SETTING</th>
<th scope="col">VALUE</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Pubkey</td>
<td><input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="addresspubkey" type="text" value="" maxlength="66"></td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Note</td>
<td><input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" name="addressnote" type="text" value="" maxlength="30"></td>
</tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="createnewsendaddr" value="Add Address" 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">
<span>Add Address</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="cancel" value="Cancel" type="submit" class="flex flex-wrap justify-center w-full px-4 py-2.5 font-medium text-sm text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300 bg-white rounded-md shadow-button focus:ring-0 focus:outline-none">
<span>Cancel</span> </button>
</div>
</div>
</div>
</div>
{% else %}
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Address</th>
<th scope="col">Type</th>
<th scope="col">Active</th>
<th scope="col">Created At</th>
<th scope="col">Note</th>
<th scope="col">Action</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-6 px-6"><b class="monospace">{{ network_addr }}</b></td>
<td class="py-4">Network Address
<td />
<td class="py-4">
<td />
<td class="py-4">
<td />
</tr>
{% for sa in smsgaddresses %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 monospace bold">{{ sa.addr }}</td>
<td class="py-4">{{ sa.type }}</td>
<td>{{ sa.active_ind }}</td>
<td class="py-4">{{ sa.created_at | formatts }}</td>
<td class="py-4">{{ sa.note }}</td>
<td class="py-4"><input class="inline-block w-20 py-1 px-2 font-medium text-center text-sm rounded-md shadow-button bg-white text-coolGray-500 hover:text-coolGray-600 border border-coolGray-200 hover:border-coolGray-300" type="submit" name="editaddr_{{ sa.id }}" value="Edit"></td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="shownewaddr" value="New Address" 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">
<span>New Address</span> </button>
</div>
<div class="w-full md:w-auto p-1.5 ml-2">
<button name="showaddaddr" value="Add Sending Address" 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">
<span>Add Sending Address</span> </button>
</div>
</div>
</div>
</div>
{% endif %}
<input type="hidden" name="formid" value="{{ form_id }}">
</form>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,15 +1,162 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<h3>TOR Information</h3> <section class="bg-white p-5 mt-5">
{% if refresh %} <div class="flex flex-wrap items-center -m-2">
<p>Page Refresh: {{ refresh }} seconds</p> <div class="w-full md:w-1/2 p-2">
{% endif %} <ul class="flex flex-wrap items-center gap-x-3 mb-2">
<li>
<a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/tor">TOR</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<table> <section class="py-4">
<tr><td>Circuit Established</td><td>{{ data.circuit_established }}</td></tr> <div class="container px-4 mx-auto">
<tr><td>Bytes Written</td><td>{{ data.bytes_written }}</td></tr> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<tr><td>Bytes Read</td><td>{{ data.bytes_read }}</td></tr> <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
</table> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">TOR</h2>
<p class="font-semibold text-coolGray-200">TOR connection information</p>
</div>
<div class="w-full md:w-1/2 p-3">
<a id="refresh" href="/tor"><button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh</button></a>
</div>
</div>
</div>
</div>
</section>
<p><a href="/">home</a></p> {% for m in messages %}
</body></html>
<section class="py-4">
<div class="container px-4 mx-auto">
<div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
{% for m in err_messages %}
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% endfor %}
<section class="bg-white">
<div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
<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 px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6 w-80">Name:</th>
<th scope="col" class="py-3">Output:</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 pl-5 pr-5 w-80 bold">TOR Mode</td>
<td td class="py-4">{% if use_tor_proxy == true %} Active {% if tor_established == true %} & Connected{% endif %} {% endif %}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 pl-5 pr-5 w-80 bold">Circuit Established</td>
<td td class="py-4">{{ data.circuit_established }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 pl-5 bold">Bytes Written</td>
<td td class="py-4">{{ data.bytes_written }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 pl-5 pr-5 bold">Bytes Read</td>
<td td class="py-4">{{ data.bytes_read }}</td>
</tr>
</table>
</div>
</div </div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -1,104 +1,351 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/wallets">Wallets</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/wallet/{{ w.ticker }}">{{ w.ticker }}</a></li>
</ul>
</div>
</div>
</section>
<p><a id="refresh" href="/wallet/{{ w.ticker }}">refresh</a></p> <section class="py-4">
<p><a id="back" href="/wallets">back</a></p> <div class="container px-4 mx-auto">
<div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">
<span class="inline-block align-middle"><img class="h-20" src="/static/images/coins/{{ w.name }}.png" alt="">
</span> {{ w.name }} Wallet
</h2>
<p class="font-semibold text-coolGray-200">Manage your {{ w.ticker }} wallet. {% if refresh %} (Page Refresh: {{ refresh }} seconds) {% endif %}</p>
</div>
<div class="w-full md:w-1/2 p-3">
<a id="refresh" href="/wallet/{{ w.ticker }}">
<button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh</button>
</a>
</div>
</div>
</div>
</div>
</section>
<h3>{{ w.name }} Wallet</h3> {% for m in messages %}
{% if refresh %}
<p>Page Refresh: {{ refresh }} seconds</p>
{% endif %}
{% for m in messages %} <section class="py-4">
<p class="infomsg">{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% endfor %}
{% if w.updating %} {% for m in err_messages %}
<h5>Updating</h5>
{% endif %}
{% if w.havedata %}
{% if w.error %}
<p>Error: {{ w.error }}</p>
{% else %}
<table>
<tr><td>Last updated:</td><td>{{ w.lastupdated }}</td></tr> <section class="py-4">
<tr><td>Version:</td><td>{{ w.version }}</td></tr> <div class="container px-4 mx-auto">
<tr><td>Balance:</td><td>{{ w.balance }}</td>{% if w.unconfirmed %}<td>Unconfirmed:</td><td>{{ w.unconfirmed }}</td>{% endif %}</tr> <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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% if w.cid == '1' %} {% endfor %}
<tr><td>Blind Balance:</td><td>{{ w.blind_balance }}</td>{% if w.blind_unconfirmed %}<td>Blind Unconfirmed:</td><td>{{ w.blind_unconfirmed }}</td>{% endif %}</tr>
<tr><td>Anon Balance:</td><td>{{ w.anon_balance }}</td>{% if w.anon_pending %}<td>Anon Pending:</td><td>{{ w.anon_pending }}</td>{% endif %}</tr>
{% endif %}
<tr><td>Blocks:</td><td>{{ w.blocks }} {% if w.known_block_count %} / {{ w.known_block_count }} {% endif %}</td></tr>
<tr><td>Synced:</td><td>{{ w.synced }}</td></tr>
{% if w.bootstrapping %}
<tr><td>Bootstrapping:</td><td>{{ w.bootstrapping }}</td></tr>
{% endif %}
<tr><td>Expected Seed:</td><td>{{ w.expected_seed }}</td>{% if w.expected_seed != true %}<td><input type="submit" name="reseed_{{ w.cid }}" value="Reseed wallet" onclick="return confirmReseed();"></td>{% endif %}</tr>
{% if w.cid == '1' %}
<tr><td>Stealth Address</td><td colspan=2>{{ w.stealth_address }}</td></tr>
{% endif %}
{% if w.cid == '6' %}
<tr><td>Main Address</td><td colspan=2>{{ w.main_address }}</td></tr>
<tr><td><input type="submit" name="newaddr_{{ w.cid }}" value="New Subaddress"></td><td colspan=2>{{ w.deposit_address }}</td></tr>
{% else %}
<tr><td><input type="submit" name="newaddr_{{ w.cid }}" value="New Deposit Address"></td><td colspan=2 id="deposit_address">{{ w.deposit_address }}</td></tr>
{% endif %}
<tr><td><input type="submit" name="withdraw_{{ w.cid }}" value="Withdraw" onclick="return confirmWithdrawal();"></td><td>Amount: <input type="text" name="amt_{{ w.cid }}" value="{{ w.wd_value }}"></td><td>Address: <input type="text" name="to_{{ w.cid }}" value="{{ w.wd_address }}"></td><td>Subtract fee: <input type="checkbox" name="subfee_{{ w.cid }}" {% if w.wd_subfee==true %} checked=checked{% endif %}></td></tr>
{% if w.cid == '1' %}
<tr><td>Type From, To</td><td>
<select 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>
<select 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></td></tr>
{% endif %}
<tr><td>Fee Rate:</td><td>{{ w.fee_rate }}</td><td>Est Fee:</td><td>{{ w.est_fee }}</td></tr>
{% if w.cid != '6' %} <form method="post"> {% if w.updating %}
{% if w.show_utxo_groups %} <h5>Updating</h5> {% endif %} {% if w.havedata %} {% if w.error %} <p>Error: {{ w.error }}</p> {% else %}
<tr><td colspan=3> <section class="bg-white">
<textarea class="monospace" id="tx_view" rows="10" cols="150" readonly> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
{{ w.utxo_groups }} <div class="pb-6 border-coolGray-100">
</textarea> <div class="flex flex-wrap items-center justify-between -m-2">
</td></tr> <div class="w-full pt-2">
<tr><td><input type="submit" id="create_utxo" name="create_utxo" value="Create UTXO" onclick="return confirmUTXOResize();"></td><td>Amount: <input type="text" name="utxo_value" value="{{ w.utxo_value }}"></td></tr> <div class="container px-0 mx-auto mt-5">
<tr><td> <div class="overflow-x-auto relative border sm:rounded-lg">
<input type="submit" id="closeutxogroups" name="closeutxogroups" value="Close UTXO Groups"> <table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
</td></tr> <thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
{% else %} <tr>
<tr><td> <th scope="col" class="py-3 px-6">Name</th>
<input type="submit" id="showutxogroups" name="showutxogroups" value="Show UTXO Groups"> <th scope="col">Setting</th>
</td></tr> </tr>
{% endif %} </thead>
</table> <tr class="bg-white border-t hover:bg-gray-50">
{% endif %} <td class="py-4 px-6 bold w-96">Last updated:</td>
{% endif %} <td>{{ w.lastupdated }}</td>
{% endif %} <!-- havedata --> </tr>
<tr class="bg-white border-t hover:bg-gray-50 ">
<td class="py-4 px-6 bold">Version:</td>
<td>{{ w.version }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Balance:</td>
<td>{{ w.balance }}</td>{% if w.unconfirmed %}
<td>Unconfirmed:</td>
<td>{{ w.unconfirmed }}</td>{% endif %}
</tr> {% if w.cid == '1' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Blind Balance:</td>
<td>{{ w.blind_balance }}</td>{% if w.blind_unconfirmed %}
<td>Blind Unconfirmed:</td>
<td>{{ w.blind_unconfirmed }}</td>{% endif %}
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Anon Balance:</td>
<td>{{ w.anon_balance }}</td>{% if w.anon_pending %}
<td>Anon Pending:</td>
<td>{{ w.anon_pending }}</td>{% endif %}
</tr> {% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Blocks:</td>
<td>{{ w.blocks }} {% if w.known_block_count %} / {{ w.known_block_count }} {% endif %}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Synced:</td>
<td>{{ w.synced }}</td>
</tr> {% if w.bootstrapping %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Bootstrapping:</td>
<td>{{ w.bootstrapping }}</td>
</tr> {% endif %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Expected Seed:</td>
<td>{{ w.expected_seed }}</td>{% if w.expected_seed != true %}
<td>
<input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" type="submit" name="reseed_{{ w.cid }}" value="Reseed wallet" onclick="return confirmReseed();">
</td>{% endif %}
</tr> {% if w.cid == '1' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Stealth Address</td>
<td colspan=2 class="monospace">{{ w.stealth_address }}</td>
</tr> {% endif %} {% if w.cid == '6' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Main Address</td>
<td colspan=2 class="monospace">{{ w.main_address }}</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">
<input class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" type="submit" name="newaddr_{{ w.cid }}" value="New Subaddress">
</td>
<td colspan=2 class="monospace">{{ w.deposit_address }} </td>
</tr> {% else %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">
<input class="inline-block w-45 py-1 px-4 font-medium text-center text-sm rounded-md shadow-button bg-blue-500 text-white" type="submit" name="newaddr_{{ w.cid }}" value="New Deposit Address">
</td>
<td colspan=2 class="monospace" id="deposit_address">{{ w.deposit_address }}</td>
</tr> {% endif %}
</table>
</div>
</div>
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Withdraw</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">NAME</th>
<th scope="col">INPUT</th>
<th scope="col"></th>
<th scope="col"></th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">
<input class="inline-block w-45 py-1 px-4 font-medium text-center text-sm rounded-md shadow-button bg-blue-500 text-white" type="submit" name="withdraw_{{ w.cid }}" value="Withdraw" onclick="return confirmWithdrawal();">
</td>
<td class="py-4 pr-5">
<input placeholder="Address" class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 w-full block p-2.5" type="text" name="to_{{ w.cid }}" value="{{ w.wd_address }}">
</td>
<td class="py-4 pr-5">
<input placeholder="Amount" class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" type="number" name="amt_{{ w.cid }}" value="{{ w.wd_value }}">
</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold"> Subtract Fee: </td>
<td>
<input class="form-check-input h-4 w-4 border border-gray-300 rounded-sm bg-gray-50 checked:bg-blue-600 checked:border-blue-600 focus:outline-none transition duration-200 mt-1 align-top bg-no-repeat bg-center bg-contain cursor-pointer" type="checkbox" name="subfee_{{ w.cid }}" {% if w.wd_subfee==true %} checked=checked{% endif %}>
</td>
<td></td>
</tr> {% if w.cid == '1' %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold">Type From -> To</td>
<td class="py-4 pr-5">
<select class="pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" 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>
</td>
<td class="py-4 pr-5">
<select class="pr-15 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" 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>
</td>
<td class="py-4"> </td>
</tr> {% endif %}
<tr class="bg-white border-t hover:bg-gray-50 ">
<td class="py-4 px-6 bold">Fee Rate:</td>
<td>{{ w.fee_rate }}</td>
<td><b>Est Fee:</b> {{ w.est_fee }}</td>
<td></td>
</tr>
</table>
</div>
</div> {% if w.cid != '6' %} {% if w.show_utxo_groups %}
<section class="bg-white p-6">
<div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">UTXO Groups</h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Name</th>
<th scope="col">Data</th>
</tr>
</thead>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 w-96">Groups</td>
<td class="py-4 pr-7">
<textarea class=" block p-2.5 text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 w-full monospace" id="tx_view" rows="6" readonly>{{ w.utxo_groups }}</textarea>
</td>
</tr>
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6">
<input type="submit" class="inline-block w-45 py-1 px-4 font-medium text-center text-sm rounded-md shadow-button bg-blue-500 text-white" id="create_utxo" name="create_utxo" value="Create UTXO" onclick="return confirmUTXOResize();">
</td>
<td>
<input placeholder="Amount" class="appearance-none bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block p-2.5" type="number" name="utxo_value" value="{{ w.utxo_value }}">
</td>
</tr>
</table>
</div>
</div>
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button type="submit" id="closeutxogroups" name="closeutxogroups" value="Close UTXO Groups" 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">
<span>Close UTXO Groups</span> </button>
</div>
</div>
</div>
</div> {% else %}
<div class="p-6 pt-10 bg-white bg-opacity-60 rounded-b-md">
<div class="w-full md:w-0/12">
<div class="flex flex-wrap justify-end -m-1.5">
<div class="w-full md:w-auto p-1.5 ml-2">
<button id="showutxogroups" name="showutxogroups" value="Show UTXO Groups" 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">
<span>Show UTXO Groups</span> </button>
</div>
</div>
</div>
</div> {% endif %} {% endif %} {% endif %} {% endif %}
<!-- havedata -->
<input type="hidden" name="formid" value="{{ form_id }}">
</form>
</div>
<input type="hidden" name="formid" value="{{ form_id }}">
</form>
<p><a href="/">home</a></p>
<script> <script>
function confirmReseed() { 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."); {
} return confirm("Are you sure?\nBackup your wallet before and after.\nWon't detect used keys.\nShould only be used for new wallets.");
function confirmWithdrawal() { }
return confirm("Are you sure?");
} function confirmWithdrawal()
function confirmUTXOResize() { {
return confirm("Are you sure?"); return confirm("Are you sure?");
} }
function confirmUTXOResize()
{
return confirm("Are you sure?");
}
</script> </script>
</body></html>
</div>
</div>
</div>
</div>
{% include 'footer.html' %}
</body>
</html>

View file

@ -1,61 +1,183 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/wallets">Wallets</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
</ul>
</div>
</div>
</section>
<p><a id="refresh" href="/wallets">refresh</a></p> <section class="py-4">
<div class="container px-4 mx-auto">
<div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
<img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
<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="">
<div class="relative z-20 flex flex-wrap items-center -m-3">
<div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Wallets</h2>
<p class="font-semibold text-coolGray-200">Check your coin balances and manage your wallets. {% if refresh %} (Page Refresh: {{ refresh }} seconds) {% endif %}</p>
</div>
<div class="w-full md:w-1/2 p-3">
<a id="refresh" href="/wallets">
<button class="block md:ml-auto px-5 py-3 font-medium text-lcg text-white bg-blue-500 hover:bg-blue-600 rounded-md focus:ring-0 focus:outline-none">Refresh</button>
</a>
</div>
</div>
</div>
</div>
</section>
<h3>Wallets</h3> {% for m in messages %}
{% if refresh %}
<p>Page Refresh: {{ refresh }} seconds</p>
{% endif %}
{% for m in messages %} <section class="py-4">
<p>{{ m }}</p> <div class="container px-4 mx-auto">
{% endfor %} <div class="p-6 bg-green-100 border border-green-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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.4732 4.80667C12.4112 4.74418 12.3375 4.69458 12.2563 4.66074C12.175 4.62689 12.0879 4.60947 11.9999 4.60947C11.9119 4.60947 11.8247 4.62689 11.7435 4.66074C11.6623 4.69458 11.5885 4.74418 11.5266 4.80667L6.55989 9.78L4.47322 7.68667C4.40887 7.62451 4.33291 7.57563 4.24967 7.54283C4.16644 7.51003 4.07755 7.49394 3.9881 7.49549C3.89865 7.49703 3.81037 7.51619 3.72832 7.55185C3.64627 7.58751 3.57204 7.63898 3.50989 7.70333C3.44773 7.76768 3.39885 7.84364 3.36605 7.92688C3.33324 8.01011 3.31716 8.099 3.31871 8.18845C3.32025 8.2779 3.3394 8.36618 3.37507 8.44823C3.41073 8.53028 3.4622 8.60451 3.52655 8.66667L6.08655 11.2267C6.14853 11.2892 6.22226 11.3387 6.3035 11.3726C6.38474 11.4064 6.47188 11.4239 6.55989 11.4239C6.64789 11.4239 6.73503 11.4064 6.81627 11.3726C6.89751 11.3387 6.97124 11.2892 7.03322 11.2267L12.4732 5.78667C12.5409 5.72424 12.5949 5.64847 12.6318 5.56414C12.6688 5.4798 12.6878 5.38873 12.6878 5.29667C12.6878 5.2046 12.6688 5.11353 12.6318 5.02919C12.5949 4.94486 12.5409 4.86909 12.4732 4.80667Z" fill="#2AD168"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-green-900">{{ m }}</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#156633"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<form method="post"> {% endfor %}
{% for w in wallets %} {% for m in err_messages %}
<h4>{{ w.name }} {{ w.version }}</h4>
{% if w.updating %}
<h5>Updating</h5>
{% endif %}
{% if w.havedata %}
{% if w.error %}
<p>Error: {{ w.error }}</p>
{% else %}
<table>
<tr><td>Last updated:</td><td>{{ w.lastupdated }}</td></tr>
<tr><td>Balance:</td><td>{{ w.balance }}</td>{% if w.unconfirmed %}<td>Unconfirmed:</td><td>{{ w.unconfirmed }}</td>{% endif %}</tr>
<section class="py-4">
<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">
<svg class="relative top-0.5" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.4733 5.52667C10.4114 5.46419 10.3376 5.41459 10.2564 5.38075C10.1751 5.3469 10.088 5.32947 9.99999 5.32947C9.91198 5.32947 9.82485 5.3469 9.74361 5.38075C9.66237 5.41459 9.58863 5.46419 9.52666 5.52667L7.99999 7.06001L6.47333 5.52667C6.34779 5.40114 6.17753 5.33061 5.99999 5.33061C5.82246 5.33061 5.65219 5.40114 5.52666 5.52667C5.40112 5.65221 5.3306 5.82247 5.3306 6.00001C5.3306 6.17754 5.40112 6.3478 5.52666 6.47334L7.05999 8.00001L5.52666 9.52667C5.46417 9.58865 5.41458 9.66238 5.38073 9.74362C5.34689 9.82486 5.32946 9.912 5.32946 10C5.32946 10.088 5.34689 10.1752 5.38073 10.2564C5.41458 10.3376 5.46417 10.4114 5.52666 10.4733C5.58863 10.5358 5.66237 10.5854 5.74361 10.6193C5.82485 10.6531 5.91198 10.6705 5.99999 10.6705C6.088 10.6705 6.17514 10.6531 6.25638 10.6193C6.33762 10.5854 6.41135 10.5358 6.47333 10.4733L7.99999 8.94001L9.52666 10.4733C9.58863 10.5358 9.66237 10.5854 9.74361 10.6193C9.82485 10.6531 9.91198 10.6705 9.99999 10.6705C10.088 10.6705 10.1751 10.6531 10.2564 10.6193C10.3376 10.5854 10.4114 10.5358 10.4733 10.4733C10.5358 10.4114 10.5854 10.3376 10.6193 10.2564C10.6531 10.1752 10.6705 10.088 10.6705 10C10.6705 9.912 10.6531 9.82486 10.6193 9.74362C10.5854 9.66238 10.5358 9.58865 10.4733 9.52667L8.93999 8.00001L10.4733 6.47334C10.5358 6.41137 10.5854 6.33763 10.6193 6.25639C10.6531 6.17515 10.6705 6.08802 10.6705 6.00001C10.6705 5.912 10.6531 5.82486 10.6193 5.74362C10.5854 5.66238 10.5358 5.58865 10.4733 5.52667ZM12.7133 3.28667C12.0983 2.64994 11.3627 2.14206 10.5494 1.79266C9.736 1.44327 8.8612 1.25936 7.976 1.25167C7.0908 1.24398 6.21294 1.41266 5.39363 1.74786C4.57432 2.08307 3.82998 2.57809 3.20403 3.20404C2.57807 3.82999 2.08305 4.57434 1.74785 5.39365C1.41264 6.21296 1.24396 7.09082 1.25166 7.97602C1.25935 8.86121 1.44326 9.73601 1.79265 10.5494C2.14204 11.3627 2.64992 12.0984 3.28666 12.7133C3.90164 13.3501 4.63727 13.858 5.45063 14.2074C6.26399 14.5567 7.13879 14.7407 8.02398 14.7483C8.90918 14.756 9.78704 14.5874 10.6064 14.2522C11.4257 13.9169 12.17 13.4219 12.796 12.796C13.4219 12.17 13.9169 11.4257 14.2521 10.6064C14.5873 9.78706 14.756 8.90919 14.7483 8.024C14.7406 7.1388 14.5567 6.264 14.2073 5.45064C13.8579 4.63728 13.3501 3.90165 12.7133 3.28667ZM11.7733 11.7733C10.9014 12.6463 9.75368 13.1899 8.52585 13.3115C7.29802 13.4332 6.066 13.1254 5.03967 12.4405C4.01335 11.7557 3.25623 10.7361 2.89731 9.55566C2.53838 8.37518 2.59986 7.10677 3.07127 5.96653C3.54267 4.82629 4.39484 3.88477 5.48259 3.30238C6.57033 2.71999 7.82635 2.53276 9.03666 2.77259C10.247 3.01242 11.3367 3.66447 12.1202 4.61765C12.9036 5.57083 13.3324 6.76617 13.3333 8.00001C13.3357 8.70087 13.1991 9.39524 12.9313 10.0429C12.6635 10.6906 12.2699 11.2788 11.7733 11.7733Z" fill="#EF5944"></path>
</svg>
</div>
<div class="flex-1 p-1">
<h3 class="font-medium text-sm text-red-900 error_msg">
<p class="error_msg">Error: {{ m }}</p>
</h3>
</div>
</div>
</div>
<div class="w-auto p-2">
<a href="#">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.94004 8L13.14 3.80667C13.2656 3.68113 13.3361 3.51087 13.3361 3.33333C13.3361 3.1558 13.2656 2.98554 13.14 2.86C13.0145 2.73447 12.8442 2.66394 12.6667 2.66394C12.4892 2.66394 12.3189 2.73447 12.1934 2.86L8.00004 7.06L3.80671 2.86C3.68117 2.73447 3.51091 2.66394 3.33337 2.66394C3.15584 2.66394 2.98558 2.73447 2.86004 2.86C2.7345 2.98554 2.66398 3.1558 2.66398 3.33333C2.66398 3.51087 2.7345 3.68113 2.86004 3.80667L7.06004 8L2.86004 12.1933C2.79756 12.2553 2.74796 12.329 2.71411 12.4103C2.68027 12.4915 2.66284 12.5787 2.66284 12.6667C2.66284 12.7547 2.68027 12.8418 2.71411 12.9231C2.74796 13.0043 2.79756 13.078 2.86004 13.14C2.92202 13.2025 2.99575 13.2521 3.07699 13.2859C3.15823 13.3198 3.24537 13.3372 3.33337 13.3372C3.42138 13.3372 3.50852 13.3198 3.58976 13.2859C3.671 13.2521 3.74473 13.2025 3.80671 13.14L8.00004 8.94L12.1934 13.14C12.2554 13.2025 12.3291 13.2521 12.4103 13.2859C12.4916 13.3198 12.5787 13.3372 12.6667 13.3372C12.7547 13.3372 12.8419 13.3198 12.9231 13.2859C13.0043 13.2521 13.0781 13.2025 13.14 13.14C13.2025 13.078 13.2521 13.0043 13.286 12.9231C13.3198 12.8418 13.3372 12.7547 13.3372 12.6667C13.3372 12.5787 13.3198 12.4915 13.286 12.4103C13.2521 12.329 13.2025 12.2553 13.14 12.1933L8.94004 8Z" fill="#752C21"></path>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
{% if w.cid == '1' %} {% endfor %}
<tr><td>Blind Balance:</td><td>{{ w.blind_balance }}</td>{% if w.blind_unconfirmed %}<td>Blind Unconfirmed:</td><td>{{ w.blind_unconfirmed }}</td>{% endif %}</tr>
<tr><td>Anon Balance:</td><td>{{ w.anon_balance }}</td>{% if w.anon_pending %}<td>Anon Pending:</td><td>{{ w.anon_pending }}</td>{% endif %}</tr>
{% endif %}
<section class="bg-white py-4">
<div class="container px-4 mx-auto">
<div class="flex flex-wrap -m-4"> {% for w in wallets %} {% if w.havedata %} {% if w.error %}
<p>Error: {{ w.error }}</p> {% else %}
<div class="w-full lg:w-1/3 p-4">
<div class="bg-white shadow rounded overflow-hidden">
<div class="pt-6 px-6 mb-10 flex justify-between items-center"> <span class="inline-flex items-center justify-center w-9 h-10 bg-white-50 rounded">
<img class="h-9" src="/static/images/coins/{{ w.name }}.png" alt=""></span> <a class="py-2 px-3 bg-blue-500 text-xs text-white rounded-full" href="/wallet/{{ w.ticker }}">Manage</a> </div>
<div class="px-6 mb-6">
<h4 class="text-xl font-bold">{{ w.name }} <span class="inline-block font-medium text-xs text-gray-500">({{ w.ticker }})</span></h4>
<p class="text-xs text-gray-500">Version: {{ w.version }} {% if w.updating %} <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">Updating</span></p> {% endif %}
</div>
<div class="p-6 bg-gray-50">
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Balance:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.balance }}</span>
</div> {% if w.unconfirmed %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Unconfirmed:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.unconfirmed }}</span>
</div> {% endif %} {% if w.cid == '1' %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Blind Balance:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.blind_balance }}</span>
</div> {% if w.blind_unconfirmed %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Blind Unconfirmed:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.blind_unconfirmed }}</span>
</div> {% endif %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Anon Balance:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.anon_balance }}</span>
</div> {% if w.anon_pending %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Anon Pending:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.anon_pending }}</span>
</div> {% endif %} {% endif %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Blocks:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.blocks }} {% if w.known_block_count %} / {{ w.known_block_count }} {% endif %}</span>
</div>
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Last Updated:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.lastupdated }}</span>
</div> {% if w.bootstrapping %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Bootstrapping:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.bootstrapping }}</span>
</div> {% endif %}
<div class="flex mb-2 justify-between items-center">
<h4 class="text-xs font-medium">Expected Seed:</h4> <span class="inline-block py-1 px-2 rounded-full bg-blue-100 text-xs text-black-500">{{ w.expected_seed }}</span>
</div>
<div class="flex justify-between mb-1 mt-10"> <span class="text-xs font-medium text-blue-700">Blockchain</span> <span class="text-xs font-medium text-blue-700">{{ w.synced }}%</span> </div>
<div class="w-full bg-gray-200 rounded-full h-1">
<div class="bg-blue-500 h-1 rounded-full" style="width: {{ w.synced }}%"></div>
</div>
</div>
</div> {% endif %} {% endif %}
<!-- havedata -->
</div> {% endfor %}
<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.");
}
<tr><td>Blocks:</td><td>{{ w.blocks }} {% if w.known_block_count %} / {{ w.known_block_count }} {% endif %}</td></tr> function confirmWithdrawal()
<tr><td>Synced:</td><td>{{ w.synced }}</td></tr> {
{% if w.bootstrapping %} return confirm("Are you sure?");
<tr><td>Bootstrapping:</td><td>{{ w.bootstrapping }}</td></tr> }
{% endif %} </script>
<tr><td>Expected Seed:</td><td>{{ w.expected_seed }}</td></tr> </div>
<tr><td><a href="/wallet/{{ w.ticker }}">Manage</a></td></tr> </section>
</table> </div>
{% endif %} {% include 'footer.html' %}
{% endif %} <!-- havedata --> </body>
{% endfor %}
<input type="hidden" name="formid" value="{{ form_id }}"> </html>
</form>
<p><a href="/">home</a></p>
<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.");
}
function confirmWithdrawal() {
return confirm("Are you sure?");
}
</script>
</body></html>

View file

@ -1,25 +1,119 @@
{% include 'header.html' %} {% include 'header.html' %}
<div class="container mx-auto">
<section class="bg-white 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 hover:text-coolGray-700" href="/">
<p>Home</p>
</a>
</li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<li><a class="flex font-medium text-xs text-coolGray-500 hover:text-coolGray-700" href="/watched">Watched Outputs</a></li>
<li>
<svg width="6" height="15" viewBox="0 0 6 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.34 0.671999L2.076 14.1H0.732L3.984 0.671999H5.34Z" fill="#BBC3CF"></path>
</svg>
</li>
<h3>Watched Outputs</h3> </ul>
{% if refresh %} </div>
<p>Page Refresh: {{ refresh }} seconds</p> </div>
{% endif %} </section>
<p>Last Scanned</p> <section class="py-4">
<table> <div class="container px-4 mx-auto">
<tr><th>Coin</th><th>height</th></tr> <div class="relative py-11 px-16 bg-coolGray-900 rounded-md overflow-hidden">
{% for ls in last_scanned %} <img class="absolute z-10 left-4 top-4" src="/static/images/elements/dots-red.svg" alt="">
<tr><td>{{ ls[0] }}</td><td>{{ ls[1] }}</td></tr> <img class="absolute z-10 right-4 bottom-4" src="/static/images/elements/dots-red.svg" alt="">
{% endfor %} <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="">
</table> <div class="relative z-20 flex flex-wrap items-center -m-3">
<br/> <div class="w-full md:w-1/2 p-3">
<h2 class="mb-6 text-4xl font-bold text-white tracking-tighter">Watched Outputs</h2>
<p class="font-semibold text-coolGray-200">{% if refresh %} Page Refresh: {{ refresh }} seconds {% endif %}</p>
</div>
</div>
</div>
</div>
</section>
<table> <section class="bg-white">
<tr><th>Bid ID</th><th>Chain</th><th>Txid</th><th>Index</th><th>Type</th></tr> <div class="pl-6 pr-6 pt-0 pb-0 mt-5 h-full overflow-hidden bg-white ">
{% for wo in watched_outputs %} <div class="pb-6 border-coolGray-100">
<tr><td><a href=/bid/{{ wo[0] }}>{{ wo[0] }}</a></td><td>{{ wo[1] }}</td><td>{{ wo[2] }}</td><td>{{ wo[3] }}</td><td>{{ wo[4] }}</td></tr> <div class="flex flex-wrap items-center justify-between -m-2">
{% endfor %} <div class="w-full pt-2">
</table>
<p><a href="/">home</a></p> <section class="bg-white p-6">
</body></html> <div class="flex flex-wrap items-center">
<div class="w-full">
<h4 class="font-semibold text-black text-2xl">Last Scanned<h4>
</div>
</div>
</section>
<div class="container px-0 mx-auto mt-5">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6">Coin</th>
<th scope="col">Height</th>
</tr>
</thead>
{% for ls in last_scanned %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96">{{ ls[0] }}</td>
<td class="py-4">{{ ls[1] }}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="container px-0 mx-auto mt-10">
<div class="overflow-x-auto relative border sm:rounded-lg">
<table class="w-full text-sm text-left text-gray-500 outline-none border-gray-300">
<thead class="text-xs text-gray-700 border-b uppercase bg-gray-50 outline-none border-gray-300">
<tr>
<th scope="col" class="py-3 px-6 w-96">Bid ID</th>
<th scope="col">Chain</th>
<th scope="col">Txid</th>
<th scope="col">Index</th>
<th scope="col">Type</th>
</tr>
</thead>
{% for wo in watched_outputs %}
<tr class="bg-white border-t hover:bg-gray-50">
<td class="py-4 px-6 bold w-96"><a href=/bid/{{ wo[0] }}>{{ wo[0] }}</a></td>
<td class="py-4">{{ wo[1] }}</td>
<td class="py-4">{{ wo[2] }}</td>
<td class="py-4">{{ wo[3] }}</td>
<td class="py-4">{{ wo[4] }}</td>
</tr>
{% endfor %}
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
{% include 'footer.html' %}
</div>
</body>
</html>

View file

@ -17,10 +17,10 @@ from basicswap.db import (
strConcepts, strConcepts,
) )
def page_automation_strategies(self, url_split, post_string): def page_automation_strategies(self, url_split, post_string):
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
filters = { filters = {
'page_no': 1, 'page_no': 1,
@ -53,12 +53,14 @@ def page_automation_strategies(self, url_split, post_string):
'messages': messages, 'messages': messages,
'filters': filters, 'filters': filters,
'strategies': formatted_strategies, 'strategies': formatted_strategies,
'summary': summary,
}) })
def page_automation_strategy_new(self, url_split, post_string): def page_automation_strategy_new(self, url_split, post_string):
server = self.server server = self.server
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
messages = [] messages = []
form_data = self.checkForm(post_string, 'automationstrategynew', messages) form_data = self.checkForm(post_string, 'automationstrategynew', messages)
@ -66,6 +68,7 @@ def page_automation_strategy_new(self, url_split, post_string):
template = server.env.get_template('automation_strategy_new.html') template = server.env.get_template('automation_strategy_new.html')
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'summary': summary,
}) })
@ -78,6 +81,7 @@ def page_automation_strategy(self, url_split, post_string):
server = self.server server = self.server
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
messages = [] messages = []
@ -96,4 +100,5 @@ def page_automation_strategy(self, url_split, post_string):
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'strategy': formatted_strategy, 'strategy': formatted_strategy,
'summary': summary,
}) })

View file

@ -37,6 +37,7 @@ def page_bid(self, url_split, post_string):
raise ValueError('Bad bid ID') raise ValueError('Bad bid ID')
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
messages = [] messages = []
err_messages = [] err_messages = []
@ -113,12 +114,14 @@ def page_bid(self, url_split, post_string):
'data': data, 'data': data,
'edit_bid': edit_bid, 'edit_bid': edit_bid,
'old_states': old_states, 'old_states': old_states,
'summary': summary,
}) })
def page_bids(self, url_split, post_string, sent=False, available=False): def page_bids(self, url_split, post_string, sent=False, available=False, received=False):
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
filters = { filters = {
'page_no': 1, 'page_no': 1,
@ -165,10 +168,16 @@ def page_bids(self, url_split, post_string, sent=False, available=False):
template = server.env.get_template('bids.html') template = server.env.get_template('bids.html')
return self.render_template(template, { return self.render_template(template, {
'page_type': 'Sent' if sent else 'Received', 'page_type_sent': 'Sent' if sent else '',
'page_type_available': 'Available' if available else '',
'page_type_received': 'Received' if received else '',
'page_type_sent_description': 'Sent description' if sent else '',
'page_type_available_description': 'Available description' if available else '',
'page_type_received_description': 'Received description' if received else '',
'messages': messages, 'messages': messages,
'filters': filters, 'filters': filters,
'data': page_data, 'data': page_data,
'summary': summary,
'bids': [(format_timestamp(b[0]), 'bids': [(format_timestamp(b[0]),
b[2].hex(), b[3].hex(), strBidState(b[5]), strTxState(b[7]), strTxState(b[8]), b[11]) for b in bids], b[2].hex(), b[3].hex(), strBidState(b[5]), strTxState(b[7]), strTxState(b[8]), b[11]) for b in bids],
}) })

View file

@ -267,6 +267,7 @@ def postNewOffer(swap_client, form_data):
def page_newoffer(self, url_split, post_string): def page_newoffer(self, url_split, post_string):
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
messages = [] messages = []
err_messages = [] err_messages = []
@ -330,6 +331,7 @@ def page_newoffer(self, url_split, post_string):
'addrs_to': swap_client.listSmsgAddresses('offer_send_to'), 'addrs_to': swap_client.listSmsgAddresses('offer_send_to'),
'data': page_data, 'data': page_data,
'automation_strategies': automation_strategies, 'automation_strategies': automation_strategies,
'summary': summary,
}) })
@ -342,6 +344,7 @@ def page_offer(self, url_split, post_string):
raise ValueError('Bad offer ID') raise ValueError('Bad offer ID')
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
offer, xmr_offer = swap_client.getXmrOffer(offer_id) offer, xmr_offer = swap_client.getXmrOffer(offer_id)
ensure(offer, 'Unknown offer ID') ensure(offer, 'Unknown offer ID')
@ -488,12 +491,14 @@ def page_offer(self, url_split, post_string):
'data': data, 'data': data,
'bids': formatted_bids, 'bids': formatted_bids,
'addrs': None if show_bid_form is None else swap_client.listSmsgAddresses('bid'), 'addrs': None if show_bid_form is None else swap_client.listSmsgAddresses('bid'),
'summary': summary,
}) })
def page_offers(self, url_split, post_string, sent=False): def page_offers(self, url_split, post_string, sent=False):
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
filters = { filters = {
'coin_from': -1, 'coin_from': -1,
@ -552,10 +557,13 @@ def page_offers(self, url_split, post_string, sent=False):
template = server.env.get_template('offers.html') template = server.env.get_template('offers.html')
return self.render_template(template, { return self.render_template(template, {
'page_type': 'Sent Offers' if sent else 'Network Offers',
'page_type_description': 'Sent Offers description' if sent else 'Network Offers description',
'messages': messages, 'messages': messages,
'coins_from': coins_from, 'coins_from': coins_from,
'coins': coins_to, 'coins': coins_to,
'messages': messages, 'messages': messages,
'filters': filters, 'filters': filters,
'offers': formatted_offers, 'offers': formatted_offers,
'summary': summary,
}) })

View file

@ -22,8 +22,8 @@ def get_tor_established_state(swap_client):
def page_tor(self, url_split, post_string): def page_tor(self, url_split, post_string):
swap_client = self.server.swap_client swap_client = self.server.swap_client
summary = swap_client.getSummary()
page_data = {} page_data = {}
@ -50,4 +50,5 @@ def page_tor(self, url_split, post_string):
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'data': page_data, 'data': page_data,
'summary': summary,
}) })

View file

@ -61,6 +61,7 @@ def format_wallet_data(ci, w):
def page_wallets(self, url_split, post_string): def page_wallets(self, url_split, post_string):
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
page_data = {} page_data = {}
messages = [] messages = []
@ -153,6 +154,7 @@ def page_wallets(self, url_split, post_string):
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'wallets': wallets_formatted, 'wallets': wallets_formatted,
'summary': summary,
}) })
@ -161,6 +163,7 @@ def page_wallet(self, url_split, post_string):
wallet_ticker = url_split[2] wallet_ticker = url_split[2]
server = self.server server = self.server
swap_client = server.swap_client swap_client = server.swap_client
summary = swap_client.getSummary()
coin_id = getCoinIdFromTicker(wallet_ticker) coin_id = getCoinIdFromTicker(wallet_ticker)
@ -240,7 +243,6 @@ def page_wallet(self, url_split, post_string):
swap_client.log.error(traceback.format_exc()) swap_client.log.error(traceback.format_exc())
swap_client.updateWalletsInfo(only_coin=coin_id, wait_for_complete=True) swap_client.updateWalletsInfo(only_coin=coin_id, wait_for_complete=True)
wallets = swap_client.getCachedWalletsInfo({'coin_id': coin_id}) wallets = swap_client.getCachedWalletsInfo({'coin_id': coin_id})
for k in wallets.keys(): for k in wallets.keys():
w = wallets[k] w = wallets[k]
@ -304,4 +306,5 @@ def page_wallet(self, url_split, post_string):
return self.render_template(template, { return self.render_template(template, {
'messages': messages, 'messages': messages,
'w': wallet_data, 'w': wallet_data,
'summary': summary,
}) })