diff --git a/fsm/stateparser/stateparser.go b/fsm/stateparser/stateparser.go index d70645230..a816768bc 100644 --- a/fsm/stateparser/stateparser.go +++ b/fsm/stateparser/stateparser.go @@ -10,6 +10,7 @@ import ( "sort" "github.com/lightninglabs/loop/fsm" + "github.com/lightninglabs/loop/hyperloop" "github.com/lightninglabs/loop/instantout" "github.com/lightninglabs/loop/instantout/reservation" ) @@ -57,6 +58,13 @@ func run() error { return err } + case "hyperloop": + hyperloop := hyperloop.FSM{} + err = writeMermaidFile(fp, hyperloop.GetStateMap()) + if err != nil { + return err + } + default: fmt.Println("Missing or wrong argument: fsm must be one of:") fmt.Println("\treservations") diff --git a/hyperloop/fsm.md b/hyperloop/fsm.md new file mode 100644 index 000000000..3151632f5 --- /dev/null +++ b/hyperloop/fsm.md @@ -0,0 +1,45 @@ +```mermaid +stateDiagram-v2 +[*] --> Init: OnStart +Failed +Init +Init --> Registering: OnInit +Init --> Failed: OnError +PubslishSweep +PubslishSweep --> WaitForSweepConfirmation: OnSweeplessSweepPublish +PubslishSweep --> Failed: OnError +PushHtlcNonce +PushHtlcNonce --> WaitForReadyForHtlcSig: OnPushedHtlcNonce +PushHtlcNonce --> Failed: OnError +PushHtlcSig +PushHtlcSig --> WaitForHtlcSig: OnPushedHtlcSig +PushHtlcSig --> Failed: OnError +PushPreimage +PushPreimage --> WaitForReadyForSweeplessSweepSig: OnPushedPreimage +PushPreimage --> Failed: OnError +PushSweeplessSweepSig +PushSweeplessSweepSig --> PubslishSweep: OnPushedSweeplessSweepSig +PushSweeplessSweepSig --> Failed: OnError +Registering +Registering --> WaitForPublish: OnRegistered +Registering --> Failed: OnError +SweepConfirmed +WaitForConfirmation +WaitForConfirmation --> PushHtlcNonce: OnConfirmed +WaitForConfirmation --> Failed: OnError +WaitForHtlcSig +WaitForHtlcSig --> PushPreimage: OnReceivedHtlcSig +WaitForHtlcSig --> Failed: OnError +WaitForPublish +WaitForPublish --> WaitForConfirmation: OnPublished +WaitForPublish --> Failed: OnError +WaitForReadyForHtlcSig +WaitForReadyForHtlcSig --> PushHtlcSig: OnReadyForHtlcSig +WaitForReadyForHtlcSig --> Failed: OnError +WaitForReadyForSweeplessSweepSig +WaitForReadyForSweeplessSweepSig --> PushSweeplessSweepSig: OnReadyForSweeplessSweepSig +WaitForReadyForSweeplessSweepSig --> Failed: OnError +WaitForSweepConfirmation +WaitForSweepConfirmation --> SweepConfirmed: OnSweeplessSweepConfirmed +WaitForSweepConfirmation --> Failed: OnError +``` \ No newline at end of file diff --git a/scripts/fsm-generate.sh b/scripts/fsm-generate.sh index 4ab2d74cb..cb797c259 100755 --- a/scripts/fsm-generate.sh +++ b/scripts/fsm-generate.sh @@ -1,4 +1,5 @@ #!/usr/bin/env bash go run ./fsm/stateparser/stateparser.go --out ./fsm/example_fsm.md --fsm example go run ./fsm/stateparser/stateparser.go --out ./reservation/reservation_fsm.md --fsm reservation -go run ./fsm/stateparser/stateparser.go --out ./instantout/fsm.md --fsm instantout \ No newline at end of file +go run ./fsm/stateparser/stateparser.go --out ./instantout/fsm.md --fsm instantout +go run ./fsm/stateparser/stateparser.go --out ./hyperloop/fsm.md --fsm hyperloop \ No newline at end of file