Changeset View
Changeset View
Standalone View
Standalone View
src/wallet/coincontrol.h
// Copyright (c) 2011-2016 The Bitcoin Core developers | // Copyright (c) 2011-2016 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#ifndef BITCOIN_WALLET_COINCONTROL_H | #ifndef BITCOIN_WALLET_COINCONTROL_H | ||||
#define BITCOIN_WALLET_COINCONTROL_H | #define BITCOIN_WALLET_COINCONTROL_H | ||||
#include <primitives/transaction.h> | #include <primitives/transaction.h> | ||||
#include <wallet/wallet.h> | #include <wallet/wallet.h> | ||||
#include <boost/optional.hpp> | #include <boost/optional.hpp> | ||||
const int DEFAULT_MIN_DEPTH = 0; | |||||
const int DEFAULT_MAX_DEPTH = 9999999; | |||||
/** Coin Control Features. */ | /** Coin Control Features. */ | ||||
class CCoinControl { | class CCoinControl { | ||||
public: | public: | ||||
CTxDestination destChange; | CTxDestination destChange; | ||||
//! Override the default change type if set, ignored if destChange is set | //! Override the default change type if set, ignored if destChange is set | ||||
boost::optional<OutputType> m_change_type; | boost::optional<OutputType> m_change_type; | ||||
//! If false, allows unselected inputs, but requires all selected inputs be | //! If false, allows unselected inputs, but requires all selected inputs be | ||||
//! used | //! used | ||||
bool fAllowOtherInputs; | bool fAllowOtherInputs; | ||||
//! Includes watch only addresses which are solvable | //! Includes watch only addresses which are solvable | ||||
bool fAllowWatchOnly; | bool fAllowWatchOnly; | ||||
//! Override automatic min/max checks on fee, m_feerate must be set if true | //! Override automatic min/max checks on fee, m_feerate must be set if true | ||||
bool fOverrideFeeRate; | bool fOverrideFeeRate; | ||||
//! Override the wallet's m_pay_tx_fee if set | //! Override the wallet's m_pay_tx_fee if set | ||||
boost::optional<CFeeRate> m_feerate; | boost::optional<CFeeRate> m_feerate; | ||||
//! Override the default confirmation target if set | //! Override the default confirmation target if set | ||||
boost::optional<unsigned int> m_confirm_target; | boost::optional<unsigned int> m_confirm_target; | ||||
//! Avoid partial use of funds sent to a given address | //! Avoid partial use of funds sent to a given address | ||||
bool m_avoid_partial_spends; | bool m_avoid_partial_spends; | ||||
//! Forbids inclusion of dirty (previously used) addresses | //! Forbids inclusion of dirty (previously used) addresses | ||||
bool m_avoid_address_reuse; | bool m_avoid_address_reuse; | ||||
//! Minimum chain depth value for coin availability | |||||
int m_min_depth = DEFAULT_MIN_DEPTH; | |||||
//! Maximum chain depth value for coin availability | |||||
int m_max_depth = DEFAULT_MAX_DEPTH; | |||||
CCoinControl() { SetNull(); } | CCoinControl() { SetNull(); } | ||||
void SetNull(); | void SetNull(); | ||||
bool HasSelected() const { return (setSelected.size() > 0); } | bool HasSelected() const { return (setSelected.size() > 0); } | ||||
bool IsSelected(const COutPoint &output) const { | bool IsSelected(const COutPoint &output) const { | ||||
Show All 18 Lines |