tx · 6NgWxifiKCKP9MgXHcri8V5WAzqeSVjF8Jw6qwksotxT

3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm:  -0.01400000 Waves

2018.10.15 21:23 [1217957] smart account 3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm > SELF 0.00000000 Waves

{ "type": 13, "id": "6NgWxifiKCKP9MgXHcri8V5WAzqeSVjF8Jw6qwksotxT", "fee": 1400000, "feeAssetId": null, "timestamp": 1539627860394, "version": 1, "sender": "3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm", "senderPublicKey": "4VzJwuhdq5WRuX9psya7oAvh2Xh5hUQCrhoqkRiUuCGd", "proofs": [ "4nMJC9nM3RvjKzvBp2kPs4QqaP72DaAxYdnqy543kYJf4yT44hZQVv8WHyAQ6FMFswZjaMcjUvBdxFEvwa6YXCxC" ], "script": "base64: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", "chainId": 87, "height": 1217957, "spentComplexity": 0 } View: original | compacted Prev: 2yA56gxaSzCBhYCuJnydkMd1KnkM24dtAFXTR15xmoie Next: BKAqFoTdHM4ZnrSqeRSpGCVtx5oj7Rc43aFbt4yf4oDK Diff:
OldNewDifferences
105105 then (turnToValue == height)
106106 else false
107107 let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
108- then (turnToValue == oldTurnToValue)
108+ then (turnToValue == (height - 1))
109109 else false
110110 let fromUnits = extract(getInteger(contract, fromKey))
111111 let toUnits = extract(getInteger(contract, toKey))
163163 else false)
164164 then (newFromUnits == multiAttackers)
165165 else false)
166- then (newToUnits == ((defenders - attackers) * multiDefenders))
166+ then (newToUnits == (((defenders - attackers) - 1) * multiDefenders))
167167 else false)
168168 then lockNotChanged
169169 else false
174174 else false)
175175 then (newFromUnits == multiAttackers)
176176 else false)
177- then (newToUnits == (((defenders + 1) - attackers) * multiDefenders))
177+ then (newToUnits == ((((defenders + 1) - attackers) - 1) * multiDefenders))
178178 else false)
179179 then lockNotChanged
180180 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let redPubKey = base58'FGdfvf5Tqt9oF6erwrySeqWhbnBvFBcAgyzxi5ipkaSs'
44 let greenPubKey = base58'EcNRQ6fnbwxXhsHNxsgBxcoT3NviaNUsKkku6cPq1nKE'
55 let bluePubKey = base58'6RmvmpKVEAkaXkvrCqkDjacuUS6yP5Y1Q9rrFWFWdAsS'
66 let redAddr = Address(base58'3P38uq2GFgQ61mzq6ws3mphmViAyNhVV59w')
77 let greenAddr = Address(base58'3PCAkktVadW14UFo2sfp2GHsYyKbNXYLpeJ')
88 let blueAddr = Address(base58'3P7zzvxkrQdMCky2nrCPggnyWEJjqzoY8Us')
99 let contract = tx.sender
1010 let redSigned = sigVerify(tx.bodyBytes, tx.proofs[0], redPubKey)
1111 let greenSigned = sigVerify(tx.bodyBytes, tx.proofs[0], greenPubKey)
1212 let blueSigned = sigVerify(tx.bodyBytes, tx.proofs[0], bluePubKey)
1313 match tx {
1414 case ttx: DataTransaction =>
1515 let dataSize = size(ttx.data)
1616 let fromKey = ttx.data[0].key
1717 let toKey = ttx.data[1].key
1818 let newTurnFromKey = ttx.data[2].key
1919 let turnToKey = ttx.data[3].key
2020 let newFromUnits = ttx.data[0].value
2121 let newToUnits = ttx.data[1].value
2222 let newTurnFromValue = ttx.data[2].value
2323 let turnToValue = ttx.data[3].value
2424 let turnCorrect = if (if (if (if (if (if (if (if (if (if (if (if ((fromKey == "country1"))
2525 then (toKey == "country2")
2626 else false)
2727 then true
2828 else if ((fromKey == "country2"))
2929 then if ((toKey == "country1"))
3030 then true
3131 else (toKey == "country3")
3232 else false)
3333 then true
3434 else if ((fromKey == "country3"))
3535 then if (if ((toKey == "country2"))
3636 then true
3737 else (toKey == "country4"))
3838 then true
3939 else (toKey == "country5")
4040 else false)
4141 then true
4242 else if ((fromKey == "country4"))
4343 then if ((toKey == "country3"))
4444 then true
4545 else (toKey == "country8")
4646 else false)
4747 then true
4848 else if ((fromKey == "country5"))
4949 then if ((toKey == "country3"))
5050 then true
5151 else (toKey == "country10")
5252 else false)
5353 then true
5454 else if ((fromKey == "country6"))
5555 then (toKey == "country7")
5656 else false)
5757 then true
5858 else if ((fromKey == "country7"))
5959 then if ((toKey == "country6"))
6060 then true
6161 else (toKey == "country8")
6262 else false)
6363 then true
6464 else if ((fromKey == "country8"))
6565 then if (if ((toKey == "country4"))
6666 then true
6767 else (toKey == "country7"))
6868 then true
6969 else (toKey == "country9")
7070 else false)
7171 then true
7272 else if ((fromKey == "country9"))
7373 then if ((toKey == "country8"))
7474 then true
7575 else (toKey == "country10")
7676 else false)
7777 then true
7878 else if ((fromKey == "country10"))
7979 then if (if ((toKey == "country5"))
8080 then true
8181 else (toKey == "country10"))
8282 then true
8383 else (toKey == "country11")
8484 else false)
8585 then true
8686 else if ((fromKey == "country11"))
8787 then if ((toKey == "country10"))
8888 then true
8989 else (toKey == "country12")
9090 else false)
9191 then true
9292 else if ((fromKey == "country12"))
9393 then (toKey == "country11")
9494 else false
9595 let turnFromKey = ("turn_" + fromKey)
9696 let turnFromValue = extract(getInteger(contract, turnFromKey))
9797 let turnAllowed = if (if (((height - 0) > turnFromValue))
9898 then (turnFromKey == newTurnFromKey)
9999 else false)
100100 then (newTurnFromValue == height)
101101 else false
102102 let oldTurnToKey = ("turn_" + toKey)
103103 let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
104104 let locked = if ((("turn_" + toKey) == turnToKey))
105105 then (turnToValue == height)
106106 else false
107107 let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
108- then (turnToValue == oldTurnToValue)
108+ then (turnToValue == (height - 1))
109109 else false
110110 let fromUnits = extract(getInteger(contract, fromKey))
111111 let toUnits = extract(getInteger(contract, toKey))
112112 let redAttackers = (fromUnits % 100)
113113 let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
114114 let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
115115 let redDefenders = (toUnits % 100)
116116 let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
117117 let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
118118 let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
119119 let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
120120 let countryDefenders = (((redDefenders + greenDefenders) + blueDefenders) + whiteDefenders)
121121 let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
122122 let unlimitedDefenders = if ((whiteDefenders > 0))
123123 then whiteDefenders
124124 else (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
125125 let attackers = if ((unlimitedAttackers >= 9))
126126 then 9
127127 else (unlimitedAttackers - 1)
128128 let defenders = if ((unlimitedDefenders >= 10))
129129 then 10
130130 else unlimitedDefenders
131131 let king = if (if (if ((redAttackers > 0))
132132 then redSigned
133133 else false)
134134 then true
135135 else if ((greenAttackers > 0))
136136 then greenSigned
137137 else false)
138138 then true
139139 else if ((blueAttackers > 0))
140140 then blueSigned
141141 else false
142142 let multiAttackers = if ((countryAttackers > 0))
143143 then (fromUnits / countryAttackers)
144144 else 0
145145 let multiDefenders = if ((countryDefenders > 0))
146146 then (toUnits / countryDefenders)
147147 else 0
148148 let win = if (if (if (if (if (king)
149149 then (multiAttackers != multiDefenders)
150150 else false)
151151 then (attackers > defenders)
152152 else false)
153153 then (newFromUnits == multiAttackers)
154154 else false)
155155 then (newToUnits == ((attackers - defenders) * multiAttackers))
156156 else false)
157157 then locked
158158 else false
159159 let lost = if (if (if (if (if (king)
160160 then (multiAttackers != multiDefenders)
161161 else false)
162162 then (defenders > attackers)
163163 else false)
164164 then (newFromUnits == multiAttackers)
165165 else false)
166- then (newToUnits == ((defenders - attackers) * multiDefenders))
166+ then (newToUnits == (((defenders - attackers) - 1) * multiDefenders))
167167 else false)
168168 then lockNotChanged
169169 else false
170170 let draw = if (if (if (if (if (king)
171171 then (multiAttackers != multiDefenders)
172172 else false)
173173 then (attackers == defenders)
174174 else false)
175175 then (newFromUnits == multiAttackers)
176176 else false)
177- then (newToUnits == (((defenders + 1) - attackers) * multiDefenders))
177+ then (newToUnits == ((((defenders + 1) - attackers) - 1) * multiDefenders))
178178 else false)
179179 then lockNotChanged
180180 else false
181181 let move = if (if (if (if (if (king)
182182 then (multiAttackers == multiDefenders)
183183 else false)
184184 then (newFromUnits == multiAttackers)
185185 else false)
186186 then (10 >= (attackers + defenders))
187187 else false)
188188 then (newToUnits == ((attackers + defenders) * multiAttackers))
189189 else false)
190190 then locked
191191 else false
192192 if (if (if (if (if (if (win)
193193 then true
194194 else lost)
195195 then true
196196 else draw)
197197 then true
198198 else move)
199199 then turnAllowed
200200 else false)
201201 then (dataSize == 4)
202202 else false)
203203 then true
204204 else (dataSize == 12)
205205 case ntx: TransferTransaction =>
206206 true
207207 case _ =>
208208 true
209209 }

github/deemru/w8io/3ef1775 
106.01 ms