1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
When [
(Case
(Deposit
(Role "Seller")
(Role "Seller")
(Token "" "")
(ConstantParam "Collateral amount"))
(When [
(Case
(Deposit
?party
?from_party
(Token "" "")
?value)
(When [
(Case
?action
(When [
(Case
(Choice
(ChoiceId "Everything is alright"
?party) [
?bound]) ?contract)
,
(Case
?action
(Pay
?party
?payee
(Token "" "")
(ConstantParam "Price")
(When [
?case,
(Case
(Choice
(ChoiceId "Confirm problem"
(Role "Seller")) [
(Bound 1 1)]) Close)
,
(Case
?action
(Pay
?party
?payee
?token
?value
(Pay
?party
(Party
?party)
(Token "" "")
?value (When
[
?case,
(Case
(Deposit
?party
?from_party
?token ?value
)
?contract)]
?timeout
?contract))))] (TimeParam "Complaint deadline") (When
[
?case,
(Case
(Deposit
?party
?from_party
?token ?value
)
(Pay
?party
?payee
?token
?value ?contract
))]
?timeout
?contract) )))] (TimeParam "Dispute by buyer timeout") (When
[(Case
(Notify ?observation)
?contract), (Case
(Deposit
(Role "INTOACCOF")
(Role "BY")
(Token "" "")
(ConstantParam "Collateral amount")
)
(When
[(Case
(Deposit
?party
?from_party
(Token "" "")
?value
)
(When
[(Case
(Notify ?observation)
?contract)]
(TimeParam "Deposit of price by buyer timeout")
Close )
)]
0 ?contract)
)]
(TimeParam "Collateral deposit by seller timeout")
Close ) ))] (TimeParam "Deposit of price by buyer timeout") Close))] ?timeout ?contract))] (TimeParam "Collateral deposit by seller timeout") Close