fixed error in updateinDB and crypto withdraws in backup

This commit is contained in:
Abhishek Sinha 2020-04-27 18:36:34 +05:30
parent b50b2580a4
commit f877596b96

View File

@ -491,7 +491,7 @@
<div class="label">Confirm Deposit</div> <div class="label">Confirm Deposit</div>
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="popup-container hide"> <div class="popup-container hide">
<div id="withdraw_crypto_popup" class="popup"> <div id="withdraw_crypto_popup" class="popup">
@ -11898,7 +11898,6 @@
trade: {}, trade: {},
rpc: {}, rpc: {},
master_configurations: {}, master_configurations: {},
running_ops_status: {},
}; };
Object.defineProperty(localbitcoinplusplus, "server", { Object.defineProperty(localbitcoinplusplus, "server", {
@ -13869,7 +13868,6 @@
reactor.registerEvent("backup_supernode_up"); reactor.registerEvent("backup_supernode_up");
reactor.registerEvent("backup_supernode_down"); reactor.registerEvent("backup_supernode_down");
reactor.registerEvent("fireNodeGoodByeEvent"); reactor.registerEvent("fireNodeGoodByeEvent");
reactor.registerEvent("send_refresh_all_supernodes_status_request");
reactor.registerEvent("sync_primary_and_backup_db"); reactor.registerEvent("sync_primary_and_backup_db");
reactor.registerEvent("store_backup_crypto_pk_object"); reactor.registerEvent("store_backup_crypto_pk_object");
reactor.registerEvent("sync_backup_nodes_of_my_backup_node"); reactor.registerEvent("sync_backup_nodes_of_my_backup_node");
@ -13957,7 +13955,7 @@
) { ) {
// Stop yourself from serving it unless proper DB sync // Stop yourself from serving it unless proper DB sync
localbitcoinplusplus.services[`can_serve_${getFLOId}`] = false; //localbitcoinplusplus.services[`can_serve_${getFLOId}`] = false;
// Initiate connections with next live supernodes // Initiate connections with next live supernodes
//reactor.dispatchEvent("resolve_backup_ws_connections"); //reactor.dispatchEvent("resolve_backup_ws_connections");
@ -14127,25 +14125,6 @@
}); });
reactor.addEventListener("send_refresh_all_supernodes_status_request", function() {
if(localbitcoinplusplus.running_ops_status.already_executing_send_refresh_all_supernodes_status_request) return false;
localbitcoinplusplus.running_ops_status.already_executing_send_refresh_all_supernodes_status_request = true;
const RM_WALLET = new localbitcoinplusplus.wallets;
const msg_obj = {};
msg_obj.protocol = '__ALL_SUPERNODES_MSG__';
msg_obj.event = 'refresh_all_supernodes_status';
msg_obj.data = {request: "RESOLVE_BACKUP_WS_CONNS"};
msg_obj.initialSender = localbitcoinplusplus.wallets.my_local_flo_address;
msg_obj.su_pubKey = localbitcoinplusplus.wallets.my_local_flo_public_key;
msg_obj.hash = Crypto.SHA256(msg_obj);
msg_obj.sign = RM_WALLET.sign(
msg_obj.hash,
localbitcoinplusplus.wallets.MY_SUPERNODE_PRIVATE_KEY
);
reactor.dispatchEvent('informAllSuperNode', msg_obj);
});
reactor.addEventListener("sync_primary_and_backup_db", async function() { reactor.addEventListener("sync_primary_and_backup_db", async function() {
if ( if (
localbitcoinplusplus.master_configurations.supernodesPubKeys.includes( localbitcoinplusplus.master_configurations.supernodesPubKeys.includes(
@ -14772,9 +14751,6 @@
console.info(`Closed ${evt.srcElement.url}`); console.info(`Closed ${evt.srcElement.url}`);
tempWS[sn] = null; tempWS[sn] = null;
delete tempWS[sn]; delete tempWS[sn];
if(msg_obj.event == 'refresh_all_supernodes_status') {
localbitcoinplusplus.running_ops_status.already_executing_send_refresh_all_supernodes_status_request = false;
}
}; };
tempWS[sn].onerror = function(evt) { tempWS[sn].onerror = function(evt) {
tempWS[sn].close(); tempWS[sn].close();
@ -15592,7 +15568,7 @@
return su_arr[0]; return su_arr[0];
}, },
refresh_reserved_crypto_balances:async (user_flo_addr='', deposited_btc_array=[])=> { refresh_reserved_crypto_balances:async (user_flo_addr='', deposited_btc_array={})=> {
try { try {
const getSupernode = await localbitcoinplusplus.kademlia.determineClosestSupernode(user_flo_addr); const getSupernode = await localbitcoinplusplus.kademlia.determineClosestSupernode(user_flo_addr);
const getSupernodeAddr = getSupernode[0].data.id; const getSupernodeAddr = getSupernode[0].data.id;
@ -15624,11 +15600,10 @@
} }
let get_crypto_deposits = []; let get_crypto_deposits = [];
if(deposited_btc_array.length<=0) { if(Object.values(deposited_btc_array).length<=0) {
let all_deposits = await _readAllDB('deposit'); get_crypto_deposits = await _readAllDB('deposit');
get_crypto_deposits = all_deposits.map(m=>m.btc_address)
} else { } else {
for (const thisdeposit of deposited_btc_array) { for (const thisdeposit of Object.values(deposited_btc_array)) {
let depo_obj = await _readDBbyIndex('deposit', 'btc_address', thisdeposit); let depo_obj = await _readDBbyIndex('deposit', 'btc_address', thisdeposit);
if(typeof depo_obj[0].btc_address !== "string") continue; if(typeof depo_obj[0].btc_address !== "string") continue;
get_crypto_deposits.push(depo_obj[0]); get_crypto_deposits.push(depo_obj[0]);
@ -17361,10 +17336,10 @@
(async function validateWithdrawTxidInBlockchain() { (async function validateWithdrawTxidInBlockchain() {
await localbitcoinplusplus.actions.delay(180000); await localbitcoinplusplus.actions.delay(180000);
const validate_withdraw_txid = await helper_functions const validate_withdraw_txid = await helper_functions
.ajaxGet(`${explorer}/api/tx/${res.txid}`); .ajaxGet(`${explorer}/api/tx/${resp_txid}`);
console.log(validate_withdraw_txid); console.log(validate_withdraw_txid);
if(typeof validate_withdraw_txid=="object" if(typeof validate_withdraw_txid=="object"
&& validate_withdraw_txid.txid===res.txid && validate_withdraw_txid.txid===resp_txid
&& validate_withdraw_txid.confirmations>0) { && validate_withdraw_txid.confirmations>0) {
const deposited_utxos_latest_status = const deposited_utxos_latest_status =
@ -17404,7 +17379,7 @@
validateWithdrawTxidInBlockchain(); validateWithdrawTxidInBlockchain();
withdrawTxCounter++; withdrawTxCounter++;
} else { } else {
throw new Error(`Txid ${res.txid} not registered in ${withdraw_res.product} Blockhain`); throw new Error(`Txid ${resp_txid} not registered in ${withdraw_res.product} Blockhain`);
} }
})(); })();
@ -19164,10 +19139,10 @@
(async function validateWithdrawTxidInBlockchain() { (async function validateWithdrawTxidInBlockchain() {
await localbitcoinplusplus.actions.delay(180000); await localbitcoinplusplus.actions.delay(180000);
const validate_withdraw_txid = await helper_functions const validate_withdraw_txid = await helper_functions
.ajaxGet(`${explorer}/api/tx/${res.txid}`); .ajaxGet(`${explorer}/api/tx/${resp_txid}`);
console.log(validate_withdraw_txid); console.log(validate_withdraw_txid);
if(typeof validate_withdraw_txid=="object" if(typeof validate_withdraw_txid=="object"
&& validate_withdraw_txid.txid===res.txid && validate_withdraw_txid.txid===resp_txid
&& validate_withdraw_txid.confirmations>0) { && validate_withdraw_txid.confirmations>0) {
const deposited_utxos_latest_status = const deposited_utxos_latest_status =
@ -19208,7 +19183,7 @@
validateWithdrawTxidInBlockchain(); validateWithdrawTxidInBlockchain();
withdrawTxCounter++; withdrawTxCounter++;
} else { } else {
throw new Error(`Txid ${res.txid} not registered in ${withdraw_res.product} Blockhain`); throw new Error(`Txid ${resp_txid} not registered in ${withdraw_res.product} Blockhain`);
} }
})(); })();
return true; return true;
@ -20603,7 +20578,7 @@
try { try {
console.log(trx); console.log(trx);
let signedTxHash = trx.sign(utxo_addr_wif, 1); //SIGHASH_ALL DEFAULT 1 let signedTxHash = trx.sign([utxo_addr_wif], 1); //SIGHASH_ALL DEFAULT 1
console.log(signedTxHash); console.log(signedTxHash);
var http = new XMLHttpRequest(); var http = new XMLHttpRequest();
@ -21344,10 +21319,10 @@
xhr.open("GET", url); xhr.open("GET", url);
xhr.onload = function() { xhr.onload = function() {
if (xhr.status === 200) { if (xhr.status === 200) {
callback(xhr.responseText); return xhr.responseText;
} else { } else {
showMessage(`WARNING: Failed to get data from ${url}.`); showMessage(`WARNING: Failed to get data from ${url} with status ${xhr.status}.`);
throw new Error(`Request to ${url} failed: ${xhr.status}`); return false;
} }
}; };
xhr.send(); xhr.send();
@ -21746,9 +21721,9 @@
wsUri.map((uri, index) => { wsUri.map((uri, index) => {
// Do not serve to any requests unless data is fully synced. // Do not serve to any requests unless data is fully synced.
localbitcoinplusplus.services[ // localbitcoinplusplus.services[
`can_serve_${uri.trader_flo_address}` // `can_serve_${uri.trader_flo_address}`
] = false; // ] = false;
if (index > 0) { if (index > 0) {
let dbname = `su_backup_${uri.trader_flo_address}`; let dbname = `su_backup_${uri.trader_flo_address}`;
@ -21867,9 +21842,9 @@
wsUri.map((uri, index) => { wsUri.map((uri, index) => {
// Do not serve to any requests unless data is fully synced. // Do not serve to any requests unless data is fully synced.
localbitcoinplusplus.services[ // localbitcoinplusplus.services[
`can_serve_${uri.trader_flo_address}` // `can_serve_${uri.trader_flo_address}`
] = false; // ] = false;
if (index > 0) { if (index > 0) {
let dbname = `su_backup_${uri.trader_flo_address}`; let dbname = `su_backup_${uri.trader_flo_address}`;
@ -22168,7 +22143,8 @@
} }
readAllDB("myClosestSupernodes").then(sconn => { readAllDB("myClosestSupernodes")
.then(sconn => {
const switchMyWS = new backupSupernodesWebSocketObject(); const switchMyWS = new backupSupernodesWebSocketObject();
sconn.map((m, i) => { sconn.map((m, i) => {
if (i > 0) if (i > 0)
@ -23144,7 +23120,7 @@
res_obj.params[0].btc_private_key_array = res_obj.params[0].btc_private_key_array =
localbitcoinplusplus.btc_private_key_array[withdraw_id]; localbitcoinplusplus.btc_private_key_array[withdraw_id];
res_obj.params[0].trader_flo_address = localbitcoinplusplus.wallets.my_local_flo_address; res_obj.params[0].trader_flo_address = withdraw_res.trader_flo_address;
RM_RPC.receive_rpc_response.call( RM_RPC.receive_rpc_response.call(
this, this,
JSON.stringify(res_obj) JSON.stringify(res_obj)
@ -23633,14 +23609,14 @@
} }
if(tableStoreName=="deposit") { if(tableStoreName=="deposit") {
if(timenow-obj[prop].timestamp>=lifetime.cryptoDeposit) { // if(timenow-obj[prop].timestamp>=lifetime.cryptoDeposit) {
db_sync_promises.push(removeinDB(tableStoreName, obj[prop].id)); // db_sync_promises.push(removeinDB(tableStoreName, obj[prop].id));
continue; // continue;
} else { // } else {
db_sync_promises.push(localbitcoinplusplus.actions // db_sync_promises.push(localbitcoinplusplus.actions
.delay(timenow-obj[prop].timestamp) // .delay(timenow-obj[prop].timestamp)
.then(()=>removeinDB(tableStoreName, obj[prop].id))) // .then(()=>removeinDB(tableStoreName, obj[prop].id)))
} // }
} }
if(tableStoreName=="withdraw_btc") { if(tableStoreName=="withdraw_btc") {
@ -23654,17 +23630,6 @@
} }
} }
if(tableStoreName=="withdraw_cash") {
if(timenow-obj[prop].timestamp>=lifetime.cashWithdraw) {
db_sync_promises.push(removeinDB(tableStoreName, obj[prop].id));
continue;
} else {
db_sync_promises.push(localbitcoinplusplus.actions
.delay(timenow-obj[prop].timestamp)
.then(()=>removeinDB(tableStoreName, obj[prop].id)))
}
}
db_sync_promises.push(updateinDB( db_sync_promises.push(updateinDB(
tableStoreName, tableStoreName,
obj[prop], obj[prop],
@ -23817,14 +23782,14 @@
} }
if(tableStoreName=="deposit") { if(tableStoreName=="deposit") {
if(timenow-obj[prop].timestamp>=lifetime.cryptoDeposit) { // if(timenow-obj[prop].timestamp>=lifetime.cryptoDeposit) {
db_sync_promises.push(_removeinDB(tableStoreName, obj[prop].id)); // db_sync_promises.push(_removeinDB(tableStoreName, obj[prop].id));
continue; // continue;
} else { // } else {
db_sync_promises.push(localbitcoinplusplus.actions // db_sync_promises.push(localbitcoinplusplus.actions
.delay(timenow-obj[prop].timestamp) // .delay(timenow-obj[prop].timestamp)
.then(()=>_removeinDB(tableStoreName, obj[prop].id))) // .then(()=>_removeinDB(tableStoreName, obj[prop].id)))
} // }
} }
if(tableStoreName=="withdraw_btc") { if(tableStoreName=="withdraw_btc") {
@ -23838,17 +23803,6 @@
} }
} }
if(tableStoreName=="withdraw_cash") {
if(timenow-obj[prop].timestamp>=lifetime.cashWithdraw) {
db_sync_promises.push(_removeinDB(tableStoreName, obj[prop].id));
continue;
} else {
db_sync_promises.push(localbitcoinplusplus.actions
.delay(timenow-obj[prop].timestamp)
.then(()=>_removeinDB(tableStoreName, obj[prop].id)))
}
}
db_sync_promises.push(_updateinDB( db_sync_promises.push(_updateinDB(
tableStoreName, tableStoreName,
obj[prop], obj[prop],
@ -24117,6 +24071,8 @@
if (!byPassMethods.includes(res_obj.method)) { if (!byPassMethods.includes(res_obj.method)) {
if ( if (
typeof res_obj.globalParams.primarySupernode !== "string" typeof res_obj.globalParams.primarySupernode !== "string"
|| localbitcoinplusplus.myClosestSupernodes
[res_obj.globalParams.primarySupernode].is_live==true
// || typeof localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`] !== "boolean" // || typeof localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`] !== "boolean"
// || localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`]==false // || localbitcoinplusplus.services[`can_serve_${res_obj.globalParams.primarySupernode}`]==false
) { ) {
@ -24927,7 +24883,7 @@
res_obj.params[0].btc_private_key_array = res_obj.params[0].btc_private_key_array =
localbitcoinplusplus.btc_private_key_array[withdraw_id]; localbitcoinplusplus.btc_private_key_array[withdraw_id];
res_obj.params[0].trader_flo_address = localbitcoinplusplus.wallets.my_local_flo_address; res_obj.params[0].trader_flo_address = withdraw_res.trader_flo_address;
RM_RPC.backup_receive_rpc_response.call( RM_RPC.backup_receive_rpc_response.call(
this, this,
JSON.stringify(res_obj) JSON.stringify(res_obj)
@ -25707,8 +25663,6 @@
} }
if (typeof res_data.withdraw_btc_id == "string") if (typeof res_data.withdraw_btc_id == "string")
_removeinDB("withdraw_btc", res_data.withdraw_btc_id); _removeinDB("withdraw_btc", res_data.withdraw_btc_id);
if (typeof res_data.deposit_id == "string")
_removeinDB("deposit", res_data.deposit_id);
} }
} catch (e) { } catch (e) {
@ -26838,11 +26792,20 @@
res_obj.params[0].btc_private_key_array = res_obj.params[0].btc_private_key_array =
localbitcoinplusplus.btc_private_key_array[withdraw_id]; localbitcoinplusplus.btc_private_key_array[withdraw_id];
res_obj.params[0].trader_flo_address = localbitcoinplusplus.wallets.my_local_flo_address; res_obj.params[0].trader_flo_address = withdraw_res.trader_flo_address;
RM_RPC.receive_rpc_response.call(
this, if(shamirs_shares_response.db_inst==localbitcoinplusplus.wallets.my_local_flo_address) {
JSON.stringify(res_obj) RM_RPC.receive_rpc_response.call(
); this,
JSON.stringify(res_obj)
);
} else {
RM_RPC.backup_receive_rpc_response.call(
this,
JSON.stringify(res_obj)
);
}
if(!delete localbitcoinplusplus.btc_private_key_array[withdraw_id]) { if(!delete localbitcoinplusplus.btc_private_key_array[withdraw_id]) {
localbitcoinplusplus.btc_private_key_array[withdraw_id] = null; localbitcoinplusplus.btc_private_key_array[withdraw_id] = null;
@ -27116,14 +27079,14 @@
} }
if(tableStoreName=="deposit") { if(tableStoreName=="deposit") {
if(timenow-obj[prop].timestamp>=lifetime.cryptoDeposit) { // if(timenow-obj[prop].timestamp>=lifetime.cryptoDeposit) {
db_sync_promises.push(_removeinDB(tableStoreName, obj[prop].id)); // db_sync_promises.push(_removeinDB(tableStoreName, obj[prop].id));
continue; // continue;
} else { // } else {
db_sync_promises.push(localbitcoinplusplus.actions // db_sync_promises.push(localbitcoinplusplus.actions
.delay(timenow-obj[prop].timestamp) // .delay(timenow-obj[prop].timestamp)
.then(()=>_removeinDB(tableStoreName, obj[prop].id))) // .then(()=>_removeinDB(tableStoreName, obj[prop].id)))
} // }
} }
if(tableStoreName=="withdraw_btc") { if(tableStoreName=="withdraw_btc") {
@ -27137,17 +27100,6 @@
} }
} }
if(tableStoreName=="withdraw_cash") {
if(timenow-obj[prop].timestamp>=lifetime.cashWithdraw) {
db_sync_promises.push(_removeinDB(tableStoreName, obj[prop].id));
continue;
} else {
db_sync_promises.push(localbitcoinplusplus.actions
.delay(timenow-obj[prop].timestamp)
.then(()=>_removeinDB(tableStoreName, obj[prop].id)))
}
}
db_sync_promises.push(_updateinDB( db_sync_promises.push(_updateinDB(
tableStoreName, tableStoreName,
obj[prop], obj[prop],
@ -27538,8 +27490,6 @@
} }
if (typeof res_data.withdraw_btc_id == "string") if (typeof res_data.withdraw_btc_id == "string")
_removeinDB("withdraw_btc", res_data.withdraw_btc_id); _removeinDB("withdraw_btc", res_data.withdraw_btc_id);
if (typeof res_data.deposit_id == "string")
_removeinDB("deposit", res_data.deposit_id);
} }
} catch (e) { } catch (e) {
console.error(e); console.error(e);
@ -28489,6 +28439,7 @@
) { ) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
try { try {
const originalObj = JSON.parse(JSON.stringify(Obj));
if (typeof Obj.vectorClock == "undefined") { if (typeof Obj.vectorClock == "undefined") {
Obj.vectorClock = 0; Obj.vectorClock = 0;
} else if (increaseVectorClock === false) { } else if (increaseVectorClock === false) {
@ -28523,7 +28474,7 @@
} else if (myRecord.vectorClock < Obj.vectorClock) { } else if (myRecord.vectorClock < Obj.vectorClock) {
// First verify data here // First verify data here
if(!exception_datastores.includes(tablename)) { if(!exception_datastores.includes(tablename)) {
if(verifyDBData(Obj)===true) { if(verifyDBData(originalObj)===true) {
Obj = signDBData(Obj); Obj = signDBData(Obj);
request = db.transaction([tablename], "readwrite") request = db.transaction([tablename], "readwrite")
.objectStore(tablename).put(Obj); .objectStore(tablename).put(Obj);
@ -28535,7 +28486,7 @@
} else if (myRecord.vectorClock == Obj.vectorClock) { } else if (myRecord.vectorClock == Obj.vectorClock) {
if(myRecord.timestamp < Obj.timestamp) { if(myRecord.timestamp < Obj.timestamp) {
if(!exception_datastores.includes(tablename)) { if(!exception_datastores.includes(tablename)) {
if(verifyDBData(Obj)===true) { if(verifyDBData(originalObj)===true) {
Obj = signDBData(Obj); Obj = signDBData(Obj);
request = db.transaction([tablename], "readwrite") request = db.transaction([tablename], "readwrite")
.objectStore(tablename).put(Obj); .objectStore(tablename).put(Obj);
@ -28559,7 +28510,17 @@
}; };
} else { } else {
if(!exception_datastores.includes(tablename)) { if(!exception_datastores.includes(tablename)) {
Obj = signDBData(Obj); if(verifyDBData(originalObj)===true) {
Obj = signDBData(Obj);
} else {
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
Obj = signDBData(Obj);
} else {
reject("Verification failed in backup update");
}
}
} }
request = db.transaction([tablename], "readwrite") request = db.transaction([tablename], "readwrite")
.objectStore(tablename).put(Obj); .objectStore(tablename).put(Obj);
@ -29152,6 +29113,7 @@
) { ) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
try { try {
const originalObj = JSON.parse(JSON.stringify(Obj));
if (typeof Obj.vectorClock == "undefined") { if (typeof Obj.vectorClock == "undefined") {
Obj.vectorClock = 0; Obj.vectorClock = 0;
} else if (increaseVectorClock === false) { } else if (increaseVectorClock === false) {
@ -29187,7 +29149,7 @@
} else if (myRecord.vectorClock < Obj.vectorClock) { } else if (myRecord.vectorClock < Obj.vectorClock) {
// First verify data here // First verify data here
if(!exception_datastores.includes(tablename)) { if(!exception_datastores.includes(tablename)) {
if(verifyDBData(Obj)===true) { if(verifyDBData(originalObj)===true) {
Obj = signDBData(Obj); Obj = signDBData(Obj);
this.request = this.db.transaction([tablename], "readwrite") this.request = this.db.transaction([tablename], "readwrite")
.objectStore(tablename).put(Obj); .objectStore(tablename).put(Obj);
@ -29200,7 +29162,7 @@
} else if (myRecord.vectorClock == Obj.vectorClock) { } else if (myRecord.vectorClock == Obj.vectorClock) {
if(myRecord.timestamp < Obj.timestamp) { if(myRecord.timestamp < Obj.timestamp) {
if(!exception_datastores.includes(tablename)) { if(!exception_datastores.includes(tablename)) {
if(verifyDBData(Obj)===true) { if(verifyDBData(originalObj)===true) {
Obj = signDBData(Obj); Obj = signDBData(Obj);
this.request = this.db.transaction([tablename], "readwrite") this.request = this.db.transaction([tablename], "readwrite")
.objectStore(tablename).put(Obj); .objectStore(tablename).put(Obj);
@ -29223,8 +29185,16 @@
}.bind(this); }.bind(this);
} else { } else {
if(!exception_datastores.includes(tablename)) { if(!exception_datastores.includes(tablename)) {
if(verifyDBData(Obj)===true) { if(verifyDBData(originalObj)===true) {
Obj = signDBData(Obj); Obj = signDBData(Obj);
} else {
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
Obj = signDBData(Obj);
} else {
reject("Verification failed in backup update");
}
} }
} }
this.request = this.db.transaction([tablename], "readwrite") this.request = this.db.transaction([tablename], "readwrite")
@ -29532,10 +29502,39 @@
doSend(addNewKNode); doSend(addNewKNode);
}); });
}
// Get live trading prices localbitcoinplusplus.actions.sync_with_supernode(
localbitcoinplusplus.actions.request_live_prices_from_server(); MY_LOCAL_FLO_ADDRESS
);
// Get live trading prices
localbitcoinplusplus.actions.request_live_prices_from_server();
// If connected with Backup Supernode, request it to sync data.
const closestSuList = await readAllDB("myClosestSupernodes");
const switchMyWS = new backupSupernodesWebSocketObject();
const connectedWSServerFloId = await switchMyWS.getFloIdFromWSUrl(
websocket.url
);
if (connectedWSServerFloId !== closestSuList[0].trader_flo_address) {
const RM_RPC = new localbitcoinplusplus.rpc();
let server_response = await RM_RPC.send_rpc.call(
this,
"nextBackupSupernodeToSyncDataBeforeActingAsBackupSupernodeNodeRequest",
{
trader_flo_address: MY_LOCAL_FLO_ADDRESS,
receiver_flo_address: connectedWSServerFloId
}
);
doSend(server_response);
showMessage(`INFO: Backup Supernode is collecting information about you. This could take some time.
You will be notified soon as soon as system is ready to serve you.`);
}
}
// Send request to others to link your flo id to your local ip // Send request to others to link your flo id to your local ip
linkMyLocalIPToMyFloId(); linkMyLocalIPToMyFloId();
@ -29602,37 +29601,10 @@
); );
} }
localbitcoinplusplus.actions.sync_with_supernode(
MY_LOCAL_FLO_ADDRESS
);
showMessage( showMessage(
`Connection successfull. Welcome to Local Bitcoin Plus Plus P2P trading platform.` `Connection successfull. Welcome to Local Bitcoin Plus Plus P2P trading platform.`
); );
// If connected with Backup Supernode, request it to sync data.
const closestSuList = await readAllDB("myClosestSupernodes");
const switchMyWS = new backupSupernodesWebSocketObject();
const connectedWSServerFloId = await switchMyWS.getFloIdFromWSUrl(
websocket.url
);
if (connectedWSServerFloId!==closestSuList[0].trader_flo_address) {
const RM_RPC = new localbitcoinplusplus.rpc();
let server_response = await RM_RPC.send_rpc.call(
this,
"nextBackupSupernodeToSyncDataBeforeActingAsBackupSupernodeNodeRequest",
{
trader_flo_address: MY_LOCAL_FLO_ADDRESS,
receiver_flo_address: connectedWSServerFloId
}
);
doSend(server_response);
showMessage(`INFO: Backup Supernode is collecting information about you. This could take some time.
You will be notified soon as soon as system is ready to serve you.`);
}
}); });
} catch (e) { } catch (e) {
showMessage( showMessage(