tx · GM1Up9EHbhfQaazDjd9uS9o9MLZsM3eyYPbFBSLhhK16

3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f:  -0.01400000 Waves

2018.10.03 18:07 [359376] smart account 3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f > SELF 0.00000000 Waves

{ "type": 13, "id": "GM1Up9EHbhfQaazDjd9uS9o9MLZsM3eyYPbFBSLhhK16", "fee": 1400000, "feeAssetId": null, "timestamp": 1538579248167, "version": 1, "sender": "3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f", "senderPublicKey": "4BRdUi95rN89kRWamqTcb9Dj9pLpAQbjLt17MPxcgGhG", "proofs": [ "5tKA6iDvTsjjnytSaZErLUaHh8QfnxypvJV2fre9uDaMiFvTNAuZ924EVHiywxGTJsG73wgDvtxE95NmdrxFyTew" ], "script": "base64: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ZWZlbmRlcnMAAAAAAAAAJxAJAABoAAAAAgUAAAAOZ3JlZW5EZWZlbmRlcnMAAAAAAAAAAGQFAAAADHJlZERlZmVuZGVycwAAAAAAAA9CQAQAAAAQY291bnRyeUF0dGFja2VycwkAAGQAAAACCQAAZAAAAAIFAAAADHJlZEF0dGFja2VycwUAAAAOZ3JlZW5BdHRhY2tlcnMFAAAADWJsdWVBdHRhY2tlcnMEAAAAEGNvdW50cnlEZWZlbmRlcnMJAABkAAAAAgkAAGQAAAACBQAAAAxyZWREZWZlbmRlcnMFAAAADmdyZWVuRGVmZW5kZXJzBQAAAA1ibHVlRGVmZW5kZXJzBAAAABJ1bmxpbWl0ZWRBdHRhY2tlcnMJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAADHJlZEF0dGFja2VycwUAAAAOZ3JlZW5BdHRhY2tlcnMFAAAADWJsdWVBdHRhY2tlcnMJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAA10dXJuRnJvbVZhbHVlBAAAABJ1bmxpbWl0ZWREZWZlbmRlcnMJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAADHJlZERlZmVuZGVycwUAAAAOZ3JlZW5EZWZlbmRlcnMFAAAADWJsdWVEZWZlbmRlcnMJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAA5vbGRUdXJuVG9WYWx1ZQQAAAAJYXR0YWNrZXJzAwkAAGcAAAACBQAAABJ1bmxpbWl0ZWRBdHRhY2tlcnMAAAAAAAAAAAoAAAAAAAAAAAoFAAAAEnVubGltaXRlZEF0dGFja2VycwQAAAAJZGVmZW5kZXJzAwkAAGcAAAACBQAAABJ1bmxpbWl0ZWREZWZlbmRlcnMAAAAAAAAAAAoAAAAAAAAAAAoFAAAAEnVubGltaXRlZERlZmVuZGVycwQAAAAEa2luZwMDAwkAAGYAAAACBQAAAAxyZWRBdHRhY2tlcnMAAAAAAAAAAAAFAAAACXJlZFNpZ25lZAcGAwkAAGYAAAACBQAAAA5ncmVlbkF0dGFja2VycwAAAAAAAAAAAAUAAAALZ3JlZW5TaWduZWQHBgMJAABmAAAAAgUAAAANYmx1ZUF0dGFja2VycwAAAAAAAAAAAAUAAAAKYmx1ZVNpZ25lZAcEAAAADm11bHRpQXR0YWNrZXJzAwkAAGYAAAACBQAAABBjb3VudHJ5QXR0YWNrZXJzAAAAAAAAAAAACQAAaQAAAAIFAAAACWZyb21Vbml0cwUAAAAQY291bnRyeUF0dGFja2VycwAAAAAAAAAAAAQAAAAObXVsdGlEZWZlbmRlcnMDCQAAZgAAAAIFAAAAEGNvdW50cnlEZWZlbmRlcnMAAAAAAAAAAAAJAABpAAAAAgUAAAAHdG9Vbml0cwUAAAAQY291bnRyeURlZmVuZGVycwAAAAAAAAAAAAQAAAADd2luAwMDAwMFAAAABGtpbmcJAQAAAAIhPQAAAAIFAAAADm11bHRpQXR0YWNrZXJzBQAAAA5tdWx0aURlZmVuZGVycwcJAABmAAAAAgUAAAAJYXR0YWNrZXJzBQAAAAlkZWZlbmRlcnMHCQAAAAAAAAIFAAAADG5ld0Zyb21Vbml0cwAAAAAAAAAAAAcJAAAAAAAAAgUAAAAKbmV3VG9Vbml0cwkAAGgAAAACCQAAZQAAAAIFAAAACWF0dGFja2VycwUAAAAJZGVmZW5kZXJzBQAAAA5tdWx0aUF0dGFja2VycwcFAAAABmxvY2tlZAcEAAAABGxvc3QDAwMDAwUAAAAEa2luZwkBAAAAAiE9AAAAAgUAAAAObXVsdGlBdHRhY2tlcnMFAAAADm11bHRpRGVmZW5kZXJzBwkAAGYAAAACBQAAAAlkZWZlbmRlcnMFAAAACWF0dGFja2VycwcJAAAAAAAAAgUAAAAMbmV3RnJvbVVuaXRzAAAAAAAAAAAABwkAAAAAAAACBQAAAApuZXdUb1VuaXRzCQAAaAAAAAIJAABlAAAAAgUAAAAJZGVmZW5kZXJzBQAAAAlhdHRhY2tlcnMFAAAADm11bHRpRGVmZW5kZXJzBwUAAAAObG9ja05vdENoYW5nZWQHBAAAAARkcmF3AwMDAwMFAAAABGtpbmcJAQAAAAIhPQAAAAIFAAAADm11bHRpQXR0YWNrZXJzBQAAAA5tdWx0aURlZmVuZGVycwcJAAAAAAAAAgUAAAAJYXR0YWNrZXJzBQAAAAlkZWZlbmRlcnMHCQAAAAAAAAIFAAAADG5ld0Zyb21Vbml0cwAAAAAAAAAAAAcJAAAAAAAAAgUAAAAKbmV3VG9Vbml0cwkAAGgAAAACCQAAZQAAAAIJAABkAAAAAgUAAAAJZGVmZW5kZXJzAAAAAAAAAAABBQAAAAlhdHRhY2tlcnMFAAAADm11bHRpRGVmZW5kZXJzBwUAAAAObG9ja05vdENoYW5nZWQHBAAAAARtb3ZlAwMDAwMFAAAABGtpbmcJAAAAAAAAAgUAAAAObXVsdGlBdHRhY2tlcnMFAAAADm11bHRpRGVmZW5kZXJzBwkAAAAAAAACBQAAAAxuZXdGcm9tVW5pdHMAAAAAAAAAAAAHCQAAZwAAAAIAAAAAAAAAAAoJAABkAAAAAgUAAAAJYXR0YWNrZXJzBQAAAAlkZWZlbmRlcnMHCQAAAAAAAAIFAAAACm5ld1RvVW5pdHMJAABoAAAAAgkAAGQAAAACBQAAAAlhdHRhY2tlcnMFAAAACWRlZmVuZGVycwUAAAAObXVsdGlBdHRhY2tlcnMHBQAAAAZsb2NrZWQHAwMDAwMDBQAAAAN3aW4GBQAAAARsb3N0BgUAAAAEZHJhdwYFAAAABG1vdmUFAAAAC3R1cm5BbGxvd2VkBwkAAAAAAAACBQAAAAhkYXRhU2l6ZQAAAAAAAAAAAwcGCQAAAAAAAAIFAAAACGRhdGFTaXplAAAAAAAAAAAMAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAANudHgFAAAAByRtYXRjaDAGBq/OA2k=", "chainId": 84, "height": 359376, "spentComplexity": 0 } View: original | compacted Prev: 77YZgQ5fddGDiqeUnqX28Z7zZDTEbCfP9n9CPyvLpM84 Next: CXFAudcm6MerqJsy1sWHC6mYfDRZ9UAPnrowfcKcQD5r Diff:
OldNewDifferences
110110 let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
111111 let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
112112 let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
113+ let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
114+ let countryDefenders = ((redDefenders + greenDefenders) + blueDefenders)
113115 let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
114116 let unlimitedDefenders = (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
115117 let attackers = if ((unlimitedAttackers >= 10))
129131 else if ((blueAttackers > 0))
130132 then blueSigned
131133 else false
132- let multiAttackers = if ((attackers > 0))
133- then (fromUnits / attackers)
134+ let multiAttackers = if ((countryAttackers > 0))
135+ then (fromUnits / countryAttackers)
134136 else 0
135- let multiDefenders = if ((defenders > 0))
136- then (toUnits / defenders)
137+ let multiDefenders = if ((countryDefenders > 0))
138+ then (toUnits / countryDefenders)
137139 else 0
138140 let win = if (if (if (if (if (king)
139141 then (multiAttackers != multiDefenders)
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 turnToKey = ttx.data[2].key
1919 let newFromUnits = ttx.data[0].value
2020 let newToUnits = ttx.data[1].value
2121 let turnToValue = ttx.data[2].value
2222 let turnCorrect = if (if (if (if (if (if (if (if (if (if (if (if ((fromKey == "country1"))
2323 then (toKey == "country2")
2424 else false)
2525 then true
2626 else if ((fromKey == "country2"))
2727 then if ((toKey == "country1"))
2828 then true
2929 else (toKey == "country3")
3030 else false)
3131 then true
3232 else if ((fromKey == "country3"))
3333 then if (if ((toKey == "country2"))
3434 then true
3535 else (toKey == "country4"))
3636 then true
3737 else (toKey == "country5")
3838 else false)
3939 then true
4040 else if ((fromKey == "country4"))
4141 then if ((toKey == "country3"))
4242 then true
4343 else (toKey == "country8")
4444 else false)
4545 then true
4646 else if ((fromKey == "country5"))
4747 then if ((toKey == "country3"))
4848 then true
4949 else (toKey == "country10")
5050 else false)
5151 then true
5252 else if ((fromKey == "country6"))
5353 then (toKey == "country7")
5454 else false)
5555 then true
5656 else if ((fromKey == "country7"))
5757 then if ((toKey == "country6"))
5858 then true
5959 else (toKey == "country8")
6060 else false)
6161 then true
6262 else if ((fromKey == "country8"))
6363 then if (if ((toKey == "country4"))
6464 then true
6565 else (toKey == "country7"))
6666 then true
6767 else (toKey == "country9")
6868 else false)
6969 then true
7070 else if ((fromKey == "country9"))
7171 then if ((toKey == "country8"))
7272 then true
7373 else (toKey == "country10")
7474 else false)
7575 then true
7676 else if ((fromKey == "country10"))
7777 then if (if ((toKey == "country5"))
7878 then true
7979 else (toKey == "country10"))
8080 then true
8181 else (toKey == "country11")
8282 else false)
8383 then true
8484 else if ((fromKey == "country11"))
8585 then if ((toKey == "country10"))
8686 then true
8787 else (toKey == "country12")
8888 else false)
8989 then true
9090 else if ((fromKey == "country12"))
9191 then (toKey == "country11")
9292 else false
9393 let turnFromKey = ("turn_" + fromKey)
9494 let turnFromValue = extract(getInteger(contract, turnFromKey))
9595 let turnAllowed = ((height - 5) > turnFromValue)
9696 let oldTurnToKey = ("turn_" + toKey)
9797 let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
9898 let locked = if ((("turn_" + toKey) == turnToKey))
9999 then (turnToValue == height)
100100 else false
101101 let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
102102 then (turnToValue == oldTurnToValue)
103103 else false
104104 let fromUnits = extract(getInteger(contract, fromKey))
105105 let toUnits = extract(getInteger(contract, toKey))
106106 let redAttackers = (fromUnits % 100)
107107 let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
108108 let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
109109 let redDefenders = (toUnits % 100)
110110 let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
111111 let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
112112 let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
113+ let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
114+ let countryDefenders = ((redDefenders + greenDefenders) + blueDefenders)
113115 let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
114116 let unlimitedDefenders = (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
115117 let attackers = if ((unlimitedAttackers >= 10))
116118 then 10
117119 else unlimitedAttackers
118120 let defenders = if ((unlimitedDefenders >= 10))
119121 then 10
120122 else unlimitedDefenders
121123 let king = if (if (if ((redAttackers > 0))
122124 then redSigned
123125 else false)
124126 then true
125127 else if ((greenAttackers > 0))
126128 then greenSigned
127129 else false)
128130 then true
129131 else if ((blueAttackers > 0))
130132 then blueSigned
131133 else false
132- let multiAttackers = if ((attackers > 0))
133- then (fromUnits / attackers)
134+ let multiAttackers = if ((countryAttackers > 0))
135+ then (fromUnits / countryAttackers)
134136 else 0
135- let multiDefenders = if ((defenders > 0))
136- then (toUnits / defenders)
137+ let multiDefenders = if ((countryDefenders > 0))
138+ then (toUnits / countryDefenders)
137139 else 0
138140 let win = if (if (if (if (if (king)
139141 then (multiAttackers != multiDefenders)
140142 else false)
141143 then (attackers > defenders)
142144 else false)
143145 then (newFromUnits == 0)
144146 else false)
145147 then (newToUnits == ((attackers - defenders) * multiAttackers))
146148 else false)
147149 then locked
148150 else false
149151 let lost = if (if (if (if (if (king)
150152 then (multiAttackers != multiDefenders)
151153 else false)
152154 then (defenders > attackers)
153155 else false)
154156 then (newFromUnits == 0)
155157 else false)
156158 then (newToUnits == ((defenders - attackers) * multiDefenders))
157159 else false)
158160 then lockNotChanged
159161 else false
160162 let draw = if (if (if (if (if (king)
161163 then (multiAttackers != multiDefenders)
162164 else false)
163165 then (attackers == defenders)
164166 else false)
165167 then (newFromUnits == 0)
166168 else false)
167169 then (newToUnits == (((defenders + 1) - attackers) * multiDefenders))
168170 else false)
169171 then lockNotChanged
170172 else false
171173 let move = if (if (if (if (if (king)
172174 then (multiAttackers == multiDefenders)
173175 else false)
174176 then (newFromUnits == 0)
175177 else false)
176178 then (10 >= (attackers + defenders))
177179 else false)
178180 then (newToUnits == ((attackers + defenders) * multiAttackers))
179181 else false)
180182 then locked
181183 else false
182184 if (if (if (if (if (if (win)
183185 then true
184186 else lost)
185187 then true
186188 else draw)
187189 then true
188190 else move)
189191 then turnAllowed
190192 else false)
191193 then (dataSize == 3)
192194 else false)
193195 then true
194196 else (dataSize == 12)
195197 case ntx: TransferTransaction =>
196198 true
197199 case _ =>
198200 true
199201 }

github/deemru/w8io/169f3d6 
57.68 ms