/Users/eugenesiegel/btc/bitcoin/src/consensus/amount.h
Line | Count | Source |
1 | | // Copyright (c) 2009-2010 Satoshi Nakamoto |
2 | | // Copyright (c) 2009-2021 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_CONSENSUS_AMOUNT_H |
7 | | #define BITCOIN_CONSENSUS_AMOUNT_H |
8 | | |
9 | | #include <cstdint> |
10 | | |
11 | | /** Amount in satoshis (Can be negative) */ |
12 | | typedef int64_t CAmount; |
13 | | |
14 | | /** The amount of satoshis in one BTC. */ |
15 | | static constexpr CAmount COIN = 100000000; |
16 | | |
17 | | /** No amount larger than this (in satoshi) is valid. |
18 | | * |
19 | | * Note that this constant is *not* the total money supply, which in Bitcoin |
20 | | * currently happens to be less than 21,000,000 BTC for various reasons, but |
21 | | * rather a sanity check. As this sanity check is used by consensus-critical |
22 | | * validation code, the exact value of the MAX_MONEY constant is consensus |
23 | | * critical; in unusual circumstances like a(nother) overflow bug that allowed |
24 | | * for the creation of coins out of thin air modification could lead to a fork. |
25 | | * */ |
26 | | static constexpr CAmount MAX_MONEY = 21000000 * COIN; |
27 | 159M | inline bool MoneyRange(const CAmount& nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); } |
28 | | |
29 | | #endif // BITCOIN_CONSENSUS_AMOUNT_H |