tx · GvkixvU9maLvDjUvANN7espCw77GTvekh3Ftg56MpogZ

3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b:  -0.01400000 Waves

2021.02.06 08:19 [1385894] smart account 3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b > SELF 0.00000000 Waves

{ "type": 13, "id": "GvkixvU9maLvDjUvANN7espCw77GTvekh3Ftg56MpogZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1612588837284, "version": 2, "chainId": 84, "sender": "3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b", "senderPublicKey": "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV", "proofs": [ "9tgjCUQzt4Cx29tz3F6uXt3kzg6HxcXHGN3WkSoGvRQb4HYaoFFk4QdbooQAqJ9JkG2yjJz7uX91hQMnVtDxKAw" ], "script": "base64:AAIDAAAAAAAAAA8IARIGCgQBAQEIEgMKAQgAAAAIAAAAABFsb3R0ZXJ5cG9vbGFtb3VudAIAAAAQX2xvdHRlcnlfYW1vdW50XwAAAAAWbG90dGVyeXBvb2xwcm9iYWJpbGl0eQIAAAAOX2xvdHRlcnlfcHJvYl8AAAAAEGxvdHRlcnlwb29scHJpY2UCAAAAD19sb3R0ZXJ5X3ByaWNlXwAAAAANbG90dGVyeXByaWNlcwIAAAAQX2xvdHRlcnlfcHJpY2VzXwEAAAAKcmFuZG9taXplcgAAAAEAAAADaW52BAAAAARyYW5kCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIIBQAAAANpbnYAAAANdHJhbnNhY3Rpb25JZAgFAAAAA2ludgAAAA9jYWxsZXJQdWJsaWNLZXkIBQAAAAlsYXN0QmxvY2sAAAATZ2VuZXJhdGlvblNpZ25hdHVyZQkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAZoAAAABCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAfcAAAABBQAAAARyYW5kAQAAABFnZXRTaXplUHJpY2VBcnJheQAAAAAEAAAACnRlbXBQcmljZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAADWxvdHRlcnlwcmljZXMEAAAACnRyaW1QcmljZXMJAAEvAAAAAgUAAAAKdGVtcFByaWNlcwkAAGUAAAACCQABMQAAAAEFAAAACnRlbXBQcmljZXMAAAAAAAAAAAEEAAAAC3ByaWNlc0FycmF5CQAEtQAAAAIFAAAACnRyaW1QcmljZXMCAAAAASwJAAGQAAAAAQUAAAALcHJpY2VzQXJyYXkBAAAADWdldFByaWNlQXJyYXkAAAAABAAAAAp0ZW1wUHJpY2VzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAA1sb3R0ZXJ5cHJpY2VzBAAAAAp0cmltUHJpY2VzCQABLwAAAAIFAAAACnRlbXBQcmljZXMJAABlAAAAAgkAATEAAAABBQAAAAp0ZW1wUHJpY2VzAAAAAAAAAAABCQAEtQAAAAIFAAAACnRyaW1QcmljZXMCAAAAASwBAAAAGXVwZGF0ZUFtb3VudENsYWltRm9yVG9rZW4AAAABAAAABXRva2VuBAAAAA1jdXJyZW50QW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAEWxvdHRlcnlwb29sYW1vdW50BQAAAAV0b2tlbgMJAAAAAAAAAgUAAAANY3VycmVudEFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAAA9BbW91bnQgZXhjZWVkZWQEAAAAC3JldHVyblZhbHVlCQAAZQAAAAIFAAAADWN1cnJlbnRBbW91bnQAAAAAAAAAAAEFAAAAC3JldHVyblZhbHVlAAAAAgAAAAFpAQAAABF1cGRhdGVwcm9iYWJpbGl0eQAAAAQAAAALcHJvYmFiaWxpdHkAAAAGYW1vdW50AAAACXBvb2xwcmljZQAAAAV0b2tlbgQAAAAJdGVtcFZhbHVlBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAADWxvdHRlcnlwcmljZXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAABAAAAApjb250YWluS2V5CQAEswAAAAIFAAAACXRlbXBWYWx1ZQUAAAAFdG9rZW4EAAAACmZpbmFsVmFsdWUEAAAAByRtYXRjaDAFAAAACmNvbnRhaW5LZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQJAAEsAAAAAgkAASwAAAACBQAAAAl0ZW1wVmFsdWUFAAAABXRva2VuAgAAAAEsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXgFAAAAByRtYXRjaDAFAAAACXRlbXBWYWx1ZQkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgQAAAARdXBkYXRlTG90dGVyeVBvb2wJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARbG90dGVyeXBvb2xhbW91bnQFAAAABXRva2VuBQAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAWbG90dGVyeXBvb2xwcm9iYWJpbGl0eQUAAAAFdG9rZW4FAAAAC3Byb2JhYmlsaXR5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGxvdHRlcnlwb29scHJpY2UFAAAABXRva2VuBQAAAAlwb29scHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWxvdHRlcnlwcmljZXMFAAAACmZpbmFsVmFsdWUFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAAEXVwZGF0ZUxvdHRlcnlQb29sCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAANuaWwAAAABaQEAAAAKc3RhcnRsb3R0bwAAAAEAAAAFdG9rZW4EAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALc3RvcmVkVG9rZW4JAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAARbG90dGVyeXBvb2xhbW91bnQFAAAABXRva2VuBAAAAARwcm9iCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAFmxvdHRlcnlwb29scHJvYmFiaWxpdHkFAAAABXRva2VuBAAAAAVwcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAABBsb3R0ZXJ5cG9vbHByaWNlBQAAAAV0b2tlbgQAAAAIcmFuZGhhc2gJAQAAAApyYW5kb21pemVyAAAAAQUAAAABaQQAAAANc2l6ZVRlbXBQcmljZQkBAAAAEWdldFNpemVQcmljZUFycmF5AAAAAAQAAAAJcHJpY2VMaXN0CQEAAAANZ2V0UHJpY2VBcnJheQAAAAAEAAAAEWRhdFNpemVQcmljZUVudHJ5CQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABBfd2lucHJpY2VzX3NpemVfBQAAAA1zaXplVGVtcFByaWNlAwkAAGYAAAACBQAAAARwcm9iCQAAagAAAAIJAASxAAAAAQUAAAAIcmFuZGhhc2gAAAAAAAAAA+gEAAAAC3dpblRyYW5zZmVyCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAFcHJpY2UFAAAABHVuaXQFAAAAA25pbAQAAAAJbmV3QW1vdW50CQEAAAAZdXBkYXRlQW1vdW50Q2xhaW1Gb3JUb2tlbgAAAAEFAAAABXRva2VuBAAAAAl3cml0ZVNldHMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAAQX3dpbm5pbmdfdGlja2V0XwUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAATX3dpbmlubmluZ19hZGRyZXNzXwUAAAAKY3VycmVudEtleQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFsb3R0ZXJ5cG9vbGFtb3VudAUAAAAFdG9rZW4FAAAACW5ld0Ftb3VudAkABEwAAAACBQAAABFkYXRTaXplUHJpY2VFbnRyeQUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgUAAAAJd3JpdGVTZXRzBQAAAAt3aW5UcmFuc2ZlcgQAAAAJd3JpdGVTZXRzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAAEF93aW5uaW5nX3RpY2tldF8CAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAABNfd2luaW5uaW5nX2FkZHJlc3NfAgAAAAAJAARMAAAAAgUAAAARZGF0U2l6ZVByaWNlRW50cnkFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIFAAAACXdyaXRlU2V0cwkBAAAAC1RyYW5zZmVyU2V0AAAAAQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXlkTDNw", "height": 1385894, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7KwMYieXCfJz5Cfdc9yHZuyeBYeoGa1FdBhbwykgYYja Next: HuF9VyGAzie52iCA8x8JGwKzhwnUNwB98Uorz8FYx69r Diff:
OldNewDifferences
6565
6666
6767 @Callable(i)
68-func startlotto (token,walletAddress) = {
68+func startlotto (token) = {
6969 let currentKey = toBase58String(i.caller.bytes)
70- let recipientaddress = addressFromStringValue(walletAddress)
7170 let storedToken = getIntegerValue(this, (lotterypoolamount + token))
7271 let prob = getIntegerValue(this, (lotterypoolprobability + token))
7372 let price = getIntegerValue(this, (lotterypoolprice + token))
7776 let datSizePriceEntry = DataEntry((currentKey + "_winprices_size_"), sizeTempPrice)
7877 if ((prob > (toInt(randhash) % 1000)))
7978 then {
80- let winTransfer = TransferSet([ScriptTransfer(recipientaddress, price, unit)])
79+ let winTransfer = TransferSet([ScriptTransfer(i.caller, price, unit)])
8180 let newAmount = updateAmountClaimForToken(token)
82- let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), walletAddress), DataEntry((lotterypoolamount + token), newAmount), datSizePriceEntry])
81+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((lotterypoolamount + token), newAmount), datSizePriceEntry])
8382 ScriptResult(writeSets, winTransfer)
8483 }
8584 else {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let lotterypoolamount = "_lottery_amount_"
55
66 let lotterypoolprobability = "_lottery_prob_"
77
88 let lotterypoolprice = "_lottery_price_"
99
1010 let lotteryprices = "_lottery_prices_"
1111
1212 func randomizer (inv) = {
1313 let rand = ((((inv.transactionId + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
1414 sha256(rand)
1515 }
1616
1717
1818 func getSizePriceArray () = {
1919 let tempPrices = getStringValue(this, lotteryprices)
2020 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
2121 let pricesArray = split(trimPrices, ",")
2222 size(pricesArray)
2323 }
2424
2525
2626 func getPriceArray () = {
2727 let tempPrices = getStringValue(this, lotteryprices)
2828 let trimPrices = take(tempPrices, (size(tempPrices) - 1))
2929 split(trimPrices, ",")
3030 }
3131
3232
3333 func updateAmountClaimForToken (token) = {
3434 let currentAmount = getIntegerValue(this, (lotterypoolamount + token))
3535 if ((currentAmount == 0))
3636 then throw("Amount exceeded")
3737 else {
3838 let returnValue = (currentAmount - 1)
3939 returnValue
4040 }
4141 }
4242
4343
4444 @Callable(i)
4545 func updateprobability (probability,amount,poolprice,token) = {
4646 let tempValue = match getString(this, lotteryprices) {
4747 case a: String =>
4848 a
4949 case _ =>
5050 ""
5151 }
5252 let containKey = indexOf(tempValue, token)
5353 let finalValue = match containKey {
5454 case _: Unit =>
5555 ((tempValue + token) + ",")
5656 case x: Int =>
5757 tempValue
5858 case _ =>
5959 throw("Match error")
6060 }
6161 let updateLotteryPool = WriteSet([DataEntry((lotterypoolamount + token), amount), DataEntry((lotterypoolprobability + token), probability), DataEntry((lotterypoolprice + token), poolprice), DataEntry(lotteryprices, finalValue)])
6262 ScriptResult(updateLotteryPool, TransferSet(nil))
6363 }
6464
6565
6666
6767 @Callable(i)
68-func startlotto (token,walletAddress) = {
68+func startlotto (token) = {
6969 let currentKey = toBase58String(i.caller.bytes)
70- let recipientaddress = addressFromStringValue(walletAddress)
7170 let storedToken = getIntegerValue(this, (lotterypoolamount + token))
7271 let prob = getIntegerValue(this, (lotterypoolprobability + token))
7372 let price = getIntegerValue(this, (lotterypoolprice + token))
7473 let randhash = randomizer(i)
7574 let sizeTempPrice = getSizePriceArray()
7675 let priceList = getPriceArray()
7776 let datSizePriceEntry = DataEntry((currentKey + "_winprices_size_"), sizeTempPrice)
7877 if ((prob > (toInt(randhash) % 1000)))
7978 then {
80- let winTransfer = TransferSet([ScriptTransfer(recipientaddress, price, unit)])
79+ let winTransfer = TransferSet([ScriptTransfer(i.caller, price, unit)])
8180 let newAmount = updateAmountClaimForToken(token)
82- let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), walletAddress), DataEntry((lotterypoolamount + token), newAmount), datSizePriceEntry])
81+ let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), price), DataEntry((currentKey + "_wininning_address_"), currentKey), DataEntry((lotterypoolamount + token), newAmount), datSizePriceEntry])
8382 ScriptResult(writeSets, winTransfer)
8483 }
8584 else {
8685 let writeSets = WriteSet([DataEntry((currentKey + "_winning_ticket_"), ""), DataEntry((currentKey + "_wininning_address_"), ""), datSizePriceEntry])
8786 ScriptResult(writeSets, TransferSet(nil))
8887 }
8988 }
9089
9190
9291 @Verifier(tx)
9392 func verify () = match tx {
9493 case _: DataTransaction =>
9594 true
9695 case _: SetScriptTransaction =>
9796 true
9897 case _ =>
9998 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
10099 }
101100

github/deemru/w8io/169f3d6 
52.30 ms