diff --git a/supernode/index.html b/supernode/index.html
index 6fbf1c3..46fbd72 100644
--- a/supernode/index.html
+++ b/supernode/index.html
@@ -10081,43 +10081,11 @@
03F7493F11B8E44B9798CD434D20FBE7FA34B9779D144984889D11A17C56A18742,039B4AA00DBFC0A6631DE6DA83526611A0E6B857D3579DF840BBDEAE8B6898E3B6,
03C8E3836C9A77E2AF03D4265D034BA85732738919708EAF6A16382195AE796EDF,0349B08AA1ABDCFFB6D78CD7C949665AD2FF065EA02B3C6C47A5E9592C9A1C6BCB
#!#externalFiles={"d3js":"58f54395efa8346e8e94d12609770f66b916897e7f4e05f6c98780cffa5c70a3"},
- #!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"127.0.0.1","port":"9001","kbucketId":"oZxHcbSf1JC8t5GjutopWYXs7C6Fe9p7ps"},
- "ranchimall2":{"ip":"127.0.0.1","port":"9002","kbucketId":"oTWjPupy3Z7uMdPcu5uXd521HBkcsLuSuM"},
- "ranchimall3":{"ip":"127.0.0.1","port":"9003","kbucketId":"odYA6KagmbokSh9GY7yAfeTUZRtZLwecY1"},
- "ranchimall4":{"ip":"127.0.0.1","port":"9004","kbucketId":"oJosrve9dBv2Hj2bfncxv2oEpTysg3Wejv"},
- "ranchimall5":{"ip":"127.0.0.1","port":"9005","kbucketId":"oMhv5sAzqg77sYHxmUGZWKRrVo4P4JQduS"}}`;
-
- // RMAssets =
- // `masterFLOPubKey=029EF7838D4D103E62262394B5417E8ABFD75539D19E61CA5FD0C2051B69B29910
- // #!#tradableAsset1=BTC,FLO,BTC_TEST,FLO_TEST#!#tradableAsset2=INR,USD,BTC,FLO,BTC_TEST,FLO_TEST,
- // #!#validTradingAmount=10000,50000,100000,#!#btcTradeMargin=5000
- // #!#MaxBackups=2
- // #!#supernodesPubKeys=0315C3A20FE7096CC2E0F81A80D5F1A687B8F9EFA65242A0B0881E1BA3EE7D7D53,
- // 03F7493F11B8E44B9798CD434D20FBE7FA34B9779D144984889D11A17C56A18742,039B4AA00DBFC0A6631DE6DA83526611A0E6B857D3579DF840BBDEAE8B6898E3B6,
- // 03C8E3836C9A77E2AF03D4265D034BA85732738919708EAF6A16382195AE796EDF,0349B08AA1ABDCFFB6D78CD7C949665AD2FF065EA02B3C6C47A5E9592C9A1C6BCB,
- // 026FCC6CFF6EB3A39E54BEB6E13FC2F02C3A93F4767AA80E49E7E876443F95AE5F,029CDB29270DC5087EF4903E8C2364552C62E935FBAA1A96AB53CC5791C7EF2067,
- // 022EC1D090960D9EFFFC60FDC34AB97A8395A5F6D1326DD1B1380BD9F6E31981CA,037C623A8D31DB751F666A1D2C65EC8996C5978348CEEE8566F480708D4A6335AB,
- // 032871A74D2DDA9D0DE7135F58B5BD2D7F679D2CCA20EA7909466D1A6912DF4022
- // #!#externalFiles={"d3js":"58f54395efa8346e8e94d12609770f66b916897e7f4e05f6c98780cffa5c70a3"},
- // #!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"127.0.0.1","port":"9001","kbucketId":"oZxHcbSf1JC8t5GjutopWYXs7C6Fe9p7ps"},
- // "ranchimall2":{"ip":"127.0.0.1","port":"9002","kbucketId":"oTWjPupy3Z7uMdPcu5uXd521HBkcsLuSuM"},
- // "ranchimall3":{"ip":"127.0.0.1","port":"9003","kbucketId":"odYA6KagmbokSh9GY7yAfeTUZRtZLwecY1"},
- // "ranchimall4":{"ip":"127.0.0.1","port":"9004","kbucketId":"oJosrve9dBv2Hj2bfncxv2oEpTysg3Wejv"},
- // "ranchimall5":{"ip":"127.0.0.1","port":"9005","kbucketId":"oMhv5sAzqg77sYHxmUGZWKRrVo4P4JQduS"},
- // "ranchimall6":{"ip":"127.0.0.1","port":"9006","kbucketId":"oV1wCeWca3VawbBTfUGKA7Vd368PATnKAx"},
- // "ranchimall7":{"ip":"127.0.0.1","port":"9007","kbucketId":"oSqFZePXibNJqeiboTYmmaqqVkd6esDUfZ"},
- // "ranchimall8":{"ip":"127.0.0.1","port":"9008","kbucketId":"odUQekfMPsZV3ocneFW8SNSZADFtx9xUtm"},
- // "ranchimall9":{"ip":"127.0.0.1","port":"9009","kbucketId":"oLYeoBfXWxKkUmRxhn1pcmJWtTu5kZoUJq"},
- // "ranchimall10":{"ip":"127.0.0.1","port":"9010","kbucketId":"oJJe8wkADkCT28BMLkyf79fqBZeoF21cXL"}}`;
-
- // RMAssets =
- // `tradableAsset1=BTC,FLO,BTC_TEST,FLO_TEST#!#tradableAsset2=INR,USD,BTC,FLO,BTC_TEST,FLO_TEST,
- // #!#supernodes=127.0.0.1,212.88.88.2#!#MASTER_NODE=023B9F60692A17FAC805D012C5C8ADA3DD19A980A3C5F0D8A5B3500CC54D6E8B75
- // #!#MASTER_RECEIVING_ADDRESS=oVRq2nka1GtALQT8pbuLHAGjqAQ7PAo6uy#!#validTradingAmount=10000,50000,100000,#!#btcTradeMargin=5000
- // #!#supernodesPubKeys=03692E641440795B6279F548C7156775EB624CC8A27FDA94C5E3B8945EC94DE1F1,02F22822D5E887ABBDA3D5E3A51574C547FEAAC00BF01185AA56858D4C9B00334F,
- // #!#externalFiles={"d3js":"58f54395efa8346e8e94d12609770f66b916897e7f4e05f6c98780cffa5c70a3"},
- // #!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"ranchimall1.duckdns.org","port":"9002","kbucketId":"oURVEZQ6sPT8mwDVTGiBVPqJYqjctXYfF3"},
- // "ranchimall2":{"ip":"ranchimall1.duckdns.org","port":"9003","kbucketId":"oapBngvTbcNCSfQfzJ9RS1QYfb4ppSQ9KQ"}}`;
+ #!#ShamirsMaxShares=8#!#supernodeSeeds={"ranchimall1":{"ip":"127.0.0.1","port":"9111","kbucketId":"oZxHcbSf1JC8t5GjutopWYXs7C6Fe9p7ps"},
+ "ranchimall2":{"ip":"127.0.0.1","port":"9112","kbucketId":"oTWjPupy3Z7uMdPcu5uXd521HBkcsLuSuM"},
+ "ranchimall3":{"ip":"127.0.0.1","port":"9113","kbucketId":"odYA6KagmbokSh9GY7yAfeTUZRtZLwecY1"},
+ "ranchimall4":{"ip":"127.0.0.1","port":"9114","kbucketId":"oJosrve9dBv2Hj2bfncxv2oEpTysg3Wejv"},
+ "ranchimall5":{"ip":"127.0.0.1","port":"9115","kbucketId":"oMhv5sAzqg77sYHxmUGZWKRrVo4P4JQduS"}}`;
let floAssetsArray = RMAssets.split('#!#');
@@ -10949,6 +10917,7 @@
reactor.registerEvent('store_backup_crypto_pk_object');
reactor.registerEvent('sync_backup_nodes_of_my_backup_node');
reactor.registerEvent('resolve_backup_ws_connections');
+ reactor.registerEvent('shift_ws_connection');
reactor.addEventListener('fireNodeWelcomeBackEvent', function(evt) {
let getFLOId = bitjs.FLO_TEST.pubkey2address(evt.flo_public_key);
@@ -11120,6 +11089,9 @@
const switchMyWS = new backupSupernodesWebSocketObject();
switchMyWS.updateSupernodeAvailabilityStatus(params.trader_flo_address, true);
+ // Resolve ws connections
+ reactor.dispatchEvent('resolve_backup_ws_connections');
+
if (params.trader_flo_address !== localbitcoinplusplus.wallets.my_local_flo_address) {
localbitcoinplusplus.services[`can_serve_${params.trader_flo_address}`] = false;
}
@@ -11259,21 +11231,33 @@
});
});
+ /*Shifting a WS Connection Function*/
+ reactor.addEventListener('shift_ws_connection', function(wsSupsObj) {
+ return new Promise((resolve, reject)=>{
+ const getFLOId = wsSupsObj.trader_flo_address;
+ if (getFLOId===localbitcoinplusplus.wallets.my_local_flo_address) return;
+ const back_ws_url = `ws://${wsSupsObj.ip}:${wsSupsObj.port}`;
+
+ if (typeof localbitcoinplusplus.backupWS[getFLOId]==="object"
+ && localbitcoinplusplus.backupWS[getFLOId].ws_connection.readyState==1) {
+ resolve(1);
+ } else {
+ try {
+ localbitcoinplusplus.backupWS[getFLOId] = null;
+ localbitcoinplusplus.backupWS[getFLOId] = new backupSupernodesWebSocketObject(back_ws_url);
+ localbitcoinplusplus.backupWS[getFLOId].connectWS();
+ resolve(localbitcoinplusplus.backupWS[getFLOId].ws_connection.readyState);
+ } catch (error) {
+ reject(error);
+ }
+ }
+ });
+ });
+
reactor.addEventListener('resolve_backup_ws_connections', async function(evt) {
if(!localbitcoinplusplus.master_configurations.supernodesPubKeys
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) return;
-
- const myClosestSus = await readAllDB('myClosestSupernodes');
- let number_of_live_nodes = 0;
- const myLiveBackupNodes = myClosestSus.filter((m, i)=>{
- if(i>0 && number_of_live_nodes{
- const getFLOId = m.trader_flo_address;
- if (getFLOId===localbitcoinplusplus.wallets.my_local_flo_address) return;
- const back_ws_url = `ws://${m.ip}:${m.port}`;
+ // If already condition of number of ws connections are satisfied return back
+ if (Object.keys(localbitcoinplusplus.backupWS).length
+ === localbitcoinplusplus.master_configurations.MaxBackups) return;
+
+ try {
+ const myClosestSups = await readAllDB('myClosestSupernodes');
+ for (let z = 1; z < myClosestSups.length-1; z++) {
+ const supsObj = myClosestSups[z];
- if (typeof localbitcoinplusplus.backupWS[getFLOId]==="object"
- && localbitcoinplusplus.backupWS[getFLOId].ws_connection.readyState==1) {
- // Do nothing
- } else {
- localbitcoinplusplus.backupWS[getFLOId] = null;
- localbitcoinplusplus.backupWS[getFLOId] = new backupSupernodesWebSocketObject(back_ws_url);
- localbitcoinplusplus.backupWS[getFLOId].connectWS();
+ reactor.dispatchEvent('shift_ws_connection', supsObj);
+
+ if (Object.keys(localbitcoinplusplus.backupWS).length
+ == localbitcoinplusplus.master_configurations.MaxBackups) break;
}
- });
+
+ } catch (error) {
+ throw new Error(error);
+ }
+
});