fixed db functions for primary and backup db

This commit is contained in:
Abhishek Sinha 2019-05-15 14:09:14 +05:30
parent 701db7da42
commit cff3ef5b18

View File

@ -10142,8 +10142,8 @@
get_sharable_db_data: async function (dbTableNamesArray, backup_db="") { get_sharable_db_data: async function (dbTableNamesArray, backup_db="") {
let arr = {}; let arr = {};
let _readAllDB = readAllDB;
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
let _readAllDB = readAllDB;
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
_readAllDB = foreign_db.backup_readAllDB.bind(foreign_db); _readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
@ -13907,6 +13907,8 @@
}, },
trade_buy(params, callback, backup_db="") { trade_buy(params, callback, backup_db="") {
let err_msg; let err_msg;
let _addDB = addDB;
let _readDB = readDB;
for (var key in params) { for (var key in params) {
if (params.hasOwnProperty(key)) { if (params.hasOwnProperty(key)) {
if (typeof key == undefined || key.trim() == "" || key == null) { if (typeof key == undefined || key.trim() == "" || key == null) {
@ -13926,8 +13928,6 @@
} }
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
let _addDB = addDB;
let _readDB = readDB;
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
_addDB = foreign_db.backup_addDB.bind(foreign_db); _addDB = foreign_db.backup_addDB.bind(foreign_db);
@ -14008,6 +14008,8 @@
}, },
trade_sell(params, callback, backup_db="") { trade_sell(params, callback, backup_db="") {
let err_msg; let err_msg;
let _addDB = addDB;
let _readDB = readDB;
for (var key in params) { for (var key in params) {
if (params.hasOwnProperty(key)) { if (params.hasOwnProperty(key)) {
if (typeof key == "undefined" || key.trim() == "" || key == null) { if (typeof key == "undefined" || key.trim() == "" || key == null) {
@ -14027,8 +14029,6 @@
} }
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
let _addDB = addDB;
let _readDB = readDB;
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
_addDB = foreign_db.backup_addDB.bind(foreign_db); _addDB = foreign_db.backup_addDB.bind(foreign_db);
@ -14338,8 +14338,8 @@
}, },
/*Finds the best buy sell id match for a trade*/ /*Finds the best buy sell id match for a trade*/
createTradePipes(trading_currency = "USD", backup_db="") { createTradePipes(trading_currency = "USD", backup_db="") {
let _readAllDB = readAllDB;
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
let _readAllDB = readAllDB;
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
_readAllDB = foreign_db.backup_readAllDB.bind(foreign_db); _readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
@ -14412,15 +14412,15 @@
} }
}, },
launchTrade(buyPipeObj, sellPipeObj, callback, backup_db="") { launchTrade(buyPipeObj, sellPipeObj, callback, backup_db="") {
let _addDB = addDB;
let _readDB = readDB;
let _readDBbyIndex = readDBbyIndex;
let _readAllDB = readAllDB;
let _updateinDB = updateinDB;
let _removeinDB = removeinDB;
let _removeByIndex = removeByIndex;
let _removeAllinDB = removeAllinDB;
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
let _addDB = addDB;
let _readDB = readDB;
let _readDBbyIndex = readDBbyIndex;
let _readAllDB = readAllDB;
let _updateinDB = updateinDB;
let _removeinDB = removeinDB;
let _removeByIndex = removeByIndex;
let _removeAllinDB = removeAllinDB;
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
_addDB = foreign_db.backup_addDB.bind(foreign_db); _addDB = foreign_db.backup_addDB.bind(foreign_db);
@ -14673,20 +14673,23 @@
.wallets.MY_SUPERNODE_PRIVATE_KEY .wallets.MY_SUPERNODE_PRIVATE_KEY
); );
let localbitcoinplusplus.kademlia.determineClosestSupernode(buyPipeObj.trader_flo_address)
response_for_client = { .then(getPrimarySuObj=>{
"trade_infos": trade_infos, let response_for_client = {
"buyer_cash_data": buyerCashResponseObject, "trade_infos": trade_infos,
"seller_cash_data": sellerCashResponseObject, "buyer_cash_data": buyerCashResponseObject,
"buyer_btc_data": buyerBTCResponseObject, "seller_cash_data": sellerCashResponseObject,
"seller_btc_data": sellerBTCResponseObject, "buyer_btc_data": buyerBTCResponseObject,
"data_hash": hashed_data, "seller_btc_data": sellerBTCResponseObject,
"supernode_sign": signed_data, "data_hash": hashed_data,
"supernodePubKey": user_data.myLocalFLOPublicKey, "supernode_sign": signed_data,
"trader_flo_address": buyPipeObj.trader_flo_address, "supernodePubKey": user_data.myLocalFLOPublicKey,
} "trader_flo_address": getPrimarySuObj[0].data.id,
callback(response_for_client); }
return true; callback(response_for_client);
return true;
});
} }
}); });
}); });
@ -14723,10 +14726,9 @@
}, },
getAssetTradeAndWithdrawLimit(flo_id, crypto, fiat, backup_db="") { getAssetTradeAndWithdrawLimit(flo_id, crypto, fiat, backup_db="") {
let _readDB = readDB;
let _readDBbyIndex = readDBbyIndex;
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
let _readDB = readDB;
let _readDBbyIndex = readDBbyIndex;
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
_readDB = foreign_db.backup_readDB.bind(foreign_db); _readDB = foreign_db.backup_readDB.bind(foreign_db);
@ -17478,8 +17480,6 @@
case "trade_balance_updates": case "trade_balance_updates":
if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") { if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") {
const trade_balance_res = res_obj.params[0]; const trade_balance_res = res_obj.params[0];
// Only the relevent user node should get response
if(res_obj.params[0].trader_flo_address !== localbitcoinplusplus.wallets.my_local_flo_address) return;
// Verify data // Verify data
let trade_info_str = JSON.stringify(trade_balance_res.trade_infos); let trade_info_str = JSON.stringify(trade_balance_res.trade_infos);
let buyer_cash_data_str = JSON.stringify(trade_balance_res.buyer_cash_data); let buyer_cash_data_str = JSON.stringify(trade_balance_res.buyer_cash_data);
@ -17491,7 +17491,7 @@
`${trade_info_str}${buyer_cash_data_str}${seller_cash_data_str}${buyer_btc_data_str}${seller_btc_data_str}`; `${trade_info_str}${buyer_cash_data_str}${seller_cash_data_str}${buyer_btc_data_str}${seller_btc_data_str}`;
let hashed_data = Crypto.SHA256(res_str); let hashed_data = Crypto.SHA256(res_str);
RM_RPC.filter_legit_requests(trade_balance_res.trade_infos.buyer_flo_id, RM_RPC.filter_legit_backup_requests(trade_balance_res.trade_infos.buyer_flo_id,
function (is_valid_request) { function (is_valid_request) {
if (is_valid_request !== true) return false; if (is_valid_request !== true) return false;
@ -18138,30 +18138,21 @@
break; break;
case "link_My_Local_IP_To_My_Flo_Id": case "link_My_Local_IP_To_My_Flo_Id":
if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") { if (typeof res_obj.params == "object" && typeof res_obj.params[0] == "object") {
const req_params = res_obj.params[0]; const req_params = res_obj.params[0];
if(typeof req_params.requesters_pub_key !== "string") return; if(typeof req_params.requesters_pub_key !== "string") return;
let flo_addr_for_pubkey = bitjs.FLO_TEST.pubkey2address(req_params.requesters_pub_key); let flo_addr_for_pubkey = bitjs.FLO_TEST.pubkey2address(req_params.requesters_pub_key);
if(typeof flo_addr_for_pubkey !== "string") return; if(typeof flo_addr_for_pubkey !== "string") return;
if(flo_addr_for_pubkey !== res_obj.globalParams.senderFloId) return; if(flo_addr_for_pubkey !== res_obj.globalParams.senderFloId) return;
updateinDB('ipTable', {
const backup_server_db_instance = localbitcoinplusplus.newBackupDatabase.db[res_obj.globalParams.senderFloId]; 'flo_public_key': req_params.requesters_pub_key,
'temporary_ip': incoming_msg_local_ip
if(typeof backup_server_db_instance !== "object") { }).then((ipRes)=>{
let backup_db_error_msg = `WARNING: Unknown DB instance. DB Backup failed.`; reactor.dispatchEvent('fireNodeWelcomeBackEvent', ipRes);
showMessage(backup_db_error_msg); }).finally(()=>{
throw new Error(backup_db_error_msg); linkBackOthersLocalIPToTheirFloId();
}; });
}
backup_server_db_instance.backup_updateinDB('ipTable', {
'flo_public_key': req_params.requesters_pub_key,
'temporary_ip': incoming_msg_local_ip
}).then((ipRes)=>{
reactor.dispatchEvent('fireNodeWelcomeBackEvent', ipRes);
}).finally(()=>{
linkBackOthersLocalIPToTheirFloId();
});
}
break; break;
case "link_Others_Local_IP_To_Their_Flo_Id": case "link_Others_Local_IP_To_Their_Flo_Id":
@ -20139,11 +20130,10 @@
) return false; ) return false;
if (!localbitcoinplusplus.master_configurations.tradableAsset1 if (!localbitcoinplusplus.master_configurations.tradableAsset1
.includes(trader_deposits.product)) return false; .includes(trader_deposits.product)) return false;
let _readDB = readDB;
let _readDBbyIndex = readDBbyIndex;
let _updateinDB = updateinDB;
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
let _readDB = readDB;
let _readDBbyIndex = readDBbyIndex;
let _updateinDB = updateinDB;
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
_readDB = foreign_db.backup_readDB.bind(foreign_db); _readDB = foreign_db.backup_readDB.bind(foreign_db);