diff --git a/main.qml b/main.qml index 0345f5d29f..c2b3586b28 100644 --- a/main.qml +++ b/main.qml @@ -539,7 +539,6 @@ ApplicationWindow { // opening with password but password doesn't match console.error("Error opening wallet with password: ", wallet.errorString); passwordDialog.showError(qsTr("Couldn't open wallet: ") + wallet.errorString); - console.log("closing wallet async : " + wallet.address) closeWallet(); return; } @@ -1069,10 +1068,8 @@ ApplicationWindow { var result = currentWallet.getReserveProof(false, currentWallet.currentSubaddressAccount, amount, message) txProofComputed(null, result) } else { - console.log("Getting payment proof: ") - console.log("\ttxid: ", txid, - ", address: ", address, - ", message: ", message); + // Don't log txid/address/message; payment-proof signatures are + // sensitive and must not end up in the logs. function spendProofFallback(txid, result){ if (!result || result.indexOf("error|") === 0) { currentWallet.getSpendProofAsync(txid, message, txProofComputed); @@ -1101,11 +1098,8 @@ ApplicationWindow { // called on "checkProof" function handleCheckProof(txid, address, message, signature) { - console.log("Checking payment proof: ") - console.log("\ttxid: ", txid, - ", address: ", address, - ", message: ", message, - ", signature: ", signature); + // Don't log txid/address/message/signature; payment-proof signatures + // are sensitive and must not end up in the logs. var result; var isReserveProof = signature.indexOf("ReserveProofV") === 0; diff --git a/pages/AddressBook.qml b/pages/AddressBook.qml index 65e315e269..6bdd69b5c3 100644 --- a/pages/AddressBook.qml +++ b/pages/AddressBook.qml @@ -151,7 +151,6 @@ Rectangle { color: itemMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent" function doSend() { - console.log("Sending to: ", address +" "+ paymentId); middlePanel.sendTo(address, paymentId); leftPanel.selectItem(middlePanel.state) } diff --git a/pages/History.qml b/pages/History.qml index 6871405d4c..327a814236 100644 --- a/pages/History.qml +++ b/pages/History.qml @@ -1719,7 +1719,6 @@ Rectangle { console.log('getProof: Error checking TxId and/or address'); } - console.log("getProof: Generate clicked: txid " + hash + ", address " + address); middlePanel.getProofClicked(hash, address, '', null); informationPopup.title = qsTr("Payment proof") + translationManager.emptyString; informationPopup.text = qsTr("Generating payment proof") + "..." + translationManager.emptyString; @@ -1738,17 +1737,21 @@ Rectangle { trMiddle = '', trEnd = ""; + // destinations may intentionally contain "
" separators inserted by the wallet backend; + // escape everything first, then restore the literal "
" so line breaks are preserved. + destinations = Utils.htmlEscape(destinations).replace(/<br>/g, '
'); + return '' - + (tx_id ? trStart + qsTr("Tx ID:") + trMiddle + tx_id + trEnd : "") - + (dateTime ? trStart + qsTr("Date") + ":" + trMiddle + dateTime + trEnd : "") - + (amount ? trStart + qsTr("Amount") + ":" + trMiddle + amount + trEnd : "") - + (address ? trStart + qsTr("Address:") + trMiddle + address + trEnd : "") - + (paymentId ? trStart + qsTr("Payment ID:") + trMiddle + paymentId + trEnd : "") - + (integratedAddress ? trStart + qsTr("Integrated address") + ":" + trMiddle + integratedAddress + trEnd : "") - + (tx_key ? trStart + qsTr("Tx key:") + trMiddle + tx_key + trEnd : "") + + (tx_id ? trStart + qsTr("Tx ID:") + trMiddle + Utils.htmlEscape(tx_id) + trEnd : "") + + (dateTime ? trStart + qsTr("Date") + ":" + trMiddle + Utils.htmlEscape(dateTime) + trEnd : "") + + (amount ? trStart + qsTr("Amount") + ":" + trMiddle + Utils.htmlEscape(amount) + trEnd : "") + + (address ? trStart + qsTr("Address:") + trMiddle + Utils.htmlEscape(address) + trEnd : "") + + (paymentId ? trStart + qsTr("Payment ID:") + trMiddle + Utils.htmlEscape(paymentId) + trEnd : "") + + (integratedAddress ? trStart + qsTr("Integrated address") + ":" + trMiddle + Utils.htmlEscape(integratedAddress) + trEnd : "") + + (tx_key ? trStart + qsTr("Tx key:") + trMiddle + Utils.htmlEscape(tx_key) + trEnd : "") + (tx_note ? trStart + qsTr("Tx note:") + trMiddle + Utils.htmlEscape(tx_note) + trEnd : "") + (destinations ? trStart + qsTr("Destinations:") + trMiddle + destinations + trEnd : "") - + (rings ? trStart + qsTr("Rings:") + trMiddle + rings + trEnd : "") + + (rings ? trStart + qsTr("Rings:") + trMiddle + Utils.htmlEscape(rings) + trEnd : "") + "
" + translationManager.emptyString; } diff --git a/pages/TxKey.qml b/pages/TxKey.qml index e2808e2aaf..29f30bb47e 100644 --- a/pages/TxKey.qml +++ b/pages/TxKey.qml @@ -148,7 +148,6 @@ Rectangle { text: qsTr("Generate") + translationManager.emptyString enabled: TxUtils.checkTxID(getProofTxIdLine.text) && (getProofAddressLine.text.length == 0 || TxUtils.checkAddress(getProofAddressLine.text, appWindow.persistentSettings.nettype)) || getReserveProofAmtLine.text.length != 0 && walletManager.amountFromString(getReserveProofAmtLine.text) < appWindow.getUnlockedBalance() && walletManager.amountFromString(getReserveProofAmtLine.text) > 0 onClicked: { - console.log("getProof: Generate clicked: txid " + getProofTxIdLine.text + ", address " + getProofAddressLine.text + ", message: " + getProofMessageLine.text); middlePanel.getProofClicked(getProofTxIdLine.text, getProofAddressLine.text, getProofMessageLine.text, getReserveProofAmtLine.text) } } @@ -233,7 +232,6 @@ Rectangle { text: qsTr("Check") + translationManager.emptyString enabled: (TxUtils.checkTxID(checkProofTxIdLine.text) && TxUtils.checkSignature(checkProofSignatureLine.text) && ((checkProofSignatureLine.text.indexOf("SpendProofV") === 0 && checkProofAddressLine.text.length == 0) || (checkProofSignatureLine.text.indexOf("SpendProofV") !== 0 && TxUtils.checkAddress(checkProofAddressLine.text, appWindow.persistentSettings.nettype)))) || (TxUtils.checkSignature(checkProofSignatureLine.text) && checkProofSignatureLine.text.indexOf("ReserveProofV") === 0 && TxUtils.checkAddress(checkProofAddressLine.text, appWindow.persistentSettings.nettype)) onClicked: { - console.log("checkProof: Check clicked: txid " + checkProofTxIdLine.text + ", address " + checkProofAddressLine.text + ", message " + checkProofMessageLine.text + ", signature " + checkProofSignatureLine.text); middlePanel.checkProofClicked(checkProofTxIdLine.text, checkProofAddressLine.text, checkProofMessageLine.text, checkProofSignatureLine.text) } }