diff --git a/scripts/fn_pay.js b/scripts/fn_pay.js index b351be3..f446de3 100644 --- a/scripts/fn_pay.js +++ b/scripts/fn_pay.js @@ -97,8 +97,8 @@ User.findCashier = function() { if (cashierStatus[c] && cashierUPI[c]) online.push(c); if (!online.length) { - if (floGlobals.settings.defaultCashier && floGlobals.settings.defaultCashier in cashierUPI) - return floGlobals.settings.defaultCashier; + if (floGlobals.settings.default_cashier && floGlobals.settings.default_cashier in cashierUPI) + return floGlobals.settings.default_cashier; else return null; } else { @@ -138,9 +138,9 @@ User.tokenToCash = function(cashier, amount, blkTxID, upiID) { }) } -User.sendToken = function(receiverID, amount, remark = '') { +User.sendToken = function(receiverID, amount, remark = '', options = {}) { return new Promise((resolve, reject) => { - floTokenAPI.sendToken(myPrivKey, amount, receiverID, remark) + floTokenAPI.sendToken(myPrivKey, amount, receiverID, remark, options) .then(result => resolve(result)) .catch(error => reject(error)) }) diff --git a/scripts/fn_ui.js b/scripts/fn_ui.js index 04ce7d7..c1617ce 100644 --- a/scripts/fn_ui.js +++ b/scripts/fn_ui.js @@ -371,15 +371,23 @@ function completeCashToTokenRequest(request) { function confirmTopUp() { const { message: { amount }, vectorClock, senderID } = floGlobals.cashierProcessingRequest; - User.sendToken(senderID, amount, 'for cash-to-token').then(txid => { - console.warn(`${amount} cash-to-token for ${senderID}`, txid); - Cashier.finishRequest(floGlobals.cashierProcessingRequest, txid).then(result => { - console.log(result); - console.info('Completed cash-to-token request:', vectorClock); - notify("Completed request", 'success'); - hidePopup() + floBlockchainAPI.getBalance(senderID).then(async user_balance => { + let sendAmt_FLO = floGlobals.sendAmt; + if(user_balance < floGlobals.settings.user_flo_threshold){ + let cur_rate = await floExchangeAPI.getRates("FLO"); + sendAmt_FLO = floGlobals.settings.send_user_flo; + amount -= cur_rate * sendAmt_FLO; + } + User.sendToken(senderID, amount, 'for cash-to-token', {sendAmt: sendAmt_FLO}).then(txid => { + console.warn(`${amount} cash-to-token for ${senderID}`, txid); + Cashier.finishRequest(floGlobals.cashierProcessingRequest, txid).then(result => { + console.log(result); + console.info('Completed cash-to-token request:', vectorClock); + notify("Completed request", 'success'); + hidePopup() + }).catch(error => console.error(error)) }).catch(error => console.error(error)) - }).catch(error => console.error(error)) + }).catch(error => reject(error)) } getRef('top_up__reason_selector').addEventListener('change', e => {