@@ -140,6 +140,24 @@ BOOST_AUTO_TEST_CASE(rpc_parse_monetary_values)
140
140
BOOST_CHECK_EQUAL (AmountFromValue (ValueFromString (" 20999999.99999999" )), 2099999999999999LL );
141
141
}
142
142
143
+ BOOST_AUTO_TEST_CASE (json_parse_errors)
144
+ {
145
+ Value value;
146
+ // Valid
147
+ BOOST_CHECK_EQUAL (read_string (std::string (" 1.0" ), value), true );
148
+ // Valid, with trailing whitespace
149
+ BOOST_CHECK_EQUAL (read_string (std::string (" 1.0 " ), value), true );
150
+ // Invalid, initial garbage
151
+ BOOST_CHECK_EQUAL (read_string (std::string (" [1.0" ), value), false );
152
+ BOOST_CHECK_EQUAL (read_string (std::string (" a1.0" ), value), false );
153
+ // Invalid, trailing garbage
154
+ BOOST_CHECK_EQUAL (read_string (std::string (" 1.0sds" ), value), false );
155
+ BOOST_CHECK_EQUAL (read_string (std::string (" 1.0]" ), value), false );
156
+ // BTC addresses should fail parsing
157
+ BOOST_CHECK_EQUAL (read_string (std::string (" 175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W" ), value), false );
158
+ BOOST_CHECK_EQUAL (read_string (std::string (" 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNL" ), value), false );
159
+ }
160
+
143
161
BOOST_AUTO_TEST_CASE (rpc_boostasiotocnetaddr)
144
162
{
145
163
// Check IPv4 addresses
0 commit comments