tx · 9DXA9BrYGyXUM4jXBx5b9Tmr4yrXmtaBNBhTEh1EzDX8

3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc:  -0.01000000 Waves

2022.10.19 13:52 [2279172] smart account 3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc > SELF 0.00000000 Waves

{ "type": 13, "id": "9DXA9BrYGyXUM4jXBx5b9Tmr4yrXmtaBNBhTEh1EzDX8", "fee": 1000000, "feeAssetId": null, "timestamp": 1666176743012, "version": 2, "chainId": 84, "sender": "3N5YzdqDE6FDdsLNGXU4G4yrmirb2oiifEc", "senderPublicKey": "E3rsNDJ7CyVzRYUkm1k4GYLuZYYxzQioRgWedzPYXTSL", "proofs": [ "2Pe9SqTa8FsvnbfRA7M1GkMRurabr3xR33NufaHV3EE93KYLbkoXsJHRRUXTizmXARjMiWPoZjq6CjBSJqfJpFwh" ], "script": "base64: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", "height": 2279172, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GBBG5kTn6DUbM9AATKee1wDLuU3FpLXrmmY9jt5MqqJP Next: 8NkNjRtmj8vQ5my4Eh6ZgXXfvZJvs4zPUqToPsS64k9U Diff:
OldNewDifferences
5757 let duration = split(getDuration, "_")
5858 let startHeight = valueOrElse(parseInt(duration[0]), 0)
5959 let endHeight = valueOrElse(parseInt(duration[1]), 0)
60+ let currentKey = toBase58String(i.caller.bytes)
6061 if (if ((startHeight > height))
6162 then true
6263 else (height > endHeight))
7475 then throw("invalid token attached")
7576 else {
7677 let totalVote = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_totalVote")), 0)
78+ let walletTotalVote = valueOrElse(getInteger(this, ((((newPurposeKey + "_") + toString(purposeId)) + currentKey) + "_walletTotalVote")), 0)
7779 let firstVoteCast = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock")), height)
7880 if ((vote == 1))
7981 then {
8082 let getYes = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_yes")), 0)
8183 let total = (getYes + amount)
82-[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_yes"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast)]
84+[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_yes"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast), IntegerEntry(((((newPurposeKey + "_") + toString(purposeId)) + currentKey) + "_walletTotalVote"), (amount + walletTotalVote))]
8385 }
8486 else if ((vote == 2))
8587 then {
8688 let getNo = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_no")), 0)
8789 let total = (getNo + amount)
88-[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_no"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast)]
90+[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_no"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast), IntegerEntry(((((newPurposeKey + "_") + toString(purposeId)) + currentKey) + "_walletTotalVote"), (amount + walletTotalVote))]
8991 }
9092 else throw("nothing to do my friend")
9193 }
9395 }
9496
9597
98+
99+@Callable(i)
100+func Delete (entry) = [DeleteEntry(entry)]
101+
102+
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)
5555 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)
60+ let currentKey = toBase58String(i.caller.bytes)
6061 if (if ((startHeight > height))
6162 then true
6263 else (height > endHeight))
6364 then throw(("voting period is over for purpose: " + toString(purposeId)))
6465 else if (if ((0 >= vote))
6566 then true
6667 else (vote > 2))
6768 then throw("vote must be yes or no")
6869 else {
6970 let amount = i.payments[0].amount
7071 let lockTill = (height + voteDuration)
7172 if (if ((0 >= amount))
7273 then true
7374 else (i.payments[0].assetId != voteAsset))
7475 then throw("invalid token attached")
7576 else {
7677 let totalVote = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_totalVote")), 0)
78+ let walletTotalVote = valueOrElse(getInteger(this, ((((newPurposeKey + "_") + toString(purposeId)) + currentKey) + "_walletTotalVote")), 0)
7779 let firstVoteCast = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock")), height)
7880 if ((vote == 1))
7981 then {
8082 let getYes = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_yes")), 0)
8183 let total = (getYes + amount)
82-[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_yes"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast)]
84+[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_yes"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast), IntegerEntry(((((newPurposeKey + "_") + toString(purposeId)) + currentKey) + "_walletTotalVote"), (amount + walletTotalVote))]
8385 }
8486 else if ((vote == 2))
8587 then {
8688 let getNo = valueOrElse(getInteger(this, (((newPurposeKey + "_") + toString(purposeId)) + "_no")), 0)
8789 let total = (getNo + amount)
88-[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_no"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast)]
90+[IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_no"), total), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_totalVote"), (amount + totalVote)), IntegerEntry((((newPurposeKey + "_") + toString(purposeId)) + "_firstVoteBlock"), firstVoteCast), IntegerEntry(((((newPurposeKey + "_") + toString(purposeId)) + currentKey) + "_walletTotalVote"), (amount + walletTotalVote))]
8991 }
9092 else throw("nothing to do my friend")
9193 }
9294 }
9395 }
9496
9597
98+
99+@Callable(i)
100+func Delete (entry) = [DeleteEntry(entry)]
101+
102+

github/deemru/w8io/169f3d6 
59.07 ms