mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 01:43:36 +01:00
9f05250ee7
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
65 lines
2.3 KiB
C
65 lines
2.3 KiB
C
#ifndef LIGHTNING_LIGHTNINGD_CHANNEL_GOSSIP_H
|
|
#define LIGHTNING_LIGHTNINGD_CHANNEL_GOSSIP_H
|
|
#include "config.h"
|
|
#include <bitcoin/short_channel_id.h>
|
|
#include <bitcoin/signature.h>
|
|
|
|
struct channel;
|
|
struct lightningd;
|
|
struct peer;
|
|
struct peer_update;
|
|
|
|
/* Initialize channel->channel_gossip state */
|
|
void channel_gossip_init(struct channel *channel,
|
|
const struct peer_update *remote_update TAKES);
|
|
|
|
/* We've attempted reconnect to all peers. */
|
|
void channel_gossip_startup_done(struct lightningd *ld);
|
|
|
|
/* Something about channel/blockchain changed: update if required */
|
|
void channel_gossip_update(struct channel *channel);
|
|
|
|
/* Short channel id changed (splice, or reorg). */
|
|
void channel_gossip_scid_changed(struct channel *channel);
|
|
|
|
/* Block height changed */
|
|
void channel_gossip_notify_new_block(struct lightningd *ld,
|
|
u32 block_height);
|
|
|
|
/* Got announcement_signatures from peer */
|
|
void channel_gossip_got_announcement_sigs(struct channel *channel,
|
|
struct short_channel_id scid,
|
|
const secp256k1_ecdsa_signature *node_sig,
|
|
const secp256k1_ecdsa_signature *bitcoin_sig);
|
|
|
|
/* If node_announcement has changed, send a new one. */
|
|
void channel_gossip_node_announce(struct lightningd *ld);
|
|
|
|
/* Gossipd told us about a channel update on one of our channels (on loading) */
|
|
void channel_gossip_update_from_gossipd(struct channel *channel,
|
|
const u8 *channel_update TAKES);
|
|
|
|
/* Gossipd init is done: if you expected a channel_update, be
|
|
* disappointed. */
|
|
void channel_gossip_init_done(struct lightningd *ld);
|
|
|
|
/* Peer has connected and successfully reestablished channel. */
|
|
void channel_gossip_channel_reestablished(struct channel *channel);
|
|
|
|
/* Peer has disconnected */
|
|
void channel_gossip_channel_disconnect(struct channel *channel);
|
|
|
|
/* Gossipd sent us this channel_update about the peer's side of the channel */
|
|
void channel_gossip_set_remote_update(struct lightningd *ld,
|
|
const struct peer_update *update TAKES,
|
|
const struct node_id *source);
|
|
|
|
/* Get channel_update to send in an error onion reply (can give NULL!) */
|
|
const u8 *channel_gossip_update_for_error(const tal_t *ctx,
|
|
struct channel *channel);
|
|
|
|
/* Get the peer's last-sent channel_update info, if any. */
|
|
const struct peer_update *channel_gossip_get_remote_update(const struct channel *channel);
|
|
|
|
#endif /* LIGHTNING_LIGHTNINGD_CHANNEL_GOSSIP_H */
|