|
- <!doctype html>
- <html>
-
- <head>
- <!-- Required meta tags -->
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <!-- Bootstrap CSS -->
- <link rel="stylesheet" href="/static/deps/bootstrap.min.css">
- <link rel="stylesheet" href="/static/deps/main.css" type="text/css">
- <link rel="stylesheet" href="/static/deps/style.css" type="text/css" title="blackTheme">
- <link rel="alternate stylesheet" href="/static/deps/style_white.css" type="text/css" title="whiteTheme" disabled>
- <title>DERO Web Wallet</title>
- <script src="/static/wasm_exec.js"></script>
- <link href="/static/deps/tabulator.min.css" rel="stylesheet">
- <link rel="apple-touch-icon" sizes="57x57" href="/static/favicon/apple-icon-57x57.png">
- <link rel="apple-touch-icon" sizes="60x60" href="/static/favicon/apple-icon-60x60.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/favicon/apple-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="76x76" href="/static/favicon/apple-icon-76x76.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/favicon/apple-icon-114x114.png">
- <link rel="apple-touch-icon" sizes="120x120" href="/static/favicon/apple-icon-120x120.png">
- <link rel="apple-touch-icon" sizes="144x144" href="/static/favicon/apple-icon-144x144.png">
- <link rel="apple-touch-icon" sizes="152x152" href="/static/favicon/apple-icon-152x152.png">
- <link rel="apple-touch-icon" sizes="180x180" href="/static/favicon/apple-icon-180x180.png">
- <link rel="icon" type="image/png" sizes="192x192" href="/static/favicon/android-icon-192x192.png">
- <link rel="icon" type="image/png" sizes="32x32" href="/static/favicon/favicon-32x32.png">
- <link rel="icon" type="image/png" sizes="96x96" href="/static/favicon/favicon-96x96.png">
- <link rel="icon" type="image/png" sizes="16x16" href="/static/favicon/favicon-16x16.png">
- <link rel="manifest" href="/static/favicon/manifest.json">
- </head>
-
- <body>
- <div id="loader-wrapper">
- <div id="loader"></div>
-
- <div class="loader-section section-left"></div>
- <div class="loader-section section-right"></div>
-
- </div>
- <div class="col d-flex align-items-center justify-content-center pl-0 pr-5" id="header">
- <div class="row ml-0">
- <div class="col-lg-4 col-md-4 col-sm-12 text-center align-self-center">
- <div class="row">
- <div class="col-lg-6 col-md-12 col-sm-12 logo">
- <a href="https://dero.io" target="_blank">
- <img src="/static/logo.png" alt="Logo" height="30">
- </a>
- </div>
- <div class="pl-0 col-lg-3 col-md-12 col-sm-12 title">
- <span>DERO</span>
- <span data-i18n="tr_wallet">Wallet</span>
- </div>
- </div>
- </div>
- <div class="col-lg-8 col-md-8 col-sm-12">
- <div class="row">
- <div class="col-lg-10 col-md-8 col-12">
- <div class="row wallet-online">
- <div class="col-lg-2 wallet_local_name d-flex justify-content-center">
- My_wallet
- </div>
- <div class="col-lg-7 align-self-center">
- <p id="header_address" class="no-m o-h wallet_address clipboard" data-clipboard-action="copy" data-clipboard-target="#header_address">
- Loremipsumdolor,sitametconsecteturadipisicingelit...
- </p>
- </div>
- <div class="col-lg-2 d-flex justify-content-center">
- <!--<button class="btn btn-b-2 btn-sm btn-copy" data-clipboard-action="copy" data-clipboard-target="#wallet_address_id">
- Copy
- </button>-->
- <p class="no-m">
- <button class="btn btn-b-3 btn-sm btn-logout" data-i18n="control_wallet_logout" onClick="promiseWorker.postMessage({cmd:'close_wallet',id:secretid});">
- LogOut
- </button>
- </p>
- </div>
- </div>
- </div>
- <div class="d-flex align-items-center p-0 m-0" id="myBlockTheme">
- <div id="blackTheme"></div>
- <div id="whiteTheme"></div>
- </div>
- <div class="col-lg-1 col-md-3 col-12 text-center">
- <p class="no-m">
- <select class="selectpicker mr-sm-2 btn btn-b-2 btn-lang btn-sm" data-width="fit" id="language_picker">
- <option class="lang" data-content='<span class="flag-icon flag-icon-us"></span> English' data-lang="en">English</option>
- </select>
- </p>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- show menu to create/open wallet -->
- <div class="p-0 container-fluid d-flex justify-content-between" id="content">
- <div class="col-lg-2 col-md-4 col-sm-12 aside pt-5">
- <div class="wallet-closed">
- <div class="row no-gutters justify-content-center d-flex flex-column">
- <ul class="nav flex-column">
- <li class="active"><a data-toggle="tab" href="#recoverWallet" class="btn btn-b-2 btn-block btn-radius active" data-i18n="recover_wallet">
- Recover wallet
- </a>
- </li>
- <li><a data-toggle="tab" href="#createWallet" class="btn btn-b-2 btn-block btn-radius" data-i18n="front_create_new_wallet">
- Create new wallet
- </a>
- </li>
- <li>
- <a href="https://dero.io/" target="_blank" class="btn btn-b-2 btn-block btn-radius">DERO Project</a>
- </li>
- </ul>
- </div>
- </div>
- <div class="wallet-online">
- <div class="justify-content-center d-flex flex-column col-12">
- <ul class="dash">
- <li>
- <button href="#" class="btn btn-sm btn-set float-right" onclick="
- var x = function() { $('#ModalSettings').modal('show');};verify_password_action( x);"><span>⚙ </span><span data-i18n="control_wallet_settings"> Settings</span>
- </button>
- </li>
- <li>
- <br>
- <br>
- </li>
- <li class="text-white"><span data-i18n="balance_total"> Total </span> :</li>
- <li class="text-white">
- <strong><span class="total_balance"></span></strong>
- </li>
- <li class="text-s-gray"><span data-i18n="balance_locked">Locked</span> :</li>
- <li class="text-muted"><span class="locked_balance"></span></li>
- <li class="text-s-gray"><span data-i18n="balance_unlocked">Unlocked</span> :</li>
- <li class="text-muted"><span class="unlocked_balance"></span></li>
- <li class="text-s-gray"><span data-i18n="daemon_address">Daemon Address</span> :</li>
- <li class="text-muted"><span class="wallet_daemon_address"></span></li>
- <li class="text-s-gray"><span data-i18n="blockchain_height">Blockchain Height</span> :</li>
- <li class="text-muted">
- <span id="blockchain_height_stats" class="text-danger">
- <span class="wallet_topo_height"></span>/<span class="daemon_topo_height"></span>
- </span>
- </li>
- </ul>
- <br>
- <ul class="nav flex-column">
- <li class="active"><a data-toggle="tab" data-i18n="tab_send" href="#send" class="btn btn-b-2 btn-block btn-radius active">SEND</a></li>
- <li><a data-toggle="tab" data-i18n="tab_receive" href="#receive" class="btn btn-b-2 btn-block btn-radius">RECEIVE</a></li>
- <li><a data-toggle="tab" data-i18n="tab_history" href="#history" class="btn btn-b-2 btn-block btn-radius">TX HISTORY</a></li>
- <li><a data-toggle="tab" data-i18n="tab_about" href="#about" class="btn btn-b-2 btn-block btn-radius">ABOUT</a></li>
- </ul>
- </div>
- </div>
- </div>
- <div class="col-lg-10 col-md-8 col-sm-12 row d-flex flex-row m-0">
- <div class="row wallet-closed ml-0 align-items-start justify-content-center col-12">
- <div class="col-lg-10 col-md-8 col-sm-12 wrap pt-5 paside">
- <div id="id_wallet_can_run" class="text-center">
- <h3 data-i18n="no_wasm">Please restart or upgrade your browser to run DERO web wallet.</h3>
- </div>
- <div class="row">
- <div class="col-sm-12 text-center">
- <div class="tab-content">
- <!-- Recover Wallet Tabs-->
- <div id="recoverWallet" class="tab-pane fade in active show">
- <h2 class="text-white">
- <div data-i18n="tr_title">
- Recover your wallet
- </div>
- </h2>
- <div class="row justify-content-center">
- <div class="col-sm-12 col-md-8 col-lg-6">
- <div id="local_wallet_list_present">
- <hr>
- <div class="form-group" ida="local_wallet_list_present">
- <label class="text-white" for="local_wallet_list_select" data-i18n="front_available_wallet"></label>
- <select class="selectpicker btn btn-b-2 w100 btn-lang btn-sm" data-width="fit" id="local_wallet_list_select"></select>
- </div>
- <div class="btn-toolbar justify-content-between" role="toolbar" aria-label="Toolbar with button groups">
- <button class="btn btn-b-5 btn-radius btn-success" data-i18n="front_open_saved_wallet" id="open_saved_wallet_button" onClick="open_saved_wallet();">Open Selected wallet</button>
- <button class="btn btn-b-3 btn-radius btn-danger" data-i18n="front_delete_saved_wallet" onClick="delete_saved_wallet();">Delete Selected Wallet</button>
- </div>
- <hr>
- </div>
- <button class="btn btn-b-3 btn-block btn-radius" data-i18n="front_recover_seed_wallet" data-toggle="modal" data-target="#ModalRecoverSeedWords">
- Using <strong>SEED</strong> word (25 words)
- </button>
- <button href="#" class="btn btn-b-3 btn-block btn-radius" data-i18n="front_recover_key_wallet" data-toggle="modal" data-target="#ModalRecoverKey">
- Using Recovery <strong>key</strong> (64 hex char)
- </button>
- <button id="btn_wallet_disk_file" href="#" class="btn btn-b-3 btn-block btn-radius" data-i18n="front_upload_wallet">
- Upload wallet <strong>from Disk</strong>
- </button>
- <div class="form-group my-3" style="display: none;">
- <input type="file" id="wallet_disk_file" name="selected_files[]" />
- </div>
- <br>
- <button href="#" class="btn btn-b-2 btn-block btn-radius" data-i18n="front_recover_view_wallet" data-toggle="modal" data-target="#ModalRecoverViewKey">
- View only
- </button>
- </div>
- </div>
- <div class="row">
- <div class="col-md-3 col-lg-4"></div>
- <div class="col-sm-12 col-md-6 col-lg-4">
- </div>
- <div class="col-md-3 col-lg-4"></div>
- </div>
- </div>
- <!-- Create Wallet -->
- <div id="createWallet" class="tab-pane fade">
- <h2 class="text-white">
- <div data-i18n="create_new_title">
- Create new wallet
- </div>
- </h2>
- <div class="row justify-content-center">
- <div class="col-sm-12 col-md-8 col-lg-6">
- <div class="form-group">
- <label for="i_new_wallet_name" data-i18n="wallet_name">Wallet Name</label>
- <input type="text" class="form-control form-b" id="i_new_wallet_name" data-i18n="[placeholder]wallet_name_quick_placeholder" required>
- </div>
- <div class="form-group">
- <label for="i_new_wallet_pwd" data-i18n="tr_password">Password:</label>
- <input type="password" class="form-control form-b" id="i_new_wallet_pwd" data-i18n="[placeholder]password_placeholder" required placeholder="Password" oninput="verify_same_password(i_new_wallet_pwd,i_new_wallet_cpwd);">
- </div>
- <div class="form-group">
- <label for="i_new_wallet_cpwd" data-i18n="cpassword">Confirm Password:</label>
- <input type="password" class="form-control form-b" data-i18n="[placeholder]cpassword_placeholder" placeholder="Confirm Password" required id="i_new_wallet_cpwd" oninput="verify_same_password(i_new_wallet_pwd,i_new_wallet_cpwd);">
- </div>
- <br>
- <button class="btn btn-b-2 w-b btn-block btn-radius" data-i18n="create_new" onClick="Create_New_Wallet();">
- Create New Wallet
- </button>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="row wallet-online ml-0 align-items-start justify-content-center col-12">
- <div class="col-lg-10 col-md-8 col-sm-12 wrap p-top25">
- <div class="row">
- <div class="col-sm-12">
- <div class="row online justify-content-center">
- <div class="col-md-8 col-lg-4">
- <button id="button_online_offline" class="btn btn-b-4 btn-block btn-radius btn-warning" onclick="toggle_online_offline();">
- WALLET IS ONLINE ˅
- </button>
- </div>
- </div>
- <div class="tab-content">
- <!-- Send Tabs-->
- <div id="send" class="tab-pane fade in active show">
- <h2 class="text-white text-center">
- <div data-i18n="tab_send_sendto_label">
- Send to DERO Address.
- </div>
- </h2>
- <div class="row">
- <div class="col-md-2 col-lg-3"></div>
- <div class="col-sm-12 col-md-8 col-lg-6 text-center">
- <p class="text-gray">
- Please note that sending to another address is irreversible.
- </p>
- <br>
- </div>
- <div class="col-md-2 col-lg-3"></div>
- </div>
- <div class="row justify-content-center">
- <div class="col-sm-12 col-md-8 col-lg-6">
- <div class="form-group">
- <label for="address" data-i18n="tab_send_sendto_label">Recipient wallet address</label> :
- <span class="badge badge-info pl-1" id="go" onclick="StartReadingQRCode();">
- <svg height="20px" width="20px" enable-background="new 0 0 401.994 401.994" version="1.1" viewBox="0 0 401.994 401.994" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
- <path d="m0 401.99h182.72v-182.73h-182.72v182.73zm36.542-146.18h109.64v109.35h-109.64v-109.35z"/>
- <rect x="73.089" y="292.36" width="36.544" height="36.549"/>
- <rect x="292.35" y="365.45" width="36.553" height="36.545"/>
- <rect x="365.44" y="365.45" width="36.552" height="36.545"/>
- <polygon points="365.45 255.81 328.9 255.81 328.9 219.26 219.26 219.26 219.26 401.99 255.81 401.99 255.81 292.36 292.35 292.36 292.35 328.9 401.99 328.9 401.99 219.26 401.99 219.26 365.45 219.26"/>
- <path d="M0,182.728h182.724V0H0V182.728z M36.542,36.542h109.636v109.636H36.542V36.542z"/>
- <rect x="73.089" y="73.089" width="36.544" height="36.547"/>
- <path d="m219.26 0v182.73h182.73v-182.73h-182.73zm146.18 146.18h-109.63v-109.64h109.63v109.64z"/>
- <rect x="292.35" y="73.089" width="36.553" height="36.547"/>
- </svg>
- </span>
- <input id="send_to_address" type="text" class="form-control form-b" oninput="growtextarea('send_to_address');validate_dero_address();" onchange="growtextarea('send_to_address');validate_dero_address();" required data-i18n="[placeholder]tab_send_sendto_address_placeholder">
- <div id="qr_code_reader_div" style="display:none;">
- <div class="select">
- <label for="videoSource">Video source: </label><select id="videoSource"></select>
- </div>
-
- <button onclick="stop_camera_now();">Stop QRcode</button>
- <div>
- <video style="display: inline-flex; " muted autoplay id="video" playsinline="true"></video>
- <canvas id="pcCanvas" width="320" height="320" style="display: none; float: bottom;"></canvas>
- <canvas id="mobileCanvas" width="240" height="320" style="display: none; float: bottom;"></canvas>
- </div>
- </div>
- </div>
- <div class="form-group">
- <label for="amout" data-i18n="tab_send_amount_label">Amount of DERO to send:</label>
- <input type="text" class="form-control form-b" oninput="validate_dero_amount();" id="send_to_amount" required data-i18n="[placeholder]tab_send_amount_placeholder">
- </div>
- <div class="form-group">
- <label for="payid" data-i18n="tab_send_paymentid_label">Payment ID (optional):</label>
- <input type="text" class="form-control form-b" oninput="validate_dero_paymentid();" id="send_to_paymentid" data-i18n="[placeholder]tab_send_paymentid_placeholder">
- </div>
- <br>
- <button class="btn btn-b-2 w-b btn-block btn-radius" data-i18n="tab_send_send_transaction" onClick="wallet_send_transaction();">
- SEND TRANSACTION
- </button>
- </div>
- </div>
- </div>
- <!--Receive tabs-->
- <div id="receive" class="tab-pane fade">
- <h2 class="text-white text-center">
- <div data-i18n="tab_receive_wallet_address">
- Wallet Address
- </div>
- </h2>
- <div class="row justify-content-center">
- <div class="col-sm-12 col-md-8 col-lg-6">
- <div class="form-group">
- <label data-i18n="tab_receive_wallet_address">Wallet Address</label>
- <span class="badge badge-light clipboard pl-1" data-clipboard-action="copy" data-clipboard-target="#wallet_address_id">
- <svg height="20px" width="20px" enable-background="new 0 0 561 561" version="1.1" viewBox="0 0 561 561" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
- <path d="m395.25 0h-306c-28.05 0-51 22.95-51 51v357h51v-357h306v-51zm76.5 102h-280.5c-28.05 0-51 22.95-51 51v357c0 28.05 22.95 51 51 51h280.5c28.05 0 51-22.95 51-51v-357c0-28.05-22.95-51-51-51zm0 408h-280.5v-357h280.5v357z"/>
- </svg>
- </span>
- <span class="badge badge-info ml-2" onClick="$('#ModalQRCode').modal('show'); qrcode.clear(); qrcode_title.value=wallet_address;
- qrcode.makeCode(wallet_address);qrcode_title.innerHTML=wallet_address;">
- <svg height="20px" width="20px" enable-background="new 0 0 401.994 401.994" version="1.1" viewBox="0 0 401.994 401.994" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
- <path d="m0 401.99h182.72v-182.73h-182.72v182.73zm36.542-146.18h109.64v109.35h-109.64v-109.35z"/>
- <rect x="73.089" y="292.36" width="36.544" height="36.549"/>
- <rect x="292.35" y="365.45" width="36.553" height="36.545"/>
- <rect x="365.44" y="365.45" width="36.552" height="36.545"/>
- <polygon points="365.45 255.81 328.9 255.81 328.9 219.26 219.26 219.26 219.26 401.99 255.81 401.99 255.81 292.36 292.35 292.36 292.35 328.9 401.99 328.9 401.99 219.26 401.99 219.26 365.45 219.26"/>
- <path d="M0,182.728h182.724V0H0V182.728z M36.542,36.542h109.636v109.636H36.542V36.542z"/>
- <rect x="73.089" y="73.089" width="36.544" height="36.547"/>
- <path d="m219.26 0v182.73h182.73v-182.73h-182.73zm146.18 146.18h-109.63v-109.64h109.63v109.64z"/>
- <rect x="292.35" y="73.089" width="36.553" height="36.547"/>
- </svg>
- </span>
- <input id="wallet_address_id" type="text" class="form-control form-b wallet_address" readonly>
- </div>
- <div class="form-group">
- <label data-i18n="tab_receive_i32_address">Integrated 32 Address</label>
- <span class="badge badge-light clipboard" data-clipboard-action="copy" data-clipboard-target="#random_i32_address_id">
- <svg height="20px" width="20px" enable-background="new 0 0 561 561" version="1.1" viewBox="0 0 561 561" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
- <path d="m395.25 0h-306c-28.05 0-51 22.95-51 51v357h51v-357h306v-51zm76.5 102h-280.5c-28.05 0-51 22.95-51 51v357c0 28.05 22.95 51 51 51h280.5c28.05 0 51-22.95 51-51v-357c0-28.05-22.95-51-51-51zm0 408h-280.5v-357h280.5v357z"/>
- </svg>
- </span>
- <span class="badge badge-info ml-2" onClick="$('#ModalQRCode').modal('show'); qrcode.clear(); qrcode.makeCode(random_i32_address);qrcode_title.innerHTML=random_i32_address;">
- <svg height="20px" width="20px" enable-background="new 0 0 401.994 401.994" version="1.1" viewBox="0 0 401.994 401.994" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
- <path d="m0 401.99h182.72v-182.73h-182.72v182.73zm36.542-146.18h109.64v109.35h-109.64v-109.35z"/>
- <rect x="73.089" y="292.36" width="36.544" height="36.549"/>
- <rect x="292.35" y="365.45" width="36.553" height="36.545"/>
- <rect x="365.44" y="365.45" width="36.552" height="36.545"/>
- <polygon points="365.45 255.81 328.9 255.81 328.9 219.26 219.26 219.26 219.26 401.99 255.81 401.99 255.81 292.36 292.35 292.36 292.35 328.9 401.99 328.9 401.99 219.26 401.99 219.26 365.45 219.26"/>
- <path d="M0,182.728h182.724V0H0V182.728z M36.542,36.542h109.636v109.636H36.542V36.542z"/>
- <rect x="73.089" y="73.089" width="36.544" height="36.547"/>
- <path d="m219.26 0v182.73h182.73v-182.73h-182.73zm146.18 146.18h-109.63v-109.64h109.63v109.64z"/>
- <rect x="292.35" y="73.089" width="36.553" height="36.547"/>
- </svg>
- </span>
- <input id="random_i32_address_id" type="text" class="form-control form-b random_i32_address" readonly>
- </div>
- <div class="form-group">
- <label data-i18n="tab_receive_i32_paymentid">Integrated 32 Address Payment ID</label>
- <input type="text" class="form-control form-b random_i32_address_paymentid" readonly>
- </div>
- <!-- Currently these are not displayed
- <h5> <span data-i18n="tab_receive_i8_address" >Integrated 8 Address </span> :</h5>
-
- <div class="mb-2 bg-secondary text-white">
- <div class="d-inline random_i8_address"></div>
- </div>
-
-
- <h6> <span data-i18n="tab_receive_i8_paymentid" > Integrated 8 Address Payment ID</span>:</h6>
- <div class="mb-2 bg-secondary text-white">
- <div class="d-inline random_i8_address_paymentid"></div>
- </div>
- -->
- <div class="form-group">
- <button class="btn btn-b-2 btn-block btn-radius" data-i18n="tab_receive_generate" onClick="promiseWorker.postMessage({cmd:'generate_integrated_address',id:secretid});">Generate Integrated address</button>
- </div>
- </div>
- </div>
- </div>
- <!-- History tabs -->
- <div id="history" class="tab-pane fade">
- <div class="d-flex justify-content-center">
- <div class="d-inline-flex justify-content-center ">
- <button type="button" class="btn btn-b-2 btn-radius" onClick='update_tx_history();' data-i18n="tab_history_load">Load TX history</button>
- <button type="button" class="btn btn-b-2 btn-radius" onClick='txtable.download("csv", "data.csv", {delimiter:","});' data-i18n="tab_history_export_csv">Export to CSV</button>
- </div>
- </div>
- <!-- hold transaction table -->
- <div id="txtable" class="text-monospace"></div>
- </div>
- <!-- About tabs -->
- <div id="about" class="tab-pane fade">
- <h2 class="text-white text-center">
- <div data-i18n="tr_DERO">
- DERO
- </div>
- </h2>
- <div class="row justify-content-center">
- <div class="col-sm-12 col-md-8 col-lg-6">
- <p class="text-gray">DERO is decentralized DAG (Directed Acyclic Graph) based blockchain with enhanced reliability, privacy, security and usability.DERO is industry leading and the first blockchain to have bulletproofs, TLS encrypted
- network.
- </p>
- <p class="text-gray">DERO blockchain has the following salient features :</p>
- <ul class="text-gray">
- <li><span><strong>Extremely fast:</strong> 12 seconds transfer time</span></li>
- <li><span><strong>Fast Confirmation:</strong> 2 minutes</span></li>
- <li><span><strong>Bulletproofs:</strong> Zero Knowledge Range Proofs (NIZK). No one knows who spent what.</span></li>
- <li><span><strong>Ring Signatures:</strong>:No one know who spent when and where.</span></li>
- <li><span><strong>SSl/TLS P2P encrypted network</strong></span></li>
- <li><span><strong>CryptoNote: Fully encrypted blockchain</strong></span></li>
- <li><span><strong>Fully Auditable Supply</strong></span></li>
- <li><span><strong>DAG Based:</strong> No orphans, no soft forks</span></li>
- <li><span><strong>DERO blockchain is written from scratch in Golang.</strong></span></li>
- <li><span><strong>Developed and maintained by original developers.</strong></span></li>
- </ul>
- <span class="text-center text-gray" style="width: 100%">Please visit <a href="https://dero.io">https://dero.io</a> for more information.</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- Footer -->
- <div class="row ml-0 align-items-end justify-content-center col-12">
- <div class="wrap text-center">
- <hr>
- <div class="text-secondary">DERO Web wallet is alpha software.</div>
- <div class="text-secondary"><span>Core Wallet Version: </span><span class="wallet_version_string"></span><span> UI Version: 0.0.0 </span></div>
- <div class="text-secondary">Copyright DERO project </div>
- <div class="text-secondary">This project is covered by DERO license.</div>
- <div class="text-primary"> <a href="https://dero.io">https://dero.io</a></div>
- </div>
- </div>
- </div>
- </div>
- <!-- below are all the models used for various views -->
- <!-- this model is used to confirm transaction -->
- <div class="modal fade" id="ModalConfirmTX">
- <div class="modal-dialog modal-dialog-centered modal-lg">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="tx_confirmation">Transfer Confirmation</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body">
- <div class="form-group">
- <label style="display:none;" id="transfer_txhex"> </label>
- <label class="font-weight-bold">TXID:</label> <label id="transfer_txid"></label> <br/>
- <label class="font-weight-bold"><span data-i18n="tx_input_amount">Input Amount</span>:</label> <label id="transfer_inputs_sum"></label><br/>
- <label class="font-weight-bold"><span data-i18n="tx_sending_amount">Sending </span> :</label> <label id="transfer_amount"></label><br/>
- <label class="font-weight-bold"><span data-i18n="tx_change">Change </span> :</label> <label id="transfer_change"></label><br/>
- <label class="font-weight-bold"><span data-i18n="tx_fees">Fees</span>:</label> <label id="transfer_fee"></label> <br/>
- <label class="font-weight-bold"><span data-i18n="tx_size">TX Size </span> :</label> <label id="transfer_tx_size"></label><br/>
- </div>
- </div>
- <!-- Modal footer -->
- <div class="modal-footer">
- <button type="button" class="btn btn-danger" data-dismiss="modal" onclick="relay_tx();" data-i18n="tx_transfer">Transfer</button>
- <button type="button" class="btn btn-primary" data-dismiss="modal" data-i18n="tr_close">Close</button>
- </div>
- </div>
- </div>
- </div>
- <!-- The Modal to recover using seed words -->
- <div class="modal fade" id="ModalRecoverSeedWords">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="recover_seed_title">Wallet Recovery using Seed Words</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body">
- <div class="form-group">
- <label for="i_seed_wallet_name" data-i18n="wallet_name">Wallet Name</label>
- <input type="input" class="form-control form-b" id="i_seed_wallet_name" data-i18n="[placeholder]wallet_name_quick_placeholder" placeholder="Wallet Name for quick reference" required>
- </div>
- <div class="form-group">
- <label for="i_seed" data-i18n="25_seed_words">25 Seed Words:</label>
- <textarea class="form-control form-b" oninput="growtextarea('i_seed');" style="overflow: hidden;box-sizing: border-box;" rows="3" id="i_seed" required></textarea>
- </div>
- <div class="form-group">
- <label for="i_seed_pwd" data-i18n="tr_password">Password</label>
- <input type="password" class="form-control form-b" id="i_seed_pwd" data-i18n="[placeholder]password_placeholder" oninput="verify_same_password(i_seed_pwd,i_seed_cpwd);" required>
- </div>
- <div class="form-group">
- <label for="i_seed_cpwd" data-i18n="cpassword">Confirm Password:</label>
- <input type="password" class="form-control form-b" id="i_seed_cpwd" oninput="verify_same_password(i_seed_pwd,i_seed_cpwd);" data-i18n="[placeholder]cpassword_placeholder" required>
- </div>
- <div class="form-group">
- <label for="i_seed_topoheight" data-i18n="wallet_start_topoheight">Wallet start Topoheight: (optional)</label>
- <input type=number class="form-control form-b" id="i_seed_topoheight" value="0" type="number" min="-1" step="1" required>
- </div>
- </div>
- <!-- Modal footer -->
- <div class="modal-footer">
- <button class="btn btn-b-2 w-b btn-block btn-radius" onclick="Recover_Wallet_Using_Seed_Words();" data-i18n="recover_wallet">Recover Wallet</button>
- </div>
- </div>
- </div>
- </div>
- <!-- The Modal to recover using Recovery Key -->
- <div class="modal fade" id="ModalRecoverKey">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="recover_key">Wallet Recovery using Recovery Key</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body">
- <div class="form-group">
- <label for="i_key_wallet_name" data-i18n="wallet_name">Wallet Name</label>
- <input type="text" class="form-control form-b" id="i_key_wallet_name" required>
- </div>
- <div class="form-group">
- <label for="i_key" data-i18n="recover_key">Recovery Key (64 hex chars)</label>
- <textarea class="form-control form-b" oninput="growtextarea('i_key');validate_recovery_key();" style="overflow: hidden;box-sizing: border-box;" rows="1" id="i_key" required></textarea>
- </div>
- <div class="form-group">
- <label for="i_key_pwd" data-i18n="tr_password">Password:</label>
- <input type="password" class="form-control form-b" id="i_key_pwd" oninput="verify_same_password(i_key_pwd,i_key_cpwd);" required data-i18n="[placeholder]password_placeholder" placeholder="Password">
- </div>
- <div class="form-group">
- <label for="i_key_cpwd" data-i18n="cpassword">Confirm Password:</label>
- <input type="password" class="form-control form-b" id="i_key_cpwd" oninput="verify_same_password(i_key_pwd,i_key_cpwd);" data-i18n="[placeholder]cpassword_placeholder" placeholder="Confirm Password" required>
- </div>
- <div class="form-group">
- <label for="i_key_topoheight" data-i18n="wallet_start_topoheight">Wallet start height:</label>
- <input type=number class="form-control form-b" id="i_key_topoheight" value="-1" type="number" min="-1" step="1">
- </div>
- </div>
- <!-- Modal footer -->
- <div class="modal-footer">
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" data-dismiss="modal" onclick="Recover_Wallet_Using_Recovery_Key();" data-i18n="recover_wallet">Recover Wallet</button>
- </div>
- </div>
- </div>
- </div>
- <!-- The Modal to recover using View Key -->
- <div class="modal fade" id="ModalRecoverViewKey">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="recover_viewkey_title">Wallet Recovery using View Key</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body">
- <div class="form-group">
- <label for="i_viewkey_wallet_name" data-i18n="wallet_name">Wallet Name</label>
- <input type="text" class="form-control form-b" data-i18n="[placeholder]wallet_name_quick_placeholder" id="i_viewkey_wallet_name" required>
- </div>
- <div class="form-group">
- <label for="i_viewkey" data-i18n="recover_viewkey">View Key (128 hex chars)</label>
- <textarea class="form-control form-b" oninput="growtextarea('i_viewkey');validate_viewkey_key();" style="overflow: hidden;box-sizing: border-box;" rows="1" id="i_viewkey" required></textarea>
- </div>
- <div class="form-group">
- <label for="i_viewkey_pwd" data-i18n="tr_password">Password:</label>
- <input type="password" class="form-control form-b" data-i18n="[placeholder]password_placeholder" required placeholder="Password" id="i_viewkey_pwd" oninput="verify_same_password(i_viewkey_pwd,i_viewkey_cpwd);">
- </div>
- <div class="form-group">
- <label for="i_viewkey_cpwd" data-i18n="cpassword">Confirm Password:</label>
- <input type="password" class="form-control form-b" required data-i18n="[placeholder]cpassword_placeholder" placeholder="Confirm Password" id="i_viewkey_cpwd" oninput="verify_same_password(i_viewkey_pwd,i_viewkey_cpwd);">
- </div>
- <div class="form-group">
- <label for="i_viewkey_topoheight" data-i18n="wallet_start_topoheight">Wallet start height:</label>
- <input type=number class="form-control form-b" id="i_viewkey_topoheight" value="0" type="number" min="-1" step="1">
- </div>
- </div>
- <!-- Modal footer -->
- <div class="modal-footer">
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" data-dismiss="modal" onclick="Recover_Wallet_Using_View_Key();" data-i18n="recover_wallet">Recover Wallet</button>
- </div>
- </div>
- </div>
- </div>
- <!-- The Modal to create wallet tools such as change password,rescan blockchain etc -->
- <div class="modal fade" id="ModalSettings">
- <div class="modal-dialog modal-dialog-centered modal-lg">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="settings_title">Settings and Tools</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body">
- <div id="accordion">
- <div class="card">
- <div class="card-header">
- <a class="collapsed card-link" data-toggle="collapse" href="#collapsefreq">
- Wallet Syncs every <span class="wallet_sync_time"></span> seconds
- </a>
- </div>
- <div id="collapsefreq" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <form>
- <div class="form-group">
- <label for="formControlRange">Sync Every <span class="wallet_sync_time"></span> seconds</label>
- <input type="range" class="form-control-range" id="formControlRange" min="6" value="6" max="120" oninput="promiseWorker.postMessage({cmd:'set_sync_frequency',id:secretid,syncevery:parseInt(formControlRange.value,10)});">
- <div class="d-flex bd-highlight justify-content-between">
- <div class="p-2 "><span class="text-left text-gray">High Compute<br/>High Network </span></div>
- <div class="p-2 "><span class="text-right text-gray">Less Compute<br/>Less Network </span></div>
- </div>
- </div>
- </form>
- </div>
- </div>
- </div>
- <div class="card">
- <div class="card-header">
- <a class="card-link" data-toggle="collapse" data-i18n="download_wallet_file" href="#collapse0">
- Download Wallet as file
- </a>
- </div>
- <div id="collapse0" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <div class="form-group">
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" onclick="promiseWorker.postMessage({cmd:'download_wallet',id:secretid}).then(function (response) {
- if (response === false) {
- alert('Wallet Download Failed');
- }else{
- var blob = new Blob( [new Uint8Array(response.edb)] , {type: 'application/octet-stream'});
- saveAs(blob, response.name + '.bin' );
- }
- });
- " data-i18n="download_wallet">Download Wallet</button>
- </div>
- </div>
- </div>
- </div>
- <div class="card">
- <div class="card-header">
- <a class="card-link" data-toggle="collapse" href="#collapse1">
- <span data-i18n="rename_wallet">Rename Open Wallet</span> <strong class="wallet_local_name"></strong>
- </a>
- </div>
- <div id="collapse1" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <div class="form-group">
- <input type="text" class="form-control form-b" id="i_settings_wallet_name" data-i18n="[placeholder]rename_wallet_placeholder" placeholder="New wallet name" required>
- </div>
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" data-i18n="rename_wallet" onclick="rename_wallet();">Rename Wallet</button>
- </div>
- </div>
- </div>
- <div class="card">
- <div class="card-header">
- <a class="collapsed card-link" data-toggle="collapse" href="#collapse2" data-i18n="change_wallet_start_topoheight">
- Change Wallet Start TopoHeight
- </a>
- </div>
- <div id="collapse2" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <div class="form-group">
- <label data-i18n="change_wallet_start_topoheight_rare">Change Wallet Start TopoHeight (Rare use) Current:<span class="wallet_initial_height"></span></label>
- <input type="number" class="form-control form-b" id="i_settings_topoheight" value="0" min="0" step="1">
- </div>
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" onclick="change_wallet_start_height(parseInt(i_settings_topoheight.value,10));" data-i18n="change_wallet_start_topoheight">Change Start Height</button>
- </div>
- </div>
- </div>
- <div class="card">
- <div class="card-header">
- <a class="collapsed card-link" data-toggle="collapse" href="#collapse3" data-i18n="change_wallet_password">
- Change Wallet Password
- </a>
- </div>
- <div id="collapse3" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <div class="form-group">
- <label for="i_settings_pwd" data-i18n="new_password">New Password:</label>
- <input type="password" class="form-control form-b" id="i_settings_pwd" oninput="verify_same_password(i_settings_pwd,i_settings_cpwd);" data-i18n="[placeholder]new_password" required placeholder=" ">
- </div>
- <div class="form-group">
- <label for="i_settings_cpwd" data-i18n="new_cpassword">Confirm New Password:</label>
- <input type="password" class="form-control form-b" data-i18n="[placeholder]new_cpassword" id="i_settings_cpwd" oninput="verify_same_password(i_settings_pwd,i_settings_cpwd);" required placeholder=" ">
- </div>
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" data-i18n="change_wallet_password" onclick="change_wallet_password();">Change Wallet Password</button>
- </div>
- </div>
- </div>
- <div class="card">
- <div class="card-header">
- <a class="collapsed card-link" data-toggle="collapse" href="#collapse4" data-i18n="rescan_blockchain">
- Rescan Blockchain from start topoheight
- </a>
- </div>
- <div id="collapse4" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <label data-i18n="wallet_minimum_topoheight">Wallet may be restored from Topo Height</label>: <label class="wallet_minimum_topo_height"> </label>
- <label data-i18n="rescan_blockchain_rare">Never or Rarely required. Wallet gets busy for 20-30 minutes </label>
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" data-i18n="rescan_blockchain_trigger" onclick="promiseWorker.postMessage({cmd:'rescan_blockchain',id:secretid});alert(i18next.t('success'));;">Trigger Blockchain Rescanning <br/></button>
- </div>
- </div>
- </div>
- <div class="card">
- <div class="card-header">
- <a class="collapsed card-link" data-toggle="collapse" href="#collapse5" data-i18n="transfer_everything">
- Transfer Everything to Address(DERO balance)
- </a>
- </div>
- <div id="collapse5" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <div class="form-group">
- <label for="i_settings_send_address" data-i18n="dero_address">DERO address</label>
- <input type="text" class="form-control form-b" id="i_settings_send_address" data-i18n="[placeholder]valid_dero_address_placeholder" required placeholder="Enter Valid DERO address">
- </div>
- <button type="button" class="btn btn-b-2 w-b btn-block btn-radius" onclick="wallet_send_everything_transaction();" data-i18n="send_now">Send Now</button>
- </div>
- </div>
- </div>
- <div class="card">
- <div class="card-header">
- <a class="collapsed card-link" data-toggle="collapse" href="#collapse6" data-i18n="control_wallet_seed">Get your seed</a>
- </div>
- <div id="collapse6" class="collapse" data-parent="#accordion">
- <div class="card-body">
- <div class="form-group">
- <label class="text-danger" data-i18n="seed1">Your wallet can be recovered using the below seed.</label>
- <label class="text-danger" data-i18n="seed2">You must save the SEED in a safe secure location.</label>
- <label class="text-danger" data-i18n="seed3">Sharing your SEED is equal to sharing your wallet.If your SEED is lost, consider your wallet as lost.</label>
- <div class="form-group">
- <label for="sel1" data-i18n="seed_language">Seed Language:</label>
- <select class="selectpicker btn btn-b-2 w100 btn-lang btn-sm" id="sseedlanguage" onChange="update_seed(this.value);">
- <option>English</option>
- <option>日本語</option>
- <option>简体中文 (中国)</option>
- <option>Nederlands</option>
- <option>Esperanto</option>
- <option>русский язык</option>
- <option>Español</option>
- <option>Português</option>
- <option>Français</option>
- <option>Deutsch</option>
- <option>Italiano</option>
- </select>
- </div>
- <label class="label-seed" id="seedbox">SEED</label>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- Modal footer
- <div class="modal-footer">
- <button type="button" class="btn btn-danger" data-dismiss="modal" data-i18n="tr_close">Close</button>
- </div> -->
- </div>
- </div>
- </div>
- <!-- The Modal used to display seed seed words -->
- <div class="modal fade" id="ModalSeedWords">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="seed_title">Your DERO wallet SEED</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body">
- <div class="form-group">
- <label class="text-danger" data-i18n="seed1">Your wallet can be recovered using the below seed.</label>
- <label class="text-danger" data-i18n="seed2">You must save the SEED in a safe secure location.</label>
- <label class="text-danger" data-i18n="seed3">Sharing your SEED is equal to sharing your wallet.If your SEED is lost, consider your wallet as lost.</label>
- <div class="form-group">
- <label for="sel1" data-i18n="seed_language">Seed Language:</label>
- <select class="selectpicker btn btn-b-2 w100 btn-lang btn-sm" id="sseedlanguage" onChange="update_seed(this.value);">
- <option>English</option>
- <option>日本語</option>
- <option>简体中文 (中国)</option>
- <option>Nederlands</option>
- <option>Esperanto</option>
- <option>русский язык</option>
- <option>Español</option>
- <option>Português</option>
- <option>Français</option>
- <option>Deutsch</option>
- <option>Italiano</option>
- </select>
- </div>
- <label class="label-seed" id="seedbox">SEED</label>
- </div>
- </div>
- <!-- Modal footer -->
- <div class="modal-footer">
- <button type="button" class="btn btn-danger" data-dismiss="modal" data-i18n="tr_close">Close</button>
- </div>
- </div>
- </div>
- </div>
- <!-- The Modal used to display seed seed words -->
- <div class="modal fade" id="ModalQRCode">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="enter_password">Password</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body ">
- <div class="d-flex justify-content-center">
- <div id="qrcode"></div>
- </div>
- </div>
- <!-- Modal footer -->
- <div class="modal-footer">
- <button type="button" class="btn btn-danger" data-dismiss="modal" data-i18n="tr_close">Close</button>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="ModalPromptPassword">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <!-- Modal Header -->
- <div class="modal-header">
- <h4 class="modal-title text-center" data-i18n="enter_password">Password</h4>
- <button type="button" class="close" data-dismiss="modal">×</button>
- </div>
- <!-- Modal body -->
- <div class="modal-body ">
- <div class="form-group">
- <input type="password" name="password" class="form-control form-b" required>
- <input type="hidden" name="action">
- </div>
- <div class="form-group">
- <button type="button" id="PromptPassword" class="btn btn-b-2 w-b btn-block btn-radius">Submit</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- </body>
- <!-- jQuery first, then Popper.js, then Bootstrap JS -->
- <!--<script type="text/javascript" src="/static/jquery-3.2.1.slim.min.js" ></script>-->
- <script type="text/javascript" src="/static/deps/jquery-3.2.1.js"></script>
- <script type="text/javascript" src="/static/deps/js.cookie-2.2.0.min.js"></script>
- <script type="text/javascript" src="/static/deps/popper.min.js"></script>
- <script type="text/javascript" src="/static/deps/bootstrap.min.js"></script>
- <script type="text/javascript" src="/static/deps/i18next_11.9.1.min.js"></script>
- <script type="text/javascript" src="/static/deps/jquery-i18next.min.js"></script>
- <script type="text/javascript" src="/static/deps/video.js"></script>
- <script type="text/javascript" src="/static/translations.js"></script>
- <script type="text/javascript" src="/static/deps/clipboard.min.js"></script>
- <script type="text/javascript" src='/static/deps/big.js'></script>
- <script type="text/javascript" src="/static/deps/FileSaver.js"></script>
- <script type="text/javascript" src="/static/deps/tabulator.min.js"></script>
- <script type="text/javascript" src="/static/deps/promise-worker.js"></script>
- <script type="text/javascript" src="/static/deps/qrcode.js"></script>
- <!-- these are for qr code reader from camera -->
- <script async src="/static/deps/zxing.js"></script>
- <script type="text/javascript" src="/static/wallet.js"></script>
- <script type="text/javascript">
- // install file select handle
- document.getElementById('wallet_disk_file').addEventListener('change', HandleWalletSelect, false);
-
-
-
- var customFormatter_dero = function(cell, formatterParams, onRendered) {
- //cell - the cell component
- //formatterParams - parameters set for the column
- //onRendered - function to call when the formatter has been rendered
-
- // return '<div style="text-align: right;">' + cell.getValue() +'</div>'; //return the contents of the cell;
-
- var divisor = new Big("1000000000000");
- var x = new Big(cell.getValue());
- x = x.div(divisor);
- return '<div style="text-align: right;">' + x.toFixed(12) + '</div>';
- };
-
-
-
-
- var txtable = new Tabulator("#txtable", {
- columns: [{
- title: "Time",
- field: "time"
- }, {
- title: "Amount",
- field: "amount",
- sorter: "number",
- formatter: customFormatter_dero
- }, {
- title: "TXID",
- field: "txid",
- sortable: false
- }, {
- title: "Payment ID",
- field: "paymentid",
- width: "8em"
- }, {
- title: "BL Height",
- field: "height",
- sortable: false
- }, {
- title: "TopoHeight",
- field: "topoheight",
- sortable: false
- }, {
- title: "Status",
- field: "status"
- },
-
- ],
- // selectable:true,
- layout: "fitDataFill",
- responsiveLayout: "collapse", // collapse columns that no longer fit
- layoutColumnsOnNewData: true,
- // height : "50vh", // show only 20 tx per view, rest must be scrolled
- pagination: "local",
- paginationSize: 10,
-
- rowFormatter: function(row) {
- var data = row.getData();
-
- if (data.status == "1") {
-
- row.getElement().style.backgroundColor = "#ffcccb"; // spent color
- } else {
- //row.getElement().style.backgroundColor = "#e5ffff"; // incoming color
-
- //row.getElement().css({"background-color":"#A6A6DF"});
- // row.getElement().addClass("text-white");
-
- }
- },
- });
-
-
-
-
-
-
-
-
-
-
-
- $(document).ready(function() {
-
- $('.wallet-online').hide();
-
- $('#btn_wallet_disk_file').on('click', function() {
- $('#wallet_disk_file').click();
- });
-
- $('div#blackTheme, div#whiteTheme').on('click', function() {
- var id = $(this).attr('id');
- if (id == "blackTheme") {
- $('link[title="blackTheme"]').prop('disabled', false);
- $('link[title="whiteTheme"]').prop('disabled', true);
- } else {
- $('link[title="whiteTheme"]').prop('disabled', false);
- $('link[title="blackTheme"]').prop('disabled', true);
- }
- Cookies.set('theme', id, {
- expires: 3650
- });
- });
-
- var stored_theme = Cookies.get('theme');
- if (typeof(stored_theme) != undefined) {
- $('div#'+stored_theme).trigger('click');
- }
-
- i18next.init({
- // debug: true,
- "lng": 'en',
- "resources": translations,
- "fallbackLng": 'en',
-
- // attributes to translate
- translateAttributes: ['placeholder', 'value', 'title', 'alt', 'value#input.type=button', 'value#input.type=submit'],
-
- }, function(t) {
-
- //i18next();
-
- });
-
- jqueryI18next.init(i18next, $, {
- tName: 't', // --> appends $.t = i18next.t
- i18nName: 'i18n', // --> appends $.i18n = i18next
- handleName: 'localize', // --> appends $(selector).localize(opts);
- selectorAttr: 'data-i18n', // selector for translating elements
- targetAttr: 'i18n-target', // data-() attribute to grab target element to translate (if diffrent then itself)
- optionsAttr: 'i18n-options', // data-() attribute that contains options, will load/set if useOptionsAttr = true
- useOptionsAttr: false, // see optionsAttr
- parseDefaultValueFromContent: true // parses default values from content ele.val or ele.text
- });
-
-
- var stored_lang = Cookies.get('lang')
- if (typeof(stored_lang) != undefined) {
- // make sure the language reference by cookie is still valid
- if (translations[stored_lang] != 'undefined') {
- i18next.changeLanguage(stored_lang, (err, t) => {
- // Select the real language
- $('#language_picker > option[data-lang="' + stored_lang + '"]').attr('selected', 'selected');
- if (err) return console.log('something went wrong loading', err);
- });
- }
- } else { // we do not have cookie stored, so time to guess user language
- var first_lang = getFirstBrowserLanguage();
-
- // check language exists
- if (translations[first_lang] != undefined) {
- $('#language_picker > option[data-lang="' + first_lang + '"]').attr('selected', 'selected');
- i18next.changeLanguage(first_lang, (err, t) => {
- if (err) return console.log('something went wrong loading', err);
-
- });
-
- } else { // extract the first part of tag
- parts = first_lang.split("-");
- if (parts.length >= 2) {
-
- if (translations[parts[0]] != undefined) {
- $('#language_picker > option[data-lang="' + parts[0] + '"]').attr('selected', 'selected');
- i18next.changeLanguage(parts[0], (err, t) => {
- if (err) return console.log('something went wrong loading', err);
- });
- }
- }
- }
- }
-
- console.log(getFirstBrowserLanguage());
-
-
- $("body").localize(); // localize first time automatically
-
- $('#language_picker').on('change', function() {
- var lang = $(this).find('option:selected').attr('data-lang');
-
- Cookies.set('lang', lang, {
- expires: 3650
- }); // 10 years a long time
- i18next.changeLanguage(lang, (err, t) => {
- if (err) return console.log('something went wrong loading', err);
-
- });
- $("body").localize();
-
-
- });
-
- setTimeout(function(){
- $('body').addClass('loaded');
- }, 1500);
- });
-
-
- // this is for qrcode reader
- var qrcode = new QRCode(document.getElementById("qrcode"), {
- text: "https://dero.io",
- width: 384,
- height: 384,
- colorDark: "#000000",
- colorLight: "#ffffff",
- //correctLevel : QRCode.CorrectLevel.H // ECC highest level, Reading is tough
- correctLevel: QRCode.CorrectLevel.L // ECC lowest level
- });
-
-
- var clipboard = new ClipboardJS('.clipboard');
- </script>
-
- </html>
|