tx · 5XjskYdMhnnsV2atunk5S1qkazJGx8bMdYEwXnFvrhgJ

3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk:  -0.01400000 Waves

2018.10.08 17:55 [366683] smart account 3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk > SELF 0.00000000 Waves

{ "type": 13, "id": "5XjskYdMhnnsV2atunk5S1qkazJGx8bMdYEwXnFvrhgJ", "fee": 1400000, "feeAssetId": null, "timestamp": 1539008531025, "version": 1, "sender": "3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk", "senderPublicKey": "5ydncg624xM6LmJKWJ26iZoy7XBdGx9JxcgqKMNhJPaz", "proofs": [ "5Nqhz8WV1AfJenWkZeK2jyjbxtjC2ygoMQP2ByMRPMVKrcKu2hgJJPSBF23wNm5KHsdyviTjJ3nCcEh11BzRH3KG" ], "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgQAAAACZHQFAAAAByRtYXRjaDAEAAAADmdhbWVOb3RTdGFydGVkBAAAAAckbWF0Y2gxCQAEGgAAAAIIBQAAAAJkdAAAAAZzZW5kZXICAAAACWdhbWVTdGF0ZQMJAAABAAAAAgUAAAAHJG1hdGNoMQIAAAADSW50BAAAAAFpBQAAAAckbWF0Y2gxBwYEAAAAEmdhbWVJbml0aWFsaXphdGlvbgMDBQAAAA5nYW1lTm90U3RhcnRlZAkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB2NvbW1hbmQAAAAAAAAAAAAHCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAJZ2FtZVN0YXRlAAAAAAAAAAAABwQAAAATcGxheWVyc1JlZ2lzdHJhdGlvbgMDAwMJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIIBQAAAAJkdAAAAAZzZW5kZXICAAAACWdhbWVTdGF0ZQAAAAAAAAAAAAkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB2NvbW1hbmQAAAAAAAAAAAEHCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAJZ2FtZVN0YXRlAAAAAAAAAAABBwkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQTAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB3BsYXllcjECAAAAAAcJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEEwAAAAIIBQAAAAJkdAAAAARkYXRhAgAAAAdwbGF5ZXIyAgAAAAAHBAAAABNwbGF5ZXIxUmVnaXN0cmF0aW9uAwMJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEEAAAAAIIBQAAAAJkdAAAAARkYXRhAgAAAAdjb21tYW5kAAAAAAAAAAABCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAJZ2FtZVN0YXRlAAAAAAAAAAACBwkAAfQAAAADCAUAAAACZHQAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJkdAAAAAZwcm9vZnMAAAAAAAAAAAAJAAJZAAAAAQkBAAAAB2V4dHJhY3QAAAABCQAEEwAAAAIIBQAAAAJkdAAAAARkYXRhAgAAAAdwbGF5ZXIxBwQAAAATcGxheWVyMlJlZ2lzdHJhdGlvbgMDAwkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAggFAAAAAmR0AAAABnNlbmRlcgIAAAAJZ2FtZVN0YXRlAAAAAAAAAAACCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAHY29tbWFuZAAAAAAAAAAAAwcJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEEAAAAAIIBQAAAAJkdAAAAARkYXRhAgAAAAlnYW1lU3RhdGUAAAAAAAAAAAMHCQAB9AAAAAMIBQAAAAJkdAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAmR0AAAABnByb29mcwAAAAAAAAAAAAkAAlkAAAABCQEAAAAHZXh0cmFjdAAAAAEJAAQTAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB3BsYXllcjIHBAAAAAlnYW1lQmVnaW4DAwkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAggFAAAAAmR0AAAABnNlbmRlcgIAAAAJZ2FtZVN0YXRlAAAAAAAAAAADCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAHY29tbWFuZAAAAAAAAAAABAcJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEEAAAAAIIBQAAAAJkdAAAAARkYXRhAgAAAAlnYW1lU3RhdGUAAAAAAAAAAAQHBAAAAAVtb3ZlMQMDAwMJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIIBQAAAAJkdAAAAAZzZW5kZXICAAAACWdhbWVTdGF0ZQAAAAAAAAAABAkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB2NvbW1hbmQAAAAAAAAAAAUHCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAJZ2FtZVN0YXRlAAAAAAAAAAAFBwkAAGcAAAACAAAAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAmR0AAAABGRhdGECAAAABG1vdmUHCQAB9AAAAAMIBQAAAAJkdAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAmR0AAAABnByb29mcwAAAAAAAAAAAAkAAlkAAAABCQEAAAAHZXh0cmFjdAAAAAEJAAQTAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB3BsYXllcjEHBAAAAAVtb3ZlMgMDAwMJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIIBQAAAAJkdAAAAAZzZW5kZXICAAAACWdhbWVTdGF0ZQAAAAAAAAAABQkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB2NvbW1hbmQAAAAAAAAAAAYHCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAJZ2FtZVN0YXRlAAAAAAAAAAAGBwkAAGcAAAACAAAAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAmR0AAAABGRhdGECAAAABG1vdmUHCQAB9AAAAAMIBQAAAAJkdAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAmR0AAAABnByb29mcwAAAAAAAAAAAAkAAlkAAAABCQEAAAAHZXh0cmFjdAAAAAEJAAQTAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB3BsYXllcjIHBAAAAAdnYW1lRW5kAwMJAAAAAAAAAgkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIIBQAAAAJkdAAAAAZzZW5kZXICAAAACWdhbWVTdGF0ZQAAAAAAAAAABgkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAAmR0AAAABGRhdGECAAAAB2NvbW1hbmQAAAAAAAAAAAcHCQAAAAAAAAIJAQAAAAdleHRyYWN0AAAAAQkABBMAAAACCAUAAAACZHQAAAAEZGF0YQIAAAAJZ2FtZVN0YXRlAgAAAAVlbmRlZAcDAwMDAwMFAAAAEmdhbWVJbml0aWFsaXphdGlvbgYFAAAAE3BsYXllcnNSZWdpc3RyYXRpb24GBQAAABNwbGF5ZXIyUmVnaXN0cmF0aW9uBgUAAAAJZ2FtZUJlZ2luBgUAAAAFbW92ZTEGBQAAAAVtb3ZlMgYFAAAAB2dhbWVFbmQGyDoAdA==", "chainId": 84, "height": 366683, "spentComplexity": 0 } View: original | compacted Prev: 7W5CbXmH6VAFqVV3e6E6SF86du2vbtxwL3SKQZEVvgve Next: EtpX2Yoft5UAut5WR1xNwSSEfrPEn7SqrAaoaPjUjot4 Diff:
OldNewDifferences
2222 else false)
2323 then (extract(getString(dt.data, "player2")) == "")
2424 else false
25- if (gameInitialization)
25+ let player1Registration = if (if ((extract(getInteger(dt.data, "command")) == 1))
26+ then (extract(getInteger(dt.data, "gameState")) == 2)
27+ else false)
28+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
29+ else false
30+ let player2Registration = if (if (if ((extract(getInteger(dt.sender, "gameState")) == 2))
31+ then (extract(getInteger(dt.data, "command")) == 3)
32+ else false)
33+ then (extract(getInteger(dt.data, "gameState")) == 3)
34+ else false)
35+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
36+ else false
37+ let gameBegin = if (if ((extract(getInteger(dt.sender, "gameState")) == 3))
38+ then (extract(getInteger(dt.data, "command")) == 4)
39+ else false)
40+ then (extract(getInteger(dt.data, "gameState")) == 4)
41+ else false
42+ let move1 = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 4))
43+ then (extract(getInteger(dt.data, "command")) == 5)
44+ else false)
45+ then (extract(getInteger(dt.data, "gameState")) == 5)
46+ else false)
47+ then (2 >= extract(getInteger(dt.data, "move")))
48+ else false)
49+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
50+ else false
51+ let move2 = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 5))
52+ then (extract(getInteger(dt.data, "command")) == 6)
53+ else false)
54+ then (extract(getInteger(dt.data, "gameState")) == 6)
55+ else false)
56+ then (2 >= extract(getInteger(dt.data, "move")))
57+ else false)
58+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
59+ else false
60+ let gameEnd = if (if ((extract(getInteger(dt.sender, "gameState")) == 6))
61+ then (extract(getInteger(dt.data, "command")) == 7)
62+ else false)
63+ then (extract(getString(dt.data, "gameState")) == "ended")
64+ else false
65+ if (if (if (if (if (if (gameInitialization)
2666 then true
27- else playersRegistration
67+ else playersRegistration)
68+ then true
69+ else player2Registration)
70+ then true
71+ else gameBegin)
72+ then true
73+ else move1)
74+ then true
75+ else move2)
76+ then true
77+ else gameEnd
2878 case _ =>
2979 true
3080 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 match tx {
44 case dt: DataTransaction =>
55 let gameNotStarted = match getInteger(dt.sender, "gameState") {
66 case i: Int =>
77 false
88 case _ =>
99 true
1010 }
1111 let gameInitialization = if (if (gameNotStarted)
1212 then (extract(getInteger(dt.data, "command")) == 0)
1313 else false)
1414 then (extract(getInteger(dt.data, "gameState")) == 0)
1515 else false
1616 let playersRegistration = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 0))
1717 then (extract(getInteger(dt.data, "command")) == 1)
1818 else false)
1919 then (extract(getInteger(dt.data, "gameState")) == 1)
2020 else false)
2121 then (extract(getString(dt.data, "player1")) == "")
2222 else false)
2323 then (extract(getString(dt.data, "player2")) == "")
2424 else false
25- if (gameInitialization)
25+ let player1Registration = if (if ((extract(getInteger(dt.data, "command")) == 1))
26+ then (extract(getInteger(dt.data, "gameState")) == 2)
27+ else false)
28+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
29+ else false
30+ let player2Registration = if (if (if ((extract(getInteger(dt.sender, "gameState")) == 2))
31+ then (extract(getInteger(dt.data, "command")) == 3)
32+ else false)
33+ then (extract(getInteger(dt.data, "gameState")) == 3)
34+ else false)
35+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
36+ else false
37+ let gameBegin = if (if ((extract(getInteger(dt.sender, "gameState")) == 3))
38+ then (extract(getInteger(dt.data, "command")) == 4)
39+ else false)
40+ then (extract(getInteger(dt.data, "gameState")) == 4)
41+ else false
42+ let move1 = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 4))
43+ then (extract(getInteger(dt.data, "command")) == 5)
44+ else false)
45+ then (extract(getInteger(dt.data, "gameState")) == 5)
46+ else false)
47+ then (2 >= extract(getInteger(dt.data, "move")))
48+ else false)
49+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
50+ else false
51+ let move2 = if (if (if (if ((extract(getInteger(dt.sender, "gameState")) == 5))
52+ then (extract(getInteger(dt.data, "command")) == 6)
53+ else false)
54+ then (extract(getInteger(dt.data, "gameState")) == 6)
55+ else false)
56+ then (2 >= extract(getInteger(dt.data, "move")))
57+ else false)
58+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
59+ else false
60+ let gameEnd = if (if ((extract(getInteger(dt.sender, "gameState")) == 6))
61+ then (extract(getInteger(dt.data, "command")) == 7)
62+ else false)
63+ then (extract(getString(dt.data, "gameState")) == "ended")
64+ else false
65+ if (if (if (if (if (if (gameInitialization)
2666 then true
27- else playersRegistration
67+ else playersRegistration)
68+ then true
69+ else player2Registration)
70+ then true
71+ else gameBegin)
72+ then true
73+ else move1)
74+ then true
75+ else move2)
76+ then true
77+ else gameEnd
2878 case _ =>
2979 true
3080 }

github/deemru/w8io/3ef1775 
66.80 ms