tx · Ax7Bzp9cDYeE3qjc2L3WuiQ84SeWPUKSRUzYj3tqicJU

3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD:  -0.01500000 Waves

2019.10.05 16:17 [706484] smart account 3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD > SELF 0.00000000 Waves

{ "type": 13, "id": "Ax7Bzp9cDYeE3qjc2L3WuiQ84SeWPUKSRUzYj3tqicJU", "fee": 1500000, "feeAssetId": null, "timestamp": 1570281490862, "version": 1, "sender": "3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD", "senderPublicKey": "8W9JLTJTfxrJrBNXxngzueBF4vJqeb6p9jFob7wb6QWQ", "proofs": [ "66hGyd9RZZEBt6V2T6vtpBaYnQ3PfcZxHkSoLcEE8sicGxqES1C6WX3xgxo3v52uk8hLc6aBtzzRRLBV79MtZdbE" ], "script": "base64:AAIDAAAAAAAAAAwIARIAEgYKBAgICAgAAAAkAAAAAA1yc2FQdWJsaWNLZXkxCQACWwAAAAECAAAAgE1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQU9raXV6L0JWNEVqb3hHaFRtTkNidDJUZ2tiU1BIL3c2OWIzRjFyS21ENjFKaVBYdnZGOEwycEk5eE9ZY1c0Rm1vRVpWSGxSUXRBbGFKeWtsMytyc3JFQ0F3RUFBUT09AAAAAA1yc2FQdWJsaWNLZXkyCQACWwAAAAECAAAAgE1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQUpuWHpiTS9WMnNEVjFVTGJQU09sSGtsZE9UV1JySGk1ZnhJa0JtdWV2ckNsTVBWSDdycWNjd2lyRE5jTWRJZHdYSEk5QWRoajlGV2p3R0l3ZlUvSzZNQ0F3RUFBUT09AAAAAA1yc2FQdWJsaWNLZXkzCQACWwAAAAECAAAAgE1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQU9SRGV2eTByNGt6THFPeVNsb0I2M0h1djJlNHplSEtIakNzeTV2dEZLbVdaYlhKYThnWll0NCtFa2xGSW8xSzlvcXU1QkFQVmZKM0ZPenMyVTFBK2cwQ0F3RUFBUT09AAAAAA1nYW1lVGltZUZyYW1lCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAAIAAAAACmNvbW1pc3Npb24AAAAAAAAHoSAAAAAACHN0YXRlQWNjAgAAAAhBY2NlcHRlZAAAAAAIc3RhdGVXaW4CAAAAA1dpbgAAAAAMc3RhdGVUaW1lb3V0AgAAAAxXaW5CeVRpbWVvdXQAAAAACXN0YXRlTG9zZQIAAAAETG9zZQAAAAAHd2F2ZXNJZAUAAAAEdW5pdAAAAAAFYnRjSWQBAAAAIOvzosVhoibMsJFhnXGyvjcIhgPvNh4Hf/DTda1QyUJGAAAAAAVldGhJZAEAAAAgTJ+bcfm5c5bsRO7AKKuBgxBIo86PQvQYe3Uj/7n7JnoAAAAABWx0Y0lkAQAAACBlCsW0lfXNUW1dchHvCCRKuoSGa9K+jEhi7hIhhzyatgAAAAAFdnN0SWQBAAAAIEKY/z/ZZkga57PyFNSxGKoaWKMhf/RBjPIdj8CXT+qQAAAAAAV3Y3RJZAEAAAAg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AAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAABmdhbWVJZAIAAAAHX0dhbWVJZAUAAAAKZGF0YVN0cmluZwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACV9SZXNlcnZlZAUAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlBQAAAANuaWwJAAACAAAAAQIAAAAUYXNzZXRJZCBpcyBpbmNvcnJlY3QAAAABaQEAAAAIcGxheUdhbWUAAAAEAAAABmdhbWVJZAAAAAhyc2FTaWduMQAAAAhyc2FTaWduMgAAAAhyc2FTaWduMwQAAAAIZGF0YUxpc3QJAQAAAAtnZXREYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAAABAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAEEAAAABmJldEFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAACBAAAAAlhc3NldE5hbWUJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAMEAAAACWdhbWVTdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAAEBAAAAAlhc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAACWFzc2V0TmFtZQQAAAANZ2FtZVRpbWVDaGVjawkAAGYAAAACBQAAAA1nYW1lVGltZUZyYW1lCQAAZQAAAAIFAAAABmhlaWdodAUAAAAJZ2FtZVN0YXJ0BAAAAAxzdGF0ZUNvcnJlY3QJAAAAAAAAAgUAAAAJZ2FtZVN0YXRlBQAAAAhzdGF0ZUFjYwQAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlCQEAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAACBQAAAAZiZXRBbXQFAAAACWFzc2V0TmFtZQQAAAATZHJvcHBlZEVsZW1lbnRz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", "chainId": 84, "height": 706484, "spentComplexity": 0 } View: original | compacted Prev: Djsd1aDex2Jq1UAZyRjDcxNTHQLCgkz8kFEjdPRNT9Z7 Next: BGKYaQYuGW3xPRi3SdC399bXKEGQu69t6aVS7aXnZSq1 Diff:
OldNewDifferences
3535
3636 let WavesMinAmt = (100000000 / divider)
3737
38-let WavesMaxAmt = (WavesMinAmt * 10)
38+let WavesMaxAmt = ((WavesMinAmt * 10) / divider)
3939
4040 let BtcMinAmt = (10000 / divider)
4141
42-let BtcMaxAmt = (BtcMinAmt * 10)
42+let BtcMaxAmt = ((BtcMinAmt * 10) / divider)
4343
4444 let EthMinAmt = (1000000 / divider)
4545
46-let EthMaxAmt = (EthMinAmt * 10)
46+let EthMaxAmt = ((EthMinAmt * 10) / divider)
4747
4848 let LtcMinAmt = (2000000 / divider)
4949
50-let LtcMaxAmt = (LtcMinAmt * 10)
50+let LtcMaxAmt = ((LtcMinAmt * 10) / divider)
5151
5252 let WctMinAmt = (500000000 / divider)
5353
54-let WctMaxAmt = (WctMinAmt * 10)
54+let WctMaxAmt = ((WctMinAmt * 10) / divider)
5555
5656 let VstMinAmt = (500000000 / divider)
5757
58-let VstMaxAmt = (VstMinAmt * 10)
58+let VstMaxAmt = ((VstMinAmt * 10) / divider)
5959
6060 func pmtAmtCheck (pmtAssetId,betAmount) = if ((pmtAssetId == "WAVES"))
6161 then if (if ((betAmount >= WavesMinAmt))
9696
9797 func increaseReservedBalance (pmtAmt,pmtAssetName) = {
9898 let currentReservedBalance = {
99- let valueReservedBalance = getInteger(this, ("Reserved_" + pmtAssetName))
99+ let valueReservedBalance = getInteger(this, (pmtAssetName + "_Reserved"))
100100 match valueReservedBalance {
101101 case a: Int =>
102102 a
115115
116116
117117 func getDataList (gameId) = {
118- let getDataString = getString(this, gameId)
118+ let getDataString = getString(this, (gameId + "_GameId"))
119119 let a = match getDataString {
120120 case a: String =>
121121 a
157157
158158
159159 func decreaseReservedBalance (betAmt,assetId) = {
160- let valueReservedBalance = getInteger(this, ("Reserved_" + assetId))
160+ let valueReservedBalance = getInteger(this, (assetId + "_Reserved"))
161161 let extractReservedBalance = match valueReservedBalance {
162162 case a: Int =>
163163 a
165165 0
166166 }
167167 let decreaseReservedBalance = (extractReservedBalance - betAmt)
168- if ((decreaseReservedBalance > 0))
168+ if ((decreaseReservedBalance >= 0))
169169 then decreaseReservedBalance
170170 else throw("Reserved balance couldn't be less than 0")
171171 }
242242 if (pmtAmtCorrect)
243243 then {
244244 let dataString = ((((((((stateAcc + "_") + playerPublicKey) + "_") + toString(betAmount)) + "_") + pmtAssetName) + "_") + toString(gameStart))
245- WriteSet([DataEntry(gameId, dataString), DataEntry(("Reserved_" + pmtAssetName), setReservedBalance)])
245+ WriteSet([DataEntry((gameId + "_GameId"), dataString), DataEntry((pmtAssetName + "_Reserved"), setReservedBalance)])
246246 }
247247 else throw("assetId is incorrect")
248248 }
287287 if (stateCorrect)
288288 then if (gameTimeCheck)
289289 then if ((winAmt == 0))
290- then WriteSet([DataEntry(gameId, ((((((stateLose + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)])
291- else ScriptResult(WriteSet([DataEntry(gameId, ((((((stateWin + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winPmtAmt, assetId58)]))
292- else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
290+ then WriteSet([DataEntry((gameId + "_GameId"), ((((((stateLose + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry((assetName + "_Reserved"), setReservedBalance)])
291+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((stateWin + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winPmtAmt, assetId58)]))
292+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), (stateTimeout + stringForNewData)), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
293293 else throw("Game state is incorrect")
294294 }
295295
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let rsaPublicKey1 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkiuz/BV4EjoxGhTmNCbt2TgkbSPH/w69b3F1rKmD61JiPXvvF8L2pI9xOYcW4FmoEZVHlRQtAlaJykl3+rsrECAwEAAQ==")
55
66 let rsaPublicKey2 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnXzbM/V2sDV1ULbPSOlHkldOTWRrHi5fxIkBmuevrClMPVH7rqccwirDNcMdIdwXHI9Adhj9FWjwGIwfU/K6MCAwEAAQ==")
77
88 let rsaPublicKey3 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAORDevy0r4kzLqOySloB63Huv2e4zeHKHjCsy5vtFKmWZbXJa8gZYt4+EklFIo1K9oqu5BAPVfJ3FOzs2U1A+g0CAwEAAQ==")
99
1010 let gameTimeFrame = (1440 * 2)
1111
1212 let commission = 500000
1313
1414 let stateAcc = "Accepted"
1515
1616 let stateWin = "Win"
1717
1818 let stateTimeout = "WinByTimeout"
1919
2020 let stateLose = "Lose"
2121
2222 let wavesId = unit
2323
2424 let btcId = base58'Gt4HLkHunts7bWbtYP5UCsAPW7TUA4gmQEnjgjbZ2NqB'
2525
2626 let ethId = base58'6A79GDQj8bdHqUaoJQ3qE1TCPnBc3wFirNCSsAY5RKry'
2727
2828 let ltcId = base58'7oRhs4zoufHM4KiBDuJwRXUWb9JQaFt98N8ubpmytMmw'
2929
3030 let vstId = base58'5UyDjBMx1Q8UWhJj1r7JuA6h4aCkKrHE1J19HvMXRpRd'
3131
3232 let wctId = base58'Ae5W927iuKSLLT6Sdt3bqWze6ZUbYHDWzPY6dLKQusZv'
3333
3434 let divider = 1000
3535
3636 let WavesMinAmt = (100000000 / divider)
3737
38-let WavesMaxAmt = (WavesMinAmt * 10)
38+let WavesMaxAmt = ((WavesMinAmt * 10) / divider)
3939
4040 let BtcMinAmt = (10000 / divider)
4141
42-let BtcMaxAmt = (BtcMinAmt * 10)
42+let BtcMaxAmt = ((BtcMinAmt * 10) / divider)
4343
4444 let EthMinAmt = (1000000 / divider)
4545
46-let EthMaxAmt = (EthMinAmt * 10)
46+let EthMaxAmt = ((EthMinAmt * 10) / divider)
4747
4848 let LtcMinAmt = (2000000 / divider)
4949
50-let LtcMaxAmt = (LtcMinAmt * 10)
50+let LtcMaxAmt = ((LtcMinAmt * 10) / divider)
5151
5252 let WctMinAmt = (500000000 / divider)
5353
54-let WctMaxAmt = (WctMinAmt * 10)
54+let WctMaxAmt = ((WctMinAmt * 10) / divider)
5555
5656 let VstMinAmt = (500000000 / divider)
5757
58-let VstMaxAmt = (VstMinAmt * 10)
58+let VstMaxAmt = ((VstMinAmt * 10) / divider)
5959
6060 func pmtAmtCheck (pmtAssetId,betAmount) = if ((pmtAssetId == "WAVES"))
6161 then if (if ((betAmount >= WavesMinAmt))
6262 then (WavesMaxAmt >= betAmount)
6363 else false)
6464 then true
6565 else throw("Bet amount is not in range")
6666 else if ((pmtAssetId == "BTC"))
6767 then if (if ((betAmount >= BtcMinAmt))
6868 then (BtcMaxAmt >= betAmount)
6969 else false)
7070 then true
7171 else throw("Bet amount is not in range")
7272 else if ((pmtAssetId == "ETH"))
7373 then if (if ((betAmount >= EthMinAmt))
7474 then (EthMaxAmt >= betAmount)
7575 else false)
7676 then true
7777 else throw("Bet amount is not in range")
7878 else if ((pmtAssetId == "LTC"))
7979 then if (if ((betAmount >= LtcMinAmt))
8080 then (LtcMaxAmt >= betAmount)
8181 else false)
8282 then true
8383 else throw("Bet amount is not in range")
8484 else if ((pmtAssetId == "WCT"))
8585 then if (if ((betAmount >= WctMinAmt))
8686 then (WctMaxAmt >= betAmount)
8787 else false)
8888 then true
8989 else throw("Bet amount is not in range")
9090 else if (if ((betAmount >= VstMinAmt))
9191 then (VstMaxAmt >= betAmount)
9292 else false)
9393 then true
9494 else throw("Bet amount is not in range")
9595
9696
9797 func increaseReservedBalance (pmtAmt,pmtAssetName) = {
9898 let currentReservedBalance = {
99- let valueReservedBalance = getInteger(this, ("Reserved_" + pmtAssetName))
99+ let valueReservedBalance = getInteger(this, (pmtAssetName + "_Reserved"))
100100 match valueReservedBalance {
101101 case a: Int =>
102102 a
103103 case _ =>
104104 0
105105 }
106106 }
107107 let newReservedBalance = (currentReservedBalance + pmtAmt)
108108 if ((wavesBalance(this) >= newReservedBalance))
109109 then {
110110 let increaseReservedBalance = newReservedBalance
111111 increaseReservedBalance
112112 }
113113 else throw("Bet was rejected. Insufficient funds on game account.")
114114 }
115115
116116
117117 func getDataList (gameId) = {
118- let getDataString = getString(this, gameId)
118+ let getDataString = getString(this, (gameId + "_GameId"))
119119 let a = match getDataString {
120120 case a: String =>
121121 a
122122 case _ =>
123123 throw("GameId was not found")
124124 }
125125 split(a, "_")
126126 }
127127
128128
129129 func intToElem (rsaInt) = if ((2 > rsaInt))
130130 then "7"
131131 else if ((4 > rsaInt))
132132 then "6"
133133 else if ((6 > rsaInt))
134134 then "5"
135135 else if ((8 > rsaInt))
136136 then "4"
137137 else if ((10 > rsaInt))
138138 then "3"
139139 else if ((12 > rsaInt))
140140 then "2"
141141 else "1"
142142
143143
144144 func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
145145 let rsaCheck = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), rsaPublicKey)
146146 if (rsaCheck)
147147 then {
148148 let rsaInt = ((toInt(sha256(fromBase64String(rsaSign))) % 19) + 1)
149149 if (if ((rsaInt > 0))
150150 then (20 >= rsaInt)
151151 else false)
152152 then rsaInt
153153 else throw("Integer is not in range")
154154 }
155155 else throw("Rsa Signature is invalid")
156156 }
157157
158158
159159 func decreaseReservedBalance (betAmt,assetId) = {
160- let valueReservedBalance = getInteger(this, ("Reserved_" + assetId))
160+ let valueReservedBalance = getInteger(this, (assetId + "_Reserved"))
161161 let extractReservedBalance = match valueReservedBalance {
162162 case a: Int =>
163163 a
164164 case _ =>
165165 0
166166 }
167167 let decreaseReservedBalance = (extractReservedBalance - betAmt)
168- if ((decreaseReservedBalance > 0))
168+ if ((decreaseReservedBalance >= 0))
169169 then decreaseReservedBalance
170170 else throw("Reserved balance couldn't be less than 0")
171171 }
172172
173173
174174 func defineMultiplier (threeDrums,twoDrums) = if ((threeDrums == "777"))
175175 then 5370
176176 else if ((threeDrums == "666"))
177177 then 1300
178178 else if ((threeDrums == "555"))
179179 then 450
180180 else if ((threeDrums == "444"))
181181 then 200
182182 else if ((threeDrums == "333"))
183183 then 150
184184 else if ((threeDrums == "222"))
185185 then 110
186186 else if ((threeDrums == "111"))
187187 then 40
188188 else if ((twoDrums == "77"))
189189 then 270
190190 else if ((twoDrums == "66"))
191191 then 130
192192 else if ((twoDrums == "55"))
193193 then 65
194194 else if ((twoDrums == "44"))
195195 then 30
196196 else if ((twoDrums == "33"))
197197 then 20
198198 else if ((twoDrums == "22"))
199199 then 15
200200 else if ((twoDrums == "11"))
201201 then 10
202202 else 0
203203
204204
205205 func AssetNameToBase58 (assetName) = if ((assetName == "WAVES"))
206206 then wavesId
207207 else if ((assetName == "BTC"))
208208 then btcId
209209 else if ((assetName == "ETH"))
210210 then ethId
211211 else if ((assetName == "LTC"))
212212 then ltcId
213213 else if ((assetName == "VST"))
214214 then vstId
215215 else if ((assetName == "WCT"))
216216 then wctId
217217 else throw("Asset name is incorrect")
218218
219219
220220 @Callable(i)
221221 func makeBet () = {
222222 let pmt = extract(i.payment)
223223 let betAmount = (pmt.amount - commission)
224224 let gameId = toBase58String(i.transactionId)
225225 let gameStart = height
226226 let playerPublicKey = toBase58String(i.callerPublicKey)
227227 let pmtAssetName = if (!(isDefined(pmt.assetId)))
228228 then "WAVES"
229229 else if ((pmt.assetId == btcId))
230230 then "BTC"
231231 else if ((pmt.assetId == ethId))
232232 then "ETH"
233233 else if ((pmt.assetId == ltcId))
234234 then "LTC"
235235 else if ((pmt.assetId == wctId))
236236 then "WCT"
237237 else if ((pmt.assetId == vstId))
238238 then "VST"
239239 else throw("AssetId is incorrect")
240240 let setReservedBalance = increaseReservedBalance(betAmount, pmtAssetName)
241241 let pmtAmtCorrect = pmtAmtCheck(pmtAssetName, betAmount)
242242 if (pmtAmtCorrect)
243243 then {
244244 let dataString = ((((((((stateAcc + "_") + playerPublicKey) + "_") + toString(betAmount)) + "_") + pmtAssetName) + "_") + toString(gameStart))
245- WriteSet([DataEntry(gameId, dataString), DataEntry(("Reserved_" + pmtAssetName), setReservedBalance)])
245+ WriteSet([DataEntry((gameId + "_GameId"), dataString), DataEntry((pmtAssetName + "_Reserved"), setReservedBalance)])
246246 }
247247 else throw("assetId is incorrect")
248248 }
249249
250250
251251
252252 @Callable(i)
253253 func playGame (gameId,rsaSign1,rsaSign2,rsaSign3) = {
254254 let dataList = getDataList(gameId)
255255 let gameState = dataList[0]
256256 let playerAddress = addressFromPublicKey(fromBase58String(dataList[1]))
257257 let betAmt = parseIntValue(dataList[2])
258258 let assetName = dataList[3]
259259 let gameStart = parseIntValue(dataList[4])
260260 let assetId58 = AssetNameToBase58(assetName)
261261 let gameTimeCheck = (gameTimeFrame > (height - gameStart))
262262 let stateCorrect = (gameState == stateAcc)
263263 let setReservedBalance = decreaseReservedBalance(betAmt, assetName)
264264 let droppedElementsList = {
265265 let roll1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
266266 let roll2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
267267 let roll3Int = rsaToInt(gameId, rsaSign3, rsaPublicKey3)
268268 let element1 = intToElem(roll1Int)
269269 let element2 = intToElem(roll2Int)
270270 let element3 = intToElem(roll3Int)
271271 [element1, element2, element3]
272272 }
273273 let winAmt = {
274274 let threeDrums = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
275275 let twoDrums = (droppedElementsList[0] + droppedElementsList[1])
276276 let multiplier = defineMultiplier(threeDrums, twoDrums)
277277 ((betAmt * multiplier) / 10)
278278 }
279279 let winPmtAmt = {
280280 let balance = assetBalance(this, assetId58)
281281 if ((winAmt > balance))
282282 then (betAmt * 2)
283283 else winAmt
284284 }
285285 let stringForNewData = ((((((dataList[1] + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4])
286286 let droppedElements = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
287287 if (stateCorrect)
288288 then if (gameTimeCheck)
289289 then if ((winAmt == 0))
290- then WriteSet([DataEntry(gameId, ((((((stateLose + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)])
291- else ScriptResult(WriteSet([DataEntry(gameId, ((((((stateWin + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winPmtAmt, assetId58)]))
292- else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
290+ then WriteSet([DataEntry((gameId + "_GameId"), ((((((stateLose + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry((assetName + "_Reserved"), setReservedBalance)])
291+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((stateWin + "_") + stringForNewData) + "_") + toString(winAmt)) + "_") + droppedElements)), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winPmtAmt, assetId58)]))
292+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), (stateTimeout + stringForNewData)), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
293293 else throw("Game state is incorrect")
294294 }
295295
296296
297297 @Verifier(tx)
298298 func verify () = match tx {
299299 case ttx: TransferTransaction =>
300300 let valueReservedBalance = getInteger(this, "Reserved")
301301 let reservedBalance = match valueReservedBalance {
302302 case a: Int =>
303303 a
304304 case _ =>
305305 0
306306 }
307307 let availableBalance = (wavesBalance(this) - reservedBalance)
308308 let availibleAmount = (availableBalance >= ttx.amount)
309309 let signature = sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
310310 if (availibleAmount)
311311 then signature
312312 else false
313313 case sstx: SetScriptTransaction =>
314314 sigVerify(sstx.bodyBytes, sstx.proofs[0], sstx.senderPublicKey)
315315 case istx: InvokeScriptTransaction =>
316316 sigVerify(istx.bodyBytes, istx.proofs[0], istx.senderPublicKey)
317317 case _ =>
318318 false
319319 }
320320

github/deemru/w8io/873ac7e 
66.11 ms