mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2024-10-01 01:45:40 -04:00
Remove Req-Res and update for single market maker use case
- Bob initiate swap with BTC Amount - Alice acks with approx. xmr amount - Rework terminology, make a difference between negotiations and execution setup - Remove request response channels in favor of one shots - Give exact amount to Bob once assets are locked
This commit is contained in:
parent
1e08a17bd9
commit
c55f3e3403
@ -4,52 +4,53 @@ actor Bob
|
|||||||
Actor Alice
|
Actor Alice
|
||||||
database Monero
|
database Monero
|
||||||
|
|
||||||
Bob --> Alice: Establish connection
|
group Negotiation
|
||||||
|
|
||||||
group Request Response Channel
|
Bob --> Alice: Establish connection
|
||||||
Bob -> Alice: Request Amounts
|
|
||||||
note left: Btc Amount
|
|
||||||
|
|
||||||
Alice --> Bob: Send Amounts
|
group Request Response Channel
|
||||||
note right: Btc & Xmr Amounts
|
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
|
end
|
||||||
|
|
||||||
group Request Response Channel
|
group Execution Setup
|
||||||
Bob -> Alice: bob::Message0
|
group Phase 0 [Messages can be exchanged in any order]
|
||||||
note left: Pubkeys\ndleq proof s_b\nxmr viewkey v_b\nbtc refund addr
|
Bob -> Alice: bob::Message0
|
||||||
|
note left: Pubkeys\ndleq proof s_b\nxmr viewkey v_b\nbtc refund addr
|
||||||
|
|
||||||
Alice --> Bob: alice::Message0
|
Alice -> Bob: alice::Message0
|
||||||
note right: Pubkeys\ndleq proof s_a\nxmr view key v_a\nbtc redeem addr\nbtc punish addr
|
note right: Pubkeys\ndleq proof s_a\nxmr view key v_a\nbtc redeem addr\nbtc punish addr
|
||||||
|
end
|
||||||
|
|
||||||
|
group Phase 1 [Messages must be exchanged in the given order]
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
Bob -> Alice: bob::Message2
|
||||||
|
note left: btc punish tx sig\nbtc cancel tx sig
|
||||||
|
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
group Request Response Channel
|
group Execution
|
||||||
Bob -> Alice: bob::Message1
|
|
||||||
note left: btc lock tx
|
|
||||||
|
|
||||||
Alice --> Bob: alice::Message1
|
|
||||||
note right: cancel tx sig\nrefund tx enc sig S_b
|
|
||||||
end
|
|
||||||
|
|
||||||
group Request Response Channel
|
|
||||||
Bob -> Alice: bob::Message2
|
|
||||||
note left: punish tx sig\ncancel tx sig
|
|
||||||
|
|
||||||
== Negotiated ==
|
|
||||||
|
|
||||||
Bob ->> Bitcoin: Lock
|
Bob ->> Bitcoin: Lock
|
||||||
|
|
||||||
Alice ->> Monero: Lock
|
Alice ->> Monero: Lock
|
||||||
|
|
||||||
Alice --> Bob: alice::Message2
|
Alice -> Bob: alice::Message2
|
||||||
note right: xmr lock tx transfer proof
|
note right: Exact xmr amount\nzxmr lock tx transfer proof\nThis can be removed if Bob watches the blockchain.
|
||||||
end
|
|
||||||
|
|
||||||
group Request Response Channel
|
|
||||||
Bob -> Alice: bob::Message3
|
Bob -> Alice: bob::Message3
|
||||||
note left: redeem tx enc sig S_a
|
note left: redeem tx enc sig S_a
|
||||||
Alice --> Bob: alice::Message3
|
|
||||||
note right: Empty
|
|
||||||
end
|
|
||||||
|
|
||||||
Alice ->> Bitcoin: Redeem
|
Alice ->> Bitcoin: Redeem
|
||||||
|
|
||||||
@ -58,5 +59,6 @@ end
|
|||||||
Bob -> Bob: Extract s_a
|
Bob -> Bob: Extract s_a
|
||||||
|
|
||||||
Bob ->> Monero: Redeem
|
Bob ->> Monero: Redeem
|
||||||
|
end
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
|
Loading…
Reference in New Issue
Block a user