- Add staking RPC methods for validators, delegation, and rewards - Implement complete staking UI with validator selection and delegation - Add reward claiming functionality and validator creation interface - Include professional staking dashboard with real-time data - Integrate staking navigation into existing wallet interface
219 lines
9.6 KiB
HTML
Executable File
219 lines
9.6 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>PaperclipWallet</title>
|
|
<link href="https://fonts.googleapis.com/css2?family=Fira+Mono:wght@400;500;700&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="./assets/styles/materialize.min.css">
|
|
<link rel="stylesheet" href="./assets/styles/datatables.min.css">
|
|
<link rel="stylesheet" href="./assets/styles/iziModal.min.css">
|
|
<link rel="stylesheet" href="./assets/styles/iziToast.min.css">
|
|
<link rel="stylesheet" href="./assets/styles/transactions.css">
|
|
<link rel="stylesheet" href="./assets/styles/please-wait.css">
|
|
<link rel="stylesheet" href="./assets/styles/indicators.css">
|
|
<link rel="stylesheet" href="./assets/styles/tablesort.css">
|
|
<link rel="stylesheet" href="./assets/styles/all.min.css">
|
|
<link rel="stylesheet" href="./assets/styles/spinner.css">
|
|
<link rel="stylesheet" href="./assets/styles/buttons.css">
|
|
<link rel="stylesheet" href="./assets/styles/style.css">
|
|
<link rel="stylesheet" href="./assets/styles/forms.css">
|
|
<link rel="stylesheet" href="./assets/styles/about.css">
|
|
<link rel="stylesheet" href="./assets/styles/staking.css">
|
|
<!-- Insert this line above script imports -->
|
|
<script>
|
|
if (typeof module === 'object') {
|
|
window.module = module;
|
|
module = undefined;
|
|
}
|
|
</script>
|
|
<span id="nodestorage" style="display:none;">Loading</span>
|
|
|
|
<!-- normal script imports etc -->
|
|
<script src="./assets/scripts/jquery.min.js"></script>
|
|
<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'></script>
|
|
<script src="./assets/scripts/handlebars.js"></script>
|
|
<script src="./assets/scripts/materialize.min.js"></script>
|
|
<script src="./assets/scripts/datatables.min.js"></script>
|
|
<script src="./assets/scripts/iziModal.min.js"></script>
|
|
<script src="./assets/scripts/iziToast.min.js"></script>
|
|
<script src="./assets/scripts/tippy.min.js"></script>
|
|
<script src="./assets/scripts/progressbar.min.js"></script>
|
|
<script src="./assets/scripts/sprintf.min.js"></script>
|
|
<script src="./assets/scripts/please-wait.js "></script>
|
|
<script src="./assets/scripts/moment.min.js"></script>
|
|
<script src="./assets/scripts/datetime-moment.js"></script>
|
|
<script src="./assets/scripts/datatables-absolute.js"></script>
|
|
<script src="./assets/scripts/jquery.floatThead.min.js"></script>
|
|
<script src="./assets/scripts/tablesort.min.js"></script>
|
|
<script src="./assets/scripts/tablesort.number.min.js"></script>
|
|
<script src="./assets/scripts/jquery.qrcode.min.js"></script>
|
|
<script src="./assets/scripts/all.min.js"></script>
|
|
<script src="./assets/scripts/Chart.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.7.8/dist/semantic.min.js"></script>
|
|
<script src="assets/dashboard/plugins/jquery-slimscroll/jquery.slimscroll.js"></script>
|
|
<script src="assets/dashboard/plugins/node-waves/waves.js"></script>
|
|
<script src="assets/dashboard/plugins/jquery-countto/jquery.countTo.js"></script>
|
|
|
|
|
|
<!-- Insert this line after script imports -->
|
|
<script>
|
|
if (window.module)
|
|
module = window.module;
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<script>
|
|
var loadingHtml = "<div class='spinner'><div class='bounce bounce1'></div><div class='bounce bounce2'></div><div class='bounce bounce3'></div></div><div class='loadingText' id='startextEL'>Loading Resources...</div>";
|
|
var loading_screen = pleaseWait({
|
|
logo: "assets/images/logo-glitch.gif",
|
|
backgroundColor: '#000000',
|
|
loadingHtml: loadingHtml
|
|
});
|
|
|
|
var timeouts = [
|
|
{ text: "Starting PaperclipChain node...", delay: 1250 },
|
|
{ text: "Connecting to network...", delay: 6400 },
|
|
{ text: "Loading wallet...", delay: 7320 },
|
|
{ text: "Ready", delay: 7400 }
|
|
];
|
|
|
|
timeouts.forEach((item, index) => {
|
|
setTimeout(() => {
|
|
document.getElementById('startextEL').innerHTML = item.text;
|
|
}, item.delay + Math.random() * 50 * index);
|
|
});
|
|
|
|
$(document).on("onNodeReady", function () {
|
|
setTimeout(() => {
|
|
loading_screen.finish();
|
|
}, 5500);
|
|
});
|
|
|
|
$(window).on("beforeunload", function () {
|
|
if (window.PaperclipChain) {
|
|
PaperclipChain.stopConnection();
|
|
}
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="inner">
|
|
<!-- The sidebar -->
|
|
<div class="ui left demo vertical inverted sidebar labeled icon menu">
|
|
<a class="item">
|
|
<img src="assets/images/EthoFS-Glitch.gif" alt="ethoFS Logo" style="width: 90%;padding-left: 5px;">
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnWallets" href="#" data-tippy="Wallets" data-tippy-delay="100">
|
|
<i class="fas fa-wallet fa-1x"></i>
|
|
<span class="walletID"> Wallets </span>
|
|
</a>
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnAddressBoook" href="#" data-tippy="Address Book" data-tippy-delay="100">
|
|
<i class="far fa-address-book fa-1x"></i>
|
|
<span class="AddrBook"> Addresses </span>
|
|
</a>
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnSend" href="#" data-tippy="Send Funds" data-tippy-delay="100">
|
|
<i class="fas fa-comment-dollar fa-1x"></i>
|
|
<span class="sendClips"> Send </span>
|
|
</a>
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnTransactions" href="#" data-tippy="Transactions" data-tippy-delay="100">
|
|
<i class="fas fa-exchange-alt fa-1x"></i>
|
|
<span class="txlist"> Transactions </span>
|
|
</a>
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnStaking" href="#" data-tippy="Staking & Delegation" data-tippy-delay="100">
|
|
<i class="fas fa-coins fa-1x"></i>
|
|
<span class="staking"> Staking </span>
|
|
</a>
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnMarkets" href="#" data-tippy="Markets" data-tippy-delay="100">
|
|
<i class="fas fa-poll fa-1x"></i>
|
|
<span class="Markets"> Market </span>
|
|
</a>
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnSettings" href="#" data-tippy="Settings" data-tippy-delay="100">
|
|
<i class="fas fa-cog fa-1x"></i>
|
|
<span class="Settings"> Settings </span>
|
|
</a>
|
|
<a class="item" style="padding-top: 30px; padding-left: 13px" id="mainNavBtnAbout" href="#" data-tippy="About us" data-tippy-delay="100">
|
|
<i class="far fa-question-circle fa-1x"></i>
|
|
<span class="About"> About Us </span>
|
|
</a>
|
|
<div id="peerCount">
|
|
Peer Count: 0
|
|
</div>
|
|
</div>
|
|
<div id="mainContent"></div>
|
|
<div id="syncProgress"></div>
|
|
<script>
|
|
// PaperclipChain renderer modules
|
|
require('./renderer/paperclip-database.js');
|
|
require('./renderer/blockchain.js');
|
|
require('./renderer/paperclip-wallets.js');
|
|
require('./renderer/utils.js');
|
|
require('./renderer/maingui.js');
|
|
require('./renderer/about.js');
|
|
require('./renderer/send.js');
|
|
require('./renderer/syncing.js');
|
|
require('./renderer/markets.js');
|
|
require('./renderer/settings.js');
|
|
require('./renderer/addressBook.js');
|
|
require('./renderer/transactions.js');
|
|
require('./renderer/tableTransactions.js');
|
|
require('./renderer/staking.js');
|
|
</script>
|
|
</div>
|
|
|
|
<!-- The modal for general error -->
|
|
<div id="dlgGeneralError" class="modalDialog" data-izimodal-title="Application Error" data-izimodal-subtitle="Something went wrong, don't kill the fish..." data-izimodal-icon="icon-home">
|
|
<div class="modalBody">
|
|
<div class="form-group">
|
|
<span id="txtGeneralError"></span>
|
|
</div>
|
|
<button type="button" class="btn btn-clips btn-dialog-confirm" id="btnGeneralErrorOK">OK</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- The modal for general confirmation -->
|
|
<div id="dlgGeneralConfirm" class="modalDialog" data-izimodal-title="Confirmation" data-izimodal-subtitle="" data-izimodal-icon="icon-home">
|
|
<div class="modalBody">
|
|
<div class="form-group">
|
|
<span id="txtGeneralConfirm"></span>
|
|
</div>
|
|
<button type="button" class="btn btn-clips btn-dialog-cancel" id="btnGeneralConfirmNo">No</button>
|
|
<button type="button" class="btn btn-clips btn-dialog-confirm" id="btnGeneralConfirmYes">Yes</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- The modal for about info -->
|
|
<div id="dlgAboutInfo" class="modalDialog" data-izimodal-title="About PaperclipWallet" data-izimodal-icon="icon-home">
|
|
<div class="modalBody">
|
|
<div class="aboutInfo">
|
|
<div class="infoText" id="aboutInfoWallet">PaperclipWallet</div>
|
|
<div class="infoText" id="aboutInfoGitHub">GitHub:
|
|
<a id="urlOpenGitHub" href="https://git.takoyaki.cool/matt/paperclip-wallet">https://git.takoyaki.cool/matt/paperclip-wallet</a>
|
|
</div>
|
|
<div class="infoText" id="aboutInfoLicence">Made under
|
|
<a id="urlOpenLicence" href="https://choosealicense.com/licenses/cc0-1.0">CC0 1.0</a>
|
|
licence
|
|
</div>
|
|
<div class="infoText" id="aboutInfoVersion">Version:
|
|
<span id="versionNumber"></span></div>
|
|
</div>
|
|
<button type="button" class="btn btn-clips btn-dialog-confirm" id="btnAboutInfoClose">Close</button>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
<!-- The modal for QR-Code info -->
|
|
<div id="dlgShowAddressQRCode" class="modalDialog" data-izimodal-title="Address QR-Code" data-izimodal-subtitle="Scan the QR-Code to get the address..." data-izimodal-icon="icon-home">
|
|
<div class="modalBody">
|
|
<div id="addrQRCode"></div>
|
|
<button type="button" class="btn btn-clips btn-dialog-confirm" id="btnScanQRCodeClose">Close</button>
|
|
</div>
|
|
</div>
|
|
|
|
</html>
|