2019.02.07 20:26 [1386195] smart account 3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm > SELF 0.00000000 Waves

{ "type": 13, "id": "7U1rSuum7reG4KNHMaEJVGMedJPheWYYAPpY43Z878au", "fee": 1400000, "feeAssetId": null, "timestamp": 1549560415454, "version": 1, "sender": "3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm", "senderPublicKey": "4VzJwuhdq5WRuX9psya7oAvh2Xh5hUQCrhoqkRiUuCGd", "proofs": [ "qrTV6UpLCjzDF3jdpmZmM3cVERHNNHzGZsvui5EQa5fiwqkkKDiXEYGN2XUVjEVdNrpmpu8ZuacnEX6C2Z8o7wR" ], "script": "base64:AQQAAAAFcEtleTABAAAAIPhb/tDd2tHzdgvhR1AoXDdRN0RUPeS1GMQjuwsil8l0CQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAFcEtleTAAPqWH", "chainId": 87, "height": 1386195, "spentComplexity": 0 } View: original | compacted Prev: iHSX6MF9pQqGbu8Di3eGDT9B1Qq1JS8TWEitKnVukMc Next: DXRaMA9TkGiYe8MMD3VgfVWmRDrgxjurgnCksweaXUwG Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# 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 (toKey == "country2")
26- else false)
27- then true
28- else if ((fromKey == "country2"))
29- then if ((toKey == "country1"))
30- then true
31- else (toKey == "country3")
32- else false)
33- then true
34- else if ((fromKey == "country3"))
35- then if (if ((toKey == "country2"))
36- then true
37- else (toKey == "country4"))
38- then true
39- else (toKey == "country5")
40- else false)
41- then true
42- else if ((fromKey == "country4"))
43- then if ((toKey == "country3"))
44- then true
45- else (toKey == "country8")
46- else false)
47- then true
48- else if ((fromKey == "country5"))
49- then if ((toKey == "country3"))
50- then true
51- else (toKey == "country10")
52- else false)
53- then true
54- else if ((fromKey == "country6"))
55- then (toKey == "country7")
56- else false)
57- then true
58- else if ((fromKey == "country7"))
59- then if ((toKey == "country6"))
60- then true
61- else (toKey == "country8")
62- else false)
63- then true
64- else if ((fromKey == "country8"))
65- then if (if ((toKey == "country4"))
66- then true
67- else (toKey == "country7"))
68- then true
69- else (toKey == "country9")
70- else false)
71- then true
72- else if ((fromKey == "country9"))
73- then if ((toKey == "country8"))
74- then true
75- else (toKey == "country10")
76- else false)
77- then true
78- else if ((fromKey == "country10"))
79- then if (if ((toKey == "country5"))
80- then true
81- else (toKey == "country9"))
82- then true
83- else (toKey == "country11")
84- else false)
85- then true
86- else if ((fromKey == "country11"))
87- then if ((toKey == "country10"))
88- then true
89- else (toKey == "country12")
90- else false)
91- then true
92- else if ((fromKey == "country12"))
93- then (toKey == "country11")
94- else false
95- let turnFromKey = ("turn_" + fromKey)
96- let turnFromValue = extract(getInteger(contract, turnFromKey))
97- let turnAllowed = if (if (((height - 0) > turnFromValue))
98- then (turnFromKey == newTurnFromKey)
99- else false)
100- then (newTurnFromValue == height)
101- else false
102- let oldTurnToKey = ("turn_" + toKey)
103- let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
104- let locked = if ((("turn_" + toKey) == turnToKey))
105- then (turnToValue == height)
106- else false
107- let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
108- then (turnToValue == (height - 1))
109- else false
110- let fromUnits = extract(getInteger(contract, fromKey))
111- let toUnits = extract(getInteger(contract, toKey))
112- let redAttackers = (fromUnits % 100)
113- let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
114- let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
115- let redDefenders = (toUnits % 100)
116- let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
117- let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
118- let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
119- let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
120- let countryDefenders = (((redDefenders + greenDefenders) + blueDefenders) + whiteDefenders)
121- let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
122- let unlimitedDefenders = if ((whiteDefenders > 0))
123- then whiteDefenders
124- else (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
125- let attackers = if ((unlimitedAttackers >= 10))
126- then 9
127- else (unlimitedAttackers - 1)
128- let defenders = if ((unlimitedDefenders >= 10))
129- then 10
130- else unlimitedDefenders
131- let king = if (if (if ((redAttackers > 0))
132- then redSigned
133- else false)
134- then true
135- else if ((greenAttackers > 0))
136- then greenSigned
137- else false)
138- then true
139- else if ((blueAttackers > 0))
140- then blueSigned
141- else false
142- let multiAttackers = if ((countryAttackers > 0))
143- then (fromUnits / countryAttackers)
144- else 0
145- let multiDefenders = if ((countryDefenders > 0))
146- then (toUnits / countryDefenders)
147- else 0
148- let fight = if (if (king)
149- then (multiAttackers != multiDefenders)
150- else false)
151- then (newFromUnits == multiAttackers)
152- else false
153- let winCase = (attackers >= defenders)
154- let lostCase = (defenders > attackers)
155- let winToUnits = (newToUnits == (((attackers - defenders) + 1) * multiAttackers))
156- let lostToUnits = (newToUnits == ((defenders - attackers) * multiDefenders))
157- let win = if (if (if (fight)
158- then winCase
159- else false)
160- then winToUnits
161- else false)
162- then locked
163- else false
164- let lost = if (if (if (fight)
165- then lostCase
166- else false)
167- then lostToUnits
168- else false)
169- then lockNotChanged
170- else false
171- let add = if ((10 >= (attackers + defenders)))
172- then (attackers + defenders)
173- else 10
174- let move = if (if (if (if (king)
175- then (multiAttackers == multiDefenders)
176- else false)
177- then (newFromUnits == multiAttackers)
178- else false)
179- then (newToUnits == (add * multiAttackers))
180- else false)
181- then locked
182- else false
183- if (if (if (if (if (if (win)
184- then true
185- else lost)
186- then true
187- else move)
188- then turnAllowed
189- else false)
190- then turnCorrect
191- else false)
192- then (dataSize == 4)
193- else false)
194- then true
195- else (dataSize == 12)
196- case ntx: TransferTransaction =>
197- true
198- case _ =>
199- true
200-}
3+let pKey0 = base58'HiVUGpeJgwXhMuFBLeQ8qzZ2QRVK7R9pGeDhs2qPTPHD'
4+sigVerify(tx.bodyBytes, tx.proofs[0], pKey0)

github/deemru/w8io/786bc32 
223.73 ms