tx · 8L6nkxJsMkZ9ZAr1H5PYiGVGZoDQpuEp85k24VmspkYo 3Mqnrf2b1Dkay52dFRpNFoksfTupUFqiNDT: -0.01000000 Waves 2018.11.12 17:15 [372499] smart account 3Mqnrf2b1Dkay52dFRpNFoksfTupUFqiNDT > SELF 0.00000000 Waves
{ "type": 13, "id": "8L6nkxJsMkZ9ZAr1H5PYiGVGZoDQpuEp85k24VmspkYo", "fee": 1000000, "feeAssetId": null, "timestamp": 1542032200863, "version": 1, "sender": "3Mqnrf2b1Dkay52dFRpNFoksfTupUFqiNDT", "senderPublicKey": "4guggZJumrUx7vgbJmm83jZutfiXLLBWGU5ZzdunAGq1", "proofs": [ "62ofWH3eoCZ8zfnb67zRyyhfLF9NcVTS9QZsr44hHeuRMvcYJnGR8eWThBtXvp5Rpkeni8P87us5NNwCQj5GyNT4" ], "script": "base64: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AAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAB2Nob2ljZTEFAAAAB2Nob2ljZTIFAAAAB2Nob2ljZTMFAAAAB2Nob2ljZTQFAAAAB2Nob2ljZTUFAAAAB2Nob2ljZTYEAAAAD3BsYXllckNob2ljZU11bAkAAGgAAAACCQAAaAAAAAIJAABoAAAAAgkAAGgAAAACCQAAaAAAAAIFAAAAB2Nob2ljZTEFAAAAB2Nob2ljZTIFAAAAB2Nob2ljZTMFAAAAB2Nob2ljZTQFAAAAB2Nob2ljZTUFAAAAB2Nob2ljZTYEAAAAGHBsYXllckRpY2VzTnVtYmVyQ29ycmVjdAMJAABmAAAAAgUAAAAPcGxheWVyQ2hvaWNlU3VtAAAAAAAAAAAACQAAAAAAAAIFAAAAD3BsYXllckNob2ljZU11bAAAAAAAAAAAAAcEAAAAEmNhc2lub0RpY2VzSW5SYW5nZQMJAABnAAAAAgUAAAAMY2FzaW5vQ2hvaWNlAAAAAAAAAAABCQAAZwAAAAIAAAAAAAAAAAYFAAAADGNhc2lub0Nob2ljZQcEAAAAB25ld0hhc2gJAAH1AAAAAQkAAZsAAAABCQABLAAAAAIJAAGkAAAAAQUAAAAMY2FzaW5vQ2hvaWNlBQAAAARzYWx0BAAAAA5jYXNpbm9WZXJpZmllZAkAAAAAAAACBQAAAAduZXdIYXNoBQAAABBjYXNpbm9DaG9pY2VIYXNoBAAAABJwbGF5ZXJJbnB1dENvcnJlY3QDAwUAAAAScGxheWVyRGljZXNJblJhbmdlBQAAABhwbGF5ZXJEaWNlc051bWJlckNvcnJlY3QHCQAAAAAAAAIFAAAAA251bQAAAAAAAAAABgcEAAAAEmNhc2lub0lucHV0Q29ycmVjdAMDBQAAABJjYXNpbm9EaWNlc0luUmFuZ2UFAAAADmNhc2lub1ZlcmlmaWVkBwkAAAAAAAACBQAAAANudW0AAAAAAAAAAAIHAwMDBQAAAAxjYXNpbm9TaWduZWQFAAAADWNhc2lub0JldFR1cm4HBQAAABJjYXNpbm9JbnB1dENvcnJlY3QHBgMDBQAAAAxwbGF5ZXJTaWduZWQFAAAADXBsYXllckJldFR1cm4HBQAAABJwbGF5ZXJJbnB1dENvcnJlY3QHAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAN0dHgFAAAAByRtYXRjaDAEAAAACmRpY2VzTWF0Y2gDAwMDAwkAAAAAAAACBQAAAAVkaWNlMQUAAAAKY2FzaW5vRGljZQYJAAAAAAAAAgUAAAAFZGljZTIFAAAACmNhc2lub0RpY2UGCQAAAAAAAAIFAAAABWRpY2UzBQAAAApjYXNpbm9EaWNlBgkAAAAAAAACBQAAAAVkaWNlNAUAAAAKY2FzaW5vRGljZQYJAAAAAAAAAgUAAAAFZGljZTUFAAAACmNhc2lub0RpY2UGCQAAAAAAAAIFAAAABWRpY2U2BQAAAApjYXNpbm9EaWNlBAAAAA93aXRoZHJhd0NvcnJlY3QDCQAAZwAAAAIIBQAAAAN0dHgAAAAGYW1vdW50AAAAAAAAmJaACQAAZwAAAAIAAAAAAAAPQkAIBQAAAAN0dHgAAAADZmVlBwQAAAAJcGxheWVyV2luAwUAAAALY2FzaW5vQmV0T2sFAAAACmRpY2VzTWF0Y2gHBAAAAAljYXNpbm9XaW4DAwUAAAALY2FzaW5vQmV0T2sJAQAAAAEhAAAAAQUAAAAKZGljZXNNYXRjaAcJAAAAAAAAAggFAAAAA3R0eAAAAAlyZWNpcGllbnQFAAAACmNhc2lub0FkZHIHBAAAABNwbGF5ZXJUYWtlT25seVByaXplCQAAZwAAAAIJAABlAAAAAgUAAAAHYmFsYW5jZQgFAAAAA3R0eAAAAAZhbW91bnQJAABlAAAAAgUAAAALZ2FtZUJhbGFuY2UJAABpAAAAAgUAAAALZ2FtZUJhbGFuY2UFAAAACGRpY2VzTnVtBAAAABJwbGF5ZXJDYW5UYWtlUHJpemUDAwUAAAAJcHJpemVUdXJuBQAAAAlwbGF5ZXJXaW4HBQAAABNwbGF5ZXJUYWtlT25seVByaXplBwQAAAANcGxheWVyQ2FuVGFrZQMDBQAAABJwbGF5ZXJDYW5UYWtlUHJpemUGBQAAABdwbGF5ZXJFbWVyZ2VuY3lUYWtlVHVybgkAAAAAAAACCAUAAAADdHR4AAAACXJlY2lwaWVudAUAAAAKcGxheWVyQWRkcgcEAAAAEmNhc2lub0NhblRha2VQcml6ZQMDBQAAAAlwcml6ZVR1cm4FAAAACWNhc2lub1dpbgcJAAAAAAAAAggFAAAAA3R0eAAAAAlyZWNpcGllbnQFAAAACmNhc2lub0FkZHIHBAAAAA1jYXNpbm9DYW5UYWtlAwMFAAAAEmNhc2lub0NhblRha2VQcml6ZQYFAAAAGmNhc2lub0NhbkVtZXJnZW5jeVRha2VUdXJuCQAAAAAAAAIIBQAAAAN0dHgAAAAJcmVjaXBpZW50BQAAAApjYXNpbm9BZGRyBwMDBQAAAA1wbGF5ZXJDYW5UYWtlBgUAAAANY2FzaW5vQ2FuVGFrZQUAAAAPd2l0aGRyYXdDb3JyZWN0Bwac+u1j", "chainId": 84, "height": 372499, "spentComplexity": 0 } View: original | compacted Prev: none Next: Bqg1f81QsFXzoSKRZs7R1g7psLYNnyYqEYTHx3pR4pwA Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
2 | + | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | + | let playerAddr = Address(base58'3MyaPJkHmZy4u57uKcHXgzQxsk9wAP9LTZ5') | |
4 | + | let playerPubKey = base58'EhyhHkMbyNu8PwHoiJVCq2SciN9FmM5KvBeSN2NkTmeL' | |
5 | + | let casinoAddr = Address(base58'3MyaPJkHmZy4u57uKcHXgzQxsk9wAP9LTZ5') | |
6 | + | let casinoPubKey = base58'EhyhHkMbyNu8PwHoiJVCq2SciN9FmM5KvBeSN2NkTmeL' | |
7 | + | let playerSigned = sigVerify(tx.bodyBytes, tx.proofs[0], playerPubKey) | |
8 | + | let casinoSigned = sigVerify(tx.bodyBytes, tx.proofs[0], casinoPubKey) | |
9 | + | let me = tx.sender | |
10 | + | let casinoBet = 50000000 | |
11 | + | let playerBet = 10000000 | |
12 | + | let gameBalance = (casinoBet + playerBet) | |
13 | + | let start = 372499 | |
14 | + | let balance = wavesBalance(me) | |
15 | + | let casinoChoiceHash = base58'GgDo7Z6z89EnYQiNdT1ZvzLxjgKSGZ5MP4RWK236bov4' | |
16 | + | let dice1 = extract(getInteger(me, "dice1")) | |
17 | + | let dice2 = extract(getInteger(me, "dice2")) | |
18 | + | let dice3 = extract(getInteger(me, "dice3")) | |
19 | + | let dice4 = extract(getInteger(me, "dice4")) | |
20 | + | let dice5 = extract(getInteger(me, "dice5")) | |
21 | + | let dice6 = extract(getInteger(me, "dice6")) | |
22 | + | let diceSum = (((((dice1 + dice2) + dice3) + dice4) + dice5) + dice6) | |
23 | + | let casinoDice = extract(getInteger(me, "casinoDice")) | |
24 | + | let isDice1 = if ((dice1 > 0)) | |
25 | + | then 1 | |
26 | + | else 0 | |
27 | + | let isDice2 = if ((dice2 > 0)) | |
28 | + | then 1 | |
29 | + | else 0 | |
30 | + | let isDice3 = if ((dice3 > 0)) | |
31 | + | then 1 | |
32 | + | else 0 | |
33 | + | let isDice4 = if ((dice4 > 0)) | |
34 | + | then 1 | |
35 | + | else 0 | |
36 | + | let isDice5 = if ((dice5 > 0)) | |
37 | + | then 1 | |
38 | + | else 0 | |
39 | + | let isDice6 = if ((dice6 > 0)) | |
40 | + | then 1 | |
41 | + | else 0 | |
42 | + | let dicesNum = (((((isDice1 + isDice2) + isDice3) + isDice4) + isDice5) + isDice6) | |
43 | + | let playerPlacedBet = (diceSum > 0) | |
44 | + | let casinoOpenedBet = (casinoDice > 0) | |
45 | + | let playerDepositOk = (balance >= (casinoBet + playerBet)) | |
46 | + | let playerDepositTurn = if (if (((start + 50) > height)) | |
47 | + | then (balance >= casinoBet) | |
48 | + | else false) | |
49 | + | then !(playerDepositOk) | |
50 | + | else false | |
51 | + | let playerBetOk = (diceSum > 0) | |
52 | + | let playerBetTurn = if (if (((start + 100) > height)) | |
53 | + | then playerDepositOk | |
54 | + | else false) | |
55 | + | then !(playerBetOk) | |
56 | + | else false | |
57 | + | let casinoBetOk = (casinoDice > 0) | |
58 | + | let casinoBetTurn = if (if (((start + 200) > height)) | |
59 | + | then playerBetOk | |
60 | + | else false) | |
61 | + | then !(casinoBetOk) | |
62 | + | else false | |
63 | + | let prizeTurn = casinoBetOk | |
64 | + | let playerEmergencyTakeTurn = if ((height >= (start + 300))) | |
65 | + | then !(casinoBetOk) | |
66 | + | else false | |
67 | + | let casinoCanEmergencyTakeTurn = if ((height >= (start + 100))) | |
68 | + | then if (!(playerDepositOk)) | |
69 | + | then true | |
70 | + | else !(playerBetOk) | |
71 | + | else false | |
72 | + | match tx { | |
73 | + | case dtx: DataTransaction => | |
74 | + | let num = size(dtx.data) | |
75 | + | let choice1 = extract(getInteger(dtx.data, "dice1")) | |
76 | + | let choice2 = extract(getInteger(dtx.data, "dice2")) | |
77 | + | let choice3 = extract(getInteger(dtx.data, "dice3")) | |
78 | + | let choice4 = extract(getInteger(dtx.data, "dice4")) | |
79 | + | let choice5 = extract(getInteger(dtx.data, "dice5")) | |
80 | + | let choice6 = extract(getInteger(dtx.data, "dice6")) | |
81 | + | let casinoChoice = extract(getInteger(dtx.data, "casinoDice")) | |
82 | + | let salt = extract(getString(dtx.data, "salt")) | |
83 | + | let playerDicesInRange = if (if (if (if (if (if ((choice1 >= 0)) | |
84 | + | then (6 >= choice1) | |
85 | + | else false) | |
86 | + | then if ((choice2 >= 0)) | |
87 | + | then (6 >= choice2) | |
88 | + | else false | |
89 | + | else false) | |
90 | + | then if ((choice3 >= 0)) | |
91 | + | then (6 >= choice3) | |
92 | + | else false | |
93 | + | else false) | |
94 | + | then if ((choice4 >= 0)) | |
95 | + | then (6 >= choice4) | |
96 | + | else false | |
97 | + | else false) | |
98 | + | then if ((choice5 >= 0)) | |
99 | + | then (6 >= choice5) | |
100 | + | else false | |
101 | + | else false) | |
102 | + | then if ((choice6 >= 0)) | |
103 | + | then (6 >= choice6) | |
104 | + | else false | |
105 | + | else false | |
106 | + | let playerChoiceSum = (((((choice1 + choice2) + choice3) + choice4) + choice5) + choice6) | |
107 | + | let playerChoiceMul = (((((choice1 * choice2) * choice3) * choice4) * choice5) * choice6) | |
108 | + | let playerDicesNumberCorrect = if ((playerChoiceSum > 0)) | |
109 | + | then (playerChoiceMul == 0) | |
110 | + | else false | |
111 | + | let casinoDicesInRange = if ((casinoChoice >= 1)) | |
112 | + | then (6 >= casinoChoice) | |
113 | + | else false | |
114 | + | let newHash = keccak256(toBytes((toString(casinoChoice) + salt))) | |
115 | + | let casinoVerified = (newHash == casinoChoiceHash) | |
116 | + | let playerInputCorrect = if (if (playerDicesInRange) | |
117 | + | then playerDicesNumberCorrect | |
118 | + | else false) | |
119 | + | then (num == 6) | |
120 | + | else false | |
121 | + | let casinoInputCorrect = if (if (casinoDicesInRange) | |
122 | + | then casinoVerified | |
123 | + | else false) | |
124 | + | then (num == 2) | |
125 | + | else false | |
126 | + | if (if (if (casinoSigned) | |
127 | + | then casinoBetTurn | |
128 | + | else false) | |
129 | + | then casinoInputCorrect | |
130 | + | else false) | |
131 | + | then true | |
132 | + | else if (if (playerSigned) | |
133 | + | then playerBetTurn | |
134 | + | else false) | |
135 | + | then playerInputCorrect | |
136 | + | else false | |
137 | + | case ttx: TransferTransaction => | |
138 | + | let dicesMatch = if (if (if (if (if ((dice1 == casinoDice)) | |
139 | + | then true | |
140 | + | else (dice2 == casinoDice)) | |
141 | + | then true | |
142 | + | else (dice3 == casinoDice)) | |
143 | + | then true | |
144 | + | else (dice4 == casinoDice)) | |
145 | + | then true | |
146 | + | else (dice5 == casinoDice)) | |
147 | + | then true | |
148 | + | else (dice6 == casinoDice) | |
149 | + | let withdrawCorrect = if ((ttx.amount >= 10000000)) | |
150 | + | then (1000000 >= ttx.fee) | |
151 | + | else false | |
152 | + | let playerWin = if (casinoBetOk) | |
153 | + | then dicesMatch | |
154 | + | else false | |
155 | + | let casinoWin = if (if (casinoBetOk) | |
156 | + | then !(dicesMatch) | |
157 | + | else false) | |
158 | + | then (ttx.recipient == casinoAddr) | |
159 | + | else false | |
160 | + | let playerTakeOnlyPrize = ((balance - ttx.amount) >= (gameBalance - (gameBalance / dicesNum))) | |
161 | + | let playerCanTakePrize = if (if (prizeTurn) | |
162 | + | then playerWin | |
163 | + | else false) | |
164 | + | then playerTakeOnlyPrize | |
165 | + | else false | |
166 | + | let playerCanTake = if (if (playerCanTakePrize) | |
167 | + | then true | |
168 | + | else playerEmergencyTakeTurn) | |
169 | + | then (ttx.recipient == playerAddr) | |
170 | + | else false | |
171 | + | let casinoCanTakePrize = if (if (prizeTurn) | |
172 | + | then casinoWin | |
173 | + | else false) | |
174 | + | then (ttx.recipient == casinoAddr) | |
175 | + | else false | |
176 | + | let casinoCanTake = if (if (casinoCanTakePrize) | |
177 | + | then true | |
178 | + | else casinoCanEmergencyTakeTurn) | |
179 | + | then (ttx.recipient == casinoAddr) | |
180 | + | else false | |
181 | + | if (if (playerCanTake) | |
182 | + | then true | |
183 | + | else casinoCanTake) | |
184 | + | then withdrawCorrect | |
185 | + | else false | |
186 | + | case _ => | |
187 | + | true | |
188 | + | } |
github/deemru/w8io/169f3d6 21.50 ms ◑