tx · 6GVtNLeyQmwGpGpnDe7UXydebtigszZP2JUBfhBpmYPz

3MsyGaUAKDfEV8oeS4axL1FqyC2LQAPRjVe:  -0.01500000 Waves

2021.02.10 12:17 [1391885] smart account 3MsyGaUAKDfEV8oeS4axL1FqyC2LQAPRjVe > SELF 0.00000000 Waves

{ "type": 13, "id": "6GVtNLeyQmwGpGpnDe7UXydebtigszZP2JUBfhBpmYPz", "fee": 1500000, "feeAssetId": null, "timestamp": 1612948672736, "version": 2, "chainId": 84, "sender": "3MsyGaUAKDfEV8oeS4axL1FqyC2LQAPRjVe", "senderPublicKey": "9uKfiYrKqTDAkP8RfH7c5yw4R8FAT7WiMPcDRw4SngCY", "proofs": [ "vPpXaBZ7bnq8vGWRkRjZRq4aoz4GFEcwAuUVZ9qVWV3gVLvx3vhiimkkC8UzQUSePanU5T9dhKjZ6abYczpdw9t" ], "script": "base64:AAIDAAAAAAAAAA0IARIHCgUBAQEBCBIAAAAAEgAAAAAKZEFwcEFkZHJlcwIAAAArRjlEQ0dpWWdUOHl2QnExQVFGY1NwR0c0cDhzZHpOejltWmN6RHZKNDVMTAAAAAALdGlja2V0QXNzZXQBAAAAIEYc9ZUgYtXiRrToDJgiMgFmnQRu3R1NoyARqb9irygsAAAAAA10b2tlbnNQZXJQbGF5AAAAAAAF9eEAAAAAAA1sb3R0ZXJ5YW1vdW50AgAAAAdfYW1vdW50AAAAABJsb3R0ZXJ5cHJvYmFiaWxpdHkCAAAADF9wcm9iYWJpbGl0eQAAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAIAAAAUX3Byb2JhYmlsaXR5X2RlY2ltYWwAAAAADGxvdHRlcnlQcmljZQIAAAAGX3ByaWNlAAAAAA1sb3R0ZXJ5UHJpY2VzAgAAAA9fbG90dGVyeV9wcmljZXMAAAAADmxvdHRlcnlBc3NldElkAgAAABFfbG90dGVyeV9hc3NldF9pZAAAAAANY291bnRPZlByaWNlcwIAAAANX2NvdW50X3ByaWNlcwAAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXICAAAAFWxhc3Rfc3Bpbl9yYW5kb21faGFzaAAAAAATbGFzdFRva2VuUmFuZG9tSGFzaAIAAAAWbGFzdF90b2tlbl9yYW5kb21faGFzaAAAAAAQYWxsb3dTaXplTG90dGVyeQAAAAAAAAAABQEAAAAKcmFuZG9taXplcgAAAAEAAAADaW52BAAAAAhsYXN0UGxheQQAAAAHJG1hdGNoMAkABBwAAAACBQAAAAR0aGlzBQAAABRsYXN0SGFzaFJhbmRvbU51bWJlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAEAAAAMV2F2ZXNMb3R0b1YyCQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgUAAAAIbGFzdFBsYXkIBQAAAANpbnYAAAANdHJhbnNhY3Rpb25JZAgFAAAAA2ludgAAAA9jYWxs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AAAADSRsaXN0OTM2Mzk0MTMAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplOTM2Mzk0MTMAAAAAAAAAAAEFAAAADSRhY2MxOTM2Mzk0MTMEAAAADSRhY2MyOTM2Mzk0MTMJAQAAABdnZW5lcmF0ZU5ld0xpc3RPZlByaWNlcwAAAAIFAAAADSRhY2MxOTM2Mzk0MTMJAAGRAAAAAgUAAAANJGxpc3Q5MzYzOTQxMwAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU5MzYzOTQxMwAAAAAAAAAAAgUAAAANJGFjYzI5MzYzOTQxMwQAAAANJGFjYzM5MzYzOTQxMwkBAAAAF2dlbmVyYXRlTmV3TGlzdE9mUHJpY2VzAAAAAgUAAAANJGFjYzI5MzYzOTQxMwkAAZEAAAACBQAAAA0kbGlzdDkzNjM5NDEzAAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTkzNjM5NDEzAAAAAAAAAAADBQAAAA0kYWNjMzkzNjM5NDEzBAAAAA0kYWNjNDkzNjM5NDEzCQEAAAAXZ2VuZXJhdGVOZXdMaXN0T2ZQcmljZXMAAAACBQAAAA0kYWNjMzkzNjM5NDEzCQABkQAAAAIFAAAADSRsaXN0OTM2Mzk0MTMAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplOTM2Mzk0MTMAAAAAAAAAAAQFAAAADSRhY2M0OTM2Mzk0MTMEAAAADSRhY2M1OTM2Mzk0MTMJAQAAABdnZW5lcmF0ZU5ld0xpc3RPZlByaWNlcwAAAAIFAAAADSRhY2M0OTM2Mzk0MTMJAAGRAAAAAgUAAAANJGxpc3Q5MzYzOTQxMwAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU5MzYzOTQxMwAAAAAAAAAABQUAAAANJGFjYzU5MzYzOTQxMwQAAAANJGFjYzY5MzYzOTQxMwkBAAAAF2dlbmVyYXRlTmV3TGlzdE9mUHJpY2VzAAAAAgUAAAANJGFjYzU5MzYzOTQxMwkAAZEAAAACBQAAAA0kbGlzdDkzNjM5NDEzAAAAAAAAAAAFCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgNQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgUAAAASc3RvcmVkVG9rZW5zVmFsdWVzAgAAAAQgOjogBQAAAAV0b2tlbgQAAAAJd3JpdGVTZXRzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAAD193aW5uaW5nX3Rva2VuXwUAAAAFdG9rZW4JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAATX3dpbmlubmluZ19hZGRyZXNzXwUAAAAKY3VycmVudEtleQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAV0b2tlbgUAAAANbG90dGVyeWFtb3VudAUAAAAMYWN0dWFsQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABRsYXN0SGFzaFJhbmRvbU51bWJlcgUAAAAKcmFuZE51bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAYQ29uZ3JhdHVsYXRpb25zIHlvdSB3b24hBQAAAANuaWwDCQAAAAAAAAIFAAAADHRva2VuQXNzZXRJZAIAAAAABAAAAAt3aW5UcmFuc2ZlcgkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACnRva2VuUHJpY2UFAAAABHVuaXQFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAACXdyaXRlU2V0cwUAAAALd2luVHJhbnNmZXIEAAAADWFjdHVhbEFzc2V0SWQJAAJZAAAAAQUAAAAMdG9rZW5Bc3NldElkBAAAAAt3aW5UcmFuc2ZlcgkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACnRva2VuUHJpY2UFAAAADWFjdHVhbEFzc2V0SWQFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAACXdyaXRlU2V0cwUAAAALd2luVHJhbnNmZXIAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXl8SPNx", "height": 1391885, "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+ if (isDefined(indexOfComma))
69+ then ((token + val) + ",")
70+ else (val + ",")
71+ }
72+
73+
74+func procedLottery (win,token) = if (if (isDefined(token))
75+ then true
76+ else (token != ""))
77+ then {
78+ let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
79+ let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
80+ let probabilityValue = (tokenProbabilityDecimal * 1000)
81+ let probCompare = (tokenProbabilityDecimal % probabilityValue)
82+ let sizeOfWin = size(win)
83+ if ((sizeOfWin == 1))
84+ then {
85+ let randomNumber = win[0]
86+ let comp = toInt(fromBase64String(randomNumber))
87+ if ((probCompare > comp))
88+ then token :: win
89+ else win
90+ }
91+ else win
92+ }
93+ else win
94+
95+
96+@Callable(i)
97+func updateprobability (probability,amount,poolprice,probDecimal,assetId) = {
98+ let token = toBase64String(generatorRandomHash(i))
99+ let paymentIsDefined = if (!(isDefined(i.payment)))
100+ then false
101+ else true
102+ let lotteryAssetTN = if ((assetId == ""))
103+ then true
104+ else false
105+ let totalRequiredAmount = (amount * poolprice)
106+ if ((paymentIsDefined == true))
107+ then {
108+ let payment = extract(i.payment)
109+ let paymentAssetId = match payment.assetId {
110+ case a: ByteVector =>
111+ toBase58String(a)
112+ case _: Unit =>
113+ ""
114+ case _ =>
115+ throw("Match error")
116+ }
117+ let paymentAmount = payment.amount
118+ if ((paymentAssetId != assetId))
119+ then throw("Asset Id not matching with Payment Asset Id")
120+ else if ((totalRequiredAmount > paymentAmount))
121+ then throw("Not enough Asset Amount")
122+ else {
123+ let tempValue = match getString(this, lotteryPrices) {
124+ case a: String =>
125+ a
126+ case _: Unit =>
127+ ""
128+ case _ =>
129+ throw("Match error")
130+ }
131+ let containKey = indexOf(tempValue, token)
132+ let storedTokensValues = match containKey {
133+ case _: Unit =>
134+ ((tempValue + token) + ",")
135+ case x: Int =>
136+ throw("Token is duplicated")
137+ case _ =>
138+ throw("Match error")
139+ }
140+ let countTokens = match getInteger(this, countOfPrices) {
141+ case a: Int =>
142+ a
143+ case _: Unit =>
144+ 0
145+ case _ =>
146+ throw("Match error")
147+ }
148+ if ((allowSizeLottery > countTokens))
149+ then {
150+ 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)])
151+ ScriptResult(updateLotteryPool, TransferSet(nil))
152+ }
153+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
154+ }
155+ }
156+ else {
157+ let tnBalance = if (lotteryAssetTN)
158+ then wavesBalance(this)
159+ else assetBalance(this, fromBase64String(assetId))
160+ if ((totalRequiredAmount > tnBalance))
161+ then throw("Not enough Asset Amount")
162+ else {
163+ let tempValue = match getString(this, lotteryPrices) {
164+ case a: String =>
165+ a
166+ case _: Unit =>
167+ ""
168+ case _ =>
169+ throw("Match error")
170+ }
171+ let containKey = indexOf(tempValue, token)
172+ let storedTokensValues = match containKey {
173+ case _: Unit =>
174+ ((tempValue + token) + ",")
175+ case x: Int =>
176+ throw("Token is duplicated")
177+ case _ =>
178+ throw("Match error")
179+ }
180+ let countTokens = match getInteger(this, countOfPrices) {
181+ case a: Int =>
182+ a
183+ case _: Unit =>
184+ 0
185+ case _ =>
186+ throw("Match error")
187+ }
188+ if ((allowSizeLottery > countTokens))
189+ then {
190+ 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)])
191+ ScriptResult(updateLotteryPool, TransferSet(nil))
192+ }
193+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
194+ }
195+ }
196+ }
197+
198+
199+
200+@Callable(i)
201+func startlotto () = {
202+ let currentKey = toBase58String(i.caller.bytes)
203+ let randhash = randomizer(i)
204+ let countTokens = match getInteger(this, countOfPrices) {
205+ case a: Int =>
206+ a
207+ case _: Unit =>
208+ 0
209+ case _ =>
210+ throw("Match error")
211+ }
212+ let priceList = getPriceArray()
213+ let randNumber = toBase64String(randhash)
214+ let winningToken = {
215+ let $list82118258 = priceList
216+ let $size82118258 = size($list82118258)
217+ let $acc082118258 = [randNumber]
218+ if (($size82118258 == 0))
219+ then $acc082118258
220+ else {
221+ let $acc182118258 = procedLottery($acc082118258, $list82118258[0])
222+ if (($size82118258 == 1))
223+ then $acc182118258
224+ else {
225+ let $acc282118258 = procedLottery($acc182118258, $list82118258[1])
226+ if (($size82118258 == 2))
227+ then $acc282118258
228+ else {
229+ let $acc382118258 = procedLottery($acc282118258, $list82118258[2])
230+ if (($size82118258 == 3))
231+ then $acc382118258
232+ else {
233+ let $acc482118258 = procedLottery($acc382118258, $list82118258[3])
234+ if (($size82118258 == 4))
235+ then $acc482118258
236+ else {
237+ let $acc582118258 = procedLottery($acc482118258, $list82118258[4])
238+ if (($size82118258 == 5))
239+ then $acc582118258
240+ else {
241+ let $acc682118258 = procedLottery($acc582118258, $list82118258[5])
242+ throw("List size exceed 5")
243+ }
244+ }
245+ }
246+ }
247+ }
248+ }
249+ }
250+ let sizeOfWinPrices = size(winningToken)
251+ if ((sizeOfWinPrices == 1))
252+ then {
253+ let writeSets = WriteSet([DataEntry("message", "Better luck next time!")])
254+ ScriptResult(writeSets, TransferSet(nil))
255+ }
256+ else {
257+ let token = winningToken[0]
258+ let currentAmount = getIntegerValue(this, (token + lotteryamount))
259+ if ((currentAmount == 0))
260+ then throw("Amount exceeded")
261+ else {
262+ let actualAmount = (currentAmount - 1)
263+ let tokenPrice = getIntegerValue(this, (token + lotteryPrice))
264+ let tokenAssetId = getStringValue(this, (token + lotteryAssetId))
265+ if ((actualAmount == 0))
266+ then {
267+ let storedTokensValues = {
268+ let $list93639413 = priceList
269+ let $size93639413 = size($list93639413)
270+ let $acc093639413 = token
271+ if (($size93639413 == 0))
272+ then $acc093639413
273+ else {
274+ let $acc193639413 = generateNewListOfPrices($acc093639413, $list93639413[0])
275+ if (($size93639413 == 1))
276+ then $acc193639413
277+ else {
278+ let $acc293639413 = generateNewListOfPrices($acc193639413, $list93639413[1])
279+ if (($size93639413 == 2))
280+ then $acc293639413
281+ else {
282+ let $acc393639413 = generateNewListOfPrices($acc293639413, $list93639413[2])
283+ if (($size93639413 == 3))
284+ then $acc393639413
285+ else {
286+ let $acc493639413 = generateNewListOfPrices($acc393639413, $list93639413[3])
287+ if (($size93639413 == 4))
288+ then $acc493639413
289+ else {
290+ let $acc593639413 = generateNewListOfPrices($acc493639413, $list93639413[4])
291+ if (($size93639413 == 5))
292+ then $acc593639413
293+ else {
294+ let $acc693639413 = generateNewListOfPrices($acc593639413, $list93639413[5])
295+ throw("List size exceed 5")
296+ }
297+ }
298+ }
299+ }
300+ }
301+ }
302+ }
303+ throw(((storedTokensValues + " :: ") + token))
304+ }
305+ else {
306+ 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!")])
307+ if ((tokenAssetId == ""))
308+ then {
309+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, unit)])
310+ ScriptResult(writeSets, winTransfer)
311+ }
312+ else {
313+ let actualAssetId = fromBase58String(tokenAssetId)
314+ let winTransfer = TransferSet([ScriptTransfer(i.caller, tokenPrice, actualAssetId)])
315+ ScriptResult(writeSets, winTransfer)
316+ }
317+ }
318+ }
319+ }
320+ }
321+
322+
323+@Verifier(tx)
324+func verify () = match tx {
325+ case _ =>
326+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
327+}
328+

github/deemru/w8io/c3f4982 
22.71 ms