Bitcoin
ismine.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2018 The Bitcoin Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 
6 #ifndef BITCOIN_WALLET_ISMINE_H
7 #define BITCOIN_WALLET_ISMINE_H
8 
9 #include <script/standard.h>
10 
11 #include <stdint.h>
12 #include <bitset>
13 
14 class CWallet;
15 class CScript;
16 
18 enum isminetype : unsigned int
19 {
20  ISMINE_NO = 0,
22  ISMINE_SPENDABLE = 1 << 1,
23  ISMINE_USED = 1 << 2,
27 };
30 
31 isminetype IsMine(const CWallet& wallet, const CScript& scriptPubKey);
32 isminetype IsMine(const CWallet& wallet, const CTxDestination& dest);
33 
38 {
39  // NO and ALL are never (supposed to be) cached
40  std::bitset<ISMINE_ENUM_ELEMENTS> m_cached;
42  inline void Reset()
43  {
44  m_cached.reset();
45  }
46  void Set(isminefilter filter, CAmount value)
47  {
48  m_cached.set(filter);
49  m_value[filter] = value;
50  }
51 };
52 
53 #endif // BITCOIN_WALLET_ISMINE_H
Definition: ismine.h:24
isminetype IsMine(const CWallet &wallet, const CScript &scriptPubKey)
Definition: ismine.cpp:175
Definition: wallet.h:724
Definition: ismine.h:23
std::bitset< ISMINE_ENUM_ELEMENTS > m_cached
Definition: ismine.h:40
uint8_t isminefilter
Definition: ismine.h:29
unsigned char uint8_t
Definition: stdint.h:19
CAmount m_value[ISMINE_ENUM_ELEMENTS]
Definition: ismine.h:41
int64_t CAmount
Definition: amount.h:12
void Reset()
Definition: ismine.h:42
Definition: ismine.h:22
Definition: ismine.h:20
uint8_t isminefilter
Definition: wallet.h:28
isminetype
Definition: ismine.h:18
Definition: ismine.h:21
Definition: ismine.h:25
Definition: ismine.h:26
void Set(isminefilter filter, CAmount value)
Definition: ismine.h:46
Definition: script.h:390
Definition: ismine.h:37
boost::variant< CNoDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown > CTxDestination
Definition: standard.h:139