You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

54 lines
1.5 KiB

@startuml
participant CfdActor as CA
participant BlockchainMonitoringActor as BMA
CA -> CA: broadcast [lock-tx]
CA -> BMA: Here's a CFD where I published lock
BMA -> BMA: monitor [lock-tx]
BMA -> BMA: monitor [commit-tx]
BMA -> CA: finality confirmation for [lock-tx] @ cfd-id
CA -> CA: load cfd by cfd-id
CA -> CA: transition Cfd to Open
'CA -> BMA: Unsubscribe [lock-tx]
BMA -> BMA: stop monitor [lock-tx]
BMA -> CA: finality confirmation for [commit-tx] @ cfd-id
BMA -> BMA: [commit-tx]
CA -> CA: load cfd by cfd-id
CA -> CA: transition Cfd to OpenCommitted
group >t1
BMA -> CA: t1 confirmation for [commit-tx] @ cfd-id
CA -> CA: load cfd by txid
CA -> CA: check if timelock is reached => t1 reached
OracleActor -> CA: Attested price
OracleActor -> BMA: Attested price
CA -> CA: Attest decides CET
CA -> CA: publish [CET]
CA -> CA: transition Cfd to PendingClose
BMA -> BMA: decide which [CET] based on price
BMA -> BMA: monitor [CET]
BMA -> CA: finality confirmation for [CET] @ cfd-id
CA -> CA: transition Cfd to Closed
BMA -> BMA: stop monitor [commit-tx]
BMA -> BMA: stop monitor [CET]
end group
group >t2
BMA -> BMA: monitor [refund-tx]
BMA -> CA: t2 confirmation for [commit-tx] @ cfd-id
CA -> CA: load cfd by txid
CA -> CA: check if timelock is reached => t2 reached
CA -> CA: publish [refund-tx]
BMA -> CA: finality confirmation for [refund-tx]
CA -> CA: transition Cfd to Refunded
BMA -> BMA: stop monitor [commit-tx]
BMA -> BMA: stop monitor [refund-tx]
end group
@enduml