Browse Source

Merge pull request #2679 from vhf/patch-1

Too many bitcoins allowed as amount. (Issue #2401)
0.10
Gavin Andresen 12 years ago
parent
commit
2e01ec3207
  1. 4
      src/qt/bitcoinamountfield.cpp
  2. 11
      src/qt/bitcoinunits.cpp
  3. 2
      src/qt/bitcoinunits.h

4
src/qt/bitcoinamountfield.cpp

@ -60,7 +60,9 @@ bool BitcoinAmountField::validate() @@ -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);

11
src/qt/bitcoinunits.cpp

@ -63,6 +63,17 @@ qint64 BitcoinUnits::factor(int unit) @@ -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)

2
src/qt/bitcoinunits.h

@ -38,6 +38,8 @@ public: @@ -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…
Cancel
Save