diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp index b50133e4a..220dbbc58 100644 --- a/src/wallet/wallet_rpc_server.cpp +++ b/src/wallet/wallet_rpc_server.cpp @@ -786,7 +786,15 @@ namespace tools try { - uint64_t mixin = m_wallet->adjust_mixin(req.mixin); + uint64_t mixin; + if(req.ring_size != 0) + { + mixin = m_wallet->adjust_mixin(req.ring_size - 1); + } + else + { + mixin = m_wallet->adjust_mixin(req.mixin); + } uint32_t priority = m_wallet->adjust_priority(req.priority); std::vector ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, m_trusted_daemon); @@ -838,7 +846,15 @@ namespace tools try { - uint64_t mixin = m_wallet->adjust_mixin(req.mixin); + uint64_t mixin; + if(req.ring_size != 0) + { + mixin = m_wallet->adjust_mixin(req.ring_size - 1); + } + else + { + mixin = m_wallet->adjust_mixin(req.mixin); + } uint32_t priority = m_wallet->adjust_priority(req.priority); LOG_PRINT_L2("on_transfer_split calling create_transactions_2"); std::vector ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, m_trusted_daemon); @@ -905,7 +921,15 @@ namespace tools try { - uint64_t mixin = m_wallet->adjust_mixin(req.mixin); + uint64_t mixin; + if(req.ring_size != 0) + { + mixin = m_wallet->adjust_mixin(req.ring_size - 1); + } + else + { + mixin = m_wallet->adjust_mixin(req.mixin); + } uint32_t priority = m_wallet->adjust_priority(req.priority); std::vector ptx_vector = m_wallet->create_transactions_all(req.below_amount, dsts[0].addr, dsts[0].is_subaddress, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices, m_trusted_daemon); @@ -953,7 +977,15 @@ namespace tools try { - uint64_t mixin = m_wallet->adjust_mixin(req.mixin); + uint64_t mixin; + if(req.ring_size != 0) + { + mixin = m_wallet->adjust_mixin(req.ring_size - 1); + } + else + { + mixin = m_wallet->adjust_mixin(req.mixin); + } uint32_t priority = m_wallet->adjust_priority(req.priority); std::vector ptx_vector = m_wallet->create_transactions_single(ki, dsts[0].addr, dsts[0].is_subaddress, mixin, req.unlock_time, priority, extra, m_trusted_daemon); diff --git a/src/wallet/wallet_rpc_server_commands_defs.h b/src/wallet/wallet_rpc_server_commands_defs.h index e38cba5a5..370fea858 100644 --- a/src/wallet/wallet_rpc_server_commands_defs.h +++ b/src/wallet/wallet_rpc_server_commands_defs.h @@ -385,6 +385,7 @@ namespace wallet_rpc std::set subaddr_indices; uint32_t priority; uint64_t mixin; + uint64_t ring_size; uint64_t unlock_time; std::string payment_id; bool get_tx_key; @@ -398,6 +399,7 @@ namespace wallet_rpc KV_SERIALIZE(subaddr_indices) KV_SERIALIZE(priority) KV_SERIALIZE(mixin) + KV_SERIALIZE_OPT(ring_size, (uint64_t)0) KV_SERIALIZE(unlock_time) KV_SERIALIZE(payment_id) KV_SERIALIZE(get_tx_key) @@ -440,6 +442,7 @@ namespace wallet_rpc std::set subaddr_indices; uint32_t priority; uint64_t mixin; + uint64_t ring_size; uint64_t unlock_time; std::string payment_id; bool get_tx_keys; @@ -453,6 +456,7 @@ namespace wallet_rpc KV_SERIALIZE(subaddr_indices) KV_SERIALIZE(priority) KV_SERIALIZE(mixin) + KV_SERIALIZE_OPT(ring_size, (uint64_t)0) KV_SERIALIZE(unlock_time) KV_SERIALIZE(payment_id) KV_SERIALIZE(get_tx_keys) @@ -550,6 +554,7 @@ namespace wallet_rpc std::set subaddr_indices; uint32_t priority; uint64_t mixin; + uint64_t ring_size; uint64_t unlock_time; std::string payment_id; bool get_tx_keys; @@ -564,6 +569,7 @@ namespace wallet_rpc KV_SERIALIZE(subaddr_indices) KV_SERIALIZE(priority) KV_SERIALIZE(mixin) + KV_SERIALIZE_OPT(ring_size, (uint64_t)0) KV_SERIALIZE(unlock_time) KV_SERIALIZE(payment_id) KV_SERIALIZE(get_tx_keys) @@ -612,6 +618,7 @@ namespace wallet_rpc std::string address; uint32_t priority; uint64_t mixin; + uint64_t ring_size; uint64_t unlock_time; std::string payment_id; bool get_tx_key; @@ -624,6 +631,7 @@ namespace wallet_rpc KV_SERIALIZE(address) KV_SERIALIZE(priority) KV_SERIALIZE(mixin) + KV_SERIALIZE_OPT(ring_size, (uint64_t)0) KV_SERIALIZE(unlock_time) KV_SERIALIZE(payment_id) KV_SERIALIZE(get_tx_key)