diff --git a/supernode/index.html b/supernode/index.html
index 5ef635e..1418a4b 100644
--- a/supernode/index.html
+++ b/supernode/index.html
@@ -10201,7 +10201,7 @@
return arr;
},
- get_sharable_db_data_for_single_user: async function (dbTableNamesArray, backup_db="") {
+ get_sharable_db_data_for_single_user: async function (userId="", dbTableNamesArray, backup_db="") {
let arr = {};
let _readDBbyIndex = readDBbyIndex;
if (typeof backup_db=="string" && backup_db.length>0) {
@@ -10215,7 +10215,7 @@
}
}
for (const elem of dbTableNamesArray) {
- await _readDBbyIndex(elem).then(e => arr[elem] = e);
+ await _readDBbyIndex(elem, 'trader_flo_address', userId).then(e => arr[elem] = e);
}
return arr;
},
@@ -10454,7 +10454,61 @@
}).catch(e=>reject(e));
});
- }
+ },
+
+ exportUserDataFromOneSupernodeToAnother: async function(userFloId="", receipient_su="") {
+ let immigrantsList = [];
+ const tableArray = ["deposit", "withdraw_cash", "withdraw_btc",
+ "crypto_balances", "cash_balances", "userPublicData",
+ "buyOrders", "sellOrders"
+ ];
+ const RM_RPC = new localbitcoinplusplus.rpc();
+ if (userFloId.length>0) {
+
+ let closestSu = await localbitcoinplusplus.kademlia
+ .determineClosestSupernode(userFloId);
+
+ const immigrants_data = await localbitcoinplusplus.actions
+ .get_sharable_db_data_for_single_user(userFloId, tableArray);
+
+ if (typeof immigrants_data === "object") {
+ immigrants_data.trader_flo_address = closestSu[0].data.id;
+ immigrants_data.receiver_flo_address = closestSu[0].data.id;
+ RM_RPC
+ .send_rpc
+ .call(this, "sync_primary_supernode_from_backup_supernode_response", immigrants_data)
+ .then(server_sync_response=>doSend(server_sync_response));
+ }
+ } else {
+
+ const allUsersData = await readAllDB('userPublicData');
+
+ const supernodesFloList = localbitcoinplusplus.master_configurations
+ .supernodesPubKeys.map(s=>bitjs.FLO_TEST.pubkey2address(s));
+
+ for(let f=0; fdoSend(server_sync_response));
+ }
+ }
+ }
+
+ }
+ },
}