mirror of
https://github.com/monero-project/monero.git
synced 2024-11-18 00:37:43 +00:00
wallet_rpc_server: adjust small ring sizes to 5 for v6
This commit is contained in:
parent
181a008aa3
commit
8655ba04ba
2 changed files with 18 additions and 11 deletions
|
@ -227,6 +227,19 @@ namespace tools
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
uint64_t wallet_rpc_server::adjust_mixin(uint64_t mixin)
|
||||||
|
{
|
||||||
|
if (mixin < 4 && m_wallet->use_fork_rules(6, 10)) {
|
||||||
|
MWARNING("Requested ring size " << (mixin + 1) << " too low for hard fork 6, using 5");
|
||||||
|
mixin = 4;
|
||||||
|
}
|
||||||
|
else if (mixin < 2 && m_wallet->use_fork_rules(2, 10)) {
|
||||||
|
MWARNING("Requested ring size " << (mixin + 1) << " too low for hard fork 2, using 3");
|
||||||
|
mixin = 2;
|
||||||
|
}
|
||||||
|
return mixin;
|
||||||
|
}
|
||||||
|
//------------------------------------------------------------------------------------------------------------------------------
|
||||||
void wallet_rpc_server::fill_transfer_entry(tools::wallet_rpc::transfer_entry &entry, const crypto::hash &txid, const crypto::hash &payment_id, const tools::wallet2::payment_details &pd)
|
void wallet_rpc_server::fill_transfer_entry(tools::wallet_rpc::transfer_entry &entry, const crypto::hash &txid, const crypto::hash &payment_id, const tools::wallet2::payment_details &pd)
|
||||||
{
|
{
|
||||||
entry.txid = string_tools::pod_to_hex(pd.m_tx_hash);
|
entry.txid = string_tools::pod_to_hex(pd.m_tx_hash);
|
||||||
|
@ -454,11 +467,7 @@ namespace tools
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
uint64_t mixin = req.mixin;
|
uint64_t mixin = adjust_mixin(req.mixin);
|
||||||
if (mixin < 2 && m_wallet->use_fork_rules(2, 10)) {
|
|
||||||
LOG_PRINT_L1("Requested ring size " << (req.mixin + 1) << " too low for hard fork 2, using 3");
|
|
||||||
mixin = 2;
|
|
||||||
}
|
|
||||||
std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, req.priority, extra, m_trusted_daemon);
|
std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, req.priority, extra, m_trusted_daemon);
|
||||||
|
|
||||||
// reject proposed transactions if there are more than one. see on_transfer_split below.
|
// reject proposed transactions if there are more than one. see on_transfer_split below.
|
||||||
|
@ -531,12 +540,8 @@ namespace tools
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
uint64_t mixin = req.mixin;
|
uint64_t mixin = adjust_mixin(req.mixin);
|
||||||
uint64_t ptx_amount;
|
uint64_t ptx_amount;
|
||||||
if (mixin < 2 && m_wallet->use_fork_rules(2, 10)) {
|
|
||||||
LOG_PRINT_L1("Requested ring size " << (req.mixin + 1) << " too low for hard fork 2, using 3");
|
|
||||||
mixin = 2;
|
|
||||||
}
|
|
||||||
std::vector<wallet2::pending_tx> ptx_vector;
|
std::vector<wallet2::pending_tx> ptx_vector;
|
||||||
LOG_PRINT_L2("on_transfer_split calling create_transactions_2");
|
LOG_PRINT_L2("on_transfer_split calling create_transactions_2");
|
||||||
ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, req.priority, extra, m_trusted_daemon);
|
ptx_vector = m_wallet->create_transactions_2(dsts, mixin, req.unlock_time, req.priority, extra, m_trusted_daemon);
|
||||||
|
@ -678,7 +683,8 @@ namespace tools
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_all(req.below_amount, dsts[0].addr, req.mixin, req.unlock_time, req.priority, extra, m_trusted_daemon);
|
uint64_t mixin = adjust_mixin(req.mixin);
|
||||||
|
std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_all(req.below_amount, dsts[0].addr, mixin, req.unlock_time, req.priority, extra, m_trusted_daemon);
|
||||||
|
|
||||||
if (!req.do_not_relay)
|
if (!req.do_not_relay)
|
||||||
m_wallet->commit_tx(ptx_vector);
|
m_wallet->commit_tx(ptx_vector);
|
||||||
|
|
|
@ -150,6 +150,7 @@ namespace tools
|
||||||
void fill_transfer_entry(tools::wallet_rpc::transfer_entry &entry, const crypto::hash &txid, const tools::wallet2::unconfirmed_transfer_details &pd);
|
void fill_transfer_entry(tools::wallet_rpc::transfer_entry &entry, const crypto::hash &txid, const tools::wallet2::unconfirmed_transfer_details &pd);
|
||||||
void fill_transfer_entry(tools::wallet_rpc::transfer_entry &entry, const crypto::hash &payment_id, const tools::wallet2::payment_details &pd);
|
void fill_transfer_entry(tools::wallet_rpc::transfer_entry &entry, const crypto::hash &payment_id, const tools::wallet2::payment_details &pd);
|
||||||
bool not_open(epee::json_rpc::error& er);
|
bool not_open(epee::json_rpc::error& er);
|
||||||
|
uint64_t adjust_mixin(uint64_t mixin);
|
||||||
|
|
||||||
wallet2 *m_wallet;
|
wallet2 *m_wallet;
|
||||||
std::string m_wallet_dir;
|
std::string m_wallet_dir;
|
||||||
|
|
Loading…
Reference in a new issue