tx · J3SKyYF6i668SV9Y7bwfD15J62koiVS2sRycio1FHgaX

3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f:  -0.01400000 Waves

2018.09.29 20:28 [353601] smart account 3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f > SELF 0.00000000 Waves

{ "type": 13, "id": "J3SKyYF6i668SV9Y7bwfD15J62koiVS2sRycio1FHgaX", "fee": 1400000, "feeAssetId": null, "timestamp": 1538242172045, "version": 1, "sender": "3N9UZtJRvvoNgHCjQsWvDUtxiym7KFc7r6f", "senderPublicKey": "4BRdUi95rN89kRWamqTcb9Dj9pLpAQbjLt17MPxcgGhG", "proofs": [ "3ALJrpP7AE7GkqaKkeYTiGUq3dnDXHG3qNZm7jYw7xEyNmCBddEYZRKApNymk3qJPPDb13z3TyTRKC7PSYh5W6pg" ], "script": "base64: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", "chainId": 84, "height": 353601, "spentComplexity": 0 } View: original | compacted Prev: 4ZuZ1dmL2RHnh8YDxcCmMkhop3CSHc6nzXDDuQtvRzXi Next: DTQELh3usLhLdmzyoKJ1kbBu855GG6yXy6CY21ubGE76 Diff:
OldNewDifferences
9292 else false
9393 let turnFromKey = ("turn_" + fromKey)
9494 let turnFromValue = extract(getInteger(contract, turnFromKey))
95- let turnAllowed = (turnFromValue == 0)
95+ let turnAllowed = ((height - 2) > turnFromValue)
9696 let oldTurnToKey = ("turn_" + toKey)
9797 let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
9898 let locked = if ((("turn_" + toKey) == turnToKey))
99- then (turnToValue == 1)
99+ then (turnToValue == height)
100100 else false
101101 let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
102102 then (turnToValue == oldTurnToValue)
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 attackers = ((redAttackers + greenAttackers) + blueAttackers)
114- let defenders = ((redDefenders + greenDefenders) + blueDefenders)
113+ let attackers = (((redAttackers + greenAttackers) + blueAttackers) + ((height - turnFromValue) / 5))
114+ let defenders = (((redDefenders + greenDefenders) + blueDefenders) + ((height - oldTurnToValue) / 5))
115115 let king = if (if (if ((redAttackers > 0))
116116 then redSigned
117117 else false)
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))
95- let turnAllowed = (turnFromValue == 0)
95+ let turnAllowed = ((height - 2) > turnFromValue)
9696 let oldTurnToKey = ("turn_" + toKey)
9797 let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
9898 let locked = if ((("turn_" + toKey) == turnToKey))
99- then (turnToValue == 1)
99+ 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 attackers = ((redAttackers + greenAttackers) + blueAttackers)
114- let defenders = ((redDefenders + greenDefenders) + blueDefenders)
113+ let attackers = (((redAttackers + greenAttackers) + blueAttackers) + ((height - turnFromValue) / 5))
114+ let defenders = (((redDefenders + greenDefenders) + blueDefenders) + ((height - oldTurnToValue) / 5))
115115 let king = if (if (if ((redAttackers > 0))
116116 then redSigned
117117 else false)
118118 then true
119119 else if ((greenAttackers > 0))
120120 then greenSigned
121121 else false)
122122 then true
123123 else if ((blueAttackers > 0))
124124 then blueSigned
125125 else false
126126 let multiAttackers = if ((attackers > 0))
127127 then (fromUnits / attackers)
128128 else 0
129129 let multiDefenders = if ((defenders > 0))
130130 then (toUnits / defenders)
131131 else 0
132132 let win = if (if (if (if (if (king)
133133 then (multiAttackers != multiDefenders)
134134 else false)
135135 then (attackers > defenders)
136136 else false)
137137 then (newFromUnits == 0)
138138 else false)
139139 then (newToUnits == ((attackers - defenders) * multiAttackers))
140140 else false)
141141 then locked
142142 else false
143143 let lost = if (if (if (if (if (king)
144144 then (multiAttackers != multiDefenders)
145145 else false)
146146 then (defenders > attackers)
147147 else false)
148148 then (newFromUnits == 0)
149149 else false)
150150 then (newToUnits == ((defenders - attackers) * multiDefenders))
151151 else false)
152152 then lockNotChanged
153153 else false
154154 let draw = if (if (if (if (if (king)
155155 then (multiAttackers != multiDefenders)
156156 else false)
157157 then (attackers == defenders)
158158 else false)
159159 then (newFromUnits == 0)
160160 else false)
161161 then (newToUnits == (((defenders + 1) - attackers) * multiDefenders))
162162 else false)
163163 then lockNotChanged
164164 else false
165165 let move = if (if (if (if (if (king)
166166 then (multiAttackers == multiDefenders)
167167 else false)
168168 then (newFromUnits == 0)
169169 else false)
170170 then (10 >= (attackers + defenders))
171171 else false)
172172 then (newToUnits == ((attackers + defenders) * multiAttackers))
173173 else false)
174174 then locked
175175 else false
176176 if (if (if (if (if (if (win)
177177 then true
178178 else lost)
179179 then true
180180 else draw)
181181 then true
182182 else move)
183183 then turnAllowed
184184 else false)
185185 then (dataSize == 3)
186186 else false)
187187 then true
188188 else (dataSize == 12)
189189 case ntx: TransferTransaction =>
190190 true
191191 case _ =>
192192 true
193193 }

github/deemru/w8io/169f3d6 
56.25 ms