tx · HGpnaHtBEd5WPFR91MXts5RRSDKLzJrmjvPkyMPJCMC5

3MvvY9tFS7ahPVZQzZqx8gMj3oyNVYAUsDv:  -0.01000000 Waves

2019.02.11 21:11 [490830] smart account 3MvvY9tFS7ahPVZQzZqx8gMj3oyNVYAUsDv > SELF 0.00000000 Waves

{ "type": 13, "id": "HGpnaHtBEd5WPFR91MXts5RRSDKLzJrmjvPkyMPJCMC5", "fee": 1000000, "feeAssetId": null, "timestamp": 1549908698537, "version": 1, "sender": "3MvvY9tFS7ahPVZQzZqx8gMj3oyNVYAUsDv", "senderPublicKey": "T2L891VPDJ4yarxu4XFaaSdY41REcQ6Ur4FiWDs7g25", "proofs": [ "5xqg81Gcj3LyNp7jAKCF5phV2N3WGjUaMT42rRLhzD1if5mCLMrJ6G3MwnFn8NmnD2fF4gHD3nJr3SoAeWHxf8Dp" ], "script": "base64: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", "chainId": 84, "height": 490830, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 1 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let me = tx.sender
4+let wave = 100000000
5+let bet = (1 * wave)
6+let serviceAddress = addressFromString("3N7oF5J5m9BwBFCmVJZWr3AEH3u4c6CLoB9")
7+let serviceCommission = (bet / 200)
8+let rock = base58'1'
9+let paper = base58'2'
10+let scissors = base58'3'
11+let none = throw("")
12+let timeout = 15
13+let p1MoveHash = extract(getBinary(me, "p1mh"))
14+let matchKey = extract(getBinary(me, "mk"))
15+let player1Key = extract(getBinary(me, "p1k"))
16+match tx {
17+ case data: DataTransaction =>
18+ let dataValid = if (isDefined(getBinary(data.data, "p2p")))
19+ then {
20+ let h = extract(getInteger(data.data, "h"))
21+ if (if (if (if (if ((size(data.data) == 4))
22+ then ((height + 1) >= h)
23+ else false)
24+ then (h >= (height - 1))
25+ else false)
26+ then !(isDefined(getBinary(me, "p2p")))
27+ else false)
28+ then (size(extract(getBinary(data.data, "p2mh"))) == 32)
29+ else false)
30+ then match transactionById(extract(getBinary(data.data, "p2p"))) {
31+ case p2payment: TransferTransaction =>
32+ if (if (if (if ((p2payment.amount == (1 * wave)))
33+ then (p2payment.recipient == me)
34+ else false)
35+ then (p2payment.senderPublicKey == extract(getBinary(data.data, "p2k")))
36+ else false)
37+ then (p2payment.senderPublicKey != player1Key)
38+ else false)
39+ then !(isDefined(p2payment.assetId))
40+ else false
41+ case _ =>
42+ none
43+ }
44+ else false
45+ }
46+ else if (isDefined(getBinary(data.data, "p1m")))
47+ then {
48+ let p1moves = take(extract(getBinary(data.data, "p1m")), 3)
49+ let p1m1 = take(p1moves, 1)
50+ let p1m2 = takeRightBytes(take(p1moves, 2), 1)
51+ let p1m3 = takeRightBytes(p1moves, 1)
52+ let err1 = if (if (if (if (if (if (if (if ((p1m1 != rock))
53+ then (p1m1 != scissors)
54+ else false)
55+ then (p1m1 != paper)
56+ else false)
57+ then (p1m2 != rock)
58+ else false)
59+ then (p1m2 != scissors)
60+ else false)
61+ then (p1m2 != paper)
62+ else false)
63+ then (p1m3 != rock)
64+ else false)
65+ then (p1m3 != scissors)
66+ else false)
67+ then (p1m3 != paper)
68+ else false
69+ if (if (if (!(err1))
70+ then !(isDefined(getBinary(me, "p1m")))
71+ else false)
72+ then (size(data.data) == 1)
73+ else false)
74+ then (sha256(extract(getBinary(data.data, "p1m"))) == extract(getBinary(me, "p1mh")))
75+ else false
76+ }
77+ else if (isDefined(getBinary(data.data, "p2m")))
78+ then {
79+ let p2moves = take(extract(getBinary(data.data, "p2m")), 3)
80+ let p2m1 = take(p2moves, 1)
81+ let p2m2 = takeRightBytes(take(p2moves, 2), 1)
82+ let p2m3 = takeRightBytes(p2moves, 1)
83+ let err2 = if (if (if (if (if (if (if (if ((p2m1 != rock))
84+ then (p2m1 != scissors)
85+ else false)
86+ then (p2m1 != paper)
87+ else false)
88+ then (p2m2 != rock)
89+ else false)
90+ then (p2m2 != scissors)
91+ else false)
92+ then (p2m2 != paper)
93+ else false)
94+ then (p2m3 != rock)
95+ else false)
96+ then (p2m3 != scissors)
97+ else false)
98+ then (p2m3 != paper)
99+ else false
100+ if (if (if (!(err2))
101+ then !(isDefined(getBinary(me, "p2m")))
102+ else false)
103+ then (size(data.data) == 1)
104+ else false)
105+ then (sha256(extract(getBinary(data.data, "p2m"))) == extract(getBinary(me, "p2mh")))
106+ else false
107+ }
108+ else if (isDefined(getBinary(data.data, "w")))
109+ then true
110+ else none
111+ dataValid
112+ case payout: MassTransferTransaction =>
113+ let pt = payout.transfers
114+ let h = extract(getInteger(me, "h"))
115+ let p1moves = take(extract(getBinary(me, "p1m")), 3)
116+ let p2moves = take(extract(getBinary(me, "p2m")), 3)
117+ let p1m1 = take(p1moves, 1)
118+ let p2m1 = take(p2moves, 1)
119+ let p1m2 = takeRightBytes(take(p1moves, 2), 1)
120+ let p2m2 = takeRightBytes(take(p2moves, 2), 1)
121+ let p1m3 = takeRightBytes(p1moves, 1)
122+ let p2m3 = takeRightBytes(p2moves, 1)
123+ let score = (((if (if (if (if ((p1m1 == rock))
124+ then (p2m1 == scissors)
125+ else false)
126+ then true
127+ else if ((p1m1 == paper))
128+ then (p2m1 == rock)
129+ else false)
130+ then true
131+ else if ((p1m1 == scissors))
132+ then (p2m1 == paper)
133+ else false)
134+ then 1
135+ else if ((p1m1 == p2m1))
136+ then 0
137+ else -1) + (if (if (if (if ((p1m2 == rock))
138+ then (p2m2 == scissors)
139+ else false)
140+ then true
141+ else if ((p1m2 == paper))
142+ then (p2m2 == rock)
143+ else false)
144+ then true
145+ else if ((p1m2 == scissors))
146+ then (p2m2 == paper)
147+ else false)
148+ then 1
149+ else if ((p1m2 == p2m2))
150+ then 0
151+ else -1)) + (if (if (if (if ((p1m3 == rock))
152+ then (p2m3 == scissors)
153+ else false)
154+ then true
155+ else if ((p1m3 == paper))
156+ then (p2m3 == rock)
157+ else false)
158+ then true
159+ else if ((p1m3 == scissors))
160+ then (p2m3 == paper)
161+ else false)
162+ then 1
163+ else if ((p1m3 == p2m3))
164+ then 0
165+ else -1))
166+ let w = if (if (((height - h) > timeout))
167+ then if (!(isDefined(getBinary(me, "p1m"))))
168+ then true
169+ else !(isDefined(getBinary(me, "p1m")))
170+ else false)
171+ then if (if (!(isDefined(getBinary(me, "p1m"))))
172+ then !(isDefined(getBinary(me, "p1m")))
173+ else false)
174+ then base58'1'
175+ else if (!(isDefined(getBinary(me, "p1m"))))
176+ then extract(getBinary(me, "p2k"))
177+ else player1Key
178+ else if ((score > 0))
179+ then player1Key
180+ else if ((score == 0))
181+ then base58'1'
182+ else extract(getBinary(me, "p2k"))
183+ let p1 = addressFromPublicKey(player1Key)
184+ let p2 = addressFromPublicKey(extract(getBinary(me, "p2k")))
185+ let noWinner = (size(w) == 1)
186+ let winner = if (!(noWinner))
187+ then addressFromPublicKey(w)
188+ else p1
189+ let looser = if ((p1 == winner))
190+ then p2
191+ else p1
192+ let prizePool = ((wavesBalance(me) - serviceCommission) - payout.fee)
193+ let payoutValid = if (if (if ((pt[1].recipient == winner))
194+ then (pt[1].amount == (if (noWinner)
195+ then (prizePool / 2)
196+ else prizePool))
197+ else false)
198+ then (pt[2].recipient == looser)
199+ else false)
200+ then (pt[2].amount == (if (noWinner)
201+ then (prizePool / 2)
202+ else 0))
203+ else false
204+ if (if (if ((payout.fee == 800000))
205+ then (pt[0].recipient == serviceAddress)
206+ else false)
207+ then (pt[0].amount == serviceCommission)
208+ else false)
209+ then payoutValid
210+ else false
211+ case _ =>
212+ false
213+}

github/deemru/w8io/026f985 
31.73 ms