tx · 3xfPfNGUbEcBuM85GpcB4ddKQpALNJWG7jxHexeNQoSM

3PCLAHw9zhuyiqmt1WR2xZfKLX9ZrpYfhH4:  -0.05000000 Waves

2020.01.01 08:14 [1864734] smart account 3PCLAHw9zhuyiqmt1WR2xZfKLX9ZrpYfhH4 > SELF 0.00000000 Waves

{ "type": 13, "id": "3xfPfNGUbEcBuM85GpcB4ddKQpALNJWG7jxHexeNQoSM", "fee": 5000000, "feeAssetId": null, "timestamp": 1577855638863, "version": 1, "sender": "3PCLAHw9zhuyiqmt1WR2xZfKLX9ZrpYfhH4", "senderPublicKey": "xYHLNvqUGrz6tcXUMhkfPtDPBke99RxoEiCCUVguDho", "proofs": [ "4QVaw2Sp3LyPjpFH2UfZ8jfEBkc5TA9tfReNdZsJLHTqTLWKPx97FnJikDVa4jLTPjPS6JYpLbugW5a9MSTMqVg8" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIIARIECgIIAgAAACoAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAY9iYXNlNjQ6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFuZEdHaTNtSzNlTmF6M1Vad0o2REF6ck1aSjJvd0hXT1kwbkdWbUIyL09aTHRMSXRtejI5T0hMTDFpQ1dKVTl6SkJWdEFYNHhjL3dNV3pTeWFxTlVlQVA3Z2duaUc4UTNDN0NrN3JBTC85ckFEZ0FHbjVVRmpuVFA1QXBZY1ErUkh6bFg4Mi9xQ1ZMLzdVU3JpNHJuSy9mbXAvZVRVczlrYk4rTEU2U3RuMWlEaWpKQ0FmclMvOXpUK1JRREgzVDZ5c1lDSEwwSTZ3a0hIR3gydzNxTjNiZW9ZNCtsb1MrWG5BZy8vMGdIdGtMOTNBVVBFUGVBTGo1MDhYcHZVSDdmRG5hVWJyUGNVeTVhMHQ1VlJJREY2ZllDRWFpa2NmbFdNOVdnM2hkbjhZeTVPU2Q4eEtvMkFyTGVvb1ZZZEpjTVZubXNkeG1mZ0lHZzFkRGM0Vmw3eHdJREFRQUIAAAAAD0dBTUVTQ09VTlRFUktFWQIAAAAJJEdBTUVfTlVNAAAAAA5SRVNFUlZBVElPTktFWQIAAAAQJFJFU0VSVkVEX0FNT1VOVAAAAAAEV0JFVAEAAAAgOkBptoM8ze1CVUAoYBmqau186uSZP0x2SswaAYBAj68AAAAAD1dBTExFVENPTU1VTklUWQkBAAAAB0FkZHJlc3MAAAABAQAAABoBVz4t4sT1X1PRYace/qzQTI5V/jE/zCZdBQAAAAAOV0FMTEVUV0FWRVNCRVQJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVftr5lxwKzSvTcNZT7DrEC7Wz/kEc8iyNwAAAAADFdBTExFVE1DQUZFRQkBAAAAB0FkZHJlc3MAAAABAQAAABpNwdCAcf690TXCBas1Sg6dj3KZJmjR8StUdgAAAAAHV0FWRUxFVAAAAAAABfXhAAAAAAAMRkVFQ09NTVVOSVRZAAAAAAAAAAABAAAAAAtGRUVXQVZFU0JFVAAAAAAAAAAAAwAAAAAJRkVFTUNBRkVFAAAAAAAAAAACAAAAAA5TVEFURVNVQk1JVFRFRAIAAAAJU1VCTUlU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ZWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAABmdhbWVJZAMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAABFdCRVQJAAACAAAAAQIAAAAdUGF5bWVudCBzaG91bGQgYmUgaW4gV2F2ZXNiZXQDCQAAZgAAAAIAAAAAAAAPQkAFAAAADXBsYXllckJhbGFuY2UJAAACAAAAAQIAAABFVGhlcmUgYXJlIG5vdCBlbm91Z2ggd2F2ZXMsIGl0IHRha2VzIDAuMDEgV2F2ZXMgdG8gYmV0LiBHYW1lIGFib3J0ZWQuAwUAAAAKZmVlQXNzZXRJZAkAAAIAAAABAgAAADFUcmFuc2FjdGlvbidzIGZlZSBtdXN0IGJlIGluIFdhdmVzLiBHYW1lIGFib3J0ZWQuAwUAAAAKZ2FtZUlkVXNlZAkAAAIAAAABAgAAADFQYXNzZWQgZ2FtZUlkIGhhZCBiZWVuIHVzZWQgYmVmb3JlLiBHYW1lIGFib3J0ZWQuBAAAAApuZXdHYW1lTnVtCQEAAAAQSW5jcmVtZW50R2FtZU51bQAAAAAEAAAADnBsYXllclB1YktleTU4CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAALZ2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAADlNUQVRFU1VCTUlUVEVEBQAAAApwcmVkaWN0aW9uBQAAAAhyb2xsVHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABndpbkFtdAIAAAAACQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOUkVTRVJWQVRJT05LRVkJAQAAAB5WYWxpZGF0ZUFuZEluY3JlYXNlUmVzZXJ2ZWRBbXQAAAABBQAAAAZ3aW5BbXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD0dBTUVTQ09VTlRFUktFWQUAAAAKbmV3R2FtZU51bQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAAtnYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAD1dBTExFVENPTU1VTklUWQkAAGsAAAADCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAADEZFRUNPTU1VTklUWQAAAAAAAAAAZAUAAAAEV0JFVAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA5XQUxMRVRXQVZFU0JFVAkAAGsAAAADCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAAC0ZFRVdBVkVTQkVUAAAAAAAAAABkBQAAAARXQkVUCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADFdBTExFVE1DQUZFRQkAAGsAAAADCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAACUZFRU1DQUZFRQAAAAAAAAAAZAUAAAAEV0JFVAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAAZnYW1lSWQAAAAGcnNhU2lnBAAAAAxnYW1lRGF0YUxpc3QJAQAAABNFeHRyYWN0R2FtZURhdGFMaXN0AAAAAQUAAAAGZ2FtZUlkBAAAAAlnYW1lU3RhdGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAxJZHhHYW1lU3RhdGUEAAAACnByZWRpY3Rpb24JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAADUlkeFByZWRpY3Rpb24EAAAACHJvbGxUeXBlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAHSWR4VHlwZQQAAAAGd2luQW10CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAlJZHhXaW5BbXQEAAAADnBsYXllclB1YktleTU4CQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAARSWR4UGxheWVyUHViS2V5NTgEAAAADXBsYXllckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAAOcGxheWVyUHViS2V5NTgEAAAAEWRlY3JlYXNlZFJlc2VydmVzCQEAAAATRGVjcmVhc2VSZXNlcnZlZEFtdAAAAAIFAAAABmdhbWVJZAUAAAAGd2luQW10AwkBAAAAAiE9AAAAAgUAAAAJZ2FtZVN0YXRlBQAAAA5TVEFURVNVQk1JVFRFRAkAAAIAAAABAgAAADNJbnZhbGlkIGdhbWUgc3RhdGUgZm9yIHBhc3NlZCBnYW1lSWQuIEdhbWUgYWJvcnRlZC4EAAAABHJhbmQJAQAAAA9HZW5lcmF0ZVJhbmRJbnQAAAACBQAAAAZnYW1lSWQFAAAABnJzYVNpZwQAAAAHcmFuZFN0cgkBAAAACVJhbmRUb1N0cgAAAAEFAAAABHJhbmQDCQEAAAAHZGljZVdpbgAAAAMFAAAACHJvbGxUeXBlBQAAAApwcmVkaWN0aW9uBQAAAARyYW5kBAAAAA5uZXdHYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAIU1RBVEVXT04FAAAACnByZWRpY3Rpb24FAAAACHJvbGxUeXBlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAAGd2luQW10BQAAAAdyYW5kU3RyCQEAAAAMV2luU2NyaXB0U2V0AAAABQUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzBQAAAAZ3aW5BbXQFAAAADm5ld0dhbWVEYXRhU3RyBQAAABFkZWNyZWFzZWRSZXNlcnZlcwQAAAAObmV3R2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAACVNUQVRFTE9TVAUAAAAKcHJlZGljdGlvbgUAAAAIcm9sbFR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAAZ3aW5BbXQFAAAAB3JhbmRTdHIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAAObmV3R2FtZURhdGFTdHIJAARMAAAAAgUAAAARZGVjcmVhc2VkUmVzZXJ2ZXMFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAkAAGcAAAACCQAAZQAAAAIJAAPrAAAAAgUAAAAEdGhpcwUAAAAEV0JFVAgFAAAAA3R0eAAAAAZhbW91bnQJAQAAABJFeHRyYWN0UmVzZXJ2ZWRBbXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAADc3R4BQAAAAckbWF0Y2gwBgcHcG0Zbw==", "chainId": 87, "height": 1864734, "spentComplexity": 0 } View: original | compacted Prev: CBPwkwPx1AehrwPKXrFza1EtK7FgiTwg76XoPwK3KYgz Next: BnKhGTt47CthJw37omDFDZ3UQKuEuJqoUZuuTcz5jiLo Diff:
OldNewDifferences
99
1010 let WBET = base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'
1111
12-let WALLETWAVESBET = Address(base58'3P9JX2PcymV6LSJFNDiW7F5XYX4X1Z7LQ1u')
12+let WALLETCOMMUNITY = Address(base58'3P7bfbLomsuFA955TnhpNUQHMcvc4DTk38G')
1313
14-let WALLETMCAFEE = Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP68FHYKovCk5')
14+let WALLETWAVESBET = Address(base58'3PPbfEZzwMswooP4nDkavpxhJfisgQGgfnj')
15+
16+let WALLETMCAFEE = Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP6x8FHYKovCk5')
1517
1618 let WAVELET = 100000000
1719
18-let FEEWAVESBET = 4
20+let FEECOMMUNITY = 1
21+
22+let FEEWAVESBET = 3
1923
2024 let FEEMCAFEE = 2
2125
601605 then throw("Prediction is out of the range for ROLL OVER: 4 <= PREDICTION <= 99")
602606 else {
603607 let multi = Multiplier(prediction, rollType)
604- fraction(((amount / 100000) * multi), ((100 - FEEWAVESBET) - FEEMCAFEE), 100)
608+ fraction(((amount / 100000) * multi), (((100 - FEEWAVESBET) - FEEMCAFEE) - FEECOMMUNITY), 100)
605609 }
606610
607611
610614 let gameId = toBase58String(i.transactionId)
611615 let payment = extract(i.payment)
612616 let feeAssetId = isDefined(i.feeAssetId)
613- let multi = Multiplier(prediction, rollType)
614617 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
615618 let playerBalance = wavesBalance(i.caller)
616619 let gameIdUsed = isDefined(getString(this, gameId))
626629 let newGameNum = IncrementGameNum()
627630 let playerPubKey58 = toBase58String(i.callerPublicKey)
628631 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
629- ScriptResult(WriteSet([DataEntry(RESERVATIONKEY, ValidateAndIncreaseReservedAmt(winAmt)), DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETWAVESBET, ((payment.amount * FEEWAVESBET) / 100), WBET), ScriptTransfer(WALLETMCAFEE, ((payment.amount * FEEMCAFEE) / 100), WBET)]))
632+ ScriptResult(WriteSet([DataEntry(RESERVATIONKEY, ValidateAndIncreaseReservedAmt(winAmt)), DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETCOMMUNITY, fraction(payment.amount, FEECOMMUNITY, 100), WBET), ScriptTransfer(WALLETWAVESBET, fraction(payment.amount, FEEWAVESBET, 100), WBET), ScriptTransfer(WALLETMCAFEE, fraction(payment.amount, FEEMCAFEE, 100), WBET)]))
630633 }
631634 }
632635
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RSAPUBLIC = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndGGi3mK3eNaz3UZwJ6DAzrMZJ2owHWOY0nGVmB2/OZLtLItmz29OHLL1iCWJU9zJBVtAX4xc/wMWzSyaqNUeAP7ggniG8Q3C7Ck7rAL/9rADgAGn5UFjnTP5ApYcQ+RHzlX82/qCVL/7USri4rnK/fmp/eTUs9kbN+LE6Stn1iDijJCAfrS/9zT+RQDH3T6ysYCHL0I6wkHHGx2w3qN3beoY4+loS+XnAg//0gHtkL93AUPEPeALj508XpvUH7fDnaUbrPcUy5a0t5VRIDF6fYCEaikcflWM9Wg3hdn8Yy5OSd8xKo2ArLeooVYdJcMVnmsdxmfgIGg1dDc4Vl7xwIDAQAB")
55
66 let GAMESCOUNTERKEY = "$GAME_NUM"
77
88 let RESERVATIONKEY = "$RESERVED_AMOUNT"
99
1010 let WBET = base58'4vPcbA5yiwpWBVPALPGXus6fNdGEuYTpe4hAeSxM9Kj4'
1111
12-let WALLETWAVESBET = Address(base58'3P9JX2PcymV6LSJFNDiW7F5XYX4X1Z7LQ1u')
12+let WALLETCOMMUNITY = Address(base58'3P7bfbLomsuFA955TnhpNUQHMcvc4DTk38G')
1313
14-let WALLETMCAFEE = Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP68FHYKovCk5')
14+let WALLETWAVESBET = Address(base58'3PPbfEZzwMswooP4nDkavpxhJfisgQGgfnj')
15+
16+let WALLETMCAFEE = Address(base58'3P6gcpVsPxMJ9HHM1SoCM6RP6x8FHYKovCk5')
1517
1618 let WAVELET = 100000000
1719
18-let FEEWAVESBET = 4
20+let FEECOMMUNITY = 1
21+
22+let FEEWAVESBET = 3
1923
2024 let FEEMCAFEE = 2
2125
2226 let STATESUBMITTED = "SUBMITTED"
2327
2428 let STATEWON = "WON"
2529
2630 let STATELOST = "LOST"
2731
2832 let ROLLUNDER = "UNDER"
2933
3034 let ROLLOVER = "OVER"
3135
3236 let BETMIN = (1000 * WAVELET)
3337
3438 let BETMAX = (20000000 * WAVELET)
3539
3640 let PREDICTIONMIN = 1
3741
3842 let PREDICTIONMAX = 99
3943
4044 let IdxGameState = 0
4145
4246 let IdxPrediction = 1
4347
4448 let IdxType = 2
4549
4650 let IdxPlayerPubKey58 = 3
4751
4852 let IdxWinAmt = 4
4953
5054 let IdxRandOrEmpty = 5
5155
5256 func IncrementGameNum () = {
5357 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
5458 case num: Int =>
5559 num
5660 case _ =>
5761 0
5862 }
5963 (gameNum + 1)
6064 }
6165
6266
6367 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
6468 case a: Int =>
6569 a
6670 case _ =>
6771 0
6872 }
6973
7074
7175 func ValidateAndIncreaseReservedAmt (winAmt) = {
7276 let newReservedAmount = (ExtractReservedAmt() + winAmt)
7377 let balance = assetBalance(this, WBET)
7478 if ((newReservedAmount > balance))
7579 then throw("Insufficient funds on Wavesbet Dice account. Transaction was rejected for your safety.")
7680 else newReservedAmount
7781 }
7882
7983
8084 func FormatGameDataParam (p) = {
8185 let s = size(p)
8286 if ((s == 0))
8387 then throw("Parameter size must be greater then 0")
8488 else if ((s > 99))
8589 then throw("Parameter size must be less then 100")
8690 else if ((10 > s))
8791 then (("0" + toString(s)) + p)
8892 else (toString(s) + p)
8993 }
9094
9195
9296 func FormatGameDataStr (gameState,prediction,typeRoll,playerPubKey58,winAmt,randOrEmpty) = {
9397 let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(prediction))) + "_") + FormatGameDataParam(typeRoll)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(winAmt)))
9498 if ((randOrEmpty == ""))
9599 then fullStateStr
96100 else ((fullStateStr + "_") + FormatGameDataParam(randOrEmpty))
97101 }
98102
99103
100104 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
101105 then drop(remaining, 1)
102106 else remaining
103107
104108
105109 func ParseNextAttribute (remaining) = {
106110 let s = size(remaining)
107111 if ((s > 0))
108112 then {
109113 let nn = parseIntValue(take(remaining, 2))
110114 let v = take(drop(remaining, 2), nn)
111115 let tmpRemaining = drop(remaining, (nn + 2))
112116 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
113117 [v, remainingState]
114118 }
115119 else throw("Empty string was passed into parseNextAttribute func")
116120 }
117121
118122
119123 func ParseGameRawDataStr (rawStateStr) = {
120124 let gameState = ParseNextAttribute(rawStateStr)
121125 let prediction = ParseNextAttribute(gameState[1])
122126 let rollType = ParseNextAttribute(prediction[1])
123127 let playerPubKey58 = ParseNextAttribute(rollType[1])
124128 let winAmt = ParseNextAttribute(playerPubKey58[1])
125129 [gameState[0], prediction[0], rollType[0], playerPubKey58[0], winAmt[0]]
126130 }
127131
128132
129133 func ExtractGameDataList (gameId) = {
130134 let rawDataStr = match getString(this, gameId) {
131135 case str: String =>
132136 str
133137 case _ =>
134138 throw(("Couldn't find game by " + gameId))
135139 }
136140 ParseGameRawDataStr(rawDataStr)
137141 }
138142
139143
140144 func DecreaseReservedAmt (gameId,winAmt) = {
141145 let newReservedAmount = (ExtractReservedAmt() - winAmt)
142146 if ((0 > newReservedAmount))
143147 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
144148 else DataEntry(RESERVATIONKEY, newReservedAmount)
145149 }
146150
147151
148152 func GenerateRandInt (gameId,rsaSign) = {
149153 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)
150154 if (rsaSigValid)
151155 then {
152156 let rand = (toInt(sha256(rsaSign)) % 100)
153157 if ((0 > rand))
154158 then ((-1 * rand) + 1)
155159 else (rand + 1)
156160 }
157161 else throw("Invalid RSA signature")
158162 }
159163
160164
161165 func RandToStr (r) = if (if ((r >= 1))
162166 then (100 >= r)
163167 else false)
164168 then toString(r)
165169 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
166170
167171
168172 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr,decreasedReserves) = {
169173 let wSetCommonData = [decreasedReserves]
170174 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, WBET)]
171175 let gameData = DataEntry(gameId, newGameDataStr)
172176 ScriptResult(WriteSet(gameData :: wSetCommonData), TransferSet(tSetCommonData))
173177 }
174178
175179
176180 func Multiplier (prediction,rollType) = if ((rollType == ROLLUNDER))
177181 then if ((prediction == 1))
178182 then 9850000
179183 else if ((prediction == 2))
180184 then 4925000
181185 else if ((prediction == 3))
182186 then 3283330
183187 else if ((prediction == 4))
184188 then 2462500
185189 else if ((prediction == 5))
186190 then 1970000
187191 else if ((prediction == 6))
188192 then 1641660
189193 else if ((prediction == 7))
190194 then 1407140
191195 else if ((prediction == 8))
192196 then 1231250
193197 else if ((prediction == 9))
194198 then 1094440
195199 else if ((prediction == 10))
196200 then 985000
197201 else if ((prediction == 11))
198202 then 895450
199203 else if ((prediction == 12))
200204 then 820830
201205 else if ((prediction == 13))
202206 then 757690
203207 else if ((prediction == 14))
204208 then 703570
205209 else if ((prediction == 15))
206210 then 656660
207211 else if ((prediction == 16))
208212 then 615620
209213 else if ((prediction == 17))
210214 then 579410
211215 else if ((prediction == 18))
212216 then 547220
213217 else if ((prediction == 19))
214218 then 518420
215219 else if ((prediction == 20))
216220 then 492500
217221 else if ((prediction == 21))
218222 then 469040
219223 else if ((prediction == 22))
220224 then 447720
221225 else if ((prediction == 23))
222226 then 428260
223227 else if ((prediction == 24))
224228 then 410410
225229 else if ((prediction == 25))
226230 then 394000
227231 else if ((prediction == 26))
228232 then 378840
229233 else if ((prediction == 27))
230234 then 364810
231235 else if ((prediction == 28))
232236 then 351780
233237 else if ((prediction == 29))
234238 then 339650
235239 else if ((prediction == 30))
236240 then 328330
237241 else if ((prediction == 31))
238242 then 317740
239243 else if ((prediction == 32))
240244 then 307810
241245 else if ((prediction == 33))
242246 then 298480
243247 else if ((prediction == 34))
244248 then 289700
245249 else if ((prediction == 35))
246250 then 281420
247251 else if ((prediction == 36))
248252 then 273610
249253 else if ((prediction == 37))
250254 then 259210
251255 else if ((prediction == 38))
252256 then 259210
253257 else if ((prediction == 39))
254258 then 252560
255259 else if ((prediction == 40))
256260 then 246250
257261 else if ((prediction == 41))
258262 then 240240
259263 else if ((prediction == 42))
260264 then 234520
261265 else if ((prediction == 43))
262266 then 229060
263267 else if ((prediction == 44))
264268 then 223860
265269 else if ((prediction == 45))
266270 then 218880
267271 else if ((prediction == 46))
268272 then 214130
269273 else if ((prediction == 47))
270274 then 209570
271275 else if ((prediction == 48))
272276 then 205200
273277 else if ((prediction == 49))
274278 then 201020
275279 else if ((prediction == 50))
276280 then 197000
277281 else if ((prediction == 51))
278282 then 193130
279283 else if ((prediction == 52))
280284 then 189420
281285 else if ((prediction == 53))
282286 then 185840
283287 else if ((prediction == 54))
284288 then 182400
285289 else if ((prediction == 55))
286290 then 179090
287291 else if ((prediction == 56))
288292 then 175890
289293 else if ((prediction == 57))
290294 then 172800
291295 else if ((prediction == 58))
292296 then 169820
293297 else if ((prediction == 59))
294298 then 166940
295299 else if ((prediction == 60))
296300 then 164160
297301 else if ((prediction == 61))
298302 then 161470
299303 else if ((prediction == 62))
300304 then 158870
301305 else if ((prediction == 63))
302306 then 156340
303307 else if ((prediction == 64))
304308 then 153900
305309 else if ((prediction == 65))
306310 then 151530
307311 else if ((prediction == 66))
308312 then 149240
309313 else if ((prediction == 67))
310314 then 147010
311315 else if ((prediction == 68))
312316 then 144850
313317 else if ((prediction == 69))
314318 then 142750
315319 else if ((prediction == 70))
316320 then 140710
317321 else if ((prediction == 71))
318322 then 138730
319323 else if ((prediction == 72))
320324 then 136800
321325 else if ((prediction == 73))
322326 then 134930
323327 else if ((prediction == 74))
324328 then 133100
325329 else if ((prediction == 75))
326330 then 131330
327331 else if ((prediction == 76))
328332 then 129600
329333 else if ((prediction == 77))
330334 then 127920
331335 else if ((prediction == 78))
332336 then 126280
333337 else if ((prediction == 79))
334338 then 124680
335339 else if ((prediction == 80))
336340 then 123120
337341 else if ((prediction == 81))
338342 then 121600
339343 else if ((prediction == 82))
340344 then 120120
341345 else if ((prediction == 83))
342346 then 118670
343347 else if ((prediction == 84))
344348 then 117260
345349 else if ((prediction == 85))
346350 then 115880
347351 else if ((prediction == 86))
348352 then 114530
349353 else if ((prediction == 87))
350354 then 113210
351355 else if ((prediction == 88))
352356 then 111930
353357 else if ((prediction == 89))
354358 then 110670
355359 else if ((prediction == 90))
356360 then 109440
357361 else if ((prediction == 91))
358362 then 108240
359363 else if ((prediction == 92))
360364 then 107060
361365 else if ((prediction == 93))
362366 then 105910
363367 else if ((prediction == 94))
364368 then 104780
365369 else if ((prediction == 95))
366370 then 103680
367371 else if ((prediction == 96))
368372 then 103680
369373 else 100000
370374 else if ((rollType == ROLLOVER))
371375 then if ((prediction == 4))
372376 then 103680
373377 else if ((prediction == 5))
374378 then 103680
375379 else if ((prediction == 6))
376380 then 104780
377381 else if ((prediction == 7))
378382 then 105910
379383 else if ((prediction == 8))
380384 then 107060
381385 else if ((prediction == 9))
382386 then 108240
383387 else if ((prediction == 10))
384388 then 109440
385389 else if ((prediction == 11))
386390 then 110670
387391 else if ((prediction == 12))
388392 then 111930
389393 else if ((prediction == 13))
390394 then 113210
391395 else if ((prediction == 14))
392396 then 114530
393397 else if ((prediction == 15))
394398 then 115880
395399 else if ((prediction == 16))
396400 then 117260
397401 else if ((prediction == 17))
398402 then 118670
399403 else if ((prediction == 18))
400404 then 120120
401405 else if ((prediction == 19))
402406 then 121600
403407 else if ((prediction == 20))
404408 then 123120
405409 else if ((prediction == 21))
406410 then 124680
407411 else if ((prediction == 22))
408412 then 126280
409413 else if ((prediction == 23))
410414 then 127920
411415 else if ((prediction == 24))
412416 then 129600
413417 else if ((prediction == 25))
414418 then 131330
415419 else if ((prediction == 26))
416420 then 133100
417421 else if ((prediction == 27))
418422 then 134930
419423 else if ((prediction == 28))
420424 then 136800
421425 else if ((prediction == 29))
422426 then 138730
423427 else if ((prediction == 30))
424428 then 140710
425429 else if ((prediction == 31))
426430 then 142750
427431 else if ((prediction == 32))
428432 then 144850
429433 else if ((prediction == 33))
430434 then 147010
431435 else if ((prediction == 34))
432436 then 149240
433437 else if ((prediction == 35))
434438 then 151530
435439 else if ((prediction == 36))
436440 then 153900
437441 else if ((prediction == 37))
438442 then 156340
439443 else if ((prediction == 38))
440444 then 158870
441445 else if ((prediction == 39))
442446 then 161470
443447 else if ((prediction == 40))
444448 then 164160
445449 else if ((prediction == 41))
446450 then 166940
447451 else if ((prediction == 42))
448452 then 169820
449453 else if ((prediction == 43))
450454 then 172800
451455 else if ((prediction == 44))
452456 then 175890
453457 else if ((prediction == 45))
454458 then 179090
455459 else if ((prediction == 46))
456460 then 185840
457461 else if ((prediction == 47))
458462 then 185840
459463 else if ((prediction == 48))
460464 then 189420
461465 else if ((prediction == 49))
462466 then 193130
463467 else if ((prediction == 50))
464468 then 197000
465469 else if ((prediction == 51))
466470 then 201020
467471 else if ((prediction == 52))
468472 then 205200
469473 else if ((prediction == 53))
470474 then 209570
471475 else if ((prediction == 54))
472476 then 214130
473477 else if ((prediction == 55))
474478 then 218880
475479 else if ((prediction == 56))
476480 then 223860
477481 else if ((prediction == 57))
478482 then 229060
479483 else if ((prediction == 58))
480484 then 234520
481485 else if ((prediction == 59))
482486 then 240240
483487 else if ((prediction == 60))
484488 then 246250
485489 else if ((prediction == 61))
486490 then 252560
487491 else if ((prediction == 62))
488492 then 259210
489493 else if ((prediction == 63))
490494 then 259210
491495 else if ((prediction == 64))
492496 then 273610
493497 else if ((prediction == 65))
494498 then 281420
495499 else if ((prediction == 66))
496500 then 289700
497501 else if ((prediction == 67))
498502 then 298480
499503 else if ((prediction == 68))
500504 then 307810
501505 else if ((prediction == 69))
502506 then 317740
503507 else if ((prediction == 70))
504508 then 328330
505509 else if ((prediction == 71))
506510 then 339650
507511 else if ((prediction == 72))
508512 then 351780
509513 else if ((prediction == 73))
510514 then 364810
511515 else if ((prediction == 74))
512516 then 378840
513517 else if ((prediction == 75))
514518 then 394000
515519 else if ((prediction == 76))
516520 then 410410
517521 else if ((prediction == 77))
518522 then 428260
519523 else if ((prediction == 78))
520524 then 447720
521525 else if ((prediction == 79))
522526 then 469040
523527 else if ((prediction == 80))
524528 then 492500
525529 else if ((prediction == 81))
526530 then 518420
527531 else if ((prediction == 82))
528532 then 547220
529533 else if ((prediction == 83))
530534 then 579410
531535 else if ((prediction == 84))
532536 then 615620
533537 else if ((prediction == 85))
534538 then 656660
535539 else if ((prediction == 86))
536540 then 703570
537541 else if ((prediction == 87))
538542 then 757690
539543 else if ((prediction == 88))
540544 then 820830
541545 else if ((prediction == 89))
542546 then 895450
543547 else if ((prediction == 90))
544548 then 985000
545549 else if ((prediction == 91))
546550 then 1094440
547551 else if ((prediction == 92))
548552 then 1231250
549553 else if ((prediction == 93))
550554 then 1407140
551555 else if ((prediction == 94))
552556 then 1641660
553557 else if ((prediction == 95))
554558 then 1970000
555559 else if ((prediction == 96))
556560 then 2462500
557561 else if ((prediction == 97))
558562 then 3283330
559563 else if ((prediction == 98))
560564 then 4925000
561565 else if ((prediction == 99))
562566 then 9850000
563567 else 100000
564568 else 100000
565569
566570
567571 func diceWin (type,prediction,number) = if ((type == ROLLUNDER))
568572 then if ((prediction >= number))
569573 then true
570574 else false
571575 else if ((type == ROLLOVER))
572576 then if ((number >= prediction))
573577 then true
574578 else false
575579 else false
576580
577581
578582 func ValidateBetAndDefineWinAmt (amount,prediction,rollType) = if (if ((BETMIN > amount))
579583 then true
580584 else (amount > BETMAX))
581585 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / WAVELET))) + " maxBet=") + toString((BETMAX / WAVELET))))
582586 else if (if ((rollType != ROLLUNDER))
583587 then (rollType != ROLLOVER)
584588 else false)
585589 then throw("Invalid Roll type, try with OVER or UNDER")
586590 else if (if (if ((rollType == ROLLUNDER))
587591 then (1 > prediction)
588592 else false)
589593 then true
590594 else if ((rollType == ROLLUNDER))
591595 then (prediction > 96)
592596 else false)
593597 then throw("Prediction is out of the range for ROLL UNDER: 1 <= PREDICTION <= 96")
594598 else if (if (if ((rollType == ROLLOVER))
595599 then (4 > prediction)
596600 else false)
597601 then true
598602 else if ((rollType == ROLLOVER))
599603 then (prediction > 99)
600604 else false)
601605 then throw("Prediction is out of the range for ROLL OVER: 4 <= PREDICTION <= 99")
602606 else {
603607 let multi = Multiplier(prediction, rollType)
604- fraction(((amount / 100000) * multi), ((100 - FEEWAVESBET) - FEEMCAFEE), 100)
608+ fraction(((amount / 100000) * multi), (((100 - FEEWAVESBET) - FEEMCAFEE) - FEECOMMUNITY), 100)
605609 }
606610
607611
608612 @Callable(i)
609613 func playDice (rollType,prediction) = {
610614 let gameId = toBase58String(i.transactionId)
611615 let payment = extract(i.payment)
612616 let feeAssetId = isDefined(i.feeAssetId)
613- let multi = Multiplier(prediction, rollType)
614617 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
615618 let playerBalance = wavesBalance(i.caller)
616619 let gameIdUsed = isDefined(getString(this, gameId))
617620 if ((payment.assetId != WBET))
618621 then throw("Payment should be in Wavesbet")
619622 else if ((1000000 > playerBalance))
620623 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
621624 else if (feeAssetId)
622625 then throw("Transaction's fee must be in Waves. Game aborted.")
623626 else if (gameIdUsed)
624627 then throw("Passed gameId had been used before. Game aborted.")
625628 else {
626629 let newGameNum = IncrementGameNum()
627630 let playerPubKey58 = toBase58String(i.callerPublicKey)
628631 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
629- ScriptResult(WriteSet([DataEntry(RESERVATIONKEY, ValidateAndIncreaseReservedAmt(winAmt)), DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETWAVESBET, ((payment.amount * FEEWAVESBET) / 100), WBET), ScriptTransfer(WALLETMCAFEE, ((payment.amount * FEEMCAFEE) / 100), WBET)]))
632+ ScriptResult(WriteSet([DataEntry(RESERVATIONKEY, ValidateAndIncreaseReservedAmt(winAmt)), DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETCOMMUNITY, fraction(payment.amount, FEECOMMUNITY, 100), WBET), ScriptTransfer(WALLETWAVESBET, fraction(payment.amount, FEEWAVESBET, 100), WBET), ScriptTransfer(WALLETMCAFEE, fraction(payment.amount, FEEMCAFEE, 100), WBET)]))
630633 }
631634 }
632635
633636
634637
635638 @Callable(i)
636639 func withdraw (gameId,rsaSig) = {
637640 let gameDataList = ExtractGameDataList(gameId)
638641 let gameState = gameDataList[IdxGameState]
639642 let prediction = parseIntValue(gameDataList[IdxPrediction])
640643 let rollType = gameDataList[IdxType]
641644 let winAmt = parseIntValue(gameDataList[IdxWinAmt])
642645 let playerPubKey58 = gameDataList[IdxPlayerPubKey58]
643646 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
644647 let decreasedReserves = DecreaseReservedAmt(gameId, winAmt)
645648 if ((gameState != STATESUBMITTED))
646649 then throw("Invalid game state for passed gameId. Game aborted.")
647650 else {
648651 let rand = GenerateRandInt(gameId, rsaSig)
649652 let randStr = RandToStr(rand)
650653 if (diceWin(rollType, prediction, rand))
651654 then {
652655 let newGameDataStr = FormatGameDataStr(STATEWON, prediction, rollType, playerPubKey58, winAmt, randStr)
653656 WinScriptSet(gameId, playerAddress, winAmt, newGameDataStr, decreasedReserves)
654657 }
655658 else {
656659 let newGameDataStr = FormatGameDataStr(STATELOST, prediction, rollType, playerPubKey58, winAmt, randStr)
657660 WriteSet([DataEntry(gameId, newGameDataStr), decreasedReserves])
658661 }
659662 }
660663 }
661664
662665
663666 @Verifier(tx)
664667 func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
665668 then match tx {
666669 case ttx: TransferTransaction =>
667670 ((assetBalance(this, WBET) - ttx.amount) >= ExtractReservedAmt())
668671 case stx: SetScriptTransaction =>
669672 true
670673 case _ =>
671674 false
672675 }
673676 else false
674677

github/deemru/w8io/3ef1775 
162.78 ms