@@ -755,18 +755,26 @@ static struct command_result *json_getroutes(struct command *cmd,
755755 const u32 maxdelay_allowed = 2016 ;
756756 struct getroutes_info * info = tal (cmd , struct getroutes_info );
757757
758- if (!param (cmd , buffer , params ,
759- p_req ("source" , param_node_id , & info -> source ),
760- p_req ("destination" , param_node_id , & info -> dest ),
761- p_req ("amount_msat" , param_msat , & info -> amount ),
762- p_req ("layers" , param_layer_names , & info -> layers ),
763- p_req ("maxfee_msat" , param_msat , & info -> maxfee ),
764- p_req ("final_cltv" , param_u32 , & info -> finalcltv ),
765- p_opt_def ("maxdelay" , param_u32 , & info -> maxdelay ,
766- maxdelay_allowed ),
767- NULL ))
758+ if (!param_check (cmd , buffer , params ,
759+ p_req ("source" , param_node_id , & info -> source ),
760+ p_req ("destination" , param_node_id , & info -> dest ),
761+ p_req ("amount_msat" , param_msat , & info -> amount ),
762+ p_req ("layers" , param_layer_names , & info -> layers ),
763+ p_req ("maxfee_msat" , param_msat , & info -> maxfee ),
764+ p_req ("final_cltv" , param_u32 , & info -> finalcltv ),
765+ p_opt_def ("maxdelay" , param_u32 , & info -> maxdelay ,
766+ maxdelay_allowed ),
767+ NULL ))
768768 return command_param_failed ();
769769
770+ if (amount_msat_is_zero (* info -> amount )) {
771+ return command_fail (cmd , JSONRPC2_INVALID_PARAMS ,
772+ "amount must be non-zero" );
773+ }
774+
775+ if (command_check_only (cmd ))
776+ return command_check_done (cmd );
777+
770778 if (* info -> maxdelay > maxdelay_allowed ) {
771779 return command_fail (cmd , PAY_USER_ERROR ,
772780 "maximum delay allowed is %d" ,
0 commit comments