Merge pull request #4 from sairajzero/master

This commit is contained in:
Sai Raj 2020-01-31 22:06:52 +05:30 committed by GitHub
commit 43afe64fbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7638,16 +7638,17 @@ Bitcoin.Util = {
sendDataToSN(data, snfloID){ sendDataToSN(data, snfloID){
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
console.log(snfloID)
var websocket = new WebSocket("wss://" + floGlobals.supernodes[snfloID].uri + "/ws"); var websocket = new WebSocket("wss://" + floGlobals.supernodes[snfloID].uri + "/ws");
websocket.onmessage = (evt => { websocket.onmessage = (evt => {
if(evt.data == '$+'){ if(evt.data == '$+'){
websocket.send(data); websocket.send(data);
resolve(`Data sent to supernode : ${snfloID}`); resolve(`Data sent to supernode : ${snfloID}`);
}else if(evt.data == '$-'){ }else if(evt.data == '$-'){
this.kBucket.getNextSupernode(snfloID) this.kBucket.getNextSupernode(snfloID).then(nextNode => {
.then(nextNode => this.sendDataToSN(data, nextNode[0])) this.sendDataToSN(data, nextNode[0])
.catch(error => reject(error)) .then(result => resolve(result))
.catch(error => reject(error))
}).catch(error => reject(error))
}else{ }else{
console.log(evt.data) console.log(evt.data)
reject(evt.data) reject(evt.data)
@ -7655,9 +7656,11 @@ Bitcoin.Util = {
websocket.close(); websocket.close();
}) })
websocket.onerror = (evt) => { websocket.onerror = (evt) => {
this.kBucket.getNextSupernode(snfloID) this.kBucket.getNextSupernode(snfloID).then(nextNode => {
.then(nextNode => this.sendDataToSN(data, nextNode[0])) this.sendDataToSN(data, nextNode[0])
.catch(error => reject(error)) .then(result => resolve(result))
.catch(error => reject(error))
}).catch(error => reject(error))
}; };
}) })
}, },
@ -7682,9 +7685,11 @@ Bitcoin.Util = {
if(evt.data == '$+'){ if(evt.data == '$+'){
websocket.send(`?${request}`); websocket.send(`?${request}`);
}else if(evt.data == '$-'){ }else if(evt.data == '$-'){
this.kBucket.getNextSupernode(snfloID) this.kBucket.getNextSupernode(snfloID).then(nextNode => {
.then(nextNode => this.requestDataFromSN(request, nextNode[0])) this.requestDataFromSN(request, nextNode[0])
.catch(error => reject(error)) .then(result => resolve(result))
.catch(error => reject(error))
}).catch(error => reject(error))
websocket.close() websocket.close()
}else{ }else{
resolve(evt.data); resolve(evt.data);
@ -7692,9 +7697,11 @@ Bitcoin.Util = {
} }
}) })
websocket.onerror = (evt) => { websocket.onerror = (evt) => {
this.kBucket.getNextSupernode(snfloID) this.kBucket.getNextSupernode(snfloID).then(nextNode => {
.then(nextNode => this.requestDataFromSN(request, nextNode[0])) this.requestDataFromSN(request, nextNode[0])
.catch(error => reject(error)) .then(result => resolve(result))
.catch(error => reject(error))
}).catch(error => reject(error))
}; };
}) })
}, },
@ -8285,7 +8292,7 @@ Bitcoin.Util = {
floGlobals.appObjects[message.object] = message.reset floGlobals.appObjects[message.object] = message.reset
floGlobals.vectorClock[message.object] = vc floGlobals.vectorClock[message.object] = vc
compactIDB.writeData("appObjects", floGlobals.appObjects[message.object], message.object) compactIDB.writeData("appObjects", floGlobals.appObjects[message.object], message.object)
compactIDB.writeData("vectorClocks", vc, message.object) compactIDB.writeData("vectorClock", vc, message.object)
} }
} }
}catch(error){ }catch(error){
@ -8304,24 +8311,24 @@ Bitcoin.Util = {
compactIDB.writeData("appObjects",floGlobals.appObjects[message.object], message.object) compactIDB.writeData("appObjects",floGlobals.appObjects[message.object], message.object)
} }
floGlobals.vectorClock[message.object] = vc floGlobals.vectorClock[message.object] = vc
compactIDB.writeData("vectorClocks", vc, message.object) compactIDB.writeData("vectorClock", vc, message.object)
} }
}catch(error){ }catch(error){
console.error(error) console.error(error)
} }
}, },
storeGeneralData: function(event){ storeGeneralData: function(filterStr, dataSet){
try{ try{
dataSet = JSON.parse(event.dataSet); dataSet = JSON.parse(dataSet);
console.log(dataSet) console.log(dataSet)
if(!Array.isArray(floGlobals.generalData[event.filterStr])) if(!Array.isArray(floGlobals.generalData[filterStr]))
floGlobals.generalData[event.filterStr] = [] floGlobals.generalData[filterStr] = []
for(vc in dataSet){ for(vc in dataSet){
floGlobals.generalData[event.filterStr].push({sender: dataSet[vc].senderID, vectorClock: vc, message: dataSet[vc].message}) floGlobals.generalData[filterStr].push({sender: dataSet[vc].senderID, vectorClock: vc, message: dataSet[vc].message})
compactIDB.writeData("generalData", floGlobals.generalData[event.filterStr], event.filterStr) compactIDB.writeData("generalData", floGlobals.generalData[filterStr], filterStr)
floGlobals.generalVC[event.filterStr] = vc floGlobals.generalVC[filterStr] = vc
compactIDB.writeData("generalVC", vc, event.filterStr) compactIDB.writeData("generalVC", vc, filterStr)
} }
}catch(error){ }catch(error){
console.error(error) console.error(error)
@ -8403,12 +8410,12 @@ Bitcoin.Util = {
mostRecent: true mostRecent: true
} }
floSupernode.requestData(JSON.stringify(request),request.receiverID).then(dataSet => { floSupernode.requestData(JSON.stringify(request),request.receiverID).then(dataSet => {
this.util.resetData(filterStr, dataSet) this.util.resetData(dataSet)
request.type = `${objectName}@Update` request.type = `${objectName}@Update`
request.lowerVectorClock = floGlobals.vectorClock[objectName]+1 request.lowerVectorClock = floGlobals.vectorClock[objectName]+1
request.mostRecent = false request.mostRecent = false
floSupernode.requestData(JSON.stringify(request), request.receiverID).then(dataSet => { floSupernode.requestData(JSON.stringify(request), request.receiverID).then(dataSet => {
this.util.updateData(filterStr, dataSet) this.util.updateData(dataSet)
resolve('Object Data Updated') resolve('Object Data Updated')
}).catch(error => reject(error)) }).catch(error => reject(error))
}).catch(error => reject(error)) }).catch(error => reject(error))
@ -8468,7 +8475,7 @@ Bitcoin.Util = {
//for Dapps //for Dapps
subAdmins:{}, subAdmins:{},
appObjects:{}, appObjects:{},
vectorClocks:{}, vectorClock:{},
generalData:{}, generalData:{},
generalVC:{} generalVC:{}
} }
@ -8482,6 +8489,11 @@ Bitcoin.Util = {
}) })
}, },
privKeyInput: function(){
var privKey = prompt("Enter Private Key: ")
return privKey
},
startUpFunctions:{ startUpFunctions:{
readSupernodeListFromAPI: function(){ readSupernodeListFromAPI: function(){
@ -8532,7 +8544,7 @@ Bitcoin.Util = {
loadDataFromIDB: function(){ loadDataFromIDB: function(){
return new Promise((resolve,reject) => { return new Promise((resolve,reject) => {
var loadData = ["appObjects", "vectorClocks", "generalData", "generalVC"] var loadData = ["appObjects", "vectorClock", "generalData", "generalVC"]
var promises = [] var promises = []
for(var i = 0; i < loadData.length; i++) for(var i = 0; i < loadData.length; i++)
promises[i] = compactIDB.readAllData(loadData[i]) promises[i] = compactIDB.readAllData(loadData[i])
@ -8586,7 +8598,7 @@ Bitcoin.Util = {
.catch(error => reject(error)) .catch(error => reject(error))
}else{ }else{
try{ try{
var privKey = prompt("Enter Private Key: ") var privKey = floDapps.util.privKeyInput();
if(!privKey) if(!privKey)
return reject("Empty Private Key") return reject("Empty Private Key")
var floID = floCrypto.getFloIDfromPubkeyHex(floCrypto.getPubKeyHex(privKey)) var floID = floCrypto.getFloIDfromPubkeyHex(floCrypto.getPubKeyHex(privKey))
@ -8665,6 +8677,10 @@ Bitcoin.Util = {
this.util.startUpFunctions[fname] = fn; this.util.startUpFunctions[fname] = fn;
}, },
setCustomPrivKeyInput: function(customFn){
this.util.privKeyInput = customFn
},
setAppObjectStores: function(appObs){ setAppObjectStores: function(appObs){
this.util.appObs = appObs this.util.appObs = appObs
}, },
@ -8708,12 +8724,14 @@ Bitcoin.Util = {
function onLoadStartUp() { function onLoadStartUp() {
//addStartUpFunction('Sample', Promised Function) //floDapps.addStartUpFunction('Sample', Promised Function)
//setAppObjectStores({sampleObs1:{}, sampleObs2:{options{autoIncrement:true, keyPath:'SampleKey'}, Indexes:{sampleIndex:{}}}}) //floDapps.setAppObjectStores({sampleObs1:{}, sampleObs2:{options{autoIncrement:true, keyPath:'SampleKey'}, Indexes:{sampleIndex:{}}}})
//floDapps.setCustomPrivKeyInput( () => { FUNCTION BODY *must return private key* } )
floDapps.launchStartUp().then(result => { floDapps.launchStartUp().then(result => {
console.log(result) console.log(result)
alert(`Welcome FLO_ID: ${myFloID}`) alert(`Welcome FLO_ID: ${myFloID}`)
//App functions....
}).catch(error => console.error(error)) }).catch(error => console.error(error))
} }
</script> </script>