mirror of
https://github.com/monero-project/monero.git
synced 2024-11-17 08:17:37 +00:00
wallet2: default to trying to keep 5 outputs of 2+ monero
In the case where previously a second unneeded output would be added to a transaction. This should help *some* of the cases where outputs are slowly being consolidated, leading to the whole balance being locked when sending monero.
This commit is contained in:
parent
475481949a
commit
64983fcee4
1 changed files with 13 additions and 3 deletions
|
@ -131,6 +131,9 @@ using namespace cryptonote;
|
|||
#define GAMMA_SHAPE 19.28
|
||||
#define GAMMA_SCALE (1/1.61)
|
||||
|
||||
#define DEFAULT_MIN_OUTPUT_COUNT 5
|
||||
#define DEFAULT_MIN_OUTPUT_VALUE (2*COIN)
|
||||
|
||||
static const std::string MULTISIG_SIGNATURE_MAGIC = "SigMultisigPkV1";
|
||||
static const std::string MULTISIG_EXTRA_INFO_MAGIC = "MultisigxV1";
|
||||
|
||||
|
@ -9373,9 +9376,16 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryp
|
|||
idx = pop_best_value(indices, tx.selected_transfers, true);
|
||||
|
||||
// we might not want to add it if it's a large output and we don't have many left
|
||||
if (m_transfers[idx].amount() >= m_min_output_value) {
|
||||
if (get_count_above(m_transfers, *unused_transfers_indices, m_min_output_value) < m_min_output_count) {
|
||||
LOG_PRINT_L2("Second output was not strictly needed, and we're running out of outputs above " << print_money(m_min_output_value) << ", not adding");
|
||||
uint64_t min_output_value = m_min_output_value;
|
||||
uint32_t min_output_count = m_min_output_count;
|
||||
if (min_output_value == 0 && min_output_count == 0)
|
||||
{
|
||||
min_output_value = DEFAULT_MIN_OUTPUT_VALUE;
|
||||
min_output_count = DEFAULT_MIN_OUTPUT_COUNT;
|
||||
}
|
||||
if (m_transfers[idx].amount() >= min_output_value) {
|
||||
if (get_count_above(m_transfers, *unused_transfers_indices, min_output_value) < min_output_count) {
|
||||
LOG_PRINT_L2("Second output was not strictly needed, and we're running out of outputs above " << print_money(min_output_value) << ", not adding");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue