git / moonbite-core / src/wallet/ismine.h · raw

// Copyright (c) 2009-2010 Satoshi Nakamoto// Copyright (c) 2009-2019 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 CWallet;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;/** * 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