tx · CSxW94fLv5ceK4fK87Q1YgCspkYGzQuiaKfUGLMVmmSK

3MyHwrSEHk1LzLWgz4wMVEbYypEhq1ZXpnZ:  -0.01400000 Waves

2018.11.13 19:19 [374174] smart account 3MyHwrSEHk1LzLWgz4wMVEbYypEhq1ZXpnZ > SELF 0.00000000 Waves

{ "type": 13, "id": "CSxW94fLv5ceK4fK87Q1YgCspkYGzQuiaKfUGLMVmmSK", "fee": 1400000, "feeAssetId": null, "timestamp": 1542126067338, "version": 1, "sender": "3MyHwrSEHk1LzLWgz4wMVEbYypEhq1ZXpnZ", "senderPublicKey": "D4CC6D8UKUzgs9xRbRDKdBoDmS5P4itWT4p7ueC3UeuB", "proofs": [ "5z1fkXMhnhxqSdSSmRS33xKNhrnRs3o3mEMoAZVXMD1xptnoamKFAV9sPg8cWJHjnmGGYvsg6v9WK6HpVqmRrTWi" ], "script": "base64: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RGVmZW5kZXJzBQAAAA1ibHVlRGVmZW5kZXJzBQAAAA53aGl0ZURlZmVuZGVycwQAAAASdW5saW1pdGVkQXR0YWNrZXJzCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAxyZWRBdHRhY2tlcnMFAAAADmdyZWVuQXR0YWNrZXJzBQAAAA1ibHVlQXR0YWNrZXJzCQAAZQAAAAIFAAAABmhlaWdodAUAAAANdHVybkZyb21WYWx1ZQQAAAASdW5saW1pdGVkRGVmZW5kZXJzAwkAAGYAAAACBQAAAA53aGl0ZURlZmVuZGVycwAAAAAAAAAAAAUAAAAOd2hpdGVEZWZlbmRlcnMJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAADHJlZERlZmVuZGVycwUAAAAOZ3JlZW5EZWZlbmRlcnMFAAAADWJsdWVEZWZlbmRlcnMJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAA5vbGRUdXJuVG9WYWx1ZQQAAAAJYXR0YWNrZXJzAwkAAGcAAAACBQAAABJ1bmxpbWl0ZWRBdHRhY2tlcnMAAAAAAAAAAAoAAAAAAAAAAAkJAABlAAAAAgUAAAASdW5saW1pdGVkQXR0YWNrZXJzAAAAAAAAAAABBAAAAAlkZWZlbmRlcnMDCQAAZwAAAAIFAAAAEnVubGltaXRlZERlZmVuZGVycwAAAAAAAAAACgAAAAAAAAAACgUAAAASdW5saW1pdGVkRGVmZW5kZXJzBAAAAARraW5nAwMDCQAAZgAAAAIFAAAADHJlZEF0dGFja2VycwAAAAAAAAAAAAUAAAAJcmVkU2lnbmVkBwYDCQAAZgAAAAIFAAAADmdyZWVuQXR0YWNrZXJzAAAAAAAAAAAABQAAAAtncmVlblNpZ25lZAcGAwkAAGYAAAACBQAAAA1ibHVlQXR0YWNrZXJzAAAAAAAAAAAABQAAAApibHVlU2lnbmVkBwQAAAAObXVsdGlBdHRhY2tlcnMDCQAAZgAAAAIFAAAAEGNvdW50cnlBdHRhY2tlcnMAAAAAAAAAAAAJAABpAAAAAgUAAAAJZnJvbVVuaXRzBQAAABBjb3VudHJ5QXR0YWNrZXJzAAAAAAAAAAAABAAAAA5tdWx0aURlZmVuZGVycwMJAABmAAAAAgUAAAAQY291bnRyeURlZmVuZGVycwAAAAAAAAAAAAkAAGkAAAACBQAAAAd0b1VuaXRzBQAAABBjb3VudHJ5RGVmZW5kZXJzAAAAAAAAAAAABAAAAAVmaWdodAMDBQAAAARraW5nCQEAAAACIT0AAAACBQAAAA5tdWx0aUF0dGFja2VycwUAAAAObXVsdGlEZWZlbmRlcnMHCQAAAAAAAAIFAAAADG5ld0Zyb21Vbml0cwUAAAAObXVsdGlBdHRhY2tlcnMHBAAAAAd3aW5DYXNlCQAAZwAAAAIFAAAACWF0dGFja2VycwUAAAAJZGVmZW5kZXJzBAAAAAhsb3N0Q2FzZQkAAGYAAAACBQAAAAlkZWZlbmRlcnMFAAAACWF0dGFja2VycwQAAAAKd2luVG9Vbml0cwkAAAAAAAACBQAAAApuZXdUb1VuaXRzCQAAaAAAAAIJAABkAAAAAgkAAGUAAAACBQAAAAlhdHRhY2tlcnMFAAAACWRlZmVuZGVycwAAAAAAAAAAAQUAAAAObXVsdGlBdHRhY2tlcnMEAAAAC2xvc3RUb1VuaXRzCQAAAAAAAAIFAAAACm5ld1RvVW5pdHMJAABoAAAAAgkAAGUAAAACBQAAAAlkZWZlbmRlcnMFAAAACWF0dGFja2VycwUAAAAObXVsdGlEZWZlbmRlcnMEAAAAA3dpbgMDAwUAAAAFZmlnaHQFAAAAB3dpbkNhc2UHBQAAAAp3aW5Ub1VuaXRzBwUAAAAGbG9ja2VkBwQAAAAEbG9zdAMDAwUAAAAFZmlnaHQFAAAACGxvc3RDYXNlBwUAAAALbG9zdFRvVW5pdHMHBQAAAA5sb2NrTm90Q2hhbmdlZAcEAAAAA2FkZAMJAABnAAAAAgAAAAAAAAAACgkAAGQAAAACBQAAAAlhdHRhY2tlcnMFAAAACWRlZmVuZGVycwkAAGQAAAACBQAAAAlhdHRhY2tlcnMFAAAACWRlZmVuZGVycwAAAAAAAAAACgQAAAAEbW92ZQMDAwMFAAAABGtpbmcJAAAAAAAAAgUAAAAObXVsdGlBdHRhY2tlcnMFAAAADm11bHRpRGVmZW5kZXJzBwkAAAAAAAACBQAAAAxuZXdGcm9tVW5pdHMFAAAADm11bHRpQXR0YWNrZXJzBwkAAAAAAAACBQAAAApuZXdUb1VuaXRzCQAAaAAAAAIFAAAAA2FkZAUAAAAObXVsdGlBdHRhY2tlcnMHBQAAAAZsb2NrZWQHAwMDAwMDBQAAAAN3aW4GBQAAAARsb3N0BgUAAAAEbW92ZQUAAAALdHVybkFsbG93ZWQHBQAAAAt0dXJuQ29ycmVjdAcJAAAAAAAAAgUAAAAIZGF0YVNpemUAAAAAAAAAAAQHBgkAAAAAAAACBQAAAAhkYXRhU2l6ZQAAAAAAAAAADAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAADbnR4BQAAAAckbWF0Y2gwBgapQJWE", "chainId": 84, "height": 374174, "spentComplexity": 0 } View: original | compacted Prev: none Next: 3vKv28gnX1HBwhDocHsaJijyPfTkkktUWPo9oWn7ER3j Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 1 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let redPubKey = base58'FGdfvf5Tqt9oF6erwrySeqWhbnBvFBcAgyzxi5ipkaSs'
4+let greenPubKey = base58'EcNRQ6fnbwxXhsHNxsgBxcoT3NviaNUsKkku6cPq1nKE'
5+let bluePubKey = base58'6RmvmpKVEAkaXkvrCqkDjacuUS6yP5Y1Q9rrFWFWdAsS'
6+let redAddr = Address(base58'3P38uq2GFgQ61mzq6ws3mphmViAyNhVV59w')
7+let greenAddr = Address(base58'3PCAkktVadW14UFo2sfp2GHsYyKbNXYLpeJ')
8+let blueAddr = Address(base58'3P7zzvxkrQdMCky2nrCPggnyWEJjqzoY8Us')
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 newTurnFromKey = ttx.data[2].key
19+ let turnToKey = ttx.data[3].key
20+ let newFromUnits = ttx.data[0].value
21+ let newToUnits = ttx.data[1].value
22+ let newTurnFromValue = ttx.data[2].value
23+ let turnToValue = ttx.data[3].value
24+ let turnCorrect = if (if (if (if (if (if (if (if (if (if (if (if ((fromKey == "country1"))
25+ then if (if ((toKey == "country2"))
26+ then (toKey == "country8")
27+ else false)
28+ then (toKey == "country9")
29+ else false
30+ else false)
31+ then true
32+ else if ((fromKey == "country2"))
33+ then if (if (if ((toKey == "country1"))
34+ then true
35+ else (toKey == "country3"))
36+ then true
37+ else (toKey == "country9"))
38+ then true
39+ else (toKey == "country10")
40+ else false)
41+ then true
42+ else if ((fromKey == "country3"))
43+ then if (if (if ((toKey == "country2"))
44+ then true
45+ else (toKey == "country4"))
46+ then true
47+ else (toKey == "country10"))
48+ then true
49+ else (toKey == "country11")
50+ else false)
51+ then true
52+ else if ((fromKey == "country4"))
53+ then if (if ((toKey == "country3"))
54+ then true
55+ else (toKey == "country5"))
56+ then true
57+ else (toKey == "country11")
58+ else false)
59+ then true
60+ else if ((fromKey == "country5"))
61+ then if ((toKey == "country4"))
62+ then true
63+ else (toKey == "country6")
64+ else false)
65+ then true
66+ else if ((fromKey == "country6"))
67+ then if ((toKey == "country5"))
68+ then true
69+ else (toKey == "country7")
70+ else false)
71+ then true
72+ else if ((fromKey == "country7"))
73+ then if ((toKey == "country6"))
74+ then true
75+ else (toKey == "country16")
76+ else false)
77+ then true
78+ else if ((fromKey == "country8"))
79+ then if (if ((toKey == "country1"))
80+ then true
81+ else (toKey == "country9"))
82+ then true
83+ else (toKey == "country12")
84+ else false)
85+ then true
86+ else if ((fromKey == "country9"))
87+ then if (if (if (if ((toKey == "country1"))
88+ then true
89+ else (toKey == "country2"))
90+ then true
91+ else (toKey == "country8"))
92+ then true
93+ else (toKey == "country10"))
94+ then true
95+ else (toKey == "country12")
96+ else false)
97+ then true
98+ else if ((fromKey == "country10"))
99+ then if (if (if (if (if ((toKey == "country2"))
100+ then true
101+ else (toKey == "country3"))
102+ then true
103+ else (toKey == "country9"))
104+ then true
105+ else (toKey == "country11"))
106+ then true
107+ else (toKey == "country12"))
108+ then true
109+ else (toKey == "country13")
110+ else false)
111+ then true
112+ else if ((fromKey == "country11"))
113+ then if ((toKey == "country10"))
114+ then true
115+ else (toKey == "country12")
116+ else false)
117+ then true
118+ else if ((fromKey == "country12"))
119+ then (toKey == "country11")
120+ else false
121+ let turnFromKey = ("turn_" + fromKey)
122+ let turnFromValue = extract(getInteger(contract, turnFromKey))
123+ let turnAllowed = if (if (((height - 0) > turnFromValue))
124+ then (turnFromKey == newTurnFromKey)
125+ else false)
126+ then (newTurnFromValue == height)
127+ else false
128+ let oldTurnToKey = ("turn_" + toKey)
129+ let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
130+ let locked = if ((("turn_" + toKey) == turnToKey))
131+ then (turnToValue == height)
132+ else false
133+ let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
134+ then (turnToValue == (height - 1))
135+ else false
136+ let fromUnits = extract(getInteger(contract, fromKey))
137+ let toUnits = extract(getInteger(contract, toKey))
138+ let redAttackers = (fromUnits % 100)
139+ let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
140+ let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
141+ let redDefenders = (toUnits % 100)
142+ let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
143+ let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
144+ let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
145+ let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
146+ let countryDefenders = (((redDefenders + greenDefenders) + blueDefenders) + whiteDefenders)
147+ let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
148+ let unlimitedDefenders = if ((whiteDefenders > 0))
149+ then whiteDefenders
150+ else (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
151+ let attackers = if ((unlimitedAttackers >= 10))
152+ then 9
153+ else (unlimitedAttackers - 1)
154+ let defenders = if ((unlimitedDefenders >= 10))
155+ then 10
156+ else unlimitedDefenders
157+ let king = if (if (if ((redAttackers > 0))
158+ then redSigned
159+ else false)
160+ then true
161+ else if ((greenAttackers > 0))
162+ then greenSigned
163+ else false)
164+ then true
165+ else if ((blueAttackers > 0))
166+ then blueSigned
167+ else false
168+ let multiAttackers = if ((countryAttackers > 0))
169+ then (fromUnits / countryAttackers)
170+ else 0
171+ let multiDefenders = if ((countryDefenders > 0))
172+ then (toUnits / countryDefenders)
173+ else 0
174+ let fight = if (if (king)
175+ then (multiAttackers != multiDefenders)
176+ else false)
177+ then (newFromUnits == multiAttackers)
178+ else false
179+ let winCase = (attackers >= defenders)
180+ let lostCase = (defenders > attackers)
181+ let winToUnits = (newToUnits == (((attackers - defenders) + 1) * multiAttackers))
182+ let lostToUnits = (newToUnits == ((defenders - attackers) * multiDefenders))
183+ let win = if (if (if (fight)
184+ then winCase
185+ else false)
186+ then winToUnits
187+ else false)
188+ then locked
189+ else false
190+ let lost = if (if (if (fight)
191+ then lostCase
192+ else false)
193+ then lostToUnits
194+ else false)
195+ then lockNotChanged
196+ else false
197+ let add = if ((10 >= (attackers + defenders)))
198+ then (attackers + defenders)
199+ else 10
200+ let move = if (if (if (if (king)
201+ then (multiAttackers == multiDefenders)
202+ else false)
203+ then (newFromUnits == multiAttackers)
204+ else false)
205+ then (newToUnits == (add * multiAttackers))
206+ else false)
207+ then locked
208+ else false
209+ if (if (if (if (if (if (win)
210+ then true
211+ else lost)
212+ then true
213+ else move)
214+ then turnAllowed
215+ else false)
216+ then turnCorrect
217+ else false)
218+ then (dataSize == 4)
219+ else false)
220+ then true
221+ else (dataSize == 12)
222+ case ntx: TransferTransaction =>
223+ true
224+ case _ =>
225+ true
226+}

github/deemru/w8io/873ac7e 
41.39 ms