tx · DTQELh3usLhLdmzyoKJ1kbBu855GG6yXy6CY21ubGE76

3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f:  -0.01400000 Waves

2018.10.03 17:13 [359315] smart account 3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f > SELF 0.00000000 Waves

{ "type": 13, "id": "DTQELh3usLhLdmzyoKJ1kbBu855GG6yXy6CY21ubGE76", "fee": 1400000, "feeAssetId": null, "timestamp": 1538576018388, "version": 1, "sender": "3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f", "senderPublicKey": "4BRdUi95rN89kRWamqTcb9Dj9pLpAQbjLt17MPxcgGhG", "proofs": [ "2HiDYDNEQVUywbayBF7pw1GYDzQquzkciMHYHvCvAG21nLKHMt97ca7naTeGSeUXvW2eBH9kbuVrqaFk3LKmGpyZ" ], "script": "base64:AQa3b8tH", "chainId": 84, "height": 359315, "spentComplexity": 0 } View: original | compacted Prev: J3SKyYF6i668SV9Y7bwfD15J62koiVS2sRycio1FHgaX Next: 77YZgQ5fddGDiqeUnqX28Z7zZDTEbCfP9n9CPyvLpM84 Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
3-let redPubKey = base58'BYrrqVpD5uuz7cndnPwuUxuYFUK6Bovu6yfoV8seY6Px'
4-let greenPubKey = base58'HnSkSntD7ihFgZpLNmHgdVnVmCYxJLC96eNbubTXsWju'
5-let bluePubKey = base58'5Ak4HQK3cnkwe6XVUXwpCYeSAARwruKyAmsmegePUPvo'
6-let redAddr = Address(base58'3MyP3hrK8SBvtXtggNWdsry8KuGdrv1sFrV')
7-let greenAddr = Address(base58'3MzzYQCC8Ks86exHaWV2VpaANbNLPRDunNJ')
8-let blueAddr = Address(base58'3MuuWYr3DyjEkncbNU1tUeFbyvcyZng9gz4')
9-let contract = tx.sender
10-let redSigned = sigVerify(tx.bodyBytes, tx.proofs[0], redPubKey)
11-let greenSigned = sigVerify(tx.bodyBytes, tx.proofs[0], greenPubKey)
12-let blueSigned = sigVerify(tx.bodyBytes, tx.proofs[0], bluePubKey)
13-match tx {
14- case ttx: DataTransaction =>
15- let dataSize = size(ttx.data)
16- let fromKey = ttx.data[0].key
17- let toKey = ttx.data[1].key
18- let turnToKey = ttx.data[2].key
19- let newFromUnits = ttx.data[0].value
20- let newToUnits = ttx.data[1].value
21- let turnToValue = ttx.data[2].value
22- let turnCorrect = if (if (if (if (if (if (if (if (if (if (if (if ((fromKey == "country1"))
23- then (toKey == "country2")
24- else false)
25- then true
26- else if ((fromKey == "country2"))
27- then if ((toKey == "country1"))
28- then true
29- else (toKey == "country3")
30- else false)
31- then true
32- else if ((fromKey == "country3"))
33- then if (if ((toKey == "country2"))
34- then true
35- else (toKey == "country4"))
36- then true
37- else (toKey == "country5")
38- else false)
39- then true
40- else if ((fromKey == "country4"))
41- then if ((toKey == "country3"))
42- then true
43- else (toKey == "country8")
44- else false)
45- then true
46- else if ((fromKey == "country5"))
47- then if ((toKey == "country3"))
48- then true
49- else (toKey == "country10")
50- else false)
51- then true
52- else if ((fromKey == "country6"))
53- then (toKey == "country7")
54- else false)
55- then true
56- else if ((fromKey == "country7"))
57- then if ((toKey == "country6"))
58- then true
59- else (toKey == "country8")
60- else false)
61- then true
62- else if ((fromKey == "country8"))
63- then if (if ((toKey == "country4"))
64- then true
65- else (toKey == "country7"))
66- then true
67- else (toKey == "country9")
68- else false)
69- then true
70- else if ((fromKey == "country9"))
71- then if ((toKey == "country8"))
72- then true
73- else (toKey == "country10")
74- else false)
75- then true
76- else if ((fromKey == "country10"))
77- then if (if ((toKey == "country5"))
78- then true
79- else (toKey == "country10"))
80- then true
81- else (toKey == "country11")
82- else false)
83- then true
84- else if ((fromKey == "country11"))
85- then if ((toKey == "country10"))
86- then true
87- else (toKey == "country12")
88- else false)
89- then true
90- else if ((fromKey == "country12"))
91- then (toKey == "country11")
92- else false
93- let turnFromKey = ("turn_" + fromKey)
94- let turnFromValue = extract(getInteger(contract, turnFromKey))
95- let turnAllowed = ((height - 2) > turnFromValue)
96- let oldTurnToKey = ("turn_" + toKey)
97- let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
98- let locked = if ((("turn_" + toKey) == turnToKey))
99- then (turnToValue == height)
100- else false
101- let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
102- then (turnToValue == oldTurnToValue)
103- else false
104- let fromUnits = extract(getInteger(contract, fromKey))
105- let toUnits = extract(getInteger(contract, toKey))
106- let redAttackers = (fromUnits % 100)
107- let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
108- let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
109- let redDefenders = (toUnits % 100)
110- let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
111- let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
112- let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
113- let attackers = (((redAttackers + greenAttackers) + blueAttackers) + ((height - turnFromValue) / 5))
114- let defenders = (((redDefenders + greenDefenders) + blueDefenders) + ((height - oldTurnToValue) / 5))
115- let king = if (if (if ((redAttackers > 0))
116- then redSigned
117- else false)
118- then true
119- else if ((greenAttackers > 0))
120- then greenSigned
121- else false)
122- then true
123- else if ((blueAttackers > 0))
124- then blueSigned
125- else false
126- let multiAttackers = if ((attackers > 0))
127- then (fromUnits / attackers)
128- else 0
129- let multiDefenders = if ((defenders > 0))
130- then (toUnits / defenders)
131- else 0
132- let win = if (if (if (if (if (king)
133- then (multiAttackers != multiDefenders)
134- else false)
135- then (attackers > defenders)
136- else false)
137- then (newFromUnits == 0)
138- else false)
139- then (newToUnits == ((attackers - defenders) * multiAttackers))
140- else false)
141- then locked
142- else false
143- let lost = if (if (if (if (if (king)
144- then (multiAttackers != multiDefenders)
145- else false)
146- then (defenders > attackers)
147- else false)
148- then (newFromUnits == 0)
149- else false)
150- then (newToUnits == ((defenders - attackers) * multiDefenders))
151- else false)
152- then lockNotChanged
153- else false
154- let draw = if (if (if (if (if (king)
155- then (multiAttackers != multiDefenders)
156- else false)
157- then (attackers == defenders)
158- else false)
159- then (newFromUnits == 0)
160- else false)
161- then (newToUnits == (((defenders + 1) - attackers) * multiDefenders))
162- else false)
163- then lockNotChanged
164- else false
165- let move = if (if (if (if (if (king)
166- then (multiAttackers == multiDefenders)
167- else false)
168- then (newFromUnits == 0)
169- else false)
170- then (10 >= (attackers + defenders))
171- else false)
172- then (newToUnits == ((attackers + defenders) * multiAttackers))
173- else false)
174- then locked
175- else false
176- if (if (if (if (if (if (win)
177- then true
178- else lost)
179- then true
180- else draw)
181- then true
182- else move)
183- then turnAllowed
184- else false)
185- then (dataSize == 3)
186- else false)
187- then true
188- else (dataSize == 12)
189- case ntx: TransferTransaction =>
190- true
191- case _ =>
192- true
193-}
3+true

github/deemru/w8io/169f3d6 
28.31 ms