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:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | 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 | |
6 | 79 | case _ => | |
7 | 80 | true | |
8 | 81 | } |
github/deemru/w8io/169f3d6 47.48 ms ◑