diff --git a/index.html b/index.html index 7d13596..dbd148a 100644 --- a/index.html +++ b/index.html @@ -4,1434 +4,7 @@ Local Bitcoin++ - - +
@@ -1518,13 +91,6 @@

Don't have private key, get it from here.

- - - Untitled-1 - - - -
@@ -1900,7 +466,7 @@
-
Send crypto to this address:
+
Send crypto to address

Waiting for Server's response...

@@ -2011,7 +577,9 @@

No trade orders yet.

' my_trades_div.append(frag); // Function for cancelling trade orders @@ -31329,8 +29919,6 @@ RM_TRADE.cancelTrade(trade_opts[0], trade_opts[1], trade_opts[2]); e.target.closest('.order').remove(); showMessage('', `Order id: ${trade_opts[0]} cancelled.`) - if(container.children.length === 0) - container.innerHTML = '

No trade orders yet.

' } }) }) @@ -31386,11 +29974,11 @@ break; case "INR": - document.getElementById('user_cash_bal').innerText = 'INR '+helper_functions.truncateDecimals(value,2); + document.getElementById('user_cash_bal').innerText = '₹'+helper_functions.truncateDecimals(value,2); break; case "USD": - document.getElementById('user_cash_bal').innerText = 'USD ' +helper_functions.truncateDecimals(value,2); + document.getElementById('user_cash_bal').innerText = '$' +helper_functions.truncateDecimals(value,2); break; default: @@ -31492,8 +30080,6 @@ get_crypto_svg_selection_html('deposit_assets_type', deposit_crypto_div); function cnf_crypto_deposit() { - //let deposited = askConfirmation('Have you sent cryptos to Exchange? Continue only after you have sent required cryptos to exchange.'); - //if(deposited!==true) return; RM_RPC.send_rpc .call(this, "refresh_deposit_status_request", { receiver_flo_address: @@ -31503,34 +30089,22 @@ }) .then(refresh_deposit_status => doSend(refresh_deposit_status)); } - - let depositCryptoButtonClicked = 0, - depositCryptoButton = document.getElementById('depositCryptoButton'); depositCryptoButton.addEventListener('click', function() { depositCryptoButtonClicked++; - let parentPopup = depositCryptoButton.closest('.popup') - depositCryptoButton.firstElementChild.textContent = 'deposit', + let parentPopup = depositCryptoButton.closest('.popup'), sendCryptoHiddenSection = document.getElementById('send_crypto_hidden_section'), selectDepositCryptoSection = document.getElementById('select_deposit_crypto_section'), sendNatively = document.getElementById('send_natively'), sendersFloId = parentPopup.querySelector("input[name='senderFloId']").value, - sendersPrivKey = parentPopup.querySelector("input[name='senderPrivateKey']").value; + sendersPrivKey = parentPopup.querySelector("input[name='senderPrivateKey']").value, asset_type = document.querySelector("input[name='crypto']:checked").value; if(depositCryptoButtonClicked === 1) { - showElement(selectDepositCryptoSection, 'deposit-crypto-group'); - depositCryptoButton.classList.remove('hide-completely'); - hidePopup() - depositCryptoButtonClicked = 0; - sendCryptoHiddenSection.querySelectorAll('input').forEach(input => { - input.disabled = true; - }) - setTimeout(() => { - depositCryptoButton.firstElementChild.textContent = 'proceed' - }, 400) - //deposit crypto code from here - let parentPopup = this.closest('.popup') - tradeAmountSelect = document.getElementById('trade_amount_select'); + depositCryptoButton.classList.add('hide-completely'); + showElement('confirm_deposit_btn_section', 'deposit-crypto-group'); + //first time clicked + let parentPopup = this.closest('.popup'), + tradeAmountSelect = document.getElementById('trade_amount_select'); let tradeAmount = helper_functions.truncateDecimals(tradeAmountSelect.value); let fiatCurrency = "INR"; @@ -31563,41 +30137,151 @@ throw new Error(err_msg); } - sendNatively.onclick = () => { - sendCryptoHiddenSection.querySelectorAll('input').forEach(input => { - input.disabled = false; - }) - depositCryptoButton.firstElementChild.disabled = true; - depositCryptoButton.classList.remove('hide-completely'); - showElement(sendCryptoHiddenSection, 'deposit-crypto-group'); - } - } else if(depositCryptoButtonClicked === 2) { + showElement(selectDepositCryptoSection, 'deposit-crypto-group'); + depositCryptoButton.classList.remove('hide-completely'); + depositCryptoButtonClicked = 0; + sendCryptoHiddenSection.querySelectorAll('input').forEach(input => { + input.disabled = true; + }) + setTimeout(() => { + depositCryptoButton.firstElementChild.textContent = 'proceed' + }, 400) + //deposit crypto code from here const receiver_address = document.getElementById('server_deposit_crypto_addr').innerText; if(typeof receiver_address!=="string" || receiver_address.length<1) { notify('No receiver address found.') return false; } - depositCryptoButton.classList.add('hide-completely'); - showElement('confirm_deposit_btn_section', 'deposit-crypto-group'); - //first time clicked - RM_TRADE.sendTransaction( + + RM_TRADE.sendMultipleInputsTransaction( asset_type, - sendersFloId, - sendersPrivKey, + [sendersPrivKey], receiver_address, + 0.01, + sendersFloId, function(crypto_sent_resp) { - console.log(crypto_sent_resp); - cnf_crypto_deposit(); + (async function validateDepositedCrypto() { + if (typeof crypto_sent_resp == "object") { + let msg = ""; + if ( + typeof crypto_sent_resp.txid == "string" && + crypto_sent_resp.txid.length > 0 + ) { + resp_obj = JSON.parse(crypto_sent_resp.txid); + resp_txid = resp_obj.txid.result || resp_obj.txid; + msg = `Transaction Id for your deposited crypto asset: ${resp_txid}.`; + + let txdata = ''; + + if(asset_type==='BTC') { + txdata = await helper_functions + .ajaxGet(`${localbitcoinplusplus.server.btc_mainnet}/api/tx/${resp_txid}`); + } else if(asset_type==='BTC_TEST') { + txdata = await helper_functions + .ajaxGet(`${localbitcoinplusplus.server.btc_testnet}/api/tx/${resp_txid}`); + } else if(asset_type==='FLO') { + txdata = await helper_functions + .ajaxGet(`${localbitcoinplusplus.server.flo_mainnet}/api/tx/${resp_txid}`); + } else if(asset_type==='FLO_TEST') { + txdata = await helper_functions + .ajaxGet(`${localbitcoinplusplus.server.flo_testnet}/api/tx/${resp_txid}`); + } + notify(`Waiting for deposit txid ${resp_txid} for at least 3 confirmations. + Please do not close or refresh the window until the process completes.`); + + await delay(60000); + if(typeof txdata.txid !=="string" + || typeof txdata.confirmations !== "number" + || txdata.confirmations<3) { + notify(`Waiting for deposit txid ${resp_txid} for at least 3 confirmations. + Please do not close or refresh the window until the process completes.`); + validateDepositedCrypto(); + } else { + cnf_crypto_deposit(); + notify(`Deposit txid ${resp_txid} confirmed.`) + } + + } + } + + })() + } ); } + + sendNatively.onclick = () => { + sendCryptoHiddenSection.querySelectorAll('input').forEach(input => { + input.disabled = false; + }) + depositCryptoButton.firstElementChild.disabled = true; + depositCryptoButton.classList.remove('hide-completely'); + showElement(sendCryptoHiddenSection, 'deposit-crypto-group'); + } }); // NOTIFY DEPOSITED CRYPTO CONFIRMATION const refresh_crypto_status_btn = document.getElementById("cnf_crypto_deposit"); refresh_crypto_status_btn.addEventListener("click", cnf_crypto_deposit); }; + + const withdrawCrypto = function(userFLOaddress="") { + const RM_TRADE = new localbitcoinplusplus.trade(); + const RM_RPC = new localbitcoinplusplus.rpc(); + + let withdraw_crypto_div = document.getElementById("withdraw_crypto_div"); + let withdrawCryptoButton = document.getElementById("withdrawCryptoButton"); + let err_msg = ""; + + get_crypto_svg_selection_html('withdraw_assets_type', withdraw_crypto_div); + + withdrawCryptoButton.addEventListener("click", function(params) { + let parentPopup = this.closest('.popup'); + let asset_type = document.querySelector("input[name='crypto']:checked").value; + let receivinAddress = document.getElementById('withdraw_recving_addr').value + let withdraw_amount_box= document.getElementById('crypto_withdraw_amount') + if (receivinAddress == null || receivinAddress.trim() == "") { + err_msg =`You must specify a valid ${asset_type} address to continue.`; + notify(err_msg); + throw new Error(err_msg); + } + + let withdraw_amount = helper_functions.truncateDecimals(withdraw_amount_box.value); + let fiatCurrency = "INR"; + + if ( + typeof userFLOaddress == undefined || + userFLOaddress.trim().length < 1 + ) { + err_msg = "Invalid or empty user FLO address."; + notify(err_msg); + throw new Error(err_msg); + } + + if ( + typeof localbitcoinplusplus.master_configurations.tradableAsset1 !== + "undefined" && + localbitcoinplusplus.master_configurations.tradableAsset1 + .includes(asset_type) + ) { + + RM_TRADE.withdrawAsset( + asset_type, + withdraw_amount, + receivinAddress, + userFLOaddress, + fiatCurrency + ); + } else { + err_msg = `Error: Withdraw of Crypto failed. Invalid asset type ${asset_type} provided.`; + notify(err_msg); + throw new Error(err_msg); + } + }); + + } +