tx · Hf3YvjQgA8RZJyKeFfpghtfMALK4Wwj5qKqWtmq4SYAA

3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa:  -0.05000000 Waves

2019.10.25 16:38 [735706] smart account 3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa > SELF 0.00000000 Waves

{ "type": 13, "id": "Hf3YvjQgA8RZJyKeFfpghtfMALK4Wwj5qKqWtmq4SYAA", "fee": 5000000, "feeAssetId": null, "timestamp": 1572010729493, "version": 1, "sender": "3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa", "senderPublicKey": "DdkgRd7YzZtSU3hXJc7sHsU7sM8nUSEwkzqZCaCTXKRe", "proofs": [ "54KMeePTvcKf7RnA2A8Li7SbfR4PsHYDjZ8HyioNsHzob6bjqWhXsEJznqV81smT4QDb6rMfpqU1wbuzaHEPAVPz" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIIARIECgIICAAAACgAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAcliYXNlNjQ6LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFtT2xSQlRZRU8zSDdZOXJCbW9GUQpGbjQzOTJQeDBRdzEzRHNkRWhuek1IMmNqNlk1eW1QdUNPTE1OZTVxclV6UWw4b1JMeklCekZWTVpsd1VZbDJiCm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1AKZ3grbmJBZ3VQOVpRUGZxU2FmRW1DM0NOLzR5RHNKcktyaVJuaVpKbzlqUy80TExzUkt3QjdIQVpIem9GOUxMNwp0U1pIM2h0YU5HdGJkVGt4WjFUelNUM01iMlZQU3pzWnZRRG9jWFVWT21KT3UwbzI5YU9ZK0drRy9HNFJDSzBGCkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3oKWlFJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tAAAAAA9HQU1FU0NPVU5URVJLRVkCAAAACSRHQU1FX05VTQAAAAAOUkVTRVJWQVRJT05LRVkCAAAAECRSRVNFUlZFRF9BTU9VTlQAAAAABFdCRVQBAAAAIA+bi6xab2gnOR9SbfiMgOxiQKrNdZOH+I5+YI04ouDJAAAAAA5XQUxMRVRXQVZFU0JFVAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVI5g9Ot7MZAQi0oorIsDrn13KqbnHOA4uAAAAAAMV0FMTEVUTUNBRkZFCQEAAAAHQWRkcmVzcwAAAAEBAAAAAAAAAAAHV0FWRUxFVAkAAGgAAAACCQAAaAAAAAIAAAAAAAAAAGQAAAAAAAAAA+gAAAAAAAAAA+gAAAAAC0ZFRVdBVkVTQkVUAAAAAAAAAAAEAAAAAAlGRUVNQ0FGRUUAAAAAAAAAAAIAAAAADlNUQVRFU1VCTUlUVEVEAgAAAAlTVUJNSVRURUQAAAAACFNUQVRFV09OAgAAAANXT04AAAAA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bgAAAAAAAAAAJgAAAAAAAAJslgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAJwAAAAAAAAJ2vgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKAAAAAAAAAKBQAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKQAAAAAAAAKMHAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKgAAAAAAAAKXXAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKwAAAAAAAAKjAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALAAAAAAAAAKvEgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALQAAAAAAAAK7kgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALgAAAAAAAALV8AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALwAAAAAAAALV8AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMAAAAAAAAALj7AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMQAAAAAAAALyagMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMgAAAAAAAAMBiAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMwAAAAAAAAMRPAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANAAAAAAAAAMhkAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANQAAAAAAAAMyogMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANgAAAAAAAANEcgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANwAAAAAAAANXAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOAAAAAAAAANqdAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOQAAAAAAAAN+xAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOgAAAAAAAAOUGAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOwAAAAAAAAOq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RVdBVkVTQkVUBQAAAAlGRUVNQ0FGRUUAAAAAAAAAAGQAAAACAAAAAWkBAAAACHBsYXlEaWNlAAAAAgAAAAhyb2xsVHlwZQAAAApwcmVkaWN0aW9uBAAAAAZnYW1lSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAKZ2FtZUlkVXNlZAkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAAGZ2FtZUlkBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAACmZlZUFzc2V0SWQJAQAAAAlpc0RlZmluZWQAAAABCAUAAAABaQAAAApmZWVBc3NldElkBAAAAAZ3aW5BbXQJAQAAABpWYWxpZGF0ZUJldEFuZERlZmluZVdpbkFtdAAAAAMIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAKcHJlZGljdGlvbgUAAAAIcm9sbFR5cGUEAAAADXBsYXllckJhbGFuY2UJAQAAAAx3YXZlc0JhbGFuY2UAAAABCAUAAAABaQAAAAZjYWxsZXIDCQAAZgAAAAIAAAAAAAABhqAFAAAADXBsYXllckJhbGFuY2UJAAACAAAAAQIAAABFVGhlcmUgYXJlIG5vdCBlbm91Z2ggd2F2ZXMsIGl0IHRha2VzIDAuMDEgV2F2ZXMgdG8gYmV0LiBHYW1lIGFib3J0ZWQuAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAAEV0JFVAkAAAIAAAABAgAAAClCZXQgYW1vdW50IG11c3QgYmUgaW4gV2JldC4gR2FtZSBhYm9ydGVkLgMFAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAAxVHJhbnNhY3Rpb24ncyBmZWUgbXVzdCBiZSBpbiBXYXZlcy4gR2FtZSBhYm9ydGVkLgMFAAAACmdhbWVJZFVzZWQJAAACAAAAAQIAAAAxUGFzc2VkIGdhbWVJZCBoYWQgYmVlbiB1c2VkIGJlZm9yZS4gR2FtZSBhYm9ydGVkLgQAAAAKbmV3R2FtZU51bQkBAAAAEEluY3JlbWVudEdhbWVOdW0AAAAABAAAAA5wbGF5ZXJQdWJLZXk1OAkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAC2dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAA5TVEFURVNVQk1JVFRFRAUAAAAKcHJlZGljdGlvbgUAAAAIcm9sbFR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAAZ3aW5BbXQCAAAAAAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD0dBTUVTQ09VTlRFUktFWQUAAAAKbmV3R2FtZU51bQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAAtnYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADldBTExFVFdBVkVTQkVUCQAAaQAAAAIJAABoAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAtGRUVXQVZFU0JFVAAAAAAAAAAAZAUAAAAEV0JFVAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAR0aGlzAAAAAAAAB6EgBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAId2l0aGRyYXcAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAxnYW1lRGF0YUxpc3QJAQAAABNFeHRyYWN0R2FtZURhdGFMaXN0AAAAAQUAAAAGZ2FtZUlkBAAAAAlnYW1lU3RhdGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAxJZHhHYW1lU3RhdGUEAAAACXByZWRjdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAANSWR4UHJlZGljdGlvbgQAAAAIcm9sbFR5cGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAtJZHhSb2xsVHlwZQQAAAAOcGxheWVyUHViS2V5NTgJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAABFJZHhQbGF5ZXJQdWJLZXk1OAQAAAAGd2luQW10CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAlJZHhXaW5BbXQEAAAADXBsYXllckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAAOcGxheWVyUHViS2V5NTgDCQEAAAACIT0AAAACBQAAAAlnYW1lU3RhdGUFAAAADlNUQVRFU1VCTUlUVEVECQAAAgAAAAECAAAAM0ludmFsaWQgZ2FtZSBzdGF0ZSBmb3IgcGFzc2VkIGdhbWVJZC4gR2FtZSBhYm9ydGVkLgQAAAAEcmFuZAkBAAAAD0dlbmVyYXRlUmFuZEludAAAAAIFAAAABmdhbWVJZAUAAAAHcnNhU2lnbgQAAAAHcmFuZFN0cgkBAAAACVJhbmRUb1N0cgAAAAEFAAAABHJhbmQDCQEAAAAHZGljZVdpbgAAAAMFAAAACHJvbGxUeXBlBQAAAAlwcmVkY3Rpb24FAAAABHJhbmQEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAAhTVEFURVdPTgUAAAAJcHJlZGN0aW9uBQAAAAhyb2xsVHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABndpbkFtdAUAAAAHcmFuZFN0cgkBAAAADFdpblNjcmlwdFNldAAAAAQFAAAABmdhbWVJZAUAAAANcGxheWVyQWRkcmVzcwUAAAAGd2luQW10BQAAAA5uZXdHYW1lRGF0YVN0cgQAAAAObmV3R2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAACVNUQVRFTE9TVAUAAAAJcHJlZGN0aW9uBQAAAAhyb2xsVHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABndpbkFtdAUAAAAHcmFuZFN0cgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAA5uZXdHYW1lRGF0YVN0cgUAAAADbmlsAAAAANVuinA=", "chainId": 84, "height": 735706, "spentComplexity": 0 } View: original | compacted Prev: FMm8bJB4r9G25XsJvpZZaaCXLjwHvZ8wUap7qtfZkWUt Next: 9wGeeas3LYd8ZV1idTfFRxwxLyRW36L2yv5VHijRQaoD Diff:
OldNewDifferences
153153 }
154154
155155
156-func GenerateRandInt (gameId,rsaSign) = {
157- let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), toBytes(rsaSign), RSAPUBLIC)
158- if (rsaSigValid)
159- then {
160- let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
161- if ((0 > rand))
162- then ((-1 * rand) + 1)
163- else (rand + 1)
164- }
165- else throw("Invalid RSA signature")
166- }
156+func GenerateRandInt (gameId,rsaSign) = throw(((gameId + " ") + rsaSign))
167157
168158
169159 func RandToStr (r) = if (if ((r >= 1))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RSAPUBLIC = fromBase64String("base64:-----BEGIN PUBLIC KEY-----
55 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmOlRBTYEO3H7Y9rBmoFQ
66 Fn4392Px0Qw13DsdEhnzMH2cj6Y5ymPuCOLMNe5qrUzQl8oRLzIBzFVMZlwUYl2b
77 osrOIxQbYF7WVQWvoVxET1YIgDm3NzzOLA5uH7CKO0snshmMFCDOZEew41GjKh3P
88 gx+nbAguP9ZQPfqSafEmC3CN/4yDsJrKriRniZJo9jS/4LLsRKwB7HAZHzoF9LL7
99 tSZH3htaNGtbdTkxZ1TzST3Mb2VPSzsZvQDocXUVOmJOu0o29aOY+GkG/G4RCK0F
1010 BWQHEUvC51TRDS5k8jad0O1MobjQc6b18d+fuoVFdNfZwGH+uFudtPG3UJTf2mkz
1111 ZQIDAQAB
1212 -----END PUBLIC KEY-----")
1313
1414 let GAMESCOUNTERKEY = "$GAME_NUM"
1515
1616 let RESERVATIONKEY = "$RESERVED_AMOUNT"
1717
1818 let WBET = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
1919
2020 let WALLETWAVESBET = Address(base58'3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX')
2121
2222 let WALLETMCAFFE = Address(base58'')
2323
2424 let WAVELET = ((100 * 1000) * 1000)
2525
2626 let FEEWAVESBET = 4
2727
2828 let FEEMCAFEE = 2
2929
3030 let STATESUBMITTED = "SUBMITTED"
3131
3232 let STATEWON = "WON"
3333
3434 let STATELOST = "LOST"
3535
3636 let ROLLUNDER = "UNDER"
3737
3838 let ROLLOVER = "OVER"
3939
4040 let BETMIN = (100 * WAVELET)
4141
4242 let BETMAX = ((1000 * 100) * WAVELET)
4343
4444 let PREDICTIONMIN = 4
4545
4646 let PREDICTIONMAX = 100
4747
4848 let IdxGameState = 0
4949
5050 let IdxPrediction = 1
5151
5252 let IdxRollType = 2
5353
5454 let IdxPlayerPubKey58 = 3
5555
5656 let IdxWinAmt = 4
5757
5858 let IdxRand = 5
5959
6060 func IncrementGameNum () = {
6161 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
6262 case num: Int =>
6363 num
6464 case _ =>
6565 0
6666 }
6767 (gameNum + 1)
6868 }
6969
7070
7171 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
7272 case a: Int =>
7373 a
7474 case _ =>
7575 0
7676 }
7777
7878
7979 func ValidateAndIncreaseReservedAmt (winAmt) = {
8080 let newReservedAmount = (ExtractReservedAmt() + winAmt)
8181 let balance = wavesBalance(this)
8282 if ((newReservedAmount > balance))
8383 then throw("Insufficient funds on Wavesbet account. Transaction was rejected for your safety.")
8484 else newReservedAmount
8585 }
8686
8787
8888 func FormatGameDataParam (p) = {
8989 let s = size(p)
9090 if ((s == 0))
9191 then throw("Parameter size must be greater then 0")
9292 else if ((s > 99))
9393 then throw("Parameter size must be less then 100")
9494 else if ((10 > s))
9595 then (("0" + toString(s)) + p)
9696 else (toString(s) + p)
9797 }
9898
9999
100100 func FormatGameDataStr (gameState,prediction,rollType,playerPubKey58,winAmt,rand) = {
101101 let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(prediction))) + "_") + FormatGameDataParam(rollType)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(winAmt)))
102102 if ((rand == ""))
103103 then fullStateStr
104104 else ((fullStateStr + "_") + FormatGameDataParam(rand))
105105 }
106106
107107
108108 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
109109 then drop(remaining, 1)
110110 else remaining
111111
112112
113113 func ParseNextAttribute (remaining) = {
114114 let s = size(remaining)
115115 if ((s > 0))
116116 then {
117117 let nn = parseIntValue(take(remaining, 2))
118118 let v = take(drop(remaining, 2), nn)
119119 let tmpRemaining = drop(remaining, (nn + 2))
120120 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
121121 [v, remainingState]
122122 }
123123 else throw("Empty string was passed into parseNextAttribute func")
124124 }
125125
126126
127127 func ParseGameRawDataStr (rawStateStr) = {
128128 let gameState = ParseNextAttribute(rawStateStr)
129129 let prediction = ParseNextAttribute(gameState[1])
130130 let rollType = ParseNextAttribute(prediction[1])
131131 let playerPubKey58 = ParseNextAttribute(rollType[1])
132132 let winAmt = ParseNextAttribute(playerPubKey58[1])
133133 [gameState[0], prediction[0], rollType[0], playerPubKey58[0], winAmt[0]]
134134 }
135135
136136
137137 func ExtractGameDataList (gameId) = {
138138 let rawDataStr = match getString(this, gameId) {
139139 case str: String =>
140140 str
141141 case _ =>
142142 throw(("Couldn't find game by " + gameId))
143143 }
144144 ParseGameRawDataStr(rawDataStr)
145145 }
146146
147147
148148 func DecreaseReservedAmt (gameId,winAmt) = {
149149 let newReservedAmount = (ExtractReservedAmt() - winAmt)
150150 if ((0 > newReservedAmount))
151151 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
152152 else DataEntry(RESERVATIONKEY, newReservedAmount)
153153 }
154154
155155
156-func GenerateRandInt (gameId,rsaSign) = {
157- let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), toBytes(rsaSign), RSAPUBLIC)
158- if (rsaSigValid)
159- then {
160- let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
161- if ((0 > rand))
162- then ((-1 * rand) + 1)
163- else (rand + 1)
164- }
165- else throw("Invalid RSA signature")
166- }
156+func GenerateRandInt (gameId,rsaSign) = throw(((gameId + " ") + rsaSign))
167157
168158
169159 func RandToStr (r) = if (if ((r >= 1))
170160 then (100 >= r)
171161 else false)
172162 then toString(r)
173163 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
174164
175165
176166 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr) = {
177167 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, WBET)]
178168 let writeDicePlay = WriteSet([DataEntry("Game Id", gameId), DataEntry("Player Address", toString(playerAddress))])
179169 ScriptResult(writeDicePlay, TransferSet(tSetCommonData))
180170 }
181171
182172
183173 func Multiplier (prediction,rollType) = if ((rollType == ROLLUNDER))
184174 then if ((prediction == 1))
185175 then 9850000
186176 else if ((prediction == 2))
187177 then 4925000
188178 else if ((prediction == 3))
189179 then 3283330
190180 else if ((prediction == 4))
191181 then 2462500
192182 else if ((prediction == 5))
193183 then 1970000
194184 else if ((prediction == 6))
195185 then 1641660
196186 else if ((prediction == 7))
197187 then 1407140
198188 else if ((prediction == 8))
199189 then 1231250
200190 else if ((prediction == 9))
201191 then 1094440
202192 else if ((prediction == 10))
203193 then 985000
204194 else if ((prediction == 11))
205195 then 895450
206196 else if ((prediction == 12))
207197 then 820830
208198 else if ((prediction == 13))
209199 then 757690
210200 else if ((prediction == 14))
211201 then 703570
212202 else if ((prediction == 15))
213203 then 656660
214204 else if ((prediction == 16))
215205 then 615620
216206 else if ((prediction == 17))
217207 then 579410
218208 else if ((prediction == 18))
219209 then 547220
220210 else if ((prediction == 19))
221211 then 518420
222212 else if ((prediction == 20))
223213 then 492500
224214 else if ((prediction == 21))
225215 then 469040
226216 else if ((prediction == 22))
227217 then 447720
228218 else if ((prediction == 23))
229219 then 428260
230220 else if ((prediction == 24))
231221 then 410410
232222 else if ((prediction == 25))
233223 then 394000
234224 else if ((prediction == 26))
235225 then 378840
236226 else if ((prediction == 27))
237227 then 364810
238228 else if ((prediction == 28))
239229 then 351780
240230 else if ((prediction == 29))
241231 then 339650
242232 else if ((prediction == 30))
243233 then 328330
244234 else if ((prediction == 31))
245235 then 317740
246236 else if ((prediction == 32))
247237 then 307810
248238 else if ((prediction == 33))
249239 then 298480
250240 else if ((prediction == 34))
251241 then 289700
252242 else if ((prediction == 35))
253243 then 281420
254244 else if ((prediction == 36))
255245 then 273610
256246 else if ((prediction == 37))
257247 then 259210
258248 else if ((prediction == 38))
259249 then 259210
260250 else if ((prediction == 39))
261251 then 252560
262252 else if ((prediction == 40))
263253 then 246250
264254 else if ((prediction == 41))
265255 then 240240
266256 else if ((prediction == 42))
267257 then 234520
268258 else if ((prediction == 43))
269259 then 229060
270260 else if ((prediction == 44))
271261 then 223860
272262 else if ((prediction == 45))
273263 then 218880
274264 else if ((prediction == 46))
275265 then 214130
276266 else if ((prediction == 47))
277267 then 209570
278268 else if ((prediction == 48))
279269 then 205200
280270 else if ((prediction == 49))
281271 then 201020
282272 else if ((prediction == 50))
283273 then 197000
284274 else if ((prediction == 51))
285275 then 193130
286276 else if ((prediction == 52))
287277 then 189420
288278 else if ((prediction == 53))
289279 then 185840
290280 else if ((prediction == 54))
291281 then 182400
292282 else if ((prediction == 55))
293283 then 179090
294284 else if ((prediction == 56))
295285 then 175890
296286 else if ((prediction == 57))
297287 then 172800
298288 else if ((prediction == 58))
299289 then 169820
300290 else if ((prediction == 59))
301291 then 166940
302292 else if ((prediction == 60))
303293 then 164160
304294 else if ((prediction == 61))
305295 then 161470
306296 else if ((prediction == 62))
307297 then 158870
308298 else if ((prediction == 63))
309299 then 156340
310300 else if ((prediction == 64))
311301 then 153900
312302 else if ((prediction == 65))
313303 then 151530
314304 else if ((prediction == 66))
315305 then 149240
316306 else if ((prediction == 67))
317307 then 147010
318308 else if ((prediction == 68))
319309 then 144850
320310 else if ((prediction == 69))
321311 then 142750
322312 else if ((prediction == 70))
323313 then 140710
324314 else if ((prediction == 71))
325315 then 138730
326316 else if ((prediction == 72))
327317 then 136800
328318 else if ((prediction == 73))
329319 then 134930
330320 else if ((prediction == 74))
331321 then 133100
332322 else if ((prediction == 75))
333323 then 131330
334324 else if ((prediction == 76))
335325 then 129600
336326 else if ((prediction == 77))
337327 then 127920
338328 else if ((prediction == 78))
339329 then 126280
340330 else if ((prediction == 79))
341331 then 124680
342332 else if ((prediction == 80))
343333 then 123120
344334 else if ((prediction == 81))
345335 then 121600
346336 else if ((prediction == 82))
347337 then 120120
348338 else if ((prediction == 83))
349339 then 118670
350340 else if ((prediction == 84))
351341 then 117260
352342 else if ((prediction == 85))
353343 then 115880
354344 else if ((prediction == 86))
355345 then 114530
356346 else if ((prediction == 87))
357347 then 113210
358348 else if ((prediction == 88))
359349 then 111930
360350 else if ((prediction == 89))
361351 then 110670
362352 else if ((prediction == 90))
363353 then 109440
364354 else if ((prediction == 91))
365355 then 108240
366356 else if ((prediction == 92))
367357 then 107060
368358 else if ((prediction == 93))
369359 then 105910
370360 else if ((prediction == 94))
371361 then 104780
372362 else if ((prediction == 95))
373363 then 103680
374364 else if ((prediction == 96))
375365 then 103680
376366 else 100000
377367 else if ((rollType == ROLLOVER))
378368 then if ((prediction == 4))
379369 then 103680
380370 else if ((prediction == 5))
381371 then 103680
382372 else if ((prediction == 6))
383373 then 104780
384374 else if ((prediction == 7))
385375 then 105910
386376 else if ((prediction == 8))
387377 then 107060
388378 else if ((prediction == 9))
389379 then 108240
390380 else if ((prediction == 10))
391381 then 109440
392382 else if ((prediction == 11))
393383 then 110670
394384 else if ((prediction == 12))
395385 then 111930
396386 else if ((prediction == 13))
397387 then 113210
398388 else if ((prediction == 14))
399389 then 114530
400390 else if ((prediction == 15))
401391 then 115880
402392 else if ((prediction == 16))
403393 then 117260
404394 else if ((prediction == 17))
405395 then 118670
406396 else if ((prediction == 18))
407397 then 120120
408398 else if ((prediction == 19))
409399 then 121600
410400 else if ((prediction == 20))
411401 then 123120
412402 else if ((prediction == 21))
413403 then 124680
414404 else if ((prediction == 22))
415405 then 126280
416406 else if ((prediction == 23))
417407 then 127920
418408 else if ((prediction == 24))
419409 then 129600
420410 else if ((prediction == 25))
421411 then 131330
422412 else if ((prediction == 26))
423413 then 133100
424414 else if ((prediction == 27))
425415 then 134930
426416 else if ((prediction == 28))
427417 then 136800
428418 else if ((prediction == 29))
429419 then 138730
430420 else if ((prediction == 30))
431421 then 140710
432422 else if ((prediction == 31))
433423 then 142750
434424 else if ((prediction == 32))
435425 then 144850
436426 else if ((prediction == 33))
437427 then 147010
438428 else if ((prediction == 34))
439429 then 149240
440430 else if ((prediction == 35))
441431 then 151530
442432 else if ((prediction == 36))
443433 then 153900
444434 else if ((prediction == 37))
445435 then 156340
446436 else if ((prediction == 38))
447437 then 158870
448438 else if ((prediction == 39))
449439 then 161470
450440 else if ((prediction == 40))
451441 then 164160
452442 else if ((prediction == 41))
453443 then 166940
454444 else if ((prediction == 42))
455445 then 169820
456446 else if ((prediction == 43))
457447 then 172800
458448 else if ((prediction == 44))
459449 then 175890
460450 else if ((prediction == 45))
461451 then 179090
462452 else if ((prediction == 46))
463453 then 185840
464454 else if ((prediction == 47))
465455 then 185840
466456 else if ((prediction == 48))
467457 then 189420
468458 else if ((prediction == 49))
469459 then 193130
470460 else if ((prediction == 50))
471461 then 197000
472462 else if ((prediction == 51))
473463 then 201020
474464 else if ((prediction == 52))
475465 then 205200
476466 else if ((prediction == 53))
477467 then 209570
478468 else if ((prediction == 54))
479469 then 214130
480470 else if ((prediction == 55))
481471 then 218880
482472 else if ((prediction == 56))
483473 then 223860
484474 else if ((prediction == 57))
485475 then 229060
486476 else if ((prediction == 58))
487477 then 234520
488478 else if ((prediction == 59))
489479 then 240240
490480 else if ((prediction == 60))
491481 then 246250
492482 else if ((prediction == 61))
493483 then 252560
494484 else if ((prediction == 62))
495485 then 259210
496486 else if ((prediction == 63))
497487 then 259210
498488 else if ((prediction == 64))
499489 then 273610
500490 else if ((prediction == 65))
501491 then 281420
502492 else if ((prediction == 66))
503493 then 289700
504494 else if ((prediction == 67))
505495 then 298480
506496 else if ((prediction == 68))
507497 then 307810
508498 else if ((prediction == 69))
509499 then 317740
510500 else if ((prediction == 70))
511501 then 328330
512502 else if ((prediction == 71))
513503 then 339650
514504 else if ((prediction == 72))
515505 then 351780
516506 else if ((prediction == 73))
517507 then 364810
518508 else if ((prediction == 74))
519509 then 378840
520510 else if ((prediction == 75))
521511 then 394000
522512 else if ((prediction == 76))
523513 then 410410
524514 else if ((prediction == 77))
525515 then 428260
526516 else if ((prediction == 78))
527517 then 447720
528518 else if ((prediction == 79))
529519 then 469040
530520 else if ((prediction == 80))
531521 then 492500
532522 else if ((prediction == 81))
533523 then 518420
534524 else if ((prediction == 82))
535525 then 547220
536526 else if ((prediction == 83))
537527 then 579410
538528 else if ((prediction == 84))
539529 then 615620
540530 else if ((prediction == 85))
541531 then 656660
542532 else if ((prediction == 86))
543533 then 703570
544534 else if ((prediction == 87))
545535 then 757690
546536 else if ((prediction == 88))
547537 then 820830
548538 else if ((prediction == 89))
549539 then 895450
550540 else if ((prediction == 90))
551541 then 985000
552542 else if ((prediction == 91))
553543 then 1094440
554544 else if ((prediction == 92))
555545 then 1231250
556546 else if ((prediction == 93))
557547 then 1407140
558548 else if ((prediction == 94))
559549 then 1641660
560550 else if ((prediction == 95))
561551 then 1970000
562552 else if ((prediction == 96))
563553 then 2462500
564554 else if ((prediction == 97))
565555 then 3283330
566556 else if ((prediction == 98))
567557 then 4925000
568558 else if ((prediction == 99))
569559 then 9850000
570560 else 100000
571561 else 100000
572562
573563
574564 func diceWin (rollType,prediction,rand) = if ((rollType == ROLLUNDER))
575565 then if ((prediction >= rand))
576566 then true
577567 else false
578568 else if ((rollType == ROLLOVER))
579569 then if ((rand >= prediction))
580570 then true
581571 else false
582572 else false
583573
584574
585575 func ValidateBetAndDefineWinAmt (amount,prediction,rollType) = if (if ((BETMIN > amount))
586576 then true
587577 else (amount > BETMAX))
588578 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / 100000000))) + " maxBet=") + toString((BETMAX / 100000000))))
589579 else if (if ((rollType != ROLLUNDER))
590580 then (rollType != ROLLOVER)
591581 else false)
592582 then throw("Invalid Roll type, try with OVER or UNDER")
593583 else if (if ((PREDICTIONMIN > prediction))
594584 then true
595585 else (prediction > PREDICTIONMAX))
596586 then throw(((("Prediction is out of the condition: " + toString(PREDICTIONMIN)) + " <= predction <= ") + toString(PREDICTIONMAX)))
597587 else {
598588 let multi = Multiplier(prediction, rollType)
599589 ((((amount * multi) / 100000) * (100 - (FEEWAVESBET + FEEMCAFEE))) / 100)
600590 }
601591
602592
603593 @Callable(i)
604594 func playDice (rollType,prediction) = {
605595 let gameId = toBase58String(i.transactionId)
606596 let gameIdUsed = isDefined(getString(this, gameId))
607597 let payment = extract(i.payment)
608598 let feeAssetId = isDefined(i.feeAssetId)
609599 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
610600 let playerBalance = wavesBalance(i.caller)
611601 if ((100000 > playerBalance))
612602 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
613603 else if ((payment.assetId != WBET))
614604 then throw("Bet amount must be in Wbet. Game aborted.")
615605 else if (feeAssetId)
616606 then throw("Transaction's fee must be in Waves. Game aborted.")
617607 else if (gameIdUsed)
618608 then throw("Passed gameId had been used before. Game aborted.")
619609 else {
620610 let newGameNum = IncrementGameNum()
621611 let playerPubKey58 = toBase58String(i.callerPublicKey)
622612 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
623613 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETWAVESBET, ((payment.amount * FEEWAVESBET) / 100), WBET), ScriptTransfer(this, 500000, unit)]))
624614 }
625615 }
626616
627617
628618
629619 @Callable(i)
630620 func withdraw (gameId,rsaSign) = {
631621 let gameDataList = ExtractGameDataList(gameId)
632622 let gameState = gameDataList[IdxGameState]
633623 let predction = parseIntValue(gameDataList[IdxPrediction])
634624 let rollType = gameDataList[IdxRollType]
635625 let playerPubKey58 = gameDataList[IdxPlayerPubKey58]
636626 let winAmt = parseIntValue(gameDataList[IdxWinAmt])
637627 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
638628 if ((gameState != STATESUBMITTED))
639629 then throw("Invalid game state for passed gameId. Game aborted.")
640630 else {
641631 let rand = GenerateRandInt(gameId, rsaSign)
642632 let randStr = RandToStr(rand)
643633 if (diceWin(rollType, predction, rand))
644634 then {
645635 let newGameDataStr = FormatGameDataStr(STATEWON, predction, rollType, playerPubKey58, winAmt, randStr)
646636 WinScriptSet(gameId, playerAddress, winAmt, newGameDataStr)
647637 }
648638 else {
649639 let newGameDataStr = FormatGameDataStr(STATELOST, predction, rollType, playerPubKey58, winAmt, randStr)
650640 WriteSet([DataEntry(gameId, newGameDataStr)])
651641 }
652642 }
653643 }
654644
655645

github/deemru/w8io/873ac7e 
338.52 ms