Fix Windows local node startup and stop flow
build / Build Linux wallet (push) Successful in 2m24s
build / Build Windows wallet (push) Successful in 21m55s

This commit is contained in:
Codex Bot
2026-04-19 15:21:25 +02:00
parent a5a1548c94
commit 9c5adb0e94
2 changed files with 12 additions and 25 deletions
+10 -19
View File
@@ -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');
}
}
+2 -6
View File
@@ -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) {