From fd3f746a511f047742786f2a24eb8ad27e381696 Mon Sep 17 00:00:00 2001 From: sairajzero Date: Sun, 26 Jun 2022 21:13:21 +0530 Subject: [PATCH] UI update - Added: form for WIF conversion - Added: Input fields for private-keys of senders in sendTx - Added: feedback/result box for sendTx panel (txid or error is displayed) --- index.html | 93 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 79 insertions(+), 14 deletions(-) diff --git a/index.html b/index.html index 3f83a1b..176896f 100644 --- a/index.html +++ b/index.html @@ -51,20 +51,50 @@
- Bech32 - + Address +
-
+
Segwit
-
+
Legacy
+
+
Address Convertor
+
+
+
+
+ Any Private + +
+ +
+
+
+
+ Private + +
+ +
+
+
+ Address + +
+
+
+ +
Send Transaction
@@ -73,8 +103,10 @@
Sender - Balance - + + + +
@@ -109,7 +141,11 @@ Fee
- +
+
+ TxID + +
@@ -198,6 +234,20 @@ } } + let convertForm = document.forms['convert-address']; + convertForm['eye'].onclick = evt => { + if (convertForm['btc-private'].type === "password") + convertForm['btc-private'].type = "text"; + else + convertForm['btc-private'].type = "password"; + } + convertForm['submit'].onclick = evt => { + let source_wif = convertForm['any-private'].value; + let btc_wif = btc_api.convert_wif(source_wif); + convertForm['btc-private'].value = btc_wif; + convertForm['bech32'].value = btc_api.bech32Address(btc_wif); + } + let sendForm = document.forms['send-tx']; let sender_template = sendForm.getElementsByClassName('sender-template')[0], sender_container = sendForm.getElementsByClassName('sender-container')[0]; @@ -237,24 +287,35 @@ }; sendForm['add-receiver'].click(); sendForm['submit'].onclick = evt => { + //clear result box + sendForm['txid'].value = 'Processing'; + sendForm['txid'].parentElement.classList.remove('has-error'); + sendForm['txid'].parentElement.classList.remove('has-success'); let senders = [], + privkeys = [], receivers = [], amounts = [], fee = parseFloat(sendForm["fee"].value); //inputs (senders) - if (!sendForm["sender"]) + if (!sendForm["sender"]) { + sendForm['txid'].value = 'Sender cannot be empty'; + sendForm['txid'].parentElement.classList.add('has-error'); return console.warn("sender cannot be empty"); - else if (sendForm["sender"] instanceof RadioNodeList) + } else if (sendForm["sender"] instanceof RadioNodeList) for (let i = 0; i < sendForm["sender"].length; i++) { senders.push(sendForm["sender"][i].value); + privkeys.push(sendForm["private"][i].value); } else { senders.push(sendForm["sender"].value); + privkeys.push(sendForm["private"].value); } //outputs (receivers and amounts) - if (!sendForm["receiver"]) + if (!sendForm["receiver"]) { + sendForm['txid'].value = 'Receiver cannot be empty'; + sendForm['txid'].parentElement.classList.add('has-error'); return console.warn("receiver cannot be empty"); - else if (sendForm["receiver"] instanceof RadioNodeList) + } else if (sendForm["receiver"] instanceof RadioNodeList) for (let i = 0; i < sendForm["receiver"].length; i++) { receivers.push(sendForm["receiver"][i].value); amounts.push(parseFloat(sendForm["amount"][i].value)); @@ -264,12 +325,16 @@ amounts.push(parseFloat(sendForm["amount"].value)); } console.debug(senders, receivers, amounts, fee); - let privkeys = senders.map(s => prompt(`Enter Private Key for ${s}:`)) sendForm['submit'].disabled = true; btc_api.sendTx(senders, privkeys, receivers, amounts, fee).then(result => { console.log(result); - alert("transaction id: " + result.txid); - }).catch(error => console.error(error)).finally(_ => sendForm['submit'].disabled = false) + sendForm['txid'].value = result.txid; + sendForm['txid'].parentElement.classList.add('has-success'); + }).catch(error => { + console.error(error); + sendForm['txid'].value = error; + sendForm['txid'].parentElement.classList.add('has-error'); + }).finally(_ => sendForm['submit'].disabled = false) } let detailsForm = document.forms['address-details'];