tx · EXwaGNoRJ5Bo5qTYHAiYFrpvm1i1CDgBCB3SMUr5eE5f

3MpkgFm2X8WpLgvZYF7oRpfuXBzNNB8fdEK:  -0.01000000 Waves

2019.02.19 15:58 [502101] smart account 3MpkgFm2X8WpLgvZYF7oRpfuXBzNNB8fdEK > SELF 0.00000000 Waves

{ "type": 13, "id": "EXwaGNoRJ5Bo5qTYHAiYFrpvm1i1CDgBCB3SMUr5eE5f", "fee": 1000000, "feeAssetId": null, "timestamp": 1550581110413, "version": 1, "sender": "3MpkgFm2X8WpLgvZYF7oRpfuXBzNNB8fdEK", "senderPublicKey": "FpuoitCdY2Zh6k5xMPqb2q6ySmHQsJZKxKzuTs511NBQ", "proofs": [ "4W1rCRpboNWNiAmsHuXCLufpU2pabEsH6ieHpsPYM5K4PThnXCVQ7M1rKAGUnQzHeLmeUeo4TDHPyZrNAV7Yjq7p" ], "script": "base64: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", "chainId": 84, "height": 502101, "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 txFee = 500000
5+let timeout = 1440
6+let lifespan = 1000
7+let err = throw("")
8+let serverChoiceHashBytes = fromBase58String("7Vt4zLJ7xEUWJHH1QoHo3hCRkHYjJq88BJ8ZR8sxqBD6")
9+let server = addressFromString("3N9XDBzxyyKF5pNWTxNXhmkte5fyLMnXViL")
10+let player = addressFromString("3N2bWaAxRjm4FzHyREYCz2a4kKrwH1BHkyE")
11+let totalServerFunds = 60000000
12+let startingHeight = 502101
13+let diceCount = 2
14+let bet = 30000000
15+if ((height >= startingHeight))
16+ then match tx {
17+ case payout: TransferTransaction =>
18+ if (if (if (if ((payout.amount == (wavesBalance(me) - txFee)))
19+ then !(isDefined(payout.assetId))
20+ else false)
21+ then !(isDefined(payout.feeAssetId))
22+ else false)
23+ then (payout.fee == txFee)
24+ else false)
25+ then if (((height - startingHeight) > lifespan))
26+ then (payout.recipient == server)
27+ else {
28+ let paymentId = payout.proofs[0]
29+ match transactionById(paymentId) {
30+ case payment: TransferTransaction =>
31+ if (if (if (if ((payment.amount == bet))
32+ then (payment.recipient == me)
33+ else false)
34+ then (payment.sender == player)
35+ else false)
36+ then !(isDefined(payment.assetId))
37+ else false)
38+ then if (if ((timeout >= (height - startingHeight)))
39+ then (wavesBalance(me) >= totalServerFunds)
40+ else false)
41+ then {
42+ let serverChoiceWithSalt = payout.attachment
43+ let playerChoice = payment.attachment
44+ let s = size(playerChoice)
45+ let serverChoice = take(serverChoiceWithSalt, 1)
46+ let playerWins = if (if (if (if (if (if ((diceCount >= s))
47+ then if ((s >= 1))
48+ then (take(drop(playerChoice, 0), 1) == serverChoice)
49+ else false
50+ else false)
51+ then true
52+ else if ((s >= 2))
53+ then (take(drop(playerChoice, 1), 1) == serverChoice)
54+ else false)
55+ then true
56+ else if ((s >= 3))
57+ then (take(drop(playerChoice, 2), 1) == serverChoice)
58+ else false)
59+ then true
60+ else if ((s >= 4))
61+ then (take(drop(playerChoice, 3), 1) == serverChoice)
62+ else false)
63+ then true
64+ else if ((s >= 5))
65+ then (take(drop(playerChoice, 4), 1) == serverChoice)
66+ else false)
67+ then true
68+ else if ((s >= 6))
69+ then (take(drop(playerChoice, 5), 1) == serverChoice)
70+ else false
71+ if ((payout.recipient == (if (playerWins)
72+ then player
73+ else server)))
74+ then (keccak256(serverChoiceWithSalt) == serverChoiceHashBytes)
75+ else false
76+ }
77+ else (payout.recipient == player)
78+ else false
79+ case _ =>
80+ err
81+ }
82+ }
83+ else false
84+ case _ =>
85+ err
86+ }
87+ else false

github/deemru/w8io/873ac7e 
22.93 ms