tx · CaDsjU7NWLFHoFgYhbPew3oeQjq7Xs3DPAB8VgGoK6CU

3MtV1AQ8fEPk76tjKgvrufuMe5aA3q4TviQ:  -0.10000000 Waves

2020.12.14 15:04 [1308335] smart account 3MtV1AQ8fEPk76tjKgvrufuMe5aA3q4TviQ > SELF 0.00000000 Waves

{ "type": 13, "id": "CaDsjU7NWLFHoFgYhbPew3oeQjq7Xs3DPAB8VgGoK6CU", "fee": 10000000, "feeAssetId": null, "timestamp": 1607947501610, "version": 2, "chainId": 84, "sender": "3MtV1AQ8fEPk76tjKgvrufuMe5aA3q4TviQ", "senderPublicKey": "3Fjao2FW1JXSPd5EkP7C3uerW18HYacYsaMYALFMGA6N", "proofs": [ "4kaPPgJUhVGM7duN1LHtVxxqnLF7CnkHGHjifWHJSK7MhbhdL7LHD6CVsadZUQ3nU2AvWegz5ZVXWH3HJ5v7bJZQ" ], "script": "base64:AAIDAAAAAAAAAC4IARIECgIICBIECgIIARIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIAAAADAAAAAAGUVVPUlVNAAAAAAAAAAABAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAUAAAADdmFsAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAFAAAAA3ZhbAAAAAAMbWFpbkNvbnRyYWN0BQAAAAR0aGlzAQAAAAdpc093bmVyAAAAAQAAAAdhZGRyZXNzCQAAAAAAAAIFAAAAB2FkZHJlc3MFAAAABHRoaXMBAAAACGdldEdyb3VwAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADG1haW5Db250cmFjdAIAAAAVd29ya2luZ19ncm91cF9tZW1iZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAUAAAADdmFsAQAAAApnZXRNZW1iZXJzAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADG1haW5Db250cmFjdAIAAAALZGFvX21lbWJlcnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAABQAAAAN2YWwBAAAADWlzR3JvdXBNZW1iZXIAAAABAAAAAWEEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAxtYWluQ29udHJhY3QJAAEsAAAAAgkAASwAAAACAgAAABV3b3JraW5nX2dyb3VwX21lbWJlcl8JAAQlAAAAAQUAAAABYQIAAAAHX3dlaWdodAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAACQAAZgAAAAIFAAAAA3ZhbAAAAAAAAAAAAAEAAAANY2FuTWVtYmVyVm90ZQAAAAEAAAABaQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAADG1haW5Db250cmFjdAkAASwAAAACCQABLAAAAAICAAAAC2Rhb19tZW1iZXJfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAAHX3dlaWdodAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAACQAAZgAAAAIFAAAAA3ZhbAAAAAAAAAAAAAEAAAAMZ2V0Vm90ZVZhbHVlAAAAAQAAAAFzAwkAAAAAAAACBQAAAAFzAgAAAARsaWtlAAAAAAAAAAABAwkAAAAAAAACBQAAAAFzAgAAAAdkaXNsaWtlAP//////////CQAAAgAAAAECAAAAL3lvdSBuZWVkIHRvIHZvdGUgd2l0aCAnbGlrZScgb3IgJ2Rpc2xpa2UnIHZhbHVlAQAAAAxpc1ZvdGluZ0xpdmUAAAABAAAABnRhc2tJZAkBAAAAAiE9AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzAgAAAAhwcm9wb3NlZAEAAAAQaXNRdW9ydW1BY2hpZXZlZAAAAAEAAAAGdGFza0lkCQAAZgAAAAIFAAAABlFVT1JVTQkAAGkAAAACCQAAaAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAA5fdm90aW5nX2Ftb3VudAAAAAAAAAAAZAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAAhkYW9fc2l6ZQAAAAgAAAABaQEAAAAHYWRkVGFzawAAAAIAAAAFdGl0bGUAAAAEbGluawkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkAgAAAAZfdGl0bGUFAAAABXRpdGxlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQCAAAABV9saW5rBQAAAARsaW5rBQAAAANuaWwAAAABaQEAAAAOYWRkVGFza0RldGFpbHMAAAACAAAABnRhc2tJZAAAAAZyZXdhcmQEAAAADnRlYW1JZGVudGlmaWVyCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAACl9wZXJmb3JtZXIDCQEAAAACIT0AAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAdfbGVhZGVyCQAAAgAAAAECAAAAEHRlYW0gbGVhZGVyIG9ubHkJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAQX3JlcXVlc3RlZHJld2FyZAUAAAAGcmV3YXJkBQAAAANuaWwAAAABaQEAAAAOaW5pdFRhc2tWb3RpbmcAAAABAAAABnRhc2tJZAMJAQAAAAEhAAAAAQkBAAAADWlzR3JvdXBNZW1iZXIAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAgZ3JhbnRzIHdvcmtpbmcgZ3JvdXAgYWNjZXNzIG9ubHkJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3N0YXR1cwIAAAAOdm90aW5nX3N0YXJ0ZWQFAAAAA25pbAAAAAFpAQAAABN2b3RlRm9yVGFza1Byb3Bvc2FsAAAAAgAAAAZ0YXNrSWQAAAAPdm90ZVZhbHVlU3RyaW5nAwkBAAAAASEAAAABCQEAAAANY2FuTWVtYmVyVm90ZQAAAAEFAAAAAWkJAAACAAAAAQIAAAAOeW91IGNhbid0IHZvdGUDCQEAAAAMaXNWb3RpbmdMaXZlAAAAAQUAAAAGdGFza0lkCQAAAgAAAAECAAAAH3ZvdGluZyBpcyBjbG9zZWQgb3Igbm90IHN0YXJ0ZWQEAAAACXZvdGVWYWx1ZQkBAAAADGdldFZvdGVWYWx1ZQAAAAEFAAAAD3ZvdGVWYWx1ZVN0cmluZwQAAAAHdm90ZUtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAAB192b3RlZF8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAxwcmV2aW91c1ZvdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAHdm90ZUtleQMJAQAAAAEhAAAAAQkAAAAAAAACBQAAAAxwcmV2aW91c1ZvdGUAAAAAAAAAAAAJAAACAAAAAQIAAAAWeW91IGhhdmUgYWxyZWFkeSB2b3RlZAQAAAAJdm90aW5nS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAADV92b3Rpbmdfc3RhdGUEAAAAC3ZvdGluZ1N0YXRlCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAACXZvdGluZ0tleQQAAAAOdm90ZXNBbW91bnRLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAOX3ZvdGluZ19hbW91bnQEAAAAEHZvdGVzQW1vdW50U3RhdGUJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABBQAAAAl2b3RpbmdLZXkAAAAAAAAAAAEEAAAADm5ld1ZvdGluZ1N0YXRlCQAAZAAAAAIFAAAAC3ZvdGluZ1N0YXRlBQAAAAl2b3RlVmFsdWUJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACXZvdGluZ0tleQUAAAAObmV3Vm90aW5nU3RhdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAB3ZvdGVLZXkFAAAACXZvdGVWYWx1ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOdm90ZXNBbW91bnRLZXkFAAAAEHZvdGVzQW1vdW50U3RhdGUFAAAAA25pbAAAAAFpAQAAABhmaW5pc2hUYXNrUHJvcG9zYWxWb3RpbmcAAAABAAAABnRhc2tJZAMJAQAAABBpc1F1b3J1bUFjaGlldmVkAAAAAQUAAAAGdGFza0lkCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAptb3JlIHRoYW4gCQABpAAAAAEFAAAABlFVT1JVTQIAAAAyJSBtZW1iZXJzIGhhdmUgdG8gdm90ZSBiZWZvcmUgZmluaXNoaW5nIHRoZSB2b3RpbmcDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAAl2b3RpbmdLZXkJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAANX3ZvdGluZ19zdGF0ZQQAAAALdm90aW5nU3RhdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAJdm90aW5nS2V5AwkAAGYAAAACBQAAAAt2b3RpbmdTdGF0ZQAAAAAAAAAAAAQAAAAMdm90aW5nUmVzdWx0AgAAAAhhcHByb3ZlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzBQAAAAx2b3RpbmdSZXN1bHQFAAAAA25pbAQAAAAMdm90aW5nUmVzdWx0AgAAAAhyZWplY3RlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzBQAAAAx2b3RpbmdSZXN1bHQFAAAAA25pbAAAAAFpAQAAAAlzdGFydFdvcmsAAAABAAAABnRhc2tJZAQAAAAOdGVhbUlkZW50aWZpZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAKX3BlcmZvcm1lcgMJAQAAAAIhPQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAAB19sZWFkZXIJAAACAAAAAQIAAAAQdGVhbSBsZWFkZXIgb25seQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzAgAAAAx3b3JrX3N0YXJ0ZWQFAAAAA25pbAAAAAFpAQAAAApyZWplY3RUYXNrAAAAAQAAAAZ0YXNrSWQDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5BAAAAA50ZWFtSWRlbnRpZmllcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAApfcGVyZm9ybWVyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAAB19zdGF0dXMCAAAACHJlamVjdGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAACF9wcm9jZXNzAgAAAAhyZWplY3RlZAUAAAADbmlsAAAAAWkBAAAAEGFjY2VwdFdvcmtSZXN1bHQAAAACAAAABnRhc2tJZAAAAApyZXBvcnRMaW5rAwkBAAAAASEAAAABCQEAAAANaXNHcm91cE1lbWJlcgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAACBncmFudHMgd29ya2luZyBncm91cCBhY2Nlc3Mgb25seQQAAAAMcmV3YXJkQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3Jld2FyZAQAAAAOdGVhbUlkZW50aWZpZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAKX3BlcmZvcm1lcgQAAAALdGVhbUFkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAA50ZWFtSWRlbnRpZmllcgIAAAAHX2xlYWRlcgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3N0YXR1cwIAAAANd29ya19maW5pc2hlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAdfcmVwb3J0BQAAAApyZXBvcnRMaW5rBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAt0ZWFtQWRkcmVzcwUAAAAMcmV3YXJkQW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAAA4lkytA==", "height": 1308335, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CWGvGoreERQUCYWWzMGjogbp1EAMN3MP33Cw1M9u9T19 Next: 8EySA8u7oYFWFVufNWuQeSAGGCvcBbPBZHSazusN4oLp Diff:
OldNewDifferences
9292 }
9393
9494
95-@Callable(p)
96-func addDAOMember (q) = if (!(i(p.caller)))
97- then throw("access only to the DAO owner")
98- else if ((b((("dao_member_" + q) + "_weight")) == 1))
99- then throw("This user already exists")
100- else {
101- let r = l()
102- let s = ((r + ";") + q)
103- let t = b("dao_size")
104- let u = (t + 1)
105- WriteSet([DataEntry("dao_members", s), DataEntry("dao_size", u), DataEntry((("dao_member_" + q) + "_weight"), 1)])
106- }
95+func q (r) = if ((r == "like"))
96+ then 1
97+ else if ((r == "dislike"))
98+ then -1
99+ else throw("you need to vote with 'like' or 'dislike' value")
107100
108101
102+func s (t) = (getStringValue(this, (("tasks_" + t) + "_status")) != "proposed")
109103
110-@Callable(p)
111-func addGroupMember (q) = if (!(i(p.caller)))
112- then throw("access only to the DAO owner")
113- else if ((b((("working_group_member_" + q) + "_weight")) == 1))
114- then throw("This user already exists")
115- else {
116- let r = k()
117- let s = ((r + ";") + q)
118- let t = b("working_group_size")
119- let u = (t + 1)
120- WriteSet([DataEntry("working_group_members", s), DataEntry("working_group_size", u), DataEntry((("working_group_member_" + q) + "_weight"), 1)])
121- }
122104
105+func u (t) = (a > ((b((("tasks_" + t) + "_voting_amount")) * 100) / b("dao_size")))
123106
124107
125108 @Callable(p)
128111
129112
130113 @Callable(p)
131-func addTaskDetails (x,y) = {
132- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
133- if ((toString(p.caller) != getStringValue(this, (((("tasks_" + x) + "_app_") + z) + "_leader"))))
114+func addTaskDetails (t,x) = {
115+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
116+ if ((toString(p.caller) != getStringValue(this, (((("tasks_" + t) + "_app_") + y) + "_leader"))))
134117 then throw("team leader only")
135- else WriteSet([DataEntry((("tasks_" + x) + "_requestedreward"), y)])
118+ else WriteSet([DataEntry((("tasks_" + t) + "_requestedreward"), x)])
136119 }
137120
138121
139122
140123 @Callable(p)
141-func initTaskVoting (x) = if (!(m(p.caller)))
124+func initTaskVoting (t) = if (!(m(p.caller)))
142125 then throw("grants working group access only")
143- else WriteSet([DataEntry((("tasks_" + x) + "_status"), "voting_started")])
126+ else WriteSet([DataEntry((("tasks_" + t) + "_status"), "voting_started")])
144127
145128
146129
147130 @Callable(p)
148-func voteForTaskProposal (x,A) = if (!(o(p)))
131+func voteForTaskProposal (t,z) = if (!(o(p)))
149132 then throw("you can't vote")
150- else if ((getStringValue(this, (("tasks_" + x) + "_status")) != "proposed"))
133+ else if (s(t))
151134 then throw("voting is closed or not started")
152- else if (if ((A != -1))
153- then (A != 1)
154- else false)
155- then throw("you need to vote 1 or -1")
156- else {
157- let B = ((("tasks_" + x) + "_voted_") + toString(p.caller))
158- let C = b(B)
159- if (!((C == 0)))
160- then throw("you have already voted")
161- else {
162- let D = (("tasks_" + x) + "_voting_state")
163- let E = b(D)
164- let F = (("tasks_" + x) + "_voting_amount")
165- let G = (b(D) + 1)
166- let H = (E + A)
167- ScriptResult(WriteSet([DataEntry(D, H), DataEntry(B, A), DataEntry(F, G)]), TransferSet([ScriptTransfer(p.caller, 500000, unit)]))
168- }
169- }
170-
171-
172-
173-@Callable(p)
174-func finishTaskProposalVoting (x) = if ((a > ((b((("tasks_" + x) + "_voting_amount")) * 100) / b("dao_size"))))
175- then throw((("more than " + toString(a)) + "% members have to vote before finishing the voting"))
176- else if (!(m(p.caller)))
177- then throw("grants working group access only")
178135 else {
179- let D = (("tasks_" + x) + "_voting_state")
180- let E = b(D)
181- if ((E > 0))
182- then {
183- let I = "approved"
184- WriteSet([DataEntry((("tasks_" + x) + "_status"), I)])
185- }
136+ let A = q(z)
137+ let B = ((("tasks_" + t) + "_voted_") + toString(p.caller))
138+ let C = b(B)
139+ if (!((C == 0)))
140+ then throw("you have already voted")
186141 else {
187- let I = "rejected"
188- WriteSet([DataEntry((("tasks_" + x) + "_status"), I)])
142+ let D = (("tasks_" + t) + "_voting_state")
143+ let E = b(D)
144+ let F = (("tasks_" + t) + "_voting_amount")
145+ let G = (b(D) + 1)
146+ let H = (E + A)
147+ WriteSet([DataEntry(D, H), DataEntry(B, A), DataEntry(F, G)])
189148 }
190149 }
191150
192151
193152
194153 @Callable(p)
195-func startWork (x) = {
196- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
197- if ((toString(p.caller) != getStringValue(this, (((("tasks_" + x) + "_app_") + z) + "_leader"))))
154+func finishTaskProposalVoting (t) = if (u(t))
155+ then throw((("more than " + toString(a)) + "% members have to vote before finishing the voting"))
156+ else if (!(m(p.caller)))
157+ then throw("grants working group access only")
158+ else {
159+ let D = (("tasks_" + t) + "_voting_state")
160+ let E = b(D)
161+ if ((E > 0))
162+ then {
163+ let I = "approved"
164+ WriteSet([DataEntry((("tasks_" + t) + "_status"), I)])
165+ }
166+ else {
167+ let I = "rejected"
168+ WriteSet([DataEntry((("tasks_" + t) + "_status"), I)])
169+ }
170+ }
171+
172+
173+
174+@Callable(p)
175+func startWork (t) = {
176+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
177+ if ((toString(p.caller) != getStringValue(this, (((("tasks_" + t) + "_app_") + y) + "_leader"))))
198178 then throw("team leader only")
199- else WriteSet([DataEntry((("tasks_" + x) + "_status"), "work_started")])
179+ else WriteSet([DataEntry((("tasks_" + t) + "_status"), "work_started")])
200180 }
201181
202182
203183
204184 @Callable(p)
205-func rejectTask (x) = if (!(m(p.caller)))
185+func rejectTask (t) = if (!(m(p.caller)))
206186 then throw("grants working group access only")
207187 else {
208- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
209- WriteSet([DataEntry((("tasks_" + x) + "_status"), "rejected"), DataEntry((((("tasks_" + x) + "_app_") + z) + "_process"), "rejected")])
188+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
189+ WriteSet([DataEntry((("tasks_" + t) + "_status"), "rejected"), DataEntry((((("tasks_" + t) + "_app_") + y) + "_process"), "rejected")])
210190 }
211191
212192
213193
214194 @Callable(p)
215-func acceptWorkResult (x,J) = if (!(m(p.caller)))
195+func acceptWorkResult (t,J) = if (!(m(p.caller)))
216196 then throw("grants working group access only")
217197 else {
218- let K = b((("tasks_" + x) + "_reward"))
219- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
220- let L = getStringValue(this, (((("tasks_" + x) + "_app_") + z) + "_leader"))
221- ScriptResult(WriteSet([DataEntry((("tasks_" + x) + "_status"), "work_finished"), DataEntry((((("tasks_" + x) + "_app_") + z) + "_report"), J)]), TransferSet([ScriptTransfer(addressFromStringValue(L), K, unit)]))
198+ let K = b((("tasks_" + t) + "_reward"))
199+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
200+ let L = getStringValue(this, (((("tasks_" + t) + "_app_") + y) + "_leader"))
201+ ScriptResult(WriteSet([DataEntry((("tasks_" + t) + "_status"), "work_finished"), DataEntry((((("tasks_" + t) + "_app_") + y) + "_report"), J)]), TransferSet([ScriptTransfer(addressFromStringValue(L), K, unit)]))
222202 }
223203
224204
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1
55
66 func b (c) = {
77 let d = {
88 let e = getInteger(this, c)
99 if ($isInstanceOf(e, "Int"))
1010 then {
1111 let f = e
1212 f
1313 }
1414 else 0
1515 }
1616 d
1717 }
1818
1919
2020 func g (c) = {
2121 let d = {
2222 let e = getString(this, c)
2323 if ($isInstanceOf(e, "String"))
2424 then {
2525 let f = e
2626 f
2727 }
2828 else ""
2929 }
3030 d
3131 }
3232
3333
3434 let h = this
3535
3636 func i (j) = (j == this)
3737
3838
3939 func k () = {
4040 let d = {
4141 let e = getString(h, "working_group_members")
4242 if ($isInstanceOf(e, "String"))
4343 then {
4444 let f = e
4545 f
4646 }
4747 else ""
4848 }
4949 d
5050 }
5151
5252
5353 func l () = {
5454 let d = {
5555 let e = getString(h, "dao_members")
5656 if ($isInstanceOf(e, "String"))
5757 then {
5858 let f = e
5959 f
6060 }
6161 else ""
6262 }
6363 d
6464 }
6565
6666
6767 func m (n) = {
6868 let d = {
6969 let e = getInteger(h, (("working_group_member_" + toString(n)) + "_weight"))
7070 if ($isInstanceOf(e, "Int"))
7171 then {
7272 let f = e
7373 f
7474 }
7575 else 0
7676 }
7777 (d > 0)
7878 }
7979
8080
8181 func o (p) = {
8282 let d = {
8383 let e = getInteger(h, (("dao_member_" + toString(p.caller)) + "_weight"))
8484 if ($isInstanceOf(e, "Int"))
8585 then {
8686 let f = e
8787 f
8888 }
8989 else 0
9090 }
9191 (d > 0)
9292 }
9393
9494
95-@Callable(p)
96-func addDAOMember (q) = if (!(i(p.caller)))
97- then throw("access only to the DAO owner")
98- else if ((b((("dao_member_" + q) + "_weight")) == 1))
99- then throw("This user already exists")
100- else {
101- let r = l()
102- let s = ((r + ";") + q)
103- let t = b("dao_size")
104- let u = (t + 1)
105- WriteSet([DataEntry("dao_members", s), DataEntry("dao_size", u), DataEntry((("dao_member_" + q) + "_weight"), 1)])
106- }
95+func q (r) = if ((r == "like"))
96+ then 1
97+ else if ((r == "dislike"))
98+ then -1
99+ else throw("you need to vote with 'like' or 'dislike' value")
107100
108101
102+func s (t) = (getStringValue(this, (("tasks_" + t) + "_status")) != "proposed")
109103
110-@Callable(p)
111-func addGroupMember (q) = if (!(i(p.caller)))
112- then throw("access only to the DAO owner")
113- else if ((b((("working_group_member_" + q) + "_weight")) == 1))
114- then throw("This user already exists")
115- else {
116- let r = k()
117- let s = ((r + ";") + q)
118- let t = b("working_group_size")
119- let u = (t + 1)
120- WriteSet([DataEntry("working_group_members", s), DataEntry("working_group_size", u), DataEntry((("working_group_member_" + q) + "_weight"), 1)])
121- }
122104
105+func u (t) = (a > ((b((("tasks_" + t) + "_voting_amount")) * 100) / b("dao_size")))
123106
124107
125108 @Callable(p)
126109 func addTask (v,w) = WriteSet([DataEntry((("tasks_" + toBase58String(p.transactionId)) + "_title"), v), DataEntry((("tasks_" + toBase58String(p.transactionId)) + "_link"), w)])
127110
128111
129112
130113 @Callable(p)
131-func addTaskDetails (x,y) = {
132- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
133- if ((toString(p.caller) != getStringValue(this, (((("tasks_" + x) + "_app_") + z) + "_leader"))))
114+func addTaskDetails (t,x) = {
115+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
116+ if ((toString(p.caller) != getStringValue(this, (((("tasks_" + t) + "_app_") + y) + "_leader"))))
134117 then throw("team leader only")
135- else WriteSet([DataEntry((("tasks_" + x) + "_requestedreward"), y)])
118+ else WriteSet([DataEntry((("tasks_" + t) + "_requestedreward"), x)])
136119 }
137120
138121
139122
140123 @Callable(p)
141-func initTaskVoting (x) = if (!(m(p.caller)))
124+func initTaskVoting (t) = if (!(m(p.caller)))
142125 then throw("grants working group access only")
143- else WriteSet([DataEntry((("tasks_" + x) + "_status"), "voting_started")])
126+ else WriteSet([DataEntry((("tasks_" + t) + "_status"), "voting_started")])
144127
145128
146129
147130 @Callable(p)
148-func voteForTaskProposal (x,A) = if (!(o(p)))
131+func voteForTaskProposal (t,z) = if (!(o(p)))
149132 then throw("you can't vote")
150- else if ((getStringValue(this, (("tasks_" + x) + "_status")) != "proposed"))
133+ else if (s(t))
151134 then throw("voting is closed or not started")
152- else if (if ((A != -1))
153- then (A != 1)
154- else false)
155- then throw("you need to vote 1 or -1")
156- else {
157- let B = ((("tasks_" + x) + "_voted_") + toString(p.caller))
158- let C = b(B)
159- if (!((C == 0)))
160- then throw("you have already voted")
161- else {
162- let D = (("tasks_" + x) + "_voting_state")
163- let E = b(D)
164- let F = (("tasks_" + x) + "_voting_amount")
165- let G = (b(D) + 1)
166- let H = (E + A)
167- ScriptResult(WriteSet([DataEntry(D, H), DataEntry(B, A), DataEntry(F, G)]), TransferSet([ScriptTransfer(p.caller, 500000, unit)]))
168- }
169- }
170-
171-
172-
173-@Callable(p)
174-func finishTaskProposalVoting (x) = if ((a > ((b((("tasks_" + x) + "_voting_amount")) * 100) / b("dao_size"))))
175- then throw((("more than " + toString(a)) + "% members have to vote before finishing the voting"))
176- else if (!(m(p.caller)))
177- then throw("grants working group access only")
178135 else {
179- let D = (("tasks_" + x) + "_voting_state")
180- let E = b(D)
181- if ((E > 0))
182- then {
183- let I = "approved"
184- WriteSet([DataEntry((("tasks_" + x) + "_status"), I)])
185- }
136+ let A = q(z)
137+ let B = ((("tasks_" + t) + "_voted_") + toString(p.caller))
138+ let C = b(B)
139+ if (!((C == 0)))
140+ then throw("you have already voted")
186141 else {
187- let I = "rejected"
188- WriteSet([DataEntry((("tasks_" + x) + "_status"), I)])
142+ let D = (("tasks_" + t) + "_voting_state")
143+ let E = b(D)
144+ let F = (("tasks_" + t) + "_voting_amount")
145+ let G = (b(D) + 1)
146+ let H = (E + A)
147+ WriteSet([DataEntry(D, H), DataEntry(B, A), DataEntry(F, G)])
189148 }
190149 }
191150
192151
193152
194153 @Callable(p)
195-func startWork (x) = {
196- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
197- if ((toString(p.caller) != getStringValue(this, (((("tasks_" + x) + "_app_") + z) + "_leader"))))
154+func finishTaskProposalVoting (t) = if (u(t))
155+ then throw((("more than " + toString(a)) + "% members have to vote before finishing the voting"))
156+ else if (!(m(p.caller)))
157+ then throw("grants working group access only")
158+ else {
159+ let D = (("tasks_" + t) + "_voting_state")
160+ let E = b(D)
161+ if ((E > 0))
162+ then {
163+ let I = "approved"
164+ WriteSet([DataEntry((("tasks_" + t) + "_status"), I)])
165+ }
166+ else {
167+ let I = "rejected"
168+ WriteSet([DataEntry((("tasks_" + t) + "_status"), I)])
169+ }
170+ }
171+
172+
173+
174+@Callable(p)
175+func startWork (t) = {
176+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
177+ if ((toString(p.caller) != getStringValue(this, (((("tasks_" + t) + "_app_") + y) + "_leader"))))
198178 then throw("team leader only")
199- else WriteSet([DataEntry((("tasks_" + x) + "_status"), "work_started")])
179+ else WriteSet([DataEntry((("tasks_" + t) + "_status"), "work_started")])
200180 }
201181
202182
203183
204184 @Callable(p)
205-func rejectTask (x) = if (!(m(p.caller)))
185+func rejectTask (t) = if (!(m(p.caller)))
206186 then throw("grants working group access only")
207187 else {
208- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
209- WriteSet([DataEntry((("tasks_" + x) + "_status"), "rejected"), DataEntry((((("tasks_" + x) + "_app_") + z) + "_process"), "rejected")])
188+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
189+ WriteSet([DataEntry((("tasks_" + t) + "_status"), "rejected"), DataEntry((((("tasks_" + t) + "_app_") + y) + "_process"), "rejected")])
210190 }
211191
212192
213193
214194 @Callable(p)
215-func acceptWorkResult (x,J) = if (!(m(p.caller)))
195+func acceptWorkResult (t,J) = if (!(m(p.caller)))
216196 then throw("grants working group access only")
217197 else {
218- let K = b((("tasks_" + x) + "_reward"))
219- let z = getStringValue(this, (("tasks_" + x) + "_performer"))
220- let L = getStringValue(this, (((("tasks_" + x) + "_app_") + z) + "_leader"))
221- ScriptResult(WriteSet([DataEntry((("tasks_" + x) + "_status"), "work_finished"), DataEntry((((("tasks_" + x) + "_app_") + z) + "_report"), J)]), TransferSet([ScriptTransfer(addressFromStringValue(L), K, unit)]))
198+ let K = b((("tasks_" + t) + "_reward"))
199+ let y = getStringValue(this, (("tasks_" + t) + "_performer"))
200+ let L = getStringValue(this, (((("tasks_" + t) + "_app_") + y) + "_leader"))
201+ ScriptResult(WriteSet([DataEntry((("tasks_" + t) + "_status"), "work_finished"), DataEntry((((("tasks_" + t) + "_app_") + y) + "_report"), J)]), TransferSet([ScriptTransfer(addressFromStringValue(L), K, unit)]))
222202 }
223203
224204

github/deemru/w8io/169f3d6 
46.90 ms