tx · 5ZJjoEEaPFbYj2CYT3rqajDDJXSjcmXCDy3qF15Mu4UB

3N4mRFHopLWxJV69HtzoV6NhHUFmx4nMJo4:  -0.01500000 Waves

2021.02.09 16:59 [1390746] smart account 3N4mRFHopLWxJV69HtzoV6NhHUFmx4nMJo4 > SELF 0.00000000 Waves

{ "type": 13, "id": "5ZJjoEEaPFbYj2CYT3rqajDDJXSjcmXCDy3qF15Mu4UB", "fee": 1500000, "feeAssetId": null, "timestamp": 1612879146016, "version": 2, "chainId": 84, "sender": "3N4mRFHopLWxJV69HtzoV6NhHUFmx4nMJo4", "senderPublicKey": "4S1JELDhbHWaTaE2g9JArzyStLfVLG8XW1gKNHnRt543", "proofs": [ "5s1EFeUc7s9ux1FDVPCQGyswVgRyz1Tfney48F3v2jBfZLrUmkU287ZmLDb3UwsSfvzSoRBCSzDjBkRwdFxiCjqR" ], "script": "base64:AAIDAAAAAAAAAA0IARIHCgUBAQEBCBIAAAAAEAAAAAANbG90dGVyeWFtb3VudAIAAAAHX2Ftb3VudAAAAAASbG90dGVyeXByb2JhYmlsaXR5AgAAAAxfcHJvYmFiaWxpdHkAAAAAGWxvdHRlcnlwcm9iYWJpbGl0eWRlY2ltYWwCAAAAFF9wcm9iYWJpbGl0eV9kZWNpbWFsAAAAAAxsb3R0ZXJ5UHJpY2UCAAAABl9wcmljZQAAAAANbG90dGVyeVByaWNlcwIAAAAPX2xvdHRlcnlfcHJpY2VzAAAAAA5sb3R0ZXJ5QXNzZXRJZAIAAAARX2xvdHRlcnlfYXNzZXRfaWQAAAAADWNvdW50T2ZQcmljZXMCAAAADV9jb3VudF9wcmljZXMAAAAAFGxhc3RIYXNoUmFuZG9tTnVtYmVyAgAAABVsYXN0X3NwaW5fcmFuZG9tX2hhc2gAAAAAE2xhc3RUb2tlblJhbmRvbUhhc2gCAAAAFmxhc3RfdG9rZW5fcmFuZG9tX2hhc2gAAAAACmRBcHBBZGRyZXMCAAAALDNCS0ZRTGVvNUV4WjVZMXB0OUZ0enNubzdhUnd6RDk2em9ZVkhQM3RjTGdWAAAAABBhbGxvd1NpemVMb3R0ZXJ5AAAAAAAAAAAFAQAAAApyYW5kb21pemVyAAAAAQAAAANpbnYEAAAACGxhc3RQbGF5BAAAAAckbWF0Y2gwCQAEHAAAAAIFAAAABHRoaXMFAAAAFGxhc3RIYXNoUmFuZG9tTnVtYmVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AQAAAAxXYXZlc0xvdHRvVjIJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IEAAAABHJhbmQJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACBQAAAAhsYXN0UGxheQgFAAAAA2ludgAAAA10cmFuc2FjdGlvbklkCAUAAAADaW52AAAAD2NhbGxlclB1YmxpY0tleQgFAAAACWxhc3RCbG9jawAAABNnZW5lcmF0aW9uU2lnbmF0dXJlCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGlt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", "height": 1390746, "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 lotteryamount = "_amount"
5+
6+let lotteryprobability = "_probability"
7+
8+let lotteryprobabilitydecimal = "_probability_decimal"
9+
10+let lotteryPrice = "_price"
11+
12+let lotteryPrices = "_lottery_prices"
13+
14+let lotteryAssetId = "_lottery_asset_id"
15+
16+let countOfPrices = "_count_prices"
17+
18+let lastHashRandomNumber = "last_spin_random_hash"
19+
20+let lastTokenRandomHash = "last_token_random_hash"
21+
22+let dAppAddres = "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV"
23+
24+let allowSizeLottery = 5
25+
26+func randomizer (inv) = {
27+ let lastPlay = match getBinary(this, lastHashRandomNumber) {
28+ case s: ByteVector =>
29+ s
30+ case _: Unit =>
31+ base58'2ee4oFDYriWJ9EMeR'
32+ case _ =>
33+ throw("Match error")
34+ }
35+ let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
36+ sha256(rand)
37+ }
38+
39+
40+func generatorRandomHash (inv) = {
41+ let lastHashForToken = match getBinary(this, lastTokenRandomHash) {
42+ case s: ByteVector =>
43+ s
44+ case _: Unit =>
45+ base58'4dD7osCQzvuXJdTiGfKvTwnKT'
46+ case _ =>
47+ throw("Match error")
48+ }
49+ let rand = (((((lastHashForToken + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
50+ sha256(rand)
51+ }
52+
53+
54+func getPriceArray () = {
55+ let tempPrices = getStringValue(this, lotteryPrices)
56+ let trimPrices = take(tempPrices, (size(tempPrices) - 1))
57+ let newArray = split(trimPrices, ",")
58+ newArray
59+ }
60+
61+
62+func generateNewListOfPrices (token,val) = {
63+ let indexOfComma = indexOf(token, ",")
64+ if ((indexOfComma == unit))
65+ then (val + ",")
66+ else ((token + val) + ",")
67+ }
68+
69+
70+func procedLottery (win,token) = if (if (isDefined(token))
71+ then true
72+ else (token != ""))
73+ then {
74+ let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
75+ let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
76+ let probabilityValue = (tokenProbabilityDecimal * 1000)
77+ let probCompare = (tokenProbabilityDecimal % probabilityValue)
78+ let sizeOfWin = size(win)
79+ if ((sizeOfWin == 1))
80+ then {
81+ let randomNumber = win[0]
82+ let comp = toInt(fromBase64String(randomNumber))
83+ if ((probCompare > comp))
84+ then token :: win
85+ else win
86+ }
87+ else win
88+ }
89+ else win
90+
91+
92+@Callable(i)
93+func updateprobability (probability,amount,poolprice,probDecimal,assetId) = {
94+ let token = toBase64String(generatorRandomHash(i))
95+ let paymentIsDefined = if (!(isDefined(i.payment)))
96+ then false
97+ else true
98+ let lotteryAssetTN = if ((assetId == ""))
99+ then true
100+ else false
101+ let totalRequiredAmount = (amount * poolprice)
102+ if ((paymentIsDefined == true))
103+ then {
104+ let payment = extract(i.payment)
105+ let paymentAssetId = match payment.assetId {
106+ case a: ByteVector =>
107+ toBase64String(a)
108+ case _: Unit =>
109+ ""
110+ case _ =>
111+ throw("Match error")
112+ }
113+ let paymentAmount = payment.amount
114+ if ((paymentAssetId != assetId))
115+ then throw("Asset Id not matching with Payment Asset Id")
116+ else if ((totalRequiredAmount > paymentAmount))
117+ then throw("Not enough Asset Amount")
118+ else {
119+ let tempValue = match getString(this, lotteryPrices) {
120+ case a: String =>
121+ a
122+ case _: Unit =>
123+ ""
124+ case _ =>
125+ throw("Match error")
126+ }
127+ let containKey = indexOf(tempValue, token)
128+ let storedTokensValues = match containKey {
129+ case _: Unit =>
130+ ((tempValue + token) + ",")
131+ case x: Int =>
132+ throw("Token is duplicated")
133+ case _ =>
134+ throw("Match error")
135+ }
136+ let countTokens = match getInteger(this, countOfPrices) {
137+ case a: Int =>
138+ a
139+ case _: Unit =>
140+ 0
141+ case _ =>
142+ throw("Match error")
143+ }
144+ if ((allowSizeLottery > countTokens))
145+ then {
146+ 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)])
147+ ScriptResult(updateLotteryPool, TransferSet(nil))
148+ }
149+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
150+ }
151+ }
152+ else {
153+ let tnBalance = if (lotteryAssetTN)
154+ then wavesBalance(this)
155+ else assetBalance(this, fromBase64String(assetId))
156+ if ((totalRequiredAmount > tnBalance))
157+ then throw("Not enough Asset Amount")
158+ else {
159+ let tempValue = match getString(this, lotteryPrices) {
160+ case a: String =>
161+ a
162+ case _: Unit =>
163+ ""
164+ case _ =>
165+ throw("Match error")
166+ }
167+ let containKey = indexOf(tempValue, token)
168+ let storedTokensValues = match containKey {
169+ case _: Unit =>
170+ ((tempValue + token) + ",")
171+ case x: Int =>
172+ throw("Token is duplicated")
173+ case _ =>
174+ throw("Match error")
175+ }
176+ let countTokens = match getInteger(this, countOfPrices) {
177+ case a: Int =>
178+ a
179+ case _: Unit =>
180+ 0
181+ case _ =>
182+ throw("Match error")
183+ }
184+ if ((allowSizeLottery > countTokens))
185+ then {
186+ 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)])
187+ ScriptResult(updateLotteryPool, TransferSet(nil))
188+ }
189+ else throw(("Lottery prices has reached maximum " + toString(allowSizeLottery)))
190+ }
191+ }
192+ }
193+
194+
195+
196+@Callable(i)
197+func startlotto () = {
198+ let currentKey = toBase58String(i.caller.bytes)
199+ let randhash = randomizer(i)
200+ let countTokens = match getInteger(this, countOfPrices) {
201+ case a: Int =>
202+ a
203+ case _: Unit =>
204+ 0
205+ case _ =>
206+ throw("Match error")
207+ }
208+ let priceList = getPriceArray()
209+ let randNumber = toBase64String(randhash)
210+ let winningToken = {
211+ let $list75227569 = priceList
212+ let $size75227569 = size($list75227569)
213+ let $acc075227569 = [randNumber]
214+ if (($size75227569 == 0))
215+ then $acc075227569
216+ else {
217+ let $acc175227569 = procedLottery($acc075227569, $list75227569[0])
218+ if (($size75227569 == 1))
219+ then $acc175227569
220+ else {
221+ let $acc275227569 = procedLottery($acc175227569, $list75227569[1])
222+ if (($size75227569 == 2))
223+ then $acc275227569
224+ else {
225+ let $acc375227569 = procedLottery($acc275227569, $list75227569[2])
226+ if (($size75227569 == 3))
227+ then $acc375227569
228+ else {
229+ let $acc475227569 = procedLottery($acc375227569, $list75227569[3])
230+ if (($size75227569 == 4))
231+ then $acc475227569
232+ else {
233+ let $acc575227569 = procedLottery($acc475227569, $list75227569[4])
234+ if (($size75227569 == 5))
235+ then $acc575227569
236+ else {
237+ let $acc675227569 = procedLottery($acc575227569, $list75227569[5])
238+ throw("List size exceed 5")
239+ }
240+ }
241+ }
242+ }
243+ }
244+ }
245+ }
246+ let sizeOfWinPrices = size(winningToken)
247+ if ((sizeOfWinPrices == 1))
248+ then {
249+ let writeSets = WriteSet(nil)
250+ ScriptResult(writeSets, TransferSet(nil))
251+ }
252+ else {
253+ let token = winningToken[1]
254+ let currentAmount = getIntegerValue(this, (token + lotteryamount))
255+ throw(toString(currentAmount))
256+ }
257+ }
258+
259+
260+@Verifier(tx)
261+func verify () = match tx {
262+ case _: DataTransaction =>
263+ true
264+ case _: SetScriptTransaction =>
265+ true
266+ case _ =>
267+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
268+}
269+

github/deemru/w8io/169f3d6 
27.25 ms