mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-05 21:44:42 +01:00
cca791d1cb
1. If we have a channel_announcement, the channel is public, otherwise it's not. Not all channels are public, as they can be local: those have a NULL channel_announcement. 2. If we don't have a channel_update, we know nothing about that half of the channel, and no other fields are valid. 3. We can tell if a half channel is disabled by the flags field directly. Note that we never send halfchannels without an update over gossip_getchannels_reply so that marshalling/unmarshalling can be vastly simplified. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
#ifndef LIGHTNING_LIGHTNINGD_GOSSIP_MSG_H
|
|
#define LIGHTNING_LIGHTNINGD_GOSSIP_MSG_H
|
|
#include "config.h"
|
|
#include <bitcoin/pubkey.h>
|
|
#include <gossipd/routing.h>
|
|
|
|
struct gossip_getnodes_entry {
|
|
struct pubkey nodeid;
|
|
s64 last_timestamp; /* -1 means never: following fields ignored */
|
|
struct wireaddr *addresses;
|
|
u8 *alias;
|
|
u8 color[3];
|
|
};
|
|
|
|
struct gossip_getchannels_entry {
|
|
struct pubkey source, destination;
|
|
u64 satoshis;
|
|
struct short_channel_id short_channel_id;
|
|
u16 flags;
|
|
bool public;
|
|
u32 last_update_timestamp;
|
|
u32 delay;
|
|
u32 base_fee_msat;
|
|
u32 fee_per_millionth;
|
|
};
|
|
|
|
struct gossip_getnodes_entry *
|
|
fromwire_gossip_getnodes_entry(const tal_t *ctx, const u8 **pptr, size_t *max);
|
|
void towire_gossip_getnodes_entry(u8 **pptr,
|
|
const struct gossip_getnodes_entry *entry);
|
|
|
|
void fromwire_route_hop(const u8 **pprt, size_t *max, struct route_hop *entry);
|
|
void towire_route_hop(u8 **pprt, const struct route_hop *entry);
|
|
|
|
void fromwire_gossip_getchannels_entry(const u8 **pptr, size_t *max,
|
|
struct gossip_getchannels_entry *entry);
|
|
void towire_gossip_getchannels_entry(
|
|
u8 **pptr, const struct gossip_getchannels_entry *entry);
|
|
|
|
#endif /* LIGHTNING_LIGHTNINGD_GOSSIP_MSG_H */
|