tx · Br7Qhwfx9Xv8wdALM1XA1bUwTvHhq4hYksc4pSZmGLJF

3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b:  -0.01400000 Waves

2021.02.09 03:15 [1389930] smart account 3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b > SELF 0.00000000 Waves

{ "type": 13, "id": "Br7Qhwfx9Xv8wdALM1XA1bUwTvHhq4hYksc4pSZmGLJF", "fee": 1400000, "feeAssetId": null, "timestamp": 1612829762879, "version": 2, "chainId": 84, "sender": "3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b", "senderPublicKey": "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV", "proofs": [ "4KduWAeVeMhkzAPNq9WN1D33xpMKSAZVAtuCvmu4JFcCtEWpdbYrzCPTamaA4bgcsemrXPPkEGohynPQUzsfXo9j" ], "script": "base64:AAIDAAAAAAAAAAwIARIGCgQBAQEBEgAAAAAPAAAAAA1sb3R0ZXJ5YW1vdW50AgAAAAdfYW1vdW50AAAAABJsb3R0ZXJ5cHJvYmFiaWxpdHkCAAAADF9wcm9iYWJpbGl0eQAAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAIAAAAUX3Byb2JhYmlsaXR5X2RlY2ltYWwAAAAADGxvdHRlcnlQcmljZQIAAAAGX3ByaWNlAAAAAA1sb3R0ZXJ5UHJpY2VzAgAAAA9fbG90dGVyeV9wcmljZXMAAAAADmxvdHRlcnlBc3NldElkAgAAABFfbG90dGVyeV9hc3NldF9pZAAAAAANY291bnRPZlByaWNlcwIAAAANX2NvdW50X3ByaWNlcwAAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXICAAAAFWxhc3Rfc3Bpbl9yYW5kb21faGFzaAAAAAATbGFzdFRva2VuUmFuZG9tSGFzaAIAAAAWbGFzdF90b2tlbl9yYW5kb21faGFzaAEAAAAKcmFuZG9taXplcgAAAAEAAAADaW52BAAAAAhsYXN0UGxheQQAAAAHJG1hdGNoMAkABBwAAAACBQAAAAR0aGlzBQAAABRsYXN0SGFzaFJhbmRvbU51bWJlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAEAAAAMV2F2ZXNMb3R0b1YyCQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgUAAAAIbGFzdFBsYXkIBQAAAANpbnYAAAANdHJhbnNhY3Rpb25JZAgFAAAAA2ludgAAAA9jYWxsZXJQdWJsaWNLZXkIBQAAAAlsYXN0QmxvY2sAAAATZ2VuZXJhdGlvblNpZ25hdHVyZQkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAfcAAAABBQAAAARyYW5kAQAAABNnZW5lcmF0b3JSYW5kb21IYXNoAAAAAQAAAANpbnYEAAAAEGxhc3RIYXNoRm9yVG9rZW4EAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAATbGFzdFRva2VuUmFuZG9tSGFzaAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAEAAAASV2F2ZXNMb345TGHY76R0b1YyCQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgUAAAAQbGFzdEhhc2hGb3JUb2tlbggFAAAAA2ludgAAAA10cmFuc2FjdGlvbklkCAUAAAADaW52AAAAD2NhbGxlclB1YmxpY0tleQgFAAAACWxhc3RCbG9jawAAABNnZW5lcmF0aW9uU2lnbmF0dXJlCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAGaGVpZ2h0CQAB9wAAAAEFAAAABHJhbmQBAAAAEWdldFNpemVQcmljZUFycmF5AAAAAAQAAAAKdGVtcFByaWNlcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAANbG90dGVyeVByaWNlcwQAAAAKdHJpbVByaWNlcwkAAS8AAAACBQAAAAp0ZW1wUHJpY2VzCQAAZQAAAAIJAAExAAAAAQUAAAAKdGVtcFByaWNlcwAAAAAAAAAAAQQAAAALcHJpY2VzQXJyYXkJAAS1AAAAAgUAAAAKdHJpbVByaWNlcwIAAAABLAQAAAAIbGlzdFNpemUJAAGQAAAAAQUAAAALcHJpY2VzQXJyYXkFAAAACGxpc3RTaXplAQAAAA1nZXRQcmljZUFycmF5AAAAAAQAAAAKdGVtcFByaWNlcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAANbG90dGVyeVByaWNlcwQAAAAKdHJpbVByaWNlcwkAAS8AAAACBQAAAAp0ZW1wUHJpY2VzCQAAZQAAAAIJAAExAAAAAQUAAAAKdGVtcFByaWNlcwAAAAAAAAAAAQQAAAAIbmV3QXJyYXkJAAS1AAAAAgUAAAAKdHJpbVByaWNlcwIAAAABLAUAAAAIbmV3QXJyYXkBAAAAFmdldEFtb3VudENsYWltRm9yVG9rZW4AAAACAAAABXRva2VuAAAABnVwZGF0ZQQAAAANY3VycmVudEFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAV0b2tlbgUAAAANbG90dGVyeWFtb3VudAMJAAAAAAAAAgUAAAANY3VycmVudEFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAAA9BbW91bnQgZXhjZWVkZWQDCQAAAAAAAAIFAAAABnVwZGF0ZQYDCQAAAAAAAAIFAAAADWN1cnJlbnRBbW91bnQA//////////8FAAAADWN1cnJlbnRBbW91bnQEAAAAC3JldHVyblZhbHVlCQAAZQAAAAIFAAAADWN1cnJlbnRBbW91bnQAAAAAAAAAAAEFAAAAC3JldHVyblZhbHVlBQAAAA1jdXJyZW50QW1vdW50AQAAAA1wcm9jZWRMb3R0ZXJ5AAAAAgAAAAN3aW4AAAAFdG9rZW4EAAAACnRva2VuUHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAFdG9rZW4FAAAADGxvdHRlcnlQcmljZQQAAAAQdG9rZW5Qcm9iYWJpbGl0eQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAV0b2tlbgUAAAASbG90dGVyeXByb2JhYmlsaXR5BAAAABd0b2tlblByb2JhYmlsaXR5RGVjaW1hbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAV0b2tlbgUAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAQAAAAQcHJvYmFiaWxpdHlWYWx1ZQkAAGgAAAACBQAAABd0b2tlblByb2JhYmlsaXR5RGVjaW1hbAAAAAAAAAAD6AQAAAAEaGFzaAkAAGoAAAACBQAAABd0b2tlblByb2JhYmlsaXR5RGVjaW1hbAUAAAAQcHJvYmFiaWxpdHlWYWx1ZQQAAAAJc2l6ZU9mV2luCQABkAAAAAEFAAAAA3dpbgMJAAAAAAAAAgUAAAAJc2l6ZU9mV2luAAAAAAAAAAABAwkAAGYAAAACBQAAABBwcm9iYWJpbGl0eVZhbHVlBQAAAARoYXNoBAAAAAduZXdMaXN0CQAETAAAAAIFAAAABXRva2VuBQAAAAN3aW4FAAAAB25ld0xpc3QFAAAAA3dpbgUAAAADd2luAAAAAgAAAAFpAQAAABF1cGRhdGVwcm9iYWJpbGl0eQAAAAQAAAALcHJvYmFiaWxpdHkAAAAGYW1vdW50AAAACXBvb2xwcmljZQAAAAtwcm9iRGVjaW1hbAQAAAAFdG9rZW4JAAJaAAAAAQkBAAAAE2dlbmVyYXRvclJhbmRvbUhhc2gAAAABBQAAAAFpBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAAE3RvdGFsUmVxdWlyZWRBbW91bnQJAABoAAAAAgUAAAAGYW1vdW50BQAAAAlwb29scHJpY2UDCQAAZgAAAAIFAAAAE3RvdGFsUmVxdWlyZWRBbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAkAAAIAAAABAgAAABpQYXltZW50IGlzIG5vdCBlcXVhbCBwcmljZQQAAAAJdGVtcFZhbHVlBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAADWxvdHRlcnlQcmljZXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAABAAAAApjb250YWluS2V5CQAEswAAAAIFAAAACXRlbXBWYWx1ZQUAAAAFdG9rZW4EAAAAEnN0b3JlZFRva2Vuc1ZhbHVlcwQAAAAHJG1hdGNoMAUAAAAKY29udGFpbktleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAkAASwAAAACCQABLAAAAAIFAAAACXRlbXBWYWx1ZQUAAAAFdG9rZW4CAAAAASwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABeAUAAAAHJG1hdGNoMAkAAAIAAAABAgAAABNUb2tlbiBpcyBkdXBsaWNhdGVkCQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAAtjb3VudFRva2VucwkBAAAAEWdldFNpemVQcmljZUFycmF5AAAAAAQAAAARdXBkYXRlTG90dGVyeVBvb2wJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAFdG9rZW4FAAAADWxvdHRlcnlhbW91bnQFAAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAV0b2tlbgUAAAASbG90dGVyeXByb2JhYmlsaXR5BQAAAAtwcm9iYWJpbGl0eQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAV0b2tlbgUAAAAMbG90dGVyeVByaWNlBQAAAAlwb29scHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAFdG9rZW4FAAAADWxvdHRlcnlQcmljZXMFAAAAEnN0b3JlZFRva2Vuc1ZhbHVlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAV0b2tlbgUAAAANY291bnRPZlByaWNlcwUAAAALY291bnRUb2tlbnMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAFdG9rZW4FAAAAGWxvdHRlcnlwcm9iYWJpbGl0eWRlY2ltYWwFAAAAC3Byb2JEZWNpbWFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAABXRva2VuBQAAABNsYXN0VG9rZW5SYW5kb21IYXNoBQAAAAV0b2tlbgUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgUAAAARdXBkYXRlTG90dGVyeVBvb2wJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAFpAQAAAApzdGFydGxvdHRvAAAAAAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhyYW5kaGFzaAkBAAAACnJhbmRvbWl6ZXIAAAABBQAAAAFpBAAAAA1zaXplVGVtcFByaWNlCQEAAAARZ2V0U2l6ZVByaWNlQXJyYXkAAAAABAAAAAlwcmljZUxpc3QJAQAAAA1nZXRQcmljZUFycmF5AAAAAAQAAAAKcmFuZE51bWJlcgkABLEAAAABBQAAAAhyYW5kaGFzaAQAAAAMd2lubmluZ1Rva2VuBAAAAA0kbGlzdDQ5MDM0OTQwBQAAAAlwcmljZUxpc3QEAAAADSRzaXplNDkwMzQ5NDAJAAGQAAAAAQUAAAANJGxpc3Q0OTAzNDk0MAQAAAANJGFjYzA0OTAzNDk0MAUAAAADbmlsAwkAAAAAAAACBQAAAA0kc2l6ZTQ5MDM0OTQwAAAAAAAAAAAABQAAAA0kYWNjMDQ5MDM0OTQwBAAAAA0kYWNjMTQ5MDM0OTQwCQEAAAANcHJvY2VkTG90dGVyeQAAAAIFAAAADSRhY2MwNDkwMzQ5NDAJAAGRAAAAAgUAAAANJGxpc3Q0OTAzNDk0MAAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemU0OTAzNDk0MAAAAAAAAAAAAQUAAAANJGFjYzE0OTAzNDk0MAQAAAANJGFjYzI0OTAzNDk0MAkBAAAADXByb2NlZExvdHRlcnkAAAACBQAAAA0kYWNjMTQ5MDM0OTQwCQABkQAAAAIFAAAADSRsaXN0NDkwMzQ5NDAAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNDkwMzQ5NDAAAAAAAAAAAAIFAAAADSRhY2MyNDkwMzQ5NDAEAAAADSRhY2MzNDkwMzQ5NDAJAQAAAA1wcm9jZWRMb3R0ZXJ5AAAAAgUAAAANJGFjYzI0OTAzNDk0MAkAAZEAAAACBQAAAA0kbGlzdDQ5MDM0OTQwAAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTQ5MDM0OTQwAAAAAAAAAAADBQAAAA0kYWNjMzQ5MDM0OTQwBAAAAA0kYWNjNDQ5MDM0OTQwCQEAAAANcHJvY2VkTG90dGVyeQAAAAIFAAAADSRhY2MzNDkwMzQ5NDAJAAGRAAAAAgUAAAANJGxpc3Q0OTAzNDk0MAAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemU0OTAzNDk0MAAAAAAAAAAABAUAAAANJGFjYzQ0OTAzNDk0MAQAAAANJGFjYzU0OTAzNDk0MAkBAAAADXByb2NlZExvdHRlcnkAAAACBQAAAA0kYWNjNDQ5MDM0OTQwCQABkQAAAAIFAAAADSRsaXN0NDkwMzQ5NDAAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNDkwMzQ5NDAAAAAAAAAAAAUFAAAADSRhY2M1NDkwMzQ5NDAEAAAADSRhY2M2NDkwMzQ5NDAJAQAAAA1wcm9jZWRMb3R0ZXJ5AAAAAgUAAAANJGFjYzU0OTAzNDk0MAkAAZEAAAACBQAAAA0kbGlzdDQ5MDM0OTQwAAAAAAAAAAAFCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgNQQAAAAJd3JpdGVTZXRzCQEAAAAIV3JpdGVTZXQAAAABBQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1bHQAAAACBQAAAAl3cml0ZVNldHMJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5/9p1YA==", "height": 1389930, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J5vauBFarKrNb9bGH138BkaH3n3GJYc2cvDqMFVsMJL4 Next: 8HKchhVj7ZwafJEU2dgQduXAmsW58UxLw2yNykZfBQFn Diff:
OldNewDifferences
7979 }
8080
8181
82-func procedLottery (randomValue,token) = {
82+func procedLottery (win,token) = {
8383 let tokenPrice = getIntegerValue(this, (token + lotteryPrice))
8484 let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
85- let tokenAssetId = getStringValue(this, (token + lotteryAssetId))
8685 let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
8786 let probabilityValue = (tokenProbabilityDecimal * 1000)
88- let hash = (randomValue % probabilityValue)
89- if ((probabilityValue > hash))
90- then randomValue
91- else randomValue
87+ let hash = (tokenProbabilityDecimal % probabilityValue)
88+ let sizeOfWin = size(win)
89+ if ((sizeOfWin == 1))
90+ then if ((probabilityValue > hash))
91+ then {
92+ let newList = token :: win
93+ newList
94+ }
95+ else win
96+ else win
9297 }
9398
9499
131136 let priceList = getPriceArray()
132137 let randNumber = toInt(randhash)
133138 let winningToken = {
134- let $list47934838 = priceList
135- let $size47934838 = size($list47934838)
136- let $acc047934838 = randNumber
137- if (($size47934838 == 0))
138- then $acc047934838
139+ let $list49034940 = priceList
140+ let $size49034940 = size($list49034940)
141+ let $acc049034940 = nil
142+ if (($size49034940 == 0))
143+ then $acc049034940
139144 else {
140- let $acc147934838 = procedLottery($acc047934838, $list47934838[0])
141- if (($size47934838 == 1))
142- then $acc147934838
145+ let $acc149034940 = procedLottery($acc049034940, $list49034940[0])
146+ if (($size49034940 == 1))
147+ then $acc149034940
143148 else {
144- let $acc247934838 = procedLottery($acc147934838, $list47934838[1])
145- if (($size47934838 == 2))
146- then $acc247934838
149+ let $acc249034940 = procedLottery($acc149034940, $list49034940[1])
150+ if (($size49034940 == 2))
151+ then $acc249034940
147152 else {
148- let $acc347934838 = procedLottery($acc247934838, $list47934838[2])
149- if (($size47934838 == 3))
150- then $acc347934838
153+ let $acc349034940 = procedLottery($acc249034940, $list49034940[2])
154+ if (($size49034940 == 3))
155+ then $acc349034940
151156 else {
152- let $acc447934838 = procedLottery($acc347934838, $list47934838[3])
153- if (($size47934838 == 4))
154- then $acc447934838
157+ let $acc449034940 = procedLottery($acc349034940, $list49034940[3])
158+ if (($size49034940 == 4))
159+ then $acc449034940
155160 else {
156- let $acc547934838 = procedLottery($acc447934838, $list47934838[4])
157- if (($size47934838 == 5))
158- then $acc547934838
161+ let $acc549034940 = procedLottery($acc449034940, $list49034940[4])
162+ if (($size49034940 == 5))
163+ then $acc549034940
159164 else {
160- let $acc647934838 = procedLottery($acc547934838, $list47934838[5])
165+ let $acc649034940 = procedLottery($acc549034940, $list49034940[5])
161166 throw("List size exceed 5")
162167 }
163168 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let lotteryamount = "_amount"
55
66 let lotteryprobability = "_probability"
77
88 let lotteryprobabilitydecimal = "_probability_decimal"
99
1010 let lotteryPrice = "_price"
1111
1212 let lotteryPrices = "_lottery_prices"
1313
1414 let lotteryAssetId = "_lottery_asset_id"
1515
1616 let countOfPrices = "_count_prices"
1717
1818 let lastHashRandomNumber = "last_spin_random_hash"
1919
2020 let lastTokenRandomHash = "last_token_random_hash"
2121
2222 func randomizer (inv) = {
2323 let lastPlay = match getBinary(this, lastHashRandomNumber) {
2424 case s: ByteVector =>
2525 s
2626 case _: Unit =>
2727 base58'2ee4oFDYriWJ9EMeR'
2828 case _ =>
2929 throw("Match error")
3030 }
3131 let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
3232 sha256(rand)
3333 }
3434
3535
3636 func generatorRandomHash (inv) = {
3737 let lastHashForToken = match getBinary(this, lastTokenRandomHash) {
3838 case s: ByteVector =>
3939 s
4040 case _: Unit =>
4141 base58'4dD7osCQzvuXJdTiGfKvTwnKT'
4242 case _ =>
4343 throw("Match error")
4444 }
4545 let rand = (((((lastHashForToken + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
4646 sha256(rand)
4747 }
4848
4949
5050 func getSizePriceArray () = {
5151 let tempPrices = getStringValue(this, lotteryPrices)
5252 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
5353 let pricesArray = split(trimPrices, ",")
5454 let listSize = size(pricesArray)
5555 listSize
5656 }
5757
5858
5959 func getPriceArray () = {
6060 let tempPrices = getStringValue(this, lotteryPrices)
6161 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
6262 let newArray = split(trimPrices, ",")
6363 newArray
6464 }
6565
6666
6767 func getAmountClaimForToken (token,update) = {
6868 let currentAmount = getIntegerValue(this, (token + lotteryamount))
6969 if ((currentAmount == 0))
7070 then throw("Amount exceeded")
7171 else if ((update == true))
7272 then if ((currentAmount == -1))
7373 then currentAmount
7474 else {
7575 let returnValue = (currentAmount - 1)
7676 returnValue
7777 }
7878 else currentAmount
7979 }
8080
8181
82-func procedLottery (randomValue,token) = {
82+func procedLottery (win,token) = {
8383 let tokenPrice = getIntegerValue(this, (token + lotteryPrice))
8484 let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
85- let tokenAssetId = getStringValue(this, (token + lotteryAssetId))
8685 let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
8786 let probabilityValue = (tokenProbabilityDecimal * 1000)
88- let hash = (randomValue % probabilityValue)
89- if ((probabilityValue > hash))
90- then randomValue
91- else randomValue
87+ let hash = (tokenProbabilityDecimal % probabilityValue)
88+ let sizeOfWin = size(win)
89+ if ((sizeOfWin == 1))
90+ then if ((probabilityValue > hash))
91+ then {
92+ let newList = token :: win
93+ newList
94+ }
95+ else win
96+ else win
9297 }
9398
9499
95100 @Callable(i)
96101 func updateprobability (probability,amount,poolprice,probDecimal) = {
97102 let token = toBase64String(generatorRandomHash(i))
98103 let payment = extract(i.payment)
99104 let totalRequiredAmount = (amount * poolprice)
100105 if ((totalRequiredAmount > payment.amount))
101106 then throw("Payment is not equal price")
102107 else {
103108 let tempValue = match getString(this, lotteryPrices) {
104109 case a: String =>
105110 a
106111 case _ =>
107112 ""
108113 }
109114 let containKey = indexOf(tempValue, token)
110115 let storedTokensValues = match containKey {
111116 case _: Unit =>
112117 ((tempValue + token) + ",")
113118 case x: Int =>
114119 throw("Token is duplicated")
115120 case _ =>
116121 throw("Match error")
117122 }
118123 let countTokens = getSizePriceArray()
119124 let updateLotteryPool = WriteSet([DataEntry((token + lotteryamount), amount), DataEntry((token + lotteryprobability), probability), DataEntry((token + lotteryPrice), poolprice), DataEntry((token + lotteryPrices), storedTokensValues), DataEntry((token + countOfPrices), countTokens), DataEntry((token + lotteryprobabilitydecimal), probDecimal), DataEntry((token + lastTokenRandomHash), token)])
120125 ScriptResult(updateLotteryPool, TransferSet(nil))
121126 }
122127 }
123128
124129
125130
126131 @Callable(i)
127132 func startlotto () = {
128133 let currentKey = toBase58String(i.caller.bytes)
129134 let randhash = randomizer(i)
130135 let sizeTempPrice = getSizePriceArray()
131136 let priceList = getPriceArray()
132137 let randNumber = toInt(randhash)
133138 let winningToken = {
134- let $list47934838 = priceList
135- let $size47934838 = size($list47934838)
136- let $acc047934838 = randNumber
137- if (($size47934838 == 0))
138- then $acc047934838
139+ let $list49034940 = priceList
140+ let $size49034940 = size($list49034940)
141+ let $acc049034940 = nil
142+ if (($size49034940 == 0))
143+ then $acc049034940
139144 else {
140- let $acc147934838 = procedLottery($acc047934838, $list47934838[0])
141- if (($size47934838 == 1))
142- then $acc147934838
145+ let $acc149034940 = procedLottery($acc049034940, $list49034940[0])
146+ if (($size49034940 == 1))
147+ then $acc149034940
143148 else {
144- let $acc247934838 = procedLottery($acc147934838, $list47934838[1])
145- if (($size47934838 == 2))
146- then $acc247934838
149+ let $acc249034940 = procedLottery($acc149034940, $list49034940[1])
150+ if (($size49034940 == 2))
151+ then $acc249034940
147152 else {
148- let $acc347934838 = procedLottery($acc247934838, $list47934838[2])
149- if (($size47934838 == 3))
150- then $acc347934838
153+ let $acc349034940 = procedLottery($acc249034940, $list49034940[2])
154+ if (($size49034940 == 3))
155+ then $acc349034940
151156 else {
152- let $acc447934838 = procedLottery($acc347934838, $list47934838[3])
153- if (($size47934838 == 4))
154- then $acc447934838
157+ let $acc449034940 = procedLottery($acc349034940, $list49034940[3])
158+ if (($size49034940 == 4))
159+ then $acc449034940
155160 else {
156- let $acc547934838 = procedLottery($acc447934838, $list47934838[4])
157- if (($size47934838 == 5))
158- then $acc547934838
161+ let $acc549034940 = procedLottery($acc449034940, $list49034940[4])
162+ if (($size49034940 == 5))
163+ then $acc549034940
159164 else {
160- let $acc647934838 = procedLottery($acc547934838, $list47934838[5])
165+ let $acc649034940 = procedLottery($acc549034940, $list49034940[5])
161166 throw("List size exceed 5")
162167 }
163168 }
164169 }
165170 }
166171 }
167172 }
168173 }
169174 let writeSets = WriteSet(nil)
170175 ScriptResult(writeSets, TransferSet(nil))
171176 }
172177
173178
174179 @Verifier(tx)
175180 func verify () = match tx {
176181 case _: DataTransaction =>
177182 true
178183 case _: SetScriptTransaction =>
179184 true
180185 case _ =>
181186 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
182187 }
183188

github/deemru/w8io/03bedc9 
67.15 ms