tx · 6DQBggNpcesvRZqAHonWakpvGs4Muv8bLs6jZVsQaWdq

3N2nnkJwGoThKzFVz3fKHz8JfvFNE7rGARX:  -0.01500000 Waves

2021.03.11 16:14 [1433070] smart account 3N2nnkJwGoThKzFVz3fKHz8JfvFNE7rGARX > SELF 0.00000000 Waves

{ "type": 13, "id": "6DQBggNpcesvRZqAHonWakpvGs4Muv8bLs6jZVsQaWdq", "fee": 1500000, "feeAssetId": null, "timestamp": 1615468467455, "version": 2, "chainId": 84, "sender": "3N2nnkJwGoThKzFVz3fKHz8JfvFNE7rGARX", "senderPublicKey": "Eob8gpJayed6vxdpw5QhgQesbrbEQhJKVx93pFnfoFdz", "proofs": [ "5QgVr5Eeuax5XmBBaYHcpY3bEaSFWs1JLQopd7gBSVMBwJ1GxBPTw8KHkCS3Sf3kWceEsuDWftK4m68Qerdzs28f" ], "script": "base64:AAIDAAAAAAAAAAYIARIAEgAAAAAVAAAAAApkQXBwQWRkcmVzAgAAACtGOURDR2lZZ1Q4eXZCcTFBUUZjU3BHRzRwOHNkek56OW1aY3pEdko0NUxMAAAAAAx0b2tlbkFzc2V0SWQCAAAALDVpaDlqZDRLVjlrU2V5NTV5dktNZ0xTSGN3c1lZa1E0cFJESnRSTm94VWh5AAAAAA11c2VHYXJsaWNDb2luBwAAAAANdG9rZW5zUGVyUGxheQAAAAAAAAAAZAAAAAANbG90dGVyeWFtb3VudAIAAAAHX2Ftb3VudAAAAAASbG90dGVyeXByb2JhYmlsaXR5AgAAAAxfcHJvYmFiaWxpdHkAAAAAGWxvdHRlcnlwcm9iYWJpbGl0eWRlY2ltYWwCAAAAFF9wcm9iYWJpbGl0eV9kZWNpbWFsAAAAABVsb3R0ZXJ5V2lubmluZ0FkZHJlc3MCAAAAEF93aW5uaW5nX2FkZHJlc3MAAAAADGxvdHRlcnlQcmljZQIAAAAGX3ByaWNlAAAAAA1sb3R0ZXJ5UHJpY2VzAgAAAA9fbG90dGVyeV9wcmljZXMAAAAADmxvdHRlcnlBc3NldElkAgAAABFfbG90dGVyeV9hc3NldF9pZAAAAAANY291bnRPZlByaWNlcwIAAAANX2NvdW50X3ByaWNlcwAAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXICAAAAFWxhc3Rfc3Bpbl9yYW5kb21faGFzaAAAAAAQYWxsb3dTaXplTG90dGVyeQAAAAAAAAAAAgAAAAARdG90YWxQcmljZXNJblBvb2wCAAAAEXRvdGFsX3ByaXplc19wb29sAAAAAAh0b2tlbkFJZAIAAAAlZjJNendybU41d2lNbjVEd2JCTDMzMjQ3ZmRzZjQzMkZWOWtTZQAAAAAIdG9rZW5CSWQCAAAAJWYxTXp3cm1ONHdpTW40RHdiQkw0MzI0MmZzZGY0MzRGZnNkZnMBAAAACnJhbmRvbWl6ZXIAAAABAAAAA2ludgQAAAAIbGFzdFBsYXkEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMD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", "height": 1433070, "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 tokenAssetId = "5ih9jd4KV9kSey55yvKMgLSHcwsYYkQ4pRDJtRNoxUhy"
7+
8+let useGarlicCoin = false
9+
10+let tokensPerPlay = 100
11+
12+let lotteryamount = "_amount"
13+
14+let lotteryprobability = "_probability"
15+
16+let lotteryprobabilitydecimal = "_probability_decimal"
17+
18+let lotteryWinningAddress = "_winning_address"
19+
20+let lotteryPrice = "_price"
21+
22+let lotteryPrices = "_lottery_prices"
23+
24+let lotteryAssetId = "_lottery_asset_id"
25+
26+let countOfPrices = "_count_prices"
27+
28+let lastHashRandomNumber = "last_spin_random_hash"
29+
30+let allowSizeLottery = 2
31+
32+let totalPricesInPool = "total_prizes_pool"
33+
34+let tokenAId = "f2MzwrmN5wiMn5DwbBL33247fdsf432FV9kSe"
35+
36+let tokenBId = "f1MzwrmN4wiMn4DwbBL43242fsdf434Ffsdfs"
37+
38+func randomizer (inv) = {
39+ let lastPlay = match getBinary(this, lastHashRandomNumber) {
40+ case s: ByteVector =>
41+ s
42+ case _: Unit =>
43+ base58'2ee4oFDYriWJ9EMeR'
44+ case _ =>
45+ throw("Match error")
46+ }
47+ let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
48+ sha256(rand)
49+ }
50+
51+
52+func getPriceArray () = {
53+ let currentPrices = match getString(this, lotteryPrices) {
54+ case a: String =>
55+ a
56+ case _: Unit =>
57+ ""
58+ case _ =>
59+ throw("Match error")
60+ }
61+ let sizePrices = size(currentPrices)
62+ if ((sizePrices == 0))
63+ then nil
64+ else {
65+ let trimPrices = take(currentPrices, (size(currentPrices) - 1))
66+ let newArray = split(trimPrices, ",")
67+ newArray
68+ }
69+ }
70+
71+
72+func getCurrentBalance () = if ((useGarlicCoin == true))
73+ then assetBalance(this, fromBase58String(tokenAssetId))
74+ else wavesBalance(this)
75+
76+
77+func procedLottery (win,token) = if (if (isDefined(token))
78+ then true
79+ else (token != ""))
80+ then {
81+ let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
82+ let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
83+ let sizeOfWin = size(win)
84+ if ((sizeOfWin == 1))
85+ then {
86+ let randomNumber = win[0]
87+ let convertedRandomNumber = fromBase64String(randomNumber)
88+ let convertedDecimalNumber = (tokenProbabilityDecimal * 1000)
89+ let comparisonNumber = (toInt(convertedRandomNumber) % convertedDecimalNumber)
90+ if ((tokenProbability > comparisonNumber))
91+ then token :: win
92+ else win
93+ }
94+ else win
95+ }
96+ else win
97+
98+
99+@Callable(i)
100+func setGarlicCoinLottery () = {
101+ let balance = getCurrentBalance()
102+ if ((69 > balance))
103+ then throw("Not enought Amount")
104+ else {
105+ let storedTokensValues = ((tokenAId + ",") + tokenBId)
106+ if (useGarlicCoin)
107+ then {
108+ let updateLotteryPool = WriteSet([DataEntry((tokenAId + lotteryprobability), 69), DataEntry((tokenAId + lotteryPrice), 69), DataEntry((tokenAId + lotteryprobabilitydecimal), 10000), DataEntry((tokenAId + lotteryAssetId), tokenAssetId), DataEntry((tokenBId + lotteryamount), 6900000000), DataEntry((tokenBId + lotteryprobability), 69), DataEntry((tokenBId + lotteryPrice), 6900000000), DataEntry((tokenBId + lotteryprobabilitydecimal), 1000), DataEntry((tokenBId + lotteryAssetId), tokenAssetId), DataEntry(lotteryPrices, storedTokensValues), DataEntry(countOfPrices, 2)])
109+ ScriptResult(updateLotteryPool, TransferSet(nil))
110+ }
111+ else {
112+ let updateLotteryPool = WriteSet([DataEntry((tokenAId + lotteryprobability), 69), DataEntry((tokenAId + lotteryPrice), 69), DataEntry((tokenAId + lotteryprobabilitydecimal), 10000), DataEntry((tokenAId + lotteryAssetId), ""), DataEntry((tokenBId + lotteryamount), 6900000000), DataEntry((tokenBId + lotteryprobability), 69), DataEntry((tokenBId + lotteryPrice), 6900000000), DataEntry((tokenBId + lotteryprobabilitydecimal), 1000), DataEntry((tokenBId + lotteryAssetId), ""), DataEntry(lotteryPrices, storedTokensValues), DataEntry(countOfPrices, 2)])
113+ ScriptResult(updateLotteryPool, TransferSet(nil))
114+ }
115+ }
116+ }
117+
118+
119+
120+@Callable(i)
121+func startlotto () = {
122+ let paymentIsDefined = if (!(isDefined(i.payment)))
123+ then false
124+ else true
125+ if ((paymentIsDefined == true))
126+ then {
127+ let pmt = extract(i.payment)
128+ let actualTokenAssetId = match pmt.assetId {
129+ case t: ByteVector =>
130+ toBase58String(t)
131+ case _: Unit =>
132+ "xx"
133+ case _ =>
134+ throw("Match error")
135+ }
136+ if ((pmt.amount != tokensPerPlay))
137+ then throw("Incorrect asset passed or incorrect quantity passed")
138+ else if (if ((actualTokenAssetId != tokenAssetId))
139+ then (useGarlicCoin == true)
140+ else false)
141+ then throw("Incorrect asset passed or incorrect quantity passed")
142+ else {
143+ let currentKey = toBase58String(i.caller.bytes)
144+ let randhash = randomizer(i)
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+ let priceList = getPriceArray()
154+ let randNumber = toBase64String(randhash)
155+ let updNumber = fromBase64String(randNumber)
156+ let listWinningPrices = [randNumber]
157+ let winningToken = {
158+ let $list63346386 = priceList
159+ let $size63346386 = size($list63346386)
160+ let $acc063346386 = listWinningPrices
161+ if (($size63346386 == 0))
162+ then $acc063346386
163+ else {
164+ let $acc163346386 = procedLottery($acc063346386, $list63346386[0])
165+ if (($size63346386 == 1))
166+ then $acc163346386
167+ else {
168+ let $acc263346386 = procedLottery($acc163346386, $list63346386[1])
169+ if (($size63346386 == 2))
170+ then $acc263346386
171+ else {
172+ let $acc363346386 = procedLottery($acc263346386, $list63346386[2])
173+ if (($size63346386 == 3))
174+ then $acc363346386
175+ else {
176+ let $acc463346386 = procedLottery($acc363346386, $list63346386[3])
177+ if (($size63346386 == 4))
178+ then $acc463346386
179+ else {
180+ let $acc563346386 = procedLottery($acc463346386, $list63346386[4])
181+ throw("List size exceed 4")
182+ }
183+ }
184+ }
185+ }
186+ }
187+ }
188+ let sizeOfWinPrices = size(winningToken)
189+ if ((sizeOfWinPrices == 1))
190+ then {
191+ let writeSets = WriteSet([DataEntry("message", "<h1>Better luck next time!</h1><br><p>Invite more friends to keep playing!<p>"), DataEntry(lastHashRandomNumber, randNumber)])
192+ ScriptResult(writeSets, TransferSet(nil))
193+ }
194+ else {
195+ let token = winningToken[0]
196+ let callerAddress = toBase58String(i.caller.bytes)
197+ let addressBalance = getCurrentBalance()
198+ if ((addressBalance == 0))
199+ then throw("Not Enough Garlic Coin")
200+ else if ((token == tokenAId))
201+ then {
202+ let lotteryPriceTokenA = match getInteger(this, (tokenAId + lotteryPrice)) {
203+ case t: Int =>
204+ t
205+ case _: Unit =>
206+ 0
207+ case _ =>
208+ throw("Match error")
209+ }
210+ let winningAmount = (lotteryPriceTokenA * addressBalance)
211+ let writeSets = WriteSet([DataEntry((token + lotteryamount), winningAmount), DataEntry((token + lotteryWinningAddress), callerAddress), DataEntry(lastHashRandomNumber, randNumber), DataEntry("message", (((("<h1>Congratulations you won!</h1><br><p>You have won " + toString(winningAmount)) + " ") + token) + "!<p>"))])
212+ if (useGarlicCoin)
213+ then {
214+ let winTransfer = TransferSet([ScriptTransfer(i.caller, winningAmount, fromBase58String(tokenAssetId))])
215+ ScriptResult(writeSets, winTransfer)
216+ }
217+ else {
218+ let winTransfer = TransferSet([ScriptTransfer(i.caller, winningAmount, unit)])
219+ ScriptResult(writeSets, winTransfer)
220+ }
221+ }
222+ else if ((token == tokenBId))
223+ then {
224+ let lotteryPriceTokenB = match getInteger(this, (tokenBId + lotteryprobability)) {
225+ case t: Int =>
226+ t
227+ case _: Unit =>
228+ 0
229+ case _ =>
230+ throw("Match error")
231+ }
232+ let writeSets = WriteSet([DataEntry((token + lotteryamount), lotteryPriceTokenB), DataEntry(lastHashRandomNumber, randNumber), DataEntry((token + lotteryWinningAddress), callerAddress), DataEntry("message", (((("<h1>Congratulations you won!</h1><br><p>You have won " + toString(lotteryPriceTokenB)) + " ") + token) + "!<p>"))])
233+ if (useGarlicCoin)
234+ then {
235+ let winTransfer = TransferSet([ScriptTransfer(i.caller, lotteryPriceTokenB, fromBase58String(tokenAssetId))])
236+ ScriptResult(writeSets, winTransfer)
237+ }
238+ else {
239+ let winTransfer = TransferSet([ScriptTransfer(i.caller, lotteryPriceTokenB, unit)])
240+ ScriptResult(writeSets, winTransfer)
241+ }
242+ }
243+ else {
244+ let writeSets = WriteSet([DataEntry("message", "<h1>Better luck next time!</h1><br><p>Invite more friends to keep playing!<p>"), DataEntry(lastHashRandomNumber, randNumber)])
245+ let winTransfer = TransferSet(nil)
246+ ScriptResult(writeSets, TransferSet(nil))
247+ }
248+ }
249+ }
250+ }
251+ else throw((("You need " + tokenAssetId) + " to play this game."))
252+ }
253+
254+
255+@Verifier(tx)
256+func verify () = match tx {
257+ case _ =>
258+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
259+}
260+

github/deemru/w8io/169f3d6 
36.59 ms