tx · 6YD5vfr4pQYEhAyFb1iChDbqoravc8jTxXCVRR9QpKSV

3MrTMXEvaz63AHA6K7U5hDgTY54gZZe3R4g:  -0.01400000 Waves

2019.03.05 16:00 [522660] smart account 3MrTMXEvaz63AHA6K7U5hDgTY54gZZe3R4g > SELF 0.00000000 Waves

{ "type": 13, "id": "6YD5vfr4pQYEhAyFb1iChDbqoravc8jTxXCVRR9QpKSV", "fee": 1400000, "feeAssetId": null, "timestamp": 1551790889622, "version": 1, "sender": "3MrTMXEvaz63AHA6K7U5hDgTY54gZZe3R4g", "senderPublicKey": "CEx6vd7D5Czxcfshd4vLpSw4LEmGULQw5avVZ7Vfrzgo", "proofs": [ "P4mzE5fJMNdeMcsSpucEtMh2tNEf4MpFbdeoqx3tH7jRwy2feTbpFfmRCZ2Pb8H9cgaATvMogExbAKFgfVaMUTZ" ], "script": "base64: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", "chainId": 84, "height": 522660, "spentComplexity": 0 } View: original | compacted Prev: 4evZaGC8rnZvz6Gk8cxeu7BHjYmh8cbCLUVuzmgFoACP Next: 6FBEo2WHTk4aRPSW5dqnhxBKzJEVHnNMUX3WiRjpxgS3 Diff:
OldNewDifferences
1212 let player1TxId = extract(getString(dt.data, (gameId + "_tx1")))
1313 let player2 = extract(getString(dt.data, (gameId + "_player2")))
1414 let player2TxId = extract(getString(dt.data, (gameId + "_tx2")))
15+ let dtStartDataDefined = if (if (if (isDefined(getInteger(dt.data, (gameId + "_winAmount"))))
16+ then isDefined(getBinary(dt.data, (gameId + "_squadronHash")))
17+ else false)
18+ then isDefined(getBoolean(dt.data, ("used_tx_" + player1TxId)))
19+ else false)
20+ then isDefined(getBoolean(dt.data, ("used_tx_" + player2TxId)))
21+ else false
1522 let player1Tx = transactionById(fromBase58String(player1TxId))
1623 let player2Tx = transactionById(fromBase58String(player2TxId))
1724 let tr1Ok = match player1Tx {
3441 case _ =>
3542 false
3643 }
37- if (tr1Ok)
38- then throw("tr1 ok")
39- else if (tr2Ok)
40- then throw("tr1 not ok, tr2 ok")
41- else throw("tr1 not ok, tr2 not ok")
44+ if (dtStartDataDefined)
45+ then throw("dt start data defined")
46+ else throw("dt start data undefined")
4247 }
4348 else if ((type == "finish"))
4449 then true
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 1 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 match tx {
44 case dt: DataTransaction =>
55 let type = extract(getString(dt.data, "type"))
66 let gameId = extract(getString(dt.data, "gameId"))
77 let serverSigned = sigVerify(dt.bodyBytes, dt.proofs[0], tx.senderPublicKey)
88 if ((type == "start"))
99 then {
1010 let betAmount = extract(getInteger(dt.data, (gameId + "_amount")))
1111 let player1 = extract(getString(dt.data, (gameId + "_player1")))
1212 let player1TxId = extract(getString(dt.data, (gameId + "_tx1")))
1313 let player2 = extract(getString(dt.data, (gameId + "_player2")))
1414 let player2TxId = extract(getString(dt.data, (gameId + "_tx2")))
15+ let dtStartDataDefined = if (if (if (isDefined(getInteger(dt.data, (gameId + "_winAmount"))))
16+ then isDefined(getBinary(dt.data, (gameId + "_squadronHash")))
17+ else false)
18+ then isDefined(getBoolean(dt.data, ("used_tx_" + player1TxId)))
19+ else false)
20+ then isDefined(getBoolean(dt.data, ("used_tx_" + player2TxId)))
21+ else false
1522 let player1Tx = transactionById(fromBase58String(player1TxId))
1623 let player2Tx = transactionById(fromBase58String(player2TxId))
1724 let tr1Ok = match player1Tx {
1825 case t: TransferTransaction =>
1926 if (if ((t.amount == betAmount))
2027 then !(isDefined(t.assetId))
2128 else false)
2229 then (t.recipient == tx.sender)
2330 else false
2431 case _ =>
2532 false
2633 }
2734 let tr2Ok = match player2Tx {
2835 case t: TransferTransaction =>
2936 if (if ((t.amount == betAmount))
3037 then !(isDefined(t.assetId))
3138 else false)
3239 then (t.recipient == tx.sender)
3340 else false
3441 case _ =>
3542 false
3643 }
37- if (tr1Ok)
38- then throw("tr1 ok")
39- else if (tr2Ok)
40- then throw("tr1 not ok, tr2 ok")
41- else throw("tr1 not ok, tr2 not ok")
44+ if (dtStartDataDefined)
45+ then throw("dt start data defined")
46+ else throw("dt start data undefined")
4247 }
4348 else if ((type == "finish"))
4449 then true
4550 else if ((type == "payout"))
4651 then true
4752 else if ((type == "refund"))
4853 then true
4954 else throw(("dtx:type_unknown " + type))
5055 case tt: TransferTransaction =>
5156 sigVerify(tt.bodyBytes, tt.proofs[0], tx.senderPublicKey)
5257 case st: SetScriptTransaction =>
5358 sigVerify(st.bodyBytes, st.proofs[0], tx.senderPublicKey)
5459 case _ =>
5560 false
5661 }

github/deemru/w8io/873ac7e 
23.84 ms