mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 18:11:28 +01:00
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:
parent
8346d5c353
commit
75e946d256
@ -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();
|
||||
}
|
||||
|
@ -211,4 +211,10 @@ void json_add_time(struct json_stream *result, const char *fieldname,
|
||||
void json_add_sha256(struct json_stream *result, const char *fieldname,
|
||||
const struct sha256 *hash);
|
||||
|
||||
struct command_result *param_bitcoin_address(struct command *cmd,
|
||||
const char *name,
|
||||
const char *buffer,
|
||||
const jsmntok_t *tok,
|
||||
const u8 **scriptpubkey);
|
||||
|
||||
#endif /* LIGHTNING_LIGHTNINGD_JSON_H */
|
||||
|
@ -609,6 +609,13 @@ struct txowatch *watch_txo(const tal_t *ctx UNNEEDED,
|
||||
size_t input_num UNNEEDED,
|
||||
const struct block *block))
|
||||
{ fprintf(stderr, "watch_txo called!\n"); abort(); }
|
||||
/* Generated stub for param_bitcoin_address */
|
||||
struct command_result *param_bitcoin_address(struct command *cmd UNNEEDED,
|
||||
const char *name UNNEEDED,
|
||||
const char *buffer UNNEEDED,
|
||||
const jsmntok_t *tok UNNEEDED,
|
||||
const u8 **scriptpubkey UNNEEDED)
|
||||
{ fprintf(stderr, "param_bitcoin_address called!\n"); abort(); }
|
||||
/* AUTOGENERATED MOCKS END */
|
||||
|
||||
#if DEVELOPER
|
||||
|
@ -99,6 +99,9 @@ struct command_result *param_tok(struct command *cmd UNNEEDED, const char *name
|
||||
const char *buffer UNNEEDED, const jsmntok_t * tok UNNEEDED,
|
||||
const jsmntok_t **out UNNEEDED)
|
||||
{ fprintf(stderr, "param_tok called!\n"); abort(); }
|
||||
/* Generated stub for get_chainparams */
|
||||
const struct chainparams *get_chainparams(const struct lightningd *ld UNNEEDED)
|
||||
{ fprintf(stderr, "get_chainparams called!\n"); abort(); }
|
||||
/* AUTOGENERATED MOCKS END */
|
||||
|
||||
bool deprecated_apis;
|
||||
|
@ -608,6 +608,13 @@ struct txowatch *watch_txo(const tal_t *ctx UNNEEDED,
|
||||
size_t input_num UNNEEDED,
|
||||
const struct block *block))
|
||||
{ fprintf(stderr, "watch_txo called!\n"); abort(); }
|
||||
/* Generated stub for param_bitcoin_address */
|
||||
struct command_result *param_bitcoin_address(struct command *cmd UNNEEDED,
|
||||
const char *name UNNEEDED,
|
||||
const char *buffer UNNEEDED,
|
||||
const jsmntok_t *tok UNNEEDED,
|
||||
const u8 **scriptpubkey UNNEEDED)
|
||||
{ fprintf(stderr, "param_bitcoin_address called!\n"); abort(); }
|
||||
/* AUTOGENERATED MOCKS END */
|
||||
|
||||
#if DEVELOPER
|
||||
|
@ -73,32 +73,6 @@ static void wallet_withdrawal_broadcast(struct bitcoind *bitcoind UNUSED,
|
||||
}
|
||||
}
|
||||
|
||||
static 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();
|
||||
}
|
||||
|
||||
/* Signs the tx, broadcasts it: broadcast calls wallet_withdrawal_broadcast */
|
||||
static struct command_result *broadcast_and_wait(struct command *cmd,
|
||||
struct unreleased_tx *utx)
|
||||
|
Loading…
Reference in New Issue
Block a user