diff --git a/electrum/lnchannel.py b/electrum/lnchannel.py index dd08135da..bea1c0ea4 100644 --- a/electrum/lnchannel.py +++ b/electrum/lnchannel.py @@ -172,10 +172,12 @@ class AbstractChannel(Logger, ABC): def short_id_for_GUI(self) -> str: return format_short_channel_id(self.short_channel_id) - def set_state(self, state: ChannelState) -> None: - """ set on-chain state """ + def set_state(self, state: ChannelState, *, force: bool = False) -> None: + """Set on-chain state. + `force` can be set while debugging from the console to allow illegal transitions. + """ old_state = self._state - if (old_state, state) not in state_transitions: + if not force and (old_state, state) not in state_transitions: raise Exception(f"Transition not allowed: {old_state.name} -> {state.name}") self.logger.debug(f'({self.get_id_for_log()}) Setting channel state: {old_state.name} -> {state.name}') self._state = state