diff --git a/docs/sequence.puml b/docs/sequence.puml index ec2b4bca..4ebc86d9 100644 --- a/docs/sequence.puml +++ b/docs/sequence.puml @@ -4,52 +4,53 @@ actor Bob Actor Alice database Monero -Bob --> Alice: Establish connection +group Negotiation -group Request Response Channel - Bob -> Alice: Request Amounts - note left: Btc Amount + Bob --> Alice: Establish connection - Alice --> Bob: Send Amounts - note right: Btc & Xmr Amounts + group Request Response Channel + Bob -> Alice: Swap request + note left: Btc Amount\naddress hints + note right: Alice stores peer id & address hints\nto contact Bob + + Alice --> Bob: Swap response + note right: ACK or NACK\n Approx. XMR amount + end end -group Request Response Channel - Bob -> Alice: bob::Message0 - note left: Pubkeys\ndleq proof s_b\nxmr viewkey v_b\nbtc refund addr +group Execution Setup + group Phase 0 [Messages can be exchanged in any order] + Bob -> Alice: bob::Message0 + note left: Pubkeys\ndleq proof s_b\nxmr viewkey v_b\nbtc refund addr - Alice --> Bob: alice::Message0 - note right: Pubkeys\ndleq proof s_a\nxmr view key v_a\nbtc redeem addr\nbtc punish addr -end + Alice -> Bob: alice::Message0 + note right: Pubkeys\ndleq proof s_a\nxmr view key v_a\nbtc redeem addr\nbtc punish addr + end -group Request Response Channel - Bob -> Alice: bob::Message1 - note left: btc lock tx + group Phase 1 [Messages must be exchanged in the given order] - Alice --> Bob: alice::Message1 - note right: cancel tx sig\nrefund tx enc sig S_b -end + Bob -> Alice: bob::Message1 + note left: unsigned btc lock tx + + Alice -> Bob: alice::Message1 + note right: btc cancel tx sig\nbtc refund tx enc sig S_b -group Request Response Channel - Bob -> Alice: bob::Message2 - note left: punish tx sig\ncancel tx sig + Bob -> Alice: bob::Message2 + note left: btc punish tx sig\nbtc cancel tx sig -== Negotiated == + end +end +group Execution Bob ->> Bitcoin: Lock Alice ->> Monero: Lock - Alice --> Bob: alice::Message2 - note right: xmr lock tx transfer proof -end + Alice -> Bob: alice::Message2 + note right: Exact xmr amount\nzxmr lock tx transfer proof\nThis can be removed if Bob watches the blockchain. -group Request Response Channel Bob -> Alice: bob::Message3 note left: redeem tx enc sig S_a - Alice --> Bob: alice::Message3 - note right: Empty -end Alice ->> Bitcoin: Redeem @@ -58,5 +59,6 @@ end Bob -> Bob: Extract s_a Bob ->> Monero: Redeem +end @enduml