Bug fix and code refactoring

This commit is contained in:
sairaj mote 2023-03-30 02:03:55 +05:30
parent 3f6c854dd6
commit a8f6d9d4c7

View File

@ -68,46 +68,30 @@
} }
//Get new Tx in blockchain since last sync using API //Get new Tx in blockchain since last sync using API
function getNewTxs(addr, ignoreOld) { async function getNewTxs(addr, ignoreOld) {
return new Promise((resolve, reject) => { try {
floBlockchainAPI.readTxs(addr, 0, 1).then(response => { const { totalItems } = await floBlockchainAPI.readTxs(addr, 0, 1);
var newItems = response.totalItems - ignoreOld; const newItems = totalItems - ignoreOld;
if (newItems) { if (newItems > 0) {
floBlockchainAPI.readTxs(addr, 0, newItems * 2).then(response => { const { items: newTxs } = await floBlockchainAPI.readTxs(addr, 0, newItems * 2);
var filteredData = []; const filteredData = []
for (let i = 0; i < newItems; i++) { newTxs
var item = { .slice(0, newItems)
time: response.items[i].time, .forEach(({ time, txid, floData, isCoinBase, vin, vout }) => {
txid: response.items[i].txid, const sender = isCoinBase ? `(mined)${vin[0].coinbase}` : vin[0].addr;
floData: response.items[i].floData const receiver = isCoinBase ? addr : vout[0].scriptPubKey.addresses[0];
} filteredData.unshift({ time, txid, floData, sender, receiver });
if (response.items[i].isCoinBase) {
item.sender = '(mined)' + response.items[i].vin[0].coinbase;
item.receiver = addr;
} else {
item.sender = response.items[i].vin[0].addr;
item.receiver = response.items[i].vout[0].scriptPubKey.addresses[0];
}
filteredData.unshift(item);
}
resolve({
totalItems: response.totalItems,
items: filteredData
});
}).catch(error => {
reject(error);
});
} else
resolve({
totalItems: response.totalItems,
items: []
}) })
}).catch(error => { return { totalItems, items: filteredData };
reject(error); } else {
}); return { totalItems, items: [] };
}); }
} catch (error) {
throw new Error(`Failed to get new transactions for ${addr}: ${error.message}`);
}
} }
//read transactions stored in IDB : resolves Array(storedItems) //read transactions stored in IDB : resolves Array(storedItems)
floWebWallet.readTransactions = function (addr) { floWebWallet.readTransactions = function (addr) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {