tx · Ec2Xkiirivfc43Q24fXBzGpHJq3hX3fjAVjJXeDAswMK

3MuBASwpgfJm92SpDkyLsdPQPD2tMSoj2WA:  -1.00000000 Waves

2021.05.18 12:39 [1530949] smart account 3MuBASwpgfJm92SpDkyLsdPQPD2tMSoj2WA > SELF 0.00000000 Waves

{ "type": 13, "id": "Ec2Xkiirivfc43Q24fXBzGpHJq3hX3fjAVjJXeDAswMK", "fee": 100000000, "feeAssetId": null, "timestamp": 1621330880810, "version": 2, "chainId": 84, "sender": "3MuBASwpgfJm92SpDkyLsdPQPD2tMSoj2WA", "senderPublicKey": "AvBfKvojixmeNDg4JjhMyQVM56iwkf7z6TXUzXcbSJ5L", "proofs": [ "2eEG3NU8LKdpwhPYnbinqpqGeL1ZhQkVpaAqAoiq1owCNiqb6uBCNiQvGLesFzJYxSpssrM5oFwPEfTBZ6ZpUm7K" ], "script": "base64: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AAAAC2NhbmRpZGF0ZXNfBQAAAAdhZGRyZXNzAAAAAAAAAAABCQAAAgAAAAECAAAAGFRoaXMgdXNlciBhbHJlYWR5IGV4aXN0cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAtjYW5kaWRhdGVzXwUAAAAHYWRkcmVzcwIAAAAIcHJvcG9zZWQFAAAAA25pbAAAAAFpAQAAABFvd25lckFkZERBT01lbWJlcgAAAAEAAAAHYWRkcmVzcwkBAAAADmFkZFRvREFPTWVtYmVyAAAAAQUAAAAHYWRkcmVzcwAAAAFpAQAAABRvd25lckFkZFdvcmtpbmdHcm91cAAAAAEAAAAHYWRkcmVzcwkBAAAAEWFkZFRvV29ya2luZ0dyb3VwAAAAAQUAAAAHYWRkcmVzcwAAAAFpAQAAAB5vd25lckFkZE1lbWJlcnNoaW9Xb3JraW5nR3JvdXAAAAABAAAAB2FkZHJlc3MJAQAAABthZGRUb01lbWJlcnNoaXBXb3JraW5nR3JvdXAAAAABBQAAAAdhZGRyZXNzAAAAAWkBAAAAEGRlY2lzaW9uT25NZW1iZXIAAAACAAAADW1lbWJlckFkZHJlc3MAAAANZGVjaXNpb25WYWx1ZQMJAQAAAAEhAAAAAQkBAAAAB2lzT3duZXIAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAYYWNjZXNzIG9ubHkgdG8gdGhlIG93bmVyBAAAAAx2b3RlVmFsdWVJbnQJAQAAAAxnZXRWb3RlVmFsdWUAAAABBQAAAA1kZWNpc2lvblZhbHVlAwkAAAAAAAACBQAAAAx2b3RlVmFsdWVJbnQAAAAAAAAAAAEJAQAAABFhZGRUb1dvcmtpbmdHcm91cAAAAAEFAAAADW1lbWJlckFkZHJlc3MJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtkYW9fbWVtYmVyXwUAAAANbWVtYmVyQWRkcmVzcwIAAAAHX3N0YXR1cwUAAAANZGVjaXNpb25WYWx1ZQUAAAADbmlsAAAAAWkBAAAAI21lbWJlcnNoaXBWb3RlRm9yREFPTWVtYmVyQ2FuZGlkYXRlAAAAAQAAABBjYW5kaWRhdGVBZGRyZXNzBAAAABFtZW1iZXJzaGlwQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIDCQEAAAAYaXNNZW1iZXJzaGlwV29ya2luZ0dyb3VwAAAAAQgFAAAAAWkAAAAGY2FsbGVyAwkBAAAAHWlzTWVtYmVyc2hpcFZvdGVkRm9yQ2FuZGlkYXRlAAAAAgUAAAARbWVtYmVyc2hpcEFkZHJlc3MFAAAAEGNhbmRpZGF0ZUFkZHJlc3MJAAACAAAAAQIAAAAWWW91IGhhdmUgYWxyZWFkeSB2b3RlZAkBAAAAGm1lbWJlcnNoaXBWb3RlRm9yQ2FuZGlkYXRlAAAAAgUAAAARbWVtYmVyc2hpcEFkZHJlc3MFAAAAEGNhbmRpZGF0ZUFkZHJlc3MJAAACAAAAAQIAAAASWW91IGhhdmUgbm8gcmlnaHRzAAAAAK+125Y=", "height": 1530949, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Hzs92g88V7EKvippDTJPngRzmQTezifAVUhNYMguTey8 Next: none Diff:
OldNewDifferences
9999 let newGroup = ((group + ";") + address)
100100 let groupSize = tryGetInteger("membership_working_group_members_size")
101101 let newGroupSize = (groupSize + 1)
102- WriteSet([DataEntry((("membership" + address) + "_status"), 1), DataEntry("membership_working_group_members", newGroup), DataEntry("membership_working_group_members_size", newGroupSize)])
102+ WriteSet([DataEntry((("membership_" + address) + "_status"), 1), DataEntry("membership_working_group_members", newGroup), DataEntry("membership_working_group_members_size", newGroupSize)])
103103 }
104104
105105
109109 then 1
110110 else if ((value == "2"))
111111 then 2
112- else throw("You need to vote with '1' or '0' value")
112+ else throw("You need to vote with '0' or '1' or '2' value")
113113
114114
115115 @Callable(i)
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 isMembershipWorkingGroup (a) = (tryGetInteger((("membership_" + toString(a)) + "_status")) > 0)
1919
2020
2121 func isWorkingGroup (a) = (tryGetInteger((("working_group_" + toString(a)) + "_status")) > 0)
2222
2323
2424 func isDAOMember (a) = if ((tryGetInteger((("dao_member_" + toString(a)) + "_status")) > 0))
2525 then (2 > tryGetInteger((("dao_member_" + toString(a)) + "_status")))
2626 else false
2727
2828
2929 func isMembershipVotedForCandidate (membershipAddress,candidateAddress) = (tryGetInteger(((membershipAddress + "_voted_") + candidateAddress)) > 0)
3030
3131
3232 func membershipVoteForCandidate (membershipAddress,candidateAddress) = WriteSet([DataEntry(((membershipAddress + "_voted_") + candidateAddress), 1)])
3333
3434
3535 func tryGetString (key) = {
3636 let val = match getString(this, key) {
3737 case b: String =>
3838 b
3939 case _ =>
4040 ""
4141 }
4242 val
4343 }
4444
4545
4646 func getWorkingGroup () = {
4747 let val = match getString(this, "working_group_members") {
4848 case b: String =>
4949 b
5050 case _ =>
5151 ""
5252 }
5353 val
5454 }
5555
5656
5757 func addToWorkingGroup (address) = {
5858 let group = getWorkingGroup()
5959 let newGroup = ((group + ";") + address)
6060 let groupSize = tryGetInteger("working_group_size")
6161 let newGroupSize = (groupSize + 1)
6262 WriteSet([DataEntry((("working_group_member_" + address) + "_status"), 1), DataEntry("working_group_members", newGroup), DataEntry("working_group_size", newGroupSize)])
6363 }
6464
6565
6666 func getDAOMember () = {
6767 let val = match getString(this, "dao_members") {
6868 case b: String =>
6969 b
7070 case _ =>
7171 ""
7272 }
7373 val
7474 }
7575
7676
7777 func addToDAOMember (address) = {
7878 let group = getDAOMember()
7979 let newGroup = ((group + ";") + address)
8080 let groupSize = tryGetInteger("dao_members_size")
8181 let newGroupSize = (groupSize + 1)
8282 WriteSet([DataEntry((("dao_member_" + address) + "_status"), 1), DataEntry("dao_members", newGroup), DataEntry("dao_members_size", newGroupSize)])
8383 }
8484
8585
8686 func getMembershipWorkingGroup () = {
8787 let val = match getString(this, "membership_working_group_members") {
8888 case b: String =>
8989 b
9090 case _ =>
9191 ""
9292 }
9393 val
9494 }
9595
9696
9797 func addToMembershipWorkingGroup (address) = {
9898 let group = getMembershipWorkingGroup()
9999 let newGroup = ((group + ";") + address)
100100 let groupSize = tryGetInteger("membership_working_group_members_size")
101101 let newGroupSize = (groupSize + 1)
102- WriteSet([DataEntry((("membership" + address) + "_status"), 1), DataEntry("membership_working_group_members", newGroup), DataEntry("membership_working_group_members_size", newGroupSize)])
102+ WriteSet([DataEntry((("membership_" + address) + "_status"), 1), DataEntry("membership_working_group_members", newGroup), DataEntry("membership_working_group_members_size", newGroupSize)])
103103 }
104104
105105
106106 func getVoteValue (value) = if ((value == "0"))
107107 then 0
108108 else if ((value == "1"))
109109 then 1
110110 else if ((value == "2"))
111111 then 2
112- else throw("You need to vote with '1' or '0' value")
112+ else throw("You need to vote with '0' or '1' or '2' value")
113113
114114
115115 @Callable(i)
116116 func proposeCandidateForDAOMember (address) = {
117117 let caller = toString(i.caller)
118118 if ((tryGetInteger(("candidates_" + address)) == 1))
119119 then throw("This user already exists")
120120 else WriteSet([DataEntry(("candidates_" + address), "proposed")])
121121 }
122122
123123
124124
125125 @Callable(i)
126126 func ownerAddDAOMember (address) = addToDAOMember(address)
127127
128128
129129
130130 @Callable(i)
131131 func ownerAddWorkingGroup (address) = addToWorkingGroup(address)
132132
133133
134134
135135 @Callable(i)
136136 func ownerAddMembershioWorkingGroup (address) = addToMembershipWorkingGroup(address)
137137
138138
139139
140140 @Callable(i)
141141 func decisionOnMember (memberAddress,decisionValue) = if (!(isOwner(i.caller)))
142142 then throw("access only to the owner")
143143 else {
144144 let voteValueInt = getVoteValue(decisionValue)
145145 if ((voteValueInt == 1))
146146 then addToWorkingGroup(memberAddress)
147147 else WriteSet([DataEntry((("dao_member_" + memberAddress) + "_status"), decisionValue)])
148148 }
149149
150150
151151
152152 @Callable(i)
153153 func membershipVoteForDAOMemberCandidate (candidateAddress) = {
154154 let membershipAddress = toString(i.caller)
155155 if (isMembershipWorkingGroup(i.caller))
156156 then if (isMembershipVotedForCandidate(membershipAddress, candidateAddress))
157157 then throw("You have already voted")
158158 else membershipVoteForCandidate(membershipAddress, candidateAddress)
159159 else throw("You have no rights")
160160 }
161161
162162

github/deemru/w8io/169f3d6 
36.38 ms