tx · G4NXVLtnvYqYtJAvYtU3vjp6QRtMxKj44ePTLsF5JReT

3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD:  -0.01500000 Waves

2019.09.24 17:36 [690549] smart account 3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD > SELF 0.00000000 Waves

{ "type": 13, "id": "G4NXVLtnvYqYtJAvYtU3vjp6QRtMxKj44ePTLsF5JReT", "fee": 1500000, "feeAssetId": null, "timestamp": 1569335720526, "version": 1, "sender": "3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD", "senderPublicKey": "8W9JLTJTfxrJrBNXxngzueBF4vJqeb6p9jFob7wb6QWQ", "proofs": [ "4Aokq8SEc1xL8LSLQDUwRJ72FXwfjLrVXBsbJNUuRYfCaF53bgENhD39mjQkj1DNDm5fUTTx91qJjfCqxA23UTd6" ], "script": "base64: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cmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAABBAAAAAZiZXRBbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAgQAAAAHYXNzZXRJZAkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAwQAAAAJZ2FtZVN0YXJ0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAQEAAAADWdhbWVUaW1lQ2hlY2sJAABmAAAAAgUAAAANZ2FtZVRpbWVGcmFtZQkAAGUAAAACBQAAAAZoZWlnaHQFAAAACWdhbWVTdGFydAQAAAAKc3RhdGVDaGVjawkAAAAAAAACBQAAAAlnYW1lU3RhdGUFAAAACHN0YXRlQWNjBAAAABJzZXRSZXNlcnZlZEJhbGFuY2UJAQAAABdkZWNyZWFzZVJlc2VydmVkQmFsYW5jZQAAAAIFAAAABmJldEFtdAUAAAAHYXNzZXRJZAQAAAATZHJvcHBlZEVsZW1lbnRzTGlzdAQAAAAIcm9sbDFJbnQJAQAAAAhyc2FUb0ludAAAAAMFAAAABmdhbWVJZAUAAAAIcnNhU2lnbjEFAAAADXJzYVB1YmxpY0tleTEEAAAACHJvbGwySW50CQEAAAAIcnNhVG9JbnQAAAADBQAAAAZnYW1lSWQFAAAACHJzYVNpZ24yBQAAAA1yc2FQdWJsaWNLZXkyBAAAAAhyb2xsM0ludAkBAAAACHJzYVRvSW50AAAAAwUAAAAGZ2FtZUlkBQAAAAhyc2FTaWduMwUAAAANcnNhUHVibGljS2V5MwQAAAAIZWxlbWVudDEJAQAAAAlpbnRUb0VsZW0AAAABBQAAAAhyb2xsMUludAQAAAAIZWxlbWVudDIJAQAAAAlpbnRUb0VsZW0AAAABBQAAAAhyb2xsMkludAQAAAAIZWxlbWVudDMJAQAAAAlpbnRUb0VsZW0AAAABBQAAAAhyb2xsM0ludAkABEwAAAACBQAAAAhlbGVtZW50MQkABEwAAAACBQAAAAhlbGVtZW50MgkABEwAAAACBQAAAAhlbGVtZW50MwUAAAADbmls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", "chainId": 84, "height": 690549, "spentComplexity": 0 } View: original | compacted Prev: 95ogVTJ4xVeU254VYDh8G5rqZ9BPnvtfWM1P5MuPowwk Next: G9VyeGTSJB3annR4NbFn3J4YvxigUSsprChZtP4Phr8h Diff:
OldNewDifferences
2727
2828 let WCT = fromBase58String("WCT")
2929
30-let WavesMinAmt = 100000000
30+let WavesMinAmt = 10000000
3131
3232 let WavesMaxAmt = (WavesMinAmt * 10)
3333
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let rsaPublicKey1 = fromBase64String("base64:1")
55
66 let rsaPublicKey2 = fromBase64String("base64:2")
77
88 let rsaPublicKey3 = fromBase64String("base64:3")
99
1010 let gameTimeFrame = 1440
1111
1212 let stateAcc = "Accepted"
1313
1414 let stateWin = "Win"
1515
1616 let stateTimeout = "WinByTimeout"
1717
1818 let stateLose = "Lose"
1919
2020 let wBTC = fromBase58String("wBTC")
2121
2222 let wETH = fromBase58String("wETH")
2323
2424 let wLTC = fromBase58String("wLTC")
2525
2626 let VST = fromBase58String("VST")
2727
2828 let WCT = fromBase58String("WCT")
2929
30-let WavesMinAmt = 100000000
30+let WavesMinAmt = 10000000
3131
3232 let WavesMaxAmt = (WavesMinAmt * 10)
3333
3434 let BtcMinAmt = 10000
3535
3636 let BtcMaxAmt = (BtcMinAmt * 10)
3737
3838 let EthMinAmt = 1000000
3939
4040 let EthMaxAmt = (EthMinAmt * 10)
4141
4242 let LtcMinAmt = 2000000
4343
4444 let LtcMaxAmt = (LtcMinAmt * 10)
4545
4646 let WctMinAmt = 500000000
4747
4848 let WctMaxAmt = (WctMinAmt * 10)
4949
5050 let VstMinAmt = 500000000
5151
5252 let VstMaxAmt = (VstMinAmt * 10)
5353
5454 func pmtAmtCheck (pmtAssetId,pmtAmt) = if ((pmtAssetId == "WAVES"))
5555 then if (if ((pmtAmt >= WavesMinAmt))
5656 then (WavesMaxAmt >= pmtAmt)
5757 else false)
5858 then true
5959 else throw("Bet amount is not in range")
6060 else if ((pmtAssetId == "BTC"))
6161 then if (if ((pmtAmt >= BtcMinAmt))
6262 then (BtcMaxAmt >= pmtAmt)
6363 else false)
6464 then true
6565 else throw("Bet amount is not in range")
6666 else if ((pmtAssetId == "ETH"))
6767 then if (if ((pmtAmt >= EthMinAmt))
6868 then (EthMaxAmt >= pmtAmt)
6969 else false)
7070 then true
7171 else throw("Bet amount is not in range")
7272 else if ((pmtAssetId == "LTC"))
7373 then if (if ((pmtAmt >= LtcMinAmt))
7474 then (LtcMaxAmt >= pmtAmt)
7575 else false)
7676 then true
7777 else throw("Bet amount is not in range")
7878 else if ((pmtAssetId == "WCT"))
7979 then if (if ((pmtAmt >= WctMinAmt))
8080 then (WctMaxAmt >= pmtAmt)
8181 else false)
8282 then true
8383 else throw("Bet amount is not in range")
8484 else if (if ((pmtAmt >= VstMinAmt))
8585 then (VstMaxAmt >= pmtAmt)
8686 else false)
8787 then true
8888 else throw("Bet amount is not in range")
8989
9090
9191 func increaseReservedBalance (pmtAmt,pmtAssetId) = {
9292 let currentReservedBalance = {
9393 let valueReservedBalance = getInteger(this, ("Reserved_" + pmtAssetId))
9494 match valueReservedBalance {
9595 case a: Int =>
9696 a
9797 case _ =>
9898 0
9999 }
100100 }
101101 let newReservedBalance = (currentReservedBalance + pmtAmt)
102102 if ((wavesBalance(this) >= newReservedBalance))
103103 then {
104104 let increaseReservedBalance = newReservedBalance
105105 increaseReservedBalance
106106 }
107107 else throw("Bet was rejected. Insufficient funds on game account.")
108108 }
109109
110110
111111 func getDataList (gameId) = {
112112 let getDataString = getString(this, gameId)
113113 let a = match getDataString {
114114 case a: String =>
115115 a
116116 case _ =>
117117 throw("GameId was not found")
118118 }
119119 split(a, "_")
120120 }
121121
122122
123123 func intToElem (rsaInt) = if ((2 > rsaInt))
124124 then "1"
125125 else if ((4 > rsaInt))
126126 then "2"
127127 else if ((6 > rsaInt))
128128 then "3"
129129 else if ((8 > rsaInt))
130130 then "4"
131131 else if ((10 > rsaInt))
132132 then "5"
133133 else if ((12 > rsaInt))
134134 then "6"
135135 else "7"
136136
137137
138138 func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
139139 let rsaCheck = rsaVerify(SHA256, toBytes(gameId), rsaSign, rsaPublicKey)
140140 if (rsaCheck)
141141 then {
142142 let rsaInt = ((toInt(sha256(rsaSign)) % 19) + 1)
143143 if (if ((rsaInt > 0))
144144 then (20 >= rsaInt)
145145 else false)
146146 then rsaInt
147147 else throw("Rsa integer is not in range")
148148 }
149149 else throw("Rsa Signature is invalid")
150150 }
151151
152152
153153 func decreaseReservedBalance (betAmt,assetId) = {
154154 let valueReservedBalance = getInteger(this, ("Reserved_" + assetId))
155155 let extractReservedBalance = match valueReservedBalance {
156156 case a: Int =>
157157 a
158158 case _ =>
159159 0
160160 }
161161 let decreaseReservedBalance = (extractReservedBalance - betAmt)
162162 if ((decreaseReservedBalance > 0))
163163 then decreaseReservedBalance
164164 else throw("Reserved balance couldn't be less than 0")
165165 }
166166
167167
168168 func defineMultiplier (threeDrums,twoDrums) = if ((threeDrums == "111"))
169169 then 1
170170 else if ((threeDrums == "222"))
171171 then 2
172172 else if ((threeDrums == "333"))
173173 then 3
174174 else if ((threeDrums == "444"))
175175 then 4
176176 else if ((threeDrums == "555"))
177177 then 5
178178 else if ((threeDrums == "666"))
179179 then 6
180180 else if ((threeDrums == "777"))
181181 then 7
182182 else if ((twoDrums == "11"))
183183 then 8
184184 else if ((twoDrums == "22"))
185185 then 9
186186 else if ((twoDrums == "33"))
187187 then 10
188188 else if ((twoDrums == "44"))
189189 then 11
190190 else if ((twoDrums == "55"))
191191 then 12
192192 else if ((twoDrums == "66"))
193193 then 13
194194 else if ((twoDrums == "77"))
195195 then 14
196196 else 0
197197
198198
199199 @Callable(i)
200200 func bet () = {
201201 let pmt = extract(i.payment)
202202 let pmtAmt = pmt.amount
203203 let gameId = toBase58String(i.transactionId)
204204 let gameStart = height
205205 let playerPublicKey = toBase58String(i.callerPublicKey)
206206 let pmtAssetId = if (!(isDefined(pmt.assetId)))
207207 then "WAVES"
208208 else if ((pmt.assetId == wBTC))
209209 then "BTC"
210210 else if ((pmt.assetId == wETH))
211211 then "ETH"
212212 else if ((pmt.assetId == wLTC))
213213 then "LTC"
214214 else if ((pmt.assetId == WCT))
215215 then "WCT"
216216 else if ((pmt.assetId == VST))
217217 then "VST"
218218 else throw("AssetId is incorrect")
219219 let setReservedBalance = increaseReservedBalance(pmtAmt, pmtAssetId)
220220 let pmtAmtCorrect = pmtAmtCheck(pmtAssetId, pmtAmt)
221221 if (pmtAmtCorrect)
222222 then {
223223 let dataString = ((((((((stateAcc + "_") + playerPublicKey) + "_") + toString(pmtAmt)) + "_") + pmtAssetId) + "_") + toString(gameStart))
224224 WriteSet([DataEntry(gameId, dataString), DataEntry(("Reserved_" + pmtAssetId), setReservedBalance)])
225225 }
226226 else throw("assetId is incorrect")
227227 }
228228
229229
230230
231231 @Callable(i)
232232 func withdraw (gameId,rsaSign1,rsaSign2,rsaSign3) = {
233233 let dataList = getDataList(gameId)
234234 let gameState = dataList[0]
235235 let playerAddress = addressFromPublicKey(fromBase58String(dataList[1]))
236236 let betAmt = parseIntValue(dataList[2])
237237 let assetId = dataList[3]
238238 let gameStart = parseIntValue(dataList[4])
239239 let gameTimeCheck = (gameTimeFrame > (height - gameStart))
240240 let stateCheck = (gameState == stateAcc)
241241 let setReservedBalance = decreaseReservedBalance(betAmt, assetId)
242242 let droppedElementsList = {
243243 let roll1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
244244 let roll2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
245245 let roll3Int = rsaToInt(gameId, rsaSign3, rsaPublicKey3)
246246 let element1 = intToElem(roll1Int)
247247 let element2 = intToElem(roll2Int)
248248 let element3 = intToElem(roll3Int)
249249 [element1, element2, element3]
250250 }
251251 let winAmt = {
252252 let threeDrums = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
253253 let twoDrums = (droppedElementsList[0] + droppedElementsList[1])
254254 let multiplier = defineMultiplier(threeDrums, twoDrums)
255255 (betAmt * multiplier)
256256 }
257257 let stringForNewData = ((((((dataList[1] + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4])
258258 let droppedElements = ((droppedElementsList[0] + droppedElementsList[1]) + droppedElementsList[2])
259259 if (stateCheck)
260260 then if (gameTimeCheck)
261261 then if ((winAmt == 0))
262262 then WriteSet([DataEntry(gameId, (((stateLose + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetId), setReservedBalance)])
263263 else ScriptResult(WriteSet([DataEntry(gameId, (((stateWin + stringForNewData) + toString(winAmt)) + droppedElements)), DataEntry(("Reserved_" + assetId), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winAmt, fromBase58String(assetId))]))
264264 else ScriptResult(WriteSet([DataEntry(gameId, (stateTimeout + stringForNewData)), DataEntry(("Reserved_" + assetId), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, fromBase58String(assetId))]))
265265 else throw("Game state is incorrect")
266266 }
267267
268268
269269 @Verifier(tx)
270270 func verify () = match tx {
271271 case ttx: TransferTransaction =>
272272 let valueReservedBalance = getInteger(this, "Reserved")
273273 let reservedBalance = match valueReservedBalance {
274274 case a: Int =>
275275 a
276276 case _ =>
277277 0
278278 }
279279 let availableBalance = (wavesBalance(this) - reservedBalance)
280280 let availibleAmount = (availableBalance >= ttx.amount)
281281 let signature = sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
282282 if (availibleAmount)
283283 then signature
284284 else false
285285 case sstx: SetScriptTransaction =>
286286 sigVerify(sstx.bodyBytes, sstx.proofs[0], sstx.senderPublicKey)
287287 case istx: InvokeScriptTransaction =>
288288 sigVerify(istx.bodyBytes, istx.proofs[0], istx.senderPublicKey)
289289 case _ =>
290290 false
291291 }
292292

github/deemru/w8io/873ac7e 
32.70 ms