tx · 5FK2JTuMBw3L5QccJKEiRiEY2VyEatiWCVCLS5Ps6SJd

3N6ckafdM1JXnQkhKv7vHSSuwq5ebwY4G4y:  -0.01500000 Waves

2021.02.10 12:28 [1391902] smart account 3N6ckafdM1JXnQkhKv7vHSSuwq5ebwY4G4y > SELF 0.00000000 Waves

{ "type": 13, "id": "5FK2JTuMBw3L5QccJKEiRiEY2VyEatiWCVCLS5Ps6SJd", "fee": 1500000, "feeAssetId": null, "timestamp": 1612949365193, "version": 2, "chainId": 84, "sender": "3N6ckafdM1JXnQkhKv7vHSSuwq5ebwY4G4y", "senderPublicKey": "HxHjiAXoy573P4F6TTXcBi1aGZhcwkxGPSySJMUyN7d9", "proofs": [ "2wjEypbFxD1tSgd3jCpU7s4tAYC6kDJ8jZ64aPfYSagEZK9iWQo56uPB1aN8MLbG1YjLc1MawZziZPFyPGPjtCuW" ], "script": "base64:AAIDAAAAAAAAAA0IARIHCgUBAQEBCBIAAAAAEgAAAAAKZEFwcEFkZHJlcwIAAAArRjlEQ0dpWWdUOHl2QnExQVFGY1NwR0c0cDhzZHpOejltWmN6RHZKNDVMTAAAAAALdGlja2V0QXNzZXQBAAAAIEYc9ZUgYtXiRrToDJgiMgFmnQRu3R1NoyARqb9irygsAAAAAA10b2tlbnNQZXJQbGF5AAAAAAAF9eEAAAAAAA1sb3R0ZXJ5YW1vdW50AgAAAAdfYW1vdW50AAAAABJsb3R0ZXJ5cHJvYmFiaWxpdHkCAAAADF9wcm9iYWJpbGl0eQAAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAIAAAAUX3Byb2JhYmlsaXR5X2RlY2ltYWwAAAAADGxvdHRlcnlQcmljZQIAAAAGX3ByaWNlAAAAAA1sb3R0ZXJ5UHJpY2VzAgAAAA9fbG90dGVyeV9wcmljZXMAAAAADmxvdHRlcnlBc3NldElkAgAAABFfbG90dGVyeV9hc3NldF9pZAAAAAANY291bnRPZlByaWNlcwIAAAANX2NvdW50X3ByaWNlcwAAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXICAAAAFWxhc3Rfc3Bpbl9yYW5kb21faGFzaAAAAAATbGFzdFRva2VuUmFuZG9tSGFzaAIAAAAWbGFzdF90b2tlbl9yYW5kb21faGFzaAAAAAAQYWxsb3dTaXplTG90dGVyeQAAAAAAAAAABQEAAAAKcmFuZG9taXplcgAAAAEAAAADaW52BAAAAAhsYXN0UGxheQQAAAAHJG1hdGNoMAkABBwAAAACBQAAAAR0aGlzBQAAABRsYXN0SGFzaFJhbmRvbU51bWJlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAEAAAAMV2F2ZXNMb3R0b1YyCQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgUAAAAIbGFzdFBsYXkIBQAAAANpbnYAAAANdHJhbnNhY3Rpb25JZAgFAAAAA2ludgAAAA9jYWxs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YXRlcHJvYmFiaWxpdHkAAAAFAAAAC3Byb2JhYmlsaXR5AAAABmFtb3VudAAAAAlwb29scHJpY2UAAAALcHJvYkRlY2ltYWwAAAAHYXNzZXRJZAQAAAAFdG9rZW4JAAJaAAAAAQkBAAAAE2dlbmVyYXRvclJhbmRvbUhhc2gAAAABBQAAAAFpBAAAABBwYXltZW50SXNEZWZpbmVkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAWkAAAAHcGF5bWVudAcGBAAAAA5sb3R0ZXJ5QXNzZXRUTgMJAAAAAAAAAgUAAAAHYXNzZXRJZAIAAAAABgcEAAAAE3RvdGFsUmVxdWlyZWRBbW91bnQJAABoAAAAAgUAAAAGYW1vdW50BQAAAAlwb29scHJpY2UDCQAAAAAAAAIFAAAAEHBheW1lbnRJc0RlZmluZWQGBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAADnBheW1lbnRBc3NldElkBAAAAAckbWF0Y2gwCAUAAAAHcGF5bWVudAAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAFhBQAAAAckbWF0Y2gwCQACWAAAAAEFAAAAAWEDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQCAAAAAAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgQAAAANcGF5bWVudEFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50AwkBAAAAAiE9AAAAAgUAAAAOcGF5bWVudEFzc2V0SWQFAAAAB2Fzc2V0SWQJAAACAAAAAQIAAAArQXNzZXQgSWQgbm90IG1hdGNoaW5nIHdpdGggUGF5bWVudCBBc3NldCBJZAMJAABmAAAAAgUAAAATdG90YWxSZXF1aXJlZEFtb3VudAUAAAANcGF5bWVudEFtb3VudAkAAAIAAAABAgAAABdOb3QgZW5vdWdoIEFzc2V0IEFtb3VudAQAAAAJdGVtcFZhbHVlBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAADWxvdHRlcnlQcmljZXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUA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Mzg5NDg4CQEAAAAXZ2VuZXJhdGVOZXdMaXN0T2ZQcmljZXMAAAACBQAAAA0kYWNjMDk0Mzg5NDg4CQABkQAAAAIFAAAADSRsaXN0OTQzODk0ODgAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplOTQzODk0ODgAAAAAAAAAAAEFAAAADSRhY2MxOTQzODk0ODgEAAAADSRhY2MyOTQzODk0ODgJAQAAABdnZW5lcmF0ZU5ld0xpc3RPZlByaWNlcwAAAAIFAAAADSRhY2MxOTQzODk0ODgJAAGRAAAAAgUAAAANJGxpc3Q5NDM4OTQ4OAAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU5NDM4OTQ4OAAAAAAAAAAAAgUAAAANJGFjYzI5NDM4OTQ4OAQAAAANJGFjYzM5NDM4OTQ4OAkBAAAAF2dlbmVyYXRlTmV3TGlzdE9mUHJpY2VzAAAAAgUAAAANJGFjYzI5NDM4OTQ4OAkAAZEAAAACBQAAAA0kbGlzdDk0Mzg5NDg4AAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTk0Mzg5NDg4AAAAAAAAAAADBQAAAA0kYWNjMzk0Mzg5NDg4BAAAAA0kYWNjNDk0Mzg5NDg4CQEAAAAXZ2VuZXJhdGVOZXdMaXN0T2ZQcmljZXMAAAACBQAAAA0kYWNjMzk0Mzg5NDg4CQABkQAAAAIFAAAADSRsaXN0OTQzODk0ODgAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplOTQzODk0ODgAAAAAAAAAAAQFAAAADSRhY2M0OTQzODk0ODgEAAAADSRhY2M1OTQzODk0ODgJAQAAABdnZW5lcmF0ZU5ld0xpc3RPZlByaWNlcwAAAAIFAAAADSRhY2M0OTQzODk0ODgJAAGRAAAAAgUAAAANJGxpc3Q5NDM4OTQ4OAAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU5NDM4OTQ4OAAAAAAAAAAABQUAAAANJGFjYzU5NDM4OTQ4OAQAAAANJGFjYzY5NDM4OTQ4OAkBAAAAF2dlbmVyYXRlTmV3TGlzdE9mUHJpY2VzAAAAAgUAAAANJGFjYzU5NDM4OTQ4OAkAAZEAAAACBQAAAA0kbGlzdDk0Mzg5NDg4AAAAAAAAAAAFCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgNQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgUAAAASc3RvcmVkVG9rZW5zVmFsdWVzAgAAAAQgOjogBQAAAAV0b2tlbgQAAAAJd3JpdGVTZXRzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAAD193aW5uaW5nX3Rva2VuXwUAAAAFdG9rZW4JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAATX3dpbmlubmluZ19hZGRyZXNzXwUAAAAKY3VycmVudEtleQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAV0b2tlbgUAAAANbG90dGVyeWFtb3VudAUAAAAMYWN0dWFsQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABRsYXN0SGFzaFJhbmRvbU51bWJlcgUAAAAKcmFuZE51bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAYQ29uZ3JhdHVsYXRpb25zIHlvdSB3b24hBQAAAANuaWwDCQAAAAAAAAIFAAAADHRva2VuQXNzZXRJZAIAAAAABAAAAAt3aW5UcmFuc2ZlcgkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACnRva2VuUHJpY2UFAAAABHVuaXQFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAACXdyaXRlU2V0cwUAAAALd2luVHJhbnNmZXIEAAAADWFjdHVhbEFzc2V0SWQJAAJZAAAAAQUAAAAMdG9rZW5Bc3NldElkBAAAAAt3aW5UcmFuc2ZlcgkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACnRva2VuUHJpY2UFAAAADWFjdHVhbEFzc2V0SWQFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAACXdyaXRlU2V0cwUAAAALd2luVHJhbnNmZXIAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmmG1kY", "height": 1391902, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let dAppAddres = "F9DCGiYgT8yvBq1AQFcSpGG4p8sdzNz9mZczDvJ45LL"
5+
6+let ticketAsset = base58'5ih9jd4KV9kSey55yvKMgLSHcwsYYkQ4pRDJtRNoxUhy'
7+
8+let tokensPerPlay = 100000000
9+
10+let lotteryamount = "_amount"
11+
12+let lotteryprobability = "_probability"
13+
14+let lotteryprobabilitydecimal = "_probability_decimal"
15+
16+let lotteryPrice = "_price"
17+
18+let lotteryPrices = "_lottery_prices"
19+
20+let lotteryAssetId = "_lottery_asset_id"
21+
22+let countOfPrices = "_count_prices"
23+
24+let lastHashRandomNumber = "last_spin_random_hash"
25+
26+let lastTokenRandomHash = "last_token_random_hash"
27+
28+let allowSizeLottery = 5
29+
30+func randomizer (inv) = {
31+ let lastPlay = match getBinary(this, lastHashRandomNumber) {
32+ case s: ByteVector =>
33+ s
34+ case _: Unit =>
35+ base58'2ee4oFDYriWJ9EMeR'
36+ case _ =>
37+ throw("Match error")
38+ }
39+ let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
40+ sha256(rand)
41+ }
42+
43+
44+func generatorRandomHash (inv) = {
45+ let lastHashForToken = match getBinary(this, lastTokenRandomHash) {
46+ case s: ByteVector =>
47+ s
48+ case _: Unit =>
49+ base58'4dD7osCQzvuXJdTiGfKvTwnKT'
50+ case _ =>
51+ throw("Match error")
52+ }
53+ let rand = (((((lastHashForToken + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
54+ sha256(rand)
55+ }
56+
57+
58+func getPriceArray () = {
59+ let tempPrices = getStringValue(this, lotteryPrices)
60+ let trimPrices = take(tempPrices, (size(tempPrices) - 1))
61+ let newArray = split(trimPrices, ",")
62+ newArray
63+ }
64+
65+
66+func generateNewListOfPrices (token,val) = {
67+ let indexOfComma = indexOf(token, ",")
68+ let isTokenVal = if ((token != val))
69+ then true
70+ else false
71+ if (if (isDefined(indexOfComma))
72+ then isTokenVal
73+ else false)
74+ then ((token + val) + ",,")
75+ else (val + ",")
76+ }
77+
78+
79+func procedLottery (win,token) = if (if (isDefined(token))
80+ then true
81+ else (token != ""))
82+ then {
83+ let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
84+ let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
85+ let probabilityValue = (tokenProbabilityDecimal * 1000)
86+ let probCompare = (tokenProbabilityDecimal % probabilityValue)
87+ let sizeOfWin = size(win)
88+ if ((sizeOfWin == 1))
89+ then {
90+ let randomNumber = win[0]
91+ let comp = toInt(fromBase64String(randomNumber))
92+ if ((probCompare > comp))
93+ then token :: win
94+ else win
95+ }
96+ else win
97+ }
98+ else win
99+
100+
101+@Callable(i)
102+func updateprobability (probability,amount,poolprice,probDecimal,assetId) = {
103+ let token = toBase64String(generatorRandomHash(i))
104+ let paymentIsDefined = if (!(isDefined(i.payment)))
105+ then false
106+ else true
107+ let lotteryAssetTN = if ((assetId == ""))
108+ then true
109+ else false
110+ let totalRequiredAmount = (amount * poolprice)
111+ if ((paymentIsDefined == true))
112+ then {
113+ let payment = extract(i.payment)
114+ let paymentAssetId = match payment.assetId {
115+ case a: ByteVector =>
116+ toBase58String(a)
117+ case _: Unit =>
118+ ""
119+ case _ =>
120+ throw("Match error")
121+ }
122+ let paymentAmount = payment.amount
123+ if ((paymentAssetId != assetId))
124+ then throw("Asset Id not matching with Payment Asset Id")
125+ else if ((totalRequiredAmount > paymentAmount))
126+ then throw("Not enough Asset Amount")
127+ else {
128+ let tempValue = match getString(this, lotteryPrices) {
129+ case a: String =>
130+ a
131+ case _: Unit =>
132+ ""
133+ case _ =>
134+ throw("Match error")
135+ }
136+ let containKey = indexOf(tempValue, token)
137+ let storedTokensValues = match containKey {
138+ case _: Unit =>
139+ ((tempValue + token) + ",")
140+ case x: Int =>
141+ throw("Token is duplicated")
142+ case _ =>
143+ throw("Match error")
144+ }
145+ let countTokens = match getInteger(this, countOfPrices) {
146+ case a: Int =>
147+ a
148+ case _: Unit =>
149+ 0
150+ case _ =>
151+ throw("Match error")
152+ }
153+ if ((allowSizeLottery > countTokens))
154+ then {
155+ let updateLotteryPool = WriteSet([DataEntry((token + lotteryamount), amount), DataEntry((token + lotteryprobability), probability), DataEntry((token + lotteryPrice), poolprice), DataEntry(lotteryPrices, storedTokensValues), DataEntry(countOfPrices, (countTokens + 1)), DataEntry((token + lotteryprobabilitydecimal), probDecimal), DataEntry((token + lotteryAssetId), assetId), DataEntry(lastTokenRandomHash, token)])
156+ ScriptResult(updateLotteryPool, TransferSet(nil))
157+ }
158+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
159+ }
160+ }
161+ else {
162+ let tnBalance = if (lotteryAssetTN)
163+ then wavesBalance(this)
164+ else assetBalance(this, fromBase64String(assetId))
165+ if ((totalRequiredAmount > tnBalance))
166+ then throw("Not enough Asset Amount")
167+ else {
168+ let tempValue = match getString(this, lotteryPrices) {
169+ case a: String =>
170+ a
171+ case _: Unit =>
172+ ""
173+ case _ =>
174+ throw("Match error")
175+ }
176+ let containKey = indexOf(tempValue, token)
177+ let storedTokensValues = match containKey {
178+ case _: Unit =>
179+ ((tempValue + token) + ",")
180+ case x: Int =>
181+ throw("Token is duplicated")
182+ case _ =>
183+ throw("Match error")
184+ }
185+ let countTokens = match getInteger(this, countOfPrices) {
186+ case a: Int =>
187+ a
188+ case _: Unit =>
189+ 0
190+ case _ =>
191+ throw("Match error")
192+ }
193+ if ((allowSizeLottery > countTokens))
194+ then {
195+ let updateLotteryPool = WriteSet([DataEntry((token + lotteryamount), amount), DataEntry((token + lotteryprobability), probability), DataEntry((token + lotteryPrice), poolprice), DataEntry(lotteryPrices, storedTokensValues), DataEntry(countOfPrices, (countTokens + 1)), DataEntry((token + lotteryprobabilitydecimal), probDecimal), DataEntry((token + lotteryAssetId), assetId), DataEntry(lastTokenRandomHash, token)])
196+ ScriptResult(updateLotteryPool, TransferSet(nil))
197+ }
198+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
199+ }
200+ }
201+ }
202+
203+
204+
205+@Callable(i)
206+func startlotto () = {
207+ let currentKey = toBase58String(i.caller.bytes)
208+ let randhash = randomizer(i)
209+ let countTokens = match getInteger(this, countOfPrices) {
210+ case a: Int =>
211+ a
212+ case _: Unit =>
213+ 0
214+ case _ =>
215+ throw("Match error")
216+ }
217+ let priceList = getPriceArray()
218+ let randNumber = toBase64String(randhash)
219+ let winningToken = {
220+ let $list82868333 = priceList
221+ let $size82868333 = size($list82868333)
222+ let $acc082868333 = [randNumber]
223+ if (($size82868333 == 0))
224+ then $acc082868333
225+ else {
226+ let $acc182868333 = procedLottery($acc082868333, $list82868333[0])
227+ if (($size82868333 == 1))
228+ then $acc182868333
229+ else {
230+ let $acc282868333 = procedLottery($acc182868333, $list82868333[1])
231+ if (($size82868333 == 2))
232+ then $acc282868333
233+ else {
234+ let $acc382868333 = procedLottery($acc282868333, $list82868333[2])
235+ if (($size82868333 == 3))
236+ then $acc382868333
237+ else {
238+ let $acc482868333 = procedLottery($acc382868333, $list82868333[3])
239+ if (($size82868333 == 4))
240+ then $acc482868333
241+ else {
242+ let $acc582868333 = procedLottery($acc482868333, $list82868333[4])
243+ if (($size82868333 == 5))
244+ then $acc582868333
245+ else {
246+ let $acc682868333 = procedLottery($acc582868333, $list82868333[5])
247+ throw("List size exceed 5")
248+ }
249+ }
250+ }
251+ }
252+ }
253+ }
254+ }
255+ let sizeOfWinPrices = size(winningToken)
256+ if ((sizeOfWinPrices == 1))
257+ then {
258+ let writeSets = WriteSet([DataEntry("message", "Better luck next time!")])
259+ ScriptResult(writeSets, TransferSet(nil))
260+ }
261+ else {
262+ let token = winningToken[0]
263+ let currentAmount = getIntegerValue(this, (token + lotteryamount))
264+ if ((currentAmount == 0))
265+ then throw("Amount exceeded")
266+ else {
267+ let actualAmount = (currentAmount - 1)
268+ let tokenPrice = getIntegerValue(this, (token + lotteryPrice))
269+ let tokenAssetId = getStringValue(this, (token + lotteryAssetId))
270+ if ((actualAmount == 0))
271+ then {
272+ let storedTokensValues = {
273+ let $list94389488 = priceList
274+ let $size94389488 = size($list94389488)
275+ let $acc094389488 = token
276+ if (($size94389488 == 0))
277+ then $acc094389488
278+ else {
279+ let $acc194389488 = generateNewListOfPrices($acc094389488, $list94389488[0])
280+ if (($size94389488 == 1))
281+ then $acc194389488
282+ else {
283+ let $acc294389488 = generateNewListOfPrices($acc194389488, $list94389488[1])
284+ if (($size94389488 == 2))
285+ then $acc294389488
286+ else {
287+ let $acc394389488 = generateNewListOfPrices($acc294389488, $list94389488[2])
288+ if (($size94389488 == 3))
289+ then $acc394389488
290+ else {
291+ let $acc494389488 = generateNewListOfPrices($acc394389488, $list94389488[3])
292+ if (($size94389488 == 4))
293+ then $acc494389488
294+ else {
295+ let $acc594389488 = generateNewListOfPrices($acc494389488, $list94389488[4])
296+ if (($size94389488 == 5))
297+ then $acc594389488
298+ else {
299+ let $acc694389488 = generateNewListOfPrices($acc594389488, $list94389488[5])
300+ throw("List size exceed 5")
301+ }
302+ }
303+ }
304+ }
305+ }
306+ }
307+ }
308+ throw(((storedTokensValues + " :: ") + token))
309+ }
310+ else {
311+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_token_"), token), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((token + lotteryamount), actualAmount), DataEntry(lastHashRandomNumber, randNumber), DataEntry("message", "Congratulations you won!")])
312+ if ((tokenAssetId == ""))
313+ then {
314+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, unit)])
315+ ScriptResult(writeSets, winTransfer)
316+ }
317+ else {
318+ let actualAssetId = fromBase58String(tokenAssetId)
319+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, actualAssetId)])
320+ ScriptResult(writeSets, winTransfer)
321+ }
322+ }
323+ }
324+ }
325+ }
326+
327+
328+@Verifier(tx)
329+func verify () = match tx {
330+ case _ =>
331+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
332+}
333+

github/deemru/w8io/3ef1775 
33.99 ms