tx · At3T9h93bZatFJqiaXVUHZcRYeneTSjps8LViac7m6Nd

3N1eyWNffhxPCmYBWBdnWbhmAVAVjkTEqY5:  -0.10000000 Waves

2020.11.17 15:55 [1269388] smart account 3N1eyWNffhxPCmYBWBdnWbhmAVAVjkTEqY5 > SELF 0.00000000 Waves

{ "type": 13, "id": "At3T9h93bZatFJqiaXVUHZcRYeneTSjps8LViac7m6Nd", "fee": 10000000, "feeAssetId": null, "timestamp": 1605617764224, "version": 2, "chainId": 84, "sender": "3N1eyWNffhxPCmYBWBdnWbhmAVAVjkTEqY5", "senderPublicKey": "BWQB37E3JLeot6EcSVXsbJMugLUYNarK8xU8W5XAPsvJ", "proofs": [ "2hVrEywCin9kDocjNUwi883NgtRrRKi8YBy5pYbMwevfx2RhVdy8xAQc1khBpWWDYLB64Re42BLWCMjLcbF5cEdF" ], "script": "base64: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BV9hcHBfBQAAAA50ZWFtSWRlbnRpZmllcgIAAAAGX3Njb3JlBAAAAA90ZWFtVm90ZXNBbW91bnQJAABkAAAAAgAAAAAAAAAAAQkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkEAAAADG5ld1RlYW1TY29yZQkAAGQAAAACBQAAAAl2b3RlVmFsdWUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAMdGVhbVNjb3JlS2V5CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAd2b3RlS2V5BQAAAAl2b3RlVmFsdWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADHRlYW1TY29yZUtleQUAAAAMbmV3VGVhbVNjb3JlBQAAAANuaWwAAAABaQEAAAAWZmluaXNoQXBwbGljYW50c1ZvdGluZwAAAAEAAAAGdGFza0lkCgEAAAAWaXNBcHBsaWNhbnRWb3RlZEVub3VnaAAAAAIAAAADYWlkAAAABGFpZDIEAAAAB2xpc3RLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAALX2FwcGxpY2FudHMEAAAADmFwcGxpY2FudHNMaXN0CQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAB2xpc3RLZXkCAAAAATsEAAAADnRlYW1JZGVudGlmaWVyCQABkQAAAAIFAAAADmFwcGxpY2FudHNMaXN0BQAAAANhaWQEAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAD3RlYW1Wb3Rlc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkDCQAAZgAAAAIFAAAAD3RlYW1Wb3Rlc0Ftb3VudAAAAAAAAAAAAAAAAAAAAAAAAQkAAAIAAAABCQABLAAAAAICAAAAJW5vdCBlbm91Z2ggdm90ZXMgdG8gbWFrZSBkZWNpc2lvbiBvbiAFAAAADnRlYW1JZGVudGlmaWVyCgEAAAAMaGFzTW9yZVZvdGVzAAAAAgAAAANhaWQAAAAEYWlkMgQAAAAHbGlzdEtleQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAtfYXBwbGljYW50cwQAAAAOYXBwbGljYW50c0xpc3QJAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAHbGlzdEtleQIAAAABOwQAAAAOdGVhbUlkZW50aWZpZXIJAAGRAAAAAgUAAAAOYXBwbGljYW50c0xpc3QFAAAAA2FpZAQAAAASdGVhbVZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAABl92b3RlcwQAAAAPdGVhbVZvdGVzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQQAAAAPdGVhbTJJZGVudGlmaWVyCQABkQAAAAIFAAAADmFwcGxpY2FudHNMaXN0BQAAAARhaWQyBAAAABN0ZWFtMlZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAPdGVhbTJJZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAEHRlYW0yVm90ZXNBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAATdGVhbTJWb3Rlc0Ftb3VudEtleQMJAABmAAAAAgUAAAAPdGVhbVZvdGVzQW1vdW50BQAAABB0ZWFtMlZvdGVzQW1vdW50BQAAAANhaWQFAAAABGFpZDIDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAAxjaG9zZW5UZWFtSWQEAAAADSRsaXN0OTg0Njk4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", "height": 1269388, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7qbeQyVRRErf8meDYSBteACFDB8auXRoWwxobkGKye6D Next: BdPmAAKEac4se3nbTii5f46ksHuQsaSNDhjUuiw4XrtV Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 50
55
6-let b = base58'4zfrrwDVjbGFM8wxbZGriVLY4XJsVD4oNMp21FnDnMAa'
7-
8-func c (d) = {
9- let e = {
10- let f = getInteger(this, d)
11- if ($isInstanceOf(f, "Int"))
6+func b (c) = {
7+ let d = {
8+ let e = getInteger(this, c)
9+ if ($isInstanceOf(e, "Int"))
1210 then {
13- let g = f
14- g
11+ let f = e
12+ f
1513 }
1614 else 0
1715 }
18- e
16+ d
17+ }
18+
19+
20+func g (c) = {
21+ let d = {
22+ let e = getString(this, c)
23+ if ($isInstanceOf(e, "String"))
24+ then {
25+ let f = e
26+ f
27+ }
28+ else ""
29+ }
30+ d
1931 }
2032
2133
2335
2436
2537 func j () = {
26- let e = {
27- let f = getString(this, "working_group")
28- if ($isInstanceOf(f, "String"))
38+ let d = {
39+ let e = getString(this, "working_group")
40+ if ($isInstanceOf(e, "String"))
2941 then {
30- let g = f
31- g
42+ let f = e
43+ f
3244 }
3345 else ""
3446 }
35- e
47+ d
3648 }
3749
3850
3951 func k () = {
40- let e = {
41- let f = getString(this, "dao_members")
42- if ($isInstanceOf(f, "String"))
52+ let d = {
53+ let e = getString(this, "dao_members")
54+ if ($isInstanceOf(e, "String"))
4355 then {
44- let g = f
45- g
56+ let f = e
57+ f
4658 }
4759 else ""
4860 }
49- e
61+ d
5062 }
5163
5264
53-func l (m) = (c((("working_group_member_" + toString(m)) + "_weight")) > 0)
65+func l (m) = (b((("working_group_member_" + toString(m)) + "_weight")) > 0)
5466
5567
56-func n (o) = (c((("dao_member_" + toString(o.caller)) + "_weight")) > 0)
68+func n (o) = (b((("dao_member_" + toString(o.caller)) + "_weight")) > 0)
5769
5870
5971 @Callable(o)
6274 else {
6375 let q = k()
6476 let r = ((q + ";") + p)
65- let s = c("dao_size")
77+ let s = b("dao_size")
6678 let t = (s + 1)
6779 WriteSet([DataEntry("dao_members", r), DataEntry("dao_size", t), DataEntry((("dao_member_" + p) + "_weight"), 1)])
6880 }
7587 else {
7688 let q = j()
7789 let r = ((q + ";") + p)
78- let s = c("working_group_size")
90+ let s = b("working_group_size")
7991 let t = (s + 1)
8092 WriteSet([DataEntry("working_group_name", r), DataEntry("working_group_size", t), DataEntry((("working_group_member_" + p) + "_weight"), 1)])
8193 }
90102
91103
92104 @Callable(o)
93-func rateTask (v,w) = if (!(if ((w == 1))
94- then true
95- else (w == -1)))
96- then throw("your rate needs to be +1 or -1")
105+func addTaskDetails (v) = if (!(l(o.caller)))
106+ then throw("grants working group access only")
97107 else {
98- let x = extract(o.payment)
99- if ((x.assetId != b))
100- then throw("you need to vote using WCT")
101- else {
102- let y = x.amount
103- let z = (w * y)
104- let A = c((("tasks_" + v) + "_community_rate"))
105- ScriptResult(WriteSet([DataEntry((("tasks_" + v) + "_community_rate"), (A + z))]), TransferSet([ScriptTransfer(o.caller, x.amount, x.assetId)]))
106- }
108+ let w = extract(o.payment).amount
109+ WriteSet([DataEntry((("tasks_" + v) + "_reward"), w), DataEntry((("tasks_" + v) + "_status"), "proposed")])
107110 }
108111
109112
110113
111114 @Callable(o)
112-func addTaskDetails (v) = if (!(l(o.caller)))
113- then throw("grants working group access only")
114- else {
115- let B = extract(o.payment).amount
116- WriteSet([DataEntry((("tasks_" + v) + "_reward"), B), DataEntry((("tasks_" + v) + "_status"), "proposed")])
117- }
118-
119-
120-
121-@Callable(o)
122-func voteForTaskProposal (v,C) = if (!(n(o)))
115+func voteForTaskProposal (v,x) = if (!(n(o)))
123116 then throw("you can't vote")
124117 else if ((getStringValue(this, (("tasks_" + v) + "_status")) != "proposed"))
125118 then throw("voting is closed or not started")
126- else if (if ((C != -1))
127- then (C != 1)
119+ else if (if ((x != -1))
120+ then (x != 1)
128121 else false)
129122 then throw("you need to vote 1 or -1")
130123 else {
131- let D = ((("tasks_" + v) + "_voted_") + toString(o.caller))
132- let E = c(D)
133- if (!((E == 0)))
124+ let y = ((("tasks_" + v) + "_voted_") + toString(o.caller))
125+ let z = b(y)
126+ if (!((z == 0)))
134127 then throw("you have already voted")
135128 else {
136- let F = (("tasks_" + v) + "_voting_state")
137- let G = c(F)
138- let H = (("tasks_" + v) + "_voting_amount")
139- let I = (c(F) + 1)
140- let J = (G + C)
141- ScriptResult(WriteSet([DataEntry(F, J), DataEntry(D, C), DataEntry(H, I)]), TransferSet([ScriptTransfer(o.caller, 500000, unit)]))
129+ let A = (("tasks_" + v) + "_voting_state")
130+ let B = b(A)
131+ let C = (("tasks_" + v) + "_voting_amount")
132+ let D = (b(A) + 1)
133+ let E = (B + x)
134+ WriteSet([DataEntry(A, E), DataEntry(y, x), DataEntry(C, D)])
142135 }
143136 }
144137
145138
146139
147140 @Callable(o)
148-func finishTaskProposalVoting (v) = if ((a > ((c((("tasks_" + v) + "_voting_amount")) * 100) / c("dao_size"))))
141+func finishTaskProposalVoting (v) = if ((a > ((b((("tasks_" + v) + "_voting_amount")) * 100) / b("dao_size"))))
149142 then throw((("more than " + toString(a)) + "% members have to vote before finishing the voting"))
150143 else if (!(l(o.caller)))
151144 then throw("grants working group access only")
152145 else {
153- let F = (("tasks_" + v) + "_voting_state")
154- let G = c(F)
155- if ((G > 0))
146+ let A = (("tasks_" + v) + "_voting_state")
147+ let B = b(A)
148+ if ((B > 0))
156149 then {
157- let K = "ready_to_apply"
158- WriteSet([DataEntry((("tasks_" + v) + "_status"), K)])
150+ let F = "ready_to_apply"
151+ WriteSet([DataEntry((("tasks_" + v) + "_status"), F)])
159152 }
160153 else {
161- let K = "rejected"
162- WriteSet([DataEntry((("tasks_" + v) + "_status"), K)])
154+ let F = "rejected"
155+ WriteSet([DataEntry((("tasks_" + v) + "_status"), F)])
163156 }
164157 }
165158
166159
167160
168161 @Callable(o)
169-func applyForTask (v,L) = {
170- let M = (("tasks_" + v) + "_applicants")
171- let N = {
172- let f = getString(this, M)
173- if ($isInstanceOf(f, "String"))
174- then {
175- let g = f
176- g
177- }
178- else ""
179- }
180- let O = ((N + ";") + toString(o.caller))
181- WriteSet([DataEntry((((("tasks_" + v) + "_applicant_") + toString(o.caller)) + "_name"), L), DataEntry((((("tasks_" + v) + "_applicant_") + toString(o.caller)) + "_leader"), toString(o.caller)), DataEntry(M, O)])
162+func applyForTask (v,G) = {
163+ let H = (("tasks_" + v) + "_applicants")
164+ let I = g(H)
165+ let J = drop(toString(o.caller), 20)
166+ let K = ((I + ";") + toString(o.caller))
167+ WriteSet([DataEntry((((("tasks_" + v) + "_app_") + J) + "_name"), G), DataEntry((((("tasks_" + v) + "_app_") + J) + "_leader"), toString(o.caller)), DataEntry((((("tasks_" + v) + "_app_") + J) + "_id"), J), DataEntry(H, K)])
182168 }
183169
184170
185171
186172 @Callable(o)
187-func voteForApplicant (v,P,C) = if (!(n(o)))
173+func voteForApplicant (v,L,x) = if (!(n(o)))
188174 then throw("you can't vote")
189175 else {
190- let D = (((("tasks_" + v) + "_vote_") + toString(o.caller)) + P)
191- let z = c(D)
192- if ((z != 0))
176+ let M = (drop(toString(o.caller), 10) + drop(L, 10))
177+ let y = ((("tasks_" + v) + "_vote_") + M)
178+ let N = b(y)
179+ if ((N != 0))
193180 then throw("you have already voted on this team")
194181 else {
195- let Q = (((("tasks_" + v) + "_applicant_") + P) + "_votes")
196- let R = (((("tasks_" + v) + "_applicant_") + P) + "_score")
197- let S = (1 + c(Q))
198- let T = (C + c(R))
199- WriteSet([DataEntry(D, C), DataEntry(R, T)])
182+ let O = (((("tasks_" + v) + "_app_") + L) + "_votes")
183+ let P = (((("tasks_" + v) + "_app_") + L) + "_score")
184+ let Q = (1 + b(O))
185+ let R = (x + b(P))
186+ WriteSet([DataEntry(y, x), DataEntry(P, R)])
200187 }
201188 }
202189
204191
205192 @Callable(o)
206193 func finishApplicantsVoting (v) = {
207- func U (V,W) = {
208- let M = (("tasks_" + v) + "_applicants")
209- let X = split(getStringValue(this, M), ";")
210- let P = X[V]
211- let Q = (((("tasks_" + v) + "_applicant_") + P) + "_votes")
212- let S = c(Q)
213- if ((S > 0))
194+ func S (T,U) = {
195+ let H = (("tasks_" + v) + "_applicants")
196+ let V = split(getStringValue(this, H), ";")
197+ let L = V[T]
198+ let O = (((("tasks_" + v) + "_app_") + L) + "_votes")
199+ let Q = b(O)
200+ if ((Q > 0))
214201 then 1
215- else throw(("not enough votes to make decision on " + P))
202+ else throw(("not enough votes to make decision on " + L))
216203 }
217204
218- func Y (V,W) = {
219- let M = (("tasks_" + v) + "_applicants")
220- let X = split(getStringValue(this, M), ";")
221- let P = X[V]
222- let Q = (((("tasks_" + v) + "_applicant_") + P) + "_votes")
223- let S = c(Q)
224- let Z = X[W]
225- let aa = (((("tasks_" + v) + "_applicant_") + Z) + "_votes")
226- let ab = c(aa)
227- if ((S > ab))
228- then V
229- else W
205+ func W (T,U) = {
206+ let H = (("tasks_" + v) + "_applicants")
207+ let V = split(getStringValue(this, H), ";")
208+ let L = V[T]
209+ let O = (((("tasks_" + v) + "_app_") + L) + "_votes")
210+ let Q = b(O)
211+ let X = V[U]
212+ let Y = (((("tasks_" + v) + "_app_") + X) + "_votes")
213+ let Z = b(Y)
214+ if ((Q > Z))
215+ then T
216+ else U
230217 }
231218
232219 if (!(l(o.caller)))
233220 then throw("grants working group access only")
234221 else {
235- let ac = {
236- let ad = [0, 1]
237- let ae = size(ad)
238- let af = 0
239- if ((ae == 0))
240- then af
222+ let aa = {
223+ let ab = [0, 1]
224+ let ac = size(ab)
225+ let ad = 0
226+ if ((ac == 0))
227+ then ad
241228 else {
242- let ag = Y(af, ad[0])
243- if ((ae == 1))
244- then ag
229+ let ae = W(ad, ab[0])
230+ if ((ac == 1))
231+ then ae
245232 else {
246- let ah = Y(ag, ad[1])
247- if ((ae == 2))
248- then ah
233+ let af = W(ae, ab[1])
234+ if ((ac == 2))
235+ then af
249236 else {
250- let ai = Y(ah, ad[2])
237+ let ag = W(af, ab[2])
251238 throw("List size exceed 2")
252239 }
253240 }
254241 }
255242 }
256- let M = (("tasks_" + v) + "_applicants")
257- let X = split(getStringValue(this, M), ";")
258- let P = X[ac]
259- WriteSet([DataEntry((("tasks_" + v) + "_status"), "team_chosen"), DataEntry((("tasks_" + v) + "_performer"), P), DataEntry((((("tasks_" + v) + "_applicant_") + P) + "_process"), "can_begin")])
243+ let H = (("tasks_" + v) + "_applicants")
244+ let V = split(getStringValue(this, H), ";")
245+ let L = V[aa]
246+ WriteSet([DataEntry((("tasks_" + v) + "_status"), "team_chosen"), DataEntry((("tasks_" + v) + "_performer"), L), DataEntry((((("tasks_" + v) + "_app_") + L) + "_process"), "can_begin")])
260247 }
261248 }
262249
264251
265252 @Callable(o)
266253 func startWork (v) = {
267- let P = getStringValue(this, (("tasks_" + v) + "_performer"))
268- if ((toString(o.caller) != getStringValue(this, (((("tasks_" + v) + "_applicant_") + P) + "_leader"))))
254+ let L = getStringValue(this, (("tasks_" + v) + "_performer"))
255+ if ((toString(o.caller) != getStringValue(this, (((("tasks_" + v) + "_app_") + L) + "_leader"))))
269256 then throw("team leader only")
270- else WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_started"), DataEntry((((("tasks_" + v) + "_applicant_") + P) + "_process"), "work_started")])
257+ else WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_started"), DataEntry((((("tasks_" + v) + "_app_") + L) + "_process"), "work_started")])
271258 }
272259
273260
276263 func acceptWorkResult (v) = if (!(l(o.caller)))
277264 then throw("grants working group access only")
278265 else {
279- let aj = c((("tasks_" + v) + "_reward"))
280- let P = getStringValue(this, (("tasks_" + v) + "_performer"))
281- let ak = getStringValue(this, (((("tasks_" + v) + "_applicant_") + P) + "_leader"))
282- ScriptResult(WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_finished"), DataEntry((((("tasks_" + v) + "_applicant_") + P) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(ak), aj, unit)]))
266+ let ah = b((("tasks_" + v) + "_reward"))
267+ let L = getStringValue(this, (("tasks_" + v) + "_performer"))
268+ let ai = getStringValue(this, (((("tasks_" + v) + "_app_") + L) + "_leader"))
269+ ScriptResult(WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_finished"), DataEntry((((("tasks_" + v) + "_app_") + L) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(ai), ah, unit)]))
283270 }
284271
285272
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 50
55
6-let b = base58'4zfrrwDVjbGFM8wxbZGriVLY4XJsVD4oNMp21FnDnMAa'
7-
8-func c (d) = {
9- let e = {
10- let f = getInteger(this, d)
11- if ($isInstanceOf(f, "Int"))
6+func b (c) = {
7+ let d = {
8+ let e = getInteger(this, c)
9+ if ($isInstanceOf(e, "Int"))
1210 then {
13- let g = f
14- g
11+ let f = e
12+ f
1513 }
1614 else 0
1715 }
18- e
16+ d
17+ }
18+
19+
20+func g (c) = {
21+ let d = {
22+ let e = getString(this, c)
23+ if ($isInstanceOf(e, "String"))
24+ then {
25+ let f = e
26+ f
27+ }
28+ else ""
29+ }
30+ d
1931 }
2032
2133
2234 func h (i) = (i == this)
2335
2436
2537 func j () = {
26- let e = {
27- let f = getString(this, "working_group")
28- if ($isInstanceOf(f, "String"))
38+ let d = {
39+ let e = getString(this, "working_group")
40+ if ($isInstanceOf(e, "String"))
2941 then {
30- let g = f
31- g
42+ let f = e
43+ f
3244 }
3345 else ""
3446 }
35- e
47+ d
3648 }
3749
3850
3951 func k () = {
40- let e = {
41- let f = getString(this, "dao_members")
42- if ($isInstanceOf(f, "String"))
52+ let d = {
53+ let e = getString(this, "dao_members")
54+ if ($isInstanceOf(e, "String"))
4355 then {
44- let g = f
45- g
56+ let f = e
57+ f
4658 }
4759 else ""
4860 }
49- e
61+ d
5062 }
5163
5264
53-func l (m) = (c((("working_group_member_" + toString(m)) + "_weight")) > 0)
65+func l (m) = (b((("working_group_member_" + toString(m)) + "_weight")) > 0)
5466
5567
56-func n (o) = (c((("dao_member_" + toString(o.caller)) + "_weight")) > 0)
68+func n (o) = (b((("dao_member_" + toString(o.caller)) + "_weight")) > 0)
5769
5870
5971 @Callable(o)
6072 func addDAOMember (p) = if (!(h(o.caller)))
6173 then throw("access only to the DAO owner")
6274 else {
6375 let q = k()
6476 let r = ((q + ";") + p)
65- let s = c("dao_size")
77+ let s = b("dao_size")
6678 let t = (s + 1)
6779 WriteSet([DataEntry("dao_members", r), DataEntry("dao_size", t), DataEntry((("dao_member_" + p) + "_weight"), 1)])
6880 }
6981
7082
7183
7284 @Callable(o)
7385 func addGroupMember (p) = if (!(h(o.caller)))
7486 then throw("access only to the DAO owner")
7587 else {
7688 let q = j()
7789 let r = ((q + ";") + p)
78- let s = c("working_group_size")
90+ let s = b("working_group_size")
7991 let t = (s + 1)
8092 WriteSet([DataEntry("working_group_name", r), DataEntry("working_group_size", t), DataEntry((("working_group_member_" + p) + "_weight"), 1)])
8193 }
8294
8395
8496
8597 @Callable(o)
8698 func addTask (u) = if (!(l(o.caller)))
8799 then throw("grants working group access only")
88100 else WriteSet([DataEntry((("tasks_" + toBase58String(o.transactionId)) + "_title"), u)])
89101
90102
91103
92104 @Callable(o)
93-func rateTask (v,w) = if (!(if ((w == 1))
94- then true
95- else (w == -1)))
96- then throw("your rate needs to be +1 or -1")
105+func addTaskDetails (v) = if (!(l(o.caller)))
106+ then throw("grants working group access only")
97107 else {
98- let x = extract(o.payment)
99- if ((x.assetId != b))
100- then throw("you need to vote using WCT")
101- else {
102- let y = x.amount
103- let z = (w * y)
104- let A = c((("tasks_" + v) + "_community_rate"))
105- ScriptResult(WriteSet([DataEntry((("tasks_" + v) + "_community_rate"), (A + z))]), TransferSet([ScriptTransfer(o.caller, x.amount, x.assetId)]))
106- }
108+ let w = extract(o.payment).amount
109+ WriteSet([DataEntry((("tasks_" + v) + "_reward"), w), DataEntry((("tasks_" + v) + "_status"), "proposed")])
107110 }
108111
109112
110113
111114 @Callable(o)
112-func addTaskDetails (v) = if (!(l(o.caller)))
113- then throw("grants working group access only")
114- else {
115- let B = extract(o.payment).amount
116- WriteSet([DataEntry((("tasks_" + v) + "_reward"), B), DataEntry((("tasks_" + v) + "_status"), "proposed")])
117- }
118-
119-
120-
121-@Callable(o)
122-func voteForTaskProposal (v,C) = if (!(n(o)))
115+func voteForTaskProposal (v,x) = if (!(n(o)))
123116 then throw("you can't vote")
124117 else if ((getStringValue(this, (("tasks_" + v) + "_status")) != "proposed"))
125118 then throw("voting is closed or not started")
126- else if (if ((C != -1))
127- then (C != 1)
119+ else if (if ((x != -1))
120+ then (x != 1)
128121 else false)
129122 then throw("you need to vote 1 or -1")
130123 else {
131- let D = ((("tasks_" + v) + "_voted_") + toString(o.caller))
132- let E = c(D)
133- if (!((E == 0)))
124+ let y = ((("tasks_" + v) + "_voted_") + toString(o.caller))
125+ let z = b(y)
126+ if (!((z == 0)))
134127 then throw("you have already voted")
135128 else {
136- let F = (("tasks_" + v) + "_voting_state")
137- let G = c(F)
138- let H = (("tasks_" + v) + "_voting_amount")
139- let I = (c(F) + 1)
140- let J = (G + C)
141- ScriptResult(WriteSet([DataEntry(F, J), DataEntry(D, C), DataEntry(H, I)]), TransferSet([ScriptTransfer(o.caller, 500000, unit)]))
129+ let A = (("tasks_" + v) + "_voting_state")
130+ let B = b(A)
131+ let C = (("tasks_" + v) + "_voting_amount")
132+ let D = (b(A) + 1)
133+ let E = (B + x)
134+ WriteSet([DataEntry(A, E), DataEntry(y, x), DataEntry(C, D)])
142135 }
143136 }
144137
145138
146139
147140 @Callable(o)
148-func finishTaskProposalVoting (v) = if ((a > ((c((("tasks_" + v) + "_voting_amount")) * 100) / c("dao_size"))))
141+func finishTaskProposalVoting (v) = if ((a > ((b((("tasks_" + v) + "_voting_amount")) * 100) / b("dao_size"))))
149142 then throw((("more than " + toString(a)) + "% members have to vote before finishing the voting"))
150143 else if (!(l(o.caller)))
151144 then throw("grants working group access only")
152145 else {
153- let F = (("tasks_" + v) + "_voting_state")
154- let G = c(F)
155- if ((G > 0))
146+ let A = (("tasks_" + v) + "_voting_state")
147+ let B = b(A)
148+ if ((B > 0))
156149 then {
157- let K = "ready_to_apply"
158- WriteSet([DataEntry((("tasks_" + v) + "_status"), K)])
150+ let F = "ready_to_apply"
151+ WriteSet([DataEntry((("tasks_" + v) + "_status"), F)])
159152 }
160153 else {
161- let K = "rejected"
162- WriteSet([DataEntry((("tasks_" + v) + "_status"), K)])
154+ let F = "rejected"
155+ WriteSet([DataEntry((("tasks_" + v) + "_status"), F)])
163156 }
164157 }
165158
166159
167160
168161 @Callable(o)
169-func applyForTask (v,L) = {
170- let M = (("tasks_" + v) + "_applicants")
171- let N = {
172- let f = getString(this, M)
173- if ($isInstanceOf(f, "String"))
174- then {
175- let g = f
176- g
177- }
178- else ""
179- }
180- let O = ((N + ";") + toString(o.caller))
181- WriteSet([DataEntry((((("tasks_" + v) + "_applicant_") + toString(o.caller)) + "_name"), L), DataEntry((((("tasks_" + v) + "_applicant_") + toString(o.caller)) + "_leader"), toString(o.caller)), DataEntry(M, O)])
162+func applyForTask (v,G) = {
163+ let H = (("tasks_" + v) + "_applicants")
164+ let I = g(H)
165+ let J = drop(toString(o.caller), 20)
166+ let K = ((I + ";") + toString(o.caller))
167+ WriteSet([DataEntry((((("tasks_" + v) + "_app_") + J) + "_name"), G), DataEntry((((("tasks_" + v) + "_app_") + J) + "_leader"), toString(o.caller)), DataEntry((((("tasks_" + v) + "_app_") + J) + "_id"), J), DataEntry(H, K)])
182168 }
183169
184170
185171
186172 @Callable(o)
187-func voteForApplicant (v,P,C) = if (!(n(o)))
173+func voteForApplicant (v,L,x) = if (!(n(o)))
188174 then throw("you can't vote")
189175 else {
190- let D = (((("tasks_" + v) + "_vote_") + toString(o.caller)) + P)
191- let z = c(D)
192- if ((z != 0))
176+ let M = (drop(toString(o.caller), 10) + drop(L, 10))
177+ let y = ((("tasks_" + v) + "_vote_") + M)
178+ let N = b(y)
179+ if ((N != 0))
193180 then throw("you have already voted on this team")
194181 else {
195- let Q = (((("tasks_" + v) + "_applicant_") + P) + "_votes")
196- let R = (((("tasks_" + v) + "_applicant_") + P) + "_score")
197- let S = (1 + c(Q))
198- let T = (C + c(R))
199- WriteSet([DataEntry(D, C), DataEntry(R, T)])
182+ let O = (((("tasks_" + v) + "_app_") + L) + "_votes")
183+ let P = (((("tasks_" + v) + "_app_") + L) + "_score")
184+ let Q = (1 + b(O))
185+ let R = (x + b(P))
186+ WriteSet([DataEntry(y, x), DataEntry(P, R)])
200187 }
201188 }
202189
203190
204191
205192 @Callable(o)
206193 func finishApplicantsVoting (v) = {
207- func U (V,W) = {
208- let M = (("tasks_" + v) + "_applicants")
209- let X = split(getStringValue(this, M), ";")
210- let P = X[V]
211- let Q = (((("tasks_" + v) + "_applicant_") + P) + "_votes")
212- let S = c(Q)
213- if ((S > 0))
194+ func S (T,U) = {
195+ let H = (("tasks_" + v) + "_applicants")
196+ let V = split(getStringValue(this, H), ";")
197+ let L = V[T]
198+ let O = (((("tasks_" + v) + "_app_") + L) + "_votes")
199+ let Q = b(O)
200+ if ((Q > 0))
214201 then 1
215- else throw(("not enough votes to make decision on " + P))
202+ else throw(("not enough votes to make decision on " + L))
216203 }
217204
218- func Y (V,W) = {
219- let M = (("tasks_" + v) + "_applicants")
220- let X = split(getStringValue(this, M), ";")
221- let P = X[V]
222- let Q = (((("tasks_" + v) + "_applicant_") + P) + "_votes")
223- let S = c(Q)
224- let Z = X[W]
225- let aa = (((("tasks_" + v) + "_applicant_") + Z) + "_votes")
226- let ab = c(aa)
227- if ((S > ab))
228- then V
229- else W
205+ func W (T,U) = {
206+ let H = (("tasks_" + v) + "_applicants")
207+ let V = split(getStringValue(this, H), ";")
208+ let L = V[T]
209+ let O = (((("tasks_" + v) + "_app_") + L) + "_votes")
210+ let Q = b(O)
211+ let X = V[U]
212+ let Y = (((("tasks_" + v) + "_app_") + X) + "_votes")
213+ let Z = b(Y)
214+ if ((Q > Z))
215+ then T
216+ else U
230217 }
231218
232219 if (!(l(o.caller)))
233220 then throw("grants working group access only")
234221 else {
235- let ac = {
236- let ad = [0, 1]
237- let ae = size(ad)
238- let af = 0
239- if ((ae == 0))
240- then af
222+ let aa = {
223+ let ab = [0, 1]
224+ let ac = size(ab)
225+ let ad = 0
226+ if ((ac == 0))
227+ then ad
241228 else {
242- let ag = Y(af, ad[0])
243- if ((ae == 1))
244- then ag
229+ let ae = W(ad, ab[0])
230+ if ((ac == 1))
231+ then ae
245232 else {
246- let ah = Y(ag, ad[1])
247- if ((ae == 2))
248- then ah
233+ let af = W(ae, ab[1])
234+ if ((ac == 2))
235+ then af
249236 else {
250- let ai = Y(ah, ad[2])
237+ let ag = W(af, ab[2])
251238 throw("List size exceed 2")
252239 }
253240 }
254241 }
255242 }
256- let M = (("tasks_" + v) + "_applicants")
257- let X = split(getStringValue(this, M), ";")
258- let P = X[ac]
259- WriteSet([DataEntry((("tasks_" + v) + "_status"), "team_chosen"), DataEntry((("tasks_" + v) + "_performer"), P), DataEntry((((("tasks_" + v) + "_applicant_") + P) + "_process"), "can_begin")])
243+ let H = (("tasks_" + v) + "_applicants")
244+ let V = split(getStringValue(this, H), ";")
245+ let L = V[aa]
246+ WriteSet([DataEntry((("tasks_" + v) + "_status"), "team_chosen"), DataEntry((("tasks_" + v) + "_performer"), L), DataEntry((((("tasks_" + v) + "_app_") + L) + "_process"), "can_begin")])
260247 }
261248 }
262249
263250
264251
265252 @Callable(o)
266253 func startWork (v) = {
267- let P = getStringValue(this, (("tasks_" + v) + "_performer"))
268- if ((toString(o.caller) != getStringValue(this, (((("tasks_" + v) + "_applicant_") + P) + "_leader"))))
254+ let L = getStringValue(this, (("tasks_" + v) + "_performer"))
255+ if ((toString(o.caller) != getStringValue(this, (((("tasks_" + v) + "_app_") + L) + "_leader"))))
269256 then throw("team leader only")
270- else WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_started"), DataEntry((((("tasks_" + v) + "_applicant_") + P) + "_process"), "work_started")])
257+ else WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_started"), DataEntry((((("tasks_" + v) + "_app_") + L) + "_process"), "work_started")])
271258 }
272259
273260
274261
275262 @Callable(o)
276263 func acceptWorkResult (v) = if (!(l(o.caller)))
277264 then throw("grants working group access only")
278265 else {
279- let aj = c((("tasks_" + v) + "_reward"))
280- let P = getStringValue(this, (("tasks_" + v) + "_performer"))
281- let ak = getStringValue(this, (((("tasks_" + v) + "_applicant_") + P) + "_leader"))
282- ScriptResult(WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_finished"), DataEntry((((("tasks_" + v) + "_applicant_") + P) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(ak), aj, unit)]))
266+ let ah = b((("tasks_" + v) + "_reward"))
267+ let L = getStringValue(this, (("tasks_" + v) + "_performer"))
268+ let ai = getStringValue(this, (((("tasks_" + v) + "_app_") + L) + "_leader"))
269+ ScriptResult(WriteSet([DataEntry((("tasks_" + v) + "_status"), "work_finished"), DataEntry((((("tasks_" + v) + "_app_") + L) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(ai), ah, unit)]))
283270 }
284271
285272

github/deemru/w8io/169f3d6 
78.32 ms