Skip to content

Commit f82d833

Browse files
committed
fsm: add instanout fsm parsing
1 parent 1b8f610 commit f82d833

File tree

5 files changed

+49
-4
lines changed

5 files changed

+49
-4
lines changed

fsm/example_fsm.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
stateDiagram-v2
33
[*] --> InitFSM: OnRequestStuff
44
InitFSM
5-
InitFSM --> StuffFailed: OnError
65
InitFSM --> StuffSentOut: OnStuffSentOut
6+
InitFSM --> StuffFailed: OnError
77
StuffFailed
88
StuffSentOut
9-
StuffSentOut --> StuffFailed: OnError
109
StuffSentOut --> StuffSuccess: OnStuffSuccess
10+
StuffSentOut --> StuffFailed: OnError
1111
StuffSuccess
1212
```

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"
1314
"github.com/lightninglabs/loop/instantout/reservation"
1415
)
1516

@@ -49,6 +50,13 @@ func run() error {
4950
return err
5051
}
5152

53+
case "instantout":
54+
instantout := &instantout.FSM{}
55+
err = writeMermaidFile(fp, instantout.GetV1ReservationStates())
56+
if err != nil {
57+
return err
58+
}
59+
5260
default:
5361
fmt.Println("Missing or wrong argument: fsm must be one of:")
5462
fmt.Println("\treservations")

instantout/fsm.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
```mermaid
2+
stateDiagram-v2
3+
[*] --> Init: OnStart
4+
BuildHtlc
5+
BuildHtlc --> PushPreimage: OnHtlcSigReceived
6+
BuildHtlc --> InstantFailedOutFailed: OnError
7+
BuildHtlc --> InstantFailedOutFailed: OnRecover
8+
FailedHtlcSweep
9+
FinishedSweeplessSweep
10+
Init
11+
Init --> SendPaymentAndPollAccepted: OnInit
12+
Init --> InstantFailedOutFailed: OnError
13+
Init --> InstantFailedOutFailed: OnRecover
14+
InstantFailedOutFailed
15+
PublishHtlc
16+
PublishHtlc --> FailedHtlcSweep: OnError
17+
PublishHtlc --> PublishHtlc: OnRecover
18+
PublishHtlc --> WaitForHtlcSweepConfirmed: OnHtlcBroadcasted
19+
PushPreimage
20+
PushPreimage --> PushPreimage: OnRecover
21+
PushPreimage --> WaitForSweeplessSweepConfirmed: OnSweeplessSweepPublished
22+
PushPreimage --> InstantFailedOutFailed: OnError
23+
PushPreimage --> PublishHtlc: OnErrorPublishHtlc
24+
SendPaymentAndPollAccepted
25+
SendPaymentAndPollAccepted --> BuildHtlc: OnPaymentAccepted
26+
SendPaymentAndPollAccepted --> InstantFailedOutFailed: OnError
27+
SendPaymentAndPollAccepted --> InstantFailedOutFailed: OnRecover
28+
WaitForHtlcSweepConfirmed
29+
WaitForHtlcSweepConfirmed --> FinishedHtlcPreimageSweep: OnHtlcSwept
30+
WaitForHtlcSweepConfirmed --> WaitForHtlcSweepConfirmed: OnRecover
31+
WaitForHtlcSweepConfirmed --> FailedHtlcSweep: OnError
32+
WaitForSweeplessSweepConfirmed
33+
WaitForSweeplessSweepConfirmed --> FinishedSweeplessSweep: OnSweeplessSweepConfirmed
34+
WaitForSweeplessSweepConfirmed --> WaitForSweeplessSweepConfirmed: OnRecover
35+
WaitForSweeplessSweepConfirmed --> PublishHtlc: OnError
36+
```

instantout/reservation/reservation_fsm.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ Confirmed --> TimedOut: OnTimedOut
77
Confirmed --> Confirmed: OnRecover
88
Failed
99
Init
10-
Init --> Failed: OnError
1110
Init --> WaitForConfirmation: OnBroadcast
1211
Init --> Failed: OnRecover
12+
Init --> Failed: OnError
1313
SpendBroadcasted
1414
SpendBroadcasted --> SpendConfirmed: OnSpendConfirmed
1515
SpendConfirmed

scripts/fsm-generate.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
#!/usr/bin/env bash
22
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
3+
go run ./fsm/stateparser/stateparser.go --out ./reservation/reservation_fsm.md --fsm reservation
4+
go run ./fsm/stateparser/stateparser.go --out ./instantout/fsm.md --fsm instantout

0 commit comments

Comments
 (0)