From 76ec38ceedee6f06280dc87b8db8e5bb71d54b9f Mon Sep 17 00:00:00 2001 From: sairajzero Date: Tue, 26 Nov 2019 17:21:43 +0530 Subject: [PATCH] read subAdmin list for application from blockchain now reads subadmin list for every application from blockchain. subadmin list will be used to delete unwanted messages from supernode IDB --- index.html | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 9a62c2d..91a89ae 100644 --- a/index.html +++ b/index.html @@ -6113,9 +6113,11 @@ return new Promise((resolve,reject) => { readSupernodeDataFromAPI().then(result => { console.log(result) - floSupernode.kBucket.launch().then(result => { - console.log(result) - resolve("Refreshed Data from blockchain") + readAppSubAdminListFromAPI().then(result => { + floSupernode.kBucket.launch().then(result => { + console.log(result) + resolve("Refreshed Data from blockchain") + }).catch(error => reject(error)) }).catch(error => reject(error)) }).catch(error => reject(error)) }) @@ -6143,7 +6145,7 @@ floGlobals.supernodeConfig = config compactIDB.readAllData("applications").then(applications => { floGlobals.applicationList = applications - resolve("Read supernode from blockchain"); + resolve("Read Supernode Data from Blockchain"); }).catch(error => reject(error)) }).catch(error => reject(error)) }).catch(error => reject(error)) @@ -6152,6 +6154,40 @@ }) } + function readAppSubAdminListFromAPI(){ + return new Promise((resolve,reject) => { + var promises = [] + for(app in floGlobals.applicationList){ + var promise = new Promise((resolve,reject) => { + 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 => { + for(var i = result.data.length-1; i>=0; i--){ + var content = JSON.parse(result.data[i])[app]; + if(Array.isArray(content.removeSubAdmin)) + subAdmins = subAdmins.filter(x => !content.removeSubAdmin.includes(x)); + if(Array.isArray(content.addSubAdmin)) + subAdmins = subAdmins.concat(content.addSubAdmin) + } + 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)) + }) + promises.push(promise) + } + Promise.all(promises).then(results => { + compactIDB.readAllData("appSubAdmins").then(result => { + floGlobals.appSubAdmins = result + resolve("Read all subAdmin list from blockchain") + }).catch(error => reject(error)) + }).catch(error => reject(error)) + }) + } + function connectToAllBackupSupernode(curNode = myFloID, i = 0){ return new Promise((resolve,reject) => { if(i >= floGlobals.supernodeConfig.backupDepth)