tx · 4K7GJdRxbZg7YxTnQesn16LVbDYmTZjXr29rK3rQXiB8

3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD:  -0.01500000 Waves

2019.10.06 15:06 [707894] smart account 3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD > SELF 0.00000000 Waves

{ "type": 13, "id": "4K7GJdRxbZg7YxTnQesn16LVbDYmTZjXr29rK3rQXiB8", "fee": 1500000, "feeAssetId": null, "timestamp": 1570363618447, "version": 1, "sender": "3NBFHpzVTqcHQB6Zxec1f6N6ZGBWQ4VsBFD", "senderPublicKey": "8W9JLTJTfxrJrBNXxngzueBF4vJqeb6p9jFob7wb6QWQ", "proofs": [ "4jik3KBJyWwRHrGMci59hn4J7F7aqPyr1b8uaUtVXVrEvoeS47mh4CjbtorSi3paVfMjDd7xuSN4Hqt66yejYDN2" ], "script": "base64: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AgAAAAECAAAAFGFzc2V0SWQgaXMgaW5jb3JyZWN0AAAAAWkBAAAACHBsYXlHYW1lAAAABAAAAAZnYW1lSWQAAAAIcnNhU2lnbjEAAAAIcnNhU2lnbjIAAAAIcnNhU2lnbjMEAAAACGRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAZnYW1lSWQEAAAACWdhbWVTdGF0ZQkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAAQAAAANcGxheWVyQWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAABBAAAAAZiZXRBbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAgQAAAAJYXNzZXROYW1lCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAADBAAAAAlnYW1lU3RhcnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAABAQAAAAJYXNzZXRJZDU4CQEAAAARQXNzZXROYW1lVG9CYXNlNTgAAAABBQAAAAlhc3NldE5hbWUEAAAAEnNldFJlc2VydmVkQmFsYW5jZQkBAAAAF2RlY3JlYXNlUmVzZXJ2ZWRCYWxhbmNlAAAAAgUAAAAGYmV0QW10BQAAAAlhc3NldE5hbWUEAAAACGRydW0xSW50CQEAAAAIcnNhVG9JbnQAAAADBQAAAAZnYW1lSWQFAAAACHJzYVNpZ24xBQAAAA1yc2FQdWJsaWNLZXkxBAAAAAhkcnVtMkludAkBAAAACHJzYVRvSW50AAAAAwUAAAAGZ2FtZUlkBQAAAAhyc2FTaWduMgUAAAANcnNhUHVibGljS2V5MgQAAAAIZHJ1bTNJbnQJAQAAAAhyc2FUb0ludAAAAAMFAAAABmdhbWVJZAUAAAAIcnNhU2lnbjMFAAAADXJzYVB1YmxpY0tleTMEAAAAC3RocmVlSW5BUm93CQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAAVkcnVtMQUAAAAIZHJ1bTFJbnQJAAGRAAAAAgUAAAAFZHJ1bTIFAAAACGRydW0ySW50CQABkQAAAAIFAAAABWRydW0zBQAAAAhkcnVtM0ludAQAAAAJdHdvSW5BUm93CQABLAAAAAIJAAGRAAAAAgUAAAAFZHJ1bTEFAAAACGRydW0xSW50CQABkQAAAAIFAAAABWRydW0yBQAAAAhkcnVtMkludAQAAAAVZHJvcHBlZEVsZW1lbnRzU3RyaW5nBAAAAA1kcnVtMVRvU3RyaW5nCQEAAAAPZHJ1bUludFRvU3RyaW5nAAAAAQUAAAAIZHJ1bTFJbnQEAAAADWRydW0yVG9TdHJpbmcJAQAAAA9kcnVtSW50VG9TdHJpbmcAAAABBQAAAAhkcnVtMkludAQAAAANZHJ1bTNUb1N0cmluZwkBAAAAD2RydW1JbnRUb1N0cmluZwAAAAEFAAAACGRydW0zSW50CQABLAAAAAIJAAEsAAAAAgUAAAANZHJ1bTFUb1N0cmluZwUAAAANZHJ1bTJUb1N0cmluZwUAAAANZHJ1bTNUb1N0cmluZwQAAAAGd2luQW10BAAAAAptdWx0aXBsaWVyCQEAAAAQZGVmaW5lTXVsdGlwbGllcgAAAAIFAAAAC3RocmVlSW5BUm93BQAAAAl0d29JbkFSb3cJAABpAAAAAgkAAGgAAAACBQAAAAZiZXRBbXQFAAAACm11bHRpcGxpZXIAAAAAAAAAAAoEAAAACXdpblBtdEFtdAQAAAAHYmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAAlhc3NldElkNTgDCQAAZgAAAAIFAAAABndpbkFtdAUAAAAHYmFsYW5jZQkAAGgAAAACBQAAAAZiZXRBbXQAAAAAAAAAAAIFAAAABndpbkFtdAQAAAANZ2FtZVRpbWVDaGVjawkAAGYAAAACBQAAAA1nYW1lVGltZUZyYW1lCQAAZQAAAAIFAAAABmhlaWdodAUAAAAJZ2FtZVN0YXJ0BAAAAAxzdGF0ZUNvcnJlY3QJAAAAAAAAAgUAAAAJZ2FtZVN0YXRlBQAAAAhzdGF0ZUFjYwMFAAAADHN0YXRlQ29ycmVjdAMFAAAADWdhbWVUaW1lQ2hlY2sDCQAAAAAAAAIFAAAABndpbkFtdAAAAAAAAAAAAAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAA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", "chainId": 84, "height": 707894, "spentComplexity": 0 } View: original | compacted Prev: Es6tbAPdcPhkpapmgUckotW2xsbgewzC8DdP575dBGfi Next: ABgD7TaaoTB3n7q8QC6dXkhKgW4BG6RLYuTQuj56kzRn Diff:
OldNewDifferences
100100 else throw("Bet amount is not in range")
101101
102102
103-func increaseReservedBalance (pmtAmt,pmtAssetName) = {
103+func increaseReservedBalance (pmtAmt,pmtAssetName,assetId58) = {
104104 let currentReservedBalance = {
105105 let valueReservedBalance = getInteger(this, (pmtAssetName + "_Reserved"))
106106 match valueReservedBalance {
111111 }
112112 }
113113 let newReservedBalance = (currentReservedBalance + pmtAmt)
114- if ((wavesBalance(this) >= newReservedBalance))
114+ if ((assetBalance(this, assetId58) >= newReservedBalance))
115115 then {
116116 let increaseReservedBalance = newReservedBalance
117117 increaseReservedBalance
213213 else throw("Asset name is incorrect")
214214
215215
216+func assetIdToName (assetId) = if (!(isDefined(assetId)))
217+ then "WAVES"
218+ else if ((assetId == btcId))
219+ then "BTC"
220+ else if ((assetId == ethId))
221+ then "ETH"
222+ else if ((assetId == ltcId))
223+ then "LTC"
224+ else if ((assetId == wctId))
225+ then "WCT"
226+ else if ((assetId == vstId))
227+ then "VST"
228+ else throw("AssetId is incorrect")
229+
230+
216231 @Callable(i)
217232 func makeBet () = {
218233 let pmt = extract(i.payment)
219234 let betAmount = (pmt.amount - commission)
235+ let assetId = pmt.assetId
220236 let gameId = toBase58String(i.transactionId)
221237 let gameStart = height
222238 let playerPublicKey = toBase58String(i.callerPublicKey)
223- let pmtAssetName = if (!(isDefined(pmt.assetId)))
224- then "WAVES"
225- else if ((pmt.assetId == btcId))
226- then "BTC"
227- else if ((pmt.assetId == ethId))
228- then "ETH"
229- else if ((pmt.assetId == ltcId))
230- then "LTC"
231- else if ((pmt.assetId == wctId))
232- then "WCT"
233- else if ((pmt.assetId == vstId))
234- then "VST"
235- else throw("AssetId is incorrect")
236- let setReservedBalance = increaseReservedBalance(betAmount, pmtAssetName)
239+ let pmtAssetName = assetIdToName(assetId)
240+ let setReservedBalance = increaseReservedBalance(betAmount, pmtAssetName, pmt.assetId)
237241 let pmtAmtCorrect = pmtAmtCheck(pmtAssetName, betAmount)
238242 if (pmtAmtCorrect)
239243 then {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let rsaPublicKey1 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOkiuz/BV4EjoxGhTmNCbt2TgkbSPH/w69b3F1rKmD61JiPXvvF8L2pI9xOYcW4FmoEZVHlRQtAlaJykl3+rsrECAwEAAQ==")
55
66 let rsaPublicKey2 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnXzbM/V2sDV1ULbPSOlHkldOTWRrHi5fxIkBmuevrClMPVH7rqccwirDNcMdIdwXHI9Adhj9FWjwGIwfU/K6MCAwEAAQ==")
77
88 let rsaPublicKey3 = fromBase64String("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAORDevy0r4kzLqOySloB63Huv2e4zeHKHjCsy5vtFKmWZbXJa8gZYt4+EklFIo1K9oqu5BAPVfJ3FOzs2U1A+g0CAwEAAQ==")
99
1010 let drum1 = ["2", "1", "2", "5", "1", "3", "1", "3", "4", "3", "4", "2", "1", "5", "2", "7", "4", "6", "1", "3"]
1111
1212 let drum2 = ["7", "6", "3", "1", "4", "2", "1", "2", "5", "3", "1", "4", "3", "6", "5", "2", "1", "1", "2", "4"]
1313
1414 let drum3 = ["4", "3", "1", "6", "5", "7", "4", "3", "6", "1", "2", "4", "3", "1", "2", "5", "2", "1", "5", "1"]
1515
1616 let gameTimeFrame = (1440 * 2)
1717
1818 let commission = 500000
1919
2020 let stateAcc = "Accepted"
2121
2222 let stateWin = "Win"
2323
2424 let stateTimeout = "WinByTimeout"
2525
2626 let stateLose = "Lose"
2727
2828 let wavesId = unit
2929
3030 let btcId = base58'Gt4HLkHunts7bWbtYP5UCsAPW7TUA4gmQEnjgjbZ2NqB'
3131
3232 let ethId = base58'6A79GDQj8bdHqUaoJQ3qE1TCPnBc3wFirNCSsAY5RKry'
3333
3434 let ltcId = base58'7oRhs4zoufHM4KiBDuJwRXUWb9JQaFt98N8ubpmytMmw'
3535
3636 let vstId = base58'5UyDjBMx1Q8UWhJj1r7JuA6h4aCkKrHE1J19HvMXRpRd'
3737
3838 let wctId = base58'Ae5W927iuKSLLT6Sdt3bqWze6ZUbYHDWzPY6dLKQusZv'
3939
4040 let divider = 1000
4141
4242 let WavesMinAmt = (100000000 / divider)
4343
4444 let WavesMaxAmt = (WavesMinAmt * 10)
4545
4646 let BtcMinAmt = (10000 / divider)
4747
4848 let BtcMaxAmt = (BtcMinAmt * 10)
4949
5050 let EthMinAmt = (1000000 / divider)
5151
5252 let EthMaxAmt = (EthMinAmt * 10)
5353
5454 let LtcMinAmt = (2000000 / divider)
5555
5656 let LtcMaxAmt = (LtcMinAmt * 10)
5757
5858 let WctMinAmt = (500000000 / divider)
5959
6060 let WctMaxAmt = (WctMinAmt * 10)
6161
6262 let VstMinAmt = (500000000 / divider)
6363
6464 let VstMaxAmt = (VstMinAmt * 10)
6565
6666 func pmtAmtCheck (pmtAssetId,betAmount) = if ((pmtAssetId == "WAVES"))
6767 then if (if ((betAmount >= WavesMinAmt))
6868 then (WavesMaxAmt >= betAmount)
6969 else false)
7070 then true
7171 else throw("Bet amount is not in range")
7272 else if ((pmtAssetId == "BTC"))
7373 then if (if ((betAmount >= BtcMinAmt))
7474 then (BtcMaxAmt >= betAmount)
7575 else false)
7676 then true
7777 else throw("Bet amount is not in range")
7878 else if ((pmtAssetId == "ETH"))
7979 then if (if ((betAmount >= EthMinAmt))
8080 then (EthMaxAmt >= betAmount)
8181 else false)
8282 then true
8383 else throw("Bet amount is not in range")
8484 else if ((pmtAssetId == "LTC"))
8585 then if (if ((betAmount >= LtcMinAmt))
8686 then (LtcMaxAmt >= betAmount)
8787 else false)
8888 then true
8989 else throw("Bet amount is not in range")
9090 else if ((pmtAssetId == "WCT"))
9191 then if (if ((betAmount >= WctMinAmt))
9292 then (WctMaxAmt >= betAmount)
9393 else false)
9494 then true
9595 else throw("Bet amount is not in range")
9696 else if (if ((betAmount >= VstMinAmt))
9797 then (VstMaxAmt >= betAmount)
9898 else false)
9999 then true
100100 else throw("Bet amount is not in range")
101101
102102
103-func increaseReservedBalance (pmtAmt,pmtAssetName) = {
103+func increaseReservedBalance (pmtAmt,pmtAssetName,assetId58) = {
104104 let currentReservedBalance = {
105105 let valueReservedBalance = getInteger(this, (pmtAssetName + "_Reserved"))
106106 match valueReservedBalance {
107107 case a: Int =>
108108 a
109109 case _ =>
110110 0
111111 }
112112 }
113113 let newReservedBalance = (currentReservedBalance + pmtAmt)
114- if ((wavesBalance(this) >= newReservedBalance))
114+ if ((assetBalance(this, assetId58) >= newReservedBalance))
115115 then {
116116 let increaseReservedBalance = newReservedBalance
117117 increaseReservedBalance
118118 }
119119 else throw("Bet was rejected. Insufficient funds on game account.")
120120 }
121121
122122
123123 func getDataList (gameId) = {
124124 let getDataString = getString(this, (gameId + "_GameId"))
125125 let a = match getDataString {
126126 case a: String =>
127127 a
128128 case _ =>
129129 throw("GameId was not found")
130130 }
131131 split(a, "_")
132132 }
133133
134134
135135 func rsaToInt (gameId,rsaSign,rsaPublicKey) = {
136136 let rsaCheck = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), rsaPublicKey)
137137 if (rsaCheck)
138138 then {
139139 let rsaInt = (toInt(sha256(fromBase64String(rsaSign))) % 19)
140140 if (if ((rsaInt >= 0))
141141 then (19 >= rsaInt)
142142 else false)
143143 then rsaInt
144144 else throw("Integer is not in range")
145145 }
146146 else throw("Rsa Signature is invalid")
147147 }
148148
149149
150150 func decreaseReservedBalance (betAmt,assetId) = {
151151 let valueReservedBalance = getInteger(this, (assetId + "_Reserved"))
152152 let extractReservedBalance = match valueReservedBalance {
153153 case a: Int =>
154154 a
155155 case _ =>
156156 0
157157 }
158158 let decreaseReservedBalance = (extractReservedBalance - betAmt)
159159 if ((decreaseReservedBalance >= 0))
160160 then decreaseReservedBalance
161161 else throw("Reserved balance couldn't be less than 0")
162162 }
163163
164164
165165 func drumIntToString (drumInt) = if ((10 > drumInt))
166166 then ("0" + toString(drumInt))
167167 else toString(drumInt)
168168
169169
170170 func defineMultiplier (threeInARow,twoInARow) = if ((threeInARow == "777"))
171171 then 5370
172172 else if ((threeInARow == "666"))
173173 then 1300
174174 else if ((threeInARow == "555"))
175175 then 450
176176 else if ((threeInARow == "444"))
177177 then 200
178178 else if ((threeInARow == "333"))
179179 then 150
180180 else if ((threeInARow == "222"))
181181 then 110
182182 else if ((threeInARow == "111"))
183183 then 40
184184 else if ((twoInARow == "77"))
185185 then 270
186186 else if ((twoInARow == "66"))
187187 then 130
188188 else if ((twoInARow == "55"))
189189 then 65
190190 else if ((twoInARow == "44"))
191191 then 30
192192 else if ((twoInARow == "33"))
193193 then 20
194194 else if ((twoInARow == "22"))
195195 then 15
196196 else if ((twoInARow == "11"))
197197 then 10
198198 else 0
199199
200200
201201 func AssetNameToBase58 (assetName) = if ((assetName == "WAVES"))
202202 then wavesId
203203 else if ((assetName == "BTC"))
204204 then btcId
205205 else if ((assetName == "ETH"))
206206 then ethId
207207 else if ((assetName == "LTC"))
208208 then ltcId
209209 else if ((assetName == "VST"))
210210 then vstId
211211 else if ((assetName == "WCT"))
212212 then wctId
213213 else throw("Asset name is incorrect")
214214
215215
216+func assetIdToName (assetId) = if (!(isDefined(assetId)))
217+ then "WAVES"
218+ else if ((assetId == btcId))
219+ then "BTC"
220+ else if ((assetId == ethId))
221+ then "ETH"
222+ else if ((assetId == ltcId))
223+ then "LTC"
224+ else if ((assetId == wctId))
225+ then "WCT"
226+ else if ((assetId == vstId))
227+ then "VST"
228+ else throw("AssetId is incorrect")
229+
230+
216231 @Callable(i)
217232 func makeBet () = {
218233 let pmt = extract(i.payment)
219234 let betAmount = (pmt.amount - commission)
235+ let assetId = pmt.assetId
220236 let gameId = toBase58String(i.transactionId)
221237 let gameStart = height
222238 let playerPublicKey = toBase58String(i.callerPublicKey)
223- let pmtAssetName = if (!(isDefined(pmt.assetId)))
224- then "WAVES"
225- else if ((pmt.assetId == btcId))
226- then "BTC"
227- else if ((pmt.assetId == ethId))
228- then "ETH"
229- else if ((pmt.assetId == ltcId))
230- then "LTC"
231- else if ((pmt.assetId == wctId))
232- then "WCT"
233- else if ((pmt.assetId == vstId))
234- then "VST"
235- else throw("AssetId is incorrect")
236- let setReservedBalance = increaseReservedBalance(betAmount, pmtAssetName)
239+ let pmtAssetName = assetIdToName(assetId)
240+ let setReservedBalance = increaseReservedBalance(betAmount, pmtAssetName, pmt.assetId)
237241 let pmtAmtCorrect = pmtAmtCheck(pmtAssetName, betAmount)
238242 if (pmtAmtCorrect)
239243 then {
240244 let dataString = ((((((((stateAcc + "_") + playerPublicKey) + "_") + toString(betAmount)) + "_") + pmtAssetName) + "_") + toString(gameStart))
241245 WriteSet([DataEntry((gameId + "_GameId"), dataString), DataEntry((pmtAssetName + "_Reserved"), setReservedBalance)])
242246 }
243247 else throw("assetId is incorrect")
244248 }
245249
246250
247251
248252 @Callable(i)
249253 func playGame (gameId,rsaSign1,rsaSign2,rsaSign3) = {
250254 let dataList = getDataList(gameId)
251255 let gameState = dataList[0]
252256 let playerAddress = addressFromPublicKey(fromBase58String(dataList[1]))
253257 let betAmt = parseIntValue(dataList[2])
254258 let assetName = dataList[3]
255259 let gameStart = parseIntValue(dataList[4])
256260 let assetId58 = AssetNameToBase58(assetName)
257261 let setReservedBalance = decreaseReservedBalance(betAmt, assetName)
258262 let drum1Int = rsaToInt(gameId, rsaSign1, rsaPublicKey1)
259263 let drum2Int = rsaToInt(gameId, rsaSign2, rsaPublicKey2)
260264 let drum3Int = rsaToInt(gameId, rsaSign3, rsaPublicKey3)
261265 let threeInARow = ((drum1[drum1Int] + drum2[drum2Int]) + drum3[drum3Int])
262266 let twoInARow = (drum1[drum1Int] + drum2[drum2Int])
263267 let droppedElementsString = {
264268 let drum1ToString = drumIntToString(drum1Int)
265269 let drum2ToString = drumIntToString(drum2Int)
266270 let drum3ToString = drumIntToString(drum3Int)
267271 ((drum1ToString + drum2ToString) + drum3ToString)
268272 }
269273 let winAmt = {
270274 let multiplier = defineMultiplier(threeInARow, twoInARow)
271275 ((betAmt * multiplier) / 10)
272276 }
273277 let winPmtAmt = {
274278 let balance = assetBalance(this, assetId58)
275279 if ((winAmt > balance))
276280 then (betAmt * 2)
277281 else winAmt
278282 }
279283 let gameTimeCheck = (gameTimeFrame > (height - gameStart))
280284 let stateCorrect = (gameState == stateAcc)
281285 if (stateCorrect)
282286 then if (gameTimeCheck)
283287 then if ((winAmt == 0))
284288 then WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateLose + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4]) + "_") + toString(winAmt)) + "_") + threeInARow) + "_") + droppedElementsString)), DataEntry((assetName + "_Reserved"), setReservedBalance)])
285289 else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateWin + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4]) + "_") + toString(winAmt)) + "_") + threeInARow) + "_") + droppedElementsString)), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, winPmtAmt, assetId58)]))
286290 else ScriptResult(WriteSet([DataEntry((gameId + "_GameId"), ((((((((((((((stateTimeout + "_") + dataList[1]) + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4]) + "_") + toString((betAmt * 2))) + "_") + "000") + "_") + "000000")), DataEntry((assetName + "_Reserved"), setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, betAmt, assetId58)]))
287291 else throw("Game state is incorrect")
288292 }
289293
290294
291295 @Verifier(tx)
292296 func verify () = match tx {
293297 case ttx: TransferTransaction =>
294298 let assetName = if (!(isDefined(ttx.assetId)))
295299 then "WAVES"
296300 else if ((ttx.assetId == btcId))
297301 then "BTC"
298302 else if ((ttx.assetId == ethId))
299303 then "ETH"
300304 else if ((ttx.assetId == ltcId))
301305 then "LTC"
302306 else if ((ttx.assetId == wctId))
303307 then "WCT"
304308 else if ((ttx.assetId == vstId))
305309 then "VST"
306310 else throw("AssetId is incorrect")
307311 let valueReservedBalance = getInteger(this, (assetName + "_Reserved"))
308312 let reservedBalance = match valueReservedBalance {
309313 case a: Int =>
310314 a
311315 case _ =>
312316 0
313317 }
314318 let availableBalance = (wavesBalance(this) - reservedBalance)
315319 let availibleAmount = (availableBalance >= ttx.amount)
316320 let signature = sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
317321 if (availibleAmount)
318322 then signature
319323 else false
320324 case sstx: SetScriptTransaction =>
321325 sigVerify(sstx.bodyBytes, sstx.proofs[0], sstx.senderPublicKey)
322326 case istx: InvokeScriptTransaction =>
323327 sigVerify(istx.bodyBytes, istx.proofs[0], istx.senderPublicKey)
324328 case _ =>
325329 false
326330 }
327331

github/deemru/w8io/873ac7e 
56.44 ms