mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 07:04:22 +01:00
jsonrpc: Include the direction also if we have an alias
The direction only depends on the ordering between node_ids, not the short_channel_id, so we can include it and it won't change. This was causing some trouble loading the `channel_hints` in the `pay` plugin.
This commit is contained in:
@@ -653,12 +653,17 @@ static void json_add_channel(struct lightningd *ld,
|
|||||||
if (channel->owner)
|
if (channel->owner)
|
||||||
json_add_string(response, "owner", channel->owner->name);
|
json_add_string(response, "owner", channel->owner->name);
|
||||||
|
|
||||||
if (channel->scid) {
|
if (channel->scid)
|
||||||
json_add_short_channel_id(response, "short_channel_id",
|
json_add_short_channel_id(response, "short_channel_id",
|
||||||
channel->scid);
|
channel->scid);
|
||||||
|
|
||||||
|
/* If there is any way we can use the channel we'd better have
|
||||||
|
* a direction attached. Technically we could always add it,
|
||||||
|
* as it's just the lexicographic order between node_ids, but
|
||||||
|
* why bother if we can't use it? */
|
||||||
|
if (channel->scid || channel->alias[LOCAL] || channel->alias[REMOTE])
|
||||||
json_add_num(response, "direction",
|
json_add_num(response, "direction",
|
||||||
node_id_idx(&ld->id, &channel->peer->id));
|
node_id_idx(&ld->id, &channel->peer->id));
|
||||||
}
|
|
||||||
|
|
||||||
json_add_string(response, "channel_id",
|
json_add_string(response, "channel_id",
|
||||||
type_to_string(tmpctx, struct channel_id, &channel->cid));
|
type_to_string(tmpctx, struct channel_id, &channel->cid));
|
||||||
|
|||||||
@@ -1603,14 +1603,19 @@ static struct listpeers_channel *json_to_listpeers_channel(const tal_t *ctx,
|
|||||||
if (scidtok != NULL) {
|
if (scidtok != NULL) {
|
||||||
assert(dirtok != NULL);
|
assert(dirtok != NULL);
|
||||||
chan->scid = tal(chan, struct short_channel_id);
|
chan->scid = tal(chan, struct short_channel_id);
|
||||||
chan->direction = tal(chan, int);
|
|
||||||
json_to_short_channel_id(buffer, scidtok, chan->scid);
|
json_to_short_channel_id(buffer, scidtok, chan->scid);
|
||||||
json_to_int(buffer, dirtok, chan->direction);
|
} else {
|
||||||
}else {
|
|
||||||
assert(dirtok == NULL);
|
|
||||||
chan->scid = NULL;
|
chan->scid = NULL;
|
||||||
chan->direction = NULL;
|
chan->direction = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dirtok != NULL) {
|
||||||
|
chan->direction = tal(chan, int);
|
||||||
|
json_to_int(buffer, dirtok, chan->direction);
|
||||||
|
} else {
|
||||||
|
chan->direction = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (aliastok != NULL) {
|
if (aliastok != NULL) {
|
||||||
const jsmntok_t *loctok =
|
const jsmntok_t *loctok =
|
||||||
json_get_member(buffer, aliastok, "local"),
|
json_get_member(buffer, aliastok, "local"),
|
||||||
|
|||||||
Reference in New Issue
Block a user