Host-customized fork of https://github.com/tecnovert/basicswap/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
9.3 KiB
203 lines
9.3 KiB
{% include 'header.html' %} |
|
{% from 'style.html' import breadcrumb_line_svg, input_arrow_down_svg %} |
|
<div class="container mx-auto"> |
|
<section class="p-5 mt-5"> |
|
<div class="flex flex-wrap items-center -m-2"> |
|
<div class="w-full md:w-1/2 p-2"> |
|
<ul class="flex flex-wrap items-center gap-x-3 mb-2"> |
|
<li> |
|
<a class="flex font-medium text-xs text-coolGray-500 dark:text-gray-300 hover:text-coolGray-700" href="/"> |
|
<p>Home</p> |
|
</a> |
|
</li> |
|
<li> {{ breadcrumb_line_svg | safe }} </li> |
|
<li> |
|
<a class="flex font-medium text-xs text-coolGray-500 dark:text-gray-300 hover:text-coolGray-700" href="/rpc">RPC Console</a> |
|
</li> |
|
<li> {{ breadcrumb_line_svg | safe }} </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 dark:bg-blue-500 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">RPC Console</h2> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</section> |
|
{% include 'inc_messages.html' %} |
|
<section> |
|
<form method="post" autocomplete="off"> |
|
<div class="pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden"> |
|
<div class="border-coolGray-100"> |
|
<div class="flex flex-wrap items-center justify-between -m-2"> |
|
<div class="w-full pt-2"> |
|
<div class="container mt-5 mx-auto"> |
|
<div class="pt-6 pb-6 bg-coolGray-100 dark:bg-gray-500 rounded-xl"> |
|
<div class="px-6"> |
|
<div class="w-full mt-6 pb-6 overflow-x-auto"> |
|
<table class="w-full min-w-max text-sm"> |
|
<thead class="uppercase"> |
|
<tr class="text-left"> |
|
<th class="p-0"> |
|
<div class="py-3 px-6 rounded-tl-xl bg-coolGray-200 dark:bg-gray-600"> |
|
<span class="text-xs text-gray-600 dark:text-gray-300 font-semibold">Options</span> |
|
</div> |
|
</th> |
|
<th class="p-0"> |
|
<div class="py-3 px-6 rounded-tr-xl bg-coolGray-200 dark:bg-gray-600"> |
|
<span class="text-xs text-gray-600 dark:text-gray-300 font-semibold">RPC Console Input</span> |
|
</div> |
|
</th> |
|
</tr> |
|
</thead> |
|
<tr class="opacity-100 text-gray-500 dark:text-gray-100"> |
|
<td class="py-3 px-6"> |
|
<div class="relative"> |
|
{{ input_arrow_down_svg| safe }} |
|
<select class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-50 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" name="coin_type" id="coin_type" onchange="set_coin();"> |
|
<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> |
|
</div> |
|
</td> |
|
<td class="py-3 px-6"> |
|
<input class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-50 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" type="text" name="cmd" id="cmd" oninput="set_method();"> |
|
</td> |
|
</tr> |
|
<tr class="opacity-100 text-gray-500 dark:text-gray-100"> |
|
<td class="py-3 px-6"> |
|
<div class="relative"> |
|
{{ input_arrow_down_svg| safe }} |
|
<select class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-50 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" name="call_type" id="call_type" > |
|
<option value="cli" {% if call_type=="cli" %} selected{% endif %}>CLI</option> |
|
<option value="http" {% if call_type=="http" %} selected{% endif %}>HTTP</option> |
|
</select> |
|
</div> |
|
</td> |
|
<td class="py-3 px-6"> |
|
<input class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-50 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" type="text" name="type_map" id="type_map" title="Convert inputs when using http. Example: 'sifbj' 1st parameter is a string, 2nd is converted to an int, 3rd to float then boolean and json object or array"> |
|
</td> |
|
</table> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</section> |
|
<input type="hidden" name="formid" value="{{ form_id }}"> |
|
<section> |
|
<div class="pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden "> |
|
<div class="pb-6 "> |
|
<div class="flex flex-wrap items-center justify-between -m-2"> |
|
<div class="w-full pt-2"> |
|
<div class="container mx-auto"> |
|
<div class="pt-6 pb-6 bg-coolGray-100 border-t border-gray-100 dark:border-gray-400 dark:bg-gray-500 rounded-bl-xl rounded-br-xl"> |
|
<div class="px-6"> |
|
<div class="flex flex-wrap justify-end"> |
|
<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">Apply</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</section> |
|
|
|
{% if result %} |
|
<section class="rounded-xl"> |
|
<div class="pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden"> |
|
<div class="border-coolGray-100"> |
|
<div class="flex flex-wrap items-center justify-between -m-2"> |
|
<div class="w-full pt-2"> |
|
<div class="container mt-5 mx-auto"> |
|
<div class="pt-6 bg-coolGray-100 dark:bg-gray-500 rounded-xl rounded-bl-none rounded-br-none"> |
|
<div class="px-6"> |
|
<div class="w-full mt-6 pb-6 overflow-x-auto"> |
|
<table class="w-full min-w-max text-sm"> |
|
<thead class="uppercase"> |
|
<tr class="text-left"> |
|
<th class="p-0"> |
|
<div class="py-3 px-6 rounded-tl-xl bg-coolGray-200 dark:bg-gray-600"> |
|
<span class="text-xs text-gray-600 dark:text-gray-300 font-semibold">RPC Console Output:</span> |
|
</div> |
|
</th> |
|
</tr> |
|
</thead> |
|
<tr class="opacity-100 text-gray-500 dark:text-gray-100"> |
|
<td class="py-3 px-6"> |
|
<textarea name="result" class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none pr-10 dark:bg-gray-500 dark:text-white border border-gray-300 dark:border-gray-400 dark:text-gray-50 dark:placeholder-gray-50 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-0" rows="20">{{ result }}</textarea> |
|
</td> |
|
</tr> |
|
</table> |
|
</div> |
|
</div> |
|
</form> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</section> |
|
<section> |
|
<div class="pl-6 pr-6 pt-0 pb-0 h-full overflow-hidden "> |
|
<div class="pb-6 "> |
|
<div class="flex flex-wrap items-center justify-between -m-2"> |
|
<div class="w-full pt-2"> |
|
<div class="container mx-auto"> |
|
<div class="pt-6 pb-6 bg-coolGray-100 dark:border-gray-400 dark:bg-gray-500 rounded-bl-xl rounded-br-xl"> |
|
<div class="px-6"> |
|
<div class="flex flex-wrap justify-end"> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</section> |
|
{% endif %} |
|
</div> |
|
{% include 'footer.html' %} |
|
</body> |
|
<script> |
|
function set_method() { |
|
const coin_type = document.getElementById('coin_type').value; |
|
if (coin_type == 4 || coin_type == -6) { |
|
const cmd = document.getElementById('cmd'); |
|
const type_map = document.getElementById('type_map'); |
|
let method = cmd.value.split(' ')[0]; |
|
if (method == 'sendtoaddress') { |
|
type_map.value = 'sf'; |
|
} |
|
} |
|
} |
|
function set_coin() { |
|
const coin_type = document.getElementById('coin_type').value; |
|
let call_type = document.getElementById('call_type'); |
|
if (coin_type == 4 || coin_type == -6) { |
|
call_type.disabled = true; |
|
call_type.value = 'http'; |
|
} else { |
|
call_type.disabled = false; |
|
} |
|
set_method(); |
|
} |
|
</script> |
|
</html>
|
|
|