mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-29 21:42:32 +02:00
Too many bitcoins allowed in amount. (#2401)
Using magic number doesn't seem right. Could we factor this out, together with https://github.com/bitcoin/bitcoin/blob/master/src/bitcoinrpc.cpp#L96 ? And what about BitcoinUnits::parse() as well ?
This commit is contained in:
parent
3702f127fd
commit
a35e268da4
@ -60,7 +60,9 @@ bool BitcoinAmountField::validate()
|
||||
bool valid = true;
|
||||
if (amount->value() == 0.0)
|
||||
valid = false;
|
||||
if (valid && !BitcoinUnits::parse(currentUnit, text(), 0))
|
||||
else if (!BitcoinUnits::parse(currentUnit, text(), 0))
|
||||
valid = false;
|
||||
else if (amount->value() > BitcoinUnits::maxAmount(currentUnit))
|
||||
valid = false;
|
||||
|
||||
setValid(valid);
|
||||
|
@ -63,6 +63,17 @@ qint64 BitcoinUnits::factor(int unit)
|
||||
}
|
||||
}
|
||||
|
||||
qint64 BitcoinUnits::maxAmount(int unit)
|
||||
{
|
||||
switch(unit)
|
||||
{
|
||||
case BTC: return Q_INT64_C(21000000);
|
||||
case mBTC: return Q_INT64_C(21000000000);
|
||||
case uBTC: return Q_INT64_C(21000000000000);
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int BitcoinUnits::amountDigits(int unit)
|
||||
{
|
||||
switch(unit)
|
||||
|
@ -38,6 +38,8 @@ public:
|
||||
static QString description(int unit);
|
||||
//! Number of Satoshis (1e-8) per unit
|
||||
static qint64 factor(int unit);
|
||||
//! Max amount per unit
|
||||
static qint64 maxAmount(int unit);
|
||||
//! Number of amount digits (to represent max number of coins)
|
||||
static int amountDigits(int unit);
|
||||
//! Number of decimals left
|
||||
|
Loading…
Reference in New Issue
Block a user