tx · 4x1e9BHs33GTiCpzzbZ9fWULeyjaoX8f47UdARoBfJn8

3MrTMXEvaz63AHA6K7U5hDgTY54gZZe3R4g:  -0.01400000 Waves

2019.03.05 18:17 [522798] smart account 3MrTMXEvaz63AHA6K7U5hDgTY54gZZe3R4g > SELF 0.00000000 Waves

{ "type": 13, "id": "4x1e9BHs33GTiCpzzbZ9fWULeyjaoX8f47UdARoBfJn8", "fee": 1400000, "feeAssetId": null, "timestamp": 1551799078565, "version": 1, "sender": "3MrTMXEvaz63AHA6K7U5hDgTY54gZZe3R4g", "senderPublicKey": "CEx6vd7D5Czxcfshd4vLpSw4LEmGULQw5avVZ7Vfrzgo", "proofs": [ "2nSpxr7aM21mEY5jty5BuVXG9mTtHhAT1MYHXDW1cgtZMTAvwUvFtfvnzvtG8QKAezwe2UC467Y8vDbuntLV1h5c" ], "script": "base64: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", "chainId": 84, "height": 522798, "spentComplexity": 0 } View: original | compacted Prev: DqdYACqjeeW2kjvXb8eeeyzffMVoRi28jP9j2ErCcMmc Next: HpVWr5r51M4AeuXgMYWD8jhoZR7j1pLy9CCQf7SgivBc Diff:
OldNewDifferences
5252 else false)
5353 then dtStartDataDefined
5454 else false)
55- then throw("dtx:start - success")
55+ then true
5656 else throw("dtx:start - fail")
5757 }
5858 else if ((type == "finish"))
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")))
1515 let dtStartDataDefined = if (if (if (isDefined(getInteger(dt.data, (gameId + "_winAmount"))))
1616 then isDefined(getBinary(dt.data, (gameId + "_squadronHash")))
1717 else false)
1818 then isDefined(getBoolean(dt.data, ("used_tx_" + player1TxId)))
1919 else false)
2020 then isDefined(getBoolean(dt.data, ("used_tx_" + player2TxId)))
2121 else false
2222 let player1Tx = transactionById(fromBase58String(player1TxId))
2323 let player2Tx = transactionById(fromBase58String(player2TxId))
2424 let tr1Ok = match player1Tx {
2525 case t: TransferTransaction =>
2626 if (if (if ((t.amount == betAmount))
2727 then !(isDefined(t.assetId))
2828 else false)
2929 then (extract(getString(dt.data, ("game_" + toBase58String(addressFromPublicKey(fromBase58String(player1)).bytes)))) == gameId)
3030 else false)
3131 then (t.recipient == tx.sender)
3232 else false
3333 case _ =>
3434 false
3535 }
3636 let tr2Ok = match player2Tx {
3737 case t: TransferTransaction =>
3838 if (if (if ((t.amount == betAmount))
3939 then !(isDefined(t.assetId))
4040 else false)
4141 then (extract(getString(dt.data, ("game_" + toBase58String(addressFromPublicKey(fromBase58String(player2)).bytes)))) == gameId)
4242 else false)
4343 then (t.recipient == tx.sender)
4444 else false
4545 case _ =>
4646 false
4747 }
4848 if (if (if (if (serverSigned)
4949 then tr1Ok
5050 else false)
5151 then tr2Ok
5252 else false)
5353 then dtStartDataDefined
5454 else false)
55- then throw("dtx:start - success")
55+ then true
5656 else throw("dtx:start - fail")
5757 }
5858 else if ((type == "finish"))
5959 then {
6060 let squadron1 = extract(getBinary(dt.data, (gameId + "_squadron1")))
6161 let squadron2 = extract(getBinary(dt.data, (gameId + "_squadron2")))
6262 let gameSalt = extract(getBinary(dt.data, (gameId + "_salt")))
6363 let correctSquadrons = (sha256(((squadron1 + squadron2) + gameSalt)) == extract(getBinary(tx.sender, (gameId + "_squadronHash"))))
6464 if (correctSquadrons)
6565 then throw("correct squadrons")
6666 else throw("incorrect squadrons")
6767 }
6868 else if ((type == "payout"))
6969 then throw("dtx:payout - success")
7070 else if ((type == "refund"))
7171 then throw("dtx:refund - success")
7272 else throw(("dtx:type_unknown " + type))
7373 case tt: TransferTransaction =>
7474 sigVerify(tt.bodyBytes, tt.proofs[0], tx.senderPublicKey)
7575 case st: SetScriptTransaction =>
7676 sigVerify(st.bodyBytes, st.proofs[0], tx.senderPublicKey)
7777 case _ =>
7878 false
7979 }

github/deemru/w8io/3ef1775 
187.75 ms