@ -106,19 +106,6 @@ ApplicationWindow {
}
}
property string remoteNodeService: {
/ / s u p p o r t u s e r - d e f i n e d r e m o t e n o d e a g g r e g a t o r s
if ( persistentSettings . remoteNodeService ) {
var service = persistentSettings . remoteNodeService ;
if ( service . charAt ( service . length - 1 ) !== "/" )
service += "/" ;
return service ;
}
/ / m o n e r o - g u i w o r k g r o u p m a i n t a i n e d
return "https://autonode.xmr.pm/"
}
/ / t r u e i f w a l l e t e v e r s y n c h r o n i z e d
property bool walletInitialized : false
@ -705,7 +692,8 @@ ApplicationWindow {
simpleModeConnectionTimer . stop ( ) ;
appWindow . showProcessingSplash ( qsTr ( "Waiting for daemon to start..." ) )
daemonManager . start ( flags , persistentSettings . nettype , persistentSettings . blockchainDataDir , persistentSettings . bootstrapNodeAddress ) ;
const noSync = appWindow . walletMode === 0 ;
daemonManager . start ( flags , persistentSettings . nettype , persistentSettings . blockchainDataDir , persistentSettings . bootstrapNodeAddress , noSync ) ;
persistentSettings . daemonFlags = flags
}
@ -1402,7 +1390,6 @@ ApplicationWindow {
property bool useRemoteNode: false
property string remoteNodeAddress: ""
property string bootstrapNodeAddress: ""
property string remoteNodeRegion: ""
property bool segregatePreForkOutputs: true
property bool keyReuseMitigation2: true
property int segregationHeight: 0
@ -1410,7 +1397,6 @@ ApplicationWindow {
property bool hideBalance: false
property bool lockOnUserInActivity: true
property int walletMode: 2
property string remoteNodeService: ""
property int lockOnUserInActivityInterval: 10 / / m i n u t e s
property bool showPid: false
property bool blackTheme: true
@ -2023,41 +2009,44 @@ ApplicationWindow {
onTriggered: appWindow . themeTransition = true ;
}
function checkNoSyncFlag ( ) {
if ( ! appWindow . daemonRunning ) {
return true ;
}
if ( appWindow . walletMode == 0 && ! daemonManager . noSync ( ) ) {
return false ;
}
if ( appWindow . walletMode == 1 && daemonManager . noSync ( ) ) {
return false ;
}
return true ;
}
function checkSimpleModeConnection ( ) {
/ / a u t o - c o n n e c t i o n m e c h a n i s m f o r s i m p l e m o d e
if ( persistentSettings . nettype != NetworkType . MAINNET ) return ;
if ( appWindow . walletMode >= 2 ) return ;
var disconnected = leftPanel . networkStatus . connected === Wallet . ConnectionStatus_Disconnected ;
var disconnectedEpoch = appWindow . disconnectedEpoch ;
if ( disconnectedEpoch === 0 ) {
const disconnectedTimeoutSec = 30 ;
const firstCheckDelaySec = 2 ;
const connected = leftPanel . networkStatus . connected === Wallet . ConnectionStatus_Connected ;
const firstRun = appWindow . disconnectedEpoch == 0 ;
if ( firstRun ) {
appWindow . disconnectedEpoch = Utils . epoch ( ) + firstCheckDelaySec - disconnectedTimeoutSec ;
} else if ( connected ) {
appWindow . disconnectedEpoch = Utils . epoch ( ) ;
}
/ / d i s c o n n e c t e d l o n g e r t h a n 5 s e c o n d s ?
if ( disconnected && disconnectedEpoch > 0 && ( Utils . epoch ( ) - disconnectedEpoch ) >= 5 ) {
/ / f o r b o o t s t r a p m o d e , f i r s t w a i t u n t i l d a e m o n i s k i l l e d
if ( appWindow . walletMode === 1 && appWindow . daemonRunning ) {
appWindow . stopDaemon ( ) ;
return ;
}
/ / f e t c h n e w n o d e l i s t
wizard . fetchRemoteNodes ( function ( ) {
/ / f e t c h e d n o d e , c o n n e c t
if ( appWindow . walletMode === 0 ) {
appWindow . connectRemoteNode ( ) ;
} else if ( appWindow . walletMode === 1 ) {
appWindow . startDaemon ( persistentSettings . daemonFlags ) ;
}
const sinceLastConnect = Utils . epoch ( ) - appWindow . disconnectedEpoch ;
if ( sinceLastConnect < disconnectedTimeoutSec && checkNoSyncFlag ( ) ) {
return ;
}
/ / r e s e t s t a t e
appWindow . disconnectedEpoch = 0 ;
return ;
} , function ( ) {
appWindow . showStatusMessage ( qsTr ( "Failed to fetch remote nodes from third-party server." ) , simpleModeConnectionTimer . interval / 1000 ) ;
} ) ;
if ( appWindow . daemonRunning ) {
appWindow . stopDaemon ( ) ;
}
appWindow . startDaemon ( persistentSettings . daemonFlags ) ;
appWindow . disconnectedEpoch = Utils . epoch ( ) ;
}
Timer {
@ -2136,7 +2125,12 @@ ApplicationWindow {
closeAccepted ( ) ;
} ;
confirmationDialog . open ( )
if ( appWindow . walletMode == 0 ) {
stopDaemon ( ) ;
closeAccepted ( ) ;
} else {
confirmationDialog . open ( ) ;
}
} else {
closeAccepted ( ) ;
@ -2248,11 +2242,16 @@ ApplicationWindow {
}
function changeWalletMode ( mode ) {
appWindow . disconnectedEpoch = 0 ;
appWindow . walletMode = mode ;
persistentSettings . walletMode = mode ;
persistentSettings . useRemoteNode = mode === 0 ? true : false ;
if ( mode < 2 && ( middlePanel . settingsView . settingsStateViewState === "Node" || middlePanel . settingsView . settingsStateViewState === "Log" ) ) {
middlePanel . settingsView . settingsStateViewState = "Wallet"
if ( mode < 2 ) {
persistentSettings . useRemoteNode = false ;
persistentSettings . bootstrapNodeAddress = "auto" ;
if ( middlePanel . settingsView . settingsStateViewState === "Node" || middlePanel . settingsView . settingsStateViewState === "Log" ) {
middlePanel . settingsView . settingsStateViewState = "Wallet"
}
}
console . log ( "walletMode changed: " + ( mode === 0 ? "simple" : mode === 1 ? "simple (bootstrap)" : "Advanced" ) ) ;
}