tx · U42QrQgm65tuUsg5LAxoHTEx8H5LyapdAZT8GJy8vZW

3Mxk4Jmjd8SdE2MojSXsUQ8LVYM8vRzmFSA:  -0.10000000 Waves

2020.12.01 15:03 [1289572] smart account 3Mxk4Jmjd8SdE2MojSXsUQ8LVYM8vRzmFSA > SELF 0.00000000 Waves

{ "type": 13, "id": "U42QrQgm65tuUsg5LAxoHTEx8H5LyapdAZT8GJy8vZW", "fee": 10000000, "feeAssetId": null, "timestamp": 1606824193181, "version": 2, "chainId": 84, "sender": "3Mxk4Jmjd8SdE2MojSXsUQ8LVYM8vRzmFSA", "senderPublicKey": "4xMxUnfdbHYsent96ThiYC63gXHiahi6bh3urdHHntHi", "proofs": [ "5faJCfqoz7Uuvw8U6noSG5Mr8k16Fz6qTRvgMe3NPj2cRz98DgXqDubMB197GaHJEho3snNed3nHQwYRjGHyW3Lk" ], "script": "base64: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AgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAD3RlYW1Wb3Rlc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkDCQAAZgAAAAIFAAAAD3RlYW1Wb3Rlc0Ftb3VudAAAAAAAAAAAAAAAAAAAAAAAAQkAAAIAAAABCQABLAAAAAICAAAAJW5vdCBlbm91Z2ggdm90ZXMgdG8gbWFrZSBkZWNpc2lvbiBvbiAFAAAADnRlYW1JZGVudGlmaWVyCgEAAAAMaGFzTW9yZVZvdGVzAAAAAgAAAANhaWQAAAAEYWlkMgQAAAAHbGlzdEtleQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAtfYXBwbGljYW50cwQAAAAOYXBwbGljYW50c0xpc3QJAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAHbGlzdEtleQIAAAABOwQAAAAOdGVhbUlkZW50aWZpZXIJAAGRAAAAAgUAAAAOYXBwbGljYW50c0xpc3QFAAAAA2FpZAQAAAASdGVhbVZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAOdGVhbUlkZW50aWZpZXICAAAABl92b3RlcwQAAAAPdGVhbVZvdGVzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQQAAAAPdGVhbTJJZGVudGlmaWVyCQABkQAAAAIFAAAADmFwcGxpY2FudHNMaXN0BQAAAARhaWQyBAAAABN0ZWFtMlZvdGVzQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAVfYXBwXwUAAAAPdGVhbTJJZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAEHRlYW0yVm90ZXNBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAA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", "height": 1289572, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: tAyxvgcrPr983uwnCktxvdjAFuyfPZmjTB1NFAR3LLf Next: FKRerSYGkCxxs6oCkQgynZRiFmmrB2cY3pZ5ZEeSmJwU Diff:
OldNewDifferences
9494
9595
9696 @Callable(i)
97-func addTaskDetails (taskId) = if (!(isGroupMember(i.caller)))
97+func addReward (taskId) = if (!(isGroupMember(i.caller)))
9898 then throw("grants working group access only")
9999 else {
100100 let reward = extract(i.payment).amount
243243 then throw("No one has yet responded to the grant")
244244 else {
245245 let chosenTeamId = {
246- let $list1255612587 = [0, 1]
247- let $size1255612587 = size($list1255612587)
248- let $acc01255612587 = 0
249- if (($size1255612587 == 0))
250- then $acc01255612587
246+ let $list1255112582 = [0, 1]
247+ let $size1255112582 = size($list1255112582)
248+ let $acc01255112582 = 0
249+ if (($size1255112582 == 0))
250+ then $acc01255112582
251251 else {
252- let $acc11255612587 = hasMoreVotes($acc01255612587, $list1255612587[0])
253- if (($size1255612587 == 1))
254- then $acc11255612587
252+ let $acc11255112582 = hasMoreVotes($acc01255112582, $list1255112582[0])
253+ if (($size1255112582 == 1))
254+ then $acc11255112582
255255 else {
256- let $acc21255612587 = hasMoreVotes($acc11255612587, $list1255612587[1])
257- if (($size1255612587 == 2))
258- then $acc21255612587
256+ let $acc21255112582 = hasMoreVotes($acc11255112582, $list1255112582[1])
257+ if (($size1255112582 == 2))
258+ then $acc21255112582
259259 else {
260- let $acc31255612587 = hasMoreVotes($acc21255612587, $list1255612587[2])
260+ let $acc31255112582 = hasMoreVotes($acc21255112582, $list1255112582[2])
261261 throw("List size exceed 2")
262262 }
263263 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let QUORUM = 1
55
66 func tryGetInteger (key) = {
77 let val = match getInteger(this, key) {
88 case b: Int =>
99 b
1010 case _ =>
1111 0
1212 }
1313 val
1414 }
1515
1616
1717 func tryGetString (key) = {
1818 let val = match getString(this, key) {
1919 case b: String =>
2020 b
2121 case _ =>
2222 ""
2323 }
2424 val
2525 }
2626
2727
2828 func isOwner (address) = (address == this)
2929
3030
3131 func getGroup () = {
3232 let val = match getString(this, "working_group_members") {
3333 case b: String =>
3434 b
3535 case _ =>
3636 ""
3737 }
3838 val
3939 }
4040
4141
4242 func getMembers () = {
4343 let val = match getString(this, "dao_members") {
4444 case b: String =>
4545 b
4646 case _ =>
4747 ""
4848 }
4949 val
5050 }
5151
5252
5353 func isGroupMember (a) = (tryGetInteger((("working_group_member_" + toString(a)) + "_weight")) > 0)
5454
5555
5656 func canMemberVote (i) = (tryGetInteger((("dao_member_" + toString(i.caller)) + "_weight")) > 0)
5757
5858
5959 @Callable(i)
6060 func addDAOMember (memberAddress) = if (!(isOwner(i.caller)))
6161 then throw("access only to the DAO owner")
6262 else if ((tryGetInteger((("dao_member_" + memberAddress) + "_weight")) == 1))
6363 then throw("This user already exists")
6464 else {
6565 let group = getMembers()
6666 let newGroup = ((group + ";") + memberAddress)
6767 let groupSize = tryGetInteger("dao_size")
6868 let newGroupSize = (groupSize + 1)
6969 WriteSet([DataEntry("dao_members", newGroup), DataEntry("dao_size", newGroupSize), DataEntry((("dao_member_" + memberAddress) + "_weight"), 1)])
7070 }
7171
7272
7373
7474 @Callable(i)
7575 func addGroupMember (memberAddress) = if (!(isOwner(i.caller)))
7676 then throw("access only to the DAO owner")
7777 else if ((tryGetInteger((("working_group_member_" + memberAddress) + "_weight")) == 1))
7878 then throw("This user already exists")
7979 else {
8080 let group = getGroup()
8181 let newGroup = ((group + ";") + memberAddress)
8282 let groupSize = tryGetInteger("working_group_size")
8383 let newGroupSize = (groupSize + 1)
8484 WriteSet([DataEntry("working_group_members", newGroup), DataEntry("working_group_size", newGroupSize), DataEntry((("working_group_member_" + memberAddress) + "_weight"), 1)])
8585 }
8686
8787
8888
8989 @Callable(i)
9090 func addTask (title,link) = if (!(isGroupMember(i.caller)))
9191 then throw("grants working group access only")
9292 else WriteSet([DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_title"), title), DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_link"), link)])
9393
9494
9595
9696 @Callable(i)
97-func addTaskDetails (taskId) = if (!(isGroupMember(i.caller)))
97+func addReward (taskId) = if (!(isGroupMember(i.caller)))
9898 then throw("grants working group access only")
9999 else {
100100 let reward = extract(i.payment).amount
101101 WriteSet([DataEntry((("tasks_" + taskId) + "_reward"), reward), DataEntry((("tasks_" + taskId) + "_status"), "proposed")])
102102 }
103103
104104
105105
106106 @Callable(i)
107107 func voteForTaskProposal (taskId,voteValue) = if (!(canMemberVote(i)))
108108 then throw("you can't vote")
109109 else if ((getStringValue(this, (("tasks_" + taskId) + "_status")) != "proposed"))
110110 then throw("voting is closed or not started")
111111 else if (if ((voteValue != "like"))
112112 then (voteValue != "dislike")
113113 else false)
114114 then throw("you need to vote like or dislike")
115115 else {
116116 func getValue (vote) = if ((vote == "like"))
117117 then 1
118118 else -1
119119
120120 let voteKey = ((("tasks_" + taskId) + "_voted_") + toString(i.caller))
121121 let previousVote = tryGetInteger(voteKey)
122122 if (!((previousVote == 0)))
123123 then throw("you have already voted")
124124 else {
125125 let votingKey = (("tasks_" + taskId) + "_voting_state")
126126 let votingState = tryGetInteger(votingKey)
127127 let votesAmountKey = (("tasks_" + taskId) + "_voting_amount")
128128 let votesAmountState = (tryGetInteger(votingKey) + 1)
129129 let newVotingState = (votingState + getValue(voteValue))
130130 ScriptResult(WriteSet([DataEntry(votingKey, newVotingState), DataEntry(voteKey, getValue(voteValue)), DataEntry(votesAmountKey, votesAmountState)]), TransferSet([ScriptTransfer(i.caller, 500000, unit)]))
131131 }
132132 }
133133
134134
135135
136136 @Callable(i)
137137 func finishTaskProposalVoting (taskId) = if ((QUORUM > ((tryGetInteger((("tasks_" + taskId) + "_voting_amount")) * 100) / tryGetInteger("dao_size"))))
138138 then throw((("more than " + toString(QUORUM)) + "% members have to vote before finishing the voting"))
139139 else if (!(isGroupMember(i.caller)))
140140 then throw("grants working group access only")
141141 else {
142142 let votingKey = (("tasks_" + taskId) + "_voting_state")
143143 let votingState = tryGetInteger(votingKey)
144144 if ((votingState > 0))
145145 then {
146146 let votingResult = "ready_to_apply"
147147 WriteSet([DataEntry((("tasks_" + taskId) + "_status"), votingResult)])
148148 }
149149 else {
150150 let votingResult = "rejected"
151151 WriteSet([DataEntry((("tasks_" + taskId) + "_status"), votingResult)])
152152 }
153153 }
154154
155155
156156
157157 @Callable(i)
158158 func applyForTask (taskId,teamName,link) = {
159159 let status = tryGetString((("tasks_" + taskId) + "_status"))
160160 if ((status != "ready_to_apply"))
161161 then throw("This grant has not yet been approved")
162162 else {
163163 let applicantKey = drop(toString(i.caller), 20)
164164 if ((tryGetString((((("tasks_" + taskId) + "_app_") + applicantKey) + "_name")) == teamName))
165165 then throw("commnad with name is exist")
166166 else {
167167 let listKey = (("tasks_" + taskId) + "_applicants")
168168 let currentApplicantsList = tryGetString(listKey)
169169 let newApplicantsList = ((currentApplicantsList + ";") + toString(i.caller))
170170 WriteSet([DataEntry((((("tasks_" + taskId) + "_app_") + applicantKey) + "_name"), teamName), DataEntry((((("tasks_" + taskId) + "_app_") + applicantKey) + "_link"), link), DataEntry((((("tasks_" + taskId) + "_app_") + applicantKey) + "_leader"), toString(i.caller)), DataEntry((((("tasks_" + taskId) + "_app_") + applicantKey) + "_id"), applicantKey), DataEntry(listKey, newApplicantsList)])
171171 }
172172 }
173173 }
174174
175175
176176
177177 @Callable(i)
178178 func voteForApplicant (taskId,teamIdentifier,voteValue) = if (!(canMemberVote(i)))
179179 then throw("you can't vote")
180180 else if ((tryGetString((("tasks_" + taskId) + "_status")) != "ready_to_apply"))
181181 then throw("voting is closed or not started")
182182 else if ((tryGetString((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_id")) != teamIdentifier))
183183 then throw("team is not found use id team on application")
184184 else if (if ((voteValue != "like"))
185185 then (voteValue != "dislike")
186186 else false)
187187 then throw("you need to vote like or dislike")
188188 else {
189189 func getValue (vote) = if ((vote == "like"))
190190 then 1
191191 else -1
192192
193193 let listKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_voted")
194194 let newApplicantsList = ((tryGetString(listKey) + ";") + toString(i.caller))
195195 let voteHash = (drop(toString(i.caller), 20) + teamIdentifier)
196196 let voteKey = ((("tasks_" + taskId) + "_vh_") + voteHash)
197197 if ((tryGetString(voteKey) == toString(i.caller)))
198198 then throw("you have already voted on this team")
199199 else {
200200 let teamVotesAmountKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_votes")
201201 let teamScoreKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_score")
202202 let teamVotesAmount = (1 + tryGetInteger(teamVotesAmountKey))
203203 let newTeamScore = (getValue(voteValue) + tryGetInteger(teamScoreKey))
204204 WriteSet([DataEntry(listKey, newApplicantsList), DataEntry(voteKey, toString(i.caller)), DataEntry(teamVotesAmountKey, teamVotesAmount), DataEntry(teamScoreKey, newTeamScore)])
205205 }
206206 }
207207
208208
209209
210210 @Callable(i)
211211 func finishApplicantsVoting (taskId) = {
212212 func isApplicantVotedEnough (aid,aid2) = {
213213 let listKey = (("tasks_" + taskId) + "_applicants")
214214 let applicantsList = split(getStringValue(this, listKey), ";")
215215 let teamIdentifier = applicantsList[aid]
216216 let teamVotesAmountKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_votes")
217217 let teamVotesAmount = tryGetInteger(teamVotesAmountKey)
218218 if ((teamVotesAmount > 0))
219219 then 1
220220 else throw(("not enough votes to make decision on " + teamIdentifier))
221221 }
222222
223223 func hasMoreVotes (aid,aid2) = {
224224 let listKey = (("tasks_" + taskId) + "_applicants")
225225 let applicantsList = split(getStringValue(this, listKey), ";")
226226 let teamIdentifier = applicantsList[aid]
227227 let teamVotesAmountKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_votes")
228228 let teamVotesAmount = tryGetInteger(teamVotesAmountKey)
229229 let team2Identifier = applicantsList[aid2]
230230 let team2VotesAmountKey = (((("tasks_" + taskId) + "_app_") + team2Identifier) + "_votes")
231231 let team2VotesAmount = tryGetInteger(team2VotesAmountKey)
232232 if ((teamVotesAmount > team2VotesAmount))
233233 then aid
234234 else aid2
235235 }
236236
237237 if (!(isGroupMember(i.caller)))
238238 then throw("grants working group access only")
239239 else {
240240 let listKeys = tryGetString((("tasks_" + taskId) + "_applicants"))
241241 let applicantsList = split(listKeys, ";")
242242 if ((size(applicantsList) == 0))
243243 then throw("No one has yet responded to the grant")
244244 else {
245245 let chosenTeamId = {
246- let $list1255612587 = [0, 1]
247- let $size1255612587 = size($list1255612587)
248- let $acc01255612587 = 0
249- if (($size1255612587 == 0))
250- then $acc01255612587
246+ let $list1255112582 = [0, 1]
247+ let $size1255112582 = size($list1255112582)
248+ let $acc01255112582 = 0
249+ if (($size1255112582 == 0))
250+ then $acc01255112582
251251 else {
252- let $acc11255612587 = hasMoreVotes($acc01255612587, $list1255612587[0])
253- if (($size1255612587 == 1))
254- then $acc11255612587
252+ let $acc11255112582 = hasMoreVotes($acc01255112582, $list1255112582[0])
253+ if (($size1255112582 == 1))
254+ then $acc11255112582
255255 else {
256- let $acc21255612587 = hasMoreVotes($acc11255612587, $list1255612587[1])
257- if (($size1255612587 == 2))
258- then $acc21255612587
256+ let $acc21255112582 = hasMoreVotes($acc11255112582, $list1255112582[1])
257+ if (($size1255112582 == 2))
258+ then $acc21255112582
259259 else {
260- let $acc31255612587 = hasMoreVotes($acc21255612587, $list1255612587[2])
260+ let $acc31255112582 = hasMoreVotes($acc21255112582, $list1255112582[2])
261261 throw("List size exceed 2")
262262 }
263263 }
264264 }
265265 }
266266 let teamIdentifier = drop(applicantsList[chosenTeamId], 20)
267267 WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "team_chosen"), DataEntry((("tasks_" + taskId) + "_performer"), teamIdentifier), DataEntry((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_process"), "can_begin")])
268268 }
269269 }
270270 }
271271
272272
273273
274274 @Callable(i)
275275 func startWork (taskId) = {
276276 let teamIdentifier = tryGetString((("tasks_" + taskId) + "_performer"))
277277 if ((tryGetString((("tasks_" + taskId) + "_status")) != "team_chosen"))
278278 then throw("team is not choosen")
279279 else if ((toString(i.caller) != tryGetString((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_leader"))))
280280 then throw("team leader only")
281281 else WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "work_started"), DataEntry((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_process"), "work_started")])
282282 }
283283
284284
285285
286286 @Callable(i)
287287 func rejectTask (taskId) = if (!(isGroupMember(i.caller)))
288288 then throw("grants working group access only")
289289 else WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "rejected")])
290290
291291
292292
293293 @Callable(i)
294294 func acceptWorkResult (taskId,reportLink) = if (!(isGroupMember(i.caller)))
295295 then throw("grants working group access only")
296296 else {
297297 let rewardAmount = tryGetInteger((("tasks_" + taskId) + "_reward"))
298298 let teamIdentifier = getStringValue(this, (("tasks_" + taskId) + "_performer"))
299299 let teamAddress = getStringValue(this, (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_leader"))
300300 ScriptResult(WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "work_finished"), DataEntry((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_process"), "work_finished"), DataEntry((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_report"), reportLink)]), TransferSet([ScriptTransfer(addressFromStringValue(teamAddress), rewardAmount, unit)]))
301301 }
302302
303303

github/deemru/w8io/026f985 
57.27 ms