tx · 3kCdHMwdvJibb7UatjmCQJcb65vgw8Rbhk4GXNHwBnzV

3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm:  -0.02055872 Waves

2018.10.16 17:08 [1219149] smart account 3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm > SELF 0.00000000 Waves

{ "type": 13, "id": "3kCdHMwdvJibb7UatjmCQJcb65vgw8Rbhk4GXNHwBnzV", "fee": 2055872, "feeAssetId": null, "timestamp": 1539698940168, "version": 1, "sender": "3PNB6RqH2VrprVZ697BTMuoXDiyi1LqT8Sm", "senderPublicKey": "4VzJwuhdq5WRuX9psya7oAvh2Xh5hUQCrhoqkRiUuCGd", "proofs": [ "3hQ5yme49i1QXRwXu1F4FqeQGcAX9DU5RoYcBrhtbFigUrBEEUMuQKfgwPuSBXySKWKrQkYtCt1ZDNCuS6XSRfSo" ], "script": "base64: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AAIFAAAADHJlZEF0dGFja2VycwUAAAAOZ3JlZW5BdHRhY2tlcnMFAAAADWJsdWVBdHRhY2tlcnMEAAAAEGNvdW50cnlEZWZlbmRlcnMJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAADHJlZERlZmVuZGVycwUAAAAOZ3JlZW5EZWZlbmRlcnMFAAAADWJsdWVEZWZlbmRlcnMFAAAADndoaXRlRGVmZW5kZXJzBAAAABJ1bmxpbWl0ZWRBdHRhY2tlcnMJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAADHJlZEF0dGFja2VycwUAAAAOZ3JlZW5BdHRhY2tlcnMFAAAADWJsdWVBdHRhY2tlcnMJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAA10dXJuRnJvbVZhbHVlBAAAABJ1bmxpbWl0ZWREZWZlbmRlcnMDCQAAZgAAAAIFAAAADndoaXRlRGVmZW5kZXJzAAAAAAAAAAAABQAAAA53aGl0ZURlZmVuZGVycwkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgUAAAAMcmVkRGVmZW5kZXJzBQAAAA5ncmVlbkRlZmVuZGVycwUAAAANYmx1ZURlZmVuZGVycwkAAGUAAAACBQAAAAZoZWlnaHQFAAAADm9sZFR1cm5Ub1ZhbHVlBAAAAAlhdHRhY2tlcnMDCQAAZwAAAAIFAAAAEnVubGltaXRlZEF0dGFja2VycwAAAAAAAAAACQAAAAAAAAAACQkAAGUAAAACBQAAABJ1bmxpbWl0ZWRBdHRhY2tlcnMAAAAAAAAAAAEEAAAACWRlZmVuZGVycwMJAABnAAAAAgUAAAASdW5saW1pdGVkRGVmZW5kZXJzAAAAAAAAAAAKAAAAAAAAAAAKBQAAABJ1bmxpbWl0ZWREZWZlbmRlcnMEAAAABGtpbmcDAwMJAABmAAAAAgUAAAAMcmVkQXR0YWNrZXJzAAAAAAAAAAAABQAAAAlyZWRTaWduZWQHBgMJAABmAAAAAgUAAAAOZ3JlZW5BdHRhY2tlcnMAAAAAAAAAAAAFAAAAC2dyZWVuU2lnbmVkBwYDCQAAZgAAAAIFAAAADWJsdWVBdHRhY2tlcnMAAAAAAAAAAAAFAAAACmJsdWVTaWduZWQHBAAAAA5tdWx0aUF0dGFja2VycwMJAABmAAAAAgUAAAAQY291bnRyeUF0dGFja2VycwAAAAAAAAAAAAkAAGkAAAACBQAAAAlmcm9tVW5pdHMFAAAAEGNvdW50cnlBdHRhY2tlcnMAAAAAAAAAAAAEAAAADm11bHRpRGVmZW5kZXJzAwkAAGYAAAACBQAAABBjb3VudHJ5RGVmZW5kZXJzAAAAAAAAAAAACQAAaQAAAAIFAAAAB3RvVW5pdHMFAAAAEGNvdW50cnlEZWZlbmRlcnMAAAAAAAAAAAAEAAAABWZpZ2h0AwMFAAAABGtpbmcJAQAAAAIhPQAAAAIFAAAADm11bHRpQXR0YWNrZXJzBQAAAA5tdWx0aURlZmVuZGVycwcJAAAAAAAAAgUAAAAMbmV3RnJvbVVuaXRzBQAAAA5tdWx0aUF0dGFja2VycwcEAAAAB3dpbkNhc2UJAABnAAAAAgUAAAAJYXR0YWNrZXJzBQAAAAlkZWZlbmRlcnMEAAAACGxvc3RDYXNlCQAAZgAAAAIFAAAACWRlZmVuZGVycwUAAAAJYXR0YWNrZXJzBAAAAAp3aW5Ub1VuaXRzCQAAAAAAAAIFAAAACm5ld1RvVW5pdHMJAABoAAAAAgkAAGQAAAACCQAAZQAAAAIFAAAACWF0dGFja2VycwUAAAAJZGVmZW5kZXJzAAAAAAAAAAABBQAAAA5tdWx0aUF0dGFja2VycwQAAAALbG9zdFRvVW5pdHMJAAAAAAAAAgUAAAAKbmV3VG9Vbml0cwkAAGgAAAACCQAAZQAAAAIFAAAACWRlZmVuZGVycwUAAAAJYXR0YWNrZXJzBQAAAA5tdWx0aURlZmVuZGVycwQAAAADd2luAwMDBQAAAAVmaWdodAUAAAAHd2luQ2FzZQcFAAAACndpblRvVW5pdHMHBQAAAAZsb2NrZWQHBAAAAARsb3N0AwMDBQAAAAVmaWdodAUAAAAIbG9zdENhc2UHBQAAAAtsb3N0VG9Vbml0cwcFAAAADmxvY2tOb3RDaGFuZ2VkBwQAAAAEbW92ZQMDAwMDBQAAAARraW5nCQAAAAAAAAIFAAAADm11bHRpQXR0YWNrZXJzBQAAAA5tdWx0aURlZmVuZGVycwcJAAAAAAAAAgUAAAAMbmV3RnJvbVVuaXRzBQAAAA5tdWx0aUF0dGFja2VycwcJAABnAAAAAgAAAAAAAAAACgkAAGQAAAACBQAAAAlhdHRhY2tlcnMFAAAACWRlZmVuZGVycwcJAAAAAAAAAgUAAAAKbmV3VG9Vbml0cwkAAGgAAAACCQAAZAAAAAIFAAAACWF0dGFja2VycwUAAAAJZGVmZW5kZXJzBQAAAA5tdWx0aUF0dGFja2VycwcFAAAABmxvY2tlZAcDAwMDAwUAAAADd2luBgUAAAAEbG9zdAYFAAAABG1vdmUFAAAAC3R1cm5BbGxvd2VkBwkAAAAAAAACBQAAAAhkYXRhU2l6ZQAAAAAAAAAABAcGCQAAAAAAAAIFAAAACGRhdGFTaXplAAAAAAAAAAAMAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAANudHgFAAAAByRtYXRjaDAGBp58F2w=", "chainId": 87, "height": 1219149, "spentComplexity": 0 } View: original | compacted Prev: 9KRQGGWik9yN5PwdBeK4BgXCWrMBJm59SmMiCZpSbAYJ Next: 756NqjQedWVwdZnBb8TmwLAkJv3vcuB2KwKRNrDyH6Sg 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
9524 let turnFromKey = ("turn_" + fromKey)
9625 let turnFromValue = extract(getInteger(contract, turnFromKey))
9726 let turnAllowed = if (if (((height - 0) > turnFromValue))
179108 else false)
180109 then locked
181110 else false
182- if (if (if (if (if (if (win)
111+ if (if (if (if (if (win)
183112 then true
184113 else lost)
185114 then true
186115 else move)
187116 then turnAllowed
188- else false)
189- then turnCorrect
190117 else false)
191118 then (dataSize == 4)
192119 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
9524 let turnFromKey = ("turn_" + fromKey)
9625 let turnFromValue = extract(getInteger(contract, turnFromKey))
9726 let turnAllowed = if (if (((height - 0) > turnFromValue))
9827 then (turnFromKey == newTurnFromKey)
9928 else false)
10029 then (newTurnFromValue == height)
10130 else false
10231 let oldTurnToKey = ("turn_" + toKey)
10332 let oldTurnToValue = extract(getInteger(contract, oldTurnToKey))
10433 let locked = if ((("turn_" + toKey) == turnToKey))
10534 then (turnToValue == height)
10635 else false
10736 let lockNotChanged = if ((("turn_" + toKey) == turnToKey))
10837 then (turnToValue == (height - 1))
10938 else false
11039 let fromUnits = extract(getInteger(contract, fromKey))
11140 let toUnits = extract(getInteger(contract, toKey))
11241 let redAttackers = (fromUnits % 100)
11342 let greenAttackers = (((fromUnits - redAttackers) % 10000) / 100)
11443 let blueAttackers = (((fromUnits - (greenAttackers * 100)) - redAttackers) / 10000)
11544 let redDefenders = (toUnits % 100)
11645 let greenDefenders = (((toUnits - redDefenders) % 10000) / 100)
11746 let blueDefenders = ((((toUnits - (greenDefenders * 100)) - redDefenders) % 1000000) / 10000)
11847 let whiteDefenders = ((((toUnits - (blueDefenders * 10000)) - (greenDefenders * 100)) - redDefenders) / 1000000)
11948 let countryAttackers = ((redAttackers + greenAttackers) + blueAttackers)
12049 let countryDefenders = (((redDefenders + greenDefenders) + blueDefenders) + whiteDefenders)
12150 let unlimitedAttackers = (((redAttackers + greenAttackers) + blueAttackers) + (height - turnFromValue))
12251 let unlimitedDefenders = if ((whiteDefenders > 0))
12352 then whiteDefenders
12453 else (((redDefenders + greenDefenders) + blueDefenders) + (height - oldTurnToValue))
12554 let attackers = if ((unlimitedAttackers >= 9))
12655 then 9
12756 else (unlimitedAttackers - 1)
12857 let defenders = if ((unlimitedDefenders >= 10))
12958 then 10
13059 else unlimitedDefenders
13160 let king = if (if (if ((redAttackers > 0))
13261 then redSigned
13362 else false)
13463 then true
13564 else if ((greenAttackers > 0))
13665 then greenSigned
13766 else false)
13867 then true
13968 else if ((blueAttackers > 0))
14069 then blueSigned
14170 else false
14271 let multiAttackers = if ((countryAttackers > 0))
14372 then (fromUnits / countryAttackers)
14473 else 0
14574 let multiDefenders = if ((countryDefenders > 0))
14675 then (toUnits / countryDefenders)
14776 else 0
14877 let fight = if (if (king)
14978 then (multiAttackers != multiDefenders)
15079 else false)
15180 then (newFromUnits == multiAttackers)
15281 else false
15382 let winCase = (attackers >= defenders)
15483 let lostCase = (defenders > attackers)
15584 let winToUnits = (newToUnits == (((attackers - defenders) + 1) * multiAttackers))
15685 let lostToUnits = (newToUnits == ((defenders - attackers) * multiDefenders))
15786 let win = if (if (if (fight)
15887 then winCase
15988 else false)
16089 then winToUnits
16190 else false)
16291 then locked
16392 else false
16493 let lost = if (if (if (fight)
16594 then lostCase
16695 else false)
16796 then lostToUnits
16897 else false)
16998 then lockNotChanged
17099 else false
171100 let move = if (if (if (if (if (king)
172101 then (multiAttackers == multiDefenders)
173102 else false)
174103 then (newFromUnits == multiAttackers)
175104 else false)
176105 then (10 >= (attackers + defenders))
177106 else false)
178107 then (newToUnits == ((attackers + defenders) * multiAttackers))
179108 else false)
180109 then locked
181110 else false
182- if (if (if (if (if (if (win)
111+ if (if (if (if (if (win)
183112 then true
184113 else lost)
185114 then true
186115 else move)
187116 then turnAllowed
188- else false)
189- then turnCorrect
190117 else false)
191118 then (dataSize == 4)
192119 else false)
193120 then true
194121 else (dataSize == 12)
195122 case ntx: TransferTransaction =>
196123 true
197124 case _ =>
198125 true
199126 }

github/deemru/w8io/3ef1775 
95.28 ms