X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Fevents.rs;h=fd801e4111ed6f3c6b58dcea72f0c7ff1534b116;hb=12a55ae6fc0358808cd7ffaa64e498823f0b2f0c;hp=7c724243570b25bd5feb1402eb3171eedcfbdbd6;hpb=a20eef17c9af128b4c80fcd39f852c84e3917eac;p=rust-lightning diff --git a/src/util/events.rs b/src/util/events.rs index 7c724243..fd801e41 100644 --- a/src/util/events.rs +++ b/src/util/events.rs @@ -1,8 +1,7 @@ use ln::msgs; +use chain::transaction::OutPoint; use bitcoin::blockdata::script::Script; -use bitcoin::util::uint::Uint256; -use bitcoin::util::hash::Sha256dHash; use secp256k1::key::PublicKey; @@ -14,7 +13,7 @@ pub enum Event { /// parameters and then call ChannelManager::funding_transaction_generated. /// Generated in ChannelManager message handling. FundingGenerationReady { - temporary_channel_id: Uint256, + temporary_channel_id: [u8; 32], channel_value_satoshis: u64, output_script: Script, /// The value passed in to ChannelManager::create_channel @@ -24,7 +23,7 @@ pub enum Event { /// channel. Broadcasting such a transaction prior to this event may lead to our counterparty /// trivially stealing all funds in the funding transaction! FundingBroadcastSafe { - funding_txo: (Sha256dHash, u16), + funding_txo: OutPoint, /// The value passed in to ChannelManager::create_channel user_channel_id: u64, }, @@ -54,6 +53,12 @@ pub enum Event { PendingHTLCsForwardable { time_forwardable: Instant, }, + /// Used to indicate that we've initialted a channel open and should send the open_channel + /// message provided to the given peer + SendOpenChannel { + node_id: PublicKey, + msg: msgs::OpenChannel, + }, /// Used to indicate that a funding_created message should be sent to the peer with the given node_id. SendFundingCreated { node_id: PublicKey, @@ -84,6 +89,11 @@ pub enum Event { msg: msgs::UpdateFailHTLC, commitment_msg: msgs::CommitmentSigned, }, + /// Used to indicate that a shutdown message should be sent to the peer with the given node_id. + SendShutdown { + node_id: PublicKey, + msg: msgs::Shutdown, + }, /// Used to indicate that a channel_announcement and channel_update should be broadcast to all /// peers (except the peer with node_id either msg.contents.node_id_1 or msg.contents.node_id_2). BroadcastChannelAnnouncement { @@ -94,6 +104,13 @@ pub enum Event { BroadcastChannelUpdate { msg: msgs::ChannelUpdate, }, + + // Events indicating the network loop should change the state of connection with peer: + /// Disconnect the given peer, possibly making an attempt to send an ErrorMessage first. + DisconnectPeer { + node_id: PublicKey, + msg: Option, + } } pub trait EventsProvider {