tx · AHCaoKqip5RD8RJ1LFAbZiJ95wNEy87nj4m9rD3MYehV

3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b:  -0.01400000 Waves

2021.02.06 10:44 [1386047] smart account 3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b > SELF 0.00000000 Waves

{ "type": 13, "id": "AHCaoKqip5RD8RJ1LFAbZiJ95wNEy87nj4m9rD3MYehV", "fee": 1400000, "feeAssetId": null, "timestamp": 1612597482528, "version": 2, "chainId": 84, "sender": "3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b", "senderPublicKey": "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV", "proofs": [ "3zcdSvksm8gs4Q1eJhoYmAc6oq5q2mUJVUsAcW9NiQu1yTSZRnzKdxnjdHArnn8QCsazmJrHqMfeWDiQnuLseqn" ], "script": "base64:AAIDAAAAAAAAABAIARIHCgUBAQEBCBIDCgEIAAAACwAAAAARbG90dGVyeXBvb2xhbW91bnQCAAAAEF9sb3R0ZXJ5X2Ftb3VudF8AAAAAFmxvdHRlcnlwb29scHJvYmFiaWxpdHkCAAAAFV9sb3R0ZXJ5X3Byb2JhYmlsaXR5XwAAAAAdbG90dGVyeXBvb2xwcm9iYWJpbGl0eWRlY2ltYWwCAAAAHV9sb3R0ZXJ5X3Byb2JhYmlsaXR5X2RlY2ltYWxfAAAAABBsb3R0ZXJ5cG9vbHByaWNlAgAAAA9fbG90dGVyeV9wcmljZV8AAAAADWxvdHRlcnlwcmljZXMCAAAAEF9sb3R0ZXJ5X3ByaWNlc18AAAAADGxhc3RIYXNoUmFuZAIAAAARX2hhc2hfbGFzdF9yb3VuZF8AAAAADWxhc3RQbGF5Um91bmQCAAAAFl9sYXN0X3BsYXlfcm91bmRfX2hhc2gBAAAACnJhbmRvbWl6ZXIAAAABAAAAA2ludgQAAAAIbGFzdFBsYXkEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAANbGFzdFBsYXlSb3VuZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAEAAAAMV2F2ZXNMb3R0b1YyCQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIJAADLAAAAAgUAAAAIbGFzdFBsYXkIBQAAAANpbnYAAAANdHJhbnNhY3Rpb25JZAgFAAAAA2ludgAAAA9jYWxsZXJQdWJsaWNLZXkIBQAAAAlsYXN0QmxvY2sAAAATZ2VuZXJhdGlvblNpZ25hdHVyZQkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAfcAAAABBQAAAARyYW5kAQAAABFnZXRTaXplUHJpY2VBcnJheQAAAAAEAAAACnRlbXBQcmljZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAADWxv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EWxvdHRlcnlwb29sYW1vdW50BQAAAAV0b2tlbgQAAAAEcHJvYgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAABZsb3R0ZXJ5cG9vbHByb2JhYmlsaXR5BQAAAAV0b2tlbgQAAAAFcHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAQbG90dGVyeXBvb2xwcmljZQUAAAAFdG9rZW4EAAAADHRva2VuRGVjaW1hbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAB1sb3R0ZXJ5cG9vbHByb2JhYmlsaXR5ZGVjaW1hbAUAAAAFdG9rZW4EAAAACHJhbmRoYXNoCQEAAAAKcmFuZG9taXplcgAAAAEFAAAAAWkEAAAADXNpemVUZW1wUHJpY2UJAQAAABFnZXRTaXplUHJpY2VBcnJheQAAAAAEAAAACXByaWNlTGlzdAkBAAAADWdldFByaWNlQXJyYXkAAAAABAAAABFkYXRTaXplUHJpY2VFbnRyeQkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAAQX3dpbnByaWNlc19zaXplXwUAAAANc2l6ZVRlbXBQcmljZQQAAAAMZGVmYXVsdFZhbHVlAAAAAAAAAAPoBAAAAApyYW5kTnVtYmVyCQAAagAAAAIJAASxAAAAAQUAAAAIcmFuZGhhc2gJAABoAAAAAgUAAAAMdG9rZW5EZWNpbWFsAAAAAAAAAAPoAwkAAGYAAAACBQAAAARwcm9iBQAAAApyYW5kTnVtYmVyBAAAAAt3aW5UcmFuc2ZlcgkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABXByaWNlBQAAAAR1bml0BQAAAANuaWwEAAAACW5ld0Ftb3VudAkBAAAAFmdldEFtb3VudENsYWltRm9yVG9rZW4AAAACBQAAAAV0b2tlbgYEAAAACXdyaXRlU2V0cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABBfd2lubmluZ190aWNrZXRfBQAAAAVwcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABNfd2luaW5uaW5nX2FkZHJlc3NfBQAAAApjdXJyZW50S2V5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEWxvdHRlcnlwb29sYW1vdW50BQAAAAV0b2tlbgUAAAAJbmV3QW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxsYXN0SGFzaFJhbmQFAAAACnJhbmROdW1iZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWxhc3RQbGF5Um91bmQFAAAACHJhbmRoYXNoCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWxhc3RQbGF5Um91bmQCAAAACSBfaW50ZWdlcgkABLEAAAABBQAAAAhyYW5kaGFzaAkABEwAAAACBQAAABFkYXRTaXplUHJpY2VFbnRyeQUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgUAAAAJd3JpdGVTZXRzBQAAAAt3aW5UcmFuc2ZlcgQAAAAJbmV3QW1vdW50CQEAAAAWZ2V0QW1vdW50Q2xhaW1Gb3JUb2tlbgAAAAIFAAAABXRva2VuBgQAAAAJd3JpdGVTZXRzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAAEF93aW5uaW5nX3RpY2tldF8CAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABNfd2luaW5uaW5nX2FkZHJlc3NfAgAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARbG90dGVyeXBvb2xhbW91bnQFAAAABXRva2VuBQAAAAluZXdBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADGxhc3RIYXNoUmFuZAUAAAAKcmFuZE51bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANbGFzdFBsYXlSb3VuZAUAAAAIcmFuZGhhc2gJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANbGFzdFBsYXlSb3VuZAIAAAAJIF9pbnRlZ2VyCQAEsQAAAAEFAAAACHJhbmRoYXNoCQAETAAAAAIFAAAAEWRhdFNpemVQcmljZUVudHJ5BQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1bHQAAAACBQAAAAl3cml0ZVNldHMJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5IOmPaQ==", "height": 1386047, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3r5uhb6FoSRytjRGU7SDD8LEEhNsYVTiLDNh7BQMCtSo Next: HYxLkNvPh2JACCeDg2ueQEduxhDpcmYK3xpu3SXrgkNg Diff:
OldNewDifferences
2020 case s: ByteVector =>
2121 s
2222 case _: Unit =>
23- base58'RxGd4bcUocouhA8beYPZ'
23+ base58'2ee4oFDYriWJ9EMeR'
2424 case _ =>
2525 throw("Match error")
2626 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let lotterypoolamount = "_lottery_amount_"
55
66 let lotterypoolprobability = "_lottery_probability_"
77
88 let lotterypoolprobabilitydecimal = "_lottery_probability_decimal_"
99
1010 let lotterypoolprice = "_lottery_price_"
1111
1212 let lotteryprices = "_lottery_prices_"
1313
1414 let lastHashRand = "_hash_last_round_"
1515
1616 let lastPlayRound = "_last_play_round__hash"
1717
1818 func randomizer (inv) = {
1919 let lastPlay = match getBinary(this, lastPlayRound) {
2020 case s: ByteVector =>
2121 s
2222 case _: Unit =>
23- base58'RxGd4bcUocouhA8beYPZ'
23+ base58'2ee4oFDYriWJ9EMeR'
2424 case _ =>
2525 throw("Match error")
2626 }
2727 let rand = (((((lastPlay + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
2828 sha256(rand)
2929 }
3030
3131
3232 func getSizePriceArray () = {
3333 let tempPrices = getStringValue(this, lotteryprices)
3434 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
3535 let pricesArray = split(trimPrices, ",")
3636 size(pricesArray)
3737 }
3838
3939
4040 func getPriceArray () = {
4141 let tempPrices = getStringValue(this, lotteryprices)
4242 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
4343 split(trimPrices, ",")
4444 }
4545
4646
4747 func getAmountClaimForToken (token,update) = {
4848 let currentAmount = getIntegerValue(this, (lotterypoolamount + token))
4949 if ((currentAmount == 0))
5050 then throw("Amount exceeded")
5151 else if ((update == true))
5252 then {
5353 let returnValue = (currentAmount - 1)
5454 returnValue
5555 }
5656 else currentAmount
5757 }
5858
5959
6060 @Callable(i)
6161 func updateprobability (probability,amount,poolprice,decimal,token) = {
6262 let tempValue = match getString(this, lotteryprices) {
6363 case a: String =>
6464 a
6565 case _ =>
6666 ""
6767 }
6868 let containKey = indexOf(tempValue, token)
6969 let finalValue = match containKey {
7070 case _: Unit =>
7171 ((tempValue + token) + ",")
7272 case x: Int =>
7373 tempValue
7474 case _ =>
7575 throw("Match error")
7676 }
7777 let updateLotteryPool = WriteSet([DataEntry((lotterypoolamount + token), amount), DataEntry((lotterypoolprobability + token), probability), DataEntry((lotterypoolprice + token), poolprice), DataEntry(lotteryprices, finalValue), DataEntry((lotterypoolprobabilitydecimal + token), decimal)])
7878 ScriptResult(updateLotteryPool, TransferSet(nil))
7979 }
8080
8181
8282
8383 @Callable(i)
8484 func startlotto (token) = {
8585 let currentKey = toBase58String(i.caller.bytes)
8686 let storedToken = getIntegerValue(this, (lotterypoolamount + token))
8787 let prob = getIntegerValue(this, (lotterypoolprobability + token))
8888 let price = getIntegerValue(this, (lotterypoolprice + token))
8989 let tokenDecimal = getIntegerValue(this, (lotterypoolprobabilitydecimal + token))
9090 let randhash = randomizer(i)
9191 let sizeTempPrice = getSizePriceArray()
9292 let priceList = getPriceArray()
9393 let datSizePriceEntry = DataEntry((currentKey + "_winprices_size_"), sizeTempPrice)
9494 let defaultValue = 1000
9595 let randNumber = (toInt(randhash) % (tokenDecimal * 1000))
9696 if ((prob > randNumber))
9797 then {
9898 let winTransfer = TransferSet([ScriptTransfer(i.caller, price, unit)])
9999 let newAmount = getAmountClaimForToken(token, true)
100100 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])
101101 ScriptResult(writeSets, winTransfer)
102102 }
103103 else {
104104 let newAmount = getAmountClaimForToken(token, true)
105105 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])
106106 ScriptResult(writeSets, TransferSet(nil))
107107 }
108108 }
109109
110110
111111 @Verifier(tx)
112112 func verify () = match tx {
113113 case _: DataTransaction =>
114114 true
115115 case _: SetScriptTransaction =>
116116 true
117117 case _ =>
118118 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
119119 }
120120

github/deemru/w8io/873ac7e 
33.29 ms