diff --git a/sail_ui/lib/rpcs/enforcer_rpc.dart b/sail_ui/lib/rpcs/enforcer_rpc.dart index 3f498b7f0..d707b443b 100644 --- a/sail_ui/lib/rpcs/enforcer_rpc.dart +++ b/sail_ui/lib/rpcs/enforcer_rpc.dart @@ -100,11 +100,27 @@ class EnforcerLive extends EnforcerRPC { '--node-rpc-pass=${mainchainConf.password}', '--node-rpc-user=${mainchainConf.username}', '--node-rpc-addr=$host:${mainchainConf.port}', + '--node-blocks-dir=${coreBlocksDir(mainchainConf)}', '--enable-wallet', if (binary.extraBootArgs.isNotEmpty) ...binary.extraBootArgs, ]; } + String coreBlocksDir(CoreConnectionSettings mainchainConf) { + // Determine the blocks directory + if (mainchainConf.configValues.containsKey('blocksdir')) { + // If blocksdir is explicitly set, use it directly + return path.join(mainchainConf.configValues['blocksdir']!, 'blocks'); + } else if (mainchainConf.configValues.containsKey('datadir')) { + // If datadir is set, use datadir/blocks + return path.join(mainchainConf.configValues['datadir']!, 'blocks'); + } else { + // If neither is set, use default datadir/blocks + final defaultDatadir = BitcoinCore().datadir(); + return path.join(defaultDatadir, 'blocks'); + } + } + @override Map get environment { return {'RUST_BACKTRACE': '1'};