@ -99,10 +99,6 @@ typedef cryptonote::simple_wallet sw;
# define EXTENDED_LOGS_FILE "wallet_details.log"
# define DEFAULT_MIX 10
# define MIN_RING_SIZE 11 // Used to inform user about min ring size -- does not track actual protocol
# define OLD_AGE_WARN_THRESHOLD (30 * 86400 / DIFFICULTY_TARGET_V2) // 30 days
# define LOCK_IDLE_SCOPE() \
@ -2472,59 +2468,6 @@ bool simple_wallet::set_store_tx_info(const std::vector<std::string> &args/* = s
return true ;
}
bool simple_wallet : : set_default_ring_size ( const std : : vector < std : : string > & args /* = std::vector<std::string>()*/ )
{
if ( m_wallet - > watch_only ( ) )
{
fail_msg_writer ( ) < < tr ( " wallet is watch-only and cannot transfer " ) ;
return true ;
}
try
{
if ( strchr ( args [ 1 ] . c_str ( ) , ' - ' ) )
{
fail_msg_writer ( ) < < tr ( " ring size must be an integer >= " ) < < MIN_RING_SIZE ;
return true ;
}
uint32_t ring_size = boost : : lexical_cast < uint32_t > ( args [ 1 ] ) ;
if ( ring_size < MIN_RING_SIZE & & ring_size ! = 0 )
{
fail_msg_writer ( ) < < tr ( " ring size must be an integer >= " ) < < MIN_RING_SIZE ;
return true ;
}
if ( ring_size ! = 0 & & ring_size ! = DEFAULT_MIX + 1 )
{
if ( m_wallet - > use_fork_rules ( 8 , 0 ) )
{
message_writer ( ) < < tr ( " WARNING: from v8, ring size will be fixed and this setting will be ignored. " ) ;
}
else
{
message_writer ( ) < < tr ( " WARNING: this is a non default ring size, which may harm your privacy. Default is recommended. " ) ;
}
}
const auto pwd_container = get_and_verify_password ( ) ;
if ( pwd_container )
{
m_wallet - > default_mixin ( ring_size > 0 ? ring_size - 1 : 0 ) ;
m_wallet - > rewrite ( m_wallet_file , pwd_container - > password ( ) ) ;
}
return true ;
}
catch ( const boost : : bad_lexical_cast & )
{
fail_msg_writer ( ) < < tr ( " ring size must be an integer >= " ) < < MIN_RING_SIZE ;
return true ;
}
catch ( . . . )
{
fail_msg_writer ( ) < < tr ( " could not change default ring size " ) ;
return true ;
}
}
bool simple_wallet : : set_default_priority ( const std : : vector < std : : string > & args /* = std::vector<std::string>()*/ )
{
uint32_t priority = 0 ;
@ -3386,8 +3329,6 @@ simple_wallet::simple_wallet()
" Whether to print detailed information about ring members during confirmation. \n "
" store-tx-info <1|0> \n "
" Whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference. \n "
" default-ring-size <n> \n "
" Set the default ring size (obsolete). \n "
" auto-refresh <1|0> \n "
" Whether to automatically synchronize new blocks from the daemon. \n "
" refresh-type <full|optimize-coinbase|no-coinbase|default> \n "
@ -3896,7 +3837,6 @@ bool simple_wallet::set_variable(const std::vector<std::string> &args)
CHECK_SIMPLE_VARIABLE ( " always-confirm-transfers " , set_always_confirm_transfers , tr ( " 0 or 1 " ) ) ;
CHECK_SIMPLE_VARIABLE ( " print-ring-members " , set_print_ring_members , tr ( " 0 or 1 " ) ) ;
CHECK_SIMPLE_VARIABLE ( " store-tx-info " , set_store_tx_info , tr ( " 0 or 1 " ) ) ;
CHECK_SIMPLE_VARIABLE ( " default-ring-size " , set_default_ring_size , tr ( " integer >= " ) < < MIN_RING_SIZE ) ;
CHECK_SIMPLE_VARIABLE ( " auto-refresh " , set_auto_refresh , tr ( " 0 or 1 " ) ) ;
CHECK_SIMPLE_VARIABLE ( " refresh-type " , set_refresh_type , tr ( " full (slowest, no assumptions); optimize-coinbase (fast, assumes the whole coinbase is paid to a single address); no-coinbase (fastest, assumes we receive no coinbase transaction), default (same as optimize-coinbase) " ) ) ;
CHECK_SIMPLE_VARIABLE ( " priority " , set_default_priority , tr ( " 0, 1, 2, 3, or 4, or one of " ) < < join_priority_strings ( " , " ) ) ;
@ -6539,7 +6479,8 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vector<std::stri
priority = m_wallet - > adjust_priority ( priority ) ;
size_t fake_outs_count = DEFAULT_MIX ;
const size_t min_ring_size = m_wallet - > get_min_ring_size ( ) ;
size_t fake_outs_count = min_ring_size - 1 ;
if ( local_args . size ( ) > 0 ) {
size_t ring_size ;
if ( ! epee : : string_tools : : get_xtype_from_string ( ring_size , local_args [ 0 ] ) )
@ -6862,7 +6803,7 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vector<std::stri
if ( vin . type ( ) = = typeid ( txin_to_key ) )
{
const txin_to_key & in_to_key = boost : : get < txin_to_key > ( vin ) ;
if ( in_to_key . key_offsets . size ( ) ! = DEFAULT_MIX + 1 )
if ( in_to_key . key_offsets . size ( ) ! = min_ring_size )
default_ring_size = false ;
}
}
@ -7140,7 +7081,7 @@ bool simple_wallet::sweep_main(uint32_t account, uint64_t below, bool locked, co
priority = m_wallet - > adjust_priority ( priority ) ;
size_t fake_outs_count = DEFAULT_MIX ;
size_t fake_outs_count = m_wallet- > get_min_ring_size ( ) - 1 ;
if ( local_args . size ( ) > 0 ) {
size_t ring_size ;
if ( ! epee : : string_tools : : get_xtype_from_string ( ring_size , local_args [ 0 ] ) )
@ -7417,7 +7358,7 @@ bool simple_wallet::sweep_single(const std::vector<std::string> &args_)
priority = m_wallet - > adjust_priority ( priority ) ;
size_t fake_outs_count = DEFAULT_MIX ;
size_t fake_outs_count = m_wallet- > get_min_ring_size ( ) - 1 ;
if ( local_args . size ( ) > 0 ) {
size_t ring_size ;
if ( ! epee : : string_tools : : get_xtype_from_string ( ring_size , local_args [ 0 ] ) )