tx · 8sfGQJKZHLiN7q6oW2f4d9ZBk6eyuVcGRcVTyFfaEXbu

3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b:  -0.01400000 Waves

2021.02.08 16:22 [1389279] smart account 3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b > SELF 0.00000000 Waves

{ "type": 13, "id": "8sfGQJKZHLiN7q6oW2f4d9ZBk6eyuVcGRcVTyFfaEXbu", "fee": 1400000, "feeAssetId": null, "timestamp": 1612790566562, "version": 2, "chainId": 84, "sender": "3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b", "senderPublicKey": "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV", "proofs": [ "3gxHr6TWQW8vk7UHR2YomXzerdMn7wF15sDvMSPuFYjYGcuPnyBgnT5B9s2F5mcy4gw2ZjjCtLbLFUa8jwZKNorE" ], "script": "base64:AAIDAAAAAAAAAAwIARIGCgQBAQEBEgAAAAAOAAAAAA1sb3R0ZXJ5YW1vdW50AgAAAAdfYW1vdW50AAAAABJsb3R0ZXJ5cHJvYmFiaWxpdHkCAAAADF9wcm9iYWJpbGl0eQAAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAIAAAAVX3Byb2JhYmlsaXR5X2RlY2ltYWxfAAAAAAxsb3R0ZXJ5UHJpY2UCAAAABl9wcmljZQAAAAANbG90dGVyeVByaWNlcwIAAAAQX2xvdHRlcnlfcHJpY2VzXwAAAAANY291bnRPZlByaWNlcwIAAAANX2NvdW50X3ByaWNlcwAAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXICAAAAFWxhc3Rfc3Bpbl9yYW5kb21faGFzaAAAAAATbGFzdFRva2VuUmFuZG9tSGFzaAIAAAAXX2xhc3RfdG9rZW5fcmFuZG9tX2hhc2gBAAAACnJhbmRvbWl6ZXIAAAABAAAAA2ludgQAAAAIbGFzdFBsYXkEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQBAAAADFdhdmVzTG90dG9WMgkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgQAAAAEcmFuZAkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIFAAAACGxhc3RQbGF5CAUAAAADaW52AAAADXRyYW5zYWN0aW9uSWQIBQAAAANpbnYAAAAPY2FsbGVyUHVibGljS2V5CAUAAAAJbGFzdEJsb2NrAAAAE2dlbmVyYXRpb25TaWduYXR1cmUJAAGaAAAAAQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAGaAAAAAQgFAAAACWxhc3RCbG9jawAAAAZoZWlnaHQJAAH3AAAAAQUAAAAEcmFuZAEAAAATZ2VuZXJhdG9yUmFuZG9tSGFzaAAAAAEAAAADaW52BAAAABBsYXN0SGFzaEZvclRva2VuBAAAAAckbWF0Y2gwCQAEHAAAAAIFAAAABHRoaXMFAAAAE2xhc3RUb2tlblJhbmRvbUhhc2gDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQBAAAAEldhdmVzTG9+OUxh2O+kdG9WMgkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgQAAAAEcmFuZAkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIFAAAAEGxhc3RIYXNoRm9yVG9rZW4IBQAAAANpbnYAAAANdHJhbnNhY3Rpb25JZAgFAAAAA2ludgAAAA9jYWxsZXJQdWJsaWNLZXkIBQAAAAlsYXN0QmxvY2sAAAATZ2VuZXJhdGlvblNpZ25hdHVyZQkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAfcAAAABBQAAAARyYW5kAQAAABFnZXRTaXplUHJpY2VBcnJheQAAAAAEAAAACnRlbXBQcmljZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAADWxvdHRlcnlQcmljZXMEAAAACnRyaW1QcmljZXMJAAEvAAAAAgUAAAAKdGVtcFByaWNlcwkAAGUAAAACCQABMQAAAAEFAAAACnRlbXBQcmljZXMAAAAAAAAAAAEEAAAAC3ByaWNlc0FycmF5CQAEtQAAAAIFAAAACnRyaW1QcmljZXMCAAAAASwEAAAACGxpc3RTaXplCQABkAAAAAEFAAAAC3ByaWNlc0FycmF5BQAAAAhsaXN0U2l6ZQEAAAANZ2V0UHJpY2VBcnJheQAAAAAEAAAACnRlbXBQcmljZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAADWxvdHRlcnlQcmljZXMEAAAACnRyaW1QcmljZXMJAAEvAAAAAgUAAAAKdGVtcFByaWNlcwkAAGUAAAACCQABMQAAAAEFAAAACnRlbXBQcmljZXMAAAAAAAAAAAEEAAAACG5ld0FycmF5CQAEtQAAAAIFAAAACnRyaW1QcmljZXMCAAAAASwFAAAACG5ld0FycmF5AQAAABZnZXRBbW91bnRDbGFpbUZvclRva2VuAAAAAgAAAAV0b2tlbgAAAAZ1cGRhdGUEAAAADWN1cnJlbnRBbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAFdG9rZW4FAAAADWxvdHRlcnlhbW91bnQDCQAAAAAAAAIFAAAADWN1cnJlbnRBbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAPQW1vdW50IGV4Y2VlZGVkAwkAAAAAAAACBQAAAAZ1cGRhdGUGAwkAAAAAAAACBQAAAA1jdXJyZW50QW1vdW50AP//////////BQAAAA1jdXJyZW50QW1vdW50BAAAAAtyZXR1cm5WYWx1ZQkAAGUAAAACBQAAAA1jdXJyZW50QW1vdW50AAAAAAAAAAABBQAAAAtyZXR1cm5WYWx1ZQUAAAANY3VycmVudEFtb3VudAEAAAANcHJvY2VkTG90dGVyeQAAAAIAAAAEdGVtcAAAAAN2YWwJAABkAAAAAgUAAAAEdGVtcAAAAAAAAAAAAQAAAAIAAAABaQEAAAARdXBkYXRlcHJvYmFiaWxpdHkAAAAEAAAAC3Byb2JhYmlsaXR5AAAABmFtb3VudAAAAAlwb29scHJpY2UAAAALcHJvYkRlY2ltYWwEAAAABXRva2VuCQACWgAAAAEJAQAAABNnZW5lcmF0b3JSYW5kb21IYXNoAAAAAQUAAAABaQQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAABN0b3RhbFJlcXVpcmVkQW1vdW50CQAAaAAAAAIFAAAABmFtb3VudAUAAAAJcG9vbHByaWNlAwkAAGYAAAACBQAAABN0b3RhbFJlcXVpcmVkQW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQIAAAAaUGF5bWVudCBpcyBub3QgZXF1YWwgcHJpY2UEAAAACXRlbXBWYWx1ZQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAA1sb3R0ZXJ5UHJpY2VzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAQAAAAKY29udGFpbktleQkABLMAAAACBQAAAAl0ZW1wVmFsdWUFAAAABXRva2VuBAAAABJzdG9yZWRUb2tlbnNWYWx1ZXMEAAAAByRtYXRjaDAFAAAACmNvbnRhaW5LZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQJAAEsAAAAAgkAASwAAAACBQAAAAl0ZW1wVmFsdWUFAAAABXRva2VuAgAAAAEsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXgFAAAAByRtYXRjaDAJAAACAAAAAQIAAAATVG9rZW4gaXMgZHVwbGljYXRlZAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgQAAAALY291bnRUb2tlbnMJAQAAABFnZXRTaXplUHJpY2VBcnJheQAAAAAEAAAAEXVwZGF0ZUxvdHRlcnlQb29sCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAABXRva2VuBQAAAA1sb3R0ZXJ5YW1vdW50BQAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAFdG9rZW4FAAAAEmxvdHRlcnlwcm9iYWJpbGl0eQUAAAALcHJvYmFiaWxpdHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAFdG9rZW4FAAAADGxvdHRlcnlQcmljZQUAAAAJcG9vbHByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAABXRva2VuBQAAAA1sb3R0ZXJ5UHJpY2VzBQAAABJzdG9yZWRUb2tlbnNWYWx1ZXMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAFdG9rZW4FAAAADWNvdW50T2ZQcmljZXMFAAAAC2NvdW50VG9rZW5zCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAABXRva2VuBQAAABlsb3R0ZXJ5cHJvYmFiaWxpdHlkZWNpbWFsBQAAAAtwcm9iRGVjaW1hbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAV0b2tlbgUAAAATbGFzdFRva2VuUmFuZG9tSGFzaAUAAAAFdG9rZW4FAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAAEXVwZGF0ZUxvdHRlcnlQb29sCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAANuaWwAAAABaQEAAAAKc3RhcnRsb3R0bwAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIcmFuZGhhc2gJAQAAAApyYW5kb21pemVyAAAAAQUAAAABaQQAAAANc2l6ZVRlbXBQcmljZQkBAAAAEWdldFNpemVQcmljZUFycmF5AAAAAAQAAAAJcHJpY2VMaXN0CQEAAAANZ2V0UHJpY2VBcnJheQAAAAAEAAAADGRlZmF1bHRWYWx1ZQAAAAAAAAAD6AQAAAAKcmFuZE51bWJlcgkAAGoAAAACCQAEsQAAAAEFAAAACHJhbmRoYXNoCQAAaAAAAAIAAAAAAAAAAAEAAAAAAAAAA+gEAAAABWxpc3RGCQAETAAAAAICAAAACXByaWNlTGlzdAkABEwAAAACAgAAAAVmc2RmZAUAAAADbmlsBAAAAAdhbW91bnRTBAAAAA0kbGlzdDQyOTM0MzI1BQAAAAVsaXN0RgQAAAANJHNpemU0MjkzNDMyNQkAAZAAAAABBQAAAA0kbGlzdDQyOTM0MzI1BAAAAA0kYWNjMDQyOTM0MzI1AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTQyOTM0MzI1AAAAAAAAAAAABQAAAA0kYWNjMDQyOTM0MzI1BAAAAA0kYWNjMTQyOTM0MzI1CQEAAAANcHJvY2VkTG90dGVyeQAAAAIFAAAADSRhY2MwNDI5MzQzMjUJAAGRAAAAAgUAAAANJGxpc3Q0MjkzNDMyNQAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemU0MjkzNDMyNQAAAAAAAAAAAQUAAAANJGFjYzE0MjkzNDMyNQQAAAANJGFjYzI0MjkzNDMyNQkBAAAADXByb2NlZExvdHRlcnkAAAACBQAAAA0kYWNjMTQyOTM0MzI1CQABkQAAAAIFAAAADSRsaXN0NDI5MzQzMjUAAAAAAAAAAAEJAAACAAAAAQIAAAASTGlzdCBzaXplIGV4Y2VlZCAxBAAAAAl3cml0ZVNldHMJAQAAAAhXcml0ZVNldAAAAAEFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAACXdyaXRlU2V0cwkBAAAAC1RyYW5zZmVyU2V0AAAAAQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkIMpkm", "height": 1389279, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3Xt5cvHLFbwHCu4BwpzaVycsoXNJKBzGErksBBbDLHWB Next: CYg4AvbhYq7CNsnSDSYoNb79tmMriZUQ65Vm6fFgkw4r Diff:
OldNewDifferences
7777 }
7878
7979
80+func procedLottery (temp,val) = (temp + 1)
81+
82+
8083 @Callable(i)
8184 func updateprobability (probability,amount,poolprice,probDecimal) = {
8285 let token = toBase64String(generatorRandomHash(i))
116119 let priceList = getPriceArray()
117120 let defaultValue = 1000
118121 let randNumber = (toInt(randhash) % (1 * 1000))
122+ let listF = ["priceList", "fsdfd"]
123+ let amountS = {
124+ let $list42934325 = listF
125+ let $size42934325 = size($list42934325)
126+ let $acc042934325 = 0
127+ if (($size42934325 == 0))
128+ then $acc042934325
129+ else {
130+ let $acc142934325 = procedLottery($acc042934325, $list42934325[0])
131+ if (($size42934325 == 1))
132+ then $acc142934325
133+ else {
134+ let $acc242934325 = procedLottery($acc142934325, $list42934325[1])
135+ throw("List size exceed 1")
136+ }
137+ }
138+ }
119139 let writeSets = WriteSet(nil)
120140 ScriptResult(writeSets, TransferSet(nil))
121141 }
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 countOfPrices = "_count_prices"
1515
1616 let lastHashRandomNumber = "last_spin_random_hash"
1717
1818 let lastTokenRandomHash = "_last_token_random_hash"
1919
2020 func randomizer (inv) = {
2121 let lastPlay = match getBinary(this, lastHashRandomNumber) {
2222 case s: ByteVector =>
2323 s
2424 case _: Unit =>
2525 base58'2ee4oFDYriWJ9EMeR'
2626 case _ =>
2727 throw("Match error")
2828 }
2929 let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
3030 sha256(rand)
3131 }
3232
3333
3434 func generatorRandomHash (inv) = {
3535 let lastHashForToken = match getBinary(this, lastTokenRandomHash) {
3636 case s: ByteVector =>
3737 s
3838 case _: Unit =>
3939 base58'4dD7osCQzvuXJdTiGfKvTwnKT'
4040 case _ =>
4141 throw("Match error")
4242 }
4343 let rand = (((((lastHashForToken + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
4444 sha256(rand)
4545 }
4646
4747
4848 func getSizePriceArray () = {
4949 let tempPrices = getStringValue(this, lotteryPrices)
5050 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
5151 let pricesArray = split(trimPrices, ",")
5252 let listSize = size(pricesArray)
5353 listSize
5454 }
5555
5656
5757 func getPriceArray () = {
5858 let tempPrices = getStringValue(this, lotteryPrices)
5959 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
6060 let newArray = split(trimPrices, ",")
6161 newArray
6262 }
6363
6464
6565 func getAmountClaimForToken (token,update) = {
6666 let currentAmount = getIntegerValue(this, (token + lotteryamount))
6767 if ((currentAmount == 0))
6868 then throw("Amount exceeded")
6969 else if ((update == true))
7070 then if ((currentAmount == -1))
7171 then currentAmount
7272 else {
7373 let returnValue = (currentAmount - 1)
7474 returnValue
7575 }
7676 else currentAmount
7777 }
7878
7979
80+func procedLottery (temp,val) = (temp + 1)
81+
82+
8083 @Callable(i)
8184 func updateprobability (probability,amount,poolprice,probDecimal) = {
8285 let token = toBase64String(generatorRandomHash(i))
8386 let payment = extract(i.payment)
8487 let totalRequiredAmount = (amount * poolprice)
8588 if ((totalRequiredAmount > payment.amount))
8689 then throw("Payment is not equal price")
8790 else {
8891 let tempValue = match getString(this, lotteryPrices) {
8992 case a: String =>
9093 a
9194 case _ =>
9295 ""
9396 }
9497 let containKey = indexOf(tempValue, token)
9598 let storedTokensValues = match containKey {
9699 case _: Unit =>
97100 ((tempValue + token) + ",")
98101 case x: Int =>
99102 throw("Token is duplicated")
100103 case _ =>
101104 throw("Match error")
102105 }
103106 let countTokens = getSizePriceArray()
104107 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)])
105108 ScriptResult(updateLotteryPool, TransferSet(nil))
106109 }
107110 }
108111
109112
110113
111114 @Callable(i)
112115 func startlotto () = {
113116 let currentKey = toBase58String(i.caller.bytes)
114117 let randhash = randomizer(i)
115118 let sizeTempPrice = getSizePriceArray()
116119 let priceList = getPriceArray()
117120 let defaultValue = 1000
118121 let randNumber = (toInt(randhash) % (1 * 1000))
122+ let listF = ["priceList", "fsdfd"]
123+ let amountS = {
124+ let $list42934325 = listF
125+ let $size42934325 = size($list42934325)
126+ let $acc042934325 = 0
127+ if (($size42934325 == 0))
128+ then $acc042934325
129+ else {
130+ let $acc142934325 = procedLottery($acc042934325, $list42934325[0])
131+ if (($size42934325 == 1))
132+ then $acc142934325
133+ else {
134+ let $acc242934325 = procedLottery($acc142934325, $list42934325[1])
135+ throw("List size exceed 1")
136+ }
137+ }
138+ }
119139 let writeSets = WriteSet(nil)
120140 ScriptResult(writeSets, TransferSet(nil))
121141 }
122142
123143
124144 @Verifier(tx)
125145 func verify () = match tx {
126146 case _: DataTransaction =>
127147 true
128148 case _: SetScriptTransaction =>
129149 true
130150 case _ =>
131151 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
132152 }
133153

github/deemru/w8io/03bedc9 
25.15 ms