@@ -143,18 +143,40 @@ export function awaitingConnection(
143143 }
144144}
145145
146+ export async function awaitingReestablish (
147+ channel : Channel ,
148+ message : ChannelMessage ,
149+ state : ChannelState ,
150+ ) : Promise < ChannelFsm > {
151+ if ( message . method === 'channels.info' && message . params . data . event === 'fsm_up' ) {
152+ channel . _fsmId = message . params . data . fsm_id ;
153+ return {
154+ handler : function awaitingChannelReestablished (
155+ _ : Channel ,
156+ message2 : ChannelMessage ,
157+ state2 : ChannelState ,
158+ ) : ChannelFsm | undefined {
159+ if (
160+ message2 . method === 'channels.info'
161+ && message2 . params . data . event === 'channel_reestablished'
162+ ) return { handler : awaitingOpenConfirmation } ;
163+ return handleUnexpectedMessage ( channel , message2 , state2 ) ;
164+ } ,
165+ } ;
166+ }
167+ return handleUnexpectedMessage ( channel , message , state ) ;
168+ }
169+
146170export async function awaitingReconnection (
147171 channel : Channel ,
148172 message : ChannelMessage ,
149173 state : ChannelState ,
150174) : Promise < ChannelFsm > {
151- if ( message . method === 'channels.info' ) {
152- if ( message . params . data . event === 'fsm_up' ) {
153- channel . _fsmId = message . params . data . fsm_id ;
154- const { signedTx } = await channel . state ( ) ;
155- changeState ( channel , signedTx == null ? '' : buildTx ( signedTx ) ) ;
156- return { handler : channelOpen } ;
157- }
175+ if ( message . method === 'channels.info' && message . params . data . event === 'fsm_up' ) {
176+ channel . _fsmId = message . params . data . fsm_id ;
177+ const { signedTx } = await channel . state ( ) ;
178+ changeState ( channel , signedTx == null ? '' : buildTx ( signedTx ) ) ;
179+ return { handler : channelOpen } ;
158180 }
159181 return handleUnexpectedMessage ( channel , message , state ) ;
160182}
@@ -220,18 +242,25 @@ export function awaitingOnChainTx(
220242function awaitingOpenConfirmation (
221243 channel : Channel ,
222244 message : ChannelMessage ,
245+ state : ChannelState ,
223246) : ChannelFsm | undefined {
224247 if ( message . method === 'channels.info' && message . params . data . event === 'open' ) {
225248 channel . _channelId = message . params . channel_id ;
226249 return {
227- handler ( _ : Channel , message2 : ChannelMessage ) : ChannelFsm | undefined {
250+ handler : function awaitingChannelsUpdate (
251+ _ : Channel ,
252+ message2 : ChannelMessage ,
253+ state2 : ChannelState ,
254+ ) : ChannelFsm | undefined {
228255 if ( message2 . method === 'channels.update' ) {
229256 changeState ( channel , message2 . params . data . state ) ;
230257 return { handler : channelOpen } ;
231258 }
259+ return handleUnexpectedMessage ( channel , message2 , state2 ) ;
232260 } ,
233261 } ;
234262 }
263+ return handleUnexpectedMessage ( channel , message , state ) ;
235264}
236265
237266export async function channelOpen (
0 commit comments