fixed db functions for primary and backup db

This commit is contained in:
Abhishek Sinha 2019-05-14 21:12:01 +05:30
parent ab6fab887c
commit 701db7da42

View File

@ -10143,9 +10143,10 @@
get_sharable_db_data: async function (dbTableNamesArray, backup_db="") { get_sharable_db_data: async function (dbTableNamesArray, backup_db="") {
let arr = {}; let arr = {};
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);
} else { } else {
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
showMessage(err_msg); showMessage(err_msg);
@ -10153,17 +10154,18 @@
} }
} }
for (const elem of dbTableNamesArray) { for (const elem of dbTableNamesArray) {
await readAllDB(elem).then(e => arr[elem] = e); await _readAllDB(elem).then(e => arr[elem] = e);
} }
return arr; return arr;
}, },
get_sharable_db_data_for_single_user: async function (dbTableNamesArray, backup_db="") { get_sharable_db_data_for_single_user: async function (dbTableNamesArray, backup_db="") {
let arr = {}; let arr = {};
let _readDBbyIndex = readDBbyIndex;
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
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); _readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
} else { } else {
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
showMessage(err_msg); showMessage(err_msg);
@ -10171,7 +10173,7 @@
} }
} }
for (const elem of dbTableNamesArray) { for (const elem of dbTableNamesArray) {
await readDBbyIndex(elem).then(e => arr[elem] = e); await _readDBbyIndex(elem).then(e => arr[elem] = e);
} }
return arr; return arr;
}, },
@ -13924,16 +13926,12 @@
} }
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);
readDB = foreign_db.backup_readDB.bind(foreign_db); _readDB = foreign_db.backup_readDB.bind(foreign_db);
readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
updateinDB = foreign_db.backup_updateinDB.bind(foreign_db);
removeinDB = foreign_db.backup_removeinDB.bind(foreign_db);
removeByIndex = foreign_db.backup_removeByIndex.bind(foreign_db);
removeAllinDB = foreign_db.backup_removeAllinDB.bind(foreign_db);
} else { } else {
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
showMessage(err_msg); showMessage(err_msg);
@ -13947,7 +13945,7 @@
//Check buyer's fiat balance //Check buyer's fiat balance
const trader_cash_id = `${params.trader_flo_address}_${params.currency}`; const trader_cash_id = `${params.trader_flo_address}_${params.currency}`;
readDB("cash_balances", trader_cash_id).then(function (res) { _readDB("cash_balances", trader_cash_id).then(function (res) {
if (typeof res !== "undefined" && typeof res.cash_balance == "number" && !isNaN(res.cash_balance)) { if (typeof res !== "undefined" && typeof res.cash_balance == "number" && !isNaN(res.cash_balance)) {
let buyer_cash_balance = parseFloat(res.cash_balance); let buyer_cash_balance = parseFloat(res.cash_balance);
let buy_price_btc = parseFloat(params.buy_price); let buy_price_btc = parseFloat(params.buy_price);
@ -13965,7 +13963,7 @@
let res_btc; let res_btc;
// supernode data query // supernode data query
readDB('localbitcoinUser', '00-01').then(function (user_data) { _readDB('localbitcoinUser', '00-01').then(function (user_data) {
if (typeof user_data == "object" && typeof localbitcoinplusplus.wallets if (typeof user_data == "object" && typeof localbitcoinplusplus.wallets
.MY_SUPERNODE_PRIVATE_KEY == .MY_SUPERNODE_PRIVATE_KEY ==
"string" && localbitcoinplusplus.wallets.MY_SUPERNODE_PRIVATE_KEY "string" && localbitcoinplusplus.wallets.MY_SUPERNODE_PRIVATE_KEY
@ -13985,7 +13983,7 @@
params["supernodePubKey"] = user_data.myLocalFLOPublicKey; params["supernodePubKey"] = user_data.myLocalFLOPublicKey;
params["status"] = 1; params["status"] = 1;
addDB("buyOrders", params); _addDB("buyOrders", params);
// Send data for further action // Send data for further action
callback(params); callback(params);
@ -14029,16 +14027,12 @@
} }
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);
readDB = foreign_db.backup_readDB.bind(foreign_db); _readDB = foreign_db.backup_readDB.bind(foreign_db);
readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
updateinDB = foreign_db.backup_updateinDB.bind(foreign_db);
removeinDB = foreign_db.backup_removeinDB.bind(foreign_db);
removeByIndex = foreign_db.backup_removeByIndex.bind(foreign_db);
removeAllinDB = foreign_db.backup_removeAllinDB.bind(foreign_db);
} else { } else {
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
showMessage(err_msg); showMessage(err_msg);
@ -14052,7 +14046,7 @@
// Check crypto balance of the seller // Check crypto balance of the seller
let seller_btc_id = `${params.trader_flo_address}_${params.product}`; let seller_btc_id = `${params.trader_flo_address}_${params.product}`;
readDB("crypto_balances", seller_btc_id).then(function (res) { _readDB("crypto_balances", seller_btc_id).then(function (res) {
if (typeof res !== "undefined" && typeof res.trader_flo_address == "string" && res.trader_flo_address if (typeof res !== "undefined" && typeof res.trader_flo_address == "string" && res.trader_flo_address
.length > 0 && res.crypto_balance > 0) { .length > 0 && res.crypto_balance > 0) {
let seller_btc_balance = parseFloat(res.crypto_balance); let seller_btc_balance = parseFloat(res.crypto_balance);
@ -14069,7 +14063,7 @@
} }
// supernode data query // supernode data query
readDB('localbitcoinUser', '00-01').then(function (user_data) { _readDB('localbitcoinUser', '00-01').then(function (user_data) {
if (typeof user_data == "object" && typeof localbitcoinplusplus.wallets if (typeof user_data == "object" && typeof localbitcoinplusplus.wallets
.MY_SUPERNODE_PRIVATE_KEY == .MY_SUPERNODE_PRIVATE_KEY ==
"string" && localbitcoinplusplus.wallets.MY_SUPERNODE_PRIVATE_KEY "string" && localbitcoinplusplus.wallets.MY_SUPERNODE_PRIVATE_KEY
@ -14088,7 +14082,7 @@
params["supernodePubKey"] = user_data.myLocalFLOPublicKey; params["supernodePubKey"] = user_data.myLocalFLOPublicKey;
params["status"] = 1; params["status"] = 1;
addDB("sellOrders", params); _addDB("sellOrders", params);
callback(params); callback(params);
} }
@ -14345,16 +14339,10 @@
/*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="") {
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];
addDB = foreign_db.backup_addDB.bind(foreign_db); _readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
readDB = foreign_db.backup_readDB.bind(foreign_db);
readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
updateinDB = foreign_db.backup_updateinDB.bind(foreign_db);
removeinDB = foreign_db.backup_removeinDB.bind(foreign_db);
removeByIndex = foreign_db.backup_removeByIndex.bind(foreign_db);
removeAllinDB = foreign_db.backup_removeAllinDB.bind(foreign_db);
} else { } else {
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
showMessage(err_msg); showMessage(err_msg);
@ -14362,11 +14350,11 @@
} }
} }
try { try {
readAllDB("sellOrders").then(function (sellOrdersList) { _readAllDB("sellOrders").then(function (sellOrdersList) {
if (sellOrdersList.length > 0) { if (sellOrdersList.length > 0) {
sellOrdersList = sellOrdersList.filter(sellOrder => sellOrder.currency == sellOrdersList = sellOrdersList.filter(sellOrder => sellOrder.currency ==
trading_currency); trading_currency);
readAllDB("buyOrders").then(function (buyOrdersList) { _readAllDB("buyOrders").then(function (buyOrdersList) {
if (buyOrdersList.length > 0) { if (buyOrdersList.length > 0) {
buyOrdersList = buyOrdersList.filter(buyOrder => buyOrder.currency == buyOrdersList = buyOrdersList.filter(buyOrder => buyOrder.currency ==
trading_currency); trading_currency);
@ -14425,16 +14413,24 @@
}, },
launchTrade(buyPipeObj, sellPipeObj, callback, backup_db="") { launchTrade(buyPipeObj, sellPipeObj, callback, backup_db="") {
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);
readDB = foreign_db.backup_readDB.bind(foreign_db); _readDB = foreign_db.backup_readDB.bind(foreign_db);
readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db); _readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
readAllDB = foreign_db.backup_readAllDB.bind(foreign_db); _readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
updateinDB = foreign_db.backup_updateinDB.bind(foreign_db); _updateinDB = foreign_db.backup_updateinDB.bind(foreign_db);
removeinDB = foreign_db.backup_removeinDB.bind(foreign_db); _removeinDB = foreign_db.backup_removeinDB.bind(foreign_db);
removeByIndex = foreign_db.backup_removeByIndex.bind(foreign_db); _removeByIndex = foreign_db.backup_removeByIndex.bind(foreign_db);
removeAllinDB = foreign_db.backup_removeAllinDB.bind(foreign_db); _removeAllinDB = foreign_db.backup_removeAllinDB.bind(foreign_db);
} else { } else {
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
showMessage(err_msg); showMessage(err_msg);
@ -14451,7 +14447,7 @@
let err_msg; let err_msg;
// Check buyer's cash balance // Check buyer's cash balance
const buyer_cash_id = `${buyPipeObj.trader_flo_address}_${buyPipeObj.currency}`; const buyer_cash_id = `${buyPipeObj.trader_flo_address}_${buyPipeObj.currency}`;
readDB("cash_balances", buyer_cash_id).then(function (buyPipeCashRes) { _readDB("cash_balances", buyer_cash_id).then(function (buyPipeCashRes) {
if (typeof buyPipeCashRes == "object" && typeof buyPipeCashRes.cash_balance == if (typeof buyPipeCashRes == "object" && typeof buyPipeCashRes.cash_balance ==
"number") { "number") {
let buyer_cash_balance = parseFloat(buyPipeCashRes.cash_balance); let buyer_cash_balance = parseFloat(buyPipeCashRes.cash_balance);
@ -14471,7 +14467,7 @@
// Check seller's crypto balance // Check seller's crypto balance
let seller_btc_id = `${sellPipeObj.trader_flo_address}_${sellPipeObj.product}`; let seller_btc_id = `${sellPipeObj.trader_flo_address}_${sellPipeObj.product}`;
readDB("crypto_balances", seller_btc_id).then(function (sellPipeBTCRes) { _readDB("crypto_balances", seller_btc_id).then(function (sellPipeBTCRes) {
if (typeof sellPipeBTCRes == "object" && typeof sellPipeBTCRes.crypto_balance == if (typeof sellPipeBTCRes == "object" && typeof sellPipeBTCRes.crypto_balance ==
"number") { "number") {
let seller_btc_balance = Number(parseFloat(sellPipeBTCRes.crypto_balance) let seller_btc_balance = Number(parseFloat(sellPipeBTCRes.crypto_balance)
@ -14493,7 +14489,7 @@
let buyerBTCResponseObject; let buyerBTCResponseObject;
let buyer_btc_id = let buyer_btc_id =
`${buyPipeObj.trader_flo_address}_${buyPipeObj.product}`; `${buyPipeObj.trader_flo_address}_${buyPipeObj.product}`;
readDB("crypto_balances", buyPipeObj.trader_flo_address).then( _readDB("crypto_balances", buyPipeObj.trader_flo_address).then(
function (buyPipeBTCRes) { function (buyPipeBTCRes) {
if (typeof buyPipeBTCRes == "object" && typeof buyPipeBTCRes if (typeof buyPipeBTCRes == "object" && typeof buyPipeBTCRes
.crypto_balance == "number") { .crypto_balance == "number") {
@ -14526,7 +14522,7 @@
let sellerCashResponseObject; let sellerCashResponseObject;
const seller_cash_id = const seller_cash_id =
`${sellPipeObj.trader_flo_address}_${buyPipeObj.currency}`; `${sellPipeObj.trader_flo_address}_${buyPipeObj.currency}`;
readDB("cash_balances", seller_cash_id).then( _readDB("cash_balances", seller_cash_id).then(
function (sellPipeCashRes) { function (sellPipeCashRes) {
if (typeof sellPipeCashRes == if (typeof sellPipeCashRes ==
"object" && typeof sellPipeCashRes "object" && typeof sellPipeCashRes
@ -14566,7 +14562,7 @@
} }
// supernode data query // supernode data query
readDB('localbitcoinUser', '00-01') _readDB('localbitcoinUser', '00-01')
.then( .then(
function (user_data) { function (user_data) {
if (typeof user_data == if (typeof user_data ==
@ -14578,11 +14574,11 @@
.length > 0) { .length > 0) {
// Delete orders // Delete orders
try { try {
removeinDB( _removeinDB(
"buyOrders", "buyOrders",
buyPipeObj buyPipeObj
.id); .id);
removeinDB( _removeinDB(
"sellOrders", "sellOrders",
sellPipeObj sellPipeObj
.id); .id);
@ -14594,25 +14590,25 @@
// Update balances // Update balances
try { try {
updateinDB( _updateinDB(
"cash_balances", "cash_balances",
buyerCashResponseObject, buyerCashResponseObject,
buyPipeObj buyPipeObj
.trader_flo_address .trader_flo_address
); );
updateinDB( _updateinDB(
"cash_balances", "cash_balances",
sellerCashResponseObject, sellerCashResponseObject,
sellPipeObj sellPipeObj
.trader_flo_address .trader_flo_address
); );
updateinDB( _updateinDB(
"crypto_balances", "crypto_balances",
buyerBTCResponseObject, buyerBTCResponseObject,
buyPipeObj buyPipeObj
.trader_flo_address .trader_flo_address
); );
updateinDB( _updateinDB(
"crypto_balances", "crypto_balances",
sellerBTCResponseObject, sellerBTCResponseObject,
sellPipeObj sellPipeObj
@ -14729,16 +14725,12 @@
getAssetTradeAndWithdrawLimit(flo_id, crypto, fiat, backup_db="") { getAssetTradeAndWithdrawLimit(flo_id, crypto, fiat, backup_db="") {
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];
addDB = foreign_db.backup_addDB.bind(foreign_db); _readDB = foreign_db.backup_readDB.bind(foreign_db);
readDB = foreign_db.backup_readDB.bind(foreign_db); _readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
readAllDB = foreign_db.backup_readAllDB.bind(foreign_db);
updateinDB = foreign_db.backup_updateinDB.bind(foreign_db);
removeinDB = foreign_db.backup_removeinDB.bind(foreign_db);
removeByIndex = foreign_db.backup_removeByIndex.bind(foreign_db);
removeAllinDB = foreign_db.backup_removeAllinDB.bind(foreign_db);
} else { } else {
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
showMessage(err_msg); showMessage(err_msg);
@ -14751,15 +14743,15 @@
let user_crypto_id = `${flo_id}_${crypto}`; let user_crypto_id = `${flo_id}_${crypto}`;
let user_fiat_id = `${flo_id}_${fiat}`; let user_fiat_id = `${flo_id}_${fiat}`;
const user_balance_crypto_promise = readDB("crypto_balances", user_crypto_id); const user_balance_crypto_promise = _readDB("crypto_balances", user_crypto_id);
const user_balance_fiat_promise = readDB("cash_balances", user_fiat_id); const user_balance_fiat_promise = _readDB("cash_balances", user_fiat_id);
const user_sell_orders_promise = readDBbyIndex("sellOrders", "trader_flo_address", flo_id) const user_sell_orders_promise = _readDBbyIndex("sellOrders", "trader_flo_address", flo_id)
.then((res) => res.filter(resp => resp.currency == fiat && resp.product == crypto)); .then((res) => res.filter(resp => resp.currency == fiat && resp.product == crypto));
const user_buy_orders_promise = readDBbyIndex("buyOrders", "trader_flo_address", flo_id) const user_buy_orders_promise = _readDBbyIndex("buyOrders", "trader_flo_address", flo_id)
.then((res) => res.filter(resp => resp.currency == fiat && resp.product == crypto)); .then((res) => res.filter(resp => resp.currency == fiat && resp.product == crypto));
const user_fiat_withdraw_request_promise = readDBbyIndex("withdraw_cash", "trader_flo_address", const user_fiat_withdraw_request_promise = _readDBbyIndex("withdraw_cash", "trader_flo_address",
flo_id); flo_id);
const user_crypto_withdraw_request_promise = readDBbyIndex("withdraw_btc", "trader_flo_address", const user_crypto_withdraw_request_promise = _readDBbyIndex("withdraw_btc", "trader_flo_address",
flo_id); flo_id);
return Promise.all([user_balance_crypto_promise, user_balance_fiat_promise, return Promise.all([user_balance_crypto_promise, user_balance_fiat_promise,
@ -15160,7 +15152,7 @@
wsUri = await localbitcoinplusplus.kademlia.getSupernodeSeed(idbData.myLocalFLOAddress); wsUri = await localbitcoinplusplus.kademlia.getSupernodeSeed(idbData.myLocalFLOAddress);
if (localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(idbData.myLocalFLOPublicKey)) { if (localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(idbData.myLocalFLOPublicKey)) {
const getClosestSuList = await readAllDB('closestSupernodesTable'); const getClosestSuList = await readAllDB('myClosestSupernodes');
if (wsUri[0].trader_flo_address !== idbData.myLocalFLOAddress || getClosestSuList.length < 3) { if (wsUri[0].trader_flo_address !== idbData.myLocalFLOAddress || getClosestSuList.length < 3) {
showMessage(`INFO: Invalid connection. Refreshing the closest supernode list in DB.`); showMessage(`INFO: Invalid connection. Refreshing the closest supernode list in DB.`);
wsUri = await localbitcoinplusplus.kademlia.updateClosestSupernodeSeeds(idbData.myLocalFLOAddress); wsUri = await localbitcoinplusplus.kademlia.updateClosestSupernodeSeeds(idbData.myLocalFLOAddress);
@ -17236,15 +17228,18 @@
return; return;
} }
let ifAllPrevSuAreDead = await localbitcoinplusplus.actions if (localbitcoinplusplus.master_configurations.supernodesPubKeys
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
let ifAllPrevSuAreDead = await localbitcoinplusplus.actions
.checkIfAllPreviousSupernodesAreDeadForAUserNode(res_obj.params[0].trader_flo_address); .checkIfAllPreviousSupernodesAreDeadForAUserNode(res_obj.params[0].trader_flo_address);
console.log("ifAllPrevSuAreDead: ", ifAllPrevSuAreDead); console.log("ifAllPrevSuAreDead: ", ifAllPrevSuAreDead);
if (ifAllPrevSuAreDead !== true) { if (ifAllPrevSuAreDead !== true) {
console.log(res_obj); console.log(res_obj);
showMessage(`INFO: "checkIfAllPreviousSupernodesAreDeadForAUserNode" check failed.`) showMessage(`INFO: "checkIfAllPreviousSupernodesAreDeadForAUserNode" check failed.`)
return; return;
}
} }
if (typeof res_obj.method !== "undefined") { if (typeof res_obj.method !== "undefined") {
@ -18049,22 +18044,9 @@
doSend(JSON.stringify(response_from_sever)); // send response to client doSend(JSON.stringify(response_from_sever)); // send response to client
break; break;
case "updateUserCryptoBalanceRequest": case "updateUserCryptoBalanceRequest":
let updateUserCryptoBalanceResponseObject = res_obj.params[0]; let updateUserCryptoBalanceResponseObject = res_obj.params[0];
let SuPubKey = readDB('userPublicData', updateUserCryptoBalanceResponseObject.trader_flo_address)
if(typeof res_obj.params[0].trader_flo_address !="string") return;
localbitcoinplusplus.kademlia.determineClosestSupernode(res_obj.params[0].trader_flo_address)
.then(my_closest_su_list=>{
const primarySupernodeOfThisUser = my_closest_su_list[0].data.id;
const backup_server_db_instance = localbitcoinplusplus.newBackupDatabase.db[primarySupernodeOfThisUser];
if(typeof backup_server_db_instance !== "object") {
let backup_db_error_msg = `WARNING: Unknown DB instance. DB Backup failed.`;
showMessage(backup_db_error_msg);
throw new Error(backup_db_error_msg);
};
let SuPubKey = backup_server_db_instance.backup_readDB('userPublicData', updateUserCryptoBalanceResponseObject.trader_flo_address)
.then(user_data => { .then(user_data => {
if (typeof user_data !== "object" || user_data.supernode_flo_public_key.length < if (typeof user_data !== "object" || user_data.supernode_flo_public_key.length <
1) 1)
@ -18076,7 +18058,7 @@
user_data.supernode_flo_public_key user_data.supernode_flo_public_key
); );
if (isBalanceLegit) { if (isBalanceLegit) {
backup_server_db_instance.backup_updateinDB("crypto_balances", updateUserCryptoBalanceResponseObject.updatedBTCBalanceObject, updateinDB("crypto_balances", updateUserCryptoBalanceResponseObject.updatedBTCBalanceObject,
user_data.trader_flo_address); user_data.trader_flo_address);
if (localbitcoinplusplus.wallets.my_local_flo_address == if (localbitcoinplusplus.wallets.my_local_flo_address ==
updateUserCryptoBalanceResponseObject.trader_flo_address) { updateUserCryptoBalanceResponseObject.trader_flo_address) {
@ -18088,8 +18070,6 @@
showMessage(`WARNING: Failed to update balance in your DB. Please refresh.`); showMessage(`WARNING: Failed to update balance in your DB. Please refresh.`);
} }
}); });
});
break; break;
case "addNewKbucketNode": case "addNewKbucketNode":
@ -18191,25 +18171,11 @@
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', {
if(typeof res_obj.params[0].trader_flo_address !="string") return; 'flo_public_key': req_params.requesters_pub_key,
localbitcoinplusplus.kademlia.determineClosestSupernode(res_obj.params[0].trader_flo_address) 'temporary_ip': incoming_msg_local_ip
.then(my_closest_su_list=>{ }).then((ipRes)=>{
const primarySupernodeOfThisUser = my_closest_su_list[0].data.id; reactor.dispatchEvent('fireNodeWelcomeBackEvent', ipRes);
const backup_server_db_instance = localbitcoinplusplus.newBackupDatabase.db[primarySupernodeOfThisUser];
if(typeof backup_server_db_instance !== "object") {
let backup_db_error_msg = `WARNING: Unknown DB instance. DB Backup failed.`;
showMessage(backup_db_error_msg);
throw new Error(backup_db_error_msg);
};
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);
});
}); });
} }
break; break;
@ -19257,11 +19223,22 @@
unique: false unique: false
}); });
} }
if (!db.objectStoreNames.contains('ipTable')) { if (!this.db.objectStoreNames.contains('ipTable')) {
var objectStore = db.createObjectStore("ipTable", { var objectStore = this.db.createObjectStore("ipTable", {
keyPath: 'flo_public_key' keyPath: 'flo_public_key'
}); });
} }
if (!this.db.objectStoreNames.contains('myClosestSupernodes')) {
var objectStore = this.db.createObjectStore("myClosestSupernodes", {
keyPath: 'id'
});
objectStore.createIndex('trader_flo_address', 'trader_flo_address', {
unique: true
});
objectStore.createIndex('ip', 'ip', {
unique: false
});
}
}.bind(this) }.bind(this)
@ -20163,23 +20140,21 @@
if (!localbitcoinplusplus.master_configurations.tradableAsset1 if (!localbitcoinplusplus.master_configurations.tradableAsset1
.includes(trader_deposits.product)) return false; .includes(trader_deposits.product)) return false;
if (typeof backup_db=="string" && backup_db.length>0) { if (typeof backup_db=="string" && backup_db.length>0) {
if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") { let _readDB = readDB;
const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db]; let _readDBbyIndex = readDBbyIndex;
addDB = foreign_db.backup_addDB.bind(foreign_db); let _updateinDB = updateinDB;
readDB = foreign_db.backup_readDB.bind(foreign_db); if (typeof localbitcoinplusplus.newBackupDatabase.db[backup_db] == "object") {
readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db); const foreign_db = localbitcoinplusplus.newBackupDatabase.db[backup_db];
readAllDB = foreign_db.backup_readAllDB.bind(foreign_db); _readDB = foreign_db.backup_readDB.bind(foreign_db);
updateinDB = foreign_db.backup_updateinDB.bind(foreign_db); _readDBbyIndex = foreign_db.backup_readDBbyIndex.bind(foreign_db);
removeinDB = foreign_db.backup_removeinDB.bind(foreign_db); _updateinDB = foreign_db.backup_updateinDB.bind(foreign_db);
removeByIndex = foreign_db.backup_removeByIndex.bind(foreign_db); } else {
removeAllinDB = foreign_db.backup_removeAllinDB.bind(foreign_db); err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`;
} else { showMessage(err_msg);
err_msg = `WARNING: Invalid Backup DB Instance Id: ${backup_db}.`; throw new Error(err_msg);
showMessage(err_msg); }
throw new Error(err_msg);
} }
}
let explorer; let explorer;
let decimal = 100000000; let decimal = 100000000;
@ -20223,14 +20198,14 @@
//Deposit successful. Update user balance and status to 2. Its Private key can be //Deposit successful. Update user balance and status to 2. Its Private key can be
// now given to a random trader // now given to a random trader
trader_deposits.status = 2; trader_deposits.status = 2;
updateinDB("deposit", trader_deposits, trader_deposits.trader_flo_address); _updateinDB("deposit", trader_deposits, trader_deposits.trader_flo_address);
readDBbyIndex('system_btc_reserves_private_keys', 'btc_address', trader_deposits.btc_address) _readDBbyIndex('system_btc_reserves_private_keys', 'btc_address', trader_deposits.btc_address)
.then(function (reserve_res) { .then(function (reserve_res) {
if (typeof reserve_res == "object") { if (typeof reserve_res == "object") {
reserve_res.map(reserves => { reserve_res.map(reserves => {
reserves.balance = balance; reserves.balance = balance;
updateinDB('system_btc_reserves_private_keys', reserves, _updateinDB('system_btc_reserves_private_keys', reserves,
reserves.id); reserves.id);
}); });
} }
@ -20244,14 +20219,14 @@
crypto_balance: balance, crypto_balance: balance,
crypto_currency: trader_deposits.product crypto_currency: trader_deposits.product
} }
readDB('crypto_balances', trader_depositor_cash_id).then(function (res_btc_balances) { _readDB('crypto_balances', trader_depositor_cash_id).then(function (res_btc_balances) {
if (typeof res_btc_balances == "object" && typeof res_btc_balances.result == if (typeof res_btc_balances == "object" && typeof res_btc_balances.result ==
"object" && typeof res_btc_balances.crypto_balance == "number") { "object" && typeof res_btc_balances.crypto_balance == "number") {
updatedCryptobalances.crypto_balance += parseFloat(res_btc_balances updatedCryptobalances.crypto_balance += parseFloat(res_btc_balances
.crypto_balance); .crypto_balance);
} }
// Update crypto balance of user in crypto_balances // Update crypto balance of user in crypto_balances
updateinDB("crypto_balances", updatedCryptobalances, trader_deposits.btc_address) _updateinDB("crypto_balances", updatedCryptobalances, trader_deposits.btc_address)
.then(updatedBTCBalanceObject => { .then(updatedBTCBalanceObject => {
const RM_WALLET = new localbitcoinplusplus.wallets; const RM_WALLET = new localbitcoinplusplus.wallets;