tx · CYg4AvbhYq7CNsnSDSYoNb79tmMriZUQ65Vm6fFgkw4r

3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b:  -0.01400000 Waves

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

{ "type": 13, "id": "CYg4AvbhYq7CNsnSDSYoNb79tmMriZUQ65Vm6fFgkw4r", "fee": 1400000, "feeAssetId": null, "timestamp": 1612790587259, "version": 2, "chainId": 84, "sender": "3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b", "senderPublicKey": "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV", "proofs": [ "5cqB2gSJafFhpEJfS8MvZkDWoCrJHg7re5u59mRkkuHBnW8k49ccHHpPXjuVWyXEq9axKp1F64QkFzYVQXCJw8mw" ], "script": "base64:AAIDAAAAAAAAAAwIARIGCgQBAQEBEgAAAAAOAAAAAA1sb3R0ZXJ5YW1vdW50AgAAAAdfYW1vdW50AAAAABJsb3R0ZXJ5cHJvYmFiaWxpdHkCAAAADF9wcm9iYWJpbGl0eQAAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAIAAAAVX3Byb2JhYmlsaXR5X2RlY2ltYWxfAAAAAAxsb3R0ZXJ5UHJpY2UCAAAABl9wcmljZQAAAAANbG90dGVyeVByaWNlcwIAAAAQX2xvdHRlcnlfcHJpY2VzXwAAAAANY291bnRPZlByaWNlcwIAAAANX2NvdW50X3ByaWNlcwAAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXICAAAAFWxhc3Rfc3Bpbl9yYW5kb21faGFzaAAAAAATbGFzdFRva2VuUmFuZG9tSGFzaAIAAAAXX2xhc3RfdG9rZW5fcmFuZG9tX2hhc2gBAAAACnJhbmRvbWl6ZXIAAAABAAAAA2ludgQAAAAIbGFzdFBsYXkEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAAUbGFzdEhhc2hSYW5kb21OdW1iZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQBAAAADFdhdmVzTG90dG9WMgkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgQAAAAEcmFuZAkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIFAAAACGxhc3RQbGF5CAUAAAADaW52AAAADXRyYW5zYWN0aW9uSWQIBQAAAANpbnYAAAAPY2FsbGVyUHVibGljS2V5CAUAAAAJbGFzdEJsb2NrAAAAE2dlbmVyYXRpb25TaWduYXR1cmUJAAGaAAAAAQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAGaAAAAAQgFAAAACWxhc3RCbG9jawAAAAZoZWlnaHQJAAH3AAAAAQUAAAAEcmFuZAEAAAATZ2VuZXJhdG9yUmFuZG9tSGFzaAAAAAEAAAADaW52BAAAABBsYXN0SGFzaEZvclRva2VuBAAAAAckbWF0Y2gwCQAEHAAAAAIF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", "height": 1389279, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8sfGQJKZHLiN7q6oW2f4d9ZBk6eyuVcGRcVTyFfaEXbu Next: FxXS7swn7hHGXCxxwsN68RkVrPWbycui6b3wKaNd69As Diff:
OldNewDifferences
121121 let randNumber = (toInt(randhash) % (1 * 1000))
122122 let listF = ["priceList", "fsdfd"]
123123 let amountS = {
124- let $list42934325 = listF
125- let $size42934325 = size($list42934325)
126- let $acc042934325 = 0
127- if (($size42934325 == 0))
128- then $acc042934325
124+ let $list42934329 = priceList
125+ let $size42934329 = size($list42934329)
126+ let $acc042934329 = 0
127+ if (($size42934329 == 0))
128+ then $acc042934329
129129 else {
130- let $acc142934325 = procedLottery($acc042934325, $list42934325[0])
131- if (($size42934325 == 1))
132- then $acc142934325
130+ let $acc142934329 = procedLottery($acc042934329, $list42934329[0])
131+ if (($size42934329 == 1))
132+ then $acc142934329
133133 else {
134- let $acc242934325 = procedLottery($acc142934325, $list42934325[1])
134+ let $acc242934329 = procedLottery($acc142934329, $list42934329[1])
135135 throw("List size exceed 1")
136136 }
137137 }
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
8080 func procedLottery (temp,val) = (temp + 1)
8181
8282
8383 @Callable(i)
8484 func updateprobability (probability,amount,poolprice,probDecimal) = {
8585 let token = toBase64String(generatorRandomHash(i))
8686 let payment = extract(i.payment)
8787 let totalRequiredAmount = (amount * poolprice)
8888 if ((totalRequiredAmount > payment.amount))
8989 then throw("Payment is not equal price")
9090 else {
9191 let tempValue = match getString(this, lotteryPrices) {
9292 case a: String =>
9393 a
9494 case _ =>
9595 ""
9696 }
9797 let containKey = indexOf(tempValue, token)
9898 let storedTokensValues = match containKey {
9999 case _: Unit =>
100100 ((tempValue + token) + ",")
101101 case x: Int =>
102102 throw("Token is duplicated")
103103 case _ =>
104104 throw("Match error")
105105 }
106106 let countTokens = getSizePriceArray()
107107 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)])
108108 ScriptResult(updateLotteryPool, TransferSet(nil))
109109 }
110110 }
111111
112112
113113
114114 @Callable(i)
115115 func startlotto () = {
116116 let currentKey = toBase58String(i.caller.bytes)
117117 let randhash = randomizer(i)
118118 let sizeTempPrice = getSizePriceArray()
119119 let priceList = getPriceArray()
120120 let defaultValue = 1000
121121 let randNumber = (toInt(randhash) % (1 * 1000))
122122 let listF = ["priceList", "fsdfd"]
123123 let amountS = {
124- let $list42934325 = listF
125- let $size42934325 = size($list42934325)
126- let $acc042934325 = 0
127- if (($size42934325 == 0))
128- then $acc042934325
124+ let $list42934329 = priceList
125+ let $size42934329 = size($list42934329)
126+ let $acc042934329 = 0
127+ if (($size42934329 == 0))
128+ then $acc042934329
129129 else {
130- let $acc142934325 = procedLottery($acc042934325, $list42934325[0])
131- if (($size42934325 == 1))
132- then $acc142934325
130+ let $acc142934329 = procedLottery($acc042934329, $list42934329[0])
131+ if (($size42934329 == 1))
132+ then $acc142934329
133133 else {
134- let $acc242934325 = procedLottery($acc142934325, $list42934325[1])
134+ let $acc242934329 = procedLottery($acc142934329, $list42934329[1])
135135 throw("List size exceed 1")
136136 }
137137 }
138138 }
139139 let writeSets = WriteSet(nil)
140140 ScriptResult(writeSets, TransferSet(nil))
141141 }
142142
143143
144144 @Verifier(tx)
145145 func verify () = match tx {
146146 case _: DataTransaction =>
147147 true
148148 case _: SetScriptTransaction =>
149149 true
150150 case _ =>
151151 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
152152 }
153153

github/deemru/w8io/03bedc9 
55.50 ms