From 63010c4ca39ed6a12c24ab9c2f8b18e77b7abde8 Mon Sep 17 00:00:00 2001 From: Abhishek Sinha Date: Tue, 22 Jan 2019 20:27:28 +0530 Subject: [PATCH] fixed cash_balances currency issue --- supernode/index.html | 70 +++++++++++++++++++++++++++++++++----------- 1 file changed, 53 insertions(+), 17 deletions(-) diff --git a/supernode/index.html b/supernode/index.html index e9e9560..c25feba 100644 --- a/supernode/index.html +++ b/supernode/index.html @@ -50,6 +50,7 @@
Change preffered fiat currency
+
@@ -10078,7 +10079,8 @@ AND RECEIVER HAS CONFIRMED WITHDRAW*/ // Check how much Cash user can withdraw - readDB("cash_balances", params.trader_flo_address).then(function ( + const trader_cash_id = `${params.trader_flo_address}_${params.currency}`; + readDB("cash_balances", trader_cash_id).then(function ( cash_balances_res) { if (typeof cash_balances_res == "object" && typeof cash_balances_res .trader_flo_address == "string" && @@ -10420,7 +10422,8 @@ } //Check buyer's fiat balance - readDB("cash_balances", params.trader_flo_address).then(function (res) { + const trader_cash_id = `${params.trader_flo_address}_${params.currency}`; + readDB("cash_balances", trader_cash_id).then(function (res) { if (typeof res !== "undefined" && typeof res.cash_balance == "number" && !isNaN(res.cash_balance)) { let buyer_cash_balance = parseFloat(res.cash_balance); let buy_price_btc = parseFloat(params.buy_price); @@ -10710,10 +10713,16 @@ readAllDB("buyOrders").then(function (buyOrdersList) { if (buyOrdersList.length > 0) { buyOrdersList = buyOrdersList.filter(buyOrder=>buyOrder.currency==trading_currency); + let buy = []; + let sell = []; + let buysell = []; + let buysellArray = []; + let buyPipe = []; + let sellPipe = []; localbitcoinplusplus.master_configurations.validTradingAmount.map( li => { buy[li] = buyOrdersList.filter(buyOrder=>buyOrder.buy_price==li); - sell[li] = sellOrdersList.filter(sellOrder=>sellOrder.buy_price==li) + sell[li] = sellOrdersList.filter(sellOrder=>sellOrder.buy_price==li); buysell[li] = {"buy":buy[li], "sell":sell[li]}; buysellArray[li] = Object.entries(buysell[li]).map(([key, value]) => ({key,value})); buyPipe = buysellArray[li][0]; @@ -10752,7 +10761,8 @@ && buyPipeObj.currency == sellPipeObj.currency ) { // Check buyer's cash balance - readDB("cash_balances", buyPipeObj.trader_flo_address).then(function (buyPipeCashRes) { + const buyer_cash_id = `${buyPipeObj.trader_flo_address}_${buyPipeObj.currency}`; + readDB("cash_balances", buyer_cash_id).then(function (buyPipeCashRes) { if (typeof buyPipeCashRes == "object" && typeof buyPipeCashRes.cash_balance == "number") { let buyer_cash_balance = parseFloat(buyPipeCashRes.cash_balance); @@ -10801,18 +10811,21 @@ } } - // Descrease buyer cash balance + // Decrease buyer cash balance let buyer_new_cash_balance = buyer_cash_balance - buy_price_btc; let buyerCashResponseObject = { + id: buyer_cash_id, + currency: buyPipeObj.currency, trader_flo_address: buyPipeObj.trader_flo_address, cash_balance: buyer_new_cash_balance } // Increase seller's Cash balance let sellerCashResponseObject; - readDB("cash_balances", sellPipeObj.trader_flo_address).then( + const seller_cash_id = `${sellPipeObj.trader_flo_address}_${buyPipeObj.currency}`; + readDB("cash_balances", seller_cash_id).then( function (sellPipeCashRes) { if (typeof sellPipeCashRes == "object" && typeof sellPipeCashRes @@ -10822,13 +10835,14 @@ sellPipeCashRes.cash_balance = parseFloat(sellPipeCashRes.cash_balance) + sell_price_in_inr; - sellerCashResponseObject = - sellPipeCashRes; + sellerCashResponseObject = sellPipeCashRes; } else { // User got cash for the first time + let seller_cash_id = `${sellPipeObj.trader_flo_address}_${buyPipeObj.currency}`; sellerCashResponseObject = { - trader_flo_address: sellPipeObj - .trader_flo_address, + id: seller_cash_id, + trader_flo_address: sellPipeObj.trader_flo_address, + currency: buyPipeObj.currency, cash_balance: sell_price_in_inr } } @@ -10863,8 +10877,7 @@ .id); } catch (error) { callback(false); - throw new Error( - error); + throw new Error(error); } // Update balances @@ -11557,11 +11570,12 @@ doSend(update_withdraw_cash_obj); } else if (withdraw_data.trader_flo_address==user_id) { // Withdrawer confirmed the payment - readDBbyIndex('cash_balances', 'trader_flo_address', withdraw_data.depositor_flo_id).then(function(depositor_cash_data_res) { + let depositor_cash_id = `${withdraw_data.depositor_flo_id}_${withdraw_data.currency}`; + readDB('cash_balances', depositor_cash_id).then(function(depositor_cash_data_res) { if (typeof depositor_cash_data_res=="object") { depositor_cash_data_res.map(depositor_cash_data=>{ if (depositor_cash_data.length==0) { - depositor_cash_data = {cash_balance:0, trader_flo_address:withdraw_data.depositor_flo_id, currency:localbitcoinplusplus.trade.user_preffered_currency}; + depositor_cash_data = {id: depositor_cash_id, cash_balance:0, trader_flo_address:withdraw_data.depositor_flo_id, currency:withdraw_data.currency}; addDB('cash_balances', depositor_cash_data); } depositor_cash_data.cash_balance += parseFloat(withdraw_data.withdraw_amount); @@ -11794,11 +11808,13 @@ } const btc_balances = { + id: null, trader_flo_address: null, btc_balance: null } const cash_balances = { + id: null, trader_flo_address: null, cash_balance: null, currency: null @@ -11905,12 +11921,21 @@ } if (!db.objectStoreNames.contains('btc_balances')) { var objectStore = db.createObjectStore("btc_balances", { - keyPath: 'trader_flo_address' + keyPath: 'id', autoIncrement: false + }); + objectStore.createIndex('trader_flo_address', 'trader_flo_address', { + unique: false + }); + objectStore.createIndex('crypto_currency', 'crypto_currency', { + unique: false }); } if (!db.objectStoreNames.contains('cash_balances')) { var objectStore = db.createObjectStore("cash_balances", { - keyPath: 'trader_flo_address' + keyPath: 'id', autoIncrement: false + }); + objectStore.createIndex('trader_flo_address', 'trader_flo_address', { + unique: false }); objectStore.createIndex('currency', 'currency', { unique: false @@ -12129,7 +12154,7 @@