Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

Commit

Permalink
fix swap deref error and address format checking
Browse files Browse the repository at this point in the history
  • Loading branch information
tubedev2000 committed Feb 23, 2021
1 parent fad594f commit 82e7329
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 2 deletions.
1 change: 1 addition & 0 deletions MiddlePanel.qml
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ Rectangle {

function updateStatus(){
transferView.updateStatus();
transferWView.updateStatus();
}

// send from AddressBook
Expand Down
13 changes: 13 additions & 0 deletions components/InputMulti.qml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ TextArea {
property bool mouseSelection: true
property bool error: false
property bool addressValidation: false
property bool ethAddressValidation: false

id: textArea
font.family: MoneroComponents.Style.fontRegular.name
Expand Down Expand Up @@ -67,6 +68,18 @@ TextArea {
else error = false;
TextArea.cursorPosition = textArea.text.length;
}
if(ethAddressValidation){
// js replacement for `RegExpValidator { regExp: /[0-9A-Fa-f]{95}/g }`
if (textArea.text.startsWith("monero:")) {
error = false;
return;
}
textArea.text = textArea.text.replace(/[^a-z0-9.@\-]/gi,'');
var address_ok = TxUtils.checkEthAddress(textArea.text, appWindow.persistentSettings.nettype) || TxUtils.isValidOpenAliasAddress(textArea.text);
if(!address_ok) error = true;
else error = false;
TextArea.cursorPosition = textArea.text.length;
}
}

MoneroComponents.ContextMenu {
Expand Down
2 changes: 2 additions & 0 deletions components/LineEditMulti.qml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ ColumnLayout {
property bool showingHeader: labelText != "" || copyButton || pasteButton
property var wrapMode: Text.NoWrap
property alias addressValidation: input.addressValidation
property alias ethAddressValidation: input.ethAddressValidation
property string backgroundColor: "" // mock

property alias inlineButton: inlineButtonId
Expand Down Expand Up @@ -159,6 +160,7 @@ ColumnLayout {
id: input
readOnly: false
addressValidation: false
ethAddressValidation: false
Layout.fillWidth: true

leftPadding: item.inputPaddingLeft
Expand Down
3 changes: 3 additions & 0 deletions main.qml
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ ApplicationWindow {

// Reload transfer page with translations enabled
middlePanel.transferView.onPageCompleted();
middlePanel.transferWView.onPageCompleted();

// If currentWallet exists, we're just switching daemon - close/reopen wallet
if (typeof currentWallet !== "undefined" && currentWallet !== null) {
Expand Down Expand Up @@ -1030,6 +1031,7 @@ ApplicationWindow {

// Clear tx fields
middlePanel.transferView.clearFields()
middlePanel.transferWView.clearFields()

}
informationPopup.onCloseCallback = null
Expand Down Expand Up @@ -1172,6 +1174,7 @@ ApplicationWindow {
// reset fields
middlePanel.addressBookView.clearFields();
middlePanel.transferView.clearFields();
middlePanel.transferWView.clearFields();
middlePanel.receiveView.clearFields();
// disable timers
userInActivityTimer.running = false;
Expand Down
2 changes: 1 addition & 1 deletion monero
2 changes: 1 addition & 1 deletion pages/TransferW.qml
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ Rectangle {
return "0x..";
}
wrapMode: Text.WrapAnywhere
addressValidation: true
ethAddressValidation: true
onTextChanged: {
const parsed = walletManager.parse_uri_to_object(text);
if (!parsed.error) {
Expand Down
52 changes: 52 additions & 0 deletions src/libwalletqt/TransferW.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// Copyright (c) 2014-2019, The Monero Project
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this list of
// conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other
// materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its contributors may be
// used to endorse or promote products derived from this software without specific
// prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#ifndef TRANSFERW_H
#define TRANSFERW_H

#include <wallet/api/wallet2_api.h>
#include <QObject>

class TransferW : public QObject
{
Q_OBJECT
Q_PROPERTY(quint64 amount READ amount)
Q_PROPERTY(QString address READ address)
private:
explicit TransferW(uint64_t _amount, const QString &_address, QObject *parent = 0): QObject(parent), m_amount(_amount), m_address(_address) {};
private:
friend class TransactionInfo;
quint64 m_amount;
QString m_address;
public:
quint64 amount() const { return m_amount; }
QString address() const { return m_address; }

};

#endif // TRANSACTIONINFO_H

0 comments on commit 82e7329

Please sign in to comment.