tx · 6EEe5yfqKozfwxmDG2mVYetzgN7vfaqhKwwTgihHzyx6

3PMN1Gqye16oMjtkdp6EMN1LUo832GThZii:  -0.01500000 Waves

2019.10.22 20:46 [1761838] smart account 3PMN1Gqye16oMjtkdp6EMN1LUo832GThZii > SELF 0.00000000 Waves

{ "type": 13, "id": "6EEe5yfqKozfwxmDG2mVYetzgN7vfaqhKwwTgihHzyx6", "fee": 1500000, "feeAssetId": null, "timestamp": 1571766325599, "version": 1, "sender": "3PMN1Gqye16oMjtkdp6EMN1LUo832GThZii", "senderPublicKey": "6PFGsDiPPX3spqtKvamMDxAG9mcMy3oZQL1cKmQHQ1Kt", "proofs": [ "5QJipoXruB8GWRdmfmPTQmuiAsGpJFWKo7rSAkJU588RqVFCXYonyJFyr4Sv6N7wsnU7F2soDpUtVv2LMGE8eyob" ], "script": "base64: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ZXIDCQAAAAAAAAIFAAAABHR5cGUCAAAABVVuZGVyAwkAAGcAAAACBQAAAApwcmVkaWN0aW9uBQAAAAZudW1iZXIGBwMJAAAAAAAAAgUAAAAEdHlwZQIAAAAET3ZlcgMJAABnAAAAAgUAAAAGbnVtYmVyBQAAAApwcmVkaWN0aW9uBgcHAAAAAQAAAAFpAQAAAAhwbGF5RGljZQAAAAIAAAAEdHlwZQAAAApwcmVkaWN0aW9uBAAAAApuZXdHYW1lTnVtCQEAAAAQSW5jcmVtZW50R2FtZU51bQAAAAAEAAAABmdhbWVJZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAABW11bHRpCQEAAAANZ2V0TXVsdGlwbGllcgAAAAIFAAAABHR5cGUFAAAACnByZWRpY3Rpb24EAAAABndpbkFtdAkAAGgAAAACCQAAaQAAAAIJAABoAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAVtdWx0aQAAAAAAAAGGoAkAAGkAAAACAAAAAAAAAABfAAAAAAAAAABkBAAAAAh0eElkVXNlZAkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAAGZ2FtZUlkAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAEAAAAgOkBptoM8ze1CVUAoYBmqau186uSZP0x2SswaAYBAj68JAAACAAAAAQIAAAAdUGF5bWVudCBzaG91bGQgYmUgaW4gV2F2ZXNiZXQDBQAAAAh0eElkVXNlZAkAAAIAAAABAgAAAC9QYXNzZWQgdHhJZCBoYWQgYmVlbiB1c2VkIGJlZm9yZS4gR2FtZSBhYm9ydGVkLgQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAtnYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAOU1RBVEVTVUJNSVRURUQFAAAACnByZWRpY3Rpb24FAAAADnBsYXllclB1YktleTU4BQAAAAZoZWlnaHQFAAAABndpbkFtdAIAAAAACQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOUkVTRVJWQVRJT05LRVkJAQAAAB5WYWxpZGF0ZUFuZEluY3JlYXNlUmVzZXJ2ZWRBbXQAAAABBQAAAAZ3aW5BbXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD0dBTUVTQ09VTlRFUktFWQUAAAAKbmV3R2FtZU51bQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAAtnYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAANuaWwAAAAANi0GxQ==", "chainId": 87, "height": 1761838, "spentComplexity": 0 } View: original | compacted Prev: 79PgqBEtnu4UBrA1UKRgfXPLqjioyUo9SwdZYz3UzjC1 Next: 7eATGYa4LcpYHJEnoTCrKfj8jCrX3S1CXwPXf8rhemqJ Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let GAMESCOUNTERKEY = "$GAME_NUM"
5+
6+let RESERVATIONKEY = "$RESERVED_AMOUNT"
7+
8+let STATESUBMITTED = "SUBMITTED"
9+
10+func IncrementGameNum () = {
11+ let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
12+ case num: Int =>
13+ num
14+ case _ =>
15+ 0
16+ }
17+ (gameNum + 1)
18+ }
19+
20+
21+func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
22+ case a: Int =>
23+ a
24+ case _ =>
25+ 0
26+}
27+
28+
29+func ValidateAndIncreaseReservedAmt (winAmt) = {
30+ let newReservedAmount = (ExtractReservedAmt() + winAmt)
31+ let balance = wavesBalance(this)
32+ if ((newReservedAmount > balance))
33+ then throw("Insufficient funds on Waves Rider account. Transaction was rejected for your safety.")
34+ else newReservedAmount
35+ }
36+
37+
38+func FormatGameDataParam (p) = {
39+ let s = size(p)
40+ if ((s == 0))
41+ then throw("Parameter size must be greater then 0")
42+ else if ((s > 99))
43+ then throw("Parameter size must be less then 100")
44+ else if ((10 > s))
45+ then (("0" + toString(s)) + p)
46+ else (toString(s) + p)
47+ }
48+
49+
50+func FormatGameDataStr (gameState,playerChoice,playerPubKey58,startedHeight,winAmt,randOrEmpty) = {
51+ let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(playerChoice))) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(startedHeight))) + "_") + FormatGameDataParam(toString(winAmt)))
52+ if ((randOrEmpty == ""))
53+ then fullStateStr
54+ else ((fullStateStr + "_") + FormatGameDataParam(randOrEmpty))
55+ }
56+
57+
458 func getMultiplier (type,prediction) = if ((type == "Under"))
559 then if ((prediction == 1))
660 then 9850000
403457 else false
404458
405459
406-func dicePayout (win,amount,mult) = if (win)
407- then ((amount * mult) / 100000)
408- else 0
409-
410-
411-func startDice (inv,type,prediction,random) = {
412- let playLimit = (wavesBalance(this) / 100)
413- let payment = extract(inv.payment)
460+@Callable(i)
461+func playDice (type,prediction) = {
462+ let newGameNum = IncrementGameNum()
463+ let gameId = toBase58String(i.transactionId)
464+ let payment = extract(i.payment)
465+ let multi = getMultiplier(type, prediction)
466+ let winAmt = (((payment.amount * multi) / 100000) * (95 / 100))
467+ let txIdUsed = isDefined(getString(this, gameId))
414468 if ((payment.assetId != base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'))
415469 then throw("Payment should be in Wavesbet")
416- else {
417- let multi = getMultiplier(type, prediction)
418- let win = diceWin(type, prediction, random)
419- let playvalue = dicePayout(win, payment.amount, multi)
420- let writeDicePlay = WriteSet([DataEntry("random number", random), DataEntry("win", win), DataEntry("payment", payment.amount), DataEntry("payout", ((playvalue * 94) / 100))])
421- if (win)
422- then ScriptResult(writeDicePlay, TransferSet([ScriptTransfer(inv.caller, 0, base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'), ScriptTransfer(Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP68FHYKovCk5'), ((playvalue * 2) / 100), base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4')]))
423- else ScriptResult(writeDicePlay, TransferSet([ScriptTransfer(Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP68FHYKovCk5'), ((payment.amount * 2) / 100), base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4')]))
424- }
470+ else if (txIdUsed)
471+ then throw("Passed txId had been used before. Game aborted.")
472+ else {
473+ let playerPubKey58 = toBase58String(i.callerPublicKey)
474+ let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, playerPubKey58, height, winAmt, "")
475+ ScriptResult(WriteSet([DataEntry(RESERVATIONKEY, ValidateAndIncreaseReservedAmt(winAmt)), DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet(nil))
476+ }
425477 }
426-
427-
428-func coinFlip (number) = if ((51 > number))
429- then "red"
430- else "blue"
431-
432-
433-func startCoinFlip (inv,opponentAddress,opponentMove,rand) = {
434- let payment = extract(inv.payment)
435- if (if ((payment.assetId == assetInfo(base58'WAVES')))
436- then true
437- else (payment.assetId == base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'))
438- then {
439- let rcoin = coinFlip(rand)
440- let payout = (((payment.amount * 2) * 94) / 100)
441- if ((rcoin == opponentMove))
442- then ScriptResult(WriteSet([DataEntry("coin", rcoin), DataEntry("payout", payout), DataEntry("winner", opponentAddress)]), TransferSet(nil))
443- else ScriptResult(WriteSet([DataEntry("coin", rcoin), DataEntry("payout", payout), DataEntry("winner", toString(inv.caller))]), TransferSet(nil))
444- }
445- else throw("Payment should be in Wavesbet or Waves")
446- }
447-
448-
449-@Callable(inv)
450-func playDice (type,prediction,randomNumber) = startDice(inv, type, prediction, randomNumber)
451-
452-
453-
454-@Callable(inv)
455-func playCoinFlip (opponentAddress,opponentMove,randomNumber) = startCoinFlip(inv, opponentAddress, opponentMove, randomNumber)
456478
457479
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let GAMESCOUNTERKEY = "$GAME_NUM"
5+
6+let RESERVATIONKEY = "$RESERVED_AMOUNT"
7+
8+let STATESUBMITTED = "SUBMITTED"
9+
10+func IncrementGameNum () = {
11+ let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
12+ case num: Int =>
13+ num
14+ case _ =>
15+ 0
16+ }
17+ (gameNum + 1)
18+ }
19+
20+
21+func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
22+ case a: Int =>
23+ a
24+ case _ =>
25+ 0
26+}
27+
28+
29+func ValidateAndIncreaseReservedAmt (winAmt) = {
30+ let newReservedAmount = (ExtractReservedAmt() + winAmt)
31+ let balance = wavesBalance(this)
32+ if ((newReservedAmount > balance))
33+ then throw("Insufficient funds on Waves Rider account. Transaction was rejected for your safety.")
34+ else newReservedAmount
35+ }
36+
37+
38+func FormatGameDataParam (p) = {
39+ let s = size(p)
40+ if ((s == 0))
41+ then throw("Parameter size must be greater then 0")
42+ else if ((s > 99))
43+ then throw("Parameter size must be less then 100")
44+ else if ((10 > s))
45+ then (("0" + toString(s)) + p)
46+ else (toString(s) + p)
47+ }
48+
49+
50+func FormatGameDataStr (gameState,playerChoice,playerPubKey58,startedHeight,winAmt,randOrEmpty) = {
51+ let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(playerChoice))) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(startedHeight))) + "_") + FormatGameDataParam(toString(winAmt)))
52+ if ((randOrEmpty == ""))
53+ then fullStateStr
54+ else ((fullStateStr + "_") + FormatGameDataParam(randOrEmpty))
55+ }
56+
57+
458 func getMultiplier (type,prediction) = if ((type == "Under"))
559 then if ((prediction == 1))
660 then 9850000
761 else if ((prediction == 2))
862 then 4925000
963 else if ((prediction == 3))
1064 then 3283330
1165 else if ((prediction == 4))
1266 then 2462500
1367 else if ((prediction == 5))
1468 then 1970000
1569 else if ((prediction == 6))
1670 then 1641660
1771 else if ((prediction == 7))
1872 then 1407140
1973 else if ((prediction == 8))
2074 then 1231250
2175 else if ((prediction == 9))
2276 then 1094440
2377 else if ((prediction == 10))
2478 then 985000
2579 else if ((prediction == 11))
2680 then 895450
2781 else if ((prediction == 12))
2882 then 820830
2983 else if ((prediction == 13))
3084 then 757690
3185 else if ((prediction == 14))
3286 then 703570
3387 else if ((prediction == 15))
3488 then 656660
3589 else if ((prediction == 16))
3690 then 615620
3791 else if ((prediction == 17))
3892 then 579410
3993 else if ((prediction == 18))
4094 then 547220
4195 else if ((prediction == 19))
4296 then 518420
4397 else if ((prediction == 20))
4498 then 492500
4599 else if ((prediction == 21))
46100 then 469040
47101 else if ((prediction == 22))
48102 then 447720
49103 else if ((prediction == 23))
50104 then 428260
51105 else if ((prediction == 24))
52106 then 410410
53107 else if ((prediction == 25))
54108 then 394000
55109 else if ((prediction == 26))
56110 then 378840
57111 else if ((prediction == 27))
58112 then 364810
59113 else if ((prediction == 28))
60114 then 351780
61115 else if ((prediction == 29))
62116 then 339650
63117 else if ((prediction == 30))
64118 then 328330
65119 else if ((prediction == 31))
66120 then 317740
67121 else if ((prediction == 32))
68122 then 307810
69123 else if ((prediction == 33))
70124 then 298480
71125 else if ((prediction == 34))
72126 then 289700
73127 else if ((prediction == 35))
74128 then 281420
75129 else if ((prediction == 36))
76130 then 273610
77131 else if ((prediction == 37))
78132 then 259210
79133 else if ((prediction == 38))
80134 then 259210
81135 else if ((prediction == 39))
82136 then 252560
83137 else if ((prediction == 40))
84138 then 246250
85139 else if ((prediction == 41))
86140 then 240240
87141 else if ((prediction == 42))
88142 then 234520
89143 else if ((prediction == 43))
90144 then 229060
91145 else if ((prediction == 44))
92146 then 223860
93147 else if ((prediction == 45))
94148 then 218880
95149 else if ((prediction == 46))
96150 then 214130
97151 else if ((prediction == 47))
98152 then 209570
99153 else if ((prediction == 48))
100154 then 205200
101155 else if ((prediction == 49))
102156 then 201020
103157 else if ((prediction == 50))
104158 then 197000
105159 else if ((prediction == 51))
106160 then 193130
107161 else if ((prediction == 52))
108162 then 189420
109163 else if ((prediction == 53))
110164 then 185840
111165 else if ((prediction == 54))
112166 then 182400
113167 else if ((prediction == 55))
114168 then 179090
115169 else if ((prediction == 56))
116170 then 175890
117171 else if ((prediction == 57))
118172 then 172800
119173 else if ((prediction == 58))
120174 then 169820
121175 else if ((prediction == 59))
122176 then 166940
123177 else if ((prediction == 60))
124178 then 164160
125179 else if ((prediction == 61))
126180 then 161470
127181 else if ((prediction == 62))
128182 then 158870
129183 else if ((prediction == 63))
130184 then 156340
131185 else if ((prediction == 64))
132186 then 153900
133187 else if ((prediction == 65))
134188 then 151530
135189 else if ((prediction == 66))
136190 then 149240
137191 else if ((prediction == 67))
138192 then 147010
139193 else if ((prediction == 68))
140194 then 144850
141195 else if ((prediction == 69))
142196 then 142750
143197 else if ((prediction == 70))
144198 then 140710
145199 else if ((prediction == 71))
146200 then 138730
147201 else if ((prediction == 72))
148202 then 136800
149203 else if ((prediction == 73))
150204 then 134930
151205 else if ((prediction == 74))
152206 then 133100
153207 else if ((prediction == 75))
154208 then 131330
155209 else if ((prediction == 76))
156210 then 129600
157211 else if ((prediction == 77))
158212 then 127920
159213 else if ((prediction == 78))
160214 then 126280
161215 else if ((prediction == 79))
162216 then 124680
163217 else if ((prediction == 80))
164218 then 123120
165219 else if ((prediction == 81))
166220 then 121600
167221 else if ((prediction == 82))
168222 then 120120
169223 else if ((prediction == 83))
170224 then 118670
171225 else if ((prediction == 84))
172226 then 117260
173227 else if ((prediction == 85))
174228 then 115880
175229 else if ((prediction == 86))
176230 then 114530
177231 else if ((prediction == 87))
178232 then 113210
179233 else if ((prediction == 88))
180234 then 111930
181235 else if ((prediction == 89))
182236 then 110670
183237 else if ((prediction == 90))
184238 then 109440
185239 else if ((prediction == 91))
186240 then 108240
187241 else if ((prediction == 92))
188242 then 107060
189243 else if ((prediction == 93))
190244 then 105910
191245 else if ((prediction == 94))
192246 then 104780
193247 else if ((prediction == 95))
194248 then 103680
195249 else if ((prediction == 96))
196250 then 103680
197251 else 100000
198252 else if ((type == "Over"))
199253 then if ((prediction == 4))
200254 then 103680
201255 else if ((prediction == 5))
202256 then 103680
203257 else if ((prediction == 6))
204258 then 104780
205259 else if ((prediction == 7))
206260 then 105910
207261 else if ((prediction == 8))
208262 then 107060
209263 else if ((prediction == 9))
210264 then 108240
211265 else if ((prediction == 10))
212266 then 109440
213267 else if ((prediction == 11))
214268 then 110670
215269 else if ((prediction == 12))
216270 then 111930
217271 else if ((prediction == 13))
218272 then 113210
219273 else if ((prediction == 14))
220274 then 114530
221275 else if ((prediction == 15))
222276 then 115880
223277 else if ((prediction == 16))
224278 then 117260
225279 else if ((prediction == 17))
226280 then 118670
227281 else if ((prediction == 18))
228282 then 120120
229283 else if ((prediction == 19))
230284 then 121600
231285 else if ((prediction == 20))
232286 then 123120
233287 else if ((prediction == 21))
234288 then 124680
235289 else if ((prediction == 22))
236290 then 126280
237291 else if ((prediction == 23))
238292 then 127920
239293 else if ((prediction == 24))
240294 then 129600
241295 else if ((prediction == 25))
242296 then 131330
243297 else if ((prediction == 26))
244298 then 133100
245299 else if ((prediction == 27))
246300 then 134930
247301 else if ((prediction == 28))
248302 then 136800
249303 else if ((prediction == 29))
250304 then 138730
251305 else if ((prediction == 30))
252306 then 140710
253307 else if ((prediction == 31))
254308 then 142750
255309 else if ((prediction == 32))
256310 then 144850
257311 else if ((prediction == 33))
258312 then 147010
259313 else if ((prediction == 34))
260314 then 149240
261315 else if ((prediction == 35))
262316 then 151530
263317 else if ((prediction == 36))
264318 then 153900
265319 else if ((prediction == 37))
266320 then 156340
267321 else if ((prediction == 38))
268322 then 158870
269323 else if ((prediction == 39))
270324 then 161470
271325 else if ((prediction == 40))
272326 then 164160
273327 else if ((prediction == 41))
274328 then 166940
275329 else if ((prediction == 42))
276330 then 169820
277331 else if ((prediction == 43))
278332 then 172800
279333 else if ((prediction == 44))
280334 then 175890
281335 else if ((prediction == 45))
282336 then 179090
283337 else if ((prediction == 46))
284338 then 185840
285339 else if ((prediction == 47))
286340 then 185840
287341 else if ((prediction == 48))
288342 then 189420
289343 else if ((prediction == 49))
290344 then 193130
291345 else if ((prediction == 50))
292346 then 197000
293347 else if ((prediction == 51))
294348 then 201020
295349 else if ((prediction == 52))
296350 then 205200
297351 else if ((prediction == 53))
298352 then 209570
299353 else if ((prediction == 54))
300354 then 214130
301355 else if ((prediction == 55))
302356 then 218880
303357 else if ((prediction == 56))
304358 then 223860
305359 else if ((prediction == 57))
306360 then 229060
307361 else if ((prediction == 58))
308362 then 234520
309363 else if ((prediction == 59))
310364 then 240240
311365 else if ((prediction == 60))
312366 then 246250
313367 else if ((prediction == 61))
314368 then 252560
315369 else if ((prediction == 62))
316370 then 259210
317371 else if ((prediction == 63))
318372 then 259210
319373 else if ((prediction == 64))
320374 then 273610
321375 else if ((prediction == 65))
322376 then 281420
323377 else if ((prediction == 66))
324378 then 289700
325379 else if ((prediction == 67))
326380 then 298480
327381 else if ((prediction == 68))
328382 then 307810
329383 else if ((prediction == 69))
330384 then 317740
331385 else if ((prediction == 70))
332386 then 328330
333387 else if ((prediction == 71))
334388 then 339650
335389 else if ((prediction == 72))
336390 then 351780
337391 else if ((prediction == 73))
338392 then 364810
339393 else if ((prediction == 74))
340394 then 378840
341395 else if ((prediction == 75))
342396 then 394000
343397 else if ((prediction == 76))
344398 then 410410
345399 else if ((prediction == 77))
346400 then 428260
347401 else if ((prediction == 78))
348402 then 447720
349403 else if ((prediction == 79))
350404 then 469040
351405 else if ((prediction == 80))
352406 then 492500
353407 else if ((prediction == 81))
354408 then 518420
355409 else if ((prediction == 82))
356410 then 547220
357411 else if ((prediction == 83))
358412 then 579410
359413 else if ((prediction == 84))
360414 then 615620
361415 else if ((prediction == 85))
362416 then 656660
363417 else if ((prediction == 86))
364418 then 703570
365419 else if ((prediction == 87))
366420 then 757690
367421 else if ((prediction == 88))
368422 then 820830
369423 else if ((prediction == 89))
370424 then 895450
371425 else if ((prediction == 90))
372426 then 985000
373427 else if ((prediction == 91))
374428 then 1094440
375429 else if ((prediction == 92))
376430 then 1231250
377431 else if ((prediction == 93))
378432 then 1407140
379433 else if ((prediction == 94))
380434 then 1641660
381435 else if ((prediction == 95))
382436 then 1970000
383437 else if ((prediction == 96))
384438 then 2462500
385439 else if ((prediction == 97))
386440 then 3283330
387441 else if ((prediction == 98))
388442 then 4925000
389443 else if ((prediction == 99))
390444 then 9850000
391445 else 100000
392446 else 100000
393447
394448
395449 func diceWin (type,prediction,number) = if ((type == "Under"))
396450 then if ((prediction >= number))
397451 then true
398452 else false
399453 else if ((type == "Over"))
400454 then if ((number >= prediction))
401455 then true
402456 else false
403457 else false
404458
405459
406-func dicePayout (win,amount,mult) = if (win)
407- then ((amount * mult) / 100000)
408- else 0
409-
410-
411-func startDice (inv,type,prediction,random) = {
412- let playLimit = (wavesBalance(this) / 100)
413- let payment = extract(inv.payment)
460+@Callable(i)
461+func playDice (type,prediction) = {
462+ let newGameNum = IncrementGameNum()
463+ let gameId = toBase58String(i.transactionId)
464+ let payment = extract(i.payment)
465+ let multi = getMultiplier(type, prediction)
466+ let winAmt = (((payment.amount * multi) / 100000) * (95 / 100))
467+ let txIdUsed = isDefined(getString(this, gameId))
414468 if ((payment.assetId != base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'))
415469 then throw("Payment should be in Wavesbet")
416- else {
417- let multi = getMultiplier(type, prediction)
418- let win = diceWin(type, prediction, random)
419- let playvalue = dicePayout(win, payment.amount, multi)
420- let writeDicePlay = WriteSet([DataEntry("random number", random), DataEntry("win", win), DataEntry("payment", payment.amount), DataEntry("payout", ((playvalue * 94) / 100))])
421- if (win)
422- then ScriptResult(writeDicePlay, TransferSet([ScriptTransfer(inv.caller, 0, base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'), ScriptTransfer(Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP68FHYKovCk5'), ((playvalue * 2) / 100), base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4')]))
423- else ScriptResult(writeDicePlay, TransferSet([ScriptTransfer(Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP68FHYKovCk5'), ((payment.amount * 2) / 100), base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4')]))
424- }
470+ else if (txIdUsed)
471+ then throw("Passed txId had been used before. Game aborted.")
472+ else {
473+ let playerPubKey58 = toBase58String(i.callerPublicKey)
474+ let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, playerPubKey58, height, winAmt, "")
475+ ScriptResult(WriteSet([DataEntry(RESERVATIONKEY, ValidateAndIncreaseReservedAmt(winAmt)), DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet(nil))
476+ }
425477 }
426-
427-
428-func coinFlip (number) = if ((51 > number))
429- then "red"
430- else "blue"
431-
432-
433-func startCoinFlip (inv,opponentAddress,opponentMove,rand) = {
434- let payment = extract(inv.payment)
435- if (if ((payment.assetId == assetInfo(base58'WAVES')))
436- then true
437- else (payment.assetId == base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'))
438- then {
439- let rcoin = coinFlip(rand)
440- let payout = (((payment.amount * 2) * 94) / 100)
441- if ((rcoin == opponentMove))
442- then ScriptResult(WriteSet([DataEntry("coin", rcoin), DataEntry("payout", payout), DataEntry("winner", opponentAddress)]), TransferSet(nil))
443- else ScriptResult(WriteSet([DataEntry("coin", rcoin), DataEntry("payout", payout), DataEntry("winner", toString(inv.caller))]), TransferSet(nil))
444- }
445- else throw("Payment should be in Wavesbet or Waves")
446- }
447-
448-
449-@Callable(inv)
450-func playDice (type,prediction,randomNumber) = startDice(inv, type, prediction, randomNumber)
451-
452-
453-
454-@Callable(inv)
455-func playCoinFlip (opponentAddress,opponentMove,randomNumber) = startCoinFlip(inv, opponentAddress, opponentMove, randomNumber)
456478
457479

github/deemru/w8io/873ac7e 
445.46 ms