tx · 4wRYV1nWNXdQKoaakko3YvfhTT7tyrDRoiMhrsYatDVz

3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc:  -0.01000000 Waves

2022.10.19 11:52 [2279050] smart account 3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc > SELF 0.00000000 Waves

{ "type": 13, "id": "4wRYV1nWNXdQKoaakko3YvfhTT7tyrDRoiMhrsYatDVz", "fee": 1000000, "feeAssetId": null, "timestamp": 1666169550365, "version": 2, "chainId": 84, "sender": "3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc", "senderPublicKey": "E3rsNDJ7CyVzRYUkm1k4GYLuZYYxzQioRgWedzPYXTSL", "proofs": [ "3rdJZgnJFDu6ZnoERjbCXyN7fCB25qHEomnaV7YDVnaf66NnP2D9yJEfVMWTJTA7cuw2kktSYkrQNGJF8sEbUpzC" ], "script": "base64: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", "height": 2279050, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2H62WQsMcwSECDUJx4pgxTBTrsX1V1F2eGHHKEB3gZfr Next: GBBG5kTn6DUbM9AATKee1wDLuU3FpLXrmmY9jt5MqqJP Diff:
OldNewDifferences
5252
5353
5454 @Callable(i)
55-func vote4EnnoDAO (purposeId,vote,votePower) = {
55+func vote4EnnoDAO (purposeId,vote) = {
5656 let getDuration = valueOrErrorMessage(getString(this, (((newPurposeKey + "_") + toString(purposeId)) + "_duration")), "purpose not found")
5757 let duration = split(getDuration, "_")
5858 let startHeight = valueOrElse(parseInt(duration[0]), 0)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let voteAsset = base58'43W4FcqA1rEpSmUGHoGiXvpSLfhadws9LS5j3SJsKxxS'
55
66 let newPurposePrice = 10000000000
77
88 let voteDuration = (7 * 1440)
99
1010 let newPurposeKey = "purpose"
1111
1212 let purposeIdKey = "purposeId"
1313
1414 func isPaymentOk (i) = {
1515 let acceptableAssetId = voteAsset
1616 if ((size(i.payments) == 0))
1717 then throw("Payment not attached")
1818 else {
1919 let p = i.payments[0]
2020 match p.assetId {
2121 case assetId: ByteVector =>
2222 if ((assetId == acceptableAssetId))
2323 then (p.amount == newPurposePrice)
2424 else false
2525 case _ =>
2626 throw("Wrong payment asset")
2727 }
2828 }
2929 }
3030
3131
3232 @Callable(i)
3333 func newPurpose (purpose) = {
3434 let stringSize = size(toBytes(purpose))
3535 let currentKey = toBase58String(i.caller.bytes)
3636 let purposeId = valueOrElse(getInteger(this, purposeIdKey), 1)
3737 if (if ((stringSize > 200))
3838 then true
3939 else (10 > stringSize))
4040 then throw("Purpose text cannot be more than 200")
4141 else if (!(isPaymentOk(i)))
4242 then throw(("you have to pay " + toString(newPurposePrice)))
4343 else {
4444 let startHeight = height
4545 let endHeight = (height + voteDuration)
4646 let text = toBase64String(toBytes(purpose))
4747 let id = (purposeId + 1)
4848 [StringEntry(((newPurposeKey + "_") + toString(id)), text), IntegerEntry(purposeIdKey, id), StringEntry((((newPurposeKey + "_") + toString(id)) + "_duration"), ((toString(startHeight) + "_") + toString(endHeight))), StringEntry((((newPurposeKey + "_") + toString(id)) + "_owner"), currentKey)]
4949 }
5050 }
5151
5252
5353
5454 @Callable(i)
55-func vote4EnnoDAO (purposeId,vote,votePower) = {
55+func vote4EnnoDAO (purposeId,vote) = {
5656 let getDuration = valueOrErrorMessage(getString(this, (((newPurposeKey + "_") + toString(purposeId)) + "_duration")), "purpose not found")
5757 let duration = split(getDuration, "_")
5858 let startHeight = valueOrElse(parseInt(duration[0]), 0)
5959 let endHeight = valueOrElse(parseInt(duration[1]), 0)
6060 if (if ((startHeight > height))
6161 then true
6262 else (height > endHeight))
6363 then throw(("voting period is over for purpose: " + toString(purposeId)))
6464 else if (if ((0 >= vote))
6565 then true
6666 else (vote > 2))
6767 then throw("vote must be yes or no")
6868 else {
6969 let amount = i.payments[0].amount
7070 let lockTill = (height + voteDuration)
7171 if (if ((0 >= amount))
7272 then true
7373 else (i.payments[0].assetId != voteAsset))
7474 then throw("invalid token attached")
7575 else if ((vote == 1))
7676 then {
7777 let getYes = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_yes")), 0)
7878 let total = (getYes + amount)
7979 [IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_yes"), total)]
8080 }
8181 else if ((vote == 2))
8282 then {
8383 let getNo = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_no")), 0)
8484 let total = (getNo + amount)
8585 [IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_no"), total)]
8686 }
8787 else throw("nothing to do my friend")
8888 }
8989 }
9090
9191

github/deemru/w8io/169f3d6 
39.42 ms