aboutsummaryrefslogtreecommitdiff
path: root/src/rpcserver.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <[email protected]>2015-07-24 11:07:52 +0200
committerWladimir J. van der Laan <[email protected]>2015-07-24 11:08:52 +0200
commitbfd807ff3287f391dcf184b755997fb9d0456a1a (patch)
treecbc3dd0388a24ba2d74eae87feffc217695368d6 /src/rpcserver.cpp
parentMerge pull request #6465 (diff)
parentutil: use locale-independent parsing in ParseDouble (diff)
downloaddiscoin-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.cpp10
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)