tx · SjbfFVsLpcRBrpFifxzUYoU1xP6TV7m5zTVEF3DFYNL

3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b:  -0.01400000 Waves

2021.02.06 10:37 [1386040] smart account 3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b > SELF 0.00000000 Waves

{ "type": 13, "id": "SjbfFVsLpcRBrpFifxzUYoU1xP6TV7m5zTVEF3DFYNL", "fee": 1400000, "feeAssetId": null, "timestamp": 1612597162040, "version": 2, "chainId": 84, "sender": "3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b", "senderPublicKey": "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV", "proofs": [ "41Qd51shLxWXBNDLCK7auSuEoHusuU63jh3UWBbUgBDZBC4BKJe2yMDnAwHtAVweqkUw7asef6a9cLu7VmR7Xd2g" ], "script": "base64:AAIDAAAAAAAAABAIARIHCgUBAQEBCBIDCgEIAAAACwAAAAARbG90dGVyeXBvb2xhbW91bnQCAAAAEF9sb3R0ZXJ5X2Ftb3VudF8AAAAAFmxvdHRlcnlwb29scHJvYmFiaWxpdHkCAAAAFV9sb3R0ZXJ5X3Byb2JhYmlsaXR5XwAAAAAdbG90dGVyeXBvb2xwcm9iYWJpbGl0eWRlY2ltYWwCAAAAHV9sb3R0ZXJ5X3Byb2JhYmlsaXR5X2RlY2ltYWxfAAAAABBsb3R0ZXJ5cG9vbHByaWNlAgAAAA9fbG90dGVyeV9wcmljZV8AAAAADWxvdHRlcnlwcmljZXMCAAAAEF9sb3R0ZXJ5X3ByaWNlc18AAAAADGxhc3RIYXNoUmFuZAIAAAARX2hhc2hfbGFzdF9yb3VuZF8AAAAADWxhc3RQbGF5Um91bmQCAAAAFl9sYXN0X3BsYXlfcm91bmRfX2hhc2gBAAAACnJhbmRvbWl6ZXIAAAABAAAAA2ludgQAAAAIbGFzdFBsYXkEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAANbGFzdFBsYXlSb3VuZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAEAAAAPD2C2ZSFNMb3R0b1YyAAACQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgUAAAAIbGFzdFBsYXkIBQAAAANpbnYAAAANdHJhbnNhY3Rpb25JZAgFAAAAA2ludgAAAA9jYWxsZXJQdWJsaWNLZXkIBQAAAAlsYXN0QmxvY2sAAAATZ2VuZXJhdGlvblNpZ25hdHVyZQkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAfcAAAABBQAAAARyYW5kAQAAABFnZXRTaXplUHJpY2VBcnJheQAAAAAEAAAACnRlbXBQcmljZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAA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dW50BQAAAAV0b2tlbgQAAAAEcHJvYgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAABZsb3R0ZXJ5cG9vbHByb2JhYmlsaXR5BQAAAAV0b2tlbgQAAAAFcHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAQbG90dGVyeXBvb2xwcmljZQUAAAAFdG9rZW4EAAAADHRva2VuRGVjaW1hbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAB1sb3R0ZXJ5cG9vbHByb2JhYmlsaXR5ZGVjaW1hbAUAAAAFdG9rZW4EAAAACHJhbmRoYXNoCQEAAAAKcmFuZG9taXplcgAAAAEFAAAAAWkEAAAADXNpemVUZW1wUHJpY2UJAQAAABFnZXRTaXplUHJpY2VBcnJheQAAAAAEAAAACXByaWNlTGlzdAkBAAAADWdldFByaWNlQXJyYXkAAAAABAAAABFkYXRTaXplUHJpY2VFbnRyeQkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAAQX3dpbnByaWNlc19zaXplXwUAAAANc2l6ZVRlbXBQcmljZQQAAAAMZGVmYXVsdFZhbHVlAAAAAAAAAAPoBAAAAApyYW5kTnVtYmVyCQAAagAAAAIJAASxAAAAAQUAAAAIcmFuZGhhc2gJAABoAAAAAgUAAAAMdG9rZW5EZWNpbWFsAAAAAAAAAAPoAwkAAGYAAAACBQAAAARwcm9iBQAAAApyYW5kTnVtYmVyBAAAAAt3aW5UcmFuc2ZlcgkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABXByaWNlBQAAAAR1bml0BQAAAANuaWwEAAAACW5ld0Ftb3VudAkBAAAAFmdldEFtb3VudENsYWltRm9yVG9rZW4AAAACBQAAAAV0b2tlbgYEAAAACXdyaXRlU2V0cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABBfd2lubmluZ190aWNrZXRfBQAAAAVwcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABNfd2luaW5uaW5nX2FkZHJlc3NfBQAAAApjdXJyZW50S2V5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEWxvdHRlcnlwb29sYW1vdW50BQAAAAV0b2tlbgUAAAAJbmV3QW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxsYXN0SGFzaFJhbmQFAAAACnJhbmROdW1iZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWxhc3RQbGF5Um91bmQFAAAACHJhbmRoYXNoCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWxhc3RQbGF5Um91bmQCAAAACSBfaW50ZWdlcgkABLEAAAABBQAAAAhyYW5kaGFzaAkABEwAAAACBQAAABFkYXRTaXplUHJpY2VFbnRyeQUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgUAAAAJd3JpdGVTZXRzBQAAAAt3aW5UcmFuc2ZlcgQAAAAJbmV3QW1vdW50CQEAAAAWZ2V0QW1vdW50Q2xhaW1Gb3JUb2tlbgAAAAIFAAAABXRva2VuBgQAAAAJd3JpdGVTZXRzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAAEF93aW5uaW5nX3RpY2tldF8CAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABNfd2luaW5uaW5nX2FkZHJlc3NfAgAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARbG90dGVyeXBvb2xhbW91bnQFAAAABXRva2VuBQAAAAluZXdBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADGxhc3RIYXNoUmFuZAUAAAAKcmFuZE51bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANbGFzdFBsYXlSb3VuZAUAAAAIcmFuZGhhc2gJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANbGFzdFBsYXlSb3VuZAIAAAAJIF9pbnRlZ2VyCQAEsQAAAAEFAAAACHJhbmRoYXNoCQAETAAAAAIFAAAAEWRhdFNpemVQcmljZUVudHJ5BQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1bHQAAAACBQAAAAl3cml0ZVNldHMJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5PB+W0Q==", "height": 1386040, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7rLWAFSujGvV6RQgkfzJ6vtPfj77xzawdzkjLKvJCAJo Next: 3r5uhb6FoSRytjRGU7SDD8LEEhNsYVTiLDNh7BQMCtSo Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let lotterypoolamount = "_lottery_amount_"
55
6-let lotterypoolprobability = "_lottery_prob_"
6+let lotterypoolprobability = "_lottery_probability_"
7+
8+let lotterypoolprobabilitydecimal = "_lottery_probability_decimal_"
79
810 let lotterypoolprice = "_lottery_price_"
911
5658
5759
5860 @Callable(i)
59-func updateprobability (probability,amount,poolprice,token) = {
61+func updateprobability (probability,amount,poolprice,decimal,token) = {
6062 let tempValue = match getString(this, lotteryprices) {
6163 case a: String =>
6264 a
7274 case _ =>
7375 throw("Match error")
7476 }
75- let updateLotteryPool = WriteSet([DataEntry((lotterypoolamount + token), amount), DataEntry((lotterypoolprobability + token), probability), DataEntry((lotterypoolprice + token), poolprice), DataEntry(lotteryprices, finalValue)])
77+ let updateLotteryPool = WriteSet([DataEntry((lotterypoolamount + token), amount), DataEntry((lotterypoolprobability + token), probability), DataEntry((lotterypoolprice + token), poolprice), DataEntry(lotteryprices, finalValue), DataEntry(lotterypoolprobabilitydecimal, decimal)])
7678 ScriptResult(updateLotteryPool, TransferSet(nil))
7779 }
7880
8486 let storedToken = getIntegerValue(this, (lotterypoolamount + token))
8587 let prob = getIntegerValue(this, (lotterypoolprobability + token))
8688 let price = getIntegerValue(this, (lotterypoolprice + token))
89+ let tokenDecimal = getIntegerValue(this, (lotterypoolprobabilitydecimal + token))
8790 let randhash = randomizer(i)
8891 let sizeTempPrice = getSizePriceArray()
8992 let priceList = getPriceArray()
9093 let datSizePriceEntry = DataEntry((currentKey + "_winprices_size_"), sizeTempPrice)
91- let randNumber = (toInt(randhash) % 1000)
92- if ((prob > (randNumber * prob)))
94+ let defaultValue = 1000
95+ let randNumber = (toInt(randhash) % (tokenDecimal * 1000))
96+ if ((prob > randNumber))
9397 then {
9498 let winTransfer = TransferSet([ScriptTransfer(i.caller, price, unit)])
9599 let newAmount = getAmountClaimForToken(token, true)
96- let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, (randNumber * prob)), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
100+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, randNumber), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
97101 ScriptResult(writeSets, winTransfer)
98102 }
99103 else {
100104 let newAmount = getAmountClaimForToken(token, true)
101- let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), ""), DataEntry((currentKey + "_wininning_address_"), ""), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, (randNumber * prob)), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
105+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), ""), DataEntry((currentKey + "_wininning_address_"), ""), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, randNumber), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
102106 ScriptResult(writeSets, TransferSet(nil))
103107 }
104108 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let lotterypoolamount = "_lottery_amount_"
55
6-let lotterypoolprobability = "_lottery_prob_"
6+let lotterypoolprobability = "_lottery_probability_"
7+
8+let lotterypoolprobabilitydecimal = "_lottery_probability_decimal_"
79
810 let lotterypoolprice = "_lottery_price_"
911
1012 let lotteryprices = "_lottery_prices_"
1113
1214 let lastHashRand = "_hash_last_round_"
1315
1416 let lastPlayRound = "_last_play_round__hash"
1517
1618 func randomizer (inv) = {
1719 let lastPlay = match getBinary(this, lastPlayRound) {
1820 case s: ByteVector =>
1921 s
2022 case _: Unit =>
2123 base58'RxGd4bcUocouhA8beYPZ'
2224 case _ =>
2325 throw("Match error")
2426 }
2527 let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
2628 sha256(rand)
2729 }
2830
2931
3032 func getSizePriceArray () = {
3133 let tempPrices = getStringValue(this, lotteryprices)
3234 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
3335 let pricesArray = split(trimPrices, ",")
3436 size(pricesArray)
3537 }
3638
3739
3840 func getPriceArray () = {
3941 let tempPrices = getStringValue(this, lotteryprices)
4042 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
4143 split(trimPrices, ",")
4244 }
4345
4446
4547 func getAmountClaimForToken (token,update) = {
4648 let currentAmount = getIntegerValue(this, (lotterypoolamount + token))
4749 if ((currentAmount == 0))
4850 then throw("Amount exceeded")
4951 else if ((update == true))
5052 then {
5153 let returnValue = (currentAmount - 1)
5254 returnValue
5355 }
5456 else currentAmount
5557 }
5658
5759
5860 @Callable(i)
59-func updateprobability (probability,amount,poolprice,token) = {
61+func updateprobability (probability,amount,poolprice,decimal,token) = {
6062 let tempValue = match getString(this, lotteryprices) {
6163 case a: String =>
6264 a
6365 case _ =>
6466 ""
6567 }
6668 let containKey = indexOf(tempValue, token)
6769 let finalValue = match containKey {
6870 case _: Unit =>
6971 ((tempValue + token) + ",")
7072 case x: Int =>
7173 tempValue
7274 case _ =>
7375 throw("Match error")
7476 }
75- let updateLotteryPool = WriteSet([DataEntry((lotterypoolamount + token), amount), DataEntry((lotterypoolprobability + token), probability), DataEntry((lotterypoolprice + token), poolprice), DataEntry(lotteryprices, finalValue)])
77+ let updateLotteryPool = WriteSet([DataEntry((lotterypoolamount + token), amount), DataEntry((lotterypoolprobability + token), probability), DataEntry((lotterypoolprice + token), poolprice), DataEntry(lotteryprices, finalValue), DataEntry(lotterypoolprobabilitydecimal, decimal)])
7678 ScriptResult(updateLotteryPool, TransferSet(nil))
7779 }
7880
7981
8082
8183 @Callable(i)
8284 func startlotto (token) = {
8385 let currentKey = toBase58String(i.caller.bytes)
8486 let storedToken = getIntegerValue(this, (lotterypoolamount + token))
8587 let prob = getIntegerValue(this, (lotterypoolprobability + token))
8688 let price = getIntegerValue(this, (lotterypoolprice + token))
89+ let tokenDecimal = getIntegerValue(this, (lotterypoolprobabilitydecimal + token))
8790 let randhash = randomizer(i)
8891 let sizeTempPrice = getSizePriceArray()
8992 let priceList = getPriceArray()
9093 let datSizePriceEntry = DataEntry((currentKey + "_winprices_size_"), sizeTempPrice)
91- let randNumber = (toInt(randhash) % 1000)
92- if ((prob > (randNumber * prob)))
94+ let defaultValue = 1000
95+ let randNumber = (toInt(randhash) % (tokenDecimal * 1000))
96+ if ((prob > randNumber))
9397 then {
9498 let winTransfer = TransferSet([ScriptTransfer(i.caller, price, unit)])
9599 let newAmount = getAmountClaimForToken(token, true)
96- let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, (randNumber * prob)), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
100+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, randNumber), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
97101 ScriptResult(writeSets, winTransfer)
98102 }
99103 else {
100104 let newAmount = getAmountClaimForToken(token, true)
101- let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), ""), DataEntry((currentKey + "_wininning_address_"), ""), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, (randNumber * prob)), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
105+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), ""), DataEntry((currentKey + "_wininning_address_"), ""), DataEntry((lotterypoolamount + token), newAmount), DataEntry(lastHashRand, randNumber), DataEntry(lastPlayRound, randhash), DataEntry((lastPlayRound + " _integer"), toInt(randhash)), datSizePriceEntry])
102106 ScriptResult(writeSets, TransferSet(nil))
103107 }
104108 }
105109
106110
107111 @Verifier(tx)
108112 func verify () = match tx {
109113 case _: DataTransaction =>
110114 true
111115 case _: SetScriptTransaction =>
112116 true
113117 case _ =>
114118 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
115119 }
116120

github/deemru/w8io/873ac7e 
64.79 ms