Skip to content

Commit ad85206

Browse files
committed
fsm: add reservation fsm compiling
1 parent 1814639 commit ad85206

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

fsm/fsm.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ func (s *StateMachine) SendEvent(event EventType, eventCtx EventContext) error {
206206
// current state.
207207
state, err := s.getNextState(event)
208208
if err != nil {
209+
log.Errorf("unable to get next state: %v from event: "+
210+
"%v, current state: %v", err, event, s.current)
209211
return ErrEventRejected
210212
}
211213

fsm/stateparser/stateparser.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"sort"
1111

1212
"github.com/lightninglabs/loop/fsm"
13+
"github.com/lightninglabs/loop/instantout/reservation"
1314
)
1415

1516
func main() {
@@ -41,6 +42,13 @@ func run() error {
4142
return err
4243
}
4344

45+
case "reservation":
46+
reservationFSM := &reservation.FSM{}
47+
err = writeMermaidFile(fp, reservationFSM.GetReservationStates())
48+
if err != nil {
49+
return err
50+
}
51+
4452
default:
4553
fmt.Println("Missing or wrong argument: fsm must be one of:")
4654
fmt.Println("\treservations")
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
```mermaid
2+
stateDiagram-v2
3+
[*] --> Init: OnServerRequest
4+
Confirmed
5+
Confirmed --> TimedOut: OnTimedOut
6+
Confirmed --> Confirmed: OnRecover
7+
Failed
8+
Init
9+
Init --> Failed: OnError
10+
Init --> WaitForConfirmation: OnBroadcast
11+
Init --> Failed: OnRecover
12+
TimedOut
13+
WaitForConfirmation
14+
WaitForConfirmation --> WaitForConfirmation: OnRecover
15+
WaitForConfirmation --> Confirmed: OnConfirmed
16+
WaitForConfirmation --> TimedOut: OnTimedOut
17+
```

scripts/fsm-generate.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
#!/usr/bin/env bash
2-
go run ./fsm/stateparser/stateparser.go --out ./fsm/example_fsm.md --fsm example
2+
go run ./fsm/stateparser/stateparser.go --out ./fsm/example_fsm.md --fsm example
3+
go run ./fsm/stateparser/stateparser.go --out ./reservation/reservation_fsm.md --fsm reservation

0 commit comments

Comments
 (0)