Skip to content

Commit 2a7c53b

Browse files
committed
Merge #13264: [qt] Satoshi unit
c722f00 [qt] Added satoshi unit "Satoshi (sat)" will be displayed in dropdowns and status bars. "sat" will be used when appended to numbers. (GreatSock) 4ddbcbf [qt] BitcoinUnits::format with zero decimals Formatting with zero decimals will now result in 123 instead of 123.0 (GreatSock) Pull request description: This adds satoshi as an additional amount unit for the GUI. Tree-SHA512: c166c96c9a434b6ac700e1628e54f2dbb132c5232d949c0b464f61276a91d56f9bab4a62d50780535f1d34eaac6484f693a1e0611cd7c9d1ed5ebee066c0dd08
2 parents 1b53e4f + c722f00 commit 2a7c53b

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

src/qt/bitcoinunits.cpp

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ QList<BitcoinUnits::Unit> BitcoinUnits::availableUnits()
2020
unitlist.append(BTC);
2121
unitlist.append(mBTC);
2222
unitlist.append(uBTC);
23+
unitlist.append(SAT);
2324
return unitlist;
2425
}
2526

@@ -30,6 +31,7 @@ bool BitcoinUnits::valid(int unit)
3031
case BTC:
3132
case mBTC:
3233
case uBTC:
34+
case SAT:
3335
return true;
3436
default:
3537
return false;
@@ -43,6 +45,7 @@ QString BitcoinUnits::longName(int unit)
4345
case BTC: return QString("BTC");
4446
case mBTC: return QString("mBTC");
4547
case uBTC: return QString::fromUtf8("µBTC (bits)");
48+
case SAT: return QString("Satoshi (sat)");
4649
default: return QString("???");
4750
}
4851
}
@@ -52,7 +55,8 @@ QString BitcoinUnits::shortName(int unit)
5255
switch(unit)
5356
{
5457
case uBTC: return QString::fromUtf8("bits");
55-
default: return longName(unit);
58+
case SAT: return QString("sat");
59+
default: return longName(unit);
5660
}
5761
}
5862

@@ -63,6 +67,7 @@ QString BitcoinUnits::description(int unit)
6367
case BTC: return QString("Bitcoins");
6468
case mBTC: return QString("Milli-Bitcoins (1 / 1" THIN_SP_UTF8 "000)");
6569
case uBTC: return QString("Micro-Bitcoins (bits) (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
70+
case SAT: return QString("Satoshi (sat) (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
6671
default: return QString("???");
6772
}
6873
}
@@ -71,10 +76,11 @@ qint64 BitcoinUnits::factor(int unit)
7176
{
7277
switch(unit)
7378
{
74-
case BTC: return 100000000;
79+
case BTC: return 100000000;
7580
case mBTC: return 100000;
7681
case uBTC: return 100;
77-
default: return 100000000;
82+
case SAT: return 1;
83+
default: return 100000000;
7884
}
7985
}
8086

@@ -85,6 +91,7 @@ int BitcoinUnits::decimals(int unit)
8591
case BTC: return 8;
8692
case mBTC: return 5;
8793
case uBTC: return 2;
94+
case SAT: return 0;
8895
default: return 0;
8996
}
9097
}
@@ -100,9 +107,7 @@ QString BitcoinUnits::format(int unit, const CAmount& nIn, bool fPlus, Separator
100107
int num_decimals = decimals(unit);
101108
qint64 n_abs = (n > 0 ? n : -n);
102109
qint64 quotient = n_abs / coin;
103-
qint64 remainder = n_abs % coin;
104110
QString quotient_str = QString::number(quotient);
105-
QString remainder_str = QString::number(remainder).rightJustified(num_decimals, '0');
106111

107112
// Use SI-style thin space separators as these are locale independent and can't be
108113
// confused with the decimal marker.
@@ -116,7 +121,14 @@ QString BitcoinUnits::format(int unit, const CAmount& nIn, bool fPlus, Separator
116121
quotient_str.insert(0, '-');
117122
else if (fPlus && n > 0)
118123
quotient_str.insert(0, '+');
119-
return quotient_str + QString(".") + remainder_str;
124+
125+
if (num_decimals > 0) {
126+
qint64 remainder = n_abs % coin;
127+
QString remainder_str = QString::number(remainder).rightJustified(num_decimals, '0');
128+
return quotient_str + QString(".") + remainder_str;
129+
} else {
130+
return quotient_str;
131+
}
120132
}
121133

122134

src/qt/bitcoinunits.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ class BitcoinUnits: public QAbstractListModel
5858
{
5959
BTC,
6060
mBTC,
61-
uBTC
61+
uBTC,
62+
SAT
6263
};
6364

6465
enum SeparatorStyle

0 commit comments

Comments
 (0)