| 131 | } |
| 132 | |
| 133 | struct command_result *param_feerate_val(struct command *cmd, |
| 134 | const char *name, const char *buffer, |
| 135 | const jsmntok_t *tok, |
| 136 | u32 **feerate_per_kw) |
| 137 | { |
| 138 | jsmntok_t base = *tok; |
| 139 | enum feerate_style style; |
| 140 | unsigned int num; |
| 141 | |
| 142 | if (json_tok_endswith(buffer, tok, |
| 143 | feerate_style_name(FEERATE_PER_KBYTE))) { |
| 144 | style = FEERATE_PER_KBYTE; |
| 145 | base.end -= strlen(feerate_style_name(FEERATE_PER_KBYTE)); |
| 146 | } else if (json_tok_endswith(buffer, tok, |
| 147 | feerate_style_name(FEERATE_PER_KSIPA))) { |
| 148 | style = FEERATE_PER_KSIPA; |
| 149 | base.end -= strlen(feerate_style_name(FEERATE_PER_KSIPA)); |
| 150 | } else |
| 151 | style = FEERATE_PER_KBYTE; |
| 152 | |
| 153 | if (!json_to_number(buffer, &base, &num)) { |
| 154 | return command_fail(cmd, JSONRPC2_INVALID_PARAMS, |
| 155 | "'%s' should be an integer with optional perkw/perkb, not '%.*s'", |
| 156 | name, base.end - base.start, |
| 157 | buffer + base.start); |
| 158 | } |
| 159 | |
| 160 | *feerate_per_kw = tal(cmd, u32); |
| 161 | **feerate_per_kw = feerate_from_style(num, style); |
| 162 | if (**feerate_per_kw < FEERATE_FLOOR) |
| 163 | **feerate_per_kw = FEERATE_FLOOR; |
| 164 | return NULL; |
| 165 | } |
no test coverage detected