feat(CPP): Saved addresses code review fixes
This commit is contained in:
parent
8c312960cb
commit
95b1333758
|
@ -11,8 +11,6 @@
|
|||
|
||||
namespace Accounts = Status::StatusGo::Accounts;
|
||||
|
||||
using json = nlohmann::json;
|
||||
|
||||
namespace Status::StatusGo::Wallet {
|
||||
|
||||
/// \brief Define a saved wallet address as returned by the corresponding API
|
||||
|
|
|
@ -49,9 +49,9 @@ SavedAddresses getSavedAddresses()
|
|||
return data.is_null() ? nlohmann::json() : data;
|
||||
}
|
||||
|
||||
void saveAddress(const Accounts::EOAddress &address, const QString &name)
|
||||
void saveAddress(const SavedAddress &address)
|
||||
{
|
||||
std::vector<json> params = { SavedAddress({ address, name }) };
|
||||
std::vector<json> params = { address };
|
||||
json inputJson = {
|
||||
{"jsonrpc", "2.0"},
|
||||
{"method", "wallet_addSavedAddress"},
|
||||
|
|
|
@ -33,7 +33,7 @@ SavedAddresses getSavedAddresses();
|
|||
/// \brief Add a new or update existing saved wallet address
|
||||
/// \see \c addSavedAddress
|
||||
/// \throws \c CallPrivateRpcError
|
||||
void saveAddress(const Accounts::EOAddress& address, const QString& name);
|
||||
void saveAddress(const SavedAddress &address);
|
||||
|
||||
/// \note status-go's GetEthereumChains@api.go which calls
|
||||
/// NetworkManager@client.go -> network.Manager.get()
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
#include <QtQmlIntegration>
|
||||
|
||||
namespace Status::Wallet
|
||||
{
|
||||
namespace Status::Wallet {
|
||||
|
||||
class SavedAddress : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -16,7 +16,8 @@ class SavedAddress : public QObject
|
|||
Q_PROPERTY(QString name READ name CONSTANT)
|
||||
|
||||
public:
|
||||
SavedAddress(const QString& address = QString(), const QString& name = QString(), QObject *parent = nullptr);
|
||||
SavedAddress(const QString &address = QString(), const QString &name = QString(),
|
||||
QObject *parent = nullptr);
|
||||
|
||||
const QString& address() const;
|
||||
const QString& name() const;
|
||||
|
|
|
@ -15,7 +15,7 @@ class SavedAddressesController : public QObject
|
|||
QML_ELEMENT
|
||||
QML_UNCREATABLE("C++ only")
|
||||
|
||||
Q_PROPERTY(QAbstractListModel* savedAddresses READ savedAddresses CONSTANT)
|
||||
Q_PROPERTY(QAbstractListModel *savedAddresses READ savedAddresses CONSTANT)
|
||||
|
||||
public:
|
||||
enum Error
|
||||
|
@ -26,11 +26,11 @@ public:
|
|||
};
|
||||
Q_ENUM(Error)
|
||||
|
||||
SavedAddressesController(QObject* parent = nullptr);
|
||||
explicit SavedAddressesController(QObject *parent = nullptr);
|
||||
|
||||
QAbstractListModel* savedAddresses() const;
|
||||
QAbstractListModel *savedAddresses() const;
|
||||
|
||||
Q_INVOKABLE void saveAddress(const QString& address, const QString& name);
|
||||
Q_INVOKABLE void saveAddress(const QString &address, const QString &name);
|
||||
Q_INVOKABLE void refresh();
|
||||
|
||||
signals:
|
||||
|
|
|
@ -37,8 +37,12 @@ public:
|
|||
/// \note caller (QML) takes ownership of the returned object
|
||||
/// \todo consider if complex approach of keeping ownership here and enforcing a unique instance
|
||||
/// or not reusing the account list and make it singleton are better options
|
||||
Q_INVOKABLE [[nodiscard]] Status::Wallet::NewWalletAccountController* createNewWalletAccountController() const;
|
||||
Q_INVOKABLE [[nodiscard]] Status::Wallet::SavedAddressesController* createSavedAddressesController() const;
|
||||
Q_INVOKABLE [[nodiscard]] Status::Wallet::NewWalletAccountController *createNewWalletAccountController() const;
|
||||
/// Separated controler for working with wallet saved addresses
|
||||
/// \note caller (QML) takes ownership of the returned object
|
||||
/// \todo consider if complex approach of keeping ownership here and enforcing a unique instance
|
||||
/// or not reusing the saved addresses list and make it singleton are better options
|
||||
Q_INVOKABLE [[nodiscard]] Status::Wallet::SavedAddressesController *createSavedAddressesController() const;
|
||||
|
||||
QAbstractListModel *accountsModel() const;
|
||||
|
||||
|
|
|
@ -23,6 +23,8 @@ Popup {
|
|||
|
||||
TextField {
|
||||
id: addressFiled
|
||||
maximumLength: 42
|
||||
validator: RegularExpressionValidator { regularExpression: /^0x[a-fA-F0-9]{40}$/ }
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
|
@ -38,7 +40,7 @@ Popup {
|
|||
|
||||
Button {
|
||||
text: qsTr("Confirm")
|
||||
enabled: addressFiled.text.length && nameFiled.text.length
|
||||
enabled: addressFiled.length === addressFiled.maximumLength && nameFiled.text.length
|
||||
onClicked: {
|
||||
savedAddressesController.saveAddress(addressFiled.text, nameFiled.text);
|
||||
addressFiled.clear();
|
||||
|
|
|
@ -23,12 +23,14 @@ Item {
|
|||
|
||||
Label {
|
||||
text: qsTr("Address")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.bold: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Name")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.bold: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ Item {
|
|||
|
||||
required property WalletAccount account
|
||||
required property AccountAssetsController assetController
|
||||
required property SavedAddressesController savedAddressesController
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
@ -79,7 +78,7 @@ Item {
|
|||
Loader {
|
||||
active: SwipeView.isCurrentItem
|
||||
sourceComponent: SavedAddressesView {
|
||||
savedAddressesController: root.savedAddressesController
|
||||
savedAddressesController: WalletController.createSavedAddressesController()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,7 +38,6 @@ PanelAndContentBase {
|
|||
|
||||
account: WalletController.currentAccount
|
||||
assetController: panel.currentAssetController
|
||||
savedAddressesController: WalletController.createSavedAddressesController()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
namespace Status::Wallet
|
||||
{
|
||||
|
||||
SavedAddress::SavedAddress(const QString& address, const QString& name, QObject *parent)
|
||||
SavedAddress::SavedAddress(const QString &address, const QString &name, QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_address(address)
|
||||
, m_name(name)
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
namespace Status::Wallet
|
||||
{
|
||||
|
||||
SavedAddressesController::SavedAddressesController(QObject* parent)
|
||||
SavedAddressesController::SavedAddressesController(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_savedAddresses(Helpers::makeSharedQObject<SavedAddressesModel>("savedAddress"))
|
||||
{
|
||||
}
|
||||
|
||||
QAbstractListModel* SavedAddressesController::savedAddresses() const
|
||||
QAbstractListModel *SavedAddressesController::savedAddresses() const
|
||||
{
|
||||
return m_savedAddresses.get();
|
||||
}
|
||||
|
@ -22,7 +22,8 @@ void SavedAddressesController::saveAddress(const QString &address, const QString
|
|||
{
|
||||
try
|
||||
{
|
||||
StatusGo::Wallet::saveAddress(StatusGo::Accounts::EOAddress(address), name);
|
||||
StatusGo::Wallet::saveAddress(StatusGo::Wallet::SavedAddress(
|
||||
{ StatusGo::Accounts::EOAddress(address), name }));
|
||||
}
|
||||
catch(const StatusGo::CallPrivateRpcError& rpcError)
|
||||
{
|
||||
|
@ -41,7 +42,7 @@ void SavedAddressesController::refresh()
|
|||
|
||||
try
|
||||
{
|
||||
for (const StatusGo::Wallet::SavedAddress& address: StatusGo::Wallet::getSavedAddresses())
|
||||
for (const auto& address: StatusGo::Wallet::getSavedAddresses())
|
||||
{
|
||||
savedAddresses.push_back(std::make_shared<SavedAddress>(address.address.get(), address.name));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue