231 lines
8.4 KiB
QML
231 lines
8.4 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Dialogs 1.3
|
|
|
|
import utils 1.0
|
|
|
|
QtObject {
|
|
id: root
|
|
|
|
property CollectiblesStore collectiblesStore: CollectiblesStore { }
|
|
// Not Refactored Yet
|
|
// property var walletModelInst: walletModel
|
|
// Not Refactored Yet
|
|
// property var walletModelV2Inst: walletV2Model
|
|
// Not Refactored Yet
|
|
// property var profileModelInst: profileModel
|
|
// Not Refactored Yet
|
|
// property var chatsModelInst: chatsModel
|
|
|
|
// This should be exposed to the UI via "walletModule", WalletModule should use
|
|
// Accounts Service which keeps the info about that (isFirstTimeAccountLogin).
|
|
// Then in the View of WalletModule we may have either QtProperty or
|
|
// Q_INVOKABLE function (proc marked as slot) depends on logic/need.
|
|
// The only need for onboardingModel here is actually to check if an account
|
|
// has been just created or an old one.
|
|
|
|
// property var onboardingModelInst: onboardingModel
|
|
property int selectedAccount: 0
|
|
|
|
function getSavedAddressErrorText(savedAddresses, error) {
|
|
switch (error) {
|
|
case savedAddresses.Error.CreateSavedAddressError:
|
|
return qsTr("Error creating new saved address, please try again later.");
|
|
case savedAddresses.Error.DeleteSavedAddressError:
|
|
return qsTr("Error deleting saved address, please try again later.");
|
|
case savedAddresses.Error.ReadSavedAddressesError:
|
|
return qsTr("Error getting saved addresses, please try again later.");
|
|
case savedAddresses.Error.UpdateSavedAddressError:
|
|
return qsTr("Error updating saved address, please try again later.");
|
|
default: return "";
|
|
}
|
|
}
|
|
|
|
function copyText(text) {
|
|
// Not Refactored Yet
|
|
// root.chatsModelInst.copyToClipboard(text);
|
|
}
|
|
|
|
function changeSelectedAccount(newIndex) {
|
|
// Not Refactored Yet
|
|
// if (newIndex > root.walletModelV2Inst.accountsView.accounts) {
|
|
// return;
|
|
// }
|
|
// root.selectedAccount = newIndex;
|
|
// root.walletModelV2Inst.setCurrentAccountByIndex(newIndex);
|
|
}
|
|
|
|
function afterAddAccount() {
|
|
// Not Refactored Yet
|
|
// changeSelectedAccount(walletModelInst.accountsView.accounts.rowCount() - 1);
|
|
}
|
|
|
|
function getCollectionMaxValue(traitType, value, maxValue, collectionIndex) {
|
|
// Not Refactored Yet
|
|
// if(maxValue !== "")
|
|
// return parseInt(value) + qsTr(" of ") + maxValue;
|
|
// else
|
|
// return parseInt(value) + qsTr(" of ") +
|
|
// walletModelV2Inst.collectiblesView.collections.getCollectionTraitMaxValue(collectionIndex, traitType).toString();
|
|
}
|
|
|
|
property bool seedPhraseInserted: false
|
|
property bool isSeedCountValid: false
|
|
property bool loadingAccounts: false
|
|
|
|
function seedPhraseNotFound(text) {
|
|
// Read above, same story, `validateMnemonic` is method of AccountService
|
|
// in wallet section we need to deal with it via walletModule, not anything
|
|
// related to onboarding.
|
|
|
|
// var seedValidationError = root.onboardingModelInst.validateMnemonic(text);
|
|
// var regex = new RegExp('word [a-z]+ not found in the dictionary', 'i');
|
|
// return regex.test(seedValidationError);
|
|
|
|
return ""
|
|
}
|
|
|
|
function validateAddAccountPopup(text, model, keyOrSeedValid, accountNameValid) {
|
|
if (root.isSeedCountValid && !root.seedPhraseNotFound(text)) {
|
|
var validCount = 0;
|
|
for (var i = 0; i < model.count; i++) {
|
|
if (!!model.itemAtIndex(i) && model.itemAtIndex(i).nameInputValid) {
|
|
validCount++;
|
|
}
|
|
}
|
|
}
|
|
return (root.isSeedCountValid && !root.seedPhraseNotFound(text)) ? (validCount === model.count) :
|
|
(keyOrSeedValid && accountNameValid);
|
|
}
|
|
|
|
function validateTextInput(text) {
|
|
root.seedPhraseInserted = text.includes(" ");
|
|
var errorMessage;
|
|
root.isSeedCountValid = (!!text && (text.match(/(\w+)/g).length === 12));
|
|
if (text === "") {
|
|
errorMessage = qsTr("You need to enter a valid private key or seed phrase");
|
|
} else {
|
|
if (!root.seedPhraseInserted) {
|
|
errorMessage = !Utils.isPrivateKey(text) ?
|
|
qsTrId("enter-a-valid-private-key-(64-characters-hexadecimal-string)") : "";
|
|
} else {
|
|
if (!root.isSeedCountValid) {
|
|
errorMessage = qsTrId("enter-a-valid-mnemonic");
|
|
} else if (root.seedPhraseNotFound(text)) {
|
|
errorMessage = qsTrId("custom-seed-phrase") + '. ' + qsTrId("custom-seed-phrase-text-1");
|
|
} else {
|
|
errorMessage = "";
|
|
}
|
|
}
|
|
}
|
|
return errorMessage;
|
|
}
|
|
|
|
function addAccount(text, model, keyOrSeedValid, accountNameInput) {
|
|
// Not Refactored Yet
|
|
// root.loadingAccounts = true;
|
|
// if (!root.validateAddAccountPopup(text, model, keyOrSeedValid, accountNameInput.nameInputValid)) {
|
|
// Global.playErrorSound();
|
|
// root.loadingAccounts = false;
|
|
// } else {
|
|
// //TODO account color to be verified with design
|
|
// var result;
|
|
// if (root.isSeedCountValid && !root.seedPhraseNotFound(text)) {
|
|
// for (var i = 0; i < model.count; i++) {
|
|
// //TODO add authorization process when Authorization moadl is ready
|
|
// if (!!model.itemAtIndex(i)) {
|
|
// result = root.walletModelInst.accountsView.addAccountsFromSeed(model.itemAtIndex(i).accountAddress, "qwqwqw", model.itemAtIndex(i).accountName, "")
|
|
// }
|
|
// }
|
|
// } else {
|
|
// result = root.walletModelInst.accountsView.addAccountsFromPrivateKey(text, "qwqwqw", accountNameInput.text, "");
|
|
// }
|
|
// root.loadingAccounts = false;
|
|
// if (result) {
|
|
// let resultJson = JSON.parse(result);
|
|
// if (!Utils.isInvalidPasswordMessage(resultJson.error)) {
|
|
// accountError.text = resultJson.error;
|
|
// accountError.open();
|
|
// }
|
|
// Global.playErrorSound();
|
|
// return;
|
|
// }
|
|
// }
|
|
}
|
|
|
|
property MessageDialog accountError: MessageDialog {
|
|
id: accountError
|
|
title: qsTr("Adding the account failed")
|
|
icon: StandardIcon.Critical
|
|
standardButtons: StandardButton.Ok
|
|
}
|
|
|
|
function deleteAccount(address) {
|
|
// Not Refactored Yet
|
|
// walletModelInst.accountsView.deleteAccount(address);
|
|
}
|
|
|
|
property ListModel exampleWalletModel: ListModel {
|
|
id: exampleWalletModel
|
|
ListElement {
|
|
name: "Status account"
|
|
address: "0xcfc9f08bbcbcb80760e8cb9a3c1232d19662fc6f"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Test account 1"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Status account 2"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: true
|
|
}
|
|
ListElement {
|
|
name: "Status account"
|
|
address: "0xcfc9f08bbcbcb80760e8cb9a3c1232d19662fc6f"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Test account 1"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Status account 2"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: true
|
|
}
|
|
ListElement {
|
|
name: "Status account"
|
|
address: "0xcfc9f08bbcbcb80760e8cb9a3c1232d19662fc6f"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Test account 1"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Status account 2"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: true
|
|
}
|
|
ListElement {
|
|
name: "Status account"
|
|
address: "0xcfc9f08bbcbcb80760e8cb9a3c1232d19662fc6f"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Test account 1"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: false
|
|
}
|
|
ListElement {
|
|
name: "Status account 2"
|
|
address: "0x2Ef1...E0Ba"
|
|
isFavorite: true
|
|
}
|
|
}
|
|
}
|