diff options
| author | Wladimir J. van der Laan <[email protected]> | 2015-07-06 10:49:24 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2015-07-10 15:43:26 +0200 |
| commit | 9cc91523dbec6441e327e1e4c83ba751a4680bec (patch) | |
| tree | f7ad53eeb2e34d7773e067acf2a268076b1078ca /src/rpcserver.cpp | |
| parent | Merge pull request #6329 (diff) | |
| download | discoin-9cc91523dbec6441e327e1e4c83ba751a4680bec.tar.xz discoin-9cc91523dbec6441e327e1e4c83ba751a4680bec.zip | |
rpc: Accept scientific notation for monetary amounts in JSON
Add a function `ParseFixedPoint` that parses numbers according
to the JSON number specification and returns a 64-bit integer.
Then this in `AmountFromValue`, rather than `ParseMoney`.
Also add lots of tests (thanks to @jonasschnelli for some of them).
Fixes issue #6297.
Diffstat (limited to 'src/rpcserver.cpp')
| -rw-r--r-- | src/rpcserver.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 287cfb2f1..aeb51fed5 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -124,7 +124,7 @@ CAmount AmountFromValue(const UniValue& value) if (!value.isReal() && !value.isNum()) throw JSONRPCError(RPC_TYPE_ERROR, "Amount is not a number"); CAmount amount; - if (!ParseMoney(value.getValStr(), amount)) + if (!ParseFixedPoint(value.getValStr(), 8, &amount)) throw JSONRPCError(RPC_TYPE_ERROR, "Invalid amount"); if (!MoneyRange(amount)) throw JSONRPCError(RPC_TYPE_ERROR, "Amount out of range"); |