diff --git a/supernode/index.html b/supernode/index.html
index 826fecf..62fc39f 100644
--- a/supernode/index.html
+++ b/supernode/index.html
@@ -11430,7 +11430,7 @@
}
if (typeof params[0].receiver_flo_address == "string") {
- request.globalParams.receiverFloId = params[0].receiver_flo_address;
+ //request.globalParams.receiverFloId = params[0].receiver_flo_address;
if (typeof request.globalParams.receiversList == "object") {
if (!request.globalParams.receiversList.includes(params[0].receiver_flo_address)) {
request.globalParams.receiversList.push(params[0].receiver_flo_address);
@@ -17156,12 +17156,16 @@
if (localbitcoinplusplus.master_configurations.supernodesPubKeys
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
+ const subject_user = res_obj.params[0].trader_flo_address
+ || res_obj.globalParams.primarySupernode;
+
let ifAllPrevSuAreDead = await localbitcoinplusplus.actions
- .checkIfAllPreviousSupernodesAreDeadForAUserNode(res_obj.params[0].trader_flo_address);
+ .checkIfAllPreviousSupernodesAreDeadForAUserNode(subject_user);
console.log("ifAllPrevSuAreDead: ", ifAllPrevSuAreDead);
- let allowed_methods = ['sync_backup_supernode_from_backup_supernode_response', 'yup_i_am_awake'];
+ let allowed_methods = ['sync_backup_supernode_from_backup_supernode_response',
+ 'yup_i_am_awake', "updateUserBTCReservesRequest"];
if (ifAllPrevSuAreDead !== true || allowed_methods.includes(res_obj.method)) {
handle_backup_server_messages(response);
@@ -19345,10 +19349,11 @@
if (localbitcoinplusplus.master_configurations.supernodesPubKeys
.includes(res_obj.nodePubKey)) {
- let updateUserReservesResponseObject = res_obj.params[0];
+ let updateUserReservesResponseObject = res_obj.params[0];;
+ let subjectuser = res_obj.params[0].trader_flo_address || res_obj.params[0].updatedReservesObject[0].trader_flo_address;
let backup_server_db_instance = "";
- if(typeof res_obj.params[0].trader_flo_address !="string") return;
- localbitcoinplusplus.kademlia.determineClosestSupernode(res_obj.params[0].trader_flo_address)
+ if(typeof subjectuser !="string") return;
+ localbitcoinplusplus.kademlia.determineClosestSupernode(subjectuser)
.then(my_closest_su_list=>{
const primarySupernodeOfThisUser = my_closest_su_list[0].data.id;
backup_server_db_instance = localbitcoinplusplus.newBackupDatabase.db[primarySupernodeOfThisUser];
@@ -19367,7 +19372,8 @@
res_obj.nodePubKey
);
if (isBalanceLegit) {
- backup_server_db_instance.backup_updateinDB("system_btc_reserves_private_keys", updateUserReservesResponseObject.updatedReservesObject);
+ backup_server_db_instance.backup_updateinDB("system_btc_reserves_private_keys",
+ updateUserReservesResponseObject.updatedReservesObject[0], true, false);
if (localbitcoinplusplus.wallets.my_local_flo_address ==
updateUserReservesResponseObject.trader_flo_address) {
displayBalances(updateUserReservesResponseObject.trader_flo_address);
@@ -19435,8 +19441,8 @@
if (obj.length > 0) {
for (var prop in obj) {
if (!obj.hasOwnProperty(prop)) continue;
- _updateinDB(resdbdata, obj[prop], obj[prop].id, true, false).then(()=>{
- showMessage(`INFO: "${resdbdata}" datastore syncing is complete.`);
+ _updateinDB(tableStoreName, obj[prop], obj[prop].id, true, false).then(()=>{
+ showMessage(`INFO: "${tableStoreName}" datastore syncing is complete.`);
});
}
}
@@ -19661,26 +19667,34 @@
&& res_obj.globalParams.receiverFloId==localbitcoinplusplus.wallets.my_local_flo_address
) {
const resp_data = res_obj.params[0];
- let btc_pk_obj = localbitcoinplusplus.encrypt
- .decryptMessage(resp_data.data.secret, resp_data.data.senderPublicKeyString);
- localbitcoinplusplus.kademlia.determineClosestSupernode(su).then(get_su=>{
- const supernode_flo_id = get_su[0].data.id;
- if (typeof supernode_flo_id !=="string") throw new Error(`ERROR: Invalid FLO key.`);
- if (typeof btc_pk_obj =="object"){
+ try {
+ const btc_pk_str = localbitcoinplusplus.encrypt
+ .decryptMessage(resp_data.data.secret, resp_data.data.senderPublicKeyString);
+
+ const btc_pk_obj = JSON.parse(btc_pk_str);
+
+ const subject_user = btc_pk_obj.trader_flo_address || resp_data.trader_flo_address;
+ localbitcoinplusplus.kademlia.determineClosestSupernode(subject_user).then(get_su=>{
+ const supernode_flo_id = get_su[0].data.id;
+
+ if (typeof supernode_flo_id !=="string") throw new Error(`ERROR: Invalid FLO key.`);
+
+ if (supernode_flo_id==localbitcoinplusplus.wallets.my_local_flo_address) {
+ updateinDB("system_btc_reserves_private_keys",
+ btc_pk_obj, btc_pk_obj.id, false, false);
+ } else if(typeof localbitcoinplusplus.newBackupDatabase.db[supernode_flo_id]=="object") {
+ localbitcoinplusplus.newBackupDatabase
+ .db[supernode_flo_id].backup_updateinDB("system_btc_reserves_private_keys",
+ btc_pk_obj, btc_pk_obj.id, false, false);
+ } else {
+ throw new Error(`ERROR: Failed to store backup system_btc_reserves_private_keys id ${btc_pk_obj.id}`);
+ }
+ });
+ } catch(e) {
+ throw new Error(e);
+ }
- }
- if (supernode_flo_id==localbitcoinplusplus.wallets.my_local_flo_address) {
- updateinDB("system_btc_reserves_private_keys",
- btc_pk_obj, btc_pk_obj.id, false, false);
- } else if(typeof localbitcoinplusplus.newBackupDatabase.db[supernode_flo_id]=="object") {
- localbitcoinplusplus.newBackupDatabase
- .db[supernode_flo_id].backup_updateinDB("system_btc_reserves_private_keys",
- btc_pk_obj, btc_pk_obj.id, false, false);
- } else {
- throw new Error(`ERROR: Failed to store backup system_btc_reserves_private_keys id ${btc_pk_obj.id}`);
- }
- });
}
break;
@@ -20272,7 +20286,7 @@
async function(event) {
var myRecord = objectStoreRequest.result;
if(typeof myRecord !=="object") {
- Obj.vectorClock = 1;
+ Obj.vectorClock = (typeof Obj.vectorClock=="number" ? Obj.vectorClock:0);
await store.put(Obj);
await request.complete;
} else if (myRecord.vectorClock+1 < Obj.vectorClock) {
@@ -20657,7 +20671,7 @@
var myRecord = objectStoreRequest.result;
var myRecord = objectStoreRequest.result;
if(typeof myRecord !=="object") {
- Obj.vectorClock = 1;
+ Obj.vectorClock = (typeof Obj.vectorClock=="number" ? Obj.vectorClock:0);
await store.put(Obj);
await that.request.complete;
}
@@ -21693,8 +21707,8 @@
const updateUserBTCReservesRequestObject = {
updatedReservesObject: reserve_res,
updatedBTCReservesObjectSign: reservesObjectSign,
- trader_flo_address: reserve_res.trader_flo_address,
- receiver_flo_address: reserve_res.trader_flo_address
+ trader_flo_address: reserve_res[0].trader_flo_address,
+ receiver_flo_address: reserve_res[0].trader_flo_address
}
RM_RPC