@@ -753,16 +753,24 @@ static struct command_result *json_getroutes(struct command *cmd,
753753{
754754 struct getroutes_info * info = tal (cmd , struct getroutes_info );
755755
756- if (!param (cmd , buffer , params ,
757- p_req ("source" , param_node_id , & info -> source ),
758- p_req ("destination" , param_node_id , & info -> dest ),
759- p_req ("amount_msat" , param_msat , & info -> amount ),
760- p_req ("layers" , param_layer_names , & info -> layers ),
761- p_req ("maxfee_msat" , param_msat , & info -> maxfee ),
762- p_req ("final_cltv" , param_u32 , & info -> finalcltv ),
763- NULL ))
756+ if (!param_check (cmd , buffer , params ,
757+ p_req ("source" , param_node_id , & info -> source ),
758+ p_req ("destination" , param_node_id , & info -> dest ),
759+ p_req ("amount_msat" , param_msat , & info -> amount ),
760+ p_req ("layers" , param_layer_names , & info -> layers ),
761+ p_req ("maxfee_msat" , param_msat , & info -> maxfee ),
762+ p_req ("final_cltv" , param_u32 , & info -> finalcltv ),
763+ NULL ))
764764 return command_param_failed ();
765765
766+ if (amount_msat_is_zero (* info -> amount )) {
767+ return command_fail (cmd , JSONRPC2_INVALID_PARAMS ,
768+ "amount must be non-zero" );
769+ }
770+
771+ if (command_check_only (cmd ))
772+ return command_check_done (cmd );
773+
766774 info -> cmd = cmd ;
767775 info -> additional_costs = tal (info , struct additional_cost_htable );
768776 additional_cost_htable_init (info -> additional_costs );
0 commit comments