@@ -169,6 +169,7 @@ export const createSelfnodeConfig = async (
169169} ;
170170
171171export const exportWallets = async (
172+ exportSourcePath : string ,
172173 launcherConfig : LauncherConfig ,
173174 mainWindow : BrowserWindow ,
174175 locale : string
@@ -182,7 +183,8 @@ export const exportWallets = async (
182183 isFlight,
183184 } = launcherConfig ;
184185
185- logger . info ( 'ipcMain: Exporting wallets...' , {
186+ logger . info ( 'ipcMain: Starting wallets export...' , {
187+ exportSourcePath,
186188 exportWalletsBin,
187189 legacySecretKey,
188190 legacyWalletDB,
@@ -191,19 +193,19 @@ export const exportWallets = async (
191193 isFlight,
192194 } ) ;
193195
194- let legacySecretKeyPath = legacySecretKey ;
195- let legacyWalletDBPath = legacyWalletDB ;
196+ let legacySecretKeyPath = path . join ( exportSourcePath , legacySecretKey ) ;
197+ let legacyWalletDBPath = path . join ( exportSourcePath , legacyWalletDB ) ;
196198
197199 // In case of Daedalus Flight build we need to copy over
198- // legacySecretKey and legacyWalletDB from Mainnet state dir
200+ // legacySecretKey and legacyWalletDB from mainnet state dir
199201 // into Daedalus Flight state dir before extracting the wallets
200202 if ( isFlight ) {
201203 try {
202204 const response = await prepareMigrationData (
203205 mainWindow ,
204206 stateDir ,
205- legacySecretKey ,
206- legacyWalletDB ,
207+ legacySecretKeyPath ,
208+ legacyWalletDBPath ,
207209 locale
208210 ) ;
209211 legacySecretKeyPath = response . legacySecretKeyPath ;
@@ -219,26 +221,42 @@ export const exportWallets = async (
219221 }
220222 }
221223
222- const clusterFlags = [ ] ;
224+ // Export tool flags
225+ const exportWalletsBinFlags = [ ] ;
226+
227+ // Cluster flags
223228 if ( cluster === 'testnet' ) {
224- clusterFlags . push ( '--testnet' , TESTNET_MAGIC ) ;
229+ exportWalletsBinFlags . push ( '--testnet' , TESTNET_MAGIC ) ;
225230 } else {
226- clusterFlags . push ( '-- mainnet ') ;
231+ exportWalletsBinFlags . push ( '--mainnet' ) ;
227232 }
228233
229- const { stdout , stderr } = spawnSync ( exportWalletsBin , [
230- ...clusterFlags ,
231- '--keyfile' ,
232- legacySecretKeyPath ,
233- '--wallet-db-path' ,
234- legacyWalletDBPath ,
235- ] ) ;
234+ // Secret key flags
235+ exportWalletsBinFlags . push ( '--keyfile' , legacySecretKeyPath ) ;
236+
237+ // Wallet DB flags
238+ const legacyWalletDBPathExists = await fs . pathExists (
239+ `${ legacyWalletDBPath } -acid`
240+ ) ;
241+ if ( legacyWalletDBPathExists ) {
242+ exportWalletsBinFlags . push ( '--wallet-db-path' , legacyWalletDBPath ) ;
243+ }
244+
245+ logger . info ( 'ipcMain: Exporting wallets...' , {
246+ exportWalletsBin,
247+ exportWalletsBinFlags,
248+ } ) ;
236249
250+ const { stdout, stderr } = spawnSync ( exportWalletsBin , exportWalletsBinFlags ) ;
237251 const wallets = JSON . parse ( stdout . toString ( ) || '[]' ) ;
238252 const errors = stderr . toString ( ) ;
239253
240254 logger . info ( `ipcMain: Exported ${ wallets . length } wallets` , {
241- walletsData : wallets . map ( w => ( { name : w . name } ) ) ,
255+ walletsData : wallets . map ( w => ( {
256+ name : w . name ,
257+ id : w . id ,
258+ hasPassword : w . is_passphrase_empty ,
259+ } ) ) ,
242260 errors,
243261 } ) ;
244262
0 commit comments