tx · 9KRQGGWik9yN5PwdBeK4BgXCWrMBJm59SmMiCZpSbAYJ

3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm:  -0.02055872 Waves

2018.10.16 16:33 [1219112] smart account 3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm > SELF 0.00000000 Waves

{ "type": 13, "id": "9KRQGGWik9yN5PwdBeK4BgXCWrMBJm59SmMiCZpSbAYJ", "fee": 2055872, "feeAssetId": null, "timestamp": 1539696792759, "version": 1, "sender": "3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm", "senderPublicKey": "4VzJwuhdq5WRuX9psya7oAvh2Xh5hUQCrhoqkRiUuCGd", "proofs": [ "2U6SJcwzLcxaC45ZPDHaHu9YanHwEX2hMsg4fvhnz1PG3XH3AXPbEXPYPBh1ztUb3bj2C9jiioPW7SGPgZf3zruE" ], "script": "base64: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", "chainId": 87, "height": 1219112, "spentComplexity": 0 } View: original | compacted Prev: 9DxvsDE3HbbZDLQUuyUE8USj6EZUHpvJBbiELhZsscSG Next: 3kCdHMwdvJibb7UatjmCQJcb65vgw8Rbhk4GXNHwBnzV Diff:
OldNewDifferences
179179 else false)
180180 then locked
181181 else false
182- if (if (if (if (if (win)
182+ if (if (if (if (if (if (win)
183183 then true
184184 else lost)
185185 then true
186186 else move)
187187 then turnAllowed
188+ else false)
189+ then turnCorrect
188190 else false)
189191 then (dataSize == 4)
190192 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))
108108 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 fight = if (if (king)
149149 then (multiAttackers != multiDefenders)
150150 else false)
151151 then (newFromUnits == multiAttackers)
152152 else false
153153 let winCase = (attackers >= defenders)
154154 let lostCase = (defenders > attackers)
155155 let winToUnits = (newToUnits == (((attackers - defenders) + 1) * multiAttackers))
156156 let lostToUnits = (newToUnits == ((defenders - attackers) * multiDefenders))
157157 let win = if (if (if (fight)
158158 then winCase
159159 else false)
160160 then winToUnits
161161 else false)
162162 then locked
163163 else false
164164 let lost = if (if (if (fight)
165165 then lostCase
166166 else false)
167167 then lostToUnits
168168 else false)
169169 then lockNotChanged
170170 else false
171171 let move = if (if (if (if (if (king)
172172 then (multiAttackers == multiDefenders)
173173 else false)
174174 then (newFromUnits == multiAttackers)
175175 else false)
176176 then (10 >= (attackers + defenders))
177177 else false)
178178 then (newToUnits == ((attackers + defenders) * multiAttackers))
179179 else false)
180180 then locked
181181 else false
182- if (if (if (if (if (win)
182+ if (if (if (if (if (if (win)
183183 then true
184184 else lost)
185185 then true
186186 else move)
187187 then turnAllowed
188+ else false)
189+ then turnCorrect
188190 else false)
189191 then (dataSize == 4)
190192 else false)
191193 then true
192194 else (dataSize == 12)
193195 case ntx: TransferTransaction =>
194196 true
195197 case _ =>
196198 true
197199 }

github/deemru/w8io/6500d08 
129.83 ms