fixed userPublicData sync/update issue

This commit is contained in:
Abhishek Sinha 2019-04-28 16:54:44 +05:30
parent 9a6dfebbbc
commit 515f9ad9f0

View File

@ -14951,6 +14951,8 @@
localbitcoinplusplusObj.myLocalFLOAddress = newKeys.address; localbitcoinplusplusObj.myLocalFLOAddress = newKeys.address;
localbitcoinplusplusObj.myLocalFLOPublicKey = newKeys.pubKeyHex; localbitcoinplusplusObj.myLocalFLOPublicKey = newKeys.pubKeyHex;
localbitcoinplusplusObj.lastConnectedTime = + new Date(); localbitcoinplusplusObj.lastConnectedTime = + new Date();
await updateinDB("localbitcoinUser", localbitcoinplusplusObj);
// launch KBuckets // launch KBuckets
launchKBuckects = await localbitcoinplusplus.kademlia.launchKBucket(newKeys.address); launchKBuckects = await localbitcoinplusplus.kademlia.launchKBucket(newKeys.address);
@ -15007,8 +15009,6 @@
localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS = wsUri[0].trader_flo_address; localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS = wsUri[0].trader_flo_address;
updateinDB("localbitcoinUser", localbitcoinplusplusObj, "00-01");
resolve(true); resolve(true);
return; return;
@ -15579,6 +15579,41 @@
}); });
} }
break; break;
case "add_user_public_data":
let supernode_flo_public_key = localbitcoinplusplus.wallets.my_local_flo_public_key;
RM_RPC.filter_legit_backup_requests(res_obj.params[0].trader_flo_address,
function (is_valid_request) {
if (is_valid_request !== true) return false;
if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") {
let req_data = res_obj.params[0];
try {
let flo_address = bitjs.FLO_TEST.pubkey2address(req_data.trader_flo_pubKey);
if (flo_address == req_data.trader_flo_address && req_data.trader_flo_address
.length > 0) {
let public_req_object = {
trader_flo_address: req_data.trader_flo_address,
trader_flo_pubKey: req_data.trader_flo_pubKey,
supernode_flo_public_key: supernode_flo_public_key,
trader_status: 0,
timestamp: +new Date()
}
addDB('userPublicData', public_req_object);
}
} catch (error) {
throw new Error('Invalid public key and flo address combination.');
}
}
});
break;
default:
break;
} }
} }
@ -15775,7 +15810,6 @@
}); });
}); });
reactor.dispatchEvent('primary_supernode_down'); reactor.dispatchEvent('primary_supernode_down');
} }
async function onMessage(evt) { async function onMessage(evt) {
@ -16413,12 +16447,12 @@
case "add_user_public_data": case "add_user_public_data":
let supernode_flo_public_key = localbitcoinplusplus.wallets.my_local_flo_public_key; let supernode_flo_public_key = localbitcoinplusplus.wallets.my_local_flo_public_key;
RM_RPC.filter_legit_requests(res_obj.params[0].public_data.trader_flo_address, RM_RPC.filter_legit_requests(res_obj.params[0].trader_flo_address,
function (is_valid_request) { function (is_valid_request) {
if (is_valid_request !== true) return false; if (is_valid_request !== true) return false;
if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") { if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") {
let req_data = res_obj.params[0].public_data; let req_data = res_obj.params[0];
try { try {
let flo_address = bitjs.FLO_TEST.pubkey2address(req_data.trader_flo_pubKey); let flo_address = bitjs.FLO_TEST.pubkey2address(req_data.trader_flo_pubKey);
@ -17533,12 +17567,12 @@
case "add_user_public_data": case "add_user_public_data":
let supernode_flo_public_key = localbitcoinplusplus.wallets.my_local_flo_public_key; let supernode_flo_public_key = localbitcoinplusplus.wallets.my_local_flo_public_key;
RM_RPC.filter_legit_requests(res_obj.params[0].public_data.trader_flo_address, RM_RPC.filter_legit_requests(res_obj.params[0].trader_flo_address,
function (is_valid_request) { function (is_valid_request) {
if (is_valid_request !== true) return false; if (is_valid_request !== true) return false;
if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") { if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") {
let req_data = res_obj.params[0].public_data; let req_data = res_obj.params[0];
try { try {
let flo_address = bitjs.FLO_TEST.pubkey2address(req_data.trader_flo_pubKey); let flo_address = bitjs.FLO_TEST.pubkey2address(req_data.trader_flo_pubKey);
@ -18302,7 +18336,7 @@
var db; var db;
const DBName = "localbitcoinDB"; const DBName = "localbitcoinDB";
const request = window.indexedDB.open(DBName, 5); const request = window.indexedDB.open(DBName, 1);
request.onerror = function (event) { request.onerror = function (event) {
//https://stackoverflow.com/questions/13972385/invalidstateerror-while-opening-indexeddb-in-firefox //https://stackoverflow.com/questions/13972385/invalidstateerror-while-opening-indexeddb-in-firefox
@ -19132,18 +19166,22 @@
readDB('userPublicData', MY_LOCAL_FLO_ADDRESS).then(function ( readDB('userPublicData', MY_LOCAL_FLO_ADDRESS).then(function (
pubic_data_response) { pubic_data_response) {
if (typeof pubic_data_response !== "object") { if (typeof pubic_data_response !== "object") {
let user_public_data_object = { // let user_public_data_object = {
trader_flo_address: MY_LOCAL_FLO_ADDRESS, // trader_flo_address: MY_LOCAL_FLO_ADDRESS,
trader_flo_pubKey: MY_LOCAL_FLO_PUBLIC_KEY, // trader_flo_pubKey: MY_LOCAL_FLO_PUBLIC_KEY,
trader_status: 0, // trader_status: 0,
timestamp: +new Date() // timestamp: +new Date()
} // }
user_public_data_object.receiver_flo_address = localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS; //user_public_data_object.receiver_flo_address = localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS;
let add_user_public_data_req = RM_RPC let add_user_public_data_req = RM_RPC
.send_rpc .send_rpc
.call(this, "add_user_public_data", { .call(this, "add_user_public_data", {
public_data: user_public_data_object trader_flo_address: MY_LOCAL_FLO_ADDRESS,
}); trader_flo_pubKey: MY_LOCAL_FLO_PUBLIC_KEY,
trader_status: 0,
timestamp: +new Date(),
receiver_flo_address: localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS
});
doSend(add_user_public_data_req); doSend(add_user_public_data_req);
} }
}); });