tx · 76RPxGUEJSZ9Kdu5SZDkW5jwcu4pStv49dZdP8hrco7G

3MzDG9rt13Eu5uw4mZqkG5axDiijvVSDbjc:  -0.01000000 Waves

2019.12.27 17:07 [827539] smart account 3MzDG9rt13Eu5uw4mZqkG5axDiijvVSDbjc > SELF 0.00000000 Waves

{ "type": 13, "id": "76RPxGUEJSZ9Kdu5SZDkW5jwcu4pStv49dZdP8hrco7G", "fee": 1000000, "feeAssetId": null, "timestamp": 1577455598062, "version": 1, "sender": "3MzDG9rt13Eu5uw4mZqkG5axDiijvVSDbjc", "senderPublicKey": "6MTSfDEbfZ9Vr7hxN2PkJT6tQvCPZ1jN7K9L8gCiZnF5", "proofs": [ "2Wv934pupnJtcPVA8mKaZziZGV59Eo3kxPnvE55nMvJtC3PZ2HL62Qcc4ohvGgxNDsbWus9XCGaYx1nTiWTvFHHo" ], "script": "base64:AAIDAAAAAAAAABEIARIAEgYKBAgICAgSAwoBCAAAADAAAAAAFmRpdmlkZW5kUHJvZ3JhbUFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQIAAAAsNVNZUnJXQWtrSGlpeURTelRWYlRha3Z4M2pzdno3M1ljNXNMY0RnZEs4c2cAAAAADWdhbWVQdWJsaWNLZXkJAAJZAAAAAQIAAAAsNk1UU2ZERWJmWjlWcjdoeE4yUGtKVDZ0UXZDUFoxak43SzlMOGdDaVpuRjUAAAAADXJzYVB1YmxpY0tleTEJAAJbAAAAAQIAAACATUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBT2tpdXovQlY0RWpveEdoVG1OQ2J0MlRna2JTUEgvdzY5YjNGMXJLbUQ2MUppUFh2dkY4TDJwSTl4T1ljVzRGbW9FWlZIbFJRdEFsYUp5a2wzK3JzckVDQXdFQUFRPT0AAAAADXJzYVB1YmxpY0tleTIJAAJbAAAAAQIAAACATUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSm5YemJNL1Yyc0RWMVVMYlBTT2xIa2xkT1RXUnJIaTVmeElrQm11ZXZyQ2xNUFZIN3JxY2N3aXJETmNNZElkd1hISTlBZGhqOUZXandHSXdmVS9LNk1DQXdFQUFRPT0AAAAADXJzYVB1YmxpY0tleTMJAAJbAAAAAQIAAACATUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBT1JEZXZ5MHI0a3pMcU95U2xvQjYzSHV2MmU0emVIS0hqQ3N5NXZ0RkttV1piWEphOGdaWXQ0K0VrbEZJbzFLOW9xdTVCQVBWZkozRk96czJVMUErZzBDQXdFQUFRPT0AAAAABWRydW0xCQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATUJAARMAAAAAgIAAAABNwkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNAUAAAADbmlsAAAAAAVkcnVtMgkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNgkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATcFAAAAA25pbAAAAAAFZHJ1bTMJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATcJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAE3CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAE2BQAAAANuaWwAAAAADWdhbWVUaW1lRnJhbWUJAABoAAAAAgAAAAAAAAAFoAAAAAAAAAAAAgAAAAAKY29tbWlzc2lvbgAAAAAAAAehIAAAAAAIc3RhdGVBY2MCAAAACEFjY2VwdGVkAAAAAAhzdGF0ZVdpbgIAAAADV2luAAAAAAxzdGF0ZVRpbWVvdXQCAAAADFdpbkJ5VGltZW91dAAAAAAJc3RhdGVMb3NlAgAAAARMb3NlAAAAAAd3YXZlc0lkBQAAAAR1bml0AAAAAAVidGNJZAEAAAAg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BQAAAAR0aGlzCQABLAAAAAIFAAAADHBtdEFzc2V0TmFtZQIAAAAJX1Jlc2VydmVkBAAAAAckbWF0Y2gwBQAAABR2YWx1ZVJlc2VydmVkQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABJuZXdSZXNlcnZlZEJhbGFuY2UJAABkAAAAAgUAAAAWY3VycmVudFJlc2VydmVkQmFsYW5jZQkAAGgAAAACBQAAAAZwbXRBbXQAAAAAAAAAAQQDCQAAZwAAAAIJAAPrAAAAAgUAAAAEdGhpcwUAAAAJYXNzZXRJZDU4BQAAABJuZXdSZXNlcnZlZEJhbGFuY2UFAAAAEm5ld1Jlc2VydmVkQmFsYW5jZQkAAAIAAAABAgAAADVCZXQgd2FzIHJlamVjdGVkLiBJbnN1ZmZpY2llbnQgZnVuZHMgb24gZ2FtZSBhY2NvdW50LgEAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAACAAAABmJldEFtdAAAAAdhc3NldElkBAAAABR2YWx1ZVJlc2VydmVkQmFsYW5jZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAB2Fzc2V0SWQCAAAACV9SZXNlcnZlZAQAAAAWZXh0cmFjdFJlc2VydmVkQmFsYW5jZQQAAAAHJG1hdGNoMAUAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UJAABlAAAAAgUAAAAWZXh0cmFjdFJlc2VydmVkQmFsYW5jZQkAAGgAAAACBQAAAAZiZXRBbXQAAAAAAAAAAQQDCQAAZwAAAAIFAAAAF2RlY3JlYXNlUmVzZXJ2ZWRCYWxhbmNlAAAAAAAAAAAABQAAABdkZWNyZWFzZVJlc2VydmVkQmFsYW5jZQkAAAIAAAABAgAAAChSZXNlcnZlZCBiYWxhbmNlIGNvdWxkbid0IGJlIGxlc3MgdGhhbiAwAQAAAA9kcnVtSW50VG9TdHJpbmcAAAABAAAAB2RydW1JbnQDCQAAZgAA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ZGF0YUxpc3QAAAAAAAAAAAMEAAAACWdhbWVTdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAAEBAAAAAlhc3NldElkNTgJAQAAABFhc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAACWFzc2V0TmFtZQQAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlCQEAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAACBQAAAAZiZXRBbXQFAAAACWFzc2V0TmFtZQQAAAANY3VycmVudEluY29tZQkBAAAAEGdldEN1cnJlbnRJbmNvbWUAAAABBQAAAAlhc3NldE5hbWUEAAAACGRydW0xSW50CQEAAAAIcnNhVG9JbnQAAAADBQAAAAZnYW1lSWQFAAAACHJzYVNpZ24xBQAAAA1yc2FQdWJsaWNLZXkxBAAAAAhkcnVtMkludAkBAAAACHJzYVRvSW50AAAAAwUAAAAGZ2FtZUlkBQAAAAhyc2FTaWduMgUAAAANcnNhUHVibGljS2V5MgQAAAAIZHJ1bTNJbnQJAQAAAAhyc2FUb0ludAAAAAMFAAAABmdhbWVJZAUAAAAIcnNhU2lnbjMFAAAADXJzYVB1YmxpY0tleTMEAAAACXR3b0luQVJvdwkAASwAAAACCQABkQAAAAIFAAAABWRydW0xBQAAAAhkcnVtMUludAkAAZEAAAACBQAAAAVkcnVtMgUAAAAIZHJ1bTJJbnQEAAAAC3RocmVlSW5BUm93CQABLAAAAAIFAAAACXR3b0luQVJvdwkAAZEAAAACBQAAAAVkcnVtMwUAAAAIZHJ1bTNJbnQEAAAAFWRyb3BwZWRFbGVtZW50c1N0cmluZwkAASwAAAACCQABLAAAAAIJAQAAAA9kcnVtSW50VG9TdHJpbmcAAAABBQAAAAhkcnVtMUludAkBAAAAD2RydW1JbnRUb1N0cmluZwAAAAEFAAAACGRydW0ySW50CQEAAAAPZHJ1bUludFRvU3RyaW5nAAAAAQUAAAAIZHJ1bTNJbnQEAAAABndpbkFtdAkAAGkAAAACCQAAaAAAAAIFAAAABmJldEFtdAkBAAAAEGRlZmluZU11bHRpcGxpZXIAAAACBQAAAAt0aHJlZUluQVJvdwUAAAAJdHdvSW5BUm93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YXNzZXROYW1lAgAAABVfRGVwb3NpdER1cmF0aW9uQmxvY2sEAAAADWRlcG9zaXRBbW91bnQJAQAAAA5nZXREZXBvc2l0RGF0YQAAAAIFAAAACWFzc2V0TmFtZQIAAAAOX0RlcG9zaXRBbW91bnQEAAAAGWRpdmlkZW5kUHJvZ3JhbVRpbWVJc092ZXIJAABnAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAAE2RpdmlkZW5kU3RhcnRIZWlnaHQFAAAAD2RlcG9zaXREdXJhdGlvbgMFAAAAGWRpdmlkZW5kUHJvZ3JhbVRpbWVJc092ZXIJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWFzc2V0TmFtZQIAAAAdX0RlcG9zaXRXaXRoZHJhd1RyYW5zYWN0aW9uSWQIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAACWNhbGxlclB1YgUAAAANZGVwb3NpdEFtb3VudAUAAAAJYXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAGkRlcG9zaXQgdGltZSBpcyBub3Qgb3Zlci4gCQABpAAAAAEJAABlAAAAAgUAAAAGaGVpZ2h0CQAAZAAAAAIFAAAAE2RpdmlkZW5kU3RhcnRIZWlnaHQFAAAAD2RlcG9zaXREdXJhdGlvbgIAAAANIGJsb2NrcyBsZWZ0LgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAANZ2FtZVB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAARzc3R4BQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EAAAABGlzdHgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAA2R0eAUAAAAHJG1hdGNoMAYHB5bYgP0=", "chainId": 84, "height": 827539, "spentComplexity": 0 } View: original | compacted Prev: none Next: 3uYSQLVqNwvwHaziJFAB58qArU9KNvNG1DYHwyYkSWUX Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let dividendProgramAddress = addressFromPublicKey(fromBase58String("5SYRrWAkkHiiyDSzTVbTakvx3jsvz73Yc5sLcDgdK8sg"))
5+
6+let gamePublicKey = fromBase58String("6MTSfDEbfZ9Vr7hxN2PkJT6tQvCPZ1jN7K9L8gCiZnF5")
7+
8+let rsaPublicKey1 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkiuz/BV4EjoxGhTmNCbt2TgkbSPH/w69b3F1rKmD61JiPXvvF8L2pI9xOYcW4FmoEZVHlRQtAlaJykl3+rsrECAwEAAQ==")
9+
10+let rsaPublicKey2 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnXzbM/V2sDV1ULbPSOlHkldOTWRrHi5fxIkBmuevrClMPVH7rqccwirDNcMdIdwXHI9Adhj9FWjwGIwfU/K6MCAwEAAQ==")
11+
12+let rsaPublicKey3 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAORDevy0r4kzLqOySloB63Huv2e4zeHKHjCsy5vtFKmWZbXJa8gZYt4+EklFIo1K9oqu5BAPVfJ3FOzs2U1A+g0CAwEAAQ==")
13+
14+let drum1 = ["2", "1", "3", "5", "7", "3", "3", "1", "4", "1", "3", "5", "2", "4", "2", "6", "5", "2", "1", "4"]
15+
16+let drum2 = ["4", "2", "3", "1", "6", "4", "2", "1", "4", "2", "1", "6", "3", "1", "2", "5", "1", "5", "3", "7"]
17+
18+let drum3 = ["3", "2", "7", "4", "1", "6", "4", "2", "3", "1", "4", "1", "5", "5", "1", "3", "7", "1", "2", "6"]
19+
20+let gameTimeFrame = (1440 * 2)
21+
22+let commission = 500000
23+
24+let stateAcc = "Accepted"
25+
26+let stateWin = "Win"
27+
28+let stateTimeout = "WinByTimeout"
29+
30+let stateLose = "Lose"
31+
32+let wavesId = unit
33+
34+let btcId = base58'Gt4HLkHunts7bWbtYP5UCsAPW7TUA4gmQEnjgjbZ2NqB'
35+
36+let ethId = base58'6A79GDQj8bdHqUaoJQ3qE1TCPnBc3wFirNCSsAY5RKry'
37+
38+let ltcId = base58'7oRhs4zoufHM4KiBDuJwRXUWb9JQaFt98N8ubpmytMmw'
39+
40+let vstId = base58'5UyDjBMx1Q8UWhJj1r7JuA6h4aCkKrHE1J19HvMXRpRd'
41+
42+let wctId = base58'Ae5W927iuKSLLT6Sdt3bqWze6ZUbYHDWzPY6dLKQusZv'
43+
44+let divider = 1000
45+
46+let WavesMinAmt = (100000000 / divider)
47+
48+let WavesMaxAmt = (WavesMinAmt * 10)
49+
50+let BtcMinAmt = (10000 / divider)
51+
52+let BtcMaxAmt = (BtcMinAmt * 10)
53+
54+let EthMinAmt = (1000000 / divider)
55+
56+let EthMaxAmt = (EthMinAmt * 10)
57+
58+let LtcMinAmt = (2000000 / divider)
59+
60+let LtcMaxAmt = (LtcMinAmt * 10)
61+
62+let WctMinAmt = (500000000 / divider)
63+
64+let WctMaxAmt = (WctMinAmt * 10)
65+
66+let VstMinAmt = (500000000 / divider)
67+
68+let VstMaxAmt = (VstMinAmt * 10)
69+
70+func getInvestorPub (assetName) = {
71+ let val = getBinary(this, (assetName + "_DepositInvestor"))
72+ match val {
73+ case a: ByteVector =>
74+ a
75+ case _ =>
76+ throw("Error")
77+ }
78+ }
79+
80+
81+func getDepositAmount (assetName) = {
82+ let val = getBinary(this, (assetName + "_DepositAmount"))
83+ match val {
84+ case a: ByteVector =>
85+ a
86+ case _ =>
87+ throw("Error")
88+ }
89+ }
90+
91+
92+func pmtAmtCheck (pmtAssetId,betAmount) = if ((pmtAssetId == "WAVES"))
93+ then if (if ((betAmount >= WavesMinAmt))
94+ then (WavesMaxAmt >= betAmount)
95+ else false)
96+ then true
97+ else throw("Bet amount is not in range")
98+ else if ((pmtAssetId == "BTC"))
99+ then if (if ((betAmount >= BtcMinAmt))
100+ then (BtcMaxAmt >= betAmount)
101+ else false)
102+ then true
103+ else throw("Bet amount is not in range")
104+ else if ((pmtAssetId == "ETH"))
105+ then if (if ((betAmount >= EthMinAmt))
106+ then (EthMaxAmt >= betAmount)
107+ else false)
108+ then true
109+ else throw("Bet amount is not in range")
110+ else if ((pmtAssetId == "LTC"))
111+ then if (if ((betAmount >= LtcMinAmt))
112+ then (LtcMaxAmt >= betAmount)
113+ else false)
114+ then true
115+ else throw("Bet amount is not in range")
116+ else if ((pmtAssetId == "WCT"))
117+ then if (if ((betAmount >= WctMinAmt))
118+ then (WctMaxAmt >= betAmount)
119+ else false)
120+ then true
121+ else throw("Bet amount is not in range")
122+ else if (if ((betAmount >= VstMinAmt))
123+ then (VstMaxAmt >= betAmount)
124+ else false)
125+ then true
126+ else throw("Bet amount is not in range")
127+
128+
129+func getDataList (gameId) = {
130+ let getDataString = getString(this, (gameId + "_GameId"))
131+ let a = match getDataString {
132+ case a: String =>
133+ a
134+ case _ =>
135+ throw("GameId was not found")
136+ }
137+ split(a, "_")
138+ }
139+
140+
141+func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
142+ let rsaCheck = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), rsaPublicKey)
143+ if (rsaCheck)
144+ then (toInt(sha256(fromBase64String(rsaSign))) % 19)
145+ else throw("Rsa Signature is invalid")
146+ }
147+
148+
149+func increaseReservedBalance (pmtAmt,pmtAssetName,assetId58) = {
150+ let currentReservedBalance = {
151+ let valueReservedBalance = getInteger(this, (pmtAssetName + "_Reserved"))
152+ match valueReservedBalance {
153+ case a: Int =>
154+ a
155+ case _ =>
156+ 0
157+ }
158+ }
159+ let newReservedBalance = (currentReservedBalance + (pmtAmt * 260))
160+ if ((assetBalance(this, assetId58) >= newReservedBalance))
161+ then newReservedBalance
162+ else throw("Bet was rejected. Insufficient funds on game account.")
163+ }
164+
165+
166+func decreaseReservedBalance (betAmt,assetId) = {
167+ let valueReservedBalance = getInteger(this, (assetId + "_Reserved"))
168+ let extractReservedBalance = match valueReservedBalance {
169+ case a: Int =>
170+ a
171+ case _ =>
172+ 0
173+ }
174+ let decreaseReservedBalance = (extractReservedBalance - (betAmt * 260))
175+ if ((decreaseReservedBalance >= 0))
176+ then decreaseReservedBalance
177+ else throw("Reserved balance couldn't be less than 0")
178+ }
179+
180+
181+func drumIntToString (drumInt) = if ((10 > drumInt))
182+ then ("0" + toString(drumInt))
183+ else toString(drumInt)
184+
185+
186+func defineMultiplier (threeInARow,twoInARow) = if ((threeInARow == "777"))
187+ then 2600
188+ else if ((threeInARow == "666"))
189+ then 1300
190+ else if ((threeInARow == "555"))
191+ then 450
192+ else if ((threeInARow == "444"))
193+ then 200
194+ else if ((threeInARow == "333"))
195+ then 150
196+ else if ((threeInARow == "222"))
197+ then 110
198+ else if ((threeInARow == "111"))
199+ then 50
200+ else if ((twoInARow == "77"))
201+ then 270
202+ else if ((twoInARow == "66"))
203+ then 130
204+ else if ((twoInARow == "55"))
205+ then 45
206+ else if ((twoInARow == "44"))
207+ then 30
208+ else if ((twoInARow == "33"))
209+ then 20
210+ else if ((twoInARow == "22"))
211+ then 17
212+ else if ((twoInARow == "11"))
213+ then 13
214+ else 0
215+
216+
217+func assetNameToBase58 (assetName) = if ((assetName == "WAVES"))
218+ then wavesId
219+ else if ((assetName == "BTC"))
220+ then btcId
221+ else if ((assetName == "ETH"))
222+ then ethId
223+ else if ((assetName == "LTC"))
224+ then ltcId
225+ else if ((assetName == "VST"))
226+ then vstId
227+ else if ((assetName == "WCT"))
228+ then wctId
229+ else throw("Asset name is incorrect")
230+
231+
232+func assetBase58ToName (assetId) = if (!(isDefined(assetId)))
233+ then "WAVES"
234+ else if ((assetId == btcId))
235+ then "BTC"
236+ else if ((assetId == ethId))
237+ then "ETH"
238+ else if ((assetId == ltcId))
239+ then "LTC"
240+ else if ((assetId == wctId))
241+ then "WCT"
242+ else if ((assetId == vstId))
243+ then "VST"
244+ else throw("AssetId is incorrect")
245+
246+
247+func getCurrentIncome (assetName) = {
248+ let val = getInteger(this, (assetName + "_Income"))
249+ match val {
250+ case a: Int =>
251+ a
252+ case _ =>
253+ 0
254+ }
255+ }
256+
257+
258+func callerIsDepositOwner (assetName,callerPublicKey) = {
259+ let depositOwner = getString(dividendProgramAddress, (assetName + "_DepositOwner"))
260+ if ((callerPublicKey == depositOwner))
261+ then callerPublicKey
262+ else throw("Only deposit owner can withdrawal deposit")
263+ }
264+
265+
266+func assetNameCheck (asset) = if (if (if (if (if (if ((asset == "WAVES"))
267+ then true
268+ else (asset == "WAVES"))
269+ then true
270+ else (asset == "WAVES"))
271+ then true
272+ else (asset == "WAVES"))
273+ then true
274+ else (asset == "WAVES"))
275+ then true
276+ else (asset == "WAVES"))
277+ then asset
278+ else throw("Incorrect asset name provided")
279+
280+
281+func getDepositData (assetName,keySuffix) = {
282+ let key = (assetName + "_DepositAmount")
283+ let val = getInteger(dividendProgramAddress, key)
284+ match val {
285+ case a: Int =>
286+ a
287+ case _ =>
288+ throw("Couldn't find dividend program start height")
289+ }
290+ }
291+
292+
293+@Callable(i)
294+func makeBet () = {
295+ let pmt = extract(i.payment)
296+ let betAmount = (pmt.amount - commission)
297+ let assetId = pmt.assetId
298+ let gameId = toBase58String(i.transactionId)
299+ let playerAddress = extract(i.caller)
300+ let pmtAssetName = assetBase58ToName(assetId)
301+ let setReservedBalance = increaseReservedBalance(betAmount, pmtAssetName, pmt.assetId)
302+ let pmtAmtCorrect = pmtAmtCheck(pmtAssetName, betAmount)
303+ if (pmtAmtCorrect)
304+ then {
305+ let dataString = ((((((((stateAcc + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_") + pmtAssetName) + "_") + toString(height))
306+ WriteSet([DataEntry((gameId + "_GameId"), dataString), DataEntry((pmtAssetName + "_Reserved"), setReservedBalance)])
307+ }
308+ else throw("assetId is incorrect")
309+ }
310+
311+
312+
313+@Callable(i)
314+func playGame (gameId,rsaSign1,rsaSign2,rsaSign3) = {
315+ let dataList = getDataList(gameId)
316+ let gameState = dataList[0]
317+ let playerAddress = addressFromStringValue(dataList[1])
318+ let betAmt = parseIntValue(dataList[2])
319+ let assetName = dataList[3]
320+ let gameStart = parseIntValue(dataList[4])
321+ let assetId58 = assetNameToBase58(assetName)
322+ let setReservedBalance = decreaseReservedBalance(betAmt, assetName)
323+ let currentIncome = getCurrentIncome(assetName)
324+ let drum1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
325+ let drum2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
326+ let drum3Int = rsaToInt(gameId, rsaSign3, rsaPublicKey3)
327+ let twoInARow = (drum1[drum1Int] + drum2[drum2Int])
328+ let threeInARow = (twoInARow + drum3[drum3Int])
329+ let droppedElementsString = ((drumIntToString(drum1Int) + drumIntToString(drum2Int)) + drumIntToString(drum3Int))
330+ let winAmt = ((betAmt * defineMultiplier(threeInARow, twoInARow)) / 10)
331+ let gameTimeCheck = (gameTimeFrame > (height - gameStart))
332+ let stateCorrect = (gameState == stateAcc)
333+ if (stateCorrect)
334+ then if (gameTimeCheck)
335+ then if ((winAmt == 0))
336+ then ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateLose + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + toString(height)) + "_") + toString(winAmt)) + "_") + threeInARow) + "_") + droppedElementsString)), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(dividendProgramAddress, betAmt, assetId58)]))
337+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateWin + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + toString(height)) + "_") + toString(winAmt)) + "_") + threeInARow) + "_") + droppedElementsString)), DataEntry((assetName + "_Reserved"), setReservedBalance), DataEntry((assetName + "_Income"), (currentIncome - winAmt))]), TransferSet([ScriptTransfer(playerAddress, winAmt, assetId58)]))
338+ else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateTimeout + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + toString(height)) + "_") + toString((betAmt * 2))) + "_") + "000") + "_") + "000000")), DataEntry((assetName + "_Reserved"), setReservedBalance), DataEntry((assetName + "_Income"), (currentIncome - (betAmt * 2)))]), TransferSet([ScriptTransfer(playerAddress, (betAmt * 2), assetId58)]))
339+ else throw("Game state is incorrect")
340+ }
341+
342+
343+
344+@Callable(i)
345+func withdrawDeposit (assetName) = {
346+ let assetId58 = assetNameToBase58(assetName)
347+ let callerPub = callerIsDepositOwner(assetName, toBase58String(i.callerPublicKey))
348+ let dividendStartHeight = getDepositData(assetName, "_DepositStartBlock")
349+ let depositDuration = getDepositData(assetName, "_DepositDurationBlock")
350+ let depositAmount = getDepositData(assetName, "_DepositAmount")
351+ let dividendProgramTimeIsOver = ((height - dividendStartHeight) >= depositDuration)
352+ if (dividendProgramTimeIsOver)
353+ then ScriptResult(WriteSet([DataEntry((assetName + "_DepositWithdrawTransactionId"), i.transactionId)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(callerPub)), depositAmount, assetId58)]))
354+ else throw((("Deposit time is not over. " + toString((height - (dividendStartHeight + depositDuration)))) + " blocks left."))
355+ }
356+
357+
358+@Verifier(tx)
359+func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], gamePublicKey))
360+ then match tx {
361+ case ttx: TransferTransaction =>
362+ false
363+ case sstx: SetScriptTransaction =>
364+ true
365+ case istx: InvokeScriptTransaction =>
366+ true
367+ case dtx: DataTransaction =>
368+ true
369+ case _ =>
370+ false
371+ }
372+ else false
373+

github/deemru/w8io/169f3d6 
39.88 ms