pub fn for_timeout_packet(
        e: &TimeoutPacket,
        src_chain: &dyn ChainHandle,
    ) -> Result<Self, BoxError> {
        let dst_chain_id =
            get_counterparty_chain(src_chain, &e.packet.source_channel, &e.packet.source_port)?;

        Ok(UnidirectionalChannelPath {
            dst_chain_id,
            src_chain_id: src_chain.id(),
            src_channel_id: e.src_channel_id().clone(),
            src_port_id: e.src_port_id().clone(),
        }
        .into())
    }
/// Build the object associated with the given [`TimeoutPacket`] event.
Build the object associated with the given [`TimeoutPacket`] event.
Build the object associated with the given [ ` TimeoutPacket ` ] event .
pub fn for_timeout_packet(
        e: &TimeoutPacket,
        src_chain: &dyn ChainHandle,
    ) -> Result<Self, BoxError> {
        let dst_chain_id =
            get_counterparty_chain(src_chain, &e.packet.source_channel, &e.packet.source_port)?;
        Ok(UnidirectionalChannelPath {
            dst_chain_id,
            src_chain_id: src_chain.id(),
            src_channel_id: e.src_channel_id().clone(),
            src_port_id: e.src_port_id().clone(),
        }
        .into())
    }
pub fn for_timeout_packet ( e : & TimeoutPacket , src_chain : & dyn ChainHandle , ) -> Result < Self , BoxError > { let dst_chain_id = get_counterparty_chain ( src_chain , & e . packet . source_channel , & e . packet . source_port ) ? ; Ok ( UnidirectionalChannelPath { dst_chain_id , src_chain_id : src_chain . id ( ) , src_channel_id : e . src_channel_id ( ) . clone ( ) , src_port_id : e . src_port_id ( ) . clone ( ) , } . into ( ) ) }
Build the object associated with the given [`TimeoutPacket`] event.
Build the object associated with the given [ ` TimeoutPacket ` ] event .
e
&TimeoutPacket
src_chain
&dyn ChainHandle
e
&TimeoutPacket
src_chain
&dyn ChainHandle