diff --git a/src/wallet/MoneroWallet.cpp b/src/wallet/MoneroWallet.cpp index 352bcde..032655d 100644 --- a/src/wallet/MoneroWallet.cpp +++ b/src/wallet/MoneroWallet.cpp @@ -242,78 +242,6 @@ namespace monero { } return true; } - //------------------------------------------------------------------------------------------------------------------------------ -// bool on_transfer(wallet2* wallet2, const wallet_rpc::COMMAND_RPC_TRANSFER::request& req, wallet_rpc::COMMAND_RPC_TRANSFER::response& res, epee::json_rpc::error& er) -// { -// -// std::vector dsts; -// std::vector extra; -// -// -// // validate the transfer requested and populate dsts & extra -// if (!validate_transfer(wallet2, req.destinations, req.payment_id, dsts, extra, true, er)) -// { -// return false; -// } -// -// try -// { -// uint64_t mixin = wallet2->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0); -// uint32_t priority = wallet2->adjust_priority(req.priority); -// std::vector ptx_vector = wallet2->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices); -// -// if (ptx_vector.empty()) -// { -// er.code = WALLET_RPC_ERROR_CODE_TX_NOT_POSSIBLE; -// er.message = "No transaction created"; -// return false; -// } -// -// // reject proposed transactions if there are more than one. see on_transfer_split below. -// if (ptx_vector.size() != 1) -// { -// er.code = WALLET_RPC_ERROR_CODE_TX_TOO_LARGE; -// er.message = "Transaction would be too large. try /transfer_split."; -// return false; -// } -// -// return fill_response(wallet2, ptx_vector, req.get_tx_key, res.tx_key, res.amount, res.fee, res.multisig_txset, res.unsigned_txset, req.do_not_relay, -// res.tx_hash, req.get_tx_hex, res.tx_blob, req.get_tx_metadata, res.tx_metadata, er); -// } -// catch (const std::exception& e) -// { -// return false; -// } -// return true; -// } -// //------------------------------------------------------------------------------------------------------------------------------ -// bool on_transfer_split(wallet2* wallet2, const wallet_rpc::COMMAND_RPC_TRANSFER_SPLIT::request& req, wallet_rpc::COMMAND_RPC_TRANSFER_SPLIT::response& res, epee::json_rpc::error& er) -// { -// -// std::vector dsts; -// std::vector extra; -// -// // validate the transfer requested and populate dsts & extra; RPC_TRANSFER::request and RPC_TRANSFER_SPLIT::request are identical types. -// if (!validate_transfer(wallet2, req.destinations, req.payment_id, dsts, extra, true, er)) -// { -// return false; -// } -// -// try -// { -// uint64_t mixin = wallet2->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0); -// uint32_t priority = wallet2->adjust_priority(req.priority); -// std::vector ptx_vector = wallet2->create_transactions_2(dsts, mixin, req.unlock_time, priority, extra, req.account_index, req.subaddr_indices); -// -// return fill_response(wallet2, ptx_vector, req.get_tx_keys, res.tx_key_list, res.amount_list, res.fee_list, res.multisig_txset, res.unsigned_txset, req.do_not_relay, -// res.tx_hash_list, req.get_tx_hex, res.tx_blob_list, req.get_tx_metadata, res.tx_metadata_list, er); -// } -// catch (const std::exception& e) -// { -// return false; -// } -// return true; -// } // -------------------- END WALLET RPC CODE DUPLCIATION --------------------- @@ -1118,8 +1046,8 @@ namespace monero { return vouts; } - vector> MoneroWallet::sendTxs(const MoneroSendRequest& request) { - cout << "MoneroWallet::sendTxs(request)" << endl; + vector> MoneroWallet::sendSplit(const MoneroSendRequest& request) { + cout << "MoneroWallet::sendSplit(request)" << endl; cout << "MoneroSendRequest: " << request.serialize() << endl; wallet_rpc::COMMAND_RPC_TRANSFER::request req; @@ -1140,7 +1068,7 @@ namespace monero { std::vector dsts; std::vector extra; if (!validate_transfer(wallet2.get(), trDestinations, paymentId, dsts, extra, true, err)) { - throw runtime_error("Need to handle sendTxs() validate_transfer error"); // TODO + throw runtime_error("Need to handle sendSplit() validate_transfer error"); // TODO } // prepare parameters for wallet2's create_transactions_2() @@ -1224,7 +1152,7 @@ namespace monero { tx->numConfirmations = 0; tx->mixin = request.mixin; tx->unlockTime = request.unlockTime == boost::none ? 0 : request.unlockTime.get(); - tx->lastRelayedTimestamp = static_cast(time(NULL)); + if (tx->isRelayed.get()) tx->lastRelayedTimestamp = static_cast(time(NULL)); // set last relayed timestamp to current time iff relayed // TODO monero core: this should be encapsulated in wallet2 outTransfer->accountIndex = *request.accountIndex; if (request.subaddressIndices.size() == 1) outTransfer->subaddressIndices.push_back(request.subaddressIndices[0]); // subaddress index is known iff 1 requested // TODO: get all known subaddress indices here outTransfer->destinations = request.destinations; diff --git a/src/wallet/MoneroWallet.h b/src/wallet/MoneroWallet.h index 1661fff..8391367 100644 --- a/src/wallet/MoneroWallet.h +++ b/src/wallet/MoneroWallet.h @@ -604,7 +604,7 @@ namespace monero { * @param request configures the transaction * @return the resulting transaction */ - vector> sendTxs(const MoneroSendRequest& request); + vector> sendSplit(const MoneroSendRequest& request); // // /** diff --git a/src/wallet/MoneroWalletModel.cpp b/src/wallet/MoneroWalletModel.cpp index 2a85e65..dd2b4ff 100644 --- a/src/wallet/MoneroWalletModel.cpp +++ b/src/wallet/MoneroWalletModel.cpp @@ -246,7 +246,7 @@ namespace monero { bool MoneroTransferRequest::meetsCriteria(MoneroTransfer* transfer) const { //cout << "MoneroTransferRequest::meetsCriteria()" << endl; if (transfer == nullptr) throw runtime_error("transfer is null"); // TODO: port to java/js - if (txRequest != boost::none && (*txRequest)->transferRequest != boost::none) throw runtime_error("Transfer request's tx request cannot have a circular transfer request"); // TODO: port to java/js + if (txRequest != boost::none && (*txRequest)->transferRequest != boost::none) throw runtime_error("Transfer request's tx request cannot have a circular transfer request"); // TODO: could auto detect and handl this. port to java/js //cout << "1" << endl; diff --git a/submodules/monero-core b/submodules/monero-core index 5fbfa8a..6335509 160000 --- a/submodules/monero-core +++ b/submodules/monero-core @@ -1 +1 @@ -Subproject commit 5fbfa8a65663e807c6500ae9485e898df9b7c470 +Subproject commit 6335509727661349e50c54c4e0eafd692f0d6907