tx · 5Hv5XwkwYmRt79KTgtsW19r6zo72R61FP5sjhT2BMXaF

3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk:  -0.01420000 Waves

2018.10.08 18:40 [366735] smart account 3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk > SELF 0.00000000 Waves

{ "type": 13, "id": "5Hv5XwkwYmRt79KTgtsW19r6zo72R61FP5sjhT2BMXaF", "fee": 1420000, "feeAssetId": null, "timestamp": 1539013228268, "version": 1, "sender": "3MwpUQwpSfHV1rFfHqCuuYL7A9K8ursTQWk", "senderPublicKey": "5ydncg624xM6LmJKWJ26iZoy7XBdGx9JxcgqKMNhJPaz", "proofs": [ "5twdUon11YGztunXDz7Xe7AtucrEc2eUFYhfzt4PhpY2a6JKpEzzpXNrGow3XjjfQPAmitVgnPVVZQVCm2E1Kuuz" ], "script": "base64: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", "chainId": 84, "height": 366735, "spentComplexity": 0 } View: original | compacted Prev: FBZ9LCa1AhjgobA3745VTSjFDxyHbtA8JuRye1DsWwCo Next: 81qQKoze3CsNWkaHSMk8tjhBoMjFWccJA3tHGhpVnqTk Diff:
OldNewDifferences
4141 else false)
4242 then (2 >= extract(getInteger(dt.data, "move1")))
4343 else false)
44- then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
44+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.sender, "player1"))))
4545 else false
4646 let move2 = if (if (if (validStep)
4747 then (extract(getInteger(dt.data, "command")) == 6)
4848 else false)
4949 then (2 >= extract(getInteger(dt.data, "move2")))
5050 else false)
51- then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
51+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.sender, "player2"))))
5252 else false
5353 let gameEnd = if (if ((extract(getInteger(dt.sender, "gameState")) == 6))
5454 then (extract(getInteger(dt.data, "command")) == 7)
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 oldGameState = extract(getInteger(dt.sender, "gameState"))
1212 let newGameState = extract(getInteger(dt.data, "gameState"))
1313 let validStep = ((oldGameState + 1) == newGameState)
1414 let gameInitialization = if (if (gameNotStarted)
1515 then (extract(getInteger(dt.data, "command")) == 0)
1616 else false)
1717 then (extract(getInteger(dt.data, "gameState")) == 0)
1818 else false
1919 let playersRegistration = if (if (if (validStep)
2020 then (extract(getInteger(dt.data, "command")) == 1)
2121 else false)
2222 then (extract(getString(dt.data, "player1")) == "")
2323 else false)
2424 then (extract(getString(dt.data, "player2")) == "")
2525 else false
2626 let player1Registration = if (if (validStep)
2727 then (extract(getInteger(dt.data, "command")) == 2)
2828 else false)
2929 then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
3030 else false
3131 let player2Registration = if (if (validStep)
3232 then (extract(getInteger(dt.data, "command")) == 3)
3333 else false)
3434 then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
3535 else false
3636 let gameBegin = if (validStep)
3737 then (extract(getInteger(dt.data, "command")) == 4)
3838 else false
3939 let move1 = if (if (if (validStep)
4040 then (extract(getInteger(dt.data, "command")) == 5)
4141 else false)
4242 then (2 >= extract(getInteger(dt.data, "move1")))
4343 else false)
44- then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player1"))))
44+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.sender, "player1"))))
4545 else false
4646 let move2 = if (if (if (validStep)
4747 then (extract(getInteger(dt.data, "command")) == 6)
4848 else false)
4949 then (2 >= extract(getInteger(dt.data, "move2")))
5050 else false)
51- then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.data, "player2"))))
51+ then sigVerify(dt.bodyBytes, dt.proofs[0], fromBase58String(extract(getString(dt.sender, "player2"))))
5252 else false
5353 let gameEnd = if (if ((extract(getInteger(dt.sender, "gameState")) == 6))
5454 then (extract(getInteger(dt.data, "command")) == 7)
5555 else false)
5656 then (extract(getString(dt.data, "gameState")) == "ended")
5757 else false
5858 if (if (if (if (if (if (if (gameInitialization)
5959 then true
6060 else playersRegistration)
6161 then true
6262 else player1Registration)
6363 then true
6464 else player2Registration)
6565 then true
6666 else gameBegin)
6767 then true
6868 else move1)
6969 then true
7070 else move2)
7171 then true
7272 else gameEnd
7373 case _ =>
7474 true
7575 }

github/deemru/w8io/873ac7e 
19.81 ms