diff options
author | Andrew Chow <achow101-github@achow101.com> | 2019-06-06 09:53:16 +0200 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2019-06-19 18:06:30 -0400 |
commit | 7c611e20007bf5face34d33dffa26c8db67e29ec (patch) | |
tree | 0af9a761777b24cdc6c44c20aa82f8cfe51fc6d5 /src/wallet/ismine.h | |
parent | 413e438ea9767710d4810c4400fd1242ca52cd1c (diff) |
Move ismine to wallet module
Diffstat (limited to 'src/wallet/ismine.h')
-rw-r--r-- | src/wallet/ismine.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/wallet/ismine.h b/src/wallet/ismine.h new file mode 100644 index 0000000000..e20008feed --- /dev/null +++ b/src/wallet/ismine.h @@ -0,0 +1,53 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2018 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_WALLET_ISMINE_H +#define BITCOIN_WALLET_ISMINE_H + +#include <script/standard.h> + +#include <stdint.h> +#include <bitset> + +class CKeyStore; +class CScript; + +/** IsMine() return codes */ +enum isminetype : unsigned int +{ + ISMINE_NO = 0, + ISMINE_WATCH_ONLY = 1 << 0, + ISMINE_SPENDABLE = 1 << 1, + ISMINE_USED = 1 << 2, + ISMINE_ALL = ISMINE_WATCH_ONLY | ISMINE_SPENDABLE, + ISMINE_ALL_USED = ISMINE_ALL | ISMINE_USED, + ISMINE_ENUM_ELEMENTS, +}; +/** used for bitflags of isminetype */ +typedef uint8_t isminefilter; + +isminetype IsMine(const CKeyStore& keystore, const CScript& scriptPubKey); +isminetype IsMine(const CKeyStore& keystore, const CTxDestination& dest); + +/** + * Cachable amount subdivided into watchonly and spendable parts. + */ +struct CachableAmount +{ + // NO and ALL are never (supposed to be) cached + std::bitset<ISMINE_ENUM_ELEMENTS> m_cached; + CAmount m_value[ISMINE_ENUM_ELEMENTS]; + inline void Reset() + { + m_cached.reset(); + } + void Set(isminefilter filter, CAmount value) + { + m_cached.set(filter); + m_value[filter] = value; + } +}; + +#endif // BITCOIN_WALLET_ISMINE_H |