common: mvt_tag parsing routine.
Rather than open-coding in json_parse. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -496,6 +496,22 @@ const char **mvt_tag_strs(const tal_t *ctx, const enum mvt_tag *tags)
|
||||
tal_arr_expand(&strs, mvt_tag_str(tags[i]));
|
||||
return strs;
|
||||
}
|
||||
|
||||
|
||||
/* Parse a single mvt tag. Returns false or populates *tag */
|
||||
bool mvt_tag_parse(const char *buf, size_t len, enum mvt_tag *tag)
|
||||
{
|
||||
for (size_t i = 0; i < NUM_MVT_TAGS; i++) {
|
||||
const char *name = mvt_tag_str(i);
|
||||
if (strlen(name) == len && memcmp(buf, name, len) == 0) {
|
||||
*tag = i;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* This is used solely by onchaind. It always uses alt_account, with "" meaning
|
||||
* the channel itself. */
|
||||
void towire_chain_coin_mvt(u8 **pptr, const struct chain_coin_mvt *mvt)
|
||||
|
||||
@@ -258,6 +258,9 @@ bool chain_mvt_is_external(const struct chain_coin_mvt *mvt);
|
||||
const char *mvt_tag_str(enum mvt_tag tag);
|
||||
const char **mvt_tag_strs(const tal_t *ctx, const enum mvt_tag *tags);
|
||||
|
||||
/* Parse a single mvt tag. Returns false or populates *tag */
|
||||
bool mvt_tag_parse(const char *buf, size_t len, enum mvt_tag *tag);
|
||||
|
||||
void towire_chain_coin_mvt(u8 **pptr, const struct chain_coin_mvt *mvt);
|
||||
void fromwire_chain_coin_mvt(const u8 **cursor, size_t *max, struct chain_coin_mvt *mvt);
|
||||
|
||||
|
||||
@@ -630,16 +630,7 @@ bool json_to_channel_id(const char *buffer, const jsmntok_t *tok,
|
||||
bool json_to_coin_mvt_tag(const char *buffer, const jsmntok_t *tok,
|
||||
enum mvt_tag *tag)
|
||||
{
|
||||
enum mvt_tag i_tag;
|
||||
for (size_t i = 0; i < NUM_MVT_TAGS; i++) {
|
||||
i_tag = (enum mvt_tag) i;
|
||||
if (json_tok_streq(buffer, tok, mvt_tag_str(i_tag))) {
|
||||
*tag = i_tag;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return mvt_tag_parse(buffer + tok->start, tok->end - tok->start, tag);
|
||||
}
|
||||
|
||||
bool split_tok(const char *buffer, const jsmntok_t *tok,
|
||||
|
||||
@@ -78,9 +78,9 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED)
|
||||
/* Generated stub for fromwire_u8_array */
|
||||
void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED)
|
||||
{ fprintf(stderr, "fromwire_u8_array called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for node_id_from_hexstr */
|
||||
bool node_id_from_hexstr(const char *str UNNEEDED, size_t slen UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "node_id_from_hexstr called!\n"); abort(); }
|
||||
|
||||
@@ -57,9 +57,9 @@ struct amount_msat fromwire_amount_msat(const u8 **cursor UNNEEDED, size_t *max
|
||||
/* Generated stub for merkle_tlv */
|
||||
void merkle_tlv(const struct tlv_field *fields UNNEEDED, struct sha256 *merkle UNNEEDED)
|
||||
{ fprintf(stderr, "merkle_tlv called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for node_id_from_hexstr */
|
||||
bool node_id_from_hexstr(const char *str UNNEEDED, size_t slen UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "node_id_from_hexstr called!\n"); abort(); }
|
||||
|
||||
@@ -102,9 +102,9 @@ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr
|
||||
/* Generated stub for merkle_tlv */
|
||||
void merkle_tlv(const struct tlv_field *fields UNNEEDED, struct sha256 *merkle UNNEEDED)
|
||||
{ fprintf(stderr, "merkle_tlv called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for node_id_from_hexstr */
|
||||
bool node_id_from_hexstr(const char *str UNNEEDED, size_t slen UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "node_id_from_hexstr called!\n"); abort(); }
|
||||
|
||||
@@ -24,9 +24,9 @@ bool fromwire_channel_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED,
|
||||
/* Generated stub for fromwire_node_id */
|
||||
void fromwire_node_id(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "fromwire_node_id called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for node_id_from_hexstr */
|
||||
bool node_id_from_hexstr(const char *str UNNEEDED, size_t slen UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "node_id_from_hexstr called!\n"); abort(); }
|
||||
|
||||
@@ -105,9 +105,9 @@ void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr
|
||||
/* Generated stub for merkle_tlv */
|
||||
void merkle_tlv(const struct tlv_field *fields UNNEEDED, struct sha256 *merkle UNNEEDED)
|
||||
{ fprintf(stderr, "merkle_tlv called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for node_id_from_hexstr */
|
||||
bool node_id_from_hexstr(const char *str UNNEEDED, size_t slen UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "node_id_from_hexstr called!\n"); abort(); }
|
||||
|
||||
@@ -77,9 +77,9 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED)
|
||||
/* Generated stub for fromwire_u8_array */
|
||||
void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED)
|
||||
{ fprintf(stderr, "fromwire_u8_array called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for node_id_from_hexstr */
|
||||
bool node_id_from_hexstr(const char *str UNNEEDED, size_t slen UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "node_id_from_hexstr called!\n"); abort(); }
|
||||
|
||||
@@ -72,9 +72,9 @@ u8 fromwire_u8(const u8 **cursor UNNEEDED, size_t *max UNNEEDED)
|
||||
/* Generated stub for fromwire_u8_array */
|
||||
void fromwire_u8_array(const u8 **cursor UNNEEDED, size_t *max UNNEEDED, u8 *arr UNNEEDED, size_t num UNNEEDED)
|
||||
{ fprintf(stderr, "fromwire_u8_array called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for node_id_from_hexstr */
|
||||
bool node_id_from_hexstr(const char *str UNNEEDED, size_t slen UNNEEDED, struct node_id *id UNNEEDED)
|
||||
{ fprintf(stderr, "node_id_from_hexstr called!\n"); abort(); }
|
||||
|
||||
@@ -82,9 +82,9 @@ bool fromwire_tlv(const u8 **cursor UNNEEDED, size_t *max UNNEEDED,
|
||||
void *record UNNEEDED, struct tlv_field **fields UNNEEDED,
|
||||
const u64 *extra_types UNNEEDED, size_t *err_off UNNEEDED, u64 *err_type UNNEEDED)
|
||||
{ fprintf(stderr, "fromwire_tlv called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for new_onionreply */
|
||||
struct onionreply *new_onionreply(const tal_t *ctx UNNEEDED, const u8 *contents TAKES UNNEEDED)
|
||||
{ fprintf(stderr, "new_onionreply called!\n"); abort(); }
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
void fromwire_sciddir_or_pubkey(const u8 **cursor UNNEEDED, size_t *max UNNEEDED,
|
||||
struct sciddir_or_pubkey *sciddpk UNNEEDED)
|
||||
{ fprintf(stderr, "fromwire_sciddir_or_pubkey called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* Generated stub for new_onionreply */
|
||||
struct onionreply *new_onionreply(const tal_t *ctx UNNEEDED, const u8 *contents TAKES UNNEEDED)
|
||||
{ fprintf(stderr, "new_onionreply called!\n"); abort(); }
|
||||
|
||||
@@ -35,9 +35,9 @@ void command_log(struct command *cmd UNNEEDED, enum log_level level UNNEEDED,
|
||||
const char *fmt UNNEEDED, ...)
|
||||
|
||||
{ fprintf(stderr, "command_log called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_str */
|
||||
const char *mvt_tag_str(enum mvt_tag tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_str called!\n"); abort(); }
|
||||
/* Generated stub for mvt_tag_parse */
|
||||
bool mvt_tag_parse(const char *buf UNNEEDED, size_t len UNNEEDED, enum mvt_tag *tag UNNEEDED)
|
||||
{ fprintf(stderr, "mvt_tag_parse called!\n"); abort(); }
|
||||
/* AUTOGENERATED MOCKS END */
|
||||
|
||||
static void set_node_id(struct splice_script_chan *chan, const char *hexstr)
|
||||
|
||||
Reference in New Issue
Block a user