tx · 3gARGVJar2wGuDnn7dkq84ScZtQSAHFRc63XtSGsPPUR

3N7u14dV3tZofRrbRoiHPTCok3V88vKumDS:  -0.10000000 Waves

2021.05.21 15:54 [1535469] smart account 3N7u14dV3tZofRrbRoiHPTCok3V88vKumDS > SELF 0.00000000 Waves

{ "type": 13, "id": "3gARGVJar2wGuDnn7dkq84ScZtQSAHFRc63XtSGsPPUR", "fee": 10000000, "feeAssetId": null, "timestamp": 1621601634758, "version": 2, "chainId": 84, "sender": "3N7u14dV3tZofRrbRoiHPTCok3V88vKumDS", "senderPublicKey": "GmFdJKQEPLvY6MqtiZyufJUFTUggQZ9QFbTcByaune2D", "proofs": [ "2tpyfhW9cUG1LDfGSG7RaMJKupVdgbqimc3vpHfXApF4Eu6gFp2TXdmdEBwVfduNVshjigUZ6aEUDkcQ9pyWSMHe" ], "script": "base64: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AgAAAAECAAAAIVRoaXMgdXNlciBpcyBhbHJlYWR5IGluIHRoZSBncm91cAQAAAAIbmV3R3JvdXAJAAEsAAAAAgkAASwAAAACBQAAAAVncm91cAIAAAABOwUAAAAHYWRkcmVzcwQAAAAJZ3JvdXBTaXplCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAADGRhb19td2dfc2l6ZQQAAAAMbmV3R3JvdXBTaXplCQAAZAAAAAIFAAAACWdyb3VwU2l6ZQAAAAAAAAAAAQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAAD2Rhb19td2dfbWVtYmVyXwUAAAAHYWRkcmVzcwIAAAAHX3N0YXR1cwIAAAAIYXBwcm92ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAD2Rhb19td2dfbWVtYmVycwUAAAAIbmV3R3JvdXAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADGRhb19td2dfc2l6ZQUAAAAMbmV3R3JvdXBTaXplBQAAAANuaWwAAAABaQEAAAAdd21nTWVtYmVyc2hpcFZvdGVGb3JEQU9NZW1iZXIAAAACAAAAEGNhbmRpZGF0ZUFkZHJlc3MAAAAJdm90ZVZhbHVlBAAAAAZjYWxsZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABFtZW1iZXJzaGlwQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADHZvdGVWYWx1ZUludAkBAAAADGdldFZvdGVWYWx1ZQAAAAEFAAAACXZvdGVWYWx1ZQQAAAAJdm90aW5nS2V5CQABLAAAAAIJAAEsAAAAAgIAAAALZGFvX21lbWJlcl8FAAAAEGNhbmRpZGF0ZUFkZHJlc3MCAAAABV92b3RlBAAAAAh2b3RlZEtleQkAASwAAAACCQABLAAAAAICAAAAC2Rhb19tZW1iZXJfBQAAABBjYW5kaWRhdGVBZGRyZXNzAgAAAAZfdm90ZWQEAAAACHZvdGVzS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtkYW9fbWVtYmVyXwUAAAAQY2FuZGlkYXRlQWRkcmVzcwIAAAAHX3ZvdGVzXwUAAAAGY2FsbGVyBAAAAAh2b3RlZFZhbAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAAh2b3RlZEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAEAAAAC25ld1ZvdGVkVmFsCQABLAAAAAIJAAEsAAAAAgUAAAAGY2FsbGVyAgAAAAE7BQAAAAh2b3RlZFZhbAQAAAALdm90aW5nU3RhdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAJdm90aW5nS2V5BAAAAA5uZXdWb3RpbmdTdGF0ZQkAAGQAAAACBQAAAAt2b3RpbmdTdGF0ZQUAAAAMdm90ZVZhbHVlSW50BAAAAAxtd2dTdGF0dXNWYWwJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAPZGFvX213Z19tZW1iZXJfBQAAAAZjYWxsZXICAAAAB19zdGF0dXMDCQAAAAAAAAIFAAAADG13Z1N0YXR1c1ZhbAIAAAAIYXBwcm92ZWQDCQAAZgAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALZGFvX21lbWJlcl8FAAAAEGNhbmRpZGF0ZUFkZHJlc3MCAAAAB192b3Rlc18FAAAABmNhbGxlcgAAAAAAAAAAAAkAAAIAAAABCQABLAAAAAICAAAAH1lvdSBoYXZlIGFscmVhZHkgdm90ZWQuIENhbGxlciAFAAAABmNhbGxlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAJdm90aW5nS2V5BQAAAA5uZXdWb3RpbmdTdGF0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAIdm90ZWRLZXkFAAAAC25ld1ZvdGVkVmFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAh2b3Rlc0tleQUAAAAMdm90ZVZhbHVlSW50BQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAABtZb3UgaGF2ZSBubyByaWdodHMuIENhbGxlciAFAAAABmNhbGxlcgAAAACrsdGQ", "height": 1535469, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J6aReBikuMQU51eqyS9sc32EXjrh7EDhAPNm6pBhDUep Next: none Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
5+ let c = {
6+ let d = getString(this, b)
7+ if ($isInstanceOf(d, "String"))
8+ then {
9+ let e = d
10+ e
11+ }
12+ else ""
13+ }
14+ c
15+ }
16+
17+
18+func f (g) = (g == this)
19+
20+
21+func h (b) = {
522 let c = {
623 let d = getInteger(this, b)
724 if ($isInstanceOf(d, "Int"))
1532 }
1633
1734
18-func f (b) = {
19- let c = {
20- let d = getString(this, b)
21- if ($isInstanceOf(d, "String"))
22- then {
23- let e = d
24- e
25- }
26- else ""
27- }
28- c
29- }
35+func i (j) = (a((("working_group_" + toString(j)) + "_status")) == "approved")
3036
3137
32-func g (h) = (h == this)
38+func k (j) = (a((("dao_member_" + toString(j)) + "_status")) == "approved")
3339
3440
35-func i () = {
36- let c = {
37- let d = getString(this, "working_group_members")
38- if ($isInstanceOf(d, "String"))
39- then {
40- let e = d
41- e
42- }
43- else ""
44- }
45- c
46- }
47-
48-
49-func j () = {
41+func l () = {
5042 let c = {
5143 let d = getString(this, "dao_members")
5244 if ($isInstanceOf(d, "String"))
6052 }
6153
6254
63-func k (l) = (a((("working_group_member_" + toString(l)) + "_weight")) > 0)
55+func m (n) = if ((n == "like"))
56+ then 1
57+ else if ((n == "dislike"))
58+ then -1
59+ else throw(("You need to vote with 'like' or 'dislike' value. You specified:" + n))
6460
6561
66-func m (n) = (a((("dao_member_" + toString(n.caller)) + "_weight")) > 0)
67-
68-
69-@Callable(n)
70-func addDAOMember (o) = if (!(g(n.caller)))
71- then throw("access only to the DAO manager")
72- else if ((a((("dao_member_" + o) + "_weight")) == 1))
73- then throw("This user already exists")
74- else {
75- let p = j()
76- let q = ((p + ";") + o)
77- let r = a("dao_size")
78- let s = (r + 1)
79- WriteSet([DataEntry("dao_members", q), DataEntry("dao_size", s), DataEntry((("dao_member_" + o) + "_weight"), 1)])
80- }
62+@Callable(o)
63+func aProposeCandidateForDAOMember (g) = if ((h((("member_" + g) + "_voting_state")) != 0))
64+ then throw("This user already exists")
65+ else {
66+ let p = l()
67+ if ((lastIndexOf(p, g) != unit))
68+ then throw("This user is already in the group")
69+ else {
70+ let q = ((p + ";") + g)
71+ let r = h("dao_members_size")
72+ let s = (r + 1)
73+ WriteSet([DataEntry((("dao_member_" + g) + "_status"), "propose"), DataEntry("dao_members", q), DataEntry("dao_members_size", s)])
74+ }
75+ }
8176
8277
8378
84-@Callable(n)
85-func addGroupMember (o) = if (!(g(n.caller)))
86- then throw("access only to the DAO manager")
87- else if ((a((("working_group_member_" + o) + "_weight")) == 1))
88- then throw("This user already exists")
89- else {
90- let p = i()
91- let q = ((p + ";") + o)
92- let r = a("working_group_size")
93- let s = (r + 1)
94- WriteSet([DataEntry("working_group_members", q), DataEntry("working_group_size", s), DataEntry((("working_group_member_" + o) + "_weight"), 1)])
79+@Callable(o)
80+func mRejectDAOMember (g) = if (!(f(o.caller)))
81+ then throw("access only to the DAO Manager")
82+ else WriteSet([DataEntry((("dao_member_" + g) + "_status"), "rejected")])
83+
84+
85+
86+@Callable(o)
87+func mAddDAOMember (g) = if (!(f(o.caller)))
88+ then throw("access only to the DAO Manager")
89+ else {
90+ let p = l()
91+ let q = ((p + ";") + g)
92+ let r = h("dao_members_size")
93+ let s = (r + 1)
94+ WriteSet([DataEntry((("dao_member_" + g) + "_status"), "approved"), DataEntry("dao_members", q), DataEntry("dao_members_size", s)])
95+ }
96+
97+
98+
99+@Callable(o)
100+func mAddWorkingGroup (g) = if (!(f(o.caller)))
101+ then throw("access only to the DAO Manager")
102+ else {
103+ let p = {
104+ let d = getString(this, "dao_wg_members")
105+ if ($isInstanceOf(d, "String"))
106+ then {
107+ let e = d
108+ e
109+ }
110+ else ""
95111 }
112+ if ((lastIndexOf(p, g) != unit))
113+ then throw("This user is already in the group")
114+ else {
115+ let q = ((p + ";") + g)
116+ let r = h("dao_wg_size")
117+ let s = (r + 1)
118+ WriteSet([DataEntry((("dao_wg_member_" + g) + "_status"), "approved"), DataEntry("dao_wg_members", q), DataEntry("dao_wg_size", s)])
119+ }
120+ }
121+
122+
123+
124+@Callable(o)
125+func mAddMembershipWorkingGroup (g) = if (!(f(o.caller)))
126+ then throw("access only to the DAO Manager")
127+ else {
128+ let p = {
129+ let d = getString(this, "dao_mwg_members")
130+ if ($isInstanceOf(d, "String"))
131+ then {
132+ let e = d
133+ e
134+ }
135+ else ""
136+ }
137+ if ((lastIndexOf(p, g) != unit))
138+ then throw("This user is already in the group")
139+ else {
140+ let q = ((p + ";") + g)
141+ let r = h("dao_mwg_size")
142+ let s = (r + 1)
143+ WriteSet([DataEntry((("dao_mwg_member_" + g) + "_status"), "approved"), DataEntry("dao_mwg_members", q), DataEntry("dao_mwg_size", s)])
144+ }
145+ }
146+
147+
148+
149+@Callable(o)
150+func wmgMembershipVoteForDAOMember (t,u) = {
151+ let v = toString(o.caller)
152+ let w = toString(o.caller)
153+ let x = m(u)
154+ let y = (("dao_member_" + t) + "_vote")
155+ let z = (("dao_member_" + t) + "_voted")
156+ let A = ((("dao_member_" + t) + "_votes_") + v)
157+ let B = {
158+ let d = getString(this, z)
159+ if ($isInstanceOf(d, "String"))
160+ then {
161+ let e = d
162+ e
163+ }
164+ else ""
165+ }
166+ let C = ((v + ";") + B)
167+ let D = h(y)
168+ let E = (D + x)
169+ let F = a((("dao_mwg_member_" + v) + "_status"))
170+ if ((F == "approved"))
171+ then if ((h(((("dao_member_" + t) + "_votes_") + v)) > 0))
172+ then throw(("You have already voted. Caller " + v))
173+ else WriteSet([DataEntry(y, E), DataEntry(z, C), DataEntry(A, x)])
174+ else throw(("You have no rights. Caller " + v))
175+ }
96176
97177
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
5+ let c = {
6+ let d = getString(this, b)
7+ if ($isInstanceOf(d, "String"))
8+ then {
9+ let e = d
10+ e
11+ }
12+ else ""
13+ }
14+ c
15+ }
16+
17+
18+func f (g) = (g == this)
19+
20+
21+func h (b) = {
522 let c = {
623 let d = getInteger(this, b)
724 if ($isInstanceOf(d, "Int"))
825 then {
926 let e = d
1027 e
1128 }
1229 else 0
1330 }
1431 c
1532 }
1633
1734
18-func f (b) = {
19- let c = {
20- let d = getString(this, b)
21- if ($isInstanceOf(d, "String"))
22- then {
23- let e = d
24- e
25- }
26- else ""
27- }
28- c
29- }
35+func i (j) = (a((("working_group_" + toString(j)) + "_status")) == "approved")
3036
3137
32-func g (h) = (h == this)
38+func k (j) = (a((("dao_member_" + toString(j)) + "_status")) == "approved")
3339
3440
35-func i () = {
36- let c = {
37- let d = getString(this, "working_group_members")
38- if ($isInstanceOf(d, "String"))
39- then {
40- let e = d
41- e
42- }
43- else ""
44- }
45- c
46- }
47-
48-
49-func j () = {
41+func l () = {
5042 let c = {
5143 let d = getString(this, "dao_members")
5244 if ($isInstanceOf(d, "String"))
5345 then {
5446 let e = d
5547 e
5648 }
5749 else ""
5850 }
5951 c
6052 }
6153
6254
63-func k (l) = (a((("working_group_member_" + toString(l)) + "_weight")) > 0)
55+func m (n) = if ((n == "like"))
56+ then 1
57+ else if ((n == "dislike"))
58+ then -1
59+ else throw(("You need to vote with 'like' or 'dislike' value. You specified:" + n))
6460
6561
66-func m (n) = (a((("dao_member_" + toString(n.caller)) + "_weight")) > 0)
67-
68-
69-@Callable(n)
70-func addDAOMember (o) = if (!(g(n.caller)))
71- then throw("access only to the DAO manager")
72- else if ((a((("dao_member_" + o) + "_weight")) == 1))
73- then throw("This user already exists")
74- else {
75- let p = j()
76- let q = ((p + ";") + o)
77- let r = a("dao_size")
78- let s = (r + 1)
79- WriteSet([DataEntry("dao_members", q), DataEntry("dao_size", s), DataEntry((("dao_member_" + o) + "_weight"), 1)])
80- }
62+@Callable(o)
63+func aProposeCandidateForDAOMember (g) = if ((h((("member_" + g) + "_voting_state")) != 0))
64+ then throw("This user already exists")
65+ else {
66+ let p = l()
67+ if ((lastIndexOf(p, g) != unit))
68+ then throw("This user is already in the group")
69+ else {
70+ let q = ((p + ";") + g)
71+ let r = h("dao_members_size")
72+ let s = (r + 1)
73+ WriteSet([DataEntry((("dao_member_" + g) + "_status"), "propose"), DataEntry("dao_members", q), DataEntry("dao_members_size", s)])
74+ }
75+ }
8176
8277
8378
84-@Callable(n)
85-func addGroupMember (o) = if (!(g(n.caller)))
86- then throw("access only to the DAO manager")
87- else if ((a((("working_group_member_" + o) + "_weight")) == 1))
88- then throw("This user already exists")
89- else {
90- let p = i()
91- let q = ((p + ";") + o)
92- let r = a("working_group_size")
93- let s = (r + 1)
94- WriteSet([DataEntry("working_group_members", q), DataEntry("working_group_size", s), DataEntry((("working_group_member_" + o) + "_weight"), 1)])
79+@Callable(o)
80+func mRejectDAOMember (g) = if (!(f(o.caller)))
81+ then throw("access only to the DAO Manager")
82+ else WriteSet([DataEntry((("dao_member_" + g) + "_status"), "rejected")])
83+
84+
85+
86+@Callable(o)
87+func mAddDAOMember (g) = if (!(f(o.caller)))
88+ then throw("access only to the DAO Manager")
89+ else {
90+ let p = l()
91+ let q = ((p + ";") + g)
92+ let r = h("dao_members_size")
93+ let s = (r + 1)
94+ WriteSet([DataEntry((("dao_member_" + g) + "_status"), "approved"), DataEntry("dao_members", q), DataEntry("dao_members_size", s)])
95+ }
96+
97+
98+
99+@Callable(o)
100+func mAddWorkingGroup (g) = if (!(f(o.caller)))
101+ then throw("access only to the DAO Manager")
102+ else {
103+ let p = {
104+ let d = getString(this, "dao_wg_members")
105+ if ($isInstanceOf(d, "String"))
106+ then {
107+ let e = d
108+ e
109+ }
110+ else ""
95111 }
112+ if ((lastIndexOf(p, g) != unit))
113+ then throw("This user is already in the group")
114+ else {
115+ let q = ((p + ";") + g)
116+ let r = h("dao_wg_size")
117+ let s = (r + 1)
118+ WriteSet([DataEntry((("dao_wg_member_" + g) + "_status"), "approved"), DataEntry("dao_wg_members", q), DataEntry("dao_wg_size", s)])
119+ }
120+ }
121+
122+
123+
124+@Callable(o)
125+func mAddMembershipWorkingGroup (g) = if (!(f(o.caller)))
126+ then throw("access only to the DAO Manager")
127+ else {
128+ let p = {
129+ let d = getString(this, "dao_mwg_members")
130+ if ($isInstanceOf(d, "String"))
131+ then {
132+ let e = d
133+ e
134+ }
135+ else ""
136+ }
137+ if ((lastIndexOf(p, g) != unit))
138+ then throw("This user is already in the group")
139+ else {
140+ let q = ((p + ";") + g)
141+ let r = h("dao_mwg_size")
142+ let s = (r + 1)
143+ WriteSet([DataEntry((("dao_mwg_member_" + g) + "_status"), "approved"), DataEntry("dao_mwg_members", q), DataEntry("dao_mwg_size", s)])
144+ }
145+ }
146+
147+
148+
149+@Callable(o)
150+func wmgMembershipVoteForDAOMember (t,u) = {
151+ let v = toString(o.caller)
152+ let w = toString(o.caller)
153+ let x = m(u)
154+ let y = (("dao_member_" + t) + "_vote")
155+ let z = (("dao_member_" + t) + "_voted")
156+ let A = ((("dao_member_" + t) + "_votes_") + v)
157+ let B = {
158+ let d = getString(this, z)
159+ if ($isInstanceOf(d, "String"))
160+ then {
161+ let e = d
162+ e
163+ }
164+ else ""
165+ }
166+ let C = ((v + ";") + B)
167+ let D = h(y)
168+ let E = (D + x)
169+ let F = a((("dao_mwg_member_" + v) + "_status"))
170+ if ((F == "approved"))
171+ then if ((h(((("dao_member_" + t) + "_votes_") + v)) > 0))
172+ then throw(("You have already voted. Caller " + v))
173+ else WriteSet([DataEntry(y, E), DataEntry(z, C), DataEntry(A, x)])
174+ else throw(("You have no rights. Caller " + v))
175+ }
96176
97177

github/deemru/w8io/c3f4982 
25.50 ms