X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Fevents.rs;h=0dee714d22d8efc5eb58e911352e1839148468e1;hb=b83443f0cc0436923450c53082bafc22c18fa669;hp=7c724243570b25bd5feb1402eb3171eedcfbdbd6;hpb=3057df26566f9b111db0470563689f5633ebfaec;p=rust-lightning diff --git a/src/util/events.rs b/src/util/events.rs index 7c724243..0dee714d 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, }, @@ -47,13 +46,19 @@ pub enum Event { PaymentFailed { payment_hash: [u8; 32], }, - - // Events indicating the network loop should send a message to a peer: /// Used to indicate that ChannelManager::process_pending_htlc_forwards should be called at a /// time in the future. PendingHTLCsForwardable { time_forwardable: Instant, }, + + // Events indicating the network loop should send a message to a peer: + /// 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, @@ -65,24 +70,16 @@ pub enum Event { msg: msgs::FundingLocked, announcement_sigs: Option, }, - /// Used to indicate that a series of update_add_htlc messages, as well as a commitment_signed + /// Used to indicate that a series of HTLC update messages, as well as a commitment_signed /// message should be sent to the peer with the given node_id. - SendHTLCs { - node_id: PublicKey, - msgs: Vec, - commitment_msg: msgs::CommitmentSigned, - }, - /// Used to indicate that we're ready to fulfill an htlc from the peer with the given node_id. - SendFulfillHTLC { + UpdateHTLCs { node_id: PublicKey, - msg: msgs::UpdateFulfillHTLC, - commitment_msg: msgs::CommitmentSigned, + updates: msgs::CommitmentUpdate, }, - /// Used to indicate that we need to fail an htlc from the peer with the given node_id. - SendFailHTLC { + /// Used to indicate that a shutdown message should be sent to the peer with the given node_id. + SendShutdown { node_id: PublicKey, - msg: msgs::UpdateFailHTLC, - commitment_msg: msgs::CommitmentSigned, + 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). @@ -94,6 +91,13 @@ pub enum Event { BroadcastChannelUpdate { msg: msgs::ChannelUpdate, }, + + //Error handling + /// Broadcast an error downstream to be handled + HandleError { + node_id: PublicKey, + action: Option + } } pub trait EventsProvider {