Skip to content

Commit 39e3d53

Browse files
Refactory wallet and daemon rpc data model
1 parent 357c266 commit 39e3d53

6 files changed

Lines changed: 74 additions & 184 deletions

File tree

src/cpp/daemon/py_monero_daemon_model.cpp

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -767,10 +767,7 @@ void PyMoneroDaemonInfo::from_property_tree(const boost::property_tree::ptree& n
767767
else if (key == std::string("adjusted_time")) info->m_adjusted_timestamp = it->second.get_value<uint64_t>();
768768
else if (key == std::string("target")) info->m_target = it->second.get_value<uint64_t>();
769769
else if (key == std::string("target_height")) info->m_target_height = it->second.get_value<uint64_t>();
770-
else if (key == std::string("top_block_hash") || key == std::string("top_hash")) {
771-
std::string top_hash = it->second.data();
772-
if (!top_hash.empty()) info->m_top_block_hash = top_hash;
773-
}
770+
else if ((key == std::string("top_block_hash") || key == std::string("top_hash")) && !it->second.data().empty()) info->m_top_block_hash = it->second.data();
774771
else if (key == std::string("tx_count")) info->m_num_txs = it->second.get_value<int>();
775772
else if (key == std::string("tx_pool_size")) info->m_num_txs_pool = it->second.get_value<int>();
776773
else if (key == std::string("was_bootstrap_ever_used")) info->m_was_bootstrap_ever_used = it->second.get_value<bool>();
@@ -792,10 +789,7 @@ void PyMoneroDaemonSyncInfo::from_property_tree(const boost::property_tree::ptre
792789
// TODO implement overview field
793790
//else if (key == std::string("overview") && !it->second.data().empty()) info->m_overview = it->second.data();
794791
else if (key == std::string("credits")) info->m_credits = it->second.get_value<uint64_t>();
795-
else if (key == std::string("top_hash")) {
796-
std::string top_hash = it->second.data();
797-
if (!top_hash.empty()) info->m_top_block_hash = top_hash;
798-
}
792+
else if (key == std::string("top_hash") && !it->second.data().empty()) info->m_top_block_hash = it->second.data();
799793
}
800794
}
801795

@@ -811,10 +805,7 @@ void PyMoneroHardForkInfo::from_property_tree(const boost::property_tree::ptree&
811805
else if (key == std::string("window")) info->m_window = it->second.get_value<int>();
812806
else if (key == std::string("voting")) info->m_voting = it->second.get_value<int>();
813807
else if (key == std::string("credits")) info->m_credits = it->second.get_value<uint64_t>();
814-
else if (key == std::string("top_hash")) {
815-
std::string top_hash = it->second.data();
816-
if (!top_hash.empty()) info->m_top_block_hash = top_hash;
817-
}
808+
else if (key == std::string("top_hash") && !it->second.data().empty()) info->m_top_block_hash = it->second.data();
818809
}
819810
}
820811

src/cpp/daemon/py_monero_daemon_model.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,15 @@ class PyMoneroDownloadUpdateParams : public PyMoneroRequestParams {
5050
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
5151
};
5252

53-
class PyMoneroStartMiningParams : public PyMoneroRequestParams {
53+
class PyMoneroStartMiningParams : public PyMoneroJsonRequestParams {
5454
public:
5555
boost::optional<std::string> m_address;
5656
boost::optional<int> m_num_threads;
5757
boost::optional<bool> m_is_background;
5858
boost::optional<bool> m_ignore_battery;
5959

6060
PyMoneroStartMiningParams(const std::string& address, int num_threads, bool is_background, bool ignore_battery);
61+
PyMoneroStartMiningParams(int num_threads, bool is_background, bool ignore_battery): m_num_threads(num_threads), m_is_background(is_background), m_ignore_battery(ignore_battery) { }
6162

6263
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
6364
};

src/cpp/wallet/py_monero_wallet_model.cpp

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -274,10 +274,6 @@ PyMoneroCreateOpenWalletParams::PyMoneroCreateOpenWalletParams(const boost::opti
274274
m_autosave_current(autosave_current) {
275275
}
276276

277-
PyMoneroGetAccountsParams::PyMoneroGetAccountsParams(const std::string& tag): m_tag(tag) {
278-
if (tag.empty()) m_tag = boost::none;
279-
}
280-
281277
PyMoneroReserveProofParams::PyMoneroReserveProofParams(const std::string &message, bool all):
282278
m_all(all), m_message(message) {
283279
}
@@ -1191,12 +1187,15 @@ void PyMoneroSubaddress::from_rpc_property_tree(const boost::property_tree::ptre
11911187
void PyMoneroSubaddress::from_rpc_property_tree(const boost::property_tree::ptree& node, std::vector<std::shared_ptr<monero::monero_subaddress>>& subaddresses) {
11921188
for (boost::property_tree::ptree::const_iterator it = node.begin(); it != node.end(); ++it) {
11931189
std::string key = it->first;
1194-
if (key == std::string("per_subaddress")) {
1190+
bool rpc_subaddresses = key == std::string("addresses");
1191+
1192+
if (key == std::string("per_subaddress") || rpc_subaddresses) {
11951193
auto per_subaddress_node = it->second;
11961194

11971195
for (auto it2 = per_subaddress_node.begin(); it2 != per_subaddress_node.end(); ++it2) {
11981196
auto sub = std::make_shared<monero::monero_subaddress>();
1199-
from_property_tree(it2->second, sub);
1197+
if (rpc_subaddresses) from_rpc_property_tree(it2->second, sub);
1198+
else from_property_tree(it2->second, sub);
12001199
subaddresses.push_back(sub);
12011200
}
12021201
}
@@ -1528,16 +1527,6 @@ rapidjson::Value PyMoneroSplitIntegratedAddressParams::to_rapidjson_val(rapidjso
15281527
return root;
15291528
}
15301529

1531-
rapidjson::Value PyMoneroWalletStartMiningParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
1532-
rapidjson::Value root(rapidjson::kObjectType);
1533-
rapidjson::Value value_str(rapidjson::kStringType);
1534-
rapidjson::Value value_num(rapidjson::kNumberType);
1535-
if (m_num_threads != boost::none) monero_utils::add_json_member("threads_count", m_num_threads.get(), allocator, root, value_num);
1536-
if (m_is_background != boost::none) monero_utils::add_json_member("do_background_mining", m_is_background.get(), allocator, root);
1537-
if (m_ignore_battery != boost::none) monero_utils::add_json_member("ignore_battery", m_ignore_battery.get(), allocator, root);
1538-
return root;
1539-
}
1540-
15411530
rapidjson::Value PyMoneroPrepareMultisigParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
15421531
rapidjson::Value root(rapidjson::kObjectType);
15431532
if (m_enable_multisig_experimental != boost::none) monero_utils::add_json_member("enable_multisig_experimental", m_enable_multisig_experimental.get(), allocator, root);
@@ -1618,12 +1607,6 @@ rapidjson::Value PyMoneroWalletAttributeParams::to_rapidjson_val(rapidjson::Docu
16181607
return root;
16191608
}
16201609

1621-
rapidjson::Value PyMoneroScanTxParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
1622-
rapidjson::Value root(rapidjson::kObjectType);
1623-
if (!m_tx_hashes.empty()) root.AddMember("txids", monero_utils::to_rapidjson_val(allocator, m_tx_hashes), allocator);
1624-
return root;
1625-
}
1626-
16271610
rapidjson::Value PyMoneroSetDaemonParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
16281611
rapidjson::Value root(rapidjson::kObjectType);
16291612
rapidjson::Value value_str(rapidjson::kStringType);
@@ -1647,19 +1630,12 @@ rapidjson::Value PyMoneroAutoRefreshParams::to_rapidjson_val(rapidjson::Document
16471630
return root;
16481631
}
16491632

1650-
rapidjson::Value PyMoneroSetAccountTagDescriptionParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
1651-
rapidjson::Value root(rapidjson::kObjectType);
1652-
rapidjson::Value value_str(rapidjson::kStringType);
1653-
if (m_tag != boost::none) monero_utils::add_json_member("tag", m_tag.get(), allocator, root, value_str);
1654-
if (m_label != boost::none) monero_utils::add_json_member("label", m_label.get(), allocator, root, value_str);
1655-
return root;
1656-
}
1657-
16581633
rapidjson::Value PyMoneroTagAccountsParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
16591634
rapidjson::Value root(rapidjson::kObjectType);
16601635
rapidjson::Value value_str(rapidjson::kStringType);
16611636
if (m_tag != boost::none) monero_utils::add_json_member("tag", m_tag.get(), allocator, root, value_str);
1662-
if (!m_account_indices.empty()) root.AddMember("accounts", monero_utils::to_rapidjson_val(allocator, m_account_indices), allocator);
1637+
if (m_label != boost::none) monero_utils::add_json_member("label", m_label.get(), allocator, root, value_str);
1638+
if (!m_account_indices.empty()) root.AddMember("accounts", monero_utils::to_rapidjson_val(allocator, m_account_indices), allocator);
16631639
return root;
16641640
}
16651641

@@ -1683,13 +1659,6 @@ rapidjson::Value PyMoneroAddressBookEntryParams::to_rapidjson_val(rapidjson::Doc
16831659
return root;
16841660
}
16851661

1686-
rapidjson::Value PyMoneroGetAccountsParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
1687-
rapidjson::Value root(rapidjson::kObjectType);
1688-
rapidjson::Value value_str(rapidjson::kStringType);
1689-
if (m_tag != boost::none) monero_utils::add_json_member("tag", m_tag.get(), allocator, root, value_str);
1690-
return root;
1691-
}
1692-
16931662
rapidjson::Value PyMoneroVerifySignMessageParams::to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const {
16941663
rapidjson::Value root(rapidjson::kObjectType);
16951664
rapidjson::Value value_str(rapidjson::kStringType);

src/cpp/wallet/py_monero_wallet_model.h

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -240,17 +240,6 @@ class PyMoneroSplitIntegratedAddressParams : public PyMoneroJsonRequestParams {
240240
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
241241
};
242242

243-
class PyMoneroWalletStartMiningParams : public PyMoneroJsonRequestParams {
244-
public:
245-
boost::optional<int> m_num_threads;
246-
boost::optional<bool> m_is_background;
247-
boost::optional<bool> m_ignore_battery;
248-
249-
PyMoneroWalletStartMiningParams(int num_threads, bool is_background, bool ignore_battery): m_num_threads(num_threads), m_is_background(is_background), m_ignore_battery(ignore_battery) { }
250-
251-
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
252-
};
253-
254243
class PyMoneroPrepareMultisigParams : public PyMoneroJsonRequestParams {
255244
public:
256245
// TODO monero-docs document this parameter
@@ -414,15 +403,6 @@ class PyMoneroWalletAttributeParams : public PyMoneroJsonRequestParams {
414403
static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<PyMoneroWalletAttributeParams>& attributes);
415404
};
416405

417-
class PyMoneroScanTxParams : public PyMoneroJsonRequestParams {
418-
public:
419-
std::vector<std::string> m_tx_hashes;
420-
421-
PyMoneroScanTxParams(const std::vector<std::string>& tx_hashes): m_tx_hashes(tx_hashes) { }
422-
423-
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
424-
};
425-
426406
class PyMoneroSetDaemonParams : public PyMoneroJsonRequestParams {
427407
public:
428408
boost::optional<std::string> m_address;
@@ -448,21 +428,13 @@ class PyMoneroAutoRefreshParams : public PyMoneroJsonRequestParams {
448428
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
449429
};
450430

451-
class PyMoneroSetAccountTagDescriptionParams : public PyMoneroJsonRequestParams {
452-
public:
453-
boost::optional<std::string> m_tag;
454-
boost::optional<std::string> m_label;
455-
456-
PyMoneroSetAccountTagDescriptionParams(const std::string& tag, const std::string& label): m_tag(tag), m_label(label) { }
457-
458-
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
459-
};
460-
461431
class PyMoneroTagAccountsParams : public PyMoneroJsonRequestParams {
462432
public:
463433
std::vector<uint32_t> m_account_indices;
464434
boost::optional<std::string> m_tag;
435+
boost::optional<std::string> m_label;
465436

437+
PyMoneroTagAccountsParams(const std::string& tag, const std::string& label = ""): m_tag(tag), m_label(label) { }
466438
PyMoneroTagAccountsParams(const std::vector<uint32_t>& account_indices): m_account_indices(account_indices) { }
467439
PyMoneroTagAccountsParams(const std::string& tag, const std::vector<uint32_t>& account_indices): m_tag(tag), m_account_indices(account_indices) { }
468440

@@ -512,15 +484,6 @@ class PyMoneroWalletBalance {
512484
PyMoneroWalletBalance(uint64_t balance = 0, uint64_t unlocked_balance = 0): m_balance(balance), m_unlocked_balance(unlocked_balance) { }
513485
};
514486

515-
class PyMoneroGetAccountsParams : public PyMoneroJsonRequestParams {
516-
public:
517-
boost::optional<std::string> m_tag;
518-
519-
PyMoneroGetAccountsParams(const std::string& tag);
520-
521-
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
522-
};
523-
524487
class PyMoneroVerifySignMessageParams : public PyMoneroJsonRequestParams {
525488
public:
526489
boost::optional<std::string> m_data;

0 commit comments

Comments
 (0)