- send tx not working when single receiver is entered (UI bug)
- View details UI: Aligned the addresses in view tx table
- sendTx: reject when total receiver amount is less than fee or zero
This commit is contained in:
sairajzero 2022-06-20 21:09:54 +05:30
parent 9458f4855e
commit fb54b96221
2 changed files with 15 additions and 7 deletions

View File

@ -210,8 +210,13 @@
let sender = sendForm["sender"].value,
receivers = {},
fee = parseFloat(sendForm["fee"].value);
for (let i = 0; i < sendForm["receiver"].length; i++)
receivers[sendForm["receiver"][i].value] = parseFloat(sendForm["amount"][i].value);
if (!sendForm["receiver"])
return console.warn("receiver cannot be empty");
else if (sendForm["receiver"] instanceof RadioNodeList)
for (let i = 0; i < sendForm["receiver"].length; i++)
receivers[sendForm["receiver"][i].value] = parseFloat(sendForm["amount"][i].value);
else
receivers[sendForm["receiver"].value] = parseFloat(sendForm["amount"].value);
let privKey = prompt("Enter Private Key:");
sendForm['submit'].disabled = true;
btc_api.sendTx(sender, privKey, receivers, fee).then(result => {
@ -234,10 +239,10 @@
let row = table.insertRow();
if (tx.type === "out") {
row.insertCell().innerHTML = '&#8599;';
row.insertCell().textContent = tx.receiver;
row.insertCell().innerHTML = tx.receiver.join('<br/>');
} else if (tx.type === "in") {
row.insertCell().innerHTML = '&#8601;';
row.insertCell().textContent = tx.sender;
row.insertCell().innerHTML = tx.sender.join('<br/>');
} else if (tx.type === "self") {
row.insertCell().innerHTML = '&#10226';
row.insertCell().textContent = tx.address;
@ -277,6 +282,7 @@
change += parseFloat(o.value)
});
d.receiver = Array.from(d.receiver);
d.amount = parseFloat(d.amount.toFixed(8))
d.fee = parseFloat((tx.outgoing.value - (d.amount + change)).toFixed(8))
if (!d.amount && change > 0) {
d.type = "self";

View File

@ -2549,7 +2549,7 @@
})();
})(typeof global !== "undefined" ? global : window);
(function(EXPORTS) { //btc_api v1.0.4a
(function(EXPORTS) { //btc_api v1.0.4b
const btc_api = EXPORTS;
const URL = "https://chain.so/api/v2/";
@ -2652,11 +2652,13 @@
for (let r in receivers)
total_amount += receivers[r];
total_amount = parseFloat(total_amount.toFixed(8));
if (total_amount < fee || total_amount <= 0)
return reject("Invalid receiver amount");
if (balance < total_amount + fee)
return reject("Insufficient Balance");
var tx = coinjs.transaction();
getUTXO(senderID).then(result => {
let utxos = result.data.txs.reverse();
let utxos = result.data.txs;
console.debug(balance, utxos);
var input_total = 0;
for (let i = 0; i < utxos.length && input_total < total_amount + fee; i++) {
@ -2709,4 +2711,4 @@
.catch(error => reject(error))
});
})('object' === typeof module ? module.exports : window.btc_api = {});
})('object' === typeof module ? module.exports : window.btc_api = {});