mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-07 12:17:38 +00:00
Events class is forwarded instead of whole AppService
This commit is contained in:
parent
c3a374c36a
commit
3e0d312fee
@ -1,6 +1,7 @@
|
|||||||
import NimQml, os, strformat
|
import NimQml, os, strformat
|
||||||
|
|
||||||
import ../../app_service/service/local_settings/service as local_settings_service
|
import ../../app_service/service/local_settings/service as local_settings_service
|
||||||
|
import ../../app_service/service/keychain/service as keychain_service
|
||||||
import ../../app_service/service/accounts/service as accounts_service
|
import ../../app_service/service/accounts/service as accounts_service
|
||||||
import ../../app_service/service/contacts/service as contact_service
|
import ../../app_service/service/contacts/service as contact_service
|
||||||
import ../../app_service/service/chat/service as chat_service
|
import ../../app_service/service/chat/service as chat_service
|
||||||
@ -14,6 +15,8 @@ import global_singleton
|
|||||||
# and improved some services, like EventsService which should implement
|
# and improved some services, like EventsService which should implement
|
||||||
# provider/subscriber principe:
|
# provider/subscriber principe:
|
||||||
import ../../app_service/[main]
|
import ../../app_service/[main]
|
||||||
|
import eventemitter
|
||||||
|
import status/[fleet]
|
||||||
|
|
||||||
#################################################
|
#################################################
|
||||||
# At the end of refactoring this will be moved to
|
# At the end of refactoring this will be moved to
|
||||||
@ -49,6 +52,7 @@ type
|
|||||||
appService: AppService
|
appService: AppService
|
||||||
# Services
|
# Services
|
||||||
localSettingsService: local_settings_service.Service
|
localSettingsService: local_settings_service.Service
|
||||||
|
keychainService: keychain_service.Service
|
||||||
accountsService: accounts_service.Service
|
accountsService: accounts_service.Service
|
||||||
contactService: contact_service.Service
|
contactService: contact_service.Service
|
||||||
chatService: chat_service.Service
|
chatService: chat_service.Service
|
||||||
@ -100,13 +104,15 @@ proc newAppController*(appService: AppService): AppController =
|
|||||||
result.appService = appService
|
result.appService = appService
|
||||||
# Services
|
# Services
|
||||||
result.localSettingsService = local_settings_service.newService()
|
result.localSettingsService = local_settings_service.newService()
|
||||||
|
result.keychainService = keychain_service.newService(result.localSettingsService, appService.status.events)
|
||||||
result.accountsService = accounts_service.newService()
|
result.accountsService = accounts_service.newService()
|
||||||
result.contactService = contact_service.newService()
|
result.contactService = contact_service.newService()
|
||||||
result.chatService = chat_service.newService()
|
result.chatService = chat_service.newService()
|
||||||
result.communityService = community_service.newService(result.chatService)
|
result.communityService = community_service.newService(result.chatService)
|
||||||
# Modules
|
# Modules
|
||||||
result.startupModule = startup_module.newModule[AppController](result, appService,
|
result.startupModule = startup_module.newModule[AppController](result,
|
||||||
result.accountsService)
|
appService.status.events, appService.status.fleet, result.localSettingsService,
|
||||||
|
result.keychainService, result.accountsService)
|
||||||
result.mainModule = main_module.newModule[AppController](result, result.chatService,
|
result.mainModule = main_module.newModule[AppController](result, result.chatService,
|
||||||
result.communityService)
|
result.communityService)
|
||||||
|
|
||||||
|
@ -3,10 +3,13 @@ import Tables, chronicles
|
|||||||
import controller_interface
|
import controller_interface
|
||||||
import io_interface
|
import io_interface
|
||||||
|
|
||||||
import status/[signals]
|
import ../../../app_service/service/local_settings/service as local_settings_service
|
||||||
import ../../../app_service/[main]
|
import ../../../app_service/service/keychain/service as keychain_service
|
||||||
import ../../../app_service/service/accounts/service_interface as accounts_service
|
import ../../../app_service/service/accounts/service_interface as accounts_service
|
||||||
|
|
||||||
|
import eventemitter
|
||||||
|
import status/[signals]
|
||||||
|
|
||||||
export controller_interface
|
export controller_interface
|
||||||
|
|
||||||
logScope:
|
logScope:
|
||||||
@ -15,35 +18,39 @@ logScope:
|
|||||||
type
|
type
|
||||||
Controller* = ref object of controller_interface.AccessInterface
|
Controller* = ref object of controller_interface.AccessInterface
|
||||||
delegate: io_interface.AccessInterface
|
delegate: io_interface.AccessInterface
|
||||||
appService: AppService
|
events: EventEmitter
|
||||||
|
localSettingsService: local_settings_service.Service
|
||||||
|
keychainService: keychain_service.Service
|
||||||
accountsService: accounts_service.ServiceInterface
|
accountsService: accounts_service.ServiceInterface
|
||||||
|
|
||||||
proc newController*(delegate: io_interface.AccessInterface,
|
proc newController*(delegate: io_interface.AccessInterface,
|
||||||
appService: AppService,
|
events: EventEmitter,
|
||||||
|
localSettingsService: local_settings_service.Service,
|
||||||
|
keychainService: keychain_service.Service,
|
||||||
accountsService: accounts_service.ServiceInterface):
|
accountsService: accounts_service.ServiceInterface):
|
||||||
Controller =
|
Controller =
|
||||||
result = Controller()
|
result = Controller()
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.appService = appService
|
result.events = events
|
||||||
result.accountsService = accountsService
|
result.accountsService = accountsService
|
||||||
|
|
||||||
method delete*(self: Controller) =
|
method delete*(self: Controller) =
|
||||||
discard
|
discard
|
||||||
|
|
||||||
method init*(self: Controller) =
|
method init*(self: Controller) =
|
||||||
self.appService.status.events.on(SignalType.NodeLogin.event) do(e:Args):
|
self.events.on(SignalType.NodeLogin.event) do(e:Args):
|
||||||
let signal = NodeSignal(e)
|
let signal = NodeSignal(e)
|
||||||
if signal.event.error == "":
|
if signal.event.error == "":
|
||||||
self.delegate.userLoggedIn()
|
self.delegate.userLoggedIn()
|
||||||
else:
|
else:
|
||||||
error "error: ", methodName="init", errDesription = "login error " & signal.event.error
|
error "error: ", methodName="init", errDesription = "login error " & signal.event.error
|
||||||
|
|
||||||
self.appService.status.events.on(SignalType.NodeStopped.event) do(e:Args):
|
self.events.on(SignalType.NodeStopped.event) do(e:Args):
|
||||||
echo "-NEW-EVENT-- NodeStopped: ", repr(e)
|
echo "-NEW-EVENT-- NodeStopped: ", repr(e)
|
||||||
#self.status.events.emit("nodeStopped", Args())
|
#self.status.events.emit("nodeStopped", Args())
|
||||||
#self.view.onLoggedOut()
|
#self.view.onLoggedOut()
|
||||||
|
|
||||||
self.appService.status.events.on(SignalType.NodeReady.event) do(e:Args):
|
self.events.on(SignalType.NodeReady.event) do(e:Args):
|
||||||
echo "-NEW-EVENT-- NodeReady: ", repr(e)
|
echo "-NEW-EVENT-- NodeReady: ", repr(e)
|
||||||
#self.status.events.emit("nodeReady", Args())
|
#self.status.events.emit("nodeReady", Args())
|
||||||
|
|
||||||
|
@ -3,33 +3,34 @@ import Tables
|
|||||||
import controller_interface
|
import controller_interface
|
||||||
import io_interface
|
import io_interface
|
||||||
|
|
||||||
import status/[signals]
|
|
||||||
import ../../../../app_service/[main]
|
|
||||||
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
||||||
|
|
||||||
|
import eventemitter
|
||||||
|
import status/[signals]
|
||||||
|
|
||||||
export controller_interface
|
export controller_interface
|
||||||
|
|
||||||
type
|
type
|
||||||
Controller* = ref object of controller_interface.AccessInterface
|
Controller* = ref object of controller_interface.AccessInterface
|
||||||
delegate: io_interface.AccessInterface
|
delegate: io_interface.AccessInterface
|
||||||
appService: AppService
|
events: EventEmitter
|
||||||
accountsService: accounts_service.ServiceInterface
|
accountsService: accounts_service.ServiceInterface
|
||||||
selectedAccountKeyUid: string
|
selectedAccountKeyUid: string
|
||||||
|
|
||||||
proc newController*(delegate: io_interface.AccessInterface,
|
proc newController*(delegate: io_interface.AccessInterface,
|
||||||
appService: AppService,
|
events: EventEmitter,
|
||||||
accountsService: accounts_service.ServiceInterface):
|
accountsService: accounts_service.ServiceInterface):
|
||||||
Controller =
|
Controller =
|
||||||
result = Controller()
|
result = Controller()
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.appService = appService
|
result.events = events
|
||||||
result.accountsService = accountsService
|
result.accountsService = accountsService
|
||||||
|
|
||||||
method delete*(self: Controller) =
|
method delete*(self: Controller) =
|
||||||
discard
|
discard
|
||||||
|
|
||||||
method init*(self: Controller) =
|
method init*(self: Controller) =
|
||||||
self.appService.status.events.on(SignalType.NodeLogin.event) do(e:Args):
|
self.events.on(SignalType.NodeLogin.event) do(e:Args):
|
||||||
let signal = NodeSignal(e)
|
let signal = NodeSignal(e)
|
||||||
if signal.event.error != "":
|
if signal.event.error != "":
|
||||||
self.delegate.loginAccountError(signal.event.error)
|
self.delegate.loginAccountError(signal.event.error)
|
||||||
|
@ -4,9 +4,10 @@ import ../io_interface as delegate_interface
|
|||||||
import view, controller, item
|
import view, controller, item
|
||||||
import ../../../../app/boot/global_singleton
|
import ../../../../app/boot/global_singleton
|
||||||
|
|
||||||
import ../../../../app_service/[main]
|
|
||||||
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
||||||
|
|
||||||
|
import eventemitter
|
||||||
|
|
||||||
export io_interface
|
export io_interface
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -18,14 +19,14 @@ type
|
|||||||
moduleLoaded: bool
|
moduleLoaded: bool
|
||||||
|
|
||||||
proc newModule*(delegate: delegate_interface.AccessInterface,
|
proc newModule*(delegate: delegate_interface.AccessInterface,
|
||||||
appService: AppService,
|
events: EventEmitter,
|
||||||
accountsService: accounts_service.ServiceInterface):
|
accountsService: accounts_service.ServiceInterface):
|
||||||
Module =
|
Module =
|
||||||
result = Module()
|
result = Module()
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.view = view.newView(result)
|
result.view = view.newView(result)
|
||||||
result.viewVariant = newQVariant(result.view)
|
result.viewVariant = newQVariant(result.view)
|
||||||
result.controller = controller.newController(result, appService, accountsService)
|
result.controller = controller.newController(result, events, accountsService)
|
||||||
result.moduleLoaded = false
|
result.moduleLoaded = false
|
||||||
|
|
||||||
singletonInstance.engine.setRootContextProperty("loginModule", result.viewVariant)
|
singletonInstance.engine.setRootContextProperty("loginModule", result.viewVariant)
|
||||||
|
@ -7,9 +7,13 @@ import ../../../app/boot/global_singleton
|
|||||||
import onboarding/module as onboarding_module
|
import onboarding/module as onboarding_module
|
||||||
import login/module as login_module
|
import login/module as login_module
|
||||||
|
|
||||||
import ../../../app_service/[main]
|
import ../../../app_service/service/local_settings/service as local_settings_service
|
||||||
|
import ../../../app_service/service/keychain/service as keychain_service
|
||||||
import ../../../app_service/service/accounts/service_interface as accounts_service
|
import ../../../app_service/service/accounts/service_interface as accounts_service
|
||||||
|
|
||||||
|
import eventemitter
|
||||||
|
import status/[fleet]
|
||||||
|
|
||||||
export io_interface
|
export io_interface
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -22,18 +26,22 @@ type
|
|||||||
loginModule: login_module.AccessInterface
|
loginModule: login_module.AccessInterface
|
||||||
|
|
||||||
proc newModule*[T](delegate: T,
|
proc newModule*[T](delegate: T,
|
||||||
appService: AppService,
|
events: EventEmitter,
|
||||||
|
fleet: FleetModel,
|
||||||
|
localSettingsService: local_settings_service.Service,
|
||||||
|
keychainService: keychain_service.Service,
|
||||||
accountsService: accounts_service.ServiceInterface):
|
accountsService: accounts_service.ServiceInterface):
|
||||||
Module[T] =
|
Module[T] =
|
||||||
result = Module[T]()
|
result = Module[T]()
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.view = view.newView(result)
|
result.view = view.newView(result)
|
||||||
result.viewVariant = newQVariant(result.view)
|
result.viewVariant = newQVariant(result.view)
|
||||||
result.controller = controller.newController(result, appService, accountsService)
|
result.controller = controller.newController(result, events, localSettingsService,
|
||||||
|
keychainService, accountsService)
|
||||||
|
|
||||||
# Submodules
|
# Submodules
|
||||||
result.onboardingModule = onboarding_module.newModule(result, appService, accountsService)
|
result.onboardingModule = onboarding_module.newModule(result, events, fleet, accountsService)
|
||||||
result.loginModule = login_module.newModule(result, appService, accountsService)
|
result.loginModule = login_module.newModule(result, events, accountsService)
|
||||||
|
|
||||||
method delete*[T](self: Module[T]) =
|
method delete*[T](self: Module[T]) =
|
||||||
self.onboardingModule.delete
|
self.onboardingModule.delete
|
||||||
|
@ -3,10 +3,11 @@ import Tables, chronicles
|
|||||||
import controller_interface
|
import controller_interface
|
||||||
import io_interface
|
import io_interface
|
||||||
|
|
||||||
import status/[signals]
|
|
||||||
import ../../../../app_service/[main]
|
|
||||||
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
||||||
|
|
||||||
|
import eventemitter
|
||||||
|
import status/[signals, fleet]
|
||||||
|
|
||||||
export controller_interface
|
export controller_interface
|
||||||
|
|
||||||
logScope:
|
logScope:
|
||||||
@ -16,24 +17,27 @@ type
|
|||||||
Controller* =
|
Controller* =
|
||||||
ref object of controller_interface.AccessInterface
|
ref object of controller_interface.AccessInterface
|
||||||
delegate: io_interface.AccessInterface
|
delegate: io_interface.AccessInterface
|
||||||
appService: AppService
|
events: EventEmitter
|
||||||
|
fleet: FleetModel
|
||||||
accountsService: accounts_service.ServiceInterface
|
accountsService: accounts_service.ServiceInterface
|
||||||
selectedAccountId: string
|
selectedAccountId: string
|
||||||
|
|
||||||
proc newController*(delegate: io_interface.AccessInterface,
|
proc newController*(delegate: io_interface.AccessInterface,
|
||||||
appService: AppService,
|
events: EventEmitter,
|
||||||
|
fleet: FleetModel,
|
||||||
accountsService: accounts_service.ServiceInterface):
|
accountsService: accounts_service.ServiceInterface):
|
||||||
Controller =
|
Controller =
|
||||||
result = Controller()
|
result = Controller()
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.appService = appService
|
result.events = events
|
||||||
|
result.fleet = fleet
|
||||||
result.accountsService = accountsService
|
result.accountsService = accountsService
|
||||||
|
|
||||||
method delete*(self: Controller) =
|
method delete*(self: Controller) =
|
||||||
discard
|
discard
|
||||||
|
|
||||||
method init*(self: Controller) =
|
method init*(self: Controller) =
|
||||||
self.appService.status.events.on(SignalType.NodeLogin.event) do(e:Args):
|
self.events.on(SignalType.NodeLogin.event) do(e:Args):
|
||||||
let signal = NodeSignal(e)
|
let signal = NodeSignal(e)
|
||||||
if signal.event.error != "":
|
if signal.event.error != "":
|
||||||
self.delegate.setupAccountError()
|
self.delegate.setupAccountError()
|
||||||
@ -49,7 +53,7 @@ method setSelectedAccountByIndex*(self: Controller, index: int) =
|
|||||||
self.selectedAccountId = accounts[index].id
|
self.selectedAccountId = accounts[index].id
|
||||||
|
|
||||||
method storeSelectedAccountAndLogin*(self: Controller, password: string) =
|
method storeSelectedAccountAndLogin*(self: Controller, password: string) =
|
||||||
if(not self.accountsService.setupAccount(self.appService.status.fleet.config,
|
if(not self.accountsService.setupAccount(self.fleet.config,
|
||||||
self.selectedAccountId, password)):
|
self.selectedAccountId, password)):
|
||||||
self.delegate.setupAccountError()
|
self.delegate.setupAccountError()
|
||||||
|
|
||||||
|
@ -4,9 +4,11 @@ import ../io_interface as delegate_interface
|
|||||||
import view, controller, item
|
import view, controller, item
|
||||||
import ../../../../app/boot/global_singleton
|
import ../../../../app/boot/global_singleton
|
||||||
|
|
||||||
import ../../../../app_service/[main]
|
|
||||||
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
import ../../../../app_service/service/accounts/service_interface as accounts_service
|
||||||
|
|
||||||
|
import eventemitter
|
||||||
|
import status/[fleet]
|
||||||
|
|
||||||
export io_interface
|
export io_interface
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -18,14 +20,16 @@ type
|
|||||||
moduleLoaded: bool
|
moduleLoaded: bool
|
||||||
|
|
||||||
proc newModule*(delegate: delegate_interface.AccessInterface,
|
proc newModule*(delegate: delegate_interface.AccessInterface,
|
||||||
appService: AppService,
|
events: EventEmitter,
|
||||||
|
fleet: FleetModel,
|
||||||
accountsService: accounts_service.ServiceInterface):
|
accountsService: accounts_service.ServiceInterface):
|
||||||
Module =
|
Module =
|
||||||
result = Module()
|
result = Module()
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.view = view.newView(result)
|
result.view = view.newView(result)
|
||||||
result.viewVariant = newQVariant(result.view)
|
result.viewVariant = newQVariant(result.view)
|
||||||
result.controller = controller.newController(result, appService, accountsService)
|
result.controller = controller.newController(result, events, fleet,
|
||||||
|
accountsService)
|
||||||
result.moduleLoaded = false
|
result.moduleLoaded = false
|
||||||
|
|
||||||
singletonInstance.engine.setRootContextProperty("onboardingModule", result.viewVariant)
|
singletonInstance.engine.setRootContextProperty("onboardingModule", result.viewVariant)
|
||||||
|
88
src/app_service/service/keychain/service.nim
Normal file
88
src/app_service/service/keychain/service.nim
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
import NimQml, chronicles
|
||||||
|
#Tables, json, sequtils, strutils, strformat, uuids
|
||||||
|
#import json_serialization,
|
||||||
|
|
||||||
|
import ../local_settings/service as local_settings_service
|
||||||
|
|
||||||
|
import eventemitter
|
||||||
|
|
||||||
|
logScope:
|
||||||
|
topics = "keychain-service"
|
||||||
|
|
||||||
|
# Local Account Settings keys:
|
||||||
|
const LS_KEY_STORE_TO_KEYCHAIN* = "storeToKeychain"
|
||||||
|
# Local Account Settings values:
|
||||||
|
const LS_VALUE_STORE* = "store"
|
||||||
|
|
||||||
|
const ERROR_TYPE_AUTHENTICATION = "authentication"
|
||||||
|
const ERROR_TYPE_KEYCHAIN = "keychain"
|
||||||
|
|
||||||
|
type
|
||||||
|
KeyChainServiceArg* = ref object of Args
|
||||||
|
data*: string
|
||||||
|
errCode: int
|
||||||
|
errType: string
|
||||||
|
errDescription: string
|
||||||
|
|
||||||
|
QtObject:
|
||||||
|
type Service* = ref object of QObject
|
||||||
|
localSettingsService: local_settings_service.Service
|
||||||
|
events: EventEmitter
|
||||||
|
keychainManager: StatusKeychainManager
|
||||||
|
|
||||||
|
proc setup(self: Service) =
|
||||||
|
self.QObject.setup
|
||||||
|
self.keychainManager = newStatusKeychainManager("StatusDesktop", "authenticate you")
|
||||||
|
signalConnect(self.keychainManager, "success(QString)", self,
|
||||||
|
"onKeychainManagerSuccess(QString)", 2)
|
||||||
|
signalConnect(self.keychainManager, "error(QString, int, QString)", self,
|
||||||
|
"onKeychainManagerError(QString, int, QString)", 2)
|
||||||
|
|
||||||
|
proc delete*(self: Service) =
|
||||||
|
self.keychainManager.delete
|
||||||
|
self.QObject.delete
|
||||||
|
|
||||||
|
proc newService*(localSettingsService: local_settings_service.Service,
|
||||||
|
events: EventEmitter):
|
||||||
|
Service =
|
||||||
|
new(result, delete)
|
||||||
|
result.setup()
|
||||||
|
result.localSettingsService = localSettingsService
|
||||||
|
result.events = events
|
||||||
|
|
||||||
|
proc storePassword*(self: Service, username: string, password: string) =
|
||||||
|
let value = self.localSettingsService.getAccountValue(
|
||||||
|
LS_KEY_STORE_TO_KEYCHAIN).stringVal
|
||||||
|
|
||||||
|
if (value != LS_VALUE_STORE or username.len == 0):
|
||||||
|
return
|
||||||
|
|
||||||
|
self.keychainManager.storeDataAsync(username, password)
|
||||||
|
|
||||||
|
proc tryToObtainPassword*(self: Service, username: string) =
|
||||||
|
let value = self.localSettingsService.getAccountValue(
|
||||||
|
LS_KEY_STORE_TO_KEYCHAIN).stringVal
|
||||||
|
|
||||||
|
if (value != LS_VALUE_STORE):
|
||||||
|
return
|
||||||
|
|
||||||
|
self.keychainManager.readDataAsync(username)
|
||||||
|
|
||||||
|
proc onKeychainManagerError*(self: Service, errorType: string, errorCode: int,
|
||||||
|
errorDescription: string) {.slot.} =
|
||||||
|
## This slot is called in case an error occured while we're dealing with
|
||||||
|
## KeychainManager. So far we're just logging the error.
|
||||||
|
info "KeychainManager stopped: ", msg = errorCode, errorDescription
|
||||||
|
if (errorType == ERROR_TYPE_AUTHENTICATION):
|
||||||
|
return
|
||||||
|
|
||||||
|
# We are notifying user only about keychain errors.
|
||||||
|
self.localSettingsService.removeAccountValue(LS_KEY_STORE_TO_KEYCHAIN)
|
||||||
|
let arg = KeyChainServiceArg(errCode: errorCode, errType: errorType,
|
||||||
|
errDescription: errorDescription)
|
||||||
|
self.events.emit("obtainingPasswordError", arg)
|
||||||
|
|
||||||
|
proc onKeychainManagerSuccess*(self: Service, data: string) {.slot.} =
|
||||||
|
## This slot is called in case a password is successfully retrieved from the
|
||||||
|
## Keychain. In this case @data contains required password.
|
||||||
|
self.events.emit("obtainingPasswordSuccess", KeyChainServiceArg(data: data))
|
7
src/app_service/service/keychain/service_interface.nim
Normal file
7
src/app_service/service/keychain/service_interface.nim
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# We cannot have interface defined here, bacause of Nim limitation in terms of
|
||||||
|
# multiple inheritances, since this service already inherits from QtObject
|
||||||
|
|
||||||
|
# Concepts cannot be used also because of other limitation cause we cannot
|
||||||
|
# forward this class to appropriate submodule, cause Nim doesn't support
|
||||||
|
# nested types which depends on concepts.
|
||||||
|
|
@ -1,11 +1,6 @@
|
|||||||
import NimQml, os, chronicles
|
import NimQml, os, chronicles
|
||||||
import ../../../constants
|
import ../../../constants
|
||||||
|
|
||||||
# Local Account Settings keys:
|
|
||||||
const LS_KEY_STORE_TO_KEYCHAIN* = "storeToKeychain"
|
|
||||||
# Local Account Settings values:
|
|
||||||
const LS_VALUE_STORE* = "store"
|
|
||||||
|
|
||||||
const UNKNOWN_ACCOUNT = "unknownAccount"
|
const UNKNOWN_ACCOUNT = "unknownAccount"
|
||||||
const UNKNOWN_PROFILE = "unknownProfile"
|
const UNKNOWN_PROFILE = "unknownProfile"
|
||||||
|
|
||||||
|
@ -11,7 +11,11 @@ QtObject {
|
|||||||
property var walletModelV2Inst: walletV2Model
|
property var walletModelV2Inst: walletV2Model
|
||||||
property var profileModelInst: profileModel
|
property var profileModelInst: profileModel
|
||||||
property var chatsModelInst: chatsModel
|
property var chatsModelInst: chatsModel
|
||||||
property var onboardingModelInst: onboardingModel
|
// This should be exposed to the UI via "walletModule", WalletModule should use
|
||||||
|
// Accounts Service which keeps the info about that. Then in the View of WalletModule
|
||||||
|
// we may have either QtProperty or Q_INVOKABLE function (proc marked as slot)
|
||||||
|
// depends on logic/need.
|
||||||
|
// property var onboardingModelInst: onboardingModel
|
||||||
property int selectedAccount: 0
|
property int selectedAccount: 0
|
||||||
|
|
||||||
function getSavedAddressErrorText(savedAddresses, error) {
|
function getSavedAddressErrorText(savedAddresses, error) {
|
||||||
@ -57,9 +61,12 @@ QtObject {
|
|||||||
property bool loadingAccounts: false
|
property bool loadingAccounts: false
|
||||||
|
|
||||||
function seedPhraseNotFound(text) {
|
function seedPhraseNotFound(text) {
|
||||||
var seedValidationError = root.onboardingModelInst.validateMnemonic(text);
|
// Read in above
|
||||||
var regex = new RegExp('word [a-z]+ not found in the dictionary', 'i');
|
// var seedValidationError = root.onboardingModelInst.validateMnemonic(text);
|
||||||
return regex.test(seedValidationError);
|
// var regex = new RegExp('word [a-z]+ not found in the dictionary', 'i');
|
||||||
|
// return regex.test(seedValidationError);
|
||||||
|
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateAddAccountPopup(text, model, keyOrSeedValid, accountNameValid) {
|
function validateAddAccountPopup(text, model, keyOrSeedValid, accountNameValid) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user