pub trait ChannelMessageHandler: MessageSendEventsProvider {
Show 34 methods // Required methods fn handle_open_channel(&self, their_node_id: &PublicKey, msg: &OpenChannel); fn handle_open_channel_v2( &self, their_node_id: &PublicKey, msg: &OpenChannelV2, ); fn handle_accept_channel( &self, their_node_id: &PublicKey, msg: &AcceptChannel, ); fn handle_accept_channel_v2( &self, their_node_id: &PublicKey, msg: &AcceptChannelV2, ); fn handle_funding_created( &self, their_node_id: &PublicKey, msg: &FundingCreated, ); fn handle_funding_signed( &self, their_node_id: &PublicKey, msg: &FundingSigned, ); fn handle_channel_ready( &self, their_node_id: &PublicKey, msg: &ChannelReady, ); fn handle_shutdown(&self, their_node_id: &PublicKey, msg: &Shutdown); fn handle_closing_signed( &self, their_node_id: &PublicKey, msg: &ClosingSigned, ); fn handle_tx_add_input(&self, their_node_id: &PublicKey, msg: &TxAddInput); fn handle_tx_add_output(&self, their_node_id: &PublicKey, msg: &TxAddOutput); fn handle_tx_remove_input( &self, their_node_id: &PublicKey, msg: &TxRemoveInput, ); fn handle_tx_remove_output( &self, their_node_id: &PublicKey, msg: &TxRemoveOutput, ); fn handle_tx_complete(&self, their_node_id: &PublicKey, msg: &TxComplete); fn handle_tx_signatures( &self, their_node_id: &PublicKey, msg: &TxSignatures, ); fn handle_tx_init_rbf(&self, their_node_id: &PublicKey, msg: &TxInitRbf); fn handle_tx_ack_rbf(&self, their_node_id: &PublicKey, msg: &TxAckRbf); fn handle_tx_abort(&self, their_node_id: &PublicKey, msg: &TxAbort); fn handle_update_add_htlc( &self, their_node_id: &PublicKey, msg: &UpdateAddHTLC, ); fn handle_update_fulfill_htlc( &self, their_node_id: &PublicKey, msg: &UpdateFulfillHTLC, ); fn handle_update_fail_htlc( &self, their_node_id: &PublicKey, msg: &UpdateFailHTLC, ); fn handle_update_fail_malformed_htlc( &self, their_node_id: &PublicKey, msg: &UpdateFailMalformedHTLC, ); fn handle_commitment_signed( &self, their_node_id: &PublicKey, msg: &CommitmentSigned, ); fn handle_revoke_and_ack( &self, their_node_id: &PublicKey, msg: &RevokeAndACK, ); fn handle_update_fee(&self, their_node_id: &PublicKey, msg: &UpdateFee); fn handle_announcement_signatures( &self, their_node_id: &PublicKey, msg: &AnnouncementSignatures, ); fn peer_disconnected(&self, their_node_id: &PublicKey); fn peer_connected( &self, their_node_id: &PublicKey, msg: &Init, inbound: bool, ) -> Result<(), ()>; fn handle_channel_reestablish( &self, their_node_id: &PublicKey, msg: &ChannelReestablish, ); fn handle_channel_update( &self, their_node_id: &PublicKey, msg: &ChannelUpdate, ); fn handle_error(&self, their_node_id: &PublicKey, msg: &ErrorMessage); fn provided_node_features(&self) -> Features<NodeContext>; fn provided_init_features( &self, their_node_id: &PublicKey, ) -> Features<InitContext>; fn get_chain_hashes(&self) -> Option<Vec<ChainHash>>;
}
Expand description

A trait to describe an object which can receive channel messages.

Messages MAY be called in parallel when they originate from different their_node_ids, however they MUST NOT be called in parallel when the two calls have the same their_node_id.

Required Methods§

fn handle_open_channel(&self, their_node_id: &PublicKey, msg: &OpenChannel)

Handle an incoming open_channel message from the given peer.

fn handle_open_channel_v2(&self, their_node_id: &PublicKey, msg: &OpenChannelV2)

Handle an incoming open_channel2 message from the given peer.

fn handle_accept_channel(&self, their_node_id: &PublicKey, msg: &AcceptChannel)

Handle an incoming accept_channel message from the given peer.

fn handle_accept_channel_v2( &self, their_node_id: &PublicKey, msg: &AcceptChannelV2, )

Handle an incoming accept_channel2 message from the given peer.

fn handle_funding_created( &self, their_node_id: &PublicKey, msg: &FundingCreated, )

Handle an incoming funding_created message from the given peer.

fn handle_funding_signed(&self, their_node_id: &PublicKey, msg: &FundingSigned)

Handle an incoming funding_signed message from the given peer.

fn handle_channel_ready(&self, their_node_id: &PublicKey, msg: &ChannelReady)

Handle an incoming channel_ready message from the given peer.

fn handle_shutdown(&self, their_node_id: &PublicKey, msg: &Shutdown)

Handle an incoming shutdown message from the given peer.

fn handle_closing_signed(&self, their_node_id: &PublicKey, msg: &ClosingSigned)

Handle an incoming closing_signed message from the given peer.

fn handle_tx_add_input(&self, their_node_id: &PublicKey, msg: &TxAddInput)

Handle an incoming tx_add_input message from the given peer.

fn handle_tx_add_output(&self, their_node_id: &PublicKey, msg: &TxAddOutput)

Handle an incoming tx_add_output message from the given peer.

fn handle_tx_remove_input(&self, their_node_id: &PublicKey, msg: &TxRemoveInput)

Handle an incoming tx_remove_input message from the given peer.

fn handle_tx_remove_output( &self, their_node_id: &PublicKey, msg: &TxRemoveOutput, )

Handle an incoming tx_remove_output message from the given peer.

fn handle_tx_complete(&self, their_node_id: &PublicKey, msg: &TxComplete)

Handle an incoming tx_complete message from the given peer.

fn handle_tx_signatures(&self, their_node_id: &PublicKey, msg: &TxSignatures)

Handle an incoming tx_signatures message from the given peer.

fn handle_tx_init_rbf(&self, their_node_id: &PublicKey, msg: &TxInitRbf)

Handle an incoming tx_init_rbf message from the given peer.

fn handle_tx_ack_rbf(&self, their_node_id: &PublicKey, msg: &TxAckRbf)

Handle an incoming tx_ack_rbf message from the given peer.

fn handle_tx_abort(&self, their_node_id: &PublicKey, msg: &TxAbort)

Handle an incoming tx_abort message from the given peer.

fn handle_update_add_htlc(&self, their_node_id: &PublicKey, msg: &UpdateAddHTLC)

Handle an incoming update_add_htlc message from the given peer.

fn handle_update_fulfill_htlc( &self, their_node_id: &PublicKey, msg: &UpdateFulfillHTLC, )

Handle an incoming update_fulfill_htlc message from the given peer.

fn handle_update_fail_htlc( &self, their_node_id: &PublicKey, msg: &UpdateFailHTLC, )

Handle an incoming update_fail_htlc message from the given peer.

fn handle_update_fail_malformed_htlc( &self, their_node_id: &PublicKey, msg: &UpdateFailMalformedHTLC, )

Handle an incoming update_fail_malformed_htlc message from the given peer.

fn handle_commitment_signed( &self, their_node_id: &PublicKey, msg: &CommitmentSigned, )

Handle an incoming commitment_signed message from the given peer.

fn handle_revoke_and_ack(&self, their_node_id: &PublicKey, msg: &RevokeAndACK)

Handle an incoming revoke_and_ack message from the given peer.

fn handle_update_fee(&self, their_node_id: &PublicKey, msg: &UpdateFee)

Handle an incoming update_fee message from the given peer.

fn handle_announcement_signatures( &self, their_node_id: &PublicKey, msg: &AnnouncementSignatures, )

Handle an incoming announcement_signatures message from the given peer.

fn peer_disconnected(&self, their_node_id: &PublicKey)

Indicates a connection to the peer failed/an existing connection was lost.

fn peer_connected( &self, their_node_id: &PublicKey, msg: &Init, inbound: bool, ) -> Result<(), ()>

Handle a peer reconnecting, possibly generating channel_reestablish message(s).

May return an Err(()) if the features the peer supports are not sufficient to communicate with us. Implementors should be somewhat conservative about doing so, however, as other message handlers may still wish to communicate with this peer.

fn handle_channel_reestablish( &self, their_node_id: &PublicKey, msg: &ChannelReestablish, )

Handle an incoming channel_reestablish message from the given peer.

fn handle_channel_update(&self, their_node_id: &PublicKey, msg: &ChannelUpdate)

Handle an incoming channel_update message from the given peer.

fn handle_error(&self, their_node_id: &PublicKey, msg: &ErrorMessage)

Handle an incoming error message from the given peer.

fn provided_node_features(&self) -> Features<NodeContext>

Gets the node feature flags which this handler itself supports. All available handlers are queried similarly and their feature flags are OR’d together to form the NodeFeatures which are broadcasted in our NodeAnnouncement message.

fn provided_init_features( &self, their_node_id: &PublicKey, ) -> Features<InitContext>

Gets the init feature flags which should be sent to the given peer. All available handlers are queried similarly and their feature flags are OR’d together to form the InitFeatures which are sent in our Init message.

Note that this method is called before Self::peer_connected.

fn get_chain_hashes(&self) -> Option<Vec<ChainHash>>

Gets the chain hashes for this ChannelMessageHandler indicating which chains it supports.

If it’s None, then no particular network chain hash compatibility will be enforced when connecting to peers.

Implementors§

§

impl ChannelMessageHandler for TestChannelMessageHandler

§

impl ChannelMessageHandler for ErroringMessageHandler

§

impl<M, T, ES, NS, SP, F, R, L> ChannelMessageHandler for ChannelManager<M, T, ES, NS, SP, F, R, L>
where M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref, <M as Deref>::Target: Watch<<<SP as Deref>::Target as SignerProvider>::Signer>, <T as Deref>::Target: BroadcasterInterface, <ES as Deref>::Target: EntropySource, <NS as Deref>::Target: NodeSigner, <SP as Deref>::Target: SignerProvider, <F as Deref>::Target: FeeEstimator, <R as Deref>::Target: Router, <L as Deref>::Target: Logger,