diff --git a/src/wallet/MoneroWallet.cpp b/src/wallet/MoneroWallet.cpp index 3b66acb..d5ec28a 100644 --- a/src/wallet/MoneroWallet.cpp +++ b/src/wallet/MoneroWallet.cpp @@ -531,12 +531,20 @@ namespace monero { return account; } - MoneroAccount MoneroWallet::createAccount() { - throw runtime_error("Not implemented"); - } - MoneroAccount MoneroWallet::createAccount(const string& label) { - throw runtime_error("Not implemented"); + cout << "createAccount(" << label << ")" << endl; + + // create account + wallet2->add_subaddress_account(label); + + // initialize and return result + MoneroAccount account; + account.index = wallet2->get_num_subaddress_accounts() - 1; + account.primaryAddress = wallet2->get_subaddress_as_str({account.index.get(), 0}); + account.label = label; + account.balance = 0; + account.unlockedBalance = 0; + return account; } vector MoneroWallet::getSubaddresses(const uint32_t accountIdx) const { // TODO: this should call one below diff --git a/src/wallet/MoneroWallet.h b/src/wallet/MoneroWallet.h index bcc9e95..c7f5593 100644 --- a/src/wallet/MoneroWallet.h +++ b/src/wallet/MoneroWallet.h @@ -402,20 +402,13 @@ namespace monero { */ MoneroAccount getAccount(const uint32_t accountIdx, const bool includeSubaddresses) const; - /** - * Create a new account. - * - * @return the created account - */ - MoneroAccount createAccount(); - /** * Create a new account. * * @param label specifies the label for the account (optional) * @return the created account */ - MoneroAccount createAccount(const string& label); + MoneroAccount createAccount(const string& label = ""); /** * Get all subaddresses in an account. diff --git a/src/wallet/MoneroWalletModel.cpp b/src/wallet/MoneroWalletModel.cpp index 448eb9e..abc45e2 100644 --- a/src/wallet/MoneroWalletModel.cpp +++ b/src/wallet/MoneroWalletModel.cpp @@ -23,16 +23,10 @@ namespace monero { boost::property_tree::ptree node; if (index != boost::none) node.put("index", *index); if (primaryAddress != boost::none) node.put("primaryAddress", *primaryAddress); + if (label != boost::none) node.put("label", *label); if (balance != boost::none) node.put("balance", *balance); if (unlockedBalance != boost::none) node.put("unlockedBalance", *unlockedBalance); if (!subaddresses.empty()) node.add_child("subaddresses", MoneroUtils::toPropertyTree(subaddresses)); -// if (!subaddresses.empty()) { -// boost::property_tree::ptree subaddressesNode; -// for (const MoneroSubaddress& subaddress : subaddresses) { -// subaddressesNode.push_back(std::make_pair("", subaddress.toPropertyTree())); -// } -// node.add_child("subaddresses", subaddressesNode); -// } return node; }