tx · iHSX6MF9pQqGbu8Di3eGDT9B1Qq1JS8TWEitKnVukMc

3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm:  -0.02055872 Waves

2018.10.16 23:06 [1219523] smart account 3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm > SELF 0.00000000 Waves

{ "type": 13, "id": "iHSX6MF9pQqGbu8Di3eGDT9B1Qq1JS8TWEitKnVukMc", "fee": 2055872, "feeAssetId": null, "timestamp": 1539720420966, "version": 1, "sender": "3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm", "senderPublicKey": "4VzJwuhdq5WRuX9psya7oAvh2Xh5hUQCrhoqkRiUuCGd", "proofs": [ "127X2iX4H9SmJExmx8BLbCSpfziDmqGy12PPdWh74wWhjJzb7QfdnUPEbVMkhoZCLLuwWvXkFJa8dTMdrN1ccCzc" ], "script": "base64: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", "chainId": 87, "height": 1219523, "spentComplexity": 0 } View: original | compacted Prev: 7LyjDpRBPxs8upGBu5DBYHKuzUNBvDdVUDk844h4baxT Next: 7U1rSuum7reG4KNHMaEJVGMedJPheWYYAPpY43Z878au Diff:
OldNewDifferences
7878 else if ((fromKey == "country10"))
7979 then if (if ((toKey == "country5"))
8080 then true
81- else (toKey == "country10"))
81+ else (toKey == "country9"))
8282 then true
8383 else (toKey == "country11")
8484 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
81- else (toKey == "country10"))
81+ else (toKey == "country9"))
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 >= 10))
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 add = if ((10 >= (attackers + defenders)))
172172 then (attackers + defenders)
173173 else 10
174174 let move = if (if (if (if (king)
175175 then (multiAttackers == multiDefenders)
176176 else false)
177177 then (newFromUnits == multiAttackers)
178178 else false)
179179 then (newToUnits == (add * multiAttackers))
180180 else false)
181181 then locked
182182 else false
183183 if (if (if (if (if (if (win)
184184 then true
185185 else lost)
186186 then true
187187 else move)
188188 then turnAllowed
189189 else false)
190190 then turnCorrect
191191 else false)
192192 then (dataSize == 4)
193193 else false)
194194 then true
195195 else (dataSize == 12)
196196 case ntx: TransferTransaction =>
197197 true
198198 case _ =>
199199 true
200200 }

github/deemru/w8io/6500d08 
100.88 ms