aboutsummaryrefslogtreecommitdiff
path: root/src/rpcserver.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-07-06 11:43:56 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2015-07-27 13:55:46 +0200
commit614601be8f30852a04214b652db45c20d920c70f (patch)
treeb38b3729b4db65068f7b8ac316d2575c3b4817fd /src/rpcserver.cpp
parentd43297c5ba951df535df704e321a883f97475c35 (diff)
downloadbitcoin-614601be8f30852a04214b652db45c20d920c70f.tar.xz
rpc: Accept strings in AmountFromValue
Accept strings containing decimal values, in addition to bare values. Useful from JSON-RPC implementations where it's not possible to have direct control over the text of numbers (e.g. where numbers are always doubles), and it's still desired to send an exact value. This would allow users to post JSON content with numbers encoded like `{"value": "0.00000001"}` instead of `{"value": 0.00000001}` which some php/python encoders wrap into 1e-8, or worse.
Diffstat (limited to 'src/rpcserver.cpp')
-rw-r--r--src/rpcserver.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp
index 201fc5eba8..03c123a361 100644
--- a/src/rpcserver.cpp
+++ b/src/rpcserver.cpp
@@ -120,8 +120,8 @@ void RPCTypeCheckObj(const UniValue& o,
CAmount AmountFromValue(const UniValue& value)
{
- if (!value.isNum())
- throw JSONRPCError(RPC_TYPE_ERROR, "Amount is not a number");
+ if (!value.isNum() && !value.isStr())
+ throw JSONRPCError(RPC_TYPE_ERROR, "Amount is not a number or string");
CAmount amount;
if (!ParseFixedPoint(value.getValStr(), 8, &amount))
throw JSONRPCError(RPC_TYPE_ERROR, "Invalid amount");