@startuml
hide empty description
[*] --> WaitingCounterparty : **Wallet::blind**
WaitingCounterparty --> expired¹ : expired before receiving consignment
note on link
expiration can be configured
via **Wallet::blind** argument
end note
WaitingCounterparty --> Failed : received invalid consignment
WaitingCounterparty --> WaitingConfirmation : **Wallet::refresh**\nreceived valid consignment
WaitingConfirmation --> Settled : **Wallet::refresh**\nenough confirmations
expired¹ --> Failed : **Wallet::fail_transfer**
Failed --> removed¹ : **Wallet::delete_transfers**
note "¹ not an actual TransferStatus" as N1
@enduml