tx · 95vPKMo8KYwTkYsth9x1hB3eBCebj2msEBiSPQstLQPZ

3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk:  -0.01400000 Waves

2018.10.08 14:09 [366461] smart account 3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk > SELF 0.00000000 Waves

{ "type": 13, "id": "95vPKMo8KYwTkYsth9x1hB3eBCebj2msEBiSPQstLQPZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1538996971693, "version": 1, "sender": "3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk", "senderPublicKey": "5ydncg624xM6LmJKWJ26iZoy7XBdGx9JxcgqKMNhJPaz", "proofs": [ "2z9jds6AfjVgCSAuZERDEbwiXW4BZAi97H9mZuU8QbcPDpFwmgQj7EiTq2a5ijctTjciR6xghTcCMcKvQJ2843c9" ], "script": "base64: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", "chainId": 84, "height": 366461, "spentComplexity": 0 } View: original | compacted Prev: 2iFiknLTSdiWsrZXdy5hE2C4xFhPGLmoWg7swQtaYaPr Next: DsCsyprWTfDCA2qxSRp7Gj1QAGiLqf7sKmdmmiUupiQJ Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 match tx {
4- case t: DataTransaction =>
5- true
4+ case dt: DataTransaction =>
5+ let txsize = size(dt.data)
6+ let gameNotStarted = match getInteger(dt.sender, "gameState") {
7+ case i: Int =>
8+ false
9+ case _ =>
10+ true
11+ }
12+ let gameInitialization = if (if (gameNotStarted)
13+ then (extract(getInteger(dt.data, "command")) == 0)
14+ else false)
15+ then (extract(getInteger(dt.data, "gameState")) == 0)
16+ else false
17+ let playersRegistration = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 0))
18+ then (extract(getInteger(dt.data, "command")) == 1)
19+ else false)
20+ then (extract(getInteger(dt.data, "gameState")) == 1)
21+ else false)
22+ then (extract(getString(dt.data, "player1")) == "")
23+ else false)
24+ then (extract(getString(dt.data, "player2")) == "")
25+ else false
26+ let player1Registration = if (if ((extract(getInteger(dt.data, "command")) == 1))
27+ then (extract(getInteger(dt.data, "gameState")) == 2)
28+ else false)
29+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
30+ else false
31+ let player2Registration = if (if (if ((extract(getInteger(dt.sender, "gameState")) == 2))
32+ then (extract(getInteger(dt.data, "command")) == 3)
33+ else false)
34+ then (extract(getInteger(dt.data, "gameState")) == 3)
35+ else false)
36+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
37+ else false
38+ let gameBegin = if (if ((extract(getInteger(dt.sender, "gameState")) == 3))
39+ then (extract(getInteger(dt.data, "command")) == 4)
40+ else false)
41+ then (extract(getInteger(dt.data, "gameState")) == 4)
42+ else false
43+ let move1 = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 4))
44+ then (extract(getInteger(dt.data, "command")) == 5)
45+ else false)
46+ then (extract(getInteger(dt.data, "gameState")) == 5)
47+ else false)
48+ then (2 >= extract(getInteger(dt.data, "move")))
49+ else false)
50+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
51+ else false
52+ let move2 = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 5))
53+ then (extract(getInteger(dt.data, "command")) == 6)
54+ else false)
55+ then (extract(getInteger(dt.data, "gameState")) == 6)
56+ else false)
57+ then (2 >= extract(getInteger(dt.data, "move")))
58+ else false)
59+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
60+ else false
61+ let gameEnd = if (if ((extract(getInteger(dt.sender, "gameState")) == 6))
62+ then (extract(getInteger(dt.data, "command")) == 7)
63+ else false)
64+ then (extract(getString(dt.data, "gameState")) == "ended")
65+ else false
66+ if (if (if (if (if (if (gameInitialization)
67+ then playersRegistration
68+ else false)
69+ then player2Registration
70+ else false)
71+ then gameBegin
72+ else false)
73+ then move1
74+ else false)
75+ then move2
76+ else false)
77+ then gameEnd
78+ else false
679 case _ =>
780 true
881 }

github/deemru/w8io/026f985 
45.89 ms