tx · 8mLTC3JyCWbF5FC8DfuXWxuF7vgtixhKyGzzd7LJry5k

3N2ewmJdcFYwdM3mPpRapXZ1aaSWTpTGuE5:  -1.00000000 Waves

2021.05.11 18:17 [1521188] smart account 3N2ewmJdcFYwdM3mPpRapXZ1aaSWTpTGuE5 > SELF 0.00000000 Waves

{ "type": 13, "id": "8mLTC3JyCWbF5FC8DfuXWxuF7vgtixhKyGzzd7LJry5k", "fee": 100000000, "feeAssetId": null, "timestamp": 1620746289923, "version": 2, "chainId": 84, "sender": "3N2ewmJdcFYwdM3mPpRapXZ1aaSWTpTGuE5", "senderPublicKey": "2icPa3y8k81CaH7dsVJZZjVYGYkD35waVbs6YAzU1oaL", "proofs": [ "4CGoUPUDSo2FBg374ViaJhN2hXHRkzuP8Bi4mVZTAEehcZJo9bkTMFbYPxMsMVAqNNzjFM7nSsPGgqjpa6w1mjQB" ], "script": "base64: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", "height": 1521188, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EJ2Y6VgYqkZyUgrPfspvCV54ffLPDXjPnnkbMQeMFq7i Next: HFskWEnArcjTzSSihpoCWMVWWSkwHhL977bGZu6qcBnm Diff:
OldNewDifferences
4444 let votingKey = (("dao_member_" + memberAddress) + "_voting_state")
4545 let votesAmountState = (tryGetInteger(votingKey) + 1)
4646 let caller = toString(i.caller)
47- if (!(isGroupMember(i.caller)))
47+ if (isGroupMember(i.caller))
4848 then if ((tryGetInteger(((caller + "_voted_working_group_members_for_") + memberAddress)) != 1))
4949 then WriteSet([DataEntry(votingKey, votesAmountState), DataEntry(((caller + "_voted_working_group_members_for_") + memberAddress), 1)])
5050 else throw("You have already voted")
51- else throw(caller)
51+ else throw("You have no rights")
5252 }
5353
5454
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func isOwner (address) = (address == this)
55
66
77 func tryGetInteger (key) = {
88 let val = match getInteger(this, key) {
99 case b: Int =>
1010 b
1111 case _ =>
1212 0
1313 }
1414 val
1515 }
1616
1717
1818 func getGroup () = {
1919 let val = match getString(this, "working_group_members") {
2020 case b: String =>
2121 b
2222 case _ =>
2323 ""
2424 }
2525 val
2626 }
2727
2828
2929 func isGroupMember (a) = (tryGetInteger((("working_group_member_" + toString(a)) + "_weight")) > 0)
3030
3131
3232 func isVoted (a) = (tryGetInteger((("working_group_member_" + toString(a)) + "_weight")) > 0)
3333
3434
3535 func getDecisionValue (d) = if ((d == "rejected"))
3636 then "rejected"
3737 else if ((d == "approved"))
3838 then "approved"
3939 else throw("you need to vote with 'approved' or 'rejected' value")
4040
4141
4242 @Callable(i)
4343 func votesOnMember (memberAddress) = {
4444 let votingKey = (("dao_member_" + memberAddress) + "_voting_state")
4545 let votesAmountState = (tryGetInteger(votingKey) + 1)
4646 let caller = toString(i.caller)
47- if (!(isGroupMember(i.caller)))
47+ if (isGroupMember(i.caller))
4848 then if ((tryGetInteger(((caller + "_voted_working_group_members_for_") + memberAddress)) != 1))
4949 then WriteSet([DataEntry(votingKey, votesAmountState), DataEntry(((caller + "_voted_working_group_members_for_") + memberAddress), 1)])
5050 else throw("You have already voted")
51- else throw(caller)
51+ else throw("You have no rights")
5252 }
5353
5454
5555
5656 @Callable(i)
5757 func proposeMember (memberAddress) = {
5858 let caller = toString(i.caller)
5959 if ((tryGetInteger(("dao_member_" + memberAddress)) == 1))
6060 then throw("This user already exists")
6161 else WriteSet([DataEntry(("dao_member_" + memberAddress), "proposed")])
6262 }
6363
6464
6565
6666 @Callable(i)
6767 func addGroupMember (memberAddress) = if (!(isOwner(i.caller)))
6868 then throw("access only to the owner")
6969 else if ((tryGetInteger((("working_group_member_" + memberAddress) + "_weight")) == 1))
7070 then throw("This user already exists")
7171 else {
7272 let group = getGroup()
7373 let newGroup = ((group + ";") + memberAddress)
7474 WriteSet([DataEntry("working_group_members", newGroup), DataEntry((("working_group_member_" + memberAddress) + "_weight"), 1)])
7575 }
7676
7777
7878
7979 @Callable(i)
8080 func decisionOnMember (memberAddress,decisionValue) = if (!(isOwner(i.caller)))
8181 then throw("access only to the owner")
8282 else WriteSet([DataEntry(("dao_member_" + memberAddress), getDecisionValue(decisionValue))])
8383
8484

github/deemru/w8io/169f3d6 
39.09 ms