X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Fevents.rs;h=0dee714d22d8efc5eb58e911352e1839148468e1;hb=d7ed4c63e7ac0ef94189e318300edc456d472e86;hp=b090fba40e499cf4250ff4b9a47a24edc3a9219d;hpb=e93c9fbeaf6312fb77bce1ad96a2abb44124f136;p=rust-lightning diff --git a/src/util/events.rs b/src/util/events.rs index b090fba4..0dee714d 100644 --- a/src/util/events.rs +++ b/src/util/events.rs @@ -46,13 +46,13 @@ 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 { @@ -70,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 { + UpdateHTLCs { node_id: PublicKey, - msgs: Vec, - commitment_msg: msgs::CommitmentSigned, + updates: msgs::CommitmentUpdate, }, - /// Used to indicate that we're ready to fulfill an htlc from the peer with the given node_id. - SendFulfillHTLC { + /// Used to indicate that a shutdown message should be sent to the peer with the given node_id. + SendShutdown { node_id: PublicKey, - msg: msgs::UpdateFulfillHTLC, - commitment_msg: msgs::CommitmentSigned, - }, - /// Used to indicate that we need to fail an htlc from the peer with the given node_id. - SendFailHTLC { - 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). @@ -99,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 {