From 538c983fb358d4b167d42c46a3903afaff551a46 Mon Sep 17 00:00:00 2001 From: Abhishek Sinha Date: Sun, 29 Mar 2020 12:39:30 +0530 Subject: [PATCH] added functionality to show live trading prices --- index.html | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 102 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index b955eda..79b0824 100644 --- a/index.html +++ b/index.html @@ -519,7 +519,7 @@ .sidenav { position: fixed; - z-index: 1; + z-index: 2; top: 20px; left: 10px; background: #eee; @@ -533,6 +533,26 @@ background: #eee; overflow-x: hidden; } + + #trading_prices_div { + display: flex; + /* align-items: flex-end; */ + justify-content: flex-end; + flex-wrap: wrap; + position: fixed; + top: 0px; + /* left: 25px; + right: 25px; */ + width: 90%; + z-index: 1; + /* max-height: 5em; */ + font-family: monospace; + font-size: 1em; + padding: 2px 5px; + color: #ffffff; + margin: 0 25px 0 25px; + white-space: pre-line; + } @@ -555,6 +575,8 @@ +
Loading live trading prices...
+
@@ -12792,6 +12814,22 @@ } }, + request_live_prices_from_server: function() { + try { + let RM_RPC = new localbitcoinplusplus.rpc; + RM_RPC.send_rpc( + "live_prices_request", + { + trader_flo_address: localbitcoinplusplus.wallets.my_local_flo_address + } + ).then(delRequestObject => + doSend(delRequestObject) + ); + } catch (error) { + showMessage('Failed to request live prices from server. Please try later.') + } + }, + }; /*Modified functions from https://github.com/tristanls/k-bucket */ @@ -15490,7 +15528,8 @@ is_valid_request === true && params.job == "SYNC_MY_LOCAL_DB_WITH_SUPERNODE_DB" && params.trader_flo_address.length > 0 - ) { + ) { + const tableArray = [ "deposit", "cash_deposits", @@ -15541,6 +15580,37 @@ }); } + if(method=="live_prices_request") { + RM_RPC.filter_legit_requests(params.trader_flo_address, function( + is_valid_request + ) { + if ( + is_valid_request === true && + params.trader_flo_address.length > 0 + ) { + let live_trading_prices = {}; + localbitcoinplusplus.master_configurations.tradableAsset1.forEach( + function(asset1) { + localbitcoinplusplus.master_configurations.tradableAsset2.forEach( + async function(asset2) { + live_trading_prices[`${asset1}_${asset2}`] = localbitcoinplusplus.trade[`current_${asset1}_price_in_${asset2}`]; + } + ); + } + ); + let live_trading_prices_response_object = { + live_trading_prices: live_trading_prices, + receiver_flo_address: params.trader_flo_address + } + RM_RPC.send_rpc + .call(this, "live_trading_prices_response", live_trading_prices_response_object) + .then(response => doSend(response) + ); + } + }); + return true; + } + RM_RPC.filter_legit_requests( params.trader_flo_address, async function(is_valid_request) { @@ -23452,6 +23522,33 @@ } break; + case "live_prices_request": + response_from_sever = RM_RPC.receive_rpc_response.call( + this, + JSON.stringify(res_obj) + ); + break; + + case "live_trading_prices_response": + if(typeof res_obj.params[0]=="object") { + const server_live_trading_prices = res_obj.params[0]; + if(server_live_trading_prices.receiver_flo_address===localbitcoinplusplus.wallets.my_local_flo_address) { + console.log(server_live_trading_prices); + + const trading_prices_div = document.getElementById('trading_prices_div') + let t = ``; + + for(commodity of Object.values(server_live_trading_prices.live_trading_prices)) { + t += `
1 ${commodity.crypto_code}<=>${commodity.currency_code} ${commodity.rate}  
`; + } + + trading_prices_div.innerHTML = t; + } + } else { + showMessage('Failed to fetch live trading prices.') + } + break; + default: break; } @@ -29455,6 +29552,9 @@ const MY_LOCAL_FLO_PUBLIC_KEY = (localbitcoinplusplus.wallets.my_local_flo_public_key = idbData.myLocalFLOPublicKey); + // Get live trading prices + localbitcoinplusplus.actions.request_live_prices_from_server(); + // Send request to others to link your flo id to your local ip linkMyLocalIPToMyFloId();