tx · HqLnEgvyWouaLBBAeS9Rn6nvXJ9M9TizxqdrEqN5XdMi

3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa:  -0.05000000 Waves

2019.10.25 01:52 [734798] smart account 3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa > SELF 0.00000000 Waves

{ "type": 13, "id": "HqLnEgvyWouaLBBAeS9Rn6nvXJ9M9TizxqdrEqN5XdMi", "fee": 5000000, "feeAssetId": null, "timestamp": 1571957418451, "version": 1, "sender": "3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa", "senderPublicKey": "DdkgRd7YzZtSU3hXJc7sHsU7sM8nUSEwkzqZCaCTXKRe", "proofs": [ "oca7L8h74M7v8fW6JP4F37qHMUWGyJA3utsa1HFJuFECDJGGNYjq8PBVCudXMBgHB1wGy1kJFU9S5rpXXMc91qv" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIIARIECgIICAAAACgAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAmRMUzB0TFMxQ1JVZEpUaUJRVlVKTVNVTWdTMFZaTFMwdExTMWNiazFKU1VKSmFrRk9RbWRyY1docmFVYzVkekJDUVZGRlJrRkJUME5CVVRoQlRVbEpRa05uUzBOQlVVVkJiVTlzVWtKVVdVVlBNMGczV1RseVFtMXZSbEZjYmtadU5ETTVNbEI0TUZGM01UTkVjMlJGYUc1NlRVZ3lZMm8yV1RWNWJWQjFRMDlNVFU1bE5YRnlWWHBSYkRodlVreDZTVUo2UmxaTldteDNWVmxzTW1KY2JtOXpjazlKZUZGaVdVWTNWMVpSVjNadlZuaEZWREZaU1dkRWJUTk9lbnBQVEVFMWRVZzNRMHRQTUhOdWMyaHRUVVpEUkU5YVJXVjNOREZIYWt0b00xQmNibWQ0SzI1aVFXZDFVRGxhVVZCbWNWTmhaa1Z0UXpORFRpODBlVVJ6U25KTGNtbFNibWxhU204NWFsTXZORXhNYzFKTGQwSTNTRUZhU0hwdlJqbE1URGRjYm5SVFdrZ3phSFJoVGtkMFltUlVhM2hhTVZSNlUxUXpUV0l5VmxCVGVuTmFkbEZFYjJOWVZWWlBiVXBQZFRCdk1qbGhUMWtyUjJ0SEwwYzBVa05MTUVaY2JrSlhVVWhGVlhaRE5URlVVa1JUTldzNGFtRmtNRTh4VFc5aWFsRmpObUl4T0dRclpuVnZWa1prVG1aYWQwZElLM1ZHZFdSMFVFY3pWVXBVWmpKdGEzcGNibHBSU1VSQlVVRkNYRzR0TFMwdExVVk9SQ0JRVlVKTVNVTWdTMFZaTFMwdExTMD0AAAAAD0dBTUVTQ09VTlRFUktFWQIAAAAJJEdBTUVfTlVNAAAAAA5SRVNFUlZBVElPTktFWQIAAAAQJFJFU0VSVkVEX0FNT1VOVAAAAAAEV0JFVAEAAAAgD5uLrFpvaCc5H1Jt+IyA7GJAqs11k4f4jn5gjTii4MkAAAAADldBTExFVFdBVkVTQkVUCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFU+7jPDEX8wd6gmrM5ihdUy4TQWFubfU6VAAAAAAxXQUxMRVRNQ0FGRkUJAQAAAAdBZGRyZXNzAAAAAQEAAAAAAAAAAAdX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CQAAAgAAAAECAAAAMVBhc3NlZCBnYW1lSWQgaGFkIGJlZW4gdXNlZCBiZWZvcmUuIEdhbWUgYWJvcnRlZC4EAAAACm5ld0dhbWVOdW0JAQAAABBJbmNyZW1lbnRHYW1lTnVtAAAAAAQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAtnYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAOU1RBVEVTVUJNSVRURUQFAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAAGd2luQW10AgAAAAAJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9HQU1FU0NPVU5URVJLRVkFAAAACm5ld0dhbWVOdW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAALZ2FtZURhdGFTdHIFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAAZnYW1lSWQAAAAHcnNhU2lnbgQAAAAMZ2FtZURhdGFMaXN0CQEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAMSWR4R2FtZVN0YXRlBAAAAAlwcmVkY3Rpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAADUlkeFByZWRpY3Rpb24EAAAACHJvbGxUeXBlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAALSWR4Um9sbFR5cGUEAAAADnBsYXllclB1YktleTU4CQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAARSWR4UGxheWVyUHViS2V5NTgEAAAABndpbkFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAJSWR4V2luQW10BAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4BAAAABFkZWNyZWFzZWRSZXNlcnZlcwkBAAAAE0RlY3JlYXNlUmVzZXJ2ZWRBbXQAAAACBQAAAAZnYW1lSWQFAAAABndpbkFtdAMJAQAAAAIhPQAAAAIFAAAACWdhbWVTdGF0ZQUAAAAOU1RBVEVTVUJNSVRURUQJAAACAAAAAQIAAAAkSW52YWxpZCBnYW1lIHN0YXRlIGZvciBwYXNzZWQgZ2FtZUlkBAAAAARyYW5kCQEAAAAPR2VuZXJhdGVSYW5kSW50AAAAAgUAAAAGZ2FtZUlkBQAAAAdyc2FTaWduBAAAAAdyYW5kU3RyCQEAAAAJUmFuZFRvU3RyAAAAAQUAAAAEcmFuZAMJAQAAAAdkaWNlV2luAAAAAwUAAAAIcm9sbFR5cGUFAAAACXByZWRjdGlvbgUAAAAEcmFuZAQAAAAObmV3R2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAACFNUQVRFV09OBQAAAAlwcmVkY3Rpb24FAAAACHJvbGxUeXBlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAAGd2luQW10BQAAAAdyYW5kU3RyCQEAAAAMV2luU2NyaXB0U2V0AAAABAUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzBQAAAAZ3aW5BbXQFAAAADm5ld0dhbWVEYXRhU3RyBAAAAA5uZXdHYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAJU1RBVEVMT1NUBQAAAAlwcmVkY3Rpb24FAAAACHJvbGxUeXBlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAAGd2luQW10BQAAAAdyYW5kU3RyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAADm5ld0dhbWVEYXRhU3RyBQAAAANuaWwAAAAACbpwSw==", "chainId": 84, "height": 734798, "spentComplexity": 0 } View: original | compacted Prev: GAC5iFZDkcmeyoyDy676UJkDMt7zBMV7oVGqGYPKMzsV Next: 9DBrPFVNWdtS7DGNnCHA32suzy63vtFZxyhJuPc92XTK Diff:
OldNewDifferences
574574 else (amount > BETMAX))
575575 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / 100000000))) + " maxBet=") + toString((BETMAX / 100000000))))
576576 else if (if ((rollType != ROLLUNDER))
577- then true
578- else (rollType != ROLLUNDER))
577+ then (rollType != ROLLOVER)
578+ else false)
579579 then throw("Invalid Roll type, try with Roll Over or Roll Under")
580580 else if (if ((PREDICTIONMIN > prediction))
581581 then true
588588
589589
590590 @Callable(i)
591-func play (rollType,prediction) = {
591+func playDice (rollType,prediction) = {
592592 let gameId = toBase58String(i.transactionId)
593593 let gameIdUsed = isDefined(getString(this, gameId))
594594 let payment = extract(i.payment)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RSAPUBLIC = fromBase64String("LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbU9sUkJUWUVPM0g3WTlyQm1vRlFcbkZuNDM5MlB4MFF3MTNEc2RFaG56TUgyY2o2WTV5bVB1Q09MTU5lNXFyVXpRbDhvUkx6SUJ6RlZNWmx3VVlsMmJcbm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1Bcbmd4K25iQWd1UDlaUVBmcVNhZkVtQzNDTi80eURzSnJLcmlSbmlaSm85alMvNExMc1JLd0I3SEFaSHpvRjlMTDdcbnRTWkgzaHRhTkd0YmRUa3haMVR6U1QzTWIyVlBTenNadlFEb2NYVVZPbUpPdTBvMjlhT1krR2tHL0c0UkNLMEZcbkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3pcblpRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0=")
55
66 let GAMESCOUNTERKEY = "$GAME_NUM"
77
88 let RESERVATIONKEY = "$RESERVED_AMOUNT"
99
1010 let WBET = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
1111
1212 let WALLETWAVESBET = Address(base58'3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa')
1313
1414 let WALLETMCAFFE = Address(base58'')
1515
1616 let WAVELET = ((100 * 1000) * 1000)
1717
1818 let FEEMCAFEE = 2
1919
2020 let FEEWAVESBET = 5
2121
2222 let STATESUBMITTED = "SUBMITTED"
2323
2424 let STATEWON = "WON"
2525
2626 let STATELOST = "LOST"
2727
2828 let ROLLUNDER = "UNDER"
2929
3030 let ROLLOVER = "OVER"
3131
3232 let BETMIN = (100 * WAVELET)
3333
3434 let BETMAX = ((1000 * 100) * WAVELET)
3535
3636 let PREDICTIONMIN = 4
3737
3838 let PREDICTIONMAX = 100
3939
4040 let IdxGameState = 0
4141
4242 let IdxPrediction = 1
4343
4444 let IdxRollType = 2
4545
4646 let IdxPlayerPubKey58 = 3
4747
4848 let IdxWinAmt = 4
4949
5050 let IdxRand = 5
5151
5252 func IncrementGameNum () = {
5353 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
5454 case num: Int =>
5555 num
5656 case _ =>
5757 0
5858 }
5959 (gameNum + 1)
6060 }
6161
6262
6363 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
6464 case a: Int =>
6565 a
6666 case _ =>
6767 0
6868 }
6969
7070
7171 func ValidateAndIncreaseReservedAmt (winAmt) = {
7272 let newReservedAmount = (ExtractReservedAmt() + winAmt)
7373 let balance = wavesBalance(this)
7474 if ((newReservedAmount > balance))
7575 then throw("Insufficient funds on Wavesbet account. Transaction was rejected for your safety.")
7676 else newReservedAmount
7777 }
7878
7979
8080 func FormatGameDataParam (p) = {
8181 let s = size(p)
8282 if ((s == 0))
8383 then throw("Parameter size must be greater then 0")
8484 else if ((s > 99))
8585 then throw("Parameter size must be less then 100")
8686 else if ((10 > s))
8787 then (("0" + toString(s)) + p)
8888 else (toString(s) + p)
8989 }
9090
9191
9292 func FormatGameDataStr (gameState,prediction,rollType,playerPubKey58,winAmt,rand) = {
9393 let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(prediction))) + "_") + FormatGameDataParam(rollType)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(winAmt)))
9494 if ((rand == ""))
9595 then fullStateStr
9696 else ((fullStateStr + "_") + FormatGameDataParam(rand))
9797 }
9898
9999
100100 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
101101 then drop(remaining, 1)
102102 else remaining
103103
104104
105105 func ParseNextAttribute (remaining) = {
106106 let s = size(remaining)
107107 if ((s > 0))
108108 then {
109109 let nn = parseIntValue(take(remaining, 2))
110110 let v = take(drop(remaining, 2), nn)
111111 let tmpRemaining = drop(remaining, (nn + 2))
112112 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
113113 [v, remainingState]
114114 }
115115 else throw("Empty string was passed into parseNextAttribute func")
116116 }
117117
118118
119119 func ParseGameRawDataStr (rawStateStr) = {
120120 let gameState = ParseNextAttribute(rawStateStr)
121121 let prediction = ParseNextAttribute(gameState[1])
122122 let rollType = ParseNextAttribute(prediction[1])
123123 let playerPubKey58 = ParseNextAttribute(rollType[1])
124124 let winAmt = ParseNextAttribute(playerPubKey58[1])
125125 [gameState[0], prediction[0], rollType[0], playerPubKey58[0], winAmt[0]]
126126 }
127127
128128
129129 func ExtractGameDataList (gameId) = {
130130 let rawDataStr = gameId
131131 ParseGameRawDataStr(rawDataStr)
132132 }
133133
134134
135135 func DecreaseReservedAmt (gameId,winAmt) = {
136136 let newReservedAmount = (ExtractReservedAmt() - winAmt)
137137 if ((0 > newReservedAmount))
138138 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
139139 else DataEntry(RESERVATIONKEY, newReservedAmount)
140140 }
141141
142142
143143 func GenerateRandInt (gameId,rsaSign) = {
144144 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), toBytes(rsaSign), RSAPUBLIC)
145145 if (rsaSigValid)
146146 then {
147147 let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
148148 if ((0 > rand))
149149 then ((-1 * rand) + 1)
150150 else (rand + 1)
151151 }
152152 else throw("Invalid RSA signature")
153153 }
154154
155155
156156 func RandToStr (r) = if (if ((r >= 1))
157157 then (100 >= r)
158158 else false)
159159 then toString(r)
160160 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
161161
162162
163163 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr) = {
164164 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, WBET)]
165165 let writeDicePlay = WriteSet([DataEntry("Game Id", gameId), DataEntry("Player Address", toString(playerAddress))])
166166 ScriptResult(writeDicePlay, TransferSet(tSetCommonData))
167167 }
168168
169169
170170 func Multiplier (prediction,rollType) = if ((rollType == ROLLUNDER))
171171 then if ((prediction == 1))
172172 then 9850000
173173 else if ((prediction == 2))
174174 then 4925000
175175 else if ((prediction == 3))
176176 then 3283330
177177 else if ((prediction == 4))
178178 then 2462500
179179 else if ((prediction == 5))
180180 then 1970000
181181 else if ((prediction == 6))
182182 then 1641660
183183 else if ((prediction == 7))
184184 then 1407140
185185 else if ((prediction == 8))
186186 then 1231250
187187 else if ((prediction == 9))
188188 then 1094440
189189 else if ((prediction == 10))
190190 then 985000
191191 else if ((prediction == 11))
192192 then 895450
193193 else if ((prediction == 12))
194194 then 820830
195195 else if ((prediction == 13))
196196 then 757690
197197 else if ((prediction == 14))
198198 then 703570
199199 else if ((prediction == 15))
200200 then 656660
201201 else if ((prediction == 16))
202202 then 615620
203203 else if ((prediction == 17))
204204 then 579410
205205 else if ((prediction == 18))
206206 then 547220
207207 else if ((prediction == 19))
208208 then 518420
209209 else if ((prediction == 20))
210210 then 492500
211211 else if ((prediction == 21))
212212 then 469040
213213 else if ((prediction == 22))
214214 then 447720
215215 else if ((prediction == 23))
216216 then 428260
217217 else if ((prediction == 24))
218218 then 410410
219219 else if ((prediction == 25))
220220 then 394000
221221 else if ((prediction == 26))
222222 then 378840
223223 else if ((prediction == 27))
224224 then 364810
225225 else if ((prediction == 28))
226226 then 351780
227227 else if ((prediction == 29))
228228 then 339650
229229 else if ((prediction == 30))
230230 then 328330
231231 else if ((prediction == 31))
232232 then 317740
233233 else if ((prediction == 32))
234234 then 307810
235235 else if ((prediction == 33))
236236 then 298480
237237 else if ((prediction == 34))
238238 then 289700
239239 else if ((prediction == 35))
240240 then 281420
241241 else if ((prediction == 36))
242242 then 273610
243243 else if ((prediction == 37))
244244 then 259210
245245 else if ((prediction == 38))
246246 then 259210
247247 else if ((prediction == 39))
248248 then 252560
249249 else if ((prediction == 40))
250250 then 246250
251251 else if ((prediction == 41))
252252 then 240240
253253 else if ((prediction == 42))
254254 then 234520
255255 else if ((prediction == 43))
256256 then 229060
257257 else if ((prediction == 44))
258258 then 223860
259259 else if ((prediction == 45))
260260 then 218880
261261 else if ((prediction == 46))
262262 then 214130
263263 else if ((prediction == 47))
264264 then 209570
265265 else if ((prediction == 48))
266266 then 205200
267267 else if ((prediction == 49))
268268 then 201020
269269 else if ((prediction == 50))
270270 then 197000
271271 else if ((prediction == 51))
272272 then 193130
273273 else if ((prediction == 52))
274274 then 189420
275275 else if ((prediction == 53))
276276 then 185840
277277 else if ((prediction == 54))
278278 then 182400
279279 else if ((prediction == 55))
280280 then 179090
281281 else if ((prediction == 56))
282282 then 175890
283283 else if ((prediction == 57))
284284 then 172800
285285 else if ((prediction == 58))
286286 then 169820
287287 else if ((prediction == 59))
288288 then 166940
289289 else if ((prediction == 60))
290290 then 164160
291291 else if ((prediction == 61))
292292 then 161470
293293 else if ((prediction == 62))
294294 then 158870
295295 else if ((prediction == 63))
296296 then 156340
297297 else if ((prediction == 64))
298298 then 153900
299299 else if ((prediction == 65))
300300 then 151530
301301 else if ((prediction == 66))
302302 then 149240
303303 else if ((prediction == 67))
304304 then 147010
305305 else if ((prediction == 68))
306306 then 144850
307307 else if ((prediction == 69))
308308 then 142750
309309 else if ((prediction == 70))
310310 then 140710
311311 else if ((prediction == 71))
312312 then 138730
313313 else if ((prediction == 72))
314314 then 136800
315315 else if ((prediction == 73))
316316 then 134930
317317 else if ((prediction == 74))
318318 then 133100
319319 else if ((prediction == 75))
320320 then 131330
321321 else if ((prediction == 76))
322322 then 129600
323323 else if ((prediction == 77))
324324 then 127920
325325 else if ((prediction == 78))
326326 then 126280
327327 else if ((prediction == 79))
328328 then 124680
329329 else if ((prediction == 80))
330330 then 123120
331331 else if ((prediction == 81))
332332 then 121600
333333 else if ((prediction == 82))
334334 then 120120
335335 else if ((prediction == 83))
336336 then 118670
337337 else if ((prediction == 84))
338338 then 117260
339339 else if ((prediction == 85))
340340 then 115880
341341 else if ((prediction == 86))
342342 then 114530
343343 else if ((prediction == 87))
344344 then 113210
345345 else if ((prediction == 88))
346346 then 111930
347347 else if ((prediction == 89))
348348 then 110670
349349 else if ((prediction == 90))
350350 then 109440
351351 else if ((prediction == 91))
352352 then 108240
353353 else if ((prediction == 92))
354354 then 107060
355355 else if ((prediction == 93))
356356 then 105910
357357 else if ((prediction == 94))
358358 then 104780
359359 else if ((prediction == 95))
360360 then 103680
361361 else if ((prediction == 96))
362362 then 103680
363363 else 100000
364364 else if ((rollType == ROLLOVER))
365365 then if ((prediction == 4))
366366 then 103680
367367 else if ((prediction == 5))
368368 then 103680
369369 else if ((prediction == 6))
370370 then 104780
371371 else if ((prediction == 7))
372372 then 105910
373373 else if ((prediction == 8))
374374 then 107060
375375 else if ((prediction == 9))
376376 then 108240
377377 else if ((prediction == 10))
378378 then 109440
379379 else if ((prediction == 11))
380380 then 110670
381381 else if ((prediction == 12))
382382 then 111930
383383 else if ((prediction == 13))
384384 then 113210
385385 else if ((prediction == 14))
386386 then 114530
387387 else if ((prediction == 15))
388388 then 115880
389389 else if ((prediction == 16))
390390 then 117260
391391 else if ((prediction == 17))
392392 then 118670
393393 else if ((prediction == 18))
394394 then 120120
395395 else if ((prediction == 19))
396396 then 121600
397397 else if ((prediction == 20))
398398 then 123120
399399 else if ((prediction == 21))
400400 then 124680
401401 else if ((prediction == 22))
402402 then 126280
403403 else if ((prediction == 23))
404404 then 127920
405405 else if ((prediction == 24))
406406 then 129600
407407 else if ((prediction == 25))
408408 then 131330
409409 else if ((prediction == 26))
410410 then 133100
411411 else if ((prediction == 27))
412412 then 134930
413413 else if ((prediction == 28))
414414 then 136800
415415 else if ((prediction == 29))
416416 then 138730
417417 else if ((prediction == 30))
418418 then 140710
419419 else if ((prediction == 31))
420420 then 142750
421421 else if ((prediction == 32))
422422 then 144850
423423 else if ((prediction == 33))
424424 then 147010
425425 else if ((prediction == 34))
426426 then 149240
427427 else if ((prediction == 35))
428428 then 151530
429429 else if ((prediction == 36))
430430 then 153900
431431 else if ((prediction == 37))
432432 then 156340
433433 else if ((prediction == 38))
434434 then 158870
435435 else if ((prediction == 39))
436436 then 161470
437437 else if ((prediction == 40))
438438 then 164160
439439 else if ((prediction == 41))
440440 then 166940
441441 else if ((prediction == 42))
442442 then 169820
443443 else if ((prediction == 43))
444444 then 172800
445445 else if ((prediction == 44))
446446 then 175890
447447 else if ((prediction == 45))
448448 then 179090
449449 else if ((prediction == 46))
450450 then 185840
451451 else if ((prediction == 47))
452452 then 185840
453453 else if ((prediction == 48))
454454 then 189420
455455 else if ((prediction == 49))
456456 then 193130
457457 else if ((prediction == 50))
458458 then 197000
459459 else if ((prediction == 51))
460460 then 201020
461461 else if ((prediction == 52))
462462 then 205200
463463 else if ((prediction == 53))
464464 then 209570
465465 else if ((prediction == 54))
466466 then 214130
467467 else if ((prediction == 55))
468468 then 218880
469469 else if ((prediction == 56))
470470 then 223860
471471 else if ((prediction == 57))
472472 then 229060
473473 else if ((prediction == 58))
474474 then 234520
475475 else if ((prediction == 59))
476476 then 240240
477477 else if ((prediction == 60))
478478 then 246250
479479 else if ((prediction == 61))
480480 then 252560
481481 else if ((prediction == 62))
482482 then 259210
483483 else if ((prediction == 63))
484484 then 259210
485485 else if ((prediction == 64))
486486 then 273610
487487 else if ((prediction == 65))
488488 then 281420
489489 else if ((prediction == 66))
490490 then 289700
491491 else if ((prediction == 67))
492492 then 298480
493493 else if ((prediction == 68))
494494 then 307810
495495 else if ((prediction == 69))
496496 then 317740
497497 else if ((prediction == 70))
498498 then 328330
499499 else if ((prediction == 71))
500500 then 339650
501501 else if ((prediction == 72))
502502 then 351780
503503 else if ((prediction == 73))
504504 then 364810
505505 else if ((prediction == 74))
506506 then 378840
507507 else if ((prediction == 75))
508508 then 394000
509509 else if ((prediction == 76))
510510 then 410410
511511 else if ((prediction == 77))
512512 then 428260
513513 else if ((prediction == 78))
514514 then 447720
515515 else if ((prediction == 79))
516516 then 469040
517517 else if ((prediction == 80))
518518 then 492500
519519 else if ((prediction == 81))
520520 then 518420
521521 else if ((prediction == 82))
522522 then 547220
523523 else if ((prediction == 83))
524524 then 579410
525525 else if ((prediction == 84))
526526 then 615620
527527 else if ((prediction == 85))
528528 then 656660
529529 else if ((prediction == 86))
530530 then 703570
531531 else if ((prediction == 87))
532532 then 757690
533533 else if ((prediction == 88))
534534 then 820830
535535 else if ((prediction == 89))
536536 then 895450
537537 else if ((prediction == 90))
538538 then 985000
539539 else if ((prediction == 91))
540540 then 1094440
541541 else if ((prediction == 92))
542542 then 1231250
543543 else if ((prediction == 93))
544544 then 1407140
545545 else if ((prediction == 94))
546546 then 1641660
547547 else if ((prediction == 95))
548548 then 1970000
549549 else if ((prediction == 96))
550550 then 2462500
551551 else if ((prediction == 97))
552552 then 3283330
553553 else if ((prediction == 98))
554554 then 4925000
555555 else if ((prediction == 99))
556556 then 9850000
557557 else 100000
558558 else 100000
559559
560560
561561 func diceWin (rollType,prediction,rand) = if ((rollType == ROLLUNDER))
562562 then if ((prediction >= rand))
563563 then true
564564 else false
565565 else if ((rollType == ROLLOVER))
566566 then if ((rand >= prediction))
567567 then true
568568 else false
569569 else false
570570
571571
572572 func ValidateBetAndDefineWinAmt (amount,prediction,rollType) = if (if ((BETMIN > amount))
573573 then true
574574 else (amount > BETMAX))
575575 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / 100000000))) + " maxBet=") + toString((BETMAX / 100000000))))
576576 else if (if ((rollType != ROLLUNDER))
577- then true
578- else (rollType != ROLLUNDER))
577+ then (rollType != ROLLOVER)
578+ else false)
579579 then throw("Invalid Roll type, try with Roll Over or Roll Under")
580580 else if (if ((PREDICTIONMIN > prediction))
581581 then true
582582 else (prediction > PREDICTIONMAX))
583583 then throw("Prediction is out of the condition: 1 <= predction <= 98")
584584 else {
585585 let multi = Multiplier(prediction, rollType)
586586 (((amount * multi) / 100000) * (95 / 100))
587587 }
588588
589589
590590 @Callable(i)
591-func play (rollType,prediction) = {
591+func playDice (rollType,prediction) = {
592592 let gameId = toBase58String(i.transactionId)
593593 let gameIdUsed = isDefined(getString(this, gameId))
594594 let payment = extract(i.payment)
595595 let feeAssetId = isDefined(i.feeAssetId)
596596 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
597597 let playerBalance = wavesBalance(i.caller)
598598 if ((100000 > playerBalance))
599599 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
600600 else if ((payment.assetId != WBET))
601601 then throw("Bet amount must be in Wbet. Game aborted.")
602602 else if (feeAssetId)
603603 then throw("Transaction's fee must be in Waves. Game aborted.")
604604 else if (gameIdUsed)
605605 then throw("Passed gameId had been used before. Game aborted.")
606606 else {
607607 let newGameNum = IncrementGameNum()
608608 let playerPubKey58 = toBase58String(i.callerPublicKey)
609609 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
610610 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet(nil))
611611 }
612612 }
613613
614614
615615
616616 @Callable(i)
617617 func withdraw (gameId,rsaSign) = {
618618 let gameDataList = ExtractGameDataList(gameId)
619619 let gameState = gameDataList[IdxGameState]
620620 let predction = parseIntValue(gameDataList[IdxPrediction])
621621 let rollType = gameDataList[IdxRollType]
622622 let playerPubKey58 = gameDataList[IdxPlayerPubKey58]
623623 let winAmt = parseIntValue(gameDataList[IdxWinAmt])
624624 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
625625 let decreasedReserves = DecreaseReservedAmt(gameId, winAmt)
626626 if ((gameState != STATESUBMITTED))
627627 then throw("Invalid game state for passed gameId")
628628 else {
629629 let rand = GenerateRandInt(gameId, rsaSign)
630630 let randStr = RandToStr(rand)
631631 if (diceWin(rollType, predction, rand))
632632 then {
633633 let newGameDataStr = FormatGameDataStr(STATEWON, predction, rollType, playerPubKey58, winAmt, randStr)
634634 WinScriptSet(gameId, playerAddress, winAmt, newGameDataStr)
635635 }
636636 else {
637637 let newGameDataStr = FormatGameDataStr(STATELOST, predction, rollType, playerPubKey58, winAmt, randStr)
638638 WriteSet([DataEntry(gameId, newGameDataStr)])
639639 }
640640 }
641641 }
642642
643643

github/deemru/w8io/169f3d6 
96.92 ms