tx · 7EqzFoXi1Ky1UpxkAQZEXsmdnvfAao7ZuMtzqLbMRRev

3N2pEZGecJUSdn9LhyU84NAkv4btsaVPZQU:  -0.01000000 Waves

2019.02.19 18:11 [502214] smart account 3N2pEZGecJUSdn9LhyU84NAkv4btsaVPZQU > SELF 0.00000000 Waves

{ "type": 13, "id": "7EqzFoXi1Ky1UpxkAQZEXsmdnvfAao7ZuMtzqLbMRRev", "fee": 1000000, "feeAssetId": null, "timestamp": 1550589055930, "version": 1, "sender": "3N2pEZGecJUSdn9LhyU84NAkv4btsaVPZQU", "senderPublicKey": "7iXNB4ttg2o1JQdZSQ8SSsXQ2C7iUtva42y4fRvrbTKb", "proofs": [ "3bDCkyHEXscNQBQZTS1gc8WpHKYfuHhozyEqMU5w1VbDzbKtxPvdzYZuGckZDR1oHgPrsSpfEYXuYkQbvKK6VNEz" ], "script": "base64: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", "chainId": 84, "height": 502214, "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("BpS7yjxHDgG1xJPTADqnhe9nwcXMgBCCP1VjfLH3YEXK")
9+let server = addressFromString("3ND2MdTxHZ9UF4VaVja6Xzj8Vt8fMFKc3dx")
10+let player = addressFromString("3N2pLdujZDS3YAaNbwTvNfA4UzcbJtizfaL")
11+let totalServerFunds = 30000000
12+let startingHeight = 502213
13+let diceCount = 1
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 + bet))
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 serverChoiceValid = if (if (if (if (if ((serverChoice == toBytes("1")))
47+ then true
48+ else (serverChoice == toBytes("2")))
49+ then true
50+ else (serverChoice == toBytes("3")))
51+ then true
52+ else (serverChoice == toBytes("4")))
53+ then true
54+ else (serverChoice == toBytes("5")))
55+ then true
56+ else (serverChoice == toBytes("6"))
57+ let playerWins = if (!(serverChoiceValid))
58+ then true
59+ else if (if (if (if (if (if ((diceCount >= s))
60+ then if ((s >= 1))
61+ then (take(drop(playerChoice, 0), 1) == serverChoice)
62+ else false
63+ else false)
64+ then true
65+ else if ((s >= 2))
66+ then (take(drop(playerChoice, 1), 1) == serverChoice)
67+ else false)
68+ then true
69+ else if ((s >= 3))
70+ then (take(drop(playerChoice, 2), 1) == serverChoice)
71+ else false)
72+ then true
73+ else if ((s >= 4))
74+ then (take(drop(playerChoice, 3), 1) == serverChoice)
75+ else false)
76+ then true
77+ else if ((s >= 5))
78+ then (take(drop(playerChoice, 4), 1) == serverChoice)
79+ else false)
80+ then true
81+ else if ((s >= 6))
82+ then (take(drop(playerChoice, 5), 1) == serverChoice)
83+ else false
84+ if ((payout.recipient == (if (playerWins)
85+ then player
86+ else server)))
87+ then (keccak256(serverChoiceWithSalt) == serverChoiceHashBytes)
88+ else false
89+ }
90+ else (payout.recipient == player)
91+ else false
92+ case _ =>
93+ err
94+ }
95+ }
96+ else false
97+ case _ =>
98+ err
99+ }
100+ else false

github/deemru/w8io/3ef1775 
24.97 ms