204 lines
9.3 KiB
HTML
204 lines
9.3 KiB
HTML
{% 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>
|