Fix Windows local node startup and stop flow
This commit is contained in:
+10
-19
@@ -137,6 +137,16 @@ class _PeyaAppState extends ConsumerState<PeyaApp> {
|
||||
if (walletState.walletInfo == null) {
|
||||
return;
|
||||
}
|
||||
if (config.nodeConfig.mode == NodeMode.local) {
|
||||
final localNode = ref.read(localNodeServiceProvider);
|
||||
final started = await localNode.ensureRunning(
|
||||
config: LocalNodeConfig(extraArgs: config.localNodeArgs),
|
||||
);
|
||||
if (!started) {
|
||||
ref.read(loggerProvider).w('Failed to ensure local node is running.');
|
||||
return;
|
||||
}
|
||||
}
|
||||
try {
|
||||
await ref
|
||||
.read(walletControllerProvider.notifier)
|
||||
@@ -144,25 +154,6 @@ class _PeyaAppState extends ConsumerState<PeyaApp> {
|
||||
await ref.read(walletControllerProvider.notifier).syncNow();
|
||||
return;
|
||||
} catch (error) {
|
||||
if (config.nodeConfig.mode == NodeMode.local) {
|
||||
final localNode = ref.read(localNodeServiceProvider);
|
||||
final started = await localNode.ensureRunning(
|
||||
config: LocalNodeConfig(extraArgs: config.localNodeArgs),
|
||||
);
|
||||
if (started) {
|
||||
try {
|
||||
await ref
|
||||
.read(walletControllerProvider.notifier)
|
||||
.connectNode(config.nodeConfig);
|
||||
await ref.read(walletControllerProvider.notifier).syncNow();
|
||||
return;
|
||||
} catch (retryError) {
|
||||
ref
|
||||
.read(loggerProvider)
|
||||
.w('Failed to connect after starting local node: $retryError');
|
||||
}
|
||||
}
|
||||
}
|
||||
ref.read(loggerProvider).w('Failed to connect node: $error');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,14 +190,10 @@ class WindowsLocalNodeService implements LocalNodeService {
|
||||
HttpClient? client;
|
||||
try {
|
||||
client = HttpClient();
|
||||
final uri = Uri.parse('http://${config.rpcHost}:${config.rpcPort}/json_rpc');
|
||||
final uri = Uri.parse('http://${config.rpcHost}:${config.rpcPort}/stop_daemon');
|
||||
final request = await client.postUrl(uri);
|
||||
request.headers.contentType = ContentType.json;
|
||||
request.write(jsonEncode({
|
||||
'jsonrpc': '2.0',
|
||||
'id': '0',
|
||||
'method': 'stop_daemon',
|
||||
}));
|
||||
request.write('{}');
|
||||
final response = await request.close();
|
||||
final body = await utf8.decoder.bind(response).join();
|
||||
if (response.statusCode != HttpStatus.ok) {
|
||||
|
||||
Reference in New Issue
Block a user