tx · FD2CHbRXiWMFK8Jekftzxgtw59YLi6NPfyFa5eDvhuBq

3Mu8FKNn2fEuxsE5mVhCwDQ275Ygi3ejweU:  -0.01400000 Waves

2019.10.25 20:05 [735915] smart account 3Mu8FKNn2fEuxsE5mVhCwDQ275Ygi3ejweU > SELF 0.00000000 Waves

{ "type": 13, "id": "FD2CHbRXiWMFK8Jekftzxgtw59YLi6NPfyFa5eDvhuBq", "fee": 1400000, "feeAssetId": null, "timestamp": 1572023102823, "version": 1, "sender": "3Mu8FKNn2fEuxsE5mVhCwDQ275Ygi3ejweU", "senderPublicKey": "6EzysHLfsAMmtxy8XtuFoQrCNTEkUdPSEzHYEwqpqSs3", "proofs": [ "3gN2SxR7nLj1aeox9ZJytymQcwa3QPZ6Kmz1tEEj9A4FqZZzpB8vym5bp9WGJowUEmFGPx64Kv47mvf5HpG3KA6H" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIICBIECgIIAgAAAB0AAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAZViYXNlNjQ6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFtT2xSQlRZRU8zSDdZOXJCbW9GUQpGbjQzOTJQeDBRdzEzRHNkRWhuek1IMmNqNlk1eW1QdUNPTE1OZTVxclV6UWw4b1JMeklCekZWTVpsd1VZbDJiCm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1AKZ3grbmJBZ3VQOVpRUGZxU2FmRW1DM0NOLzR5RHNKcktyaVJuaVpKbzlqUy80TExzUkt3QjdIQVpIem9GOUxMNwp0U1pIM2h0YU5HdGJkVGt4WjFUelNUM01iMlZQU3pzWnZRRG9jWFVWT21KT3UwbzI5YU9ZK0drRy9HNFJDSzBGCkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3oKWlFJREFRQUIAAAAAB3Jhc1Rlc3QJAAJbAAAAAQIAAAGVYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbU9sUkJUWUVPM0g3WTlyQm1vRlEKRm40MzkyUHgwUXcxM0RzZEVobnpNSDJjajZZNXltUHVDT0xNTmU1cXJVelFsOG9STHpJQnpGVk1abHdVWWwyYgpvc3JPSXhRYllGN1dWUVd2b1Z4RVQxWUlnRG0zTnp6T0xBNXVIN0NLTzBzbnNobU1GQ0RPWkVldzQxR2pLaDNQCmd4K25iQWd1UDlaUVBmcVNhZkVtQzNDTi80eURzSnJLcmlSbmlaSm85alMvNExMc1JLd0I3SEFaSHpvRjlMTDcKdFNaSDNodGFOR3RiZFRreFoxVHpTVDNNYjJWUFN6c1p2UURvY1hVVk9tSk91MG8yOWFPWStHa0cvRzRSQ0swRgpCV1FIRVV2QzUxVFJEUzVrOGphZDBPMU1vYmpRYzZiMThkK2Z1b1ZGZE5mWndHSCt1RnVkdFBHM1VKVGYybWt6ClpRSURBUUFCAAAAAA9HQU1FU0NPVU5URVJLRVkCAAAACSRHQU1FX05VTQAAAAAOUkVTRVJWQVRJT05LRVkCAAAAECRSRVNFUlZFRF9BTU9VTlQAAAAADlNUQVRFU1VCTUlUVEVEAgAAAAlTVUJNSVRURUQAAAAACFNUQVRFV09OAgAAAANXT04AAAAACVNUQVRFTE9TVAIAAAAETE9TVAAAAAAMSWR4R2FtZVN0YXRlAAAAAAAAAAAAAAAAAA9JZHhQbGF5ZXJDaG9pY2UAAAAAAAAAAAEAAAAAB0lkeFR5cGUAAAAAAAAAAAIAAAAAEUlkeFBsYXllclB1YktleTU4AAAAAAAAAAADAAAAABBJZHhTdGFydGVkSGVpZ2h0AAAAAAAAAAAEAAAAAAlJZHhXaW5BbXQAAAAAAAAAAAUAAAAADklkeFJhbmRPckVtcHR5AAAAAAAAAAAGAQAAABBJbmNyZW1lbnRHYW1lTnVtAAAAAAQAAAAHZ2FtZU51bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAA9HQU1FU0NPVU5URVJLRVkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADbnVtBQAAAAckbWF0Y2gwBQAAAANudW0AAAAAAAAAAAAJAABkAAAAAgUAAAAHZ2FtZU51bQAAAAAAAAAAAQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAA5SRVNFUlZBVElPTktFWQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAB5WYWxpZGF0ZUFuZEluY3JlYXNlUmVzZXJ2ZWRBbXQAAAABAAAABndpbkFtdAQAAAARbmV3UmVzZXJ2ZWRBbW91bnQJAABkAAAAAgkBAAAAEkV4dHJhY3RSZXNlcnZlZEFtdAAAAAAFAAAABndpbkFtdAQAAAAHYmFsYW5jZQkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAABHRoaXMDCQAAZgAAAAIFAAAAEW5ld1Jlc2VydmVkQW1vdW50BQAAAAdiYWxhbmNlCQAAAgAAAAECAAAAVEluc3VmZmljaWVudCBmdW5kcyBvbiBXYXZlcyBSaWRlciBh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CWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAAGZ2FtZUlkAwcJAAACAAAAAQIAAAAdUGF5bWVudCBzaG91bGQgYmUgaW4gV2F2ZXNiZXQDBQAAAAh0eElkVXNlZAkAAAIAAAABAgAAAC9QYXNzZWQgdHhJZCBoYWQgYmVlbiB1c2VkIGJlZm9yZS4gR2FtZSBhYm9ydGVkLgQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAtnYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABwUAAAAOU1RBVEVTVUJNSVRURUQFAAAACnByZWRpY3Rpb24FAAAABHR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAAZoZWlnaHQFAAAABndpbkFtdAIAAAAACQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPR0FNRVNDT1VOVEVSS0VZBQAAAApuZXdHYW1lTnVtCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAAC2dhbWVEYXRhU3RyBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAGZ2FtZUlkAAAABnJzYVNpZwQAAAAMZ2FtZURhdGFMaXN0CQEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAMSWR4R2FtZVN0YXRlBAAAAAxwbGF5ZXJDaG9pY2UJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAA9JZHhQbGF5ZXJDaG9pY2UEAAAABHR5cGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAdJZHhUeXBlBAAAAA1zdGFydGVkSGVpZ2h0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAABBJZHhTdGFydGVkSGVpZ2h0BAAAAAZ3aW5BbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAACUlkeFdpbkFtdAQAAAAOcGxheWVyUHViS2V5NTgJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAABFJZHhQbGF5ZXJQdWJLZXk1OAQAAAANcGxheWVyQWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA5wbGF5ZXJQdWJLZXk1OAMJAQAAAAIhPQAAAAIFAAAACWdhbWVTdGF0ZQUAAAAOU1RBVEVTVUJNSVRURUQJAAACAAAAAQIAAAAkSW52YWxpZCBnYW1lIHN0YXRlIGZvciBwYXNzZWQgZ2FtZUlkBAAAAARyYW5kCQEAAAAPR2VuZXJhdGVSYW5kSW50AAAAAgUAAAAGZ2FtZUlkBQAAAAZyc2FTaWcEAAAAB3JhbmRTdHIJAQAAAAlSYW5kVG9TdHIAAAABBQAAAARyYW5kAwkBAAAAB2RpY2VXaW4AAAADBQAAAAR0eXBlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAADHBsYXllckNob2ljZQUAAAAEcmFuZAQAAAAObmV3R2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAcFAAAACFNUQVRFV09OBQAAAAxwbGF5ZXJDaG9pY2UFAAAABHR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAA1zdGFydGVkSGVpZ2h0BQAAAAZ3aW5BbXQFAAAAB3JhbmRTdHIJAQAAAAxXaW5TY3JpcHRTZXQAAAAEBQAAAAZnYW1lSWQFAAAADXBsYXllckFkZHJlc3MFAAAABndpbkFtdAUAAAAObmV3R2FtZURhdGFTdHIEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAHBQAAAAlTVEFURUxPU1QFAAAADHBsYXllckNob2ljZQUAAAAEdHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAADXN0YXJ0ZWRIZWlnaHQFAAAABndpbkFtdAUAAAAHcmFuZFN0cgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAA5uZXdHYW1lRGF0YVN0cgUAAAADbmlsAAAAAO3h/YM=", "chainId": 84, "height": 735915, "spentComplexity": 0 } View: original | compacted Prev: BF5yppTvVbJe6ZmuxwANyaShzeP8fakm6hQmU8kD6eMw Next: 7Bz7GmCtLyH1Vc2QgUpHMue8gqabjR8s9YDexhw9HJQr Diff:
OldNewDifferences
138138 }
139139
140140
141-func GenerateRandInt (gameId) = {
141+func GenerateRandInt (gameId,rsaSign) = {
142142 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rasTest, RSAPUBLIC)
143143 if (rsaSigValid)
144144 then {
604604 if ((gameState != STATESUBMITTED))
605605 then throw("Invalid game state for passed gameId")
606606 else {
607- let rand = GenerateRandInt(gameId)
607+ let rand = GenerateRandInt(gameId, rsaSig)
608608 let randStr = RandToStr(rand)
609609 if (diceWin(type, parseIntValue(playerChoice), rand))
610610 then {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RSAPUBLIC = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmOlRBTYEO3H7Y9rBmoFQ
55 Fn4392Px0Qw13DsdEhnzMH2cj6Y5ymPuCOLMNe5qrUzQl8oRLzIBzFVMZlwUYl2b
66 osrOIxQbYF7WVQWvoVxET1YIgDm3NzzOLA5uH7CKO0snshmMFCDOZEew41GjKh3P
77 gx+nbAguP9ZQPfqSafEmC3CN/4yDsJrKriRniZJo9jS/4LLsRKwB7HAZHzoF9LL7
88 tSZH3htaNGtbdTkxZ1TzST3Mb2VPSzsZvQDocXUVOmJOu0o29aOY+GkG/G4RCK0F
99 BWQHEUvC51TRDS5k8jad0O1MobjQc6b18d+fuoVFdNfZwGH+uFudtPG3UJTf2mkz
1010 ZQIDAQAB")
1111
1212 let rasTest = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmOlRBTYEO3H7Y9rBmoFQ
1313 Fn4392Px0Qw13DsdEhnzMH2cj6Y5ymPuCOLMNe5qrUzQl8oRLzIBzFVMZlwUYl2b
1414 osrOIxQbYF7WVQWvoVxET1YIgDm3NzzOLA5uH7CKO0snshmMFCDOZEew41GjKh3P
1515 gx+nbAguP9ZQPfqSafEmC3CN/4yDsJrKriRniZJo9jS/4LLsRKwB7HAZHzoF9LL7
1616 tSZH3htaNGtbdTkxZ1TzST3Mb2VPSzsZvQDocXUVOmJOu0o29aOY+GkG/G4RCK0F
1717 BWQHEUvC51TRDS5k8jad0O1MobjQc6b18d+fuoVFdNfZwGH+uFudtPG3UJTf2mkz
1818 ZQIDAQAB")
1919
2020 let GAMESCOUNTERKEY = "$GAME_NUM"
2121
2222 let RESERVATIONKEY = "$RESERVED_AMOUNT"
2323
2424 let STATESUBMITTED = "SUBMITTED"
2525
2626 let STATEWON = "WON"
2727
2828 let STATELOST = "LOST"
2929
3030 let IdxGameState = 0
3131
3232 let IdxPlayerChoice = 1
3333
3434 let IdxType = 2
3535
3636 let IdxPlayerPubKey58 = 3
3737
3838 let IdxStartedHeight = 4
3939
4040 let IdxWinAmt = 5
4141
4242 let IdxRandOrEmpty = 6
4343
4444 func IncrementGameNum () = {
4545 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
4646 case num: Int =>
4747 num
4848 case _ =>
4949 0
5050 }
5151 (gameNum + 1)
5252 }
5353
5454
5555 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
5656 case a: Int =>
5757 a
5858 case _ =>
5959 0
6060 }
6161
6262
6363 func ValidateAndIncreaseReservedAmt (winAmt) = {
6464 let newReservedAmount = (ExtractReservedAmt() + winAmt)
6565 let balance = wavesBalance(this)
6666 if ((newReservedAmount > balance))
6767 then throw("Insufficient funds on Waves Rider account. Transaction was rejected for your safety.")
6868 else newReservedAmount
6969 }
7070
7171
7272 func FormatGameDataParam (p) = {
7373 let s = size(p)
7474 if ((s == 0))
7575 then throw("Parameter size must be greater then 0")
7676 else if ((s > 99))
7777 then throw("Parameter size must be less then 100")
7878 else if ((10 > s))
7979 then (("0" + toString(s)) + p)
8080 else (toString(s) + p)
8181 }
8282
8383
8484 func FormatGameDataStr (gameState,playerChoice,playerType,playerPubKey58,startedHeight,winAmt,randOrEmpty) = {
8585 let fullStateStr = ((((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(playerChoice)) + "_") + FormatGameDataParam(playerType)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(startedHeight))) + "_") + FormatGameDataParam(toString(winAmt)))
8686 if ((randOrEmpty == ""))
8787 then fullStateStr
8888 else ((fullStateStr + "_") + FormatGameDataParam(randOrEmpty))
8989 }
9090
9191
9292 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
9393 then drop(remaining, 1)
9494 else remaining
9595
9696
9797 func ParseNextAttribute (remaining) = {
9898 let s = size(remaining)
9999 if ((s > 0))
100100 then {
101101 let nn = parseIntValue(take(remaining, 2))
102102 let v = take(drop(remaining, 2), nn)
103103 let tmpRemaining = drop(remaining, (nn + 2))
104104 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
105105 [v, remainingState]
106106 }
107107 else throw("Empty string was passed into parseNextAttribute func")
108108 }
109109
110110
111111 func ParseGameRawDataStr (rawStateStr) = {
112112 let gameState = ParseNextAttribute(rawStateStr)
113113 let playerChoice = ParseNextAttribute(gameState[1])
114114 let type = ParseNextAttribute(playerChoice[1])
115115 let playerPubKey58 = ParseNextAttribute(type[1])
116116 let startedHeight = ParseNextAttribute(playerPubKey58[1])
117117 let winAmt = ParseNextAttribute(startedHeight[1])
118118 [gameState[0], playerChoice[0], type[0], playerPubKey58[0], startedHeight[0], winAmt[0]]
119119 }
120120
121121
122122 func ExtractGameDataList (gameId) = {
123123 let rawDataStr = match getString(this, gameId) {
124124 case str: String =>
125125 str
126126 case _ =>
127127 throw(("Couldn't find game by " + gameId))
128128 }
129129 ParseGameRawDataStr(rawDataStr)
130130 }
131131
132132
133133 func DecreaseReservedAmt (gameId,winAmt) = {
134134 let newReservedAmount = (ExtractReservedAmt() - winAmt)
135135 if ((0 > newReservedAmount))
136136 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
137137 else DataEntry(RESERVATIONKEY, newReservedAmount)
138138 }
139139
140140
141-func GenerateRandInt (gameId) = {
141+func GenerateRandInt (gameId,rsaSign) = {
142142 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rasTest, RSAPUBLIC)
143143 if (rsaSigValid)
144144 then {
145145 let rand = (toInt(sha256(rasTest)) % 100)
146146 if ((0 > rand))
147147 then ((-1 * rand) + 1)
148148 else (rand + 1)
149149 }
150150 else throw("Invalid RSA signature")
151151 }
152152
153153
154154 func RandToStr (r) = if (if ((r >= 1))
155155 then (100 >= r)
156156 else false)
157157 then toString(r)
158158 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
159159
160160
161161 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr) = {
162162 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4')]
163163 let writeDicePlay = WriteSet([DataEntry("Game Id", gameId), DataEntry("Player Address", toString(playerAddress))])
164164 ScriptResult(writeDicePlay, TransferSet(tSetCommonData))
165165 }
166166
167167
168168 func getMultiplier (type,playerPrediction) = {
169169 let prediction = 50
170170 if ((type == "Under"))
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 ((type == "Over"))
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
562562 func diceWin (type,prediction,number) = if ((type == "Under"))
563563 then if ((prediction >= number))
564564 then true
565565 else false
566566 else if ((type == "Over"))
567567 then if ((number >= prediction))
568568 then true
569569 else false
570570 else false
571571
572572
573573 @Callable(i)
574574 func playDice (type,prediction) = {
575575 let newGameNum = IncrementGameNum()
576576 let gameId = toBase58String(i.transactionId)
577577 let payment = extract(i.payment)
578578 let multi = getMultiplier(type, prediction)
579579 let winAmt = (((payment.amount * multi) / 100000) * (95 / 100))
580580 let txIdUsed = isDefined(getString(this, gameId))
581581 if (false)
582582 then throw("Payment should be in Wavesbet")
583583 else if (txIdUsed)
584584 then throw("Passed txId had been used before. Game aborted.")
585585 else {
586586 let playerPubKey58 = toBase58String(i.callerPublicKey)
587587 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, type, playerPubKey58, height, winAmt, "")
588588 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet(nil))
589589 }
590590 }
591591
592592
593593
594594 @Callable(i)
595595 func withdraw (gameId,rsaSig) = {
596596 let gameDataList = ExtractGameDataList(gameId)
597597 let gameState = gameDataList[IdxGameState]
598598 let playerChoice = gameDataList[IdxPlayerChoice]
599599 let type = gameDataList[IdxType]
600600 let startedHeight = parseIntValue(gameDataList[IdxStartedHeight])
601601 let winAmt = parseIntValue(gameDataList[IdxWinAmt])
602602 let playerPubKey58 = gameDataList[IdxPlayerPubKey58]
603603 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
604604 if ((gameState != STATESUBMITTED))
605605 then throw("Invalid game state for passed gameId")
606606 else {
607- let rand = GenerateRandInt(gameId)
607+ let rand = GenerateRandInt(gameId, rsaSig)
608608 let randStr = RandToStr(rand)
609609 if (diceWin(type, parseIntValue(playerChoice), rand))
610610 then {
611611 let newGameDataStr = FormatGameDataStr(STATEWON, playerChoice, type, playerPubKey58, startedHeight, winAmt, randStr)
612612 WinScriptSet(gameId, playerAddress, winAmt, newGameDataStr)
613613 }
614614 else {
615615 let newGameDataStr = FormatGameDataStr(STATELOST, playerChoice, type, playerPubKey58, startedHeight, winAmt, randStr)
616616 WriteSet([DataEntry(gameId, newGameDataStr)])
617617 }
618618 }
619619 }
620620
621621

github/deemru/w8io/c3f4982 
89.63 ms