tx · 756NqjQedWVwdZnBb8TmwLAkJv3vcuB2KwKRNrDyH6Sg

3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm:  -0.02055872 Waves

2018.10.16 17:15 [1219156] smart account 3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm > SELF 0.00000000 Waves

{ "type": 13, "id": "756NqjQedWVwdZnBb8TmwLAkJv3vcuB2KwKRNrDyH6Sg", "fee": 2055872, "feeAssetId": null, "timestamp": 1539699361414, "version": 1, "sender": "3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm", "senderPublicKey": "4VzJwuhdq5WRuX9psya7oAvh2Xh5hUQCrhoqkRiUuCGd", "proofs": [ "5YEYB1czjipXr5mxZxonmn2YUPYymZHNW7htBWszsGkUERFLjJpVug98sMJHMLjUyD59C8uUgRY1iTGGbTh1GFAv" ], "script": "base64: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", "chainId": 87, "height": 1219156, "spentComplexity": 0 } View: original | compacted Prev: 3kCdHMwdvJibb7UatjmCQJcb65vgw8Rbhk4GXNHwBnzV Next: 6rapk3TGxfgMbPMuZStTgewzxvWEioKDiKTDKZB7NG1g Diff:
OldNewDifferences
2121 let newToUnits = ttx.data[1].value
2222 let newTurnFromValue = ttx.data[2].value
2323 let turnToValue = ttx.data[3].value
24+ let turnCorrect = if (if (if (if (if (if (if (if (if (if (if (if ((fromKey == "country1"))
25+ then (toKey == "country2")
26+ else false)
27+ then true
28+ else if ((fromKey == "country2"))
29+ then if ((toKey == "country1"))
30+ then true
31+ else (toKey == "country3")
32+ else false)
33+ then true
34+ else if ((fromKey == "country3"))
35+ then if (if ((toKey == "country2"))
36+ then true
37+ else (toKey == "country4"))
38+ then true
39+ else (toKey == "country5")
40+ else false)
41+ then true
42+ else if ((fromKey == "country4"))
43+ then if ((toKey == "country3"))
44+ then true
45+ else (toKey == "country8")
46+ else false)
47+ then true
48+ else if ((fromKey == "country5"))
49+ then if ((toKey == "country3"))
50+ then true
51+ else (toKey == "country10")
52+ else false)
53+ then true
54+ else if ((fromKey == "country6"))
55+ then (toKey == "country7")
56+ else false)
57+ then true
58+ else if ((fromKey == "country7"))
59+ then if ((toKey == "country6"))
60+ then true
61+ else (toKey == "country8")
62+ else false)
63+ then true
64+ else if ((fromKey == "country8"))
65+ then if (if ((toKey == "country4"))
66+ then true
67+ else (toKey == "country7"))
68+ then true
69+ else (toKey == "country9")
70+ else false)
71+ then true
72+ else if ((fromKey == "country9"))
73+ then if ((toKey == "country8"))
74+ then true
75+ else (toKey == "country10")
76+ else false)
77+ then true
78+ else if ((fromKey == "country10"))
79+ then if (if ((toKey == "country5"))
80+ then true
81+ else (toKey == "country10"))
82+ then true
83+ else (toKey == "country11")
84+ else false)
85+ then true
86+ else if ((fromKey == "country11"))
87+ then if ((toKey == "country10"))
88+ then true
89+ else (toKey == "country12")
90+ else false)
91+ then true
92+ else if ((fromKey == "country12"))
93+ then (toKey == "country11")
94+ else false
2495 let turnFromKey = ("turn_" + fromKey)
2596 let turnFromValue = extract(getInteger(contract, turnFromKey))
2697 let turnAllowed = if (if (((height - 0) > turnFromValue))
108179 else false)
109180 then locked
110181 else false
111- if (if (if (if (if (win)
182+ if (if (if (if (if (if (win)
112183 then true
113184 else lost)
114185 then true
115186 else move)
116187 then turnAllowed
188+ else false)
189+ then turnCorrect
117190 else false)
118191 then (dataSize == 4)
119192 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
24+ let turnCorrect = if (if (if (if (if (if (if (if (if (if (if (if ((fromKey == "country1"))
25+ then (toKey == "country2")
26+ else false)
27+ then true
28+ else if ((fromKey == "country2"))
29+ then if ((toKey == "country1"))
30+ then true
31+ else (toKey == "country3")
32+ else false)
33+ then true
34+ else if ((fromKey == "country3"))
35+ then if (if ((toKey == "country2"))
36+ then true
37+ else (toKey == "country4"))
38+ then true
39+ else (toKey == "country5")
40+ else false)
41+ then true
42+ else if ((fromKey == "country4"))
43+ then if ((toKey == "country3"))
44+ then true
45+ else (toKey == "country8")
46+ else false)
47+ then true
48+ else if ((fromKey == "country5"))
49+ then if ((toKey == "country3"))
50+ then true
51+ else (toKey == "country10")
52+ else false)
53+ then true
54+ else if ((fromKey == "country6"))
55+ then (toKey == "country7")
56+ else false)
57+ then true
58+ else if ((fromKey == "country7"))
59+ then if ((toKey == "country6"))
60+ then true
61+ else (toKey == "country8")
62+ else false)
63+ then true
64+ else if ((fromKey == "country8"))
65+ then if (if ((toKey == "country4"))
66+ then true
67+ else (toKey == "country7"))
68+ then true
69+ else (toKey == "country9")
70+ else false)
71+ then true
72+ else if ((fromKey == "country9"))
73+ then if ((toKey == "country8"))
74+ then true
75+ else (toKey == "country10")
76+ else false)
77+ then true
78+ else if ((fromKey == "country10"))
79+ then if (if ((toKey == "country5"))
80+ then true
81+ else (toKey == "country10"))
82+ then true
83+ else (toKey == "country11")
84+ else false)
85+ then true
86+ else if ((fromKey == "country11"))
87+ then if ((toKey == "country10"))
88+ then true
89+ else (toKey == "country12")
90+ else false)
91+ then true
92+ else if ((fromKey == "country12"))
93+ then (toKey == "country11")
94+ else false
2495 let turnFromKey = ("turn_" + fromKey)
2596 let turnFromValue = extract(getInteger(contract, turnFromKey))
2697 let turnAllowed = if (if (((height - 0) > turnFromValue))
2798 then (turnFromKey == newTurnFromKey)
2899 else false)
29100 then (newTurnFromValue == height)
30101 else false
31102 let oldTurnToKey = ("turn_" + toKey)
32103 let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
33104 let locked = if ((("turn_" + toKey) == turnToKey))
34105 then (turnToValue == height)
35106 else false
36107 let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
37108 then (turnToValue == (height - 1))
38109 else false
39110 let fromUnits = extract(getInteger(contract, fromKey))
40111 let toUnits = extract(getInteger(contract, toKey))
41112 let redAttackers = (fromUnits % 100)
42113 let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
43114 let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
44115 let redDefenders = (toUnits % 100)
45116 let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
46117 let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
47118 let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
48119 let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
49120 let countryDefenders = (((redDefenders + greenDefenders) + blueDefenders) + whiteDefenders)
50121 let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
51122 let unlimitedDefenders = if ((whiteDefenders > 0))
52123 then whiteDefenders
53124 else (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
54125 let attackers = if ((unlimitedAttackers >= 9))
55126 then 9
56127 else (unlimitedAttackers - 1)
57128 let defenders = if ((unlimitedDefenders >= 10))
58129 then 10
59130 else unlimitedDefenders
60131 let king = if (if (if ((redAttackers > 0))
61132 then redSigned
62133 else false)
63134 then true
64135 else if ((greenAttackers > 0))
65136 then greenSigned
66137 else false)
67138 then true
68139 else if ((blueAttackers > 0))
69140 then blueSigned
70141 else false
71142 let multiAttackers = if ((countryAttackers > 0))
72143 then (fromUnits / countryAttackers)
73144 else 0
74145 let multiDefenders = if ((countryDefenders > 0))
75146 then (toUnits / countryDefenders)
76147 else 0
77148 let fight = if (if (king)
78149 then (multiAttackers != multiDefenders)
79150 else false)
80151 then (newFromUnits == multiAttackers)
81152 else false
82153 let winCase = (attackers >= defenders)
83154 let lostCase = (defenders > attackers)
84155 let winToUnits = (newToUnits == (((attackers - defenders) + 1) * multiAttackers))
85156 let lostToUnits = (newToUnits == ((defenders - attackers) * multiDefenders))
86157 let win = if (if (if (fight)
87158 then winCase
88159 else false)
89160 then winToUnits
90161 else false)
91162 then locked
92163 else false
93164 let lost = if (if (if (fight)
94165 then lostCase
95166 else false)
96167 then lostToUnits
97168 else false)
98169 then lockNotChanged
99170 else false
100171 let move = if (if (if (if (if (king)
101172 then (multiAttackers == multiDefenders)
102173 else false)
103174 then (newFromUnits == multiAttackers)
104175 else false)
105176 then (10 >= (attackers + defenders))
106177 else false)
107178 then (newToUnits == ((attackers + defenders) * multiAttackers))
108179 else false)
109180 then locked
110181 else false
111- if (if (if (if (if (win)
182+ if (if (if (if (if (if (win)
112183 then true
113184 else lost)
114185 then true
115186 else move)
116187 then turnAllowed
188+ else false)
189+ then turnCorrect
117190 else false)
118191 then (dataSize == 4)
119192 else false)
120193 then true
121194 else (dataSize == 12)
122195 case ntx: TransferTransaction =>
123196 true
124197 case _ =>
125198 true
126199 }

github/deemru/w8io/6500d08 
114.37 ms