diff --git a/devuser_guide/content/api/architecture_development/common_errors.md b/devuser_guide/content/api/architecture_development/common_errors.md index eb6998675a..d87a1535f3 100644 --- a/devuser_guide/content/api/architecture_development/common_errors.md +++ b/devuser_guide/content/api/architecture_development/common_errors.md @@ -88,6 +88,14 @@ or using typedesc param with `:` like: `self.status.settings.getSetting[:string](Setting.SigningPhrase)` +### undeclared identifier: 'result' + +Typically this means the method has no return type and so `result =` isn't necessary + +### expression 'method(param)' has no type (or is ambiguous) + +This usually means a method that has no return type is being discarded + ## Warnings ### QML anchor warnings diff --git a/src/app/chat/core.nim b/src/app/chat/core.nim index 93fb54de9f..00b8ac53ce 100644 --- a/src/app/chat/core.nim +++ b/src/app/chat/core.nim @@ -3,8 +3,7 @@ import ../../status/chat as chat_model import ../../status/messages as messages_model import ../../status/signals/types import ../../status/libstatus/types as status_types -import ../../status/libstatus/settings as status_settings -import ../../status/[chat, contacts, status, wallet, stickers] +import ../../status/[chat, contacts, status, wallet, stickers, settings] import view, views/channels_list, views/message_list, views/reactions, views/stickers as stickers_view import ../../eventemitter @@ -34,8 +33,8 @@ proc init*(self: ChatController) = self.handleChatEvents() self.handleSignals() - let pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") - let messagesFromContactsOnly = status_settings.getSetting[bool](Setting.MessagesFromContactsOnly, false, true) + let pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") + let messagesFromContactsOnly = self.status.settings.getSetting[:bool](Setting.MessagesFromContactsOnly, false, true) self.view.pubKey = pubKey self.status.chat.init(pubKey, messagesFromContactsOnly) diff --git a/src/app/chat/views/chat_item.nim b/src/app/chat/views/chat_item.nim index 8f1fbc8be8..baae6b6632 100644 --- a/src/app/chat/views/chat_item.nim +++ b/src/app/chat/views/chat_item.nim @@ -1,7 +1,6 @@ import NimQml, Tables, std/wrapnils -import ../../../status/[chat/chat, status, ens, accounts] +import ../../../status/[chat/chat, status, ens, accounts, settings] from ../../../status/libstatus/types import Setting -import ../../../status/libstatus/settings as status_settings import ../../../status/libstatus/utils as status_utils import chat_members @@ -151,7 +150,7 @@ QtObject: proc isMember*(self: ChatItemView): bool {.slot.} = if self.chatItem.isNil: return false - let pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") + let pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") return self.chatItem.isMember(pubKey) QtProperty[bool] isMember: diff --git a/src/app/chat/views/reactions.nim b/src/app/chat/views/reactions.nim index 2ff8e8222b..f984889a8d 100644 --- a/src/app/chat/views/reactions.nim +++ b/src/app/chat/views/reactions.nim @@ -1,7 +1,6 @@ import NimQml, tables, json, chronicles -import ../../../status/[status, chat/message, chat/chat] +import ../../../status/[status, chat/message, chat/chat, settings] import message_list, chat_item -import ../../../status/libstatus/settings as status_settings import ../../../status/libstatus/utils as status_utils import ../../../status/libstatus/types @@ -30,7 +29,7 @@ QtObject: result.setup proc init*(self: ReactionView) = - self.pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") + self.pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") proc messageEmojiReactionId(self: ReactionView, chatId: string, messageId: string, emojiId: int): string = let chat = self.status.chat.channels[chatId] diff --git a/src/app/profile/core.nim b/src/app/profile/core.nim index fc3838c0f5..2e8f5a3048 100644 --- a/src/app/profile/core.nim +++ b/src/app/profile/core.nim @@ -4,9 +4,8 @@ import ../../status/libstatus/mailservers as status_mailservers import ../../status/signals/types import ../../status/libstatus/accounts/constants import ../../status/libstatus/types as status_types -import ../../status/libstatus/settings as status_settings import ../../status/profile/[profile, mailserver] -import ../../status/status +import ../../status/[status, settings] import ../../status/contacts as status_contacts import ../../status/chat as status_chat import ../../status/devices as status_devices @@ -37,10 +36,10 @@ proc delete*(self: ProfileController) = proc init*(self: ProfileController, account: Account) = let profile = account.toProfileModel() - let pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") - let network = status_settings.getSetting[string](Setting.Networks_CurrentNetwork, constants.DEFAULT_NETWORK_NAME) - let appearance = status_settings.getSetting[int](Setting.Appearance) - let messagesFromContactsOnly = status_settings.getSetting[bool](Setting.MessagesFromContactsOnly) + let pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") + let network = self.status.settings.getSetting[:string](Setting.Networks_CurrentNetwork, constants.DEFAULT_NETWORK_NAME) + let appearance = self.status.settings.getSetting[:int](Setting.Appearance) + let messagesFromContactsOnly = self.status.settings.getSetting[:bool](Setting.MessagesFromContactsOnly) profile.appearance = appearance profile.id = pubKey profile.address = account.keyUid @@ -58,11 +57,11 @@ proc init*(self: ProfileController, account: Account) = self.view.ens.init() self.view.initialized() - for name, endpoint in self.status.fleet.config.getMailservers(status_settings.getFleet()).pairs(): + for name, endpoint in self.status.fleet.config.getMailservers(self.status.settings.getFleet()).pairs(): let mailserver = MailServer(name: name, endpoint: endpoint) self.view.mailservers.add(mailserver) - for mailserver in status_settings.getMailservers().getElems(): + for mailserver in self.status.settings.getMailservers().getElems(): let mailserver = MailServer(name: mailserver["name"].getStr(), endpoint: mailserver["address"].getStr()) self.view.mailservers.add(mailserver) diff --git a/src/app/profile/view.nim b/src/app/profile/view.nim index bebfc248a3..c832195d11 100644 --- a/src/app/profile/view.nim +++ b/src/app/profile/view.nim @@ -6,7 +6,6 @@ import ../../status/profile/profile import ../../status/profile as status_profile import ../../status/contacts as status_contacts import ../../status/accounts as status_accounts -import ../../status/libstatus/settings as status_settings import ../../status/status import ../../status/ens as status_ens import ../../status/chat/chat diff --git a/src/app/profile/views/ens_manager.nim b/src/app/profile/views/ens_manager.nim index 8a21507855..338a5ad538 100644 --- a/src/app/profile/views/ens_manager.nim +++ b/src/app/profile/views/ens_manager.nim @@ -8,7 +8,7 @@ import ../../../status/ens as status_ens import ../../../status/libstatus/wallet as status_wallet import ../../../status/libstatus/settings as status_settings import ../../../status/libstatus/utils as libstatus_utils -import ../../../status/status +import ../../../status/[status, settings] import ../../../status/wallet import sets import web3/ethtypes @@ -105,7 +105,7 @@ QtObject: result.setup proc init*(self: EnsManager) = - self.usernames = status_settings.getSetting[seq[string]](Setting.Usernames, @[]) + self.usernames = getSetting[seq[string]](self.status.settings, Setting.Usernames, @[]) # Get pending ens names let pendingTransactions = status_wallet.getPendingTransactions() @@ -131,7 +131,7 @@ QtObject: self.endInsertRows() proc getPreferredUsername(self: EnsManager): string {.slot.} = - result = status_settings.getSetting[string](Setting.PreferredUsername, "") + result = self.status.settings.getSetting[:string](Setting.PreferredUsername, "") proc preferredUsernameChanged(self: EnsManager) {.signal.} @@ -143,7 +143,7 @@ QtObject: proc setPreferredUsername(self: EnsManager, newENS: string) {.slot.} = if not self.isPending(newENS): - discard status_settings.saveSetting(Setting.PreferredUsername, newENS) + discard self.status.settings.saveSetting(Setting.PreferredUsername, newENS) self.preferredUsernameChanged() QtProperty[string] preferredUsername: @@ -152,9 +152,9 @@ QtObject: write = setPreferredUsername proc connect(self: EnsManager, ensUsername: string) = - var usernames = status_settings.getSetting[seq[string]](Setting.Usernames, @[]) + var usernames = getSetting[seq[string]](self.status.settings, Setting.Usernames, @[]) usernames.add ensUsername - discard status_settings.saveSetting(Setting.Usernames, %*usernames) + discard self.status.settings.saveSetting(Setting.Usernames, %*usernames) proc loading(self: EnsManager, isLoading: bool) {.signal.} @@ -235,14 +235,14 @@ QtObject: proc registerENSGasEstimate(self: EnsManager, ensUsername: string, address: string): int {.slot.} = var success: bool - let pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") + let pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") result = registerUsernameEstimateGas(ensUsername, address, pubKey, success) if not success: result = 380000 proc registerENS*(self: EnsManager, username: string, address: string, gas: string, gasPrice: string, password: string): string {.slot.} = var success: bool - let pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") + let pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") let response = registerUsername(username, pubKey, address, gas, gasPrice, password, success) result = $(%* { "result": %response, "success": %success }) @@ -254,14 +254,14 @@ QtObject: proc setPubKeyGasEstimate(self: EnsManager, ensUsername: string, address: string): int {.slot.} = var success: bool - let pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") + let pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") result = setPubKeyEstimateGas(ensUsername, address, pubKey, success) if not success: result = 80000 proc setPubKey(self: EnsManager, username: string, address: string, gas: string, gasPrice: string, password: string): string {.slot.} = var success: bool - let pubKey = status_settings.getSetting[string](Setting.PublicKey, "0x0") + let pubKey = self.status.settings.getSetting[:string](Setting.PublicKey, "0x0") let response = setPubKey(username, pubKey, address, gas, gasPrice, password, success) result = $(%* { "result": %response, "success": %success }) if success: diff --git a/src/app/profile/views/fleets.nim b/src/app/profile/views/fleets.nim index 6a17c2e42d..fc2198f780 100644 --- a/src/app/profile/views/fleets.nim +++ b/src/app/profile/views/fleets.nim @@ -1,9 +1,8 @@ import NimQml import chronicles, strutils import ../../../status/libstatus/types as status_types -import ../../../status/libstatus/settings as status_settings import ../../../status/libstatus/accounts as status_accounts -import ../../../status/status +import ../../../status/[status, settings] QtObject: type Fleets * = ref object of QObject @@ -24,19 +23,19 @@ QtObject: proc fleetChanged*(self: Fleets, newFleet: string) {.signal.} proc triggerFleetChange*(self: Fleets) {.slot.} = - self.fleetChanged($status_settings.getFleet()) + self.fleetChanged($self.status.settings.getFleet()) proc setFleet*(self: Fleets, newFleet: string) {.slot.} = - discard status_settings.saveSetting(Setting.Fleet, newFleet) + discard self.status.settings.saveSetting(Setting.Fleet, newFleet) let fleet = parseEnum[Fleet](newFleet) - let installationId = status_settings.getSetting[string](Setting.InstallationId) - let updatedNodeConfig = status_accounts.getNodeConfig(self.status.fleet.config, installationId, $status_settings.getCurrentNetwork(), fleet) - discard status_settings.saveSetting(Setting.NodeConfig, updatedNodeConfig) + let installationId = self.status.settings.getSetting[:string](Setting.InstallationId) + let updatedNodeConfig = status_accounts.getNodeConfig(self.status.fleet.config, installationId, $self.status.settings.getCurrentNetwork(), fleet) + discard self.status.settings.saveSetting(Setting.NodeConfig, updatedNodeConfig) self.fleetChanged(newFleet) quit(QuitSuccess) # quits the app TODO: change this to logout instead when supported - proc getFleet*(self: Fleets): string {.slot.} = $status_settings.getFleet() + proc getFleet*(self: Fleets): string {.slot.} = $self.status.settings.getFleet() QtProperty[string] fleet: read = getFleet diff --git a/src/app/profile/views/mailservers.nim b/src/app/profile/views/mailservers.nim index 128cb104a9..57dc818b48 100644 --- a/src/app/profile/views/mailservers.nim +++ b/src/app/profile/views/mailservers.nim @@ -1,8 +1,7 @@ import NimQml, chronicles -import ../../../status/status +import ../../../status/[status, settings] import ../../../status/profile/mailserver import mailservers_list -import ../../../status/libstatus/settings as status_settings import ../../../status/tasks/marathon/mailserver/worker logScope: @@ -51,18 +50,18 @@ QtObject: self.activeMailserverChanged(activeMailserver) proc getAutomaticSelection(self: MailserversView): bool {.slot.} = - status_settings.getPinnedMailserver() == "" + self.status.settings.getPinnedMailserver() == "" QtProperty[bool] automaticSelection: read = getAutomaticSelection proc setMailserver(self: MailserversView, id: string) {.slot.} = let enode = self.mailserversList.getMailserverEnode(id) - status_settings.pinMailserver(enode) + self.status.settings.pinMailserver(enode) proc enableAutomaticSelection(self: MailserversView, value: bool) {.slot.} = if value: - status_settings.pinMailserver() + self.status.settings.pinMailserver() else: let mailserverWorker = self.status.tasks.marathon[MailserverWorker().name] @@ -74,8 +73,8 @@ QtObject: mailserverWorker.start(task) proc getActiveMailserverResult2(self: MailserversView, activeMailserver: string) {.slot.} = - status_settings.pinMailserver(activeMailserver) + self.status.settings.pinMailserver(activeMailserver) proc save(self: MailserversView, name: string, address: string) {.slot.} = - status_settings.saveMailserver(name, address) - self.mailserversList.add(Mailserver(name: name, endpoint: address)) \ No newline at end of file + self.status.settings.saveMailserver(name, address) + self.mailserversList.add(Mailserver(name: name, endpoint: address)) diff --git a/src/app/profile/views/mnemonic.nim b/src/app/profile/views/mnemonic.nim index 7a1cb69c1b..23cacd8292 100644 --- a/src/app/profile/views/mnemonic.nim +++ b/src/app/profile/views/mnemonic.nim @@ -1,6 +1,5 @@ import NimQml, chronicles, strutils -import ../../../status/status -import ../../../status/libstatus/settings as status_settings +import ../../../status/[status, settings] import ../../../status/libstatus/types import options @@ -25,7 +24,7 @@ QtObject: proc isBackedUp*(self: MnemonicView): bool {.slot.} = if self.isMnemonicBackedUp.isNone: - self.isMnemonicBackedUp = some(status_settings.getSetting[string](Setting.Mnemonic, "") == "") + self.isMnemonicBackedUp = some(self.status.settings.getSetting[:string](Setting.Mnemonic, "") == "") self.isMnemonicBackedUp.get() proc seedPhraseRemoved*(self: MnemonicView) {.signal.} @@ -36,7 +35,7 @@ QtObject: proc getMnemonic*(self: MnemonicView): QVariant {.slot.} = # Do not keep the mnemonic in memory, so fetch it when necessary - let mnemonic = status_settings.getSetting[string](Setting.Mnemonic, "") + let mnemonic = self.status.settings.getSetting[:string](Setting.Mnemonic, "") return newQVariant(mnemonic) QtProperty[QVariant] get: @@ -44,12 +43,12 @@ QtObject: notify = seedPhraseRemoved proc remove*(self: MnemonicView) {.slot.} = - discard status_settings.saveSetting(Setting.Mnemonic, "") + discard self.status.settings.saveSetting(Setting.Mnemonic, "") self.isMnemonicBackedUp = some(true) self.seedPhraseRemoved() proc getWord*(self: MnemonicView, idx: int): string {.slot.} = - let mnemonics = status_settings.getSetting[string](Setting.Mnemonic, "").split(" ") + let mnemonics = self.status.settings.getSetting[:string](Setting.Mnemonic, "").split(" ") return mnemonics[idx] diff --git a/src/app/provider/view.nim b/src/app/provider/view.nim index 36391c7f0f..602b7515ab 100644 --- a/src/app/provider/view.nim +++ b/src/app/provider/view.nim @@ -1,5 +1,5 @@ import NimQml -import ../../status/[status, ens, chat/stickers, wallet] +import ../../status/[status, ens, chat/stickers, wallet, settings] import ../../status/libstatus/types import ../../status/libstatus/accounts import ../../status/libstatus/core diff --git a/src/app/wallet/core.nim b/src/app/wallet/core.nim index 9a2909d613..76b939c3e8 100644 --- a/src/app/wallet/core.nim +++ b/src/app/wallet/core.nim @@ -3,7 +3,6 @@ import NimQml, strformat, strutils, chronicles, sugar, sequtils import view import views/[asset_list, account_list, account_item] import ../../status/libstatus/wallet as status_wallet -# import ../../status/libstatus/settings as status_settings import ../../status/libstatus/types as status_types import ../../status/signals/types import ../../status/[status, wallet, settings] diff --git a/src/app/wallet/view.nim b/src/app/wallet/view.nim index 1dc7fa7f47..e23a3c261d 100644 --- a/src/app/wallet/view.nim +++ b/src/app/wallet/view.nim @@ -6,11 +6,10 @@ import # vendor libs NimQml, chronicles, stint import # status-desktop libs - ../../status/[status, wallet], + ../../status/[status, wallet, settings], ../../status/wallet/collectibles as status_collectibles, ../../status/libstatus/accounts/constants, ../../status/libstatus/wallet as status_wallet, - ../../status/libstatus/settings as status_settings, ../../status/libstatus/tokens, ../../status/libstatus/types, ../../status/libstatus/utils as status_utils, ../../status/libstatus/eth/contracts, ../../status/ens as status_ens, @@ -801,7 +800,7 @@ QtObject: proc setDappBrowserAddress*(self: WalletView) {.slot.} = if(self.accounts.rowCount() == 0): return - let dappAddress = status_settings.getSetting[string](Setting.DappsAddress) + let dappAddress = self.status.settings.getSetting[:string](Setting.DappsAddress) var index = self.accounts.getAccountIndexByAddress(dappAddress) if index == -1: index = 0 let selectedAccount = self.accounts.getAccount(index) diff --git a/src/status/settings.nim b/src/status/settings.nim index b992c77005..3515472f3d 100644 --- a/src/status/settings.nim +++ b/src/status/settings.nim @@ -5,6 +5,7 @@ import import libstatus/settings as status_settings import ../eventemitter +import signals/types #TODO: temporary? import libstatus/types as LibStatusTypes @@ -17,6 +18,9 @@ proc newSettingsModel*(events: EventEmitter): SettingsModel = result = SettingsModel() result.events = events +proc saveSetting*(self: SettingsModel, key: Setting, value: string | JsonNode | bool): StatusGoError = + result = status_settings.saveSetting(key, value) + proc getSetting*[T](self: SettingsModel, name: Setting, defaultValue: T, useCached: bool = true): T = result = status_settings.getSetting(name, defaultValue, useCached) @@ -25,3 +29,21 @@ proc getSetting*[T](self: SettingsModel, name: Setting, useCached: bool = true): proc getCurrentNetworkDetails*(self: SettingsModel): LibStatusTypes.NetworkDetails = result = status_settings.getCurrentNetworkDetails() + +proc getMailservers*(self: SettingsModel):JsonNode = + result = status_settings.getMailservers() + +proc getPinnedMailserver*(self: SettingsModel): string = + result = status_settings.getPinnedMailserver() + +proc pinMailserver*(self: SettingsModel, enode: string = "") = + status_settings.pinMailserver(enode) + +proc saveMailserver*(self: SettingsModel, name, enode: string) = + status_settings.saveMailserver(name, enode) + +proc getFleet*(self: SettingsModel): Fleet = + result = status_settings.getFleet() + +proc getCurrentNetwork*(self: SettingsModel): Network = + result = status_settings.getCurrentNetwork()