diff --git a/index.html b/index.html index 91a89ae..fac7914 100644 --- a/index.html +++ b/index.html @@ -26,6 +26,7 @@ FLO_TEST: 'https://testnet-flosight.duckdns.org' }, adminID: "FEzk75EGMPEQMrCuPosGiwuK162hcEu49E", + refreshDelay: 3600000, //sendAmt: 0.001, //fee: 0.0005, @@ -6046,7 +6047,7 @@ initIndexedDBforSupernodeDataStorage(myFloID).then(result => { console.log(result) serverPwd = prompt("Enter Server Pass!") - setInterval(autoRefreshBlockchainData, 3600000); + setInterval(autoRefreshBlockchainData, floGlobals.refreshDelay); floSupernode.initSupernode(serverPwd, myFloID).then(async result => { console.log(result) floGlobals.serveList.push(myFloID) @@ -6104,9 +6105,38 @@ } function autoRefreshBlockchainData(){ - refreshBlockchainData() - .then(result => console.log(result)) - .catch(error => console.log(error)) + refreshBlockchainData().then(result => { + console.log(result) + autoDeleteStoredData() + .then(result => console.log(result)) + .catch(error => console.log(error)) + }).catch(error => console.log(error)) + } + + function autoDeleteStoredData(){ + return new Promise((resolve, reject) => { + var deleteEnd = Date.now() - floGlobals.supernodeConfig.deleteDelay + var deleteStart = deleteEnd - floGlobals.refreshDelay + var promises = [] + var filterOptions = { + lowerKey: `${deleteStart}`, + upperKey: `${deleteEnd}`, + } + for(var i = 0; i < floGlobals.storedList.length; i++){ + var promise = new Promise((res,rej) => { + compactIDB.searchData(floGlobals.defaultDisk,filterOptions,`SN_${floGlobals.storedList[i]}`).then(results => { + for(key in results) + if(!floGlobals.applicationList.includes(results[key].application) || !floGlobals.appSubAdmins[results[key].application].includes(results[key].senderID)) + compactIDB.removeData(floGlobals.defaultDisk, key, `SN_${floGlobals.storedList[i]}`) + res(`Auto-delete successful for SN_${floGlobals.storedList[i]} from ${deleteStart} to ${deleteEnd}`) + }).catch(error => rej(error)) + }) + promises.push(promise) + } + Promise.all(promises).then(results => { + resolve(`Auto-delete successful from ${deleteStart} to ${deleteEnd}`) + }).catch(error => reject(error)) + }) } function refreshBlockchainData(){ @@ -6158,7 +6188,7 @@ return new Promise((resolve,reject) => { var promises = [] for(app in floGlobals.applicationList){ - var promise = new Promise((resolve,reject) => { + var promise = new Promise((res,rej) => { compactIDB.readData("appSubAdmins", app).then(subAdmins => { compactIDB.readData("lastTx",floGlobals.applicationList[app]).then(lastTx => { floBlockchainAPI.readData(floGlobals.applicationList[app],{ignoreOld:lastTx,sentOnly:true,pattern:app}).then(result => { @@ -6171,11 +6201,11 @@ } compactIDB.writeData("lastTx", result.totalTxs, floGlobals.adminID); compactIDB.writeData("appSubAdmins", subAdmins, app) - .then(res => resolve(app)) - .catch(error => reject(error)) - }).catch(error => reject(error)) - }).catch(error => reject(error)) - }).catch(error => reject(error)) + .then(result => res(app)) + .catch(error => rej(error)) + }).catch(error => rej(error)) + }).catch(error => rej(error)) + }).catch(error => rej(error)) }) promises.push(promise) } @@ -6202,11 +6232,10 @@ connectToAllBackupSupernode(backupConn.floID, i+1) .then(result => resolve(result)) .catch(error => reject(error)) - }) + }).catch(error => reject(error)) } }).catch(error => reject(error)) } - }) }