tx · J41wckgn6FnamjafMku7bpqqpp61fCtGmGNfn6mfqbvt

3N2ewmJdcFYwdM3mPpRapXZ1aaSWTpTGuE5:  -0.10000000 Waves

2021.05.11 18:03 [1521175] smart account 3N2ewmJdcFYwdM3mPpRapXZ1aaSWTpTGuE5 > SELF 0.00000000 Waves

{ "type": 13, "id": "J41wckgn6FnamjafMku7bpqqpp61fCtGmGNfn6mfqbvt", "fee": 10000000, "feeAssetId": null, "timestamp": 1620745413728, "version": 2, "chainId": 84, "sender": "3N2ewmJdcFYwdM3mPpRapXZ1aaSWTpTGuE5", "senderPublicKey": "2icPa3y8k81CaH7dsVJZZjVYGYkD35waVbs6YAzU1oaL", "proofs": [ "3SYVfdmEYkL2MNceMz3tjkzpuuPWMfL4iZ8UqRgqc5QKmT1jUkFMFxA5dmdFtRtNZkDdLDAzNuzNpMocfczjmNpB" ], "script": "base64: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", "height": 1521175, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EJ4gHxD333XTKq6HgkPLh4dea2xP298voC6tDBopeEGU Next: EJ2Y6VgYqkZyUgrPfspvCV54ffLPDXjPnnkbMQeMFq7i Diff:
OldNewDifferences
4444 let votingKey = (("dao_member_" + memberAddress) + "_voting_state")
4545 let votesAmountState = (tryGetInteger(votingKey) + 1)
4646 let caller = toString(i.caller)
47- if (if (!(isGroupMember(i.caller)))
48- then (tryGetInteger(((caller + "_voted_working_group_members_for_") + memberAddress)) != 1)
49- else false)
47+ if (!(isGroupMember(i.caller)))
5048 then if ((tryGetInteger(((caller + "_voted_working_group_members_for_") + memberAddress)) != 1))
5149 then WriteSet([DataEntry(votingKey, votesAmountState), DataEntry(((caller + "_voted_working_group_members_for_") + memberAddress), 1)])
5250 else throw("You have already voted")
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 (if (!(isGroupMember(i.caller)))
48- then (tryGetInteger(((caller + "_voted_working_group_members_for_") + memberAddress)) != 1)
49- else false)
47+ if (!(isGroupMember(i.caller)))
5048 then if ((tryGetInteger(((caller + "_voted_working_group_members_for_") + memberAddress)) != 1))
5149 then WriteSet([DataEntry(votingKey, votesAmountState), DataEntry(((caller + "_voted_working_group_members_for_") + memberAddress), 1)])
5250 else throw("You have already voted")
5351 else throw("You have no rights")
5452 }
5553
5654
5755
5856 @Callable(i)
5957 func proposeMember (memberAddress) = {
6058 let caller = toString(i.caller)
6159 if ((tryGetInteger(("dao_member_" + memberAddress)) == 1))
6260 then throw("This user already exists")
6361 else WriteSet([DataEntry(("dao_member_" + memberAddress), "proposed")])
6462 }
6563
6664
6765
6866 @Callable(i)
6967 func addGroupMember (memberAddress) = if (!(isOwner(i.caller)))
7068 then throw("access only to the owner")
7169 else if ((tryGetInteger((("working_group_member_" + memberAddress) + "_weight")) == 1))
7270 then throw("This user already exists")
7371 else {
7472 let group = getGroup()
7573 let newGroup = ((group + ";") + memberAddress)
7674 WriteSet([DataEntry("working_group_members", newGroup), DataEntry((("working_group_member_" + memberAddress) + "_weight"), 1)])
7775 }
7876
7977
8078
8179 @Callable(i)
8280 func decisionOnMember (memberAddress,decisionValue) = if (!(isOwner(i.caller)))
8381 then throw("access only to the owner")
8482 else WriteSet([DataEntry(("dao_member_" + memberAddress), getDecisionValue(decisionValue))])
8583
8684

github/deemru/w8io/169f3d6 
57.86 ms