tx · 6RhvMkHuiRQWbRM2MxGbMC5CCL81SBcyC1oY93tASMP9

3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD:  -0.01500000 Waves

2019.10.05 11:43 [706213] smart account 3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD > SELF 0.00000000 Waves

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

github/deemru/w8io/873ac7e 
39.60 ms