@ -3111,6 +3111,18 @@ namespace tools
er . message = " Invalid filename " ;
return false ;
}
if ( m_wallet & & req . autosave_current )
{
try
{
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
}
}
std : : string wallet_file = m_wallet_dir + " / " + req . filename ;
{
po : : options_description desc ( " dummy " ) ;
@ -3141,18 +3153,7 @@ namespace tools
}
if ( m_wallet )
{
try
{
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
}
delete m_wallet ;
}
m_wallet = wal . release ( ) ;
return true ;
}
@ -3161,14 +3162,17 @@ namespace tools
{
if ( ! m_wallet ) return not_open ( er ) ;
try
{
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
if ( req . autosave_current )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
try
{
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
}
}
delete m_wallet ;
m_wallet = NULL ;
@ -3385,6 +3389,20 @@ namespace tools
return false ;
}
if ( m_wallet & & req . autosave_current )
{
try
{
if ( ! wallet_file . empty ( ) )
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
}
}
try
{
if ( ! req . spendkey . empty ( ) )
@ -3433,19 +3451,7 @@ namespace tools
}
if ( m_wallet )
{
try
{
if ( ! wallet_file . empty ( ) )
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
}
delete m_wallet ;
}
m_wallet = wal . release ( ) ;
res . address = m_wallet - > get_account ( ) . get_public_address_str ( m_wallet - > nettype ( ) ) ;
return true ;
@ -3511,6 +3517,18 @@ namespace tools
return false ;
}
}
if ( m_wallet & & req . autosave_current )
{
try
{
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
}
}
// process seed_offset if given
{
@ -3621,18 +3639,7 @@ namespace tools
}
if ( m_wallet )
{
try
{
m_wallet - > store ( ) ;
}
catch ( const std : : exception & e )
{
handle_rpc_exception ( std : : current_exception ( ) , er , WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR ) ;
return false ;
}
delete m_wallet ;
}
m_wallet = wal . release ( ) ;
res . address = m_wallet - > get_account ( ) . get_public_address_str ( m_wallet - > nettype ( ) ) ;
res . info = " Wallet has been restored successfully. " ;