tx · 7hAkUhqRmDiieuCCKnMUgEM3S8aboxyCV6KpFuSGSWGN

3NBkPNE5dP7M2woMjCdiuvbJQ86mQW1jBAG:  -0.01000000 Waves

2018.12.18 19:32 [410518] smart account 3NBkPNE5dP7M2woMjCdiuvbJQ86mQW1jBAG > SELF 0.00000000 Waves

{ "type": 13, "id": "7hAkUhqRmDiieuCCKnMUgEM3S8aboxyCV6KpFuSGSWGN", "fee": 1000000, "feeAssetId": null, "timestamp": 1545150799029, "version": 1, "sender": "3NBkPNE5dP7M2woMjCdiuvbJQ86mQW1jBAG", "senderPublicKey": "AZCX3a5bHr2ik2a3Mxn4mSbKgw5Sq8FvHhJ1aqZ73mJm", "proofs": [ "qEkvaKPMpMTgGQASdrWB6nz36KBrnkXzD2LivtoeHLwsRwMw6wTk2VUzu5VmRL5DBWSPUXvt9KzQc8nFXq9Qs54" ], "script": "base64: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", "chainId": 84, "height": 410518, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 1 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let me = tx.sender
4+let heightKey = "height"
5+let stage1 = "p2MoveHash"
6+let stage2 = "p2Move"
7+let wave = 100000000
8+let player1MoveHash = extract(getBinary(me, "p1MoveHash"))
9+let matchKey = extract(getBinary(me, "matchKey"))
10+match tx {
11+ case dataTx: DataTransaction =>
12+ let dataTxFeeIsOk = (dataTx.fee == ((50000 * size(dataTx.data)) + 400000))
13+ let dataTxDataIsOk = if (isDefined(getBinary(dataTx.data, stage1)))
14+ then {
15+ let oldHeight = if (isDefined(getInteger(me, heightKey)))
16+ then extract(getInteger(me, heightKey))
17+ else 9223372036854775807
18+ if (if (if (if (!(isDefined(getBinary(me, stage1))))
19+ then true
20+ else (-3 > (oldHeight - height)))
21+ then (size(dataTx.data) == 3)
22+ else false)
23+ then sigVerify(dataTx.bodyBytes, dataTx.proofs[0], extract(getBinary(dataTx.data, "player2Key")))
24+ else false)
25+ then if (if ((height == getInteger(dataTx.data, heightKey)))
26+ then true
27+ else ((height - 1) == getInteger(dataTx.data, heightKey)))
28+ then true
29+ else ((height + 1) == getInteger(dataTx.data, heightKey))
30+ else false
31+ }
32+ else if (isDefined(getBinary(dataTx.data, stage2)))
33+ then if (if (if (if (!(isDefined(getBinary(me, stage2))))
34+ then (size(dataTx.data) == 2)
35+ else false)
36+ then (size(extract(getBinary(dataTx.data, stage2))) == 32)
37+ else false)
38+ then (sha256(extract(getBinary(dataTx.data, stage2))) == extract(getBinary(me, stage1)))
39+ else false)
40+ then match transactionById(extract(getBinary(dataTx.data, "payment"))) {
41+ case p2payment: TransferTransaction =>
42+ if (if (if ((p2payment.amount == (1 * wave)))
43+ then (p2payment.recipient == me)
44+ else false)
45+ then (p2payment.senderPublicKey == extract(getBinary(me, "player2Key")))
46+ else false)
47+ then sigVerify(p2payment.bodyBytes, p2payment.proofs[0], p2payment.senderPublicKey)
48+ else false
49+ case _ =>
50+ false
51+ }
52+ else false
53+ else false
54+ if (dataTxFeeIsOk)
55+ then dataTxDataIsOk
56+ else false
57+ case _ =>
58+ false
59+}

github/deemru/w8io/873ac7e 
32.95 ms