(feat/desktop) Add toggle for mainnet transaction validation with nimbus (#13227)
- Adds the View for the toogle button
This commit is contained in:
parent
7736cd8950
commit
f236782490
|
@ -116,6 +116,18 @@ proc toggleDebug*(self: Controller) =
|
||||||
|
|
||||||
self.delegate.onDebugToggled()
|
self.delegate.onDebugToggled()
|
||||||
|
|
||||||
|
proc isNimbusProxyEnabled*(self: Controller): bool =
|
||||||
|
return self.nodeConfigurationService.isNimbusProxyEnabled()
|
||||||
|
|
||||||
|
proc toggleNimbusProxy*(self: Controller) =
|
||||||
|
let enabled = self.nodeConfigurationService.isNimbusProxyEnabled()
|
||||||
|
|
||||||
|
if(not self.nodeConfigurationService.setNimbusProxyConfig(not enabled)):
|
||||||
|
error "an error occurred, we couldn't toggle nimbus proxy"
|
||||||
|
return
|
||||||
|
|
||||||
|
self.delegate.onNimbusProxyToggled()
|
||||||
|
|
||||||
proc toggleCommunitiesPortalSection*(self: Controller) =
|
proc toggleCommunitiesPortalSection*(self: Controller) =
|
||||||
self.events.emit(TOGGLE_SECTION, ToggleSectionArgs(sectionType: SectionType.CommunitiesPortal))
|
self.events.emit(TOGGLE_SECTION, ToggleSectionArgs(sectionType: SectionType.CommunitiesPortal))
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,9 @@ method onAutoMessageToggled*(self: AccessInterface) {.base.} =
|
||||||
method onDebugToggled*(self: AccessInterface) {.base.} =
|
method onDebugToggled*(self: AccessInterface) {.base.} =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method onNimbusProxyToggled*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
method viewDidLoad*(self: AccessInterface) {.base.} =
|
method viewDidLoad*(self: AccessInterface) {.base.} =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
@ -69,6 +72,12 @@ method isRuntimeLogLevelSet*(self: AccessInterface): bool {.base.} =
|
||||||
method toggleDebug*(self: AccessInterface) {.base.} =
|
method toggleDebug*(self: AccessInterface) {.base.} =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method isNimbusProxyEnabled*(self: AccessInterface): bool {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method toggleNimbusProxy*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
method toggleCommunitiesPortalSection*(self: AccessInterface) {.base.} =
|
method toggleCommunitiesPortalSection*(self: AccessInterface) {.base.} =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
|
|
@ -105,6 +105,15 @@ method toggleDebug*(self: Module) =
|
||||||
method onDebugToggled*(self: Module) =
|
method onDebugToggled*(self: Module) =
|
||||||
self.view.isDebugEnabledChanged()
|
self.view.isDebugEnabledChanged()
|
||||||
|
|
||||||
|
method isNimbusProxyEnabled*(self: Module): bool =
|
||||||
|
self.controller.isNimbusProxyEnabled()
|
||||||
|
|
||||||
|
method toggleNimbusProxy*(self: Module) =
|
||||||
|
self.controller.toggleNimbusProxy()
|
||||||
|
|
||||||
|
method onNimbusProxyToggled*(self: Module) =
|
||||||
|
self.view.isNimbusProxyEnabledChanged()
|
||||||
|
|
||||||
method isRuntimeLogLevelSet*(self: Module): bool =
|
method isRuntimeLogLevelSet*(self: Module): bool =
|
||||||
return constants.runtimeLogLevelSet()
|
return constants.runtimeLogLevelSet()
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,16 @@ QtObject:
|
||||||
proc toggleDebug*(self: View) {.slot.} =
|
proc toggleDebug*(self: View) {.slot.} =
|
||||||
self.delegate.toggleDebug()
|
self.delegate.toggleDebug()
|
||||||
|
|
||||||
|
proc isNimbusProxyEnabledChanged*(self: View) {.signal.}
|
||||||
|
proc getIsNimbusProxyEnabled*(self: View): bool {.slot.} =
|
||||||
|
return self.delegate.isNimbusProxyEnabled()
|
||||||
|
QtProperty[bool] isNimbusProxyEnabled:
|
||||||
|
read = getIsNimbusProxyEnabled
|
||||||
|
notify = isNimbusProxyEnabledChanged
|
||||||
|
|
||||||
|
proc toggleNimbusProxy*(self: View) {.slot.} =
|
||||||
|
self.delegate.toggleNimbusProxy()
|
||||||
|
|
||||||
proc getIsRuntimeLogLevelSet*(self: View): bool {.slot.} =
|
proc getIsRuntimeLogLevelSet*(self: View): bool {.slot.} =
|
||||||
return self.delegate.isRuntimeLogLevelSet()
|
return self.delegate.isRuntimeLogLevelSet()
|
||||||
QtProperty[bool] isRuntimeLogLevelSet:
|
QtProperty[bool] isRuntimeLogLevelSet:
|
||||||
|
|
|
@ -107,6 +107,9 @@ type
|
||||||
EnableFilterFullNode*: bool
|
EnableFilterFullNode*: bool
|
||||||
UseShardAsDefaultTopic*: bool
|
UseShardAsDefaultTopic*: bool
|
||||||
|
|
||||||
|
NimbusProxyConfig* = object
|
||||||
|
Enabled*: bool
|
||||||
|
|
||||||
ShhextConfig* = object
|
ShhextConfig* = object
|
||||||
PFSEnabled*: bool
|
PFSEnabled*: bool
|
||||||
BackupDisabledDataDir*: string
|
BackupDisabledDataDir*: string
|
||||||
|
@ -230,11 +233,15 @@ type
|
||||||
RequireTopics*: RequireTopics
|
RequireTopics*: RequireTopics
|
||||||
MailServerRegistryAddress*: string
|
MailServerRegistryAddress*: string
|
||||||
PushNotificationServerConfig*: PushNotificationServerConfig # not used in the app yet
|
PushNotificationServerConfig*: PushNotificationServerConfig # not used in the app yet
|
||||||
|
NimbusProxyConfig*: NimbusProxyConfig
|
||||||
|
|
||||||
proc toUpstreamConfig*(jsonObj: JsonNode): UpstreamConfig =
|
proc toUpstreamConfig*(jsonObj: JsonNode): UpstreamConfig =
|
||||||
discard jsonObj.getProp("Enabled", result.Enabled)
|
discard jsonObj.getProp("Enabled", result.Enabled)
|
||||||
discard jsonObj.getProp("URL", result.URL)
|
discard jsonObj.getProp("URL", result.URL)
|
||||||
|
|
||||||
|
proc toNimbusProxyConfig*(jsonObj: JsonNode): NimbusProxyConfig =
|
||||||
|
discard jsonObj.getProp("Enabled", result.Enabled)
|
||||||
|
|
||||||
proc toNetwork*(jsonObj: JsonNode): Network =
|
proc toNetwork*(jsonObj: JsonNode): Network =
|
||||||
discard jsonObj.getProp("chainId", result.chainId)
|
discard jsonObj.getProp("chainId", result.chainId)
|
||||||
discard jsonObj.getProp("chainName", result.chainName)
|
discard jsonObj.getProp("chainName", result.chainName)
|
||||||
|
@ -484,6 +491,10 @@ proc toNodeConfigDto*(jsonObj: JsonNode): NodeConfigDto =
|
||||||
discard jsonObj.getProp("EnableNTPSync", result.EnableNTPSync)
|
discard jsonObj.getProp("EnableNTPSync", result.EnableNTPSync)
|
||||||
discard jsonObj.getProp("MailServerRegistryAddress", result.MailServerRegistryAddress)
|
discard jsonObj.getProp("MailServerRegistryAddress", result.MailServerRegistryAddress)
|
||||||
|
|
||||||
|
var nimbusProxyConfigObj: JsonNode
|
||||||
|
if(jsonObj.getProp("NimbusProxyConfig", nimbusProxyConfigObj)):
|
||||||
|
result.NimbusProxyConfig = toNimbusProxyConfig(nimbusProxyConfigObj)
|
||||||
|
|
||||||
var upstreamConfigObj: JsonNode
|
var upstreamConfigObj: JsonNode
|
||||||
if(jsonObj.getProp("UpstreamConfig", upstreamConfigObj)):
|
if(jsonObj.getProp("UpstreamConfig", upstreamConfigObj)):
|
||||||
result.UpstreamConfig = toUpstreamConfig(upstreamConfigObj)
|
result.UpstreamConfig = toUpstreamConfig(upstreamConfigObj)
|
||||||
|
|
|
@ -211,6 +211,17 @@ proc setLogLevel*(self: Service, logLevel: LogLevel): bool =
|
||||||
else:
|
else:
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
proc getNimbusProxyConfig(self: Service): bool =
|
||||||
|
return self.configuration.NimbusProxyConfig.Enabled
|
||||||
|
|
||||||
|
proc isNimbusProxyEnabled*(self: Service): bool =
|
||||||
|
return self.getNimbusProxyConfig()
|
||||||
|
|
||||||
|
proc setNimbusProxyConfig*(self: Service, value: bool): bool =
|
||||||
|
var newConfiguration = self.configuration
|
||||||
|
newConfiguration.NimbusProxyConfig.Enabled = value
|
||||||
|
return self.saveConfiguration(newConfiguration)
|
||||||
|
|
||||||
proc isV2LightMode*(self: Service): bool =
|
proc isV2LightMode*(self: Service): bool =
|
||||||
return self.configuration.WakuV2Config.LightClient
|
return self.configuration.WakuV2Config.LightClient
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ QtObject {
|
||||||
property bool wakuV2LightClientEnabled: advancedModule? advancedModule.wakuV2LightClientEnabled : false
|
property bool wakuV2LightClientEnabled: advancedModule? advancedModule.wakuV2LightClientEnabled : false
|
||||||
property bool isTelemetryEnabled: advancedModule? advancedModule.isTelemetryEnabled : false
|
property bool isTelemetryEnabled: advancedModule? advancedModule.isTelemetryEnabled : false
|
||||||
property bool isAutoMessageEnabled: advancedModule? advancedModule.isAutoMessageEnabled : false
|
property bool isAutoMessageEnabled: advancedModule? advancedModule.isAutoMessageEnabled : false
|
||||||
|
property bool isNimbusProxyEnabled: advancedModule? advancedModule.isNimbusProxyEnabled : false
|
||||||
property bool isDebugEnabled: advancedModule? advancedModule.isDebugEnabled : false
|
property bool isDebugEnabled: advancedModule? advancedModule.isDebugEnabled : false
|
||||||
readonly property bool isWakuV2ShardedCommunitiesEnabled: localAppSettings.wakuV2ShardedCommunitiesEnabled ?? false
|
readonly property bool isWakuV2ShardedCommunitiesEnabled: localAppSettings.wakuV2ShardedCommunitiesEnabled ?? false
|
||||||
property int logMaxBackups: advancedModule ? advancedModule.logMaxBackups : 1
|
property int logMaxBackups: advancedModule ? advancedModule.logMaxBackups : 1
|
||||||
|
@ -89,6 +90,13 @@ QtObject {
|
||||||
root.advancedModule.toggleDebug()
|
root.advancedModule.toggleDebug()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toggleNimbusProxy() {
|
||||||
|
if(!root.advancedModule)
|
||||||
|
return
|
||||||
|
|
||||||
|
root.advancedModule.toggleNimbusProxy()
|
||||||
|
}
|
||||||
|
|
||||||
function setMaxLogBackups(value) {
|
function setMaxLogBackups(value) {
|
||||||
if(!root.advancedModule)
|
if(!root.advancedModule)
|
||||||
return
|
return
|
||||||
|
|
|
@ -82,6 +82,17 @@ SettingsContentBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StatusSettingsLineButton {
|
||||||
|
anchors.leftMargin: 0
|
||||||
|
anchors.rightMargin: 0
|
||||||
|
text: qsTr("Mainnet data verified by Nimbus")
|
||||||
|
isSwitch: true
|
||||||
|
switchChecked: root.advancedStore.isNimbusProxyEnabled
|
||||||
|
onClicked: {
|
||||||
|
Global.openPopup(enableNimbusProxyComponent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
StatusBaseText {
|
StatusBaseText {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -551,6 +562,27 @@ SettingsContentBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: enableNimbusProxyComponent
|
||||||
|
ConfirmationDialog {
|
||||||
|
property bool mode: false
|
||||||
|
|
||||||
|
id: confirmDialog
|
||||||
|
destroyOnClose: true
|
||||||
|
showCancelButton: true
|
||||||
|
confirmationText: qsTr("Are you sure you want to %1 Nimbus proxy? You need to restart the app for this change to take effect.").arg(root.advancedStore.isNimbusProxyEnabled ?
|
||||||
|
qsTr("disable") :
|
||||||
|
qsTr("enable"))
|
||||||
|
onConfirmButtonClicked: {
|
||||||
|
root.advancedStore.toggleNimbusProxy()
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
onCancelButtonClicked: {
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
id: changeNumberOfLogsArchived
|
id: changeNumberOfLogsArchived
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue