tx · G9VyeGTSJB3annR4NbFn3J4YvxigUSsprChZtP4Phr8h

3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD:  -0.01500000 Waves

2019.10.03 16:31 [703598] smart account 3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD > SELF 0.00000000 Waves

{ "type": 13, "id": "G9VyeGTSJB3annR4NbFn3J4YvxigUSsprChZtP4Phr8h", "fee": 1500000, "feeAssetId": null, "timestamp": 1570109309406, "version": 1, "sender": "3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD", "senderPublicKey": "8W9JLTJTfxrJrBNXxngzueBF4vJqeb6p9jFob7wb6QWQ", "proofs": [ "5FHSPfqyBE14uqgUsYEmQh4tXgouTN6VhM4syQTHsjhXZQfEGp8NAKhJrKzrC3wsadbTSJ2gyDTcG96SW6eYGuqu" ], "script": "base64:AAIDAAAAAAAAAAwIARIAEgYKBAgCAgIAAAAiAAAAAA1yc2FQdWJsaWNLZXkxCQACWwAAAAECAAAAh2Jhc2U2NDpNRnd3RFFZSktvWklodmNOQVFFQkJRQURTd0F3U0FKQkFPa2l1ei9CVjRFam94R2hUbU5DYnQyVGdrYlNQSC93NjliM0YxckttRDYxSmlQWHZ2RjhMMnBJOXhPWWNXNEZtb0VaVkhsUlF0QWxhSnlrbDMrcnNyRUNBd0VBQVE9PQAAAAANcnNhUHVibGljS2V5MgkAAlsAAAABAgAAAIdiYXNlNjQ6TUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSm5YemJNL1Yyc0RWMVVMYlBTT2xIa2xkT1RXUnJIaTVmeElrQm11ZXZyQ2xNUFZIN3JxY2N3aXJETmNNZElkd1hISTlBZGhqOUZXandHSXdmVS9LNk1DQXdFQUFRPT0AAAAADXJzYVB1YmxpY0tleTMJAAJbAAAAAQIAAACHYmFzZTY0Ok1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQU9SRGV2eTByNGt6THFPeVNsb0I2M0h1djJlNHplSEtIakNzeTV2dEZLbVdaYlhKYThnWll0NCtFa2xGSW8xSzlvcXU1QkFQVmZKM0ZPenMyVTFBK2cwQ0F3RUFBUT09AAAAAA1nYW1lVGltZUZyYW1lCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAAIAAAAACHN0YXRlQWNjAgAAAAhBY2NlcHRlZAAAAAAIc3RhdGVXaW4CAAAAA1dpbgAAAAAMc3RhdGVUaW1lb3V0AgAAAAxXaW5CeVRpbWVvdXQAAAAACXN0YXRlTG9zZQIAAAAETG9zZQAAAAAHd2F2ZXNJZAUAAAAEdW5pdAAAAAAFYnRjSWQBAAAAILnnP6qPECbbo926KJMYdX6tAqIA2JrhOgnWxVE3CxuNAAAAAAVldGhJZAEAAAAgoVTq4z3P32thsbSj93DFuMGkeUhjXwh3orXSFXtzjDoAAAAABWx0Y0lkAQAAACCaHvbSLhAqwVDRQJIo+jCh7lo7IjsXvoXO0DdhX3IMigAAAAAFdnN0SWQBAAAAIIrpopnFTIZLgmgYgJu7dCIAFucYnOl+hUadP2UrzGuKAAAAAAV3Y3RJZAEAAAAgzJXu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AAEJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAEEAAAABmJldEFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAACBAAAAAlhc3NldE5hbWUJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAMEAAAACWdhbWVTdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAAEBAAAAAlhc3NldElkNTgJAQAAABFBc3NldE5hbWVUb0Jhc2U1OAAAAAEFAAAACWFzc2V0TmFtZQQAAAANZ2FtZVRpbWVDaGVjawkAAGYAAAACBQAAAA1nYW1lVGltZUZyYW1lCQAAZQAAAAIFAAAABmhlaWdodAUAAAAJZ2FtZVN0YXJ0BAAAAAxzdGF0ZUNvcnJlY3QJAAAAAAAAAgUAAAAJZ2FtZVN0YXRlBQAAAAhzdGF0ZUFjYwQAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlCQEAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAACBQAAAAZiZXRBbXQFAAAACWFzc2V0TmFtZQQAAAATZHJvcHBlZEVsZW1lbnRzTGlzdAQAAAAIcm9sbDFJbnQJAQAAAAhyc2FUb0ludAAAAAMFAAAABmdhbWVJZAUAAAAIcnNhU2lnbjEFAAAADXJzYVB1YmxpY0tleTEEAAAACHJvbGwySW50CQEAAAAIcnNhVG9JbnQAAAADBQAAAAZnYW1lSWQFAAAACHJzYVNpZ24yBQAAAA1yc2FQdWJsaWNLZXkyBAAAAAhyb2xsM0ludAkBAAAACHJzYVRvSW50AAAAAwUAAAAGZ2FtZUlkBQAAAAhyc2FTaWduMwUAAAANcnNhUHVibGljS2V5MwQAAAAIZWxlbWVudDEJAQAAAAlpbnRUb0VsZW0AAAABBQAAAAhyb2xsMUludAQAAAAIZWxlbWVudDIJAQAAAAlpbnRUb0VsZW0AAAABBQAAAAhyb2xsMkludAQAAAAIZWxlbWVudDMJAQAAAAlpbnRUb0VsZW0AAAABBQAAAAhyb2xsM0ludAkABEwAAAACBQAAAAhlbGVtZW50MQkABEwAAAACBQAAAAhlbGVtZW50MgkABEwAAAAC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", "chainId": 84, "height": 703598, "spentComplexity": 0 } View: original | compacted Prev: G4NXVLtnvYqYtJAvYtU3vjp6QRtMxKj44ePTLsF5JReT Next: 6w5gnQyfma8Yz2Q4qwPtG1PmcUnDCQbycYReJCyzSdYF Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let rsaPublicKey1 = fromBase64String("base64:1")
4+let rsaPublicKey1 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkiuz/BV4EjoxGhTmNCbt2TgkbSPH/w69b3F1rKmD61JiPXvvF8L2pI9xOYcW4FmoEZVHlRQtAlaJykl3+rsrECAwEAAQ==")
55
6-let rsaPublicKey2 = fromBase64String("base64:2")
6+let rsaPublicKey2 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnXzbM/V2sDV1ULbPSOlHkldOTWRrHi5fxIkBmuevrClMPVH7rqccwirDNcMdIdwXHI9Adhj9FWjwGIwfU/K6MCAwEAAQ==")
77
8-let rsaPublicKey3 = fromBase64String("base64:3")
8+let rsaPublicKey3 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAORDevy0r4kzLqOySloB63Huv2e4zeHKHjCsy5vtFKmWZbXJa8gZYt4+EklFIo1K9oqu5BAPVfJ3FOzs2U1A+g0CAwEAAQ==")
99
10-let gameTimeFrame = 1440
10+let gameTimeFrame = (1440 * 2)
1111
1212 let stateAcc = "Accepted"
1313
1717
1818 let stateLose = "Lose"
1919
20-let wBTC = fromBase58String("wBTC")
20+let wavesId = unit
2121
22-let wETH = fromBase58String("wETH")
22+let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
2323
24-let wLTC = fromBase58String("wLTC")
24+let ethId = base58'BrmjyAWT5jjr3Wpsiyivyvg5vDuzoX2s93WgiexXetB3'
2525
26-let VST = fromBase58String("VST")
26+let ltcId = base58'BNdAstuFogzSyN2rY3beJbnBYwYcu7RzTHFjW88g8roK'
2727
28-let WCT = fromBase58String("WCT")
28+let vstId = base58'AMFteLfPzPhTsFc3NfvHG7fSRUnsp3tJXPH88G1PCisT'
2929
30-let WavesMinAmt = 10000000
30+let wctId = base58'EmcmfM27TPaemhuREZGD8WLvsuLCdqx8WovMrDQKbXS1'
31+
32+let WavesMinAmt = 100000000
3133
3234 let WavesMaxAmt = (WavesMinAmt * 10)
3335
121123
122124
123125 func intToElem (rsaInt) = if ((2 > rsaInt))
124- then "1"
126+ then "7"
125127 else if ((4 > rsaInt))
126- then "2"
128+ then "6"
127129 else if ((6 > rsaInt))
128- then "3"
130+ then "5"
129131 else if ((8 > rsaInt))
130132 then "4"
131133 else if ((10 > rsaInt))
132- then "5"
134+ then "3"
133135 else if ((12 > rsaInt))
134- then "6"
135- else "7"
136+ then "2"
137+ else "1"
136138
137139
138140 func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
165167 }
166168
167169
168-func defineMultiplier (threeDrums,twoDrums) = if ((threeDrums == "111"))
169- then 1
170- else if ((threeDrums == "222"))
171- then 2
172- else if ((threeDrums == "333"))
173- then 3
170+func defineMultiplier (threeDrums,twoDrums) = if ((threeDrums == "777"))
171+ then 5370
172+ else if ((threeDrums == "666"))
173+ then 1300
174+ else if ((threeDrums == "555"))
175+ then 450
174176 else if ((threeDrums == "444"))
175- then 4
176- else if ((threeDrums == "555"))
177- then 5
178- else if ((threeDrums == "666"))
179- then 6
180- else if ((threeDrums == "777"))
181- then 7
182- else if ((twoDrums == "11"))
183- then 8
184- else if ((twoDrums == "22"))
185- then 9
186- else if ((twoDrums == "33"))
187- then 10
177+ then 200
178+ else if ((threeDrums == "333"))
179+ then 150
180+ else if ((threeDrums == "222"))
181+ then 110
182+ else if ((threeDrums == "111"))
183+ then 40
184+ else if ((twoDrums == "77"))
185+ then 270
186+ else if ((twoDrums == "66"))
187+ then 130
188+ else if ((twoDrums == "55"))
189+ then 65
188190 else if ((twoDrums == "44"))
189- then 11
190- else if ((twoDrums == "55"))
191- then 12
192- else if ((twoDrums == "66"))
193- then 13
194- else if ((twoDrums == "77"))
195- then 14
191+ then 30
192+ else if ((twoDrums == "33"))
193+ then 20
194+ else if ((twoDrums == "22"))
195+ then 15
196+ else if ((twoDrums == "11"))
197+ then 10
196198 else 0
199+
200+
201+func AssetNameToBase58 (assetName) = if ((assetName == "WAVES"))
202+ then wavesId
203+ else if ((assetName == "BTC"))
204+ then btcId
205+ else if ((assetName == "ETH"))
206+ then ethId
207+ else if ((assetName == "LTC"))
208+ then ltcId
209+ else if ((assetName == "VST"))
210+ then vstId
211+ else if ((assetName == "WCT"))
212+ then wctId
213+ else throw("Asset name is incorrect")
197214
198215
199216 @Callable(i)
205222 let playerPublicKey = toBase58String(i.callerPublicKey)
206223 let pmtAssetId = if (!(isDefined(pmt.assetId)))
207224 then "WAVES"
208- else if ((pmt.assetId == wBTC))
225+ else if ((pmt.assetId == btcId))
209226 then "BTC"
210- else if ((pmt.assetId == wETH))
227+ else if ((pmt.assetId == ethId))
211228 then "ETH"
212- else if ((pmt.assetId == wLTC))
229+ else if ((pmt.assetId == ltcId))
213230 then "LTC"
214- else if ((pmt.assetId == WCT))
231+ else if ((pmt.assetId == wctId))
215232 then "WCT"
216- else if ((pmt.assetId == VST))
233+ else if ((pmt.assetId == vstId))
217234 then "VST"
218235 else throw("AssetId is incorrect")
219236 let setReservedBalance = increaseReservedBalance(pmtAmt, pmtAssetId)
234251 let gameState = dataList[0]
235252 let playerAddress = addressFromPublicKey(fromBase58String(dataList[1]))
236253 let betAmt = parseIntValue(dataList[2])
237- let assetId = dataList[3]
254+ let assetName = dataList[3]
238255 let gameStart = parseIntValue(dataList[4])
256+ let assetId58 = AssetNameToBase58(assetName)
239257 let gameTimeCheck = (gameTimeFrame > (height - gameStart))
240- let stateCheck = (gameState == stateAcc)
241- let setReservedBalance = decreaseReservedBalance(betAmt, assetId)
258+ let stateCorrect = (gameState == stateAcc)
259+ let setReservedBalance = decreaseReservedBalance(betAmt, assetName)
242260 let droppedElementsList = {
243261 let roll1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
244262 let roll2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
252270 let threeDrums = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
253271 let twoDrums = (droppedElementsList[0] + droppedElementsList[1])
254272 let multiplier = defineMultiplier(threeDrums, twoDrums)
255- (betAmt * multiplier)
273+ ((betAmt * multiplier) / 10)
256274 }
257275 let stringForNewData = ((((((dataList[1] + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4])
258276 let droppedElements = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
259- if (stateCheck)
277+ if (stateCorrect)
260278 then if (gameTimeCheck)
261279 then if ((winAmt == 0))
262- then WriteSet([DataEntry(gameId, (((stateLose + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetId), setReservedBalance)])
263- else ScriptResult(WriteSet([DataEntry(gameId, (((stateWin + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetId), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winAmt, fromBase58String(assetId))]))
264- else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetId), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, fromBase58String(assetId))]))
280+ then WriteSet([DataEntry(gameId, (((stateLose + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)])
281+ else ScriptResult(WriteSet([DataEntry(gameId, (((stateWin + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winAmt, assetId58)]))
282+ else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
265283 else throw("Game state is incorrect")
266284 }
267285
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let rsaPublicKey1 = fromBase64String("base64:1")
4+let rsaPublicKey1 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkiuz/BV4EjoxGhTmNCbt2TgkbSPH/w69b3F1rKmD61JiPXvvF8L2pI9xOYcW4FmoEZVHlRQtAlaJykl3+rsrECAwEAAQ==")
55
6-let rsaPublicKey2 = fromBase64String("base64:2")
6+let rsaPublicKey2 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnXzbM/V2sDV1ULbPSOlHkldOTWRrHi5fxIkBmuevrClMPVH7rqccwirDNcMdIdwXHI9Adhj9FWjwGIwfU/K6MCAwEAAQ==")
77
8-let rsaPublicKey3 = fromBase64String("base64:3")
8+let rsaPublicKey3 = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAORDevy0r4kzLqOySloB63Huv2e4zeHKHjCsy5vtFKmWZbXJa8gZYt4+EklFIo1K9oqu5BAPVfJ3FOzs2U1A+g0CAwEAAQ==")
99
10-let gameTimeFrame = 1440
10+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
20-let wBTC = fromBase58String("wBTC")
20+let wavesId = unit
2121
22-let wETH = fromBase58String("wETH")
22+let btcId = base58'DWgwcZTMhSvnyYCoWLRUXXSH1RSkzThXLJhww9gwkqdn'
2323
24-let wLTC = fromBase58String("wLTC")
24+let ethId = base58'BrmjyAWT5jjr3Wpsiyivyvg5vDuzoX2s93WgiexXetB3'
2525
26-let VST = fromBase58String("VST")
26+let ltcId = base58'BNdAstuFogzSyN2rY3beJbnBYwYcu7RzTHFjW88g8roK'
2727
28-let WCT = fromBase58String("WCT")
28+let vstId = base58'AMFteLfPzPhTsFc3NfvHG7fSRUnsp3tJXPH88G1PCisT'
2929
30-let WavesMinAmt = 10000000
30+let wctId = base58'EmcmfM27TPaemhuREZGD8WLvsuLCdqx8WovMrDQKbXS1'
31+
32+let WavesMinAmt = 100000000
3133
3234 let WavesMaxAmt = (WavesMinAmt * 10)
3335
3436 let BtcMinAmt = 10000
3537
3638 let BtcMaxAmt = (BtcMinAmt * 10)
3739
3840 let EthMinAmt = 1000000
3941
4042 let EthMaxAmt = (EthMinAmt * 10)
4143
4244 let LtcMinAmt = 2000000
4345
4446 let LtcMaxAmt = (LtcMinAmt * 10)
4547
4648 let WctMinAmt = 500000000
4749
4850 let WctMaxAmt = (WctMinAmt * 10)
4951
5052 let VstMinAmt = 500000000
5153
5254 let VstMaxAmt = (VstMinAmt * 10)
5355
5456 func pmtAmtCheck (pmtAssetId,pmtAmt) = if ((pmtAssetId == "WAVES"))
5557 then if (if ((pmtAmt >= WavesMinAmt))
5658 then (WavesMaxAmt >= pmtAmt)
5759 else false)
5860 then true
5961 else throw("Bet amount is not in range")
6062 else if ((pmtAssetId == "BTC"))
6163 then if (if ((pmtAmt >= BtcMinAmt))
6264 then (BtcMaxAmt >= pmtAmt)
6365 else false)
6466 then true
6567 else throw("Bet amount is not in range")
6668 else if ((pmtAssetId == "ETH"))
6769 then if (if ((pmtAmt >= EthMinAmt))
6870 then (EthMaxAmt >= pmtAmt)
6971 else false)
7072 then true
7173 else throw("Bet amount is not in range")
7274 else if ((pmtAssetId == "LTC"))
7375 then if (if ((pmtAmt >= LtcMinAmt))
7476 then (LtcMaxAmt >= pmtAmt)
7577 else false)
7678 then true
7779 else throw("Bet amount is not in range")
7880 else if ((pmtAssetId == "WCT"))
7981 then if (if ((pmtAmt >= WctMinAmt))
8082 then (WctMaxAmt >= pmtAmt)
8183 else false)
8284 then true
8385 else throw("Bet amount is not in range")
8486 else if (if ((pmtAmt >= VstMinAmt))
8587 then (VstMaxAmt >= pmtAmt)
8688 else false)
8789 then true
8890 else throw("Bet amount is not in range")
8991
9092
9193 func increaseReservedBalance (pmtAmt,pmtAssetId) = {
9294 let currentReservedBalance = {
9395 let valueReservedBalance = getInteger(this, ("Reserved_" + pmtAssetId))
9496 match valueReservedBalance {
9597 case a: Int =>
9698 a
9799 case _ =>
98100 0
99101 }
100102 }
101103 let newReservedBalance = (currentReservedBalance + pmtAmt)
102104 if ((wavesBalance(this) >= newReservedBalance))
103105 then {
104106 let increaseReservedBalance = newReservedBalance
105107 increaseReservedBalance
106108 }
107109 else throw("Bet was rejected. Insufficient funds on game account.")
108110 }
109111
110112
111113 func getDataList (gameId) = {
112114 let getDataString = getString(this, gameId)
113115 let a = match getDataString {
114116 case a: String =>
115117 a
116118 case _ =>
117119 throw("GameId was not found")
118120 }
119121 split(a, "_")
120122 }
121123
122124
123125 func intToElem (rsaInt) = if ((2 > rsaInt))
124- then "1"
126+ then "7"
125127 else if ((4 > rsaInt))
126- then "2"
128+ then "6"
127129 else if ((6 > rsaInt))
128- then "3"
130+ then "5"
129131 else if ((8 > rsaInt))
130132 then "4"
131133 else if ((10 > rsaInt))
132- then "5"
134+ then "3"
133135 else if ((12 > rsaInt))
134- then "6"
135- else "7"
136+ then "2"
137+ else "1"
136138
137139
138140 func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
139141 let rsaCheck = rsaVerify(SHA256, toBytes(gameId), rsaSign, rsaPublicKey)
140142 if (rsaCheck)
141143 then {
142144 let rsaInt = ((toInt(sha256(rsaSign)) % 19) + 1)
143145 if (if ((rsaInt > 0))
144146 then (20 >= rsaInt)
145147 else false)
146148 then rsaInt
147149 else throw("Rsa integer is not in range")
148150 }
149151 else throw("Rsa Signature is invalid")
150152 }
151153
152154
153155 func decreaseReservedBalance (betAmt,assetId) = {
154156 let valueReservedBalance = getInteger(this, ("Reserved_" + assetId))
155157 let extractReservedBalance = match valueReservedBalance {
156158 case a: Int =>
157159 a
158160 case _ =>
159161 0
160162 }
161163 let decreaseReservedBalance = (extractReservedBalance - betAmt)
162164 if ((decreaseReservedBalance > 0))
163165 then decreaseReservedBalance
164166 else throw("Reserved balance couldn't be less than 0")
165167 }
166168
167169
168-func defineMultiplier (threeDrums,twoDrums) = if ((threeDrums == "111"))
169- then 1
170- else if ((threeDrums == "222"))
171- then 2
172- else if ((threeDrums == "333"))
173- then 3
170+func defineMultiplier (threeDrums,twoDrums) = if ((threeDrums == "777"))
171+ then 5370
172+ else if ((threeDrums == "666"))
173+ then 1300
174+ else if ((threeDrums == "555"))
175+ then 450
174176 else if ((threeDrums == "444"))
175- then 4
176- else if ((threeDrums == "555"))
177- then 5
178- else if ((threeDrums == "666"))
179- then 6
180- else if ((threeDrums == "777"))
181- then 7
182- else if ((twoDrums == "11"))
183- then 8
184- else if ((twoDrums == "22"))
185- then 9
186- else if ((twoDrums == "33"))
187- then 10
177+ then 200
178+ else if ((threeDrums == "333"))
179+ then 150
180+ else if ((threeDrums == "222"))
181+ then 110
182+ else if ((threeDrums == "111"))
183+ then 40
184+ else if ((twoDrums == "77"))
185+ then 270
186+ else if ((twoDrums == "66"))
187+ then 130
188+ else if ((twoDrums == "55"))
189+ then 65
188190 else if ((twoDrums == "44"))
189- then 11
190- else if ((twoDrums == "55"))
191- then 12
192- else if ((twoDrums == "66"))
193- then 13
194- else if ((twoDrums == "77"))
195- then 14
191+ then 30
192+ else if ((twoDrums == "33"))
193+ then 20
194+ else if ((twoDrums == "22"))
195+ then 15
196+ else if ((twoDrums == "11"))
197+ then 10
196198 else 0
199+
200+
201+func AssetNameToBase58 (assetName) = if ((assetName == "WAVES"))
202+ then wavesId
203+ else if ((assetName == "BTC"))
204+ then btcId
205+ else if ((assetName == "ETH"))
206+ then ethId
207+ else if ((assetName == "LTC"))
208+ then ltcId
209+ else if ((assetName == "VST"))
210+ then vstId
211+ else if ((assetName == "WCT"))
212+ then wctId
213+ else throw("Asset name is incorrect")
197214
198215
199216 @Callable(i)
200217 func bet () = {
201218 let pmt = extract(i.payment)
202219 let pmtAmt = pmt.amount
203220 let gameId = toBase58String(i.transactionId)
204221 let gameStart = height
205222 let playerPublicKey = toBase58String(i.callerPublicKey)
206223 let pmtAssetId = if (!(isDefined(pmt.assetId)))
207224 then "WAVES"
208- else if ((pmt.assetId == wBTC))
225+ else if ((pmt.assetId == btcId))
209226 then "BTC"
210- else if ((pmt.assetId == wETH))
227+ else if ((pmt.assetId == ethId))
211228 then "ETH"
212- else if ((pmt.assetId == wLTC))
229+ else if ((pmt.assetId == ltcId))
213230 then "LTC"
214- else if ((pmt.assetId == WCT))
231+ else if ((pmt.assetId == wctId))
215232 then "WCT"
216- else if ((pmt.assetId == VST))
233+ else if ((pmt.assetId == vstId))
217234 then "VST"
218235 else throw("AssetId is incorrect")
219236 let setReservedBalance = increaseReservedBalance(pmtAmt, pmtAssetId)
220237 let pmtAmtCorrect = pmtAmtCheck(pmtAssetId, pmtAmt)
221238 if (pmtAmtCorrect)
222239 then {
223240 let dataString = ((((((((stateAcc + "_") + playerPublicKey) + "_") + toString(pmtAmt)) + "_") + pmtAssetId) + "_") + toString(gameStart))
224241 WriteSet([DataEntry(gameId, dataString), DataEntry(("Reserved_" + pmtAssetId), setReservedBalance)])
225242 }
226243 else throw("assetId is incorrect")
227244 }
228245
229246
230247
231248 @Callable(i)
232249 func withdraw (gameId,rsaSign1,rsaSign2,rsaSign3) = {
233250 let dataList = getDataList(gameId)
234251 let gameState = dataList[0]
235252 let playerAddress = addressFromPublicKey(fromBase58String(dataList[1]))
236253 let betAmt = parseIntValue(dataList[2])
237- let assetId = dataList[3]
254+ let assetName = dataList[3]
238255 let gameStart = parseIntValue(dataList[4])
256+ let assetId58 = AssetNameToBase58(assetName)
239257 let gameTimeCheck = (gameTimeFrame > (height - gameStart))
240- let stateCheck = (gameState == stateAcc)
241- let setReservedBalance = decreaseReservedBalance(betAmt, assetId)
258+ let stateCorrect = (gameState == stateAcc)
259+ let setReservedBalance = decreaseReservedBalance(betAmt, assetName)
242260 let droppedElementsList = {
243261 let roll1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
244262 let roll2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
245263 let roll3Int = rsaToInt(gameId, rsaSign3, rsaPublicKey3)
246264 let element1 = intToElem(roll1Int)
247265 let element2 = intToElem(roll2Int)
248266 let element3 = intToElem(roll3Int)
249267 [element1, element2, element3]
250268 }
251269 let winAmt = {
252270 let threeDrums = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
253271 let twoDrums = (droppedElementsList[0] + droppedElementsList[1])
254272 let multiplier = defineMultiplier(threeDrums, twoDrums)
255- (betAmt * multiplier)
273+ ((betAmt * multiplier) / 10)
256274 }
257275 let stringForNewData = ((((((dataList[1] + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4])
258276 let droppedElements = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
259- if (stateCheck)
277+ if (stateCorrect)
260278 then if (gameTimeCheck)
261279 then if ((winAmt == 0))
262- then WriteSet([DataEntry(gameId, (((stateLose + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetId), setReservedBalance)])
263- else ScriptResult(WriteSet([DataEntry(gameId, (((stateWin + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetId), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winAmt, fromBase58String(assetId))]))
264- else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetId), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, fromBase58String(assetId))]))
280+ then WriteSet([DataEntry(gameId, (((stateLose + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)])
281+ else ScriptResult(WriteSet([DataEntry(gameId, (((stateWin + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winAmt, assetId58)]))
282+ else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetName), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
265283 else throw("Game state is incorrect")
266284 }
267285
268286
269287 @Verifier(tx)
270288 func verify () = match tx {
271289 case ttx: TransferTransaction =>
272290 let valueReservedBalance = getInteger(this, "Reserved")
273291 let reservedBalance = match valueReservedBalance {
274292 case a: Int =>
275293 a
276294 case _ =>
277295 0
278296 }
279297 let availableBalance = (wavesBalance(this) - reservedBalance)
280298 let availibleAmount = (availableBalance >= ttx.amount)
281299 let signature = sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
282300 if (availibleAmount)
283301 then signature
284302 else false
285303 case sstx: SetScriptTransaction =>
286304 sigVerify(sstx.bodyBytes, sstx.proofs[0], sstx.senderPublicKey)
287305 case istx: InvokeScriptTransaction =>
288306 sigVerify(istx.bodyBytes, istx.proofs[0], istx.senderPublicKey)
289307 case _ =>
290308 false
291309 }
292310

github/deemru/w8io/873ac7e 
63.70 ms