diff options
| author | Wladimir J. van der Laan <[email protected]> | 2015-07-24 11:07:52 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2015-07-24 11:08:52 +0200 |
| commit | bfd807ff3287f391dcf184b755997fb9d0456a1a (patch) | |
| tree | cbc3dd0388a24ba2d74eae87feffc217695368d6 /src/rpcserver.cpp | |
| parent | Merge pull request #6465 (diff) | |
| parent | util: use locale-independent parsing in ParseDouble (diff) | |
| download | discoin-bfd807ff3287f391dcf184b755997fb9d0456a1a.tar.xz discoin-bfd807ff3287f391dcf184b755997fb9d0456a1a.zip | |
Merge pull request #6456
ec249d4 util: use locale-independent parsing in ParseDouble (Wladimir J. van der Laan)
7650449 univalue: Avoid unnecessary roundtrip through double for numbers (Wladimir J. van der Laan)
e061e27 rpc: Make ValueFromAmount always return 8 decimals (Wladimir J. van der Laan)
Diffstat (limited to 'src/rpcserver.cpp')
| -rw-r--r-- | src/rpcserver.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index bcad06a0c..201fc5eba 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -11,7 +11,6 @@ #include "sync.h" #include "ui_interface.h" #include "util.h" -#include "utilmoneystr.h" #include "utilstrencodings.h" #ifdef ENABLE_WALLET #include "wallet/wallet.h" @@ -121,7 +120,7 @@ void RPCTypeCheckObj(const UniValue& o, CAmount AmountFromValue(const UniValue& value) { - if (!value.isReal() && !value.isNum()) + if (!value.isNum()) throw JSONRPCError(RPC_TYPE_ERROR, "Amount is not a number"); CAmount amount; if (!ParseFixedPoint(value.getValStr(), 8, &amount)) @@ -133,7 +132,12 @@ CAmount AmountFromValue(const UniValue& value) UniValue ValueFromAmount(const CAmount& amount) { - return UniValue(UniValue::VREAL, FormatMoney(amount)); + bool sign = amount < 0; + int64_t n_abs = (sign ? -amount : amount); + int64_t quotient = n_abs / COIN; + int64_t remainder = n_abs % COIN; + return UniValue(UniValue::VNUM, + strprintf("%s%d.%08d", sign ? "-" : "", quotient, remainder)); } uint256 ParseHashV(const UniValue& v, string strName) |