json: Move param_bitcoin_address from wallet/walletrpc.c to lightningd/json.c

It's a useful helper, and it will be used to prase address in `close` command.
This commit is contained in:
trueptolemy
2019-09-29 21:19:42 +08:00
committed by neil saitug
parent 8346d5c353
commit 75e946d256
6 changed files with 49 additions and 26 deletions

View File

@@ -572,3 +572,29 @@ json_to_address_scriptpubkey(const tal_t *ctx,
return ADDRESS_PARSE_UNRECOGNIZED;
}
struct command_result *param_bitcoin_address(struct command *cmd,
const char *name,
const char *buffer,
const jsmntok_t *tok,
const u8 **scriptpubkey)
{
/* Parse address. */
switch (json_to_address_scriptpubkey(cmd,
get_chainparams(cmd->ld),
buffer, tok,
scriptpubkey)) {
case ADDRESS_PARSE_UNRECOGNIZED:
return command_fail(cmd, LIGHTNINGD,
"Could not parse destination address, "
"%s should be a valid address",
name ? name : "address field");
case ADDRESS_PARSE_WRONG_NETWORK:
return command_fail(cmd, LIGHTNINGD,
"Destination address is not on network %s",
get_chainparams(cmd->ld)->network_name);
case ADDRESS_PARSE_SUCCESS:
return NULL;
}
abort();
}