blockbook/server/static/test.html

153 lines
5.9 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous">
<style>
.row {
margin-top: 1%;
}
</style>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.4/socket.io.js"></script>
<title>Test socket.io</title>
<script>
var socket;
function connect(server) {
socket = io(server, { transports: ['websocket'] });
socket.on('connect', function () {
console.log('socket connected');
document.getElementById('connectionStatus').innerText = "connected";
});
}
function getAddressTxids() {
var addresses = document.getElementById('getAddressTxidsAddresses').value.split(",");
var mempool = document.getElementById("getAddressTxidsMempool").checked;
lookupTransactionsIdsMempool(addresses, mempool, 2000000, 0, function (result) {
console.log('getAddressTxids sent successfully');
console.log(result);
document.getElementById('getAddressTxidsResult').innerText = JSON.stringify(result).replace(/,/g, ", ");
});
}
function lookupTransactionsIdsMempool(addresses, mempool, start, end, f) {
const method = 'getAddressTxids';
const rangeParam = mempool ? {
start,
end,
queryMempoolOnly: true,
} : {
start,
end,
queryMempol: false,
};
const params = [
addresses,
rangeParam,
];
return socket.send({ method, params }, f);
}
function getBlockHeader() {
var height = document.getElementById('getBlockHeaderHeight').value;
lookupBlockHash(parseInt(height), function (result) {
console.log('getBlockHeader sent successfully');
console.log(result);
document.getElementById('getBlockHeaderResult').innerText = JSON.stringify(result).replace(/,/g, ", ");
});
}
function lookupBlockHash(height, f) {
const method = 'getBlockHeader';
const params = [height];
return socket.send({ method, params }, f);
}
function estimateSmartFee() {
var blocks = document.getElementById('estimateSmartFeeBlocks').value;
var conservative = document.getElementById("estimateSmartFeeConservative").checked;
estimateSmartTxFee(parseInt(blocks), conservative, function (result) {
console.log('estimateSmartFee sent successfully');
console.log(result);
document.getElementById('estimateSmartFeeResult').innerText = JSON.stringify(result).replace(/,/g, ", ");
});
}
function estimateSmartTxFee(blocks, conservative, f) {
const method = 'estimateSmartFee';
const params = [blocks, conservative];
return socket.send({ method, params }, f);
}
</script>
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<h1>Socket.io tester</h1>
</div>
<div class="row">
<div class="col">
<input class="btn btn-secondary" type="button" value="Login" onclick="connect(document.getElementById('serverAddress').value)">
</div>
<div class="col-8">
<input type="text" class="form-control" id="serverAddress" value="ws://127.0.0.1:8334">
</div>
<div class="col form-inline">
<label id="connectionStatus">not connected</label>
</div>
</div>
<div class="row">
<div class="col">
<input class="btn btn-secondary" type="button" value="getAddressTxids" onclick="getAddressTxids()">
</div>
<div class="col-8">
<input type="text" class="form-control" id="getAddressTxidsAddresses" value="2MxvKTW83yhVsGCr4BSRqmhca7r8TB2dgW8,bc1qrsf2l34jvqnq0lduyz0j5pfu2nkd93nnq0qggn">
</div>
<div class="col form-inline">
<input type="checkbox" id="getAddressTxidsMempool">&nbsp;
<label>only mempool</label>
</div>
</div>
<div class="row">
<div class="col" id="getAddressTxidsResult">
</div>
</div>
<div class="row">
<div class="col">
<input class="btn btn-secondary" type="button" value="getBlockHeader" onclick="getBlockHeader()">
</div>
<div class="col-8">
<input type="text" class="form-control" id="getBlockHeaderHeight" value="0">
</div>
<div class="col">
</div>
</div>
<div class="row">
<div class="col" id="getBlockHeaderResult">
</div>
</div>
<div class="row">
<div class="col">
<input class="btn btn-secondary" type="button" value="estimateSmartFee" onclick="estimateSmartFee()">
</div>
<div class="col-8">
<input type="text" class="form-control" id="estimateSmartFeeBlocks" value="20">
</div>
<div class="col form-inline">
<input type="checkbox" id="estimateSmartFeeConservative" checked>&nbsp;
<label>conservative</label>
</div>
</div>
<div class="row">
<div class="col" id="estimateSmartFeeResult">
</div>
</div>
</div>
</div>
</body>
</html>