aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2018-03-05 19:14:03 +0200
committerRiccardo Spagni <ric@spagni.net>2018-03-05 19:14:03 +0200
commitbaf640887d18719f1b432d8bd0772fb0a575526c (patch)
tree1f4f4e339e05f0a63d26efdf2664c8a916818134
parentMerge pull request #3348 (diff)
parentallow using ring size instead of mixin for rpc transfer (diff)
downloadmonero-baf640887d18719f1b432d8bd0772fb0a575526c.tar.xz
Merge pull request #3343
3d452367 allow using ring size instead of mixin for rpc transfer (cryptochangements34)
-rw-r--r--src/wallet/wallet_rpc_server.cpp40
-rw-r--r--src/wallet/wallet_rpc_server_commands_defs.h8
2 files changed, 44 insertions, 4 deletions
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<wallet2::pending_tx> 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<wallet2::pending_tx> 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<wallet2::pending_tx> 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<wallet2::pending_tx> 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<uint32_t> 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<uint32_t> 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<uint32_t> 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)