tx · ExkKvV8otSfaArmDb6ucBmRStk3tXqJtksmZtp8pj9fs

3MpwcwacJAfY3Wt5no8Vayek5Y2wLHCoqKa:  -0.01000000 Waves

2021.02.20 23:22 [1406924] smart account 3MpwcwacJAfY3Wt5no8Vayek5Y2wLHCoqKa > SELF 0.00000000 Waves

{ "type": 13, "id": "ExkKvV8otSfaArmDb6ucBmRStk3tXqJtksmZtp8pj9fs", "fee": 1000000, "feeAssetId": null, "timestamp": 1613852566337, "version": 2, "chainId": 84, "sender": "3MpwcwacJAfY3Wt5no8Vayek5Y2wLHCoqKa", "senderPublicKey": "22LwkZvhBgiz8QycnmX7skuLXNvp4gKCEBD4r474vKgp", "proofs": [ "4AQTfqtRaDM9T8UG6dtZbDQvdig1TdXZyyEasqVQBrFXa9GC3MKHNCA6XUcR9pndnwGFnjsH3qaYwBWDMt687ZKu" ], "script": "base64:AAIDAAAAAAAAAA4IARIAEgASBgoECAgICAAAACsAAAAADXJzYVB1YmxpY0tleTEJAAJbAAAAAQIAAAGITUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFsNm91VVp5VXJ5VUcyTGxGMnVZUVhkYi9FNlVobFpBYnFsT0pVQ1hrZTRYM29zYXlhNjNiTlFlVU5QSzdtLzlRTjloRGl1bTRLa2lvOUYycitSOTJ2TWdXYWx1dll2aUZHSnc4VjhYTDh5aGNwa0tnWUpVUTB2ME1DYnBJOWM3aFNLUk54dmFJOWppa1lHeUdOU3NGZElUd2NYM2EweEptRGZ3Q3NzUDc2bUlBQzZ2WEROdVNjZXkrdjNualErNm8vN0FvdjhZRmlzWkxLbXhnWm52dVhESW45enBOaGlndGxJT1RLZVkxSTROWlE3ektEbEp6U2J6QlJTV1dhTlpBV0R2bHdGci9aUU9NTlEyNHBoS1ZtbmVQVEVWRkFTc3VtVWlJQkxYYlR3NzhiL1NZM2Jnejc5ZGh3OEExUHU1Tlc0WDloaWNybU5yMUV5WDM5VXNURFFJREFRQUIAAAAADXJzYVB1YmxpY0tleTIJAAJbAAAAAQIAAAGITUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFsNm91VVp5VXJ5VUcyTGxGMnVZUVhkYi9FNlVobFpBYnFsT0pVQ1hrZTRYM29zYXlhNjNiTlFlVU5QSzdtLzlRTjloRGl1bTRLa2lvOUYycitSOTJ2TWdXYWx1dll2aUZHSnc4VjhYTDh5aGNwa0tnWUpVUTB2ME1DYnBJOWM3aFNLUk54dmFJOWppa1lHeUdOU3NGZElUd2NYM2EweEptRGZ3Q3NzUDc2bUlBQzZ2WEROdVNjZXkrdjNualErNm8vN0FvdjhZRmlzWkxLbXhnWm52dVhESW45enBOaGlndGxJT1RLZVkxSTROWlE3ektEbEp6U2J6QlJTV1dhTlpBV0R2bHdGci9aUU9NTlEyNHBoS1ZtbmVQVEVWRkFTc3VtVWlJQkxYYlR3NzhiL1NZM2Jnejc5ZGh3OEExUHU1Tlc0WDloaWNybU5yMUV5WDM5VXNURFFJREFRQUIAAAAADXJzYVB1YmxpY0tleTMJAAJbAAAAAQIAAAGITUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFsNm91VVp5VXJ5VUcyTGxGMnVZUVhkYi9FNlVobFpBYnFsT0pVQ1hrZTRYM29zYXlhNjNiTlFlVU5QSzdtLzlRTjloRGl1bTRLa2lvOUYycitSOTJ2TWdXYWx1dll2aUZHSnc4VjhYTDh5aGNwa0tnWUpVUTB2ME1DYnBJOWM3aFNLUk54dmFJOWppa1lHeUdOU3NGZElUd2NYM2EweEptRGZ3Q3NzUDc2bUlBQzZ2WEROdVNjZXkrdjNualErNm8vN0FvdjhZRmlzWkxLbXhnWm52dVhESW45enBOaGlndGxJT1RLZVkxSTROWlE3ektEbEp6U2J6QlJTV1dhTlpBV0R2bHdGci9aUU9NTlEyNHBoS1ZtbmVQVEVWRkFTc3VtVWlJQkxYYlR3NzhiL1NZM2Jnejc5ZGh3OEExUHU1Tlc0WDloaWNybU5yMUV5WDM5VXNURFFJREFRQUIAAAAADWdhbWVQdWJsaWNLZXkJAAJZAAAAAQIAAAAsMjJMd2tadmhCZ2l6OFF5Y25tWDdza3VMWE52cDRnS0NFQkQ0cjQ3NHZLZ3AAAAAAC2dhbWVBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA1nYW1lUHVibGljS2V5AAAAAA5hZG1pblB1YmxpY0tleQEAAAAgo48gw3sh+zm7Ti9Qukc32bYx6mSAxesLg4xaN7sn3DIAAAAADGFkbWluQWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAOYWRtaW5QdWJsaWNLZXkAAAAABWRydW0xCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATQJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATcJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABNgkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE0BQAAAANuaWwAAAAABWRydW0yCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNgkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATQJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATQJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAE3CQAETAAAAAICAAAAATUJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAEzBQAAAANuaWwAAAAABWRydW0zCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABNwkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE2CQAETAAAAAICAAAAATQJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNgkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE1CQAE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RGF0YUxpc3QAAAAAAAAAAAAEAAAACnBsYXllckFkZHIJAAGRAAAAAgUAAAALYmV0RGF0YUxpc3QAAAAAAAAAAAEEAAAACWJldEFtb3VudAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAC2JldERhdGFMaXN0AAAAAAAAAAACBAAAAAhkcnVtMUludAkBAAAACHJzYVRvSW50AAAAAwUAAAAHc2lnbk1zZwUAAAAIcnNhU2lnbjEFAAAADXJzYVB1YmxpY0tleTEEAAAACGRydW0ySW50CQEAAAAIcnNhVG9JbnQAAAADBQAAAAdzaWduTXNnBQAAAAhyc2FTaWduMgUAAAANcnNhUHVibGljS2V5MgQAAAAIZHJ1bTNJbnQJAQAAAAhyc2FUb0ludAAAAAMFAAAAB3NpZ25Nc2cFAAAACHJzYVNpZ24zBQAAAA1yc2FQdWJsaWNLZXkzBAAAAAt0aHJlZUluQVJvdwkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAFZHJ1bTEFAAAACGRydW0xSW50CQABkQAAAAIFAAAABWRydW0yBQAAAAhkcnVtMkludAkAAZEAAAACBQAAAAVkcnVtMwUAAAAIZHJ1bTNJbnQEAAAAD2VsZW1lbnRUb1N0cmluZwkAASwAAAACCQABLAAAAAIJAQAAAA9kcnVtSW50VG9TdHJpbmcAAAABBQAAAAhkcnVtMUludAkBAAAAD2RydW1JbnRUb1N0cmluZwAAAAEFAAAACGRydW0ySW50CQEAAAAPZHJ1bUludFRvU3RyaW5nAAAAAQUAAAAIZHJ1bTNJbnQEAAAACWFtb3VudFdvbgkAAGkAAAACCQAAaAAAAAIJAQAAABBkZWZpbmVNdWx0aXBsaWVyAAAAAQUAAAALdGhyZWVJbkFSb3cJAQAAAAx3YXZlc0JhbGFuY2UAAAABBQAAAAR0aGlzAAAAAAAAAABkBAAAAAckbWF0Y2gwCQEAAAANZ2FtZUdldFN0YXR1cwAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAFc3RhdGUFAAAAByRtYXRjaDADCQEAAAACIT0AAAACBQAAAAVzdGF0ZQIAAAAGQUNUSVZFCQAAAgAAAAECAAAAFFNMT1RfR0FNRV9OT1RfQUNUSVZF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", "height": 1406924, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: H1rDGSZjqCcAdHsCYEVQeCrExBrb9PT3DTXnnPSDxHd Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let rsaPublicKey1 = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6ouUZyUryUG2LlF2uYQXdb/E6UhlZAbqlOJUCXke4X3osaya63bNQeUNPK7m/9QN9hDium4Kkio9F2r+R92vMgWaluvYviFGJw8V8XL8yhcpkKgYJUQ0v0MCbpI9c7hSKRNxvaI9jikYGyGNSsFdITwcX3a0xJmDfwCssP76mIAC6vXDNuScey+v3njQ+6o/7Aov8YFisZLKmxgZnvuXDIn9zpNhigtlIOTKeY1I4NZQ7zKDlJzSbzBRSWWaNZAWDvlwFr/ZQOMNQ24phKVmnePTEVFASsumUiIBLXbTw78b/SY3bgz79dhw8A1Pu5NW4X9hicrmNr1EyX39UsTDQIDAQAB")
5+
6+let rsaPublicKey2 = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6ouUZyUryUG2LlF2uYQXdb/E6UhlZAbqlOJUCXke4X3osaya63bNQeUNPK7m/9QN9hDium4Kkio9F2r+R92vMgWaluvYviFGJw8V8XL8yhcpkKgYJUQ0v0MCbpI9c7hSKRNxvaI9jikYGyGNSsFdITwcX3a0xJmDfwCssP76mIAC6vXDNuScey+v3njQ+6o/7Aov8YFisZLKmxgZnvuXDIn9zpNhigtlIOTKeY1I4NZQ7zKDlJzSbzBRSWWaNZAWDvlwFr/ZQOMNQ24phKVmnePTEVFASsumUiIBLXbTw78b/SY3bgz79dhw8A1Pu5NW4X9hicrmNr1EyX39UsTDQIDAQAB")
7+
8+let rsaPublicKey3 = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6ouUZyUryUG2LlF2uYQXdb/E6UhlZAbqlOJUCXke4X3osaya63bNQeUNPK7m/9QN9hDium4Kkio9F2r+R92vMgWaluvYviFGJw8V8XL8yhcpkKgYJUQ0v0MCbpI9c7hSKRNxvaI9jikYGyGNSsFdITwcX3a0xJmDfwCssP76mIAC6vXDNuScey+v3njQ+6o/7Aov8YFisZLKmxgZnvuXDIn9zpNhigtlIOTKeY1I4NZQ7zKDlJzSbzBRSWWaNZAWDvlwFr/ZQOMNQ24phKVmnePTEVFASsumUiIBLXbTw78b/SY3bgz79dhw8A1Pu5NW4X9hicrmNr1EyX39UsTDQIDAQAB")
9+
10+let gamePublicKey = fromBase58String("22LwkZvhBgiz8QycnmX7skuLXNvp4gKCEBD4r474vKgp")
11+
12+let gameAddress = addressFromPublicKey(gamePublicKey)
13+
14+let adminPublicKey = base58'C1U3CKj36gYHoZC119pyKKqgkUK1xigC3yQg5XrLSZsf'
15+
16+let adminAddress = addressFromPublicKey(adminPublicKey)
17+
18+let drum1 = ["6", "1", "5", "4", "3", "2", "1", "3", "5", "2", "4", "1", "7", "3", "2", "3", "1", "4", "1", "3", "5", "2", "1", "4", "2", "6", "5", "2", "1", "4"]
19+
20+let drum2 = ["1", "3", "4", "2", "3", "5", "1", "6", "4", "2", "1", "1", "4", "2", "1", "6", "3", "4", "1", "2", "5", "4", "1", "5", "3", "2", "7", "5", "1", "3"]
21+
22+let drum3 = ["3", "2", "5", "2", "7", "4", "1", "3", "6", "4", "2", "3", "1", "6", "4", "2", "1", "5", "2", "5", "1", "3", "7", "1", "2", "6", "4", "1", "3", "1"]
23+
24+let stateAcc = "ACCEPTED"
25+
26+let betPlaced = "PENDING"
27+
28+let betWin = "WON"
29+
30+let betLose = "LOST"
31+
32+let gameTimeFrame = 3
33+
34+let wavesId = unit
35+
36+let wavesMinAmt = 20000000
37+
38+let wavesMaxAmt = (wavesMinAmt * 10)
39+
40+let gameLabelCounter = "GAMESCOUNTER"
41+
42+func gameGetCounter () = getInteger(this, gameLabelCounter)
43+
44+
45+let gameLabel = (toString(gameAddress) + "_GAME_ADDRESS")
46+
47+func gameGet () = getString(this, gameLabel)
48+
49+
50+let gameLabelStatus = (("G_" + toString(gameAddress)) + "_STATUS")
51+
52+func gameGetStatus () = getString(this, gameLabelStatus)
53+
54+
55+let gameLabelRow = (("R_" + toString(gameAddress)) + "_ROW_WIN/LOSE")
56+
57+func gameGetRow () = getString(this, gameLabelRow)
58+
59+
60+func gameLabelBetStatus (playerAddr) = (playerAddr + "_BET_STATUS")
61+
62+
63+func gameGetBetStatus (playerAddr) = getString(this, gameLabelBetStatus(playerAddr))
64+
65+
66+func gameLabelBet (playerAddr) = (playerAddr + "_BETDATA")
67+
68+
69+func gameGetBet (playerAddr) = getString(this, gameLabelBet(playerAddr))
70+
71+
72+func addressLabelAmount (addr) = (("B_" + addr) + "_AMOUNT")
73+
74+
75+func addressGetAmount (addr) = getInteger(this, addressLabelAmount(addr))
76+
77+
78+func addressLabelWins (addr) = (("B_" + addr) + "_WINS")
79+
80+
81+func addressGetWins (addr) = getInteger(this, addressLabelWins(addr))
82+
83+
84+func addressLabelLoses (addr) = (("B_" + addr) + "_LOSES")
85+
86+
87+func addressGetLoses (addr) = getInteger(this, addressLabelLoses(addr))
88+
89+
90+func gameGetData () = {
91+ let gameData = gameGet()
92+ let a = match gameData {
93+ case a: String =>
94+ a
95+ case _ =>
96+ throw("GAME_DATA_ERROR")
97+ }
98+ split(a, "_")
99+ }
100+
101+
102+func gameGetRowData () = {
103+ let gameRowData = gameGetRow()
104+ let a = match gameRowData {
105+ case a: String =>
106+ a
107+ case _ =>
108+ throw("GAME_DATA_ERROR")
109+ }
110+ split(a, "_")
111+ }
112+
113+
114+func gameGetBetData (playerAddr) = {
115+ let gameBetData = gameGetBet(playerAddr)
116+ let a = match gameBetData {
117+ case a: String =>
118+ a
119+ case _ =>
120+ throw("BET_DATA_ERROR")
121+ }
122+ split(a, "_")
123+ }
124+
125+
126+func pmtAmtCheck (betAmount) = if (if ((betAmount >= wavesMinAmt))
127+ then (wavesMaxAmt >= betAmount)
128+ else false)
129+ then true
130+ else throw("Bet amount is not in range")
131+
132+
133+func rsaToInt (msg,rsaSign,rsaPublicKey) = {
134+ let rsaCheck = rsaVerify(SHA256, toBytes(msg), fromBase64String(rsaSign), rsaPublicKey)
135+ if (rsaCheck)
136+ then (toInt(sha256(fromBase64String(rsaSign))) % 29)
137+ else throw("Invalid RSA Signature")
138+ }
139+
140+
141+func drumIntToString (drumInt) = if ((10 > drumInt))
142+ then ("0" + toString(drumInt))
143+ else toString(drumInt)
144+
145+
146+func defineMultiplier (threeInARow) = if ((threeInARow == "777"))
147+ then 100
148+ else if ((threeInARow == "666"))
149+ then 20
150+ else if ((threeInARow == "555"))
151+ then 14
152+ else if ((threeInARow == "444"))
153+ then 10
154+ else if ((threeInARow == "333"))
155+ then 7
156+ else if ((threeInARow == "222"))
157+ then 5
158+ else if ((threeInARow == "111"))
159+ then 2
160+ else 0
161+
162+
163+@Callable(i)
164+func initSlotGame () = if ((i.callerPublicKey != adminPublicKey))
165+ then throw("initGame_FORBBIDEN")
166+ else match gameGetCounter() {
167+ case GAMESCOUNTER: Int =>
168+ throw("INIT_ALREADY_DONE")
169+ case _ =>
170+ WriteSet([DataEntry(gameLabelCounter, 0), DataEntry(gameLabelStatus, "ACTIVE"), DataEntry(gameLabel, ((stateAcc + "_WAVES_") + toString(height))), DataEntry(gameLabelRow, ("0_" + toString(gameAddress)))])
171+ }
172+
173+
174+
175+@Callable(i)
176+func placeBet () = {
177+ let playerAddress = extract(i.caller)
178+ let pmt = extract(i.payment)
179+ let betAmount = pmt.amount
180+ let pmtAmtCorrect = pmtAmtCheck(betAmount)
181+ match gameGetStatus() {
182+ case state: String =>
183+ if ((state != "ACTIVE"))
184+ then throw("SLOT_GAME_NOT_INITIALIZED")
185+ else match gameGetCounter() {
186+ case GAMESCOUNTER: Int =>
187+ if (!(pmtAmtCorrect))
188+ then throw("PLACEBET:_WRONG_BET_AMOUNT")
189+ else {
190+ let newGameCounter = (GAMESCOUNTER + 1)
191+ match addressGetWins(toString(playerAddress)) {
192+ case WINS: Int =>
193+ if ((WINS >= 0))
194+ then match gameGetBetStatus(toString(playerAddress)) {
195+ case betStatus: String =>
196+ if ((betStatus != "PLAYED"))
197+ then throw("COMPLETE_ PREVIOUS_GAME")
198+ else WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabel, ((stateAcc + "_WAVES_") + toString(height))), DataEntry(gameLabelBetStatus(toString(playerAddress)), "BET"), DataEntry(addressLabelAmount(toString(playerAddress)), betAmount), DataEntry(gameLabelBet(toString(playerAddress)), (((((((betPlaced + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_0_0_0_0_0"))])
199+ case _ =>
200+ WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabel, ((stateAcc + "_WAVES_") + toString(height))), DataEntry(gameLabelBetStatus(toString(playerAddress)), "BET"), DataEntry(addressLabelAmount(toString(playerAddress)), betAmount), DataEntry(gameLabelBet(toString(playerAddress)), (((((((betPlaced + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_0_0_0_0_0"))])
201+ }
202+ else throw("BAD_WIN_INIT")
203+ case _ =>
204+ match gameGetBetStatus(toString(playerAddress)) {
205+ case betStatus: String =>
206+ if ((betStatus != "PLAYED"))
207+ then throw("COMPLETE_ PREVIOUS_GAME")
208+ else WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabel, ((stateAcc + "_WAVES_") + toString(height))), DataEntry(gameLabelBetStatus(toString(playerAddress)), "BET"), DataEntry(addressLabelAmount(toString(playerAddress)), betAmount), DataEntry(gameLabelBet(toString(playerAddress)), (((((((betPlaced + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_0_0_0_0_0")), DataEntry(addressLabelWins(toString(playerAddress)), 0), DataEntry(addressLabelLoses(toString(playerAddress)), 0)])
209+ case _ =>
210+ WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabel, ((stateAcc + "_WAVES_") + toString(height))), DataEntry(gameLabelBetStatus(toString(playerAddress)), "BET"), DataEntry(addressLabelAmount(toString(playerAddress)), betAmount), DataEntry(gameLabelBet(toString(playerAddress)), (((((((betPlaced + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_0_0_0_0_0")), DataEntry(addressLabelWins(toString(playerAddress)), 0), DataEntry(addressLabelLoses(toString(playerAddress)), 0)])
211+ }
212+ }
213+ }
214+ case _ =>
215+ throw("INIT_NEEDED_FOR_COUNT")
216+ }
217+ case _ =>
218+ throw("INIT_ERROR")
219+ }
220+ }
221+
222+
223+
224+@Callable(i)
225+func playGame (signMsg,rsaSign1,rsaSign2,rsaSign3) = {
226+ let rowDatatList = gameGetRowData()
227+ let row = parseIntValue(rowDatatList[0])
228+ let rowPlayer = rowDatatList[1]
229+ let betDataList = gameGetBetData(toString(i.caller))
230+ let betStatus = betDataList[0]
231+ let playerAddr = betDataList[1]
232+ let betAmount = parseIntValue(betDataList[2])
233+ let drum1Int = rsaToInt(signMsg, rsaSign1, rsaPublicKey1)
234+ let drum2Int = rsaToInt(signMsg, rsaSign2, rsaPublicKey2)
235+ let drum3Int = rsaToInt(signMsg, rsaSign3, rsaPublicKey3)
236+ let threeInARow = ((drum1[drum1Int] + drum2[drum2Int]) + drum3[drum3Int])
237+ let elementToString = ((drumIntToString(drum1Int) + drumIntToString(drum2Int)) + drumIntToString(drum3Int))
238+ let amountWon = ((defineMultiplier(threeInARow) * wavesBalance(this)) / 100)
239+ match gameGetStatus() {
240+ case state: String =>
241+ if ((state != "ACTIVE"))
242+ then throw("SLOT_GAME_NOT_ACTIVE")
243+ else match gameGetBetStatus(playerAddr) {
244+ case gameBetStatus: String =>
245+ if ((gameBetStatus != "BET"))
246+ then throw("PLACE_A_BET_BEFORE_YOU_CAN_PLAY")
247+ else if ((i.caller != addressFromStringValue(playerAddr)))
248+ then throw("NOT_CURRENT_PLAYER")
249+ else if ((amountWon != 0))
250+ then match addressGetWins(playerAddr) {
251+ case WINS: Int =>
252+ let newWin = (WINS + 1)
253+ if ((threeInARow == "444"))
254+ then ScriptResult(WriteSet([DataEntry(gameLabelBet(toString(i.caller)), ((((((((((((((("TRIPLE_BAR_" + playerAddr) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_") + toString(newWin)) + "_") + betDataList[6]) + "_") + betDataList[7]) + "_") + threeInARow) + "_") + elementToString)), DataEntry(addressLabelWins(toString(i.caller)), newWin), DataEntry(gameLabelRow, ((toString(0) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
255+ else if ((WINS >= 200))
256+ then ScriptResult(WriteSet([DataEntry(gameLabelBet(toString(i.caller)), (((((((((((((((betWin + playerAddr) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_") + toString(0)) + "_") + betDataList[6]) + "_") + betDataList[7]) + "_") + threeInARow) + "_") + elementToString)), DataEntry(addressLabelWins(toString(i.caller)), 0), DataEntry(gameLabelRow, ((toString(0) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
257+ else if (if ((playerAddr == rowPlayer))
258+ then (row == 5)
259+ else false)
260+ then ScriptResult(WriteSet([DataEntry(gameLabelBet(toString(i.caller)), (((((((((((((((betWin + playerAddr) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_") + toString(newWin)) + "_") + toString(0)) + "_") + betDataList[7]) + "_") + threeInARow) + "_") + elementToString)), DataEntry(addressLabelWins(toString(i.caller)), newWin), DataEntry(gameLabelRow, ((toString(0) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
261+ else ScriptResult(WriteSet([DataEntry(gameLabelBet(playerAddr), ((((((((((((((((((betWin + "_") + playerAddr) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_") + toString(newWin)) + "_") + toString(newWin)) + "_") + betDataList[7]) + "_") + threeInARow) + "_") + elementToString) + "_") + toString(amountWon))), DataEntry(addressLabelWins(toString(i.caller)), newWin), DataEntry(gameLabelRow, ((toString(newWin) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
262+ case _ =>
263+ throw("INIT_WIN:addressGetWins")
264+ }
265+ else match addressGetLoses(playerAddr) {
266+ case LOSES: Int =>
267+ let newLose = (LOSES + 1)
268+ if ((LOSES >= 5))
269+ then WriteSet([DataEntry(gameLabelBet(toString(i.caller)), ((((((((((((((betLose + "_") + playerAddr) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_") + betDataList[5]) + "_") + betDataList[6]) + "_0_") + threeInARow) + "_") + elementToString)), DataEntry(addressLabelLoses(toString(i.caller)), 0), DataEntry(gameLabelRow, ((toString(0) + "_") + playerAddr))])
270+ else WriteSet([DataEntry(gameLabelBet(toString(i.caller)), (((((((((((((((betLose + playerAddr) + "_") + toString(betAmount)) + "_WAVES_") + toString(height)) + "_") + betDataList[5]) + "_") + betDataList[6]) + "_") + toString(newLose)) + "_") + threeInARow) + "_") + elementToString)), DataEntry(addressLabelLoses(toString(i.caller)), newLose), DataEntry(gameLabelRow, ((toString(newLose) + "_") + playerAddr))])
271+ case _ =>
272+ throw("INIT_LOSES")
273+ }
274+ case _ =>
275+ throw("BET_PLACED")
276+ }
277+ case _ =>
278+ throw("INIT_ERROR")
279+ }
280+ }
281+
282+
283+@Verifier(tx)
284+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], gamePublicKey))
285+ then match tx {
286+ case tx: SetScriptTransaction =>
287+ true
288+ case _ =>
289+ false
290+ }
291+ else false
292+

github/deemru/w8io/873ac7e 
71.06 ms