added function to fetch prices and balance
This commit is contained in:
parent
d51afa90e6
commit
b3c1d3106f
127
index.html
127
index.html
@ -955,16 +955,13 @@
|
||||
|
||||
document.getElementById('refresh_market_price').addEventListener('click', () => {
|
||||
btnLoading('refresh_market_price', 'start')
|
||||
setTimeout(() => {
|
||||
updateMarketPrice(800000, 1.30)
|
||||
}, 1000)
|
||||
localbitcoinplusplus.actions.request_live_prices_from_server();
|
||||
})
|
||||
|
||||
document.getElementById('refresh_bal').addEventListener('click', (e) => {
|
||||
btnLoading('refresh_bal', 'start')
|
||||
setTimeout(() => {
|
||||
updateBalance(40000, 50, 600)
|
||||
}, 1000)
|
||||
const RM_WALLET = new localbitcoinplusplus.wallets;
|
||||
RM_WALLET.get_current_user_balance();
|
||||
})
|
||||
|
||||
let notificationsContainer = document.getElementById('notification_container');
|
||||
@ -977,18 +974,13 @@
|
||||
})
|
||||
|
||||
//call these functions inside your already created functions and provide new value as parameters
|
||||
function updateMarketPrice(btcPrice, floPrice){
|
||||
function updateMarketPrice(crypto_code, price) {
|
||||
btnLoading('refresh_market_price', 'stop')
|
||||
document.getElementById('btc_market_price').textContent = '₹'+ btcPrice;
|
||||
document.getElementById('flo_market_price').textContent = '₹'+ floPrice;
|
||||
}
|
||||
|
||||
function updateBalance(inrBal, btcBal, floBal){
|
||||
btnLoading('refresh_bal', 'stop')
|
||||
document.getElementById('user_cash_bal').textContent = '₹'+inrBal;
|
||||
document.getElementById('user_btc_bal').textContent = btcBal;
|
||||
document.getElementById('user_flo_bal').textContent = floBal;
|
||||
notify('balance updated')
|
||||
if(crypto_code=="BTC") {
|
||||
document.getElementById('btc_market_price').textContent = '₹'+ price;
|
||||
} else if(crypto_code=="FLO") {
|
||||
document.getElementById('flo_market_price').textContent = '₹'+ price;
|
||||
}
|
||||
}
|
||||
|
||||
function sendCrypto(btn){
|
||||
@ -15265,7 +15257,7 @@
|
||||
"btc_address",
|
||||
deposit_dl.btc_address
|
||||
);
|
||||
if(typeof res!=="object" || typeof res[0].id!=="string") {
|
||||
if(typeof res[0]!=="object" || typeof res[0].id!=="string") {
|
||||
removeinDB("deposit", deposit_dl.id);
|
||||
continue;
|
||||
}
|
||||
@ -15892,6 +15884,20 @@
|
||||
throw new Error(error)
|
||||
}
|
||||
},
|
||||
get_current_user_balance: function(user=localbitcoinplusplus.wallets.my_local_flo_address) {
|
||||
try {
|
||||
const RM_RPC = new localbitcoinplusplus.rpc();
|
||||
RM_RPC.send_rpc
|
||||
.call(this, "fetch_user_balance", {
|
||||
trader_flo_address: user,
|
||||
job: "FETCH_USER_BALANCE",
|
||||
receiver_flo_address: localbitcoinplusplus.MY_SUPERNODE_FLO_ADDRESS,
|
||||
})
|
||||
.then(sync_request => doSend(sync_request));
|
||||
} catch (error) {
|
||||
notify(`Failed to get your balance from the server. Please try again.`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -16277,6 +16283,32 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
if(method=="fetch_user_balance") {
|
||||
RM_RPC.filter_legit_requests(params.trader_flo_address,
|
||||
async function(is_valid_request) {
|
||||
if (
|
||||
is_valid_request === true &&
|
||||
params.trader_flo_address.length > 0
|
||||
) {
|
||||
let bal_promises = [];
|
||||
const crypto_bal = await readDBbyIndex('crypto_balances', 'trader_flo_address', params.trader_flo_address)
|
||||
const cash_bal = await readDBbyIndex('cash_balances', 'trader_flo_address', params.trader_flo_address)
|
||||
|
||||
const response = {
|
||||
crypto_balances: crypto_bal,
|
||||
cash_balances: cash_bal,
|
||||
trader_flo_address: params.trader_flo_address,
|
||||
receiver_flo_address: params.trader_flo_address
|
||||
}
|
||||
RM_RPC.send_rpc
|
||||
.call(this, "fetch_user_balance_response", response)
|
||||
.then(server_response =>
|
||||
doSend(server_response)
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
RM_RPC.filter_legit_requests(
|
||||
params.trader_flo_address,
|
||||
async function(is_valid_request) {
|
||||
@ -24004,18 +24036,58 @@
|
||||
if(server_live_trading_prices.receiver_flo_address===localbitcoinplusplus.wallets.my_local_flo_address) {
|
||||
console.log(server_live_trading_prices);
|
||||
for(commodity of Object.values(server_live_trading_prices.live_trading_prices)) {
|
||||
if(commodity.crypto_code==="BTC") {
|
||||
document.getElementById('btc_market_price').innerText = `${commodity.currency_code} ${commodity.rate}`;
|
||||
} else if(commodity.crypto_code==="FLO") {
|
||||
document.getElementById('flo_market_price').innerText = `${commodity.currency_code} ${commodity.rate}`;
|
||||
if(commodity.crypto_code==="BTC"&&commodity.currency_code=="INR") {
|
||||
updateMarketPrice(commodity.crypto_code, commodity.rate);
|
||||
} else if(commodity.crypto_code==="FLO"&&commodity.currency_code=="INR") {
|
||||
updateMarketPrice(commodity.crypto_code, commodity.rate);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
showMessage('Failed to fetch live trading prices.')
|
||||
notify('Failed to fetch current crypto prices.');
|
||||
}
|
||||
break;
|
||||
|
||||
case "fetch_user_balance":
|
||||
response_from_sever = RM_RPC.receive_rpc_response.call(
|
||||
this,
|
||||
JSON.stringify(res_obj)
|
||||
);
|
||||
break;
|
||||
|
||||
case "fetch_user_balance_response":
|
||||
if(typeof res_obj.params[0]=="object") {
|
||||
const server_balance_resp = res_obj.params[0];
|
||||
if(server_balance_resp.receiver_flo_address
|
||||
===localbitcoinplusplus.wallets.my_local_flo_address) {
|
||||
let usr_bal_promises = []
|
||||
for (const cryptobal of server_balance_resp.crypto_balances) {
|
||||
usr_bal_promises.push(updateinDB(
|
||||
'crypto_balances',
|
||||
cryptobal,
|
||||
cryptobal.id,
|
||||
false,
|
||||
false
|
||||
))
|
||||
}
|
||||
for (const cashbal of server_balance_resp.cash_balances) {
|
||||
usr_bal_promises.push(updateinDB(
|
||||
'crypto_balances',
|
||||
cashbal,
|
||||
cashbal.id,
|
||||
false,
|
||||
false
|
||||
))
|
||||
}
|
||||
Promise.all(usr_bal_promises)
|
||||
.then(()=>{
|
||||
displayBalances(server_balance_resp.receiver_flo_address);
|
||||
btnLoading('refresh_bal', 'stop')
|
||||
});
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -28661,6 +28733,13 @@
|
||||
} else {
|
||||
if(!exception_datastores.includes(tablename)) {
|
||||
if(verifyDBData(originalObj)===true) {
|
||||
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
|
||||
&& localbitcoinplusplus.master_configurations.supernodesPubKeys
|
||||
.includes(localbitcoinplusplus.wallets.my_local_flo_public_key)) {
|
||||
request = db.transaction([tablename], "readwrite")
|
||||
.objectStore(tablename).put(originalObj);
|
||||
return;
|
||||
}
|
||||
Obj = signDBData(Obj);
|
||||
} else {
|
||||
if(typeof localbitcoinplusplus.wallets.my_local_flo_public_key=="string"
|
||||
@ -29270,8 +29349,6 @@
|
||||
// leave the vector clock field unchanged
|
||||
} else {
|
||||
Obj.vectorClock += 1;
|
||||
// If vectorClock is increased, also update timestamp
|
||||
//Obj.timestamp = +new Date();
|
||||
}
|
||||
if (typeof Obj.timestamp !== "number") {
|
||||
Obj.timestamp = +new Date();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user