tx · 4JgYXnTj52Ak97j1jYyAR6QfwjGqVT1Af96jaEsrx2kw

3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f:  -0.01400000 Waves

2018.10.12 11:24 [372147] smart account 3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f > SELF 0.00000000 Waves

{ "type": 13, "id": "4JgYXnTj52Ak97j1jYyAR6QfwjGqVT1Af96jaEsrx2kw", "fee": 1400000, "feeAssetId": null, "timestamp": 1539332789083, "version": 1, "sender": "3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f", "senderPublicKey": "4BRdUi95rN89kRWamqTcb9Dj9pLpAQbjLt17MPxcgGhG", "proofs": [ "meRfUqctw6dd6azwfEicsUEMrHKfXATxcaibbQSEBy35moZSn6YER6KN9gdJSwEDVZmLuRsixHwnXwNo3CSQHSJ" ], "script": "base64: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", "chainId": 84, "height": 372147, "spentComplexity": 0 } View: original | compacted Prev: 6JBJxK2QCMsCr3kMn3sa6GJbz2gsGduF5G65GsE5ya2Q Next: 8Us9u4b7JhFQisT7Tp9hon4BBVGL8fLqhN9bft7MRGsf Diff:
OldNewDifferences
107107 let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
108108 then (turnToValue == oldTurnToValue)
109109 else false
110- let fromUnits = extract(getInteger(contract, fromKey))
110+ let fromUnits = (extract(getInteger(contract, fromKey)) - 1)
111111 let toUnits = extract(getInteger(contract, toKey))
112112 let redAttackers = (fromUnits % 100)
113113 let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
119119 let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
120120 let countryDefenders = ((redDefenders + greenDefenders) + blueDefenders)
121121 let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
122- let unlimitedDefenders = (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
123- let attackers = if ((unlimitedAttackers >= 10))
124- then 10
122+ let unlimitedDefenders = if ((whiteDefenders > 0))
123+ then whiteDefenders
124+ else (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
125+ let attackers = if ((unlimitedAttackers >= 9))
126+ then 9
125127 else unlimitedAttackers
126- let defenders = if ((unlimitedDefenders >= 10))
127- then 10
128+ let defenders = if ((unlimitedDefenders >= 9))
129+ then 9
128130 else unlimitedDefenders
129131 let king = if (if (if ((redAttackers > 0))
130132 then redSigned
196198 else move)
197199 then turnAllowed
198200 else false)
199- then (dataSize == 3)
201+ then (dataSize == 4)
200202 else false)
201203 then true
202204 else (dataSize == 12)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let redPubKey = base58'BYrrqVpD5uuz7cndnPwuUxuYFUK6Bovu6yfoV8seY6Px'
44 let greenPubKey = base58'HnSkSntD7ihFgZpLNmHgdVnVmCYxJLC96eNbubTXsWju'
55 let bluePubKey = base58'5Ak4HQK3cnkwe6XVUXwpCYeSAARwruKyAmsmegePUPvo'
66 let redAddr = Address(base58'3MyP3hrK8SBvtXtggNWdsry8KuGdrv1sFrV')
77 let greenAddr = Address(base58'3MzzYQCC8Ks86exHaWV2VpaANbNLPRDunNJ')
88 let blueAddr = Address(base58'3MuuWYr3DyjEkncbNU1tUeFbyvcyZng9gz4')
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 - 2) > 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))
108108 then (turnToValue == oldTurnToValue)
109109 else false
110- let fromUnits = extract(getInteger(contract, fromKey))
110+ let fromUnits = (extract(getInteger(contract, fromKey)) - 1)
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)
121121 let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
122- let unlimitedDefenders = (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
123- let attackers = if ((unlimitedAttackers >= 10))
124- then 10
122+ let unlimitedDefenders = if ((whiteDefenders > 0))
123+ then whiteDefenders
124+ else (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
125+ let attackers = if ((unlimitedAttackers >= 9))
126+ then 9
125127 else unlimitedAttackers
126- let defenders = if ((unlimitedDefenders >= 10))
127- then 10
128+ let defenders = if ((unlimitedDefenders >= 9))
129+ then 9
128130 else unlimitedDefenders
129131 let king = if (if (if ((redAttackers > 0))
130132 then redSigned
131133 else false)
132134 then true
133135 else if ((greenAttackers > 0))
134136 then greenSigned
135137 else false)
136138 then true
137139 else if ((blueAttackers > 0))
138140 then blueSigned
139141 else false
140142 let multiAttackers = if ((countryAttackers > 0))
141143 then (fromUnits / countryAttackers)
142144 else 0
143145 let multiDefenders = if ((countryDefenders > 0))
144146 then (toUnits / countryDefenders)
145147 else 0
146148 let win = if (if (if (if (if (king)
147149 then (multiAttackers != multiDefenders)
148150 else false)
149151 then (attackers > defenders)
150152 else false)
151153 then (newFromUnits == multiAttackers)
152154 else false)
153155 then (newToUnits == ((attackers - defenders) * multiAttackers))
154156 else false)
155157 then locked
156158 else false
157159 let lost = if (if (if (if (if (king)
158160 then (multiAttackers != multiDefenders)
159161 else false)
160162 then (defenders > attackers)
161163 else false)
162164 then (newFromUnits == multiAttackers)
163165 else false)
164166 then (newToUnits == ((defenders - attackers) * multiDefenders))
165167 else false)
166168 then lockNotChanged
167169 else false
168170 let draw = if (if (if (if (if (king)
169171 then (multiAttackers != multiDefenders)
170172 else false)
171173 then (attackers == defenders)
172174 else false)
173175 then (newFromUnits == multiAttackers)
174176 else false)
175177 then (newToUnits == (((defenders + 1) - attackers) * multiDefenders))
176178 else false)
177179 then lockNotChanged
178180 else false
179181 let move = if (if (if (if (if (king)
180182 then (multiAttackers == multiDefenders)
181183 else false)
182184 then (newFromUnits == multiAttackers)
183185 else false)
184186 then (10 >= (attackers + defenders))
185187 else false)
186188 then (newToUnits == ((attackers + defenders) * multiAttackers))
187189 else false)
188190 then locked
189191 else false
190192 if (if (if (if (if (if (win)
191193 then true
192194 else lost)
193195 then true
194196 else draw)
195197 then true
196198 else move)
197199 then turnAllowed
198200 else false)
199- then (dataSize == 3)
201+ then (dataSize == 4)
200202 else false)
201203 then true
202204 else (dataSize == 12)
203205 case ntx: TransferTransaction =>
204206 true
205207 case _ =>
206208 true
207209 }

github/deemru/w8io/c3f4982 
32.70 ms