Skip to content

Commit

Permalink
wallet_api: use std::optional
Browse files Browse the repository at this point in the history
  • Loading branch information
tobtoht committed Oct 1, 2024
1 parent 14d2ac0 commit 5b9a197
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 23 deletions.
6 changes: 3 additions & 3 deletions src/wallet/api/wallet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1831,7 +1831,7 @@ PendingTransaction* WalletImpl::restoreMultisigTransaction(const string& signDat
// - unconfirmed_transfer_details;
// - confirmed_transfer_details)

PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<string> &dst_addr, const string &payment_id, optional<std::vector<uint64_t>> amount, uint32_t mixin_count, PendingTransaction::Priority priority, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::set<std::string> &preferred_inputs, bool subtractFeeFromAmount)
PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<string> &dst_addr, const string &payment_id, std::optional<std::vector<uint64_t>> amount, uint32_t mixin_count, PendingTransaction::Priority priority, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::set<std::string> &preferred_inputs, bool subtractFeeFromAmount)

{
clearStatus();
Expand Down Expand Up @@ -1956,11 +1956,11 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
return transaction;
}

PendingTransaction *WalletImpl::createTransaction(const string &dst_addr, const string &payment_id, optional<uint64_t> amount, uint32_t mixin_count,
PendingTransaction *WalletImpl::createTransaction(const string &dst_addr, const string &payment_id, std::optional<uint64_t> amount, uint32_t mixin_count,
PendingTransaction::Priority priority, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const std::set<std::string> &preferred_inputs, bool subtractFeeFromAmount)

{
return createTransactionMultDest(std::vector<string> {dst_addr}, payment_id, amount ? (std::vector<uint64_t> {*amount}) : (optional<std::vector<uint64_t>>()), mixin_count, priority, subaddr_account, subaddr_indices, preferred_inputs, subtractFeeFromAmount);
return createTransactionMultDest(std::vector<string> {dst_addr}, payment_id, amount ? (std::vector<uint64_t> {*amount}) : (std::optional<std::vector<uint64_t>>()), mixin_count, priority, subaddr_account, subaddr_indices, preferred_inputs, subtractFeeFromAmount);
}

PendingTransaction *WalletImpl::createTransactionSingle(const std::string &key_image, const std::string &dst_addr,
Expand Down
4 changes: 2 additions & 2 deletions src/wallet/api/wallet.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,14 +161,14 @@ class WalletImpl : public Wallet
PendingTransaction* restoreMultisigTransaction(const std::string& signData) override;

PendingTransaction * createTransactionMultDest(const std::vector<std::string> &dst_addr, const std::string &payment_id,
optional<std::vector<uint64_t>> amount, uint32_t mixin_count,
std::optional<std::vector<uint64_t>> amount, uint32_t mixin_count,
PendingTransaction::Priority priority = PendingTransaction::Priority_Low,
uint32_t subaddr_account = 0,
std::set<uint32_t> subaddr_indices = {},
const std::set<std::string> &preferred_inputs = {},
bool subtractFeeFromAmount = false) override;
PendingTransaction * createTransaction(const std::string &dst_addr, const std::string &payment_id,
optional<uint64_t> amount, uint32_t mixin_count,
std::optional<uint64_t> amount, uint32_t mixin_count,
PendingTransaction::Priority priority = PendingTransaction::Priority_Low,
uint32_t subaddr_account = 0,
std::set<uint32_t> subaddr_indices = {},
Expand Down
24 changes: 6 additions & 18 deletions src/wallet/api/wallet2_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
#include <iostream>
#include <stdexcept>
#include <cstdint>
#include <optional>

namespace tools {
class wallet2;
Expand All @@ -58,19 +59,6 @@ enum NetworkType : uint8_t {
void onStartup();
}

template<typename T>
class optional {
public:
optional(): set(false) {}
optional(const T &t): t(t), set(true) {}
const T &operator*() const { return t; }
T &operator*() { return t; }
operator bool() const { return set; }
private:
T t;
bool set;
};

/*
* @brief Transaction construction data
*/
Expand Down Expand Up @@ -303,16 +291,16 @@ struct WalletListener
/**
* @brief called by device when PIN is needed
*/
virtual optional<std::string> onDevicePinRequest() {
virtual std::optional<std::string> onDevicePinRequest() {
throw std::runtime_error("Not supported");
}

/**
* @brief called by device when passphrase entry is needed
*/
virtual optional<std::string> onDevicePassphraseRequest(bool & on_device) {
virtual std::optional<std::string> onDevicePassphraseRequest(bool & on_device) {
on_device = true;
return optional<std::string>();
return std::optional<std::string>();
}

/**
Expand Down Expand Up @@ -756,7 +744,7 @@ struct Wallet
*/

virtual PendingTransaction * createTransactionMultDest(const std::vector<std::string> &dst_addr, const std::string &payment_id,
optional<std::vector<uint64_t>> amount, uint32_t mixin_count,
std::optional<std::vector<uint64_t>> amount, uint32_t mixin_count,
PendingTransaction::Priority = PendingTransaction::Priority_Low,
uint32_t subaddr_account = 0,
std::set<uint32_t> subaddr_indices = {}, const std::set<std::string> &preferred_inputs = {},
Expand All @@ -776,7 +764,7 @@ struct Wallet
*/

virtual PendingTransaction * createTransaction(const std::string &dst_addr, const std::string &payment_id,
optional<uint64_t> amount, uint32_t mixin_count,
std::optional<uint64_t> amount, uint32_t mixin_count,
PendingTransaction::Priority = PendingTransaction::Priority_Low,
uint32_t subaddr_account = 0,
std::set<uint32_t> subaddr_indices = {},
Expand Down

0 comments on commit 5b9a197

Please sign in to comment.