tx · F6rVLAKT1rMUGzZLKjbsMob9RaTxFt28CDLEbgG3FH8

3MuB9xw36vvkD92rRgHqHaLGrk8HcdRHhvL:  -0.01000000 Waves

2021.02.20 00:17 [1405552] smart account 3MuB9xw36vvkD92rRgHqHaLGrk8HcdRHhvL > SELF 0.00000000 Waves

{ "type": 13, "id": "F6rVLAKT1rMUGzZLKjbsMob9RaTxFt28CDLEbgG3FH8", "fee": 1000000, "feeAssetId": null, "timestamp": 1613769496697, "version": 2, "chainId": 84, "sender": "3MuB9xw36vvkD92rRgHqHaLGrk8HcdRHhvL", "senderPublicKey": "96EKKKAJdmFAkmgukd7nzc8a81viZL4Ff5c5eb2uPkbi", "proofs": [ "2ZxudXYXn3m6ymuQtLChDhZ5BjGcQYyYFSyPW6wV4C7W4XN4P3EumjBqRpFXtpNeCRVQcckUWwVxqsmPLbfxBNQX" ], "script": "base64:AAIDAAAAAAAAACMIARIAEgQKAggBEgASBAoCAQgSAwoBCBIDCgEBEgMKAQESAAAAADgAAAAAD3NlcnZlclB1YmxpY0tleQEAAAAgeDR0po570A59jvh0vtWAISrsVl6mIsuP+qc7LsiHBDkAAAAAD3dhbGxldFB1YmxpY0tleQEAAAAgMkUfCdXox9cabltNTDDHHdlxbBbyVrBWNHWcKELHT2IAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAYhNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQWw2b3VVWnlVcnlVRzJMbEYydVlRWGRiL0U2VWhsWkFicWxPSlVDWGtlNFgzb3NheWE2M2JOUWVVTlBLN20vOVFOOWhEaXVtNEtraW85RjJyK1I5MnZNZ1dhbHV2WXZpRkdKdzhWOFhMOHloY3BrS2dZSlVRMHYwTUNicEk5YzdoU0tSTnh2YUk5amlrWUd5R05Tc0ZkSVR3Y1gzYTB4Sm1EZndDc3NQNzZtSUFDNnZYRE51U2NleSt2M25qUSs2by83QW92OFlGaXNaTEtteGdabnZ1WERJbjl6cE5oaWd0bElPVEtlWTFJNE5aUTd6S0RsSnpTYnpCUlNXV2FOWkFXRHZsd0ZyL1pRT01OUTI0cGhLVm1uZVBURVZGQVNzdW1VaUlCTFhiVHc3OGIvU1kzYmd6NzlkaHc4QTFQdTVOVzRYOWhpY3JtTnIxRXlYMzlVc1REUUlEQVFBQgAAAAAIT05FV0FWRVMAAAAAAAX14QAAAAAADnBlcmlvZEdhbWVQbGF5AAAAAAAAAAACAAAAAAV3aGVlbAkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAAjI0CQAETAAAAAICAAAAAjE2CQAETAAAAAICAAAAAjMzCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAACMjAJAARMAAAAAgIAAAACMTQJAARMAAAAAgIAAAACMzEJAARMAAAAAgIAAAABOQkABEwAAAACAgAAAAIyMgkABEwAAAACAgAAAAIxOAkABEwAAAACAgAAAAIyOQkABEwAAAACAgAAAAE3CQAETAAAAAICAAAAAjI4CQAETAAAAAICAAAAAjEyCQAETAAAAAICAAAAAjM1CQAETAAAAAICAAAAATMJAARMAAAA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LAAAAAIJAAEsAAAAAgIAAAACR18JAAGkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAgAAAAdfU1VNU0hBAQAAAA9nYW1lTGFiZWxDbWJNYXgAAAACAAAADEdBTUVTQ09VTlRFUgAAAANDTUIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAkdfCQABpAAAAAEFAAAADEdBTUVTQ09VTlRFUgIAAAACX0MFAAAAA0NNQgEAAAANZ2FtZUdldFN0YXR1cwAAAAEAAAAMR0FNRVNDT1VOVEVSCQAEHQAAAAIFAAAABHRoaXMJAQAAAA9nYW1lTGFiZWxTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVIBAAAADWdhbWVHZXROdW1iZXIAAAABAAAADEdBTUVTQ09VTlRFUgkABBoAAAACBQAAAAR0aGlzCQEAAAAPZ2FtZUxhYmVsTnVtYmVyAAAAAQUAAAAMR0FNRVNDT1VOVEVSAQAAAApnYW1lR2V0TWF4AAAAAQAAAAxHQU1FU0NPVU5URVIJAAQaAAAAAgUAAAAEdGhpcwkBAAAADGdhbWVMYWJlbE1heAAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAALZ2FtZUdldEJldHMAAAABAAAADEdBTUVTQ09VTlRFUgkABBoAAAACBQAAAAR0aGlzCQEAAAANZ2FtZUxhYmVsQmV0cwAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAANZ2FtZUdldFBhc3NlZAAAAAEAAAAMR0FNRVNDT1VOVEVSCQAEGgAAAAIFAAAABHRoaXMJAQAAAA9nYW1lTGFiZWxQYXNzZWQAAAABBQAAAAxHQU1FU0NPVU5URVIBAAAADWdhbWVHZXRIZWlnaHQAAAABAAAADEdBTUVTQ09VTlRFUgkABBoAAAACBQAAAAR0aGlzCQEAAAAPZ2FtZUxhYmVsSGVpZ2h0AAAAAQUAAAAMR0FNRVNDT1VOVEVSAQAAAA1nYW1lR2V0U3VtU2hhAAAAAQAAAAxHQU1FU0NPVU5URVIJAAQdAAAAAgUAAAAEdGhpcwkBAAAAD2dhbWVMYWJlbFN1bVNoYQAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAANZ2FtZUdldENtYk1heAAAAAIAAAAMR0FNRVNDT1VOVEVSAAAAA0NNQgkABBoAAAACBQAA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Z2FtZXNHZXRUb3RhbEFtb3VudEJldAAAAAAFAAAABmFtb3VudAUAAAADbmlsBAAAAA9UT1RBTEFERFJFU1NCRVQJAABkAAAAAgkBAAAABXZhbHVlAAAAAQkBAAAAF2dhbWVzR2V0VG90YWxBZGRyZXNzQmV0AAAAAAAAAAAAAAAAAQQAAAAJZGF0YUZpbmFsAwkAAAAAAAACBQAAAA1BRERSRVNTQU1PVU5UAAAAAAAAAAAACQAETAAAAAIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABNwb2ludGVyQWRkcmVzc0xhYmVsAAAAAQUAAAAPVE9UQUxBRERSRVNTQkVUBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABlnYW1lc0xhYmVsVG90YWxBZGRyZXNzQmV0BQAAAA9UT1RBTEFERFJFU1NCRVQFAAAAA25pbAUAAAAEZGF0YQUAAAAEZGF0YQkBAAAACFdyaXRlU2V0AAAAAQUAAAAEZGF0YQkAAAIAAAABAgAAABBHQU1FX05PVF9GT1VORF8zCQAAAgAAAAECAAAAEEdBTUVfTk9UX0ZPVU5EXzIJAAACAAAAAQIAAAAQR0FNRV9OT1RfRk9VTkRfMQkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAAAhzaG93R2FtZQAAAAEAAAAHcnNhU2lnbgMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAASc2hvd0dhbWVfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDAEAAAAByRtYXRjaDEJAQAAAA1nYW1lR2V0U3VtU2hhAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAAAZTdHJpbmcEAAAABlNVTVNIQQUAAAAHJG1hdGNoMQQAAAALcnNhU2lnVmFsaWQJAAH4AAAABAUAAAAGU0hBMjU2CQACWQAAAAEFAAAABlNVTVNIQQkAAlkAAAABBQAA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bWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAADEdBTUVTQ09VTlRFUgAAAAAAAAAAAAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA9zZXJ2ZXJQdWJsaWNLZXkFAAAABmFtb3VudAUAAAAEdW5pdAUAAAADbmlsBAAAAApDVVJSU1RBVFVTCQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFN0YXR1cwAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAACkNVUlJTVEFUVVMCAAAABFNIT1cJAAACAAAAAQIAAAAXQ1VSUl9TVEFUVVNfSVNfTk9UX1NIT1cEAAAABEJFVFMJAQAAAAV2YWx1ZQAAAAEJAQAAAAtnYW1lR2V0QmV0cwAAAAEFAAAADEdBTUVTQ09VTlRFUgQAAAAGUEFTU0VECQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFBhc3NlZAAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAABEJFVFMFAAAABlBBU1NFRAkAAAIAAAABAgAAAA9XQUlUX0FMTF9QQVNTRUQJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAPd2FsbGV0UHVibGljS2V5BQAAAAZhbW91bnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAAA9iZXRzRmVlVG9TZXJ2ZXIAAAAAAwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABliZXRzRmVlVG9TZXJ2ZXJfRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAADEdBTUVTQ09VTlRFUgAAAAAAAAAAAAkAAAIAAAABAgAAAAtOT19CRVRTX0ZFRQQAAAAKQ1VSUlNUQVRVUwkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAApDVVJSU1RBVFVTAgAAAARTSE9XCQAAAgAAAAECAAAAF0NVUlJfU1RBVFVTX0lTX05PVF9TSE9XBAAAAARCRVRTCQEAAAAFdmFsdWUAAAABCQEAAAALZ2FtZUdldEJldHMAAAABBQAAAAxHQU1FU0NPVU5URVIEAAAABlBBU1NFRAkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRQYXNzZWQAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAARCRVRTBQAAAAZQQVNTRUQJAAACAAAAAQIAAAAPV0FJVF9BTExfUEFTU0VEBAAAAAtCRVRTQ09VTlRFUgkBAAAABXZhbHVlAAAAAQkBAAAAE2dhbWVzR2V0QmV0c0NvdW50ZXIAAAAABAAAAAlCRVRTTU9WRUQJAQAAAAV2YWx1ZQAAAAEJAQAAABRnYW1lc0dldEJldHNGZWVNb3ZlZAAAAAAJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABZnYW1lc0xhYmVsQmV0c0ZlZU1vdmVkBQAAAAtCRVRTQ09VTlRFUgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAD3NlcnZlclB1YmxpY0tleQkAAGUAAAACBQAAAAtCRVRTQ09VTlRFUgUAAAAJQkVUU01PVkVEBQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAALSU5JVF9ORUVERUQAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkHbJLy6A==", "height": 1405552, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 8qHfaa9QUt9vSs6DXGcWtbeTazRYfjtLUhpefJDdbHjT Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let serverPublicKey = base58'96EKKKAJdmFAkmgukd7nzc8a81viZL4Ff5c5eb2uPkbi'
5+
6+let walletPublicKey = base58'4PEWw3mZQrBc1au7QeTFtyDyHq1Kec71TYNDK6JQogiV'
7+
8+let RSAPUBLIC = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6ouUZyUryUG2LlF2uYQXdb/E6UhlZAbqlOJUCXke4X3osaya63bNQeUNPK7m/9QN9hDium4Kkio9F2r+R92vMgWaluvYviFGJw8V8XL8yhcpkKgYJUQ0v0MCbpI9c7hSKRNxvaI9jikYGyGNSsFdITwcX3a0xJmDfwCssP76mIAC6vXDNuScey+v3njQ+6o/7Aov8YFisZLKmxgZnvuXDIn9zpNhigtlIOTKeY1I4NZQ7zKDlJzSbzBRSWWaNZAWDvlwFr/ZQOMNQ24phKVmnePTEVFASsumUiIBLXbTw78b/SY3bgz79dhw8A1Pu5NW4X9hicrmNr1EyX39UsTDQIDAQAB")
9+
10+let ONEWAVES = 100000000
11+
12+let periodGamePlay = 2
13+
14+let wheel = ["5", "24", "16", "33", "1", "20", "14", "31", "9", "22", "18", "29", "7", "28", "12", "35", "3", "26", "0", "32", "15", "19", "4", "21", "2", "25", "17", "34", "6", "27", "13", "36", "11", "30", "8", "23", "10"]
15+
16+let gamesLabelCounter = "X_GAMESCOUNTER"
17+
18+let gamesLabelBetsCounter = "X_BETSCOUNTER"
19+
20+let gamesLabelBetsFeeMoved = "X_BETSFEEMOVED"
21+
22+let gamesLabelTotalAmountWin = "X_TOTALAMOUNTWIN"
23+
24+let gamesLabelTotalAmountBet = "X_TOTALAMOUNTBET"
25+
26+let gamesLabelTotalAddressBet = "X_TOTALADDRESSBET"
27+
28+func gamesGetCounter () = getInteger(this, gamesLabelCounter)
29+
30+
31+func gamesGetBetsCounter () = getInteger(this, gamesLabelBetsCounter)
32+
33+
34+func gamesGetBetsFeeMoved () = getInteger(this, gamesLabelBetsFeeMoved)
35+
36+
37+func gamesGetTotalAmountWin () = getInteger(this, gamesLabelTotalAmountWin)
38+
39+
40+func gamesGetTotalAmountBet () = getInteger(this, gamesLabelTotalAmountBet)
41+
42+
43+func gamesGetTotalAddressBet () = getInteger(this, gamesLabelTotalAddressBet)
44+
45+
46+func numberLabelCount (number) = ("N_" + number)
47+
48+
49+func numberGetCount (number) = getInteger(this, numberLabelCount(number))
50+
51+
52+func gameLabelStatus (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_STATUS")
53+
54+
55+func gameLabelNumber (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_NUMBER")
56+
57+
58+func gameLabelMax (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_MAX")
59+
60+
61+func gameLabelBets (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_BETS")
62+
63+
64+func gameLabelPassed (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_PASSED")
65+
66+
67+func gameLabelHeight (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_HEIGHT")
68+
69+
70+func gameLabelSumSha (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_SUMSHA")
71+
72+
73+func gameLabelCmbMax (GAMESCOUNTER,CMB) = ((("G_" + toString(GAMESCOUNTER)) + "_C") + CMB)
74+
75+
76+func gameGetStatus (GAMESCOUNTER) = getString(this, gameLabelStatus(GAMESCOUNTER))
77+
78+
79+func gameGetNumber (GAMESCOUNTER) = getInteger(this, gameLabelNumber(GAMESCOUNTER))
80+
81+
82+func gameGetMax (GAMESCOUNTER) = getInteger(this, gameLabelMax(GAMESCOUNTER))
83+
84+
85+func gameGetBets (GAMESCOUNTER) = getInteger(this, gameLabelBets(GAMESCOUNTER))
86+
87+
88+func gameGetPassed (GAMESCOUNTER) = getInteger(this, gameLabelPassed(GAMESCOUNTER))
89+
90+
91+func gameGetHeight (GAMESCOUNTER) = getInteger(this, gameLabelHeight(GAMESCOUNTER))
92+
93+
94+func gameGetSumSha (GAMESCOUNTER) = getString(this, gameLabelSumSha(GAMESCOUNTER))
95+
96+
97+func gameGetCmbMax (GAMESCOUNTER,CMB) = getInteger(this, gameLabelCmbMax(GAMESCOUNTER, CMB))
98+
99+
100+func betLabelStatus (idBet) = (("B_" + idBet) + "_STATUS")
101+
102+
103+func betLabelInfo (idBet) = (("B_" + idBet) + "_INFO")
104+
105+
106+func betGetStatus (idBet) = getString(this, betLabelStatus(idBet))
107+
108+
109+func betGetInfo (idBet) = getString(this, betLabelInfo(idBet))
110+
111+
112+func addressLabelWon (addr) = (("A_" + addr) + "_WON")
113+
114+
115+func addressLabelAmount (addr) = (("A_" + addr) + "_AMOUNT")
116+
117+
118+func addressLabelBets (addr) = (("A_" + addr) + "_BETS")
119+
120+
121+func addressLabelHit (addr) = (("A_" + addr) + "_HIT")
122+
123+
124+func addressGetWon (addr) = getInteger(this, addressLabelWon(addr))
125+
126+
127+func addressGetAmount (addr) = getInteger(this, addressLabelAmount(addr))
128+
129+
130+func addressGetBets (addr) = getInteger(this, addressLabelBets(addr))
131+
132+
133+func addressGetHit (addr) = getInteger(this, addressLabelHit(addr))
134+
135+
136+func pointerAddressLabel (id) = ("P_" + toString(id))
137+
138+
139+func checkPermission (callerPublicKey) = (callerPublicKey != serverPublicKey)
140+
141+
142+func gameNewMax (win) = match gamesGetCounter() {
143+ case GAMESCOUNTER: Int =>
144+ match gameGetMax(GAMESCOUNTER) {
145+ case CURRMAX: Int =>
146+ let temp = (CURRMAX - win)
147+ if ((0 > temp))
148+ then throw("BET_IS_BLOCK")
149+ else temp
150+ case _ =>
151+ throw("GAME_NOT_FOUND")
152+ }
153+ case _ =>
154+ throw("INIT_NEEDED")
155+}
156+
157+
158+func gameNewSumSha (txId) = match gamesGetCounter() {
159+ case GAMESCOUNTER: Int =>
160+ match gameGetSumSha(GAMESCOUNTER) {
161+ case SUMSHA: String =>
162+ toBase58String(sha256((fromBase58String(SUMSHA) + txId)))
163+ case _ =>
164+ throw("GAME_NOT_FOUND")
165+ }
166+ case _ =>
167+ throw("INIT_NEEDED")
168+}
169+
170+
171+func checkIdBet (idBet) = match betGetInfo(idBet) {
172+ case temp: String =>
173+ throw("PLAYER_ALREADY_DEFINED")
174+ case _ =>
175+ 1
176+}
177+
178+
179+func checkBet (bet,cmb) = {
180+ let onlyoneandmore = if (if (if (if (if (if (if (if (if (if (if (if ((cmb == "_RED"))
181+ then true
182+ else (cmb == "_BLACK"))
183+ then true
184+ else (cmb == "_EVEN"))
185+ then true
186+ else (cmb == "_ODD"))
187+ then true
188+ else (cmb == "_LOW"))
189+ then true
190+ else (cmb == "_HIGH"))
191+ then true
192+ else (cmb == "_DOZER1"))
193+ then true
194+ else (cmb == "_DOZER2"))
195+ then true
196+ else (cmb == "_DOZER3"))
197+ then true
198+ else (cmb == "_COLUMN1"))
199+ then true
200+ else (cmb == "_COLUMN2"))
201+ then true
202+ else (cmb == "_COLUMN3"))
203+ then true
204+ else false
205+ if (onlyoneandmore)
206+ then if (if (if ((bet == 100000000))
207+ then true
208+ else (bet == 200000000))
209+ then true
210+ else (bet == 500000000))
211+ then 1
212+ else throw("BET_NOT_FOUND")
213+ else if (if (if (if (if (if ((bet == 10000000))
214+ then true
215+ else (bet == 20000000))
216+ then true
217+ else (bet == 50000000))
218+ then true
219+ else (bet == 100000000))
220+ then true
221+ else (bet == 200000000))
222+ then true
223+ else (bet == 500000000))
224+ then 1
225+ else throw("BET_NOT_FOUND")
226+ }
227+
228+
229+func getCmb (cmb) = match getInteger(this, ("C" + cmb)) {
230+ case temp: Int =>
231+ temp
232+ case _ =>
233+ throw("CMB_NOT_FOUND")
234+}
235+
236+
237+func allowCmbMax (gamecounter,cmb,win) = match gameGetCmbMax(gamecounter, cmb) {
238+ case temp: Int =>
239+ if (((temp + win) > 20000000000))
240+ then throw("CMB_MAX_WIN")
241+ else 1
242+ case _ =>
243+ 1
244+}
245+
246+
247+@Callable(i)
248+func initGame () = if (checkPermission(i.callerPublicKey))
249+ then throw("initGame_FORBBIDEN")
250+ else match gamesGetCounter() {
251+ case GAMESCOUNTER: Int =>
252+ throw("INIT_ALREADY_DONE")
253+ case _ =>
254+ WriteSet([DataEntry(gamesLabelCounter, 0), DataEntry(gamesLabelBetsCounter, 0), DataEntry(gamesLabelBetsFeeMoved, 0), DataEntry(gamesLabelTotalAmountWin, 0), DataEntry(gamesLabelTotalAmountBet, 0), DataEntry(gamesLabelTotalAddressBet, 0)])
255+ }
256+
257+
258+
259+@Callable(i)
260+func addCmb (cmb,val) = if (checkPermission(i.callerPublicKey))
261+ then throw("addCmb_FORBBIDEN")
262+ else match gamesGetCounter() {
263+ case GAMESCOUNTER: Int =>
264+ if ((GAMESCOUNTER != 0))
265+ then throw("INIT_ALREADY_DONE")
266+ else if (if (if (if (if (if (if ((val == 1))
267+ then true
268+ else (val == 2))
269+ then true
270+ else (val == 5))
271+ then true
272+ else (val == 8))
273+ then true
274+ else (val == 11))
275+ then true
276+ else (val == 17))
277+ then true
278+ else (val == 35))
279+ then WriteSet([DataEntry(("C" + cmb), val)])
280+ else throw("AMOUNT_NOT_FOUND")
281+ case _ =>
282+ throw("INIT_NEEDED")
283+ }
284+
285+
286+
287+@Callable(i)
288+func newGame () = if (checkPermission(i.callerPublicKey))
289+ then throw("newGame_FORBBIDEN")
290+ else match gamesGetCounter() {
291+ case GAMESCOUNTER: Int =>
292+ let newGameCounter = (GAMESCOUNTER + 1)
293+ let BETSCOUNTER = value(gamesGetBetsCounter())
294+ let BETSMOVED = value(gamesGetBetsFeeMoved())
295+ let gameMax = (wavesBalance(this) - (BETSCOUNTER - BETSMOVED))
296+ let halfGameMax = if (((gameMax % 2) == 1))
297+ then ((gameMax - 1) / 2)
298+ else (gameMax / 2)
299+ let sendData = WriteSet([DataEntry(gamesLabelCounter, newGameCounter), DataEntry(gameLabelStatus(newGameCounter), "PLAY"), DataEntry(gameLabelMax(newGameCounter), halfGameMax), DataEntry(gameLabelBets(newGameCounter), 0), DataEntry(gameLabelPassed(newGameCounter), 0), DataEntry(gameLabelHeight(newGameCounter), 0), DataEntry(gameLabelSumSha(newGameCounter), toBase58String(sha256(i.transactionId)))])
300+ if ((ONEWAVES > halfGameMax))
301+ then throw("BALANCE_IS_LOW")
302+ else if ((GAMESCOUNTER == 0))
303+ then sendData
304+ else {
305+ let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
306+ if ((CURRSTATUS != "SHOW"))
307+ then throw("CURR_STATUS_IS_NOT_SHOW")
308+ else {
309+ let BETS = value(gameGetBets(GAMESCOUNTER))
310+ let PASSED = value(gameGetPassed(GAMESCOUNTER))
311+ if ((BETS != PASSED))
312+ then throw("WAIT_ALL_PASSED")
313+ else sendData
314+ }
315+ }
316+ case _ =>
317+ throw("INIT_NEEDED")
318+ }
319+
320+
321+
322+@Callable(i)
323+func bet (id,cmb) = match gamesGetCounter() {
324+ case GAMESCOUNTER: Int =>
325+ if ((id != GAMESCOUNTER))
326+ then throw("GAME_ID_WRONG")
327+ else match gameGetStatus(GAMESCOUNTER) {
328+ case CURRSTATUS: String =>
329+ if ((CURRSTATUS != "PLAY"))
330+ then throw("CURR_STATUS_IS_NOT_PLAY")
331+ else match gameGetHeight(GAMESCOUNTER) {
332+ case GAMEHEIGHT: Int =>
333+ if (if ((GAMEHEIGHT != 0))
334+ then (height > (GAMEHEIGHT + periodGamePlay))
335+ else false)
336+ then throw("GAME_IS_END")
337+ else match gameGetBets(GAMESCOUNTER) {
338+ case BETS: Int =>
339+ let idBet = ((toString(GAMESCOUNTER) + "_") + toString((BETS + 1)))
340+ let payment = value(i.payment)
341+ match payment.assetId {
342+ case assetId: ByteVector =>
343+ throw("ONLY_WAVES_ACCEPTED")
344+ case _ =>
345+ let amount = payment.amount
346+ let win = (((checkIdBet(idBet) * checkBet(amount, cmb)) * getCmb(cmb)) * amount)
347+ let winmax = (win * allowCmbMax(GAMESCOUNTER, cmb, win))
348+ let address = toBase58String(i.caller.bytes)
349+ let info = ((((((address + "||") + cmb) + "||") + toString(amount)) + "||") + toString(winmax))
350+ let ADDRESSAMOUNT = match addressGetAmount(address) {
351+ case temp: Int =>
352+ temp
353+ case _ =>
354+ 0
355+ }
356+ let ADDRESSBETS = match addressGetBets(address) {
357+ case temp: Int =>
358+ temp
359+ case _ =>
360+ 0
361+ }
362+ let CMBMAX = match gameGetCmbMax(GAMESCOUNTER, cmb) {
363+ case temp: Int =>
364+ temp
365+ case _ =>
366+ 0
367+ }
368+ let data = [DataEntry(betLabelInfo(idBet), info), DataEntry(betLabelStatus(idBet), "ACCEPT"), DataEntry(gameLabelBets(GAMESCOUNTER), (BETS + 1)), DataEntry(gameLabelHeight(GAMESCOUNTER), if ((GAMEHEIGHT == 0))
369+ then height
370+ else GAMEHEIGHT), DataEntry(gameLabelMax(GAMESCOUNTER), gameNewMax(winmax)), DataEntry(gameLabelSumSha(GAMESCOUNTER), gameNewSumSha(i.transactionId)), DataEntry(gameLabelCmbMax(GAMESCOUNTER, cmb), (CMBMAX + winmax)), DataEntry(addressLabelAmount(address), (ADDRESSAMOUNT + amount)), DataEntry(addressLabelBets(address), (ADDRESSBETS + 1)), DataEntry(gamesLabelBetsCounter, (value(gamesGetBetsCounter()) + 1)), DataEntry(gamesLabelTotalAmountBet, (value(gamesGetTotalAmountBet()) + amount))]
371+ let TOTALADDRESSBET = (value(gamesGetTotalAddressBet()) + 1)
372+ let dataFinal = if ((ADDRESSAMOUNT == 0))
373+ then [DataEntry(pointerAddressLabel(TOTALADDRESSBET), address), DataEntry(gamesLabelTotalAddressBet, TOTALADDRESSBET)] :: data
374+ else data
375+ WriteSet(data)
376+ }
377+ case _ =>
378+ throw("GAME_NOT_FOUND_3")
379+ }
380+ case _ =>
381+ throw("GAME_NOT_FOUND_2")
382+ }
383+ case _ =>
384+ throw("GAME_NOT_FOUND_1")
385+ }
386+ case _ =>
387+ throw("INIT_NEEDED")
388+}
389+
390+
391+
392+@Callable(i)
393+func showGame (rsaSign) = if (checkPermission(i.callerPublicKey))
394+ then throw("showGame_FORBBIDEN")
395+ else match gamesGetCounter() {
396+ case GAMESCOUNTER: Int =>
397+ match gameGetSumSha(GAMESCOUNTER) {
398+ case SUMSHA: String =>
399+ let rsaSigValid = rsaVerify(SHA256, fromBase58String(SUMSHA), fromBase58String(rsaSign), RSAPUBLIC)
400+ if (!(rsaSigValid))
401+ then throw("INVALID_RSA_SIGN")
402+ else {
403+ let index = (toInt(sha256(toBytes(rsaSign))) % 37)
404+ let numberString = wheel[index]
405+ let number = value(parseInt(numberString))
406+ let numberCount = match numberGetCount(numberString) {
407+ case temp: Int =>
408+ temp
409+ case _ =>
410+ 0
411+ }
412+ let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
413+ if ((CURRSTATUS != "PLAY"))
414+ then throw("CURR_STATUS_IS_NOT_PLAY")
415+ else {
416+ let GAMEHEIGHT = value(gameGetHeight(GAMESCOUNTER))
417+ if (if ((GAMEHEIGHT == 0))
418+ then true
419+ else ((GAMEHEIGHT + periodGamePlay) >= height))
420+ then throw("GAME_IS_NOT_END")
421+ else WriteSet([DataEntry(gameLabelStatus(GAMESCOUNTER), "SHOW"), DataEntry(gameLabelNumber(GAMESCOUNTER), number), DataEntry(numberLabelCount(numberString), (numberCount + 1))])
422+ }
423+ }
424+ case _ =>
425+ throw("GAME_NOT_FOUND")
426+ }
427+ case _ =>
428+ throw("INIT_NEEDED")
429+ }
430+
431+
432+
433+@Callable(i)
434+func getWin (BET) = if (checkPermission(i.callerPublicKey))
435+ then throw("getWin_FORBBIDEN")
436+ else match gamesGetCounter() {
437+ case GAMESCOUNTER: Int =>
438+ match gameGetStatus(GAMESCOUNTER) {
439+ case CURRSTATUS: String =>
440+ if ((CURRSTATUS != "SHOW"))
441+ then throw("CURR_STATUS_IS_NOT_SHOW")
442+ else match gameGetNumber(GAMESCOUNTER) {
443+ case NUMBER: Int =>
444+ let idBet = ((toString(GAMESCOUNTER) + "_") + toString(BET))
445+ let numberString = (("_" + toString(NUMBER)) + "_")
446+ let red = "|_1_3_5_7_9_12_14_16_18_19_21_23_25_27_30_32_34_36_|"
447+ let black = "|_2_4_6_8_10_11_13_15_17_20_22_24_26_28_29_31_33_35_|"
448+ let indexRed = match indexOf(red, numberString) {
449+ case temp: Int =>
450+ (temp > 0)
451+ case _ =>
452+ false
453+ }
454+ let indexBlack = match indexOf(black, numberString) {
455+ case temp: Int =>
456+ (temp > 0)
457+ case _ =>
458+ false
459+ }
460+ let cmbRB = ("_" + (if (indexRed)
461+ then "RED"
462+ else if (indexBlack)
463+ then "BLACK"
464+ else "NDF"))
465+ let cmbEO = ("_" + (if (if ((0 >= NUMBER))
466+ then true
467+ else (NUMBER > 36))
468+ then "NDF"
469+ else if (((NUMBER % 2) == 0))
470+ then "EVEN"
471+ else "ODD"))
472+ let cmbLH = ("_" + (if (if ((NUMBER >= 1))
473+ then (18 >= NUMBER)
474+ else false)
475+ then "LOW"
476+ else if (if ((NUMBER >= 19))
477+ then (36 >= NUMBER)
478+ else false)
479+ then "HIGH"
480+ else "NDF"))
481+ let cmbDZ = ("_" + (if (if ((NUMBER >= 1))
482+ then (12 >= NUMBER)
483+ else false)
484+ then "DOZER1"
485+ else if (if ((NUMBER >= 13))
486+ then (24 >= NUMBER)
487+ else false)
488+ then "DOZER2"
489+ else if (if ((NUMBER >= 25))
490+ then (36 >= NUMBER)
491+ else false)
492+ then "DOZER3"
493+ else "NDF"))
494+ let cmbCL = ("_" + (if (if ((0 >= NUMBER))
495+ then true
496+ else (NUMBER > 36))
497+ then "NDF"
498+ else if (((NUMBER % 3) == 1))
499+ then "COLUMN1"
500+ else if (((NUMBER % 3) == 2))
501+ then "COLUMN2"
502+ else "COLUMN3"))
503+ let STATUS = match betGetStatus(idBet) {
504+ case temp: String =>
505+ temp
506+ case _ =>
507+ throw("BET_STATUS_NOT_FOUND")
508+ }
509+ let INFO = match betGetInfo(idBet) {
510+ case temp: String =>
511+ temp
512+ case _ =>
513+ throw("BET_INFO_NOT_FOUND")
514+ }
515+ let INFOS = split(INFO, "||")
516+ let ADDRESSSTRING = INFOS[0]
517+ let ADDRESS = value(addressFromString(ADDRESSSTRING))
518+ let CMB = INFOS[1]
519+ let AMOUNT = value(parseInt(INFOS[2]))
520+ let WIN = value(parseInt(INFOS[3]))
521+ let ADDRESSWON = match addressGetWon(ADDRESSSTRING) {
522+ case temp: Int =>
523+ temp
524+ case _ =>
525+ 0
526+ }
527+ let ADDRESSHIT = match addressGetHit(ADDRESSSTRING) {
528+ case temp: Int =>
529+ temp
530+ case _ =>
531+ 0
532+ }
533+ let DATAPASSED = DataEntry(gameLabelPassed(GAMESCOUNTER), (value(gameGetPassed(GAMESCOUNTER)) + 1))
534+ if (if (if (if (if ((STATUS == "ACCEPT"))
535+ then (CMB != "")
536+ else false)
537+ then (WIN > 0)
538+ else false)
539+ then (AMOUNT > 0)
540+ else false)
541+ then isDefined(ADDRESS)
542+ else false)
543+ then {
544+ let cmbIN = match indexOf((("|" + CMB) + "|"), numberString) {
545+ case temp: Int =>
546+ (temp > 0)
547+ case _ =>
548+ false
549+ }
550+ if (if (if (if (if (if (cmbIN)
551+ then true
552+ else (CMB == cmbRB))
553+ then true
554+ else (CMB == cmbEO))
555+ then true
556+ else (CMB == cmbLH))
557+ then true
558+ else (CMB == cmbDZ))
559+ then true
560+ else (CMB == cmbCL))
561+ then ScriptResult(WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "WON"), DataEntry(addressLabelWon(ADDRESSSTRING), ((ADDRESSWON + WIN) + AMOUNT)), DataEntry(addressLabelHit(ADDRESSSTRING), (ADDRESSHIT + 1)), DataEntry(gamesLabelTotalAmountWin, ((value(gamesGetTotalAmountWin()) + WIN) + AMOUNT))]), TransferSet([ScriptTransfer(ADDRESS, (WIN + AMOUNT), unit)]))
562+ else WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "LOST")])
563+ }
564+ else throw("GET_WIN_ALREADY_CALLED")
565+ case _ =>
566+ throw("GAME_NOT_FOUND")
567+ }
568+ case _ =>
569+ throw("GAME_NOT_FOUND")
570+ }
571+ case _ =>
572+ throw("INIT_NEEDED")
573+ }
574+
575+
576+
577+@Callable(i)
578+func amountToWallet (amount) = if (checkPermission(i.callerPublicKey))
579+ then throw("amountToWallet_FORBBIDEN")
580+ else match gamesGetCounter() {
581+ case GAMESCOUNTER: Int =>
582+ if ((GAMESCOUNTER == 0))
583+ then TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), amount, unit)])
584+ else {
585+ let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
586+ if ((CURRSTATUS != "SHOW"))
587+ then throw("CURR_STATUS_IS_NOT_SHOW")
588+ else {
589+ let BETS = value(gameGetBets(GAMESCOUNTER))
590+ let PASSED = value(gameGetPassed(GAMESCOUNTER))
591+ if ((BETS != PASSED))
592+ then throw("WAIT_ALL_PASSED")
593+ else TransferSet([ScriptTransfer(addressFromPublicKey(walletPublicKey), amount, unit)])
594+ }
595+ }
596+ case _ =>
597+ throw("INIT_NEEDED")
598+ }
599+
600+
601+
602+@Callable(i)
603+func betsFeeToServer () = if (checkPermission(i.callerPublicKey))
604+ then throw("betsFeeToServer_FORBBIDEN")
605+ else match gamesGetCounter() {
606+ case GAMESCOUNTER: Int =>
607+ if ((GAMESCOUNTER == 0))
608+ then throw("NO_BETS_FEE")
609+ else {
610+ let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
611+ if ((CURRSTATUS != "SHOW"))
612+ then throw("CURR_STATUS_IS_NOT_SHOW")
613+ else {
614+ let BETS = value(gameGetBets(GAMESCOUNTER))
615+ let PASSED = value(gameGetPassed(GAMESCOUNTER))
616+ if ((BETS != PASSED))
617+ then throw("WAIT_ALL_PASSED")
618+ else {
619+ let BETSCOUNTER = value(gamesGetBetsCounter())
620+ let BETSMOVED = value(gamesGetBetsFeeMoved())
621+ ScriptResult(WriteSet([DataEntry(gamesLabelBetsFeeMoved, BETSCOUNTER)]), TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), (BETSCOUNTER - BETSMOVED), unit)]))
622+ }
623+ }
624+ }
625+ case _ =>
626+ throw("INIT_NEEDED")
627+ }
628+
629+
630+@Verifier(tx)
631+func verify () = match tx {
632+ case tx: DataTransaction =>
633+ true
634+ case tx: SetScriptTransaction =>
635+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
636+ case _ =>
637+ false
638+}
639+

github/deemru/w8io/169f3d6 
36.17 ms