tx · 4bihSJuJu2cErafRnvibmDWvqMhhBdn9baeyYEN9MCTy

3MvhwW8DRJqkZAHDJPMP7okZGfbFwxhBFEA:  -0.03000000 Waves

2020.10.25 23:02 [1236569] smart account 3MvhwW8DRJqkZAHDJPMP7okZGfbFwxhBFEA > SELF 0.00000000 Waves

{ "type": 13, "id": "4bihSJuJu2cErafRnvibmDWvqMhhBdn9baeyYEN9MCTy", "fee": 3000000, "feeAssetId": null, "timestamp": 1603656152347, "version": 2, "chainId": 84, "sender": "3MvhwW8DRJqkZAHDJPMP7okZGfbFwxhBFEA", "senderPublicKey": "76gvXgrqX3zR94Q9hUBuZtUWuT2cUmehesJdF9UeuTFV", "proofs": [ "3a3Aj93rLaTgGCPLQrHerByKzq4sG8Jx3q4guUo4roWZVK3G34qmGExDcQMvzyDwjwUT5jmPtb2PrrTAGPiL16EP" ], "script": "base64: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cHBsaWNhbnRzTGlzdAUAAAADYWlkBAAAABJ0ZWFtVm90ZXNBbW91bnRLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAA50ZWFtSWRlbnRpZmllcgIAAAAGX3ZvdGVzBAAAAA90ZWFtVm90ZXNBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAASdGVhbVZvdGVzQW1vdW50S2V5BAAAAA90ZWFtMklkZW50aWZpZXIJAAGRAAAAAgUAAAAOYXBwbGljYW50c0xpc3QFAAAABGFpZDIEAAAAE3RlYW0yVm90ZXNBbW91bnRLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGdGFza3NfBQAAAAZ0YXNrSWQCAAAABV9hcHBfBQAAAA90ZWFtMklkZW50aWZpZXICAAAABl92b3RlcwQAAAAQdGVhbTJWb3Rlc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABN0ZWFtMlZvdGVzQW1vdW50S2V5AwkAAGYAAAACBQAAAA90ZWFtVm90ZXNBbW91bnQFAAAAEHRlYW0yVm90ZXNBbW91bnQFAAAAA2FpZAUAAAAEYWlkMgMJAQAAAAEhAAAAAQkBAAAADWlzR3JvdXBNZW1iZXIAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAgZ3JhbnRzIHdvcmtpbmcgZ3JvdXAgYWNjZXNzIG9ubHkEAAAADGNob3NlblRlYW1JZAQAAAAPJGxpc3QxMDM3NjEwNDA3CQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsBAAAAA8kc2l6ZTEwMzc2MTA0MDcJAAGQAAAAAQUAAAAPJGxpc3QxMDM3NjEwNDA3BAAAAA8kYWNjMDEwMzc2MTA0MDcAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTAzNzYxMDQwNwAAAAAAAAAAAAUAAAAPJGFjYzAxMDM3NjEwNDA3BAAAAA8kYWNjMTEwMzc2MTA0MDcJAQAAAAxoYXNNb3JlVm90ZXMAAAACBQAAAA8kYWNjMDEwMzc2MTA0MDcJAAGRAAAAAgUAAAAP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", "height": 1236569, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 83gbBn4a238wP6AdqsNQdCSqpAzd84FEkNqdcSN46DaD Next: none Diff:
OldNewDifferences
175175 func voteForApplicant (taskId,teamIdentifier,voteValue) = if (!(canMemberVote(i)))
176176 then throw("you can't vote")
177177 else {
178- let voteHash = ((drop(toString(i.caller), 25) + "---") + drop(teamIdentifier, 25))
178+ let voteHash = (drop(toString(i.caller), 25) + drop(teamIdentifier, 25))
179179 let voteKey = ((("tasks_" + taskId) + "_vote_") + voteHash)
180180 let vote = tryGetInteger(voteKey)
181181 if ((vote != 0))
222222 then throw("grants working group access only")
223223 else {
224224 let chosenTeamId = {
225- let $list1038410415 = [0, 1]
226- let $size1038410415 = size($list1038410415)
227- let $acc01038410415 = 0
228- if (($size1038410415 == 0))
229- then $acc01038410415
225+ let $list1037610407 = [0, 1]
226+ let $size1037610407 = size($list1037610407)
227+ let $acc01037610407 = 0
228+ if (($size1037610407 == 0))
229+ then $acc01037610407
230230 else {
231- let $acc11038410415 = hasMoreVotes($acc01038410415, $list1038410415[0])
232- if (($size1038410415 == 1))
233- then $acc11038410415
231+ let $acc11037610407 = hasMoreVotes($acc01037610407, $list1037610407[0])
232+ if (($size1037610407 == 1))
233+ then $acc11037610407
234234 else {
235- let $acc21038410415 = hasMoreVotes($acc11038410415, $list1038410415[1])
236- if (($size1038410415 == 2))
237- then $acc21038410415
235+ let $acc21037610407 = hasMoreVotes($acc11037610407, $list1037610407[1])
236+ if (($size1037610407 == 2))
237+ then $acc21037610407
238238 else {
239- let $acc31038410415 = hasMoreVotes($acc21038410415, $list1038410415[2])
239+ let $acc31037610407 = hasMoreVotes($acc21037610407, $list1037610407[2])
240240 throw("List size exceed 2")
241241 }
242242 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let QUORUM = 50
55
66 let WCTid = base58'4zfrrwDVjbGFM8wxbZGriVLY4XJsVD4oNMp21FnDnMAa'
77
88 func tryGetInteger (key) = {
99 let val = match getInteger(this, key) {
1010 case b: Int =>
1111 b
1212 case _ =>
1313 0
1414 }
1515 val
1616 }
1717
1818
1919 func isOwner (address) = (address == this)
2020
2121
2222 func getGroup () = {
2323 let val = match getString(this, "working_group") {
2424 case b: String =>
2525 b
2626 case _ =>
2727 ""
2828 }
2929 val
3030 }
3131
3232
3333 func getMembers () = {
3434 let val = match getString(this, "dao_members") {
3535 case b: String =>
3636 b
3737 case _ =>
3838 ""
3939 }
4040 val
4141 }
4242
4343
4444 func isGroupMember (a) = (tryGetInteger((("working_group_member_" + toString(a)) + "_weight")) > 0)
4545
4646
4747 func canMemberVote (i) = (tryGetInteger((("dao_member_" + toString(i.caller)) + "_weight")) > 0)
4848
4949
5050 @Callable(i)
5151 func addDAOMember (memberAddress) = if (!(isOwner(i.caller)))
5252 then throw("access only to the DAO owner")
5353 else {
5454 let group = getMembers()
5555 let newGroup = ((group + ";") + memberAddress)
5656 let groupSize = tryGetInteger("dao_size")
5757 let newGroupSize = (groupSize + 1)
5858 WriteSet([DataEntry("dao_members", newGroup), DataEntry("dao_size", newGroupSize), DataEntry((("dao_member_" + memberAddress) + "_weight"), 1)])
5959 }
6060
6161
6262
6363 @Callable(i)
6464 func addGroupMember (memberAddress) = if (!(isOwner(i.caller)))
6565 then throw("access only to the DAO owner")
6666 else {
6767 let group = getGroup()
6868 let newGroup = ((group + ";") + memberAddress)
6969 let groupSize = tryGetInteger("working_group_size")
7070 let newGroupSize = (groupSize + 1)
7171 WriteSet([DataEntry("working_group_name", newGroup), DataEntry("working_group_size", newGroupSize), DataEntry((("working_group_member_" + memberAddress) + "_weight"), 1)])
7272 }
7373
7474
7575
7676 @Callable(i)
7777 func addTask (title) = if (!(isGroupMember(i.caller)))
7878 then throw("grants working group access only")
7979 else WriteSet([DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_title"), title)])
8080
8181
8282
8383 @Callable(i)
8484 func rateTask (taskId,rate) = if (!(if ((rate == 1))
8585 then true
8686 else (rate == -1)))
8787 then throw("your rate needs to be +1 or -1")
8888 else {
8989 let pmt = extract(i.payment)
9090 if ((pmt.assetId != WCTid))
9191 then throw("you need to vote using WCT")
9292 else {
9393 let weight = pmt.amount
9494 let vote = (rate * weight)
9595 let previousRate = tryGetInteger((("tasks_" + taskId) + "_community_rate"))
9696 ScriptResult(WriteSet([DataEntry((("tasks_" + taskId) + "_community_rate"), (previousRate + vote))]), TransferSet([ScriptTransfer(i.caller, pmt.amount, pmt.assetId)]))
9797 }
9898 }
9999
100100
101101
102102 @Callable(i)
103103 func addTaskDetails (taskId) = if (!(isGroupMember(i.caller)))
104104 then throw("grants working group access only")
105105 else {
106106 let reward = extract(i.payment).amount
107107 WriteSet([DataEntry((("tasks_" + taskId) + "_reward"), reward), DataEntry((("tasks_" + taskId) + "_status"), "proposed")])
108108 }
109109
110110
111111
112112 @Callable(i)
113113 func voteForTaskProposal (taskId,voteValue) = if (!(canMemberVote(i)))
114114 then throw("you can't vote")
115115 else if ((getStringValue(this, (("tasks_" + taskId) + "_status")) != "proposed"))
116116 then throw("voting is closed or not started")
117117 else if (if ((voteValue != -1))
118118 then (voteValue != 1)
119119 else false)
120120 then throw("you need to vote 1 or -1")
121121 else {
122122 let voteKey = ((("tasks_" + taskId) + "_voted_") + toString(i.caller))
123123 let previousVote = tryGetInteger(voteKey)
124124 if (!((previousVote == 0)))
125125 then throw("you have already voted")
126126 else {
127127 let votingKey = (("tasks_" + taskId) + "_voting_state")
128128 let votingState = tryGetInteger(votingKey)
129129 let votesAmountKey = (("tasks_" + taskId) + "_voting_amount")
130130 let votesAmountState = (tryGetInteger(votingKey) + 1)
131131 let newVotingState = (votingState + voteValue)
132132 ScriptResult(WriteSet([DataEntry(votingKey, newVotingState), DataEntry(voteKey, voteValue), DataEntry(votesAmountKey, votesAmountState)]), TransferSet([ScriptTransfer(i.caller, 500000, unit)]))
133133 }
134134 }
135135
136136
137137
138138 @Callable(i)
139139 func finishTaskProposalVoting (taskId) = if ((QUORUM > ((tryGetInteger((("tasks_" + taskId) + "_voting_amount")) * 100) / tryGetInteger("dao_size"))))
140140 then throw((("more than " + toString(QUORUM)) + "% members have to vote before finishing the voting"))
141141 else if (!(isGroupMember(i.caller)))
142142 then throw("grants working group access only")
143143 else {
144144 let votingKey = (("tasks_" + taskId) + "_voting_state")
145145 let votingState = tryGetInteger(votingKey)
146146 if ((votingState > 0))
147147 then {
148148 let votingResult = "ready_to_apply"
149149 WriteSet([DataEntry((("tasks_" + taskId) + "_status"), votingResult)])
150150 }
151151 else {
152152 let votingResult = "rejected"
153153 WriteSet([DataEntry((("tasks_" + taskId) + "_status"), votingResult)])
154154 }
155155 }
156156
157157
158158
159159 @Callable(i)
160160 func applyForTask (taskId,teamName) = {
161161 let listKey = (("tasks_" + taskId) + "_applicants")
162162 let currentApplicantsList = match getString(this, listKey) {
163163 case b: String =>
164164 b
165165 case _ =>
166166 ""
167167 }
168168 let newApplicantsList = ((currentApplicantsList + ";") + toString(i.caller))
169169 WriteSet([DataEntry((((("tasks_" + taskId) + "_app_") + toString(i.caller)) + "_name"), teamName), DataEntry((((("tasks_" + taskId) + "_app_") + toString(i.caller)) + "_leader"), toString(i.caller)), DataEntry(listKey, newApplicantsList)])
170170 }
171171
172172
173173
174174 @Callable(i)
175175 func voteForApplicant (taskId,teamIdentifier,voteValue) = if (!(canMemberVote(i)))
176176 then throw("you can't vote")
177177 else {
178- let voteHash = ((drop(toString(i.caller), 25) + "---") + drop(teamIdentifier, 25))
178+ let voteHash = (drop(toString(i.caller), 25) + drop(teamIdentifier, 25))
179179 let voteKey = ((("tasks_" + taskId) + "_vote_") + voteHash)
180180 let vote = tryGetInteger(voteKey)
181181 if ((vote != 0))
182182 then throw("you have already voted on this team")
183183 else {
184184 let teamVotesAmountKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_votes")
185185 let teamScoreKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_score")
186186 let teamVotesAmount = (1 + tryGetInteger(teamVotesAmountKey))
187187 let newTeamScore = (voteValue + tryGetInteger(teamScoreKey))
188188 WriteSet([DataEntry(voteKey, voteValue), DataEntry(teamScoreKey, newTeamScore)])
189189 }
190190 }
191191
192192
193193
194194 @Callable(i)
195195 func finishApplicantsVoting (taskId) = {
196196 func isApplicantVotedEnough (aid,aid2) = {
197197 let listKey = (("tasks_" + taskId) + "_applicants")
198198 let applicantsList = split(getStringValue(this, listKey), ";")
199199 let teamIdentifier = applicantsList[aid]
200200 let teamVotesAmountKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_votes")
201201 let teamVotesAmount = tryGetInteger(teamVotesAmountKey)
202202 if ((teamVotesAmount > 0))
203203 then 1
204204 else throw(("not enough votes to make decision on " + teamIdentifier))
205205 }
206206
207207 func hasMoreVotes (aid,aid2) = {
208208 let listKey = (("tasks_" + taskId) + "_applicants")
209209 let applicantsList = split(getStringValue(this, listKey), ";")
210210 let teamIdentifier = applicantsList[aid]
211211 let teamVotesAmountKey = (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_votes")
212212 let teamVotesAmount = tryGetInteger(teamVotesAmountKey)
213213 let team2Identifier = applicantsList[aid2]
214214 let team2VotesAmountKey = (((("tasks_" + taskId) + "_app_") + team2Identifier) + "_votes")
215215 let team2VotesAmount = tryGetInteger(team2VotesAmountKey)
216216 if ((teamVotesAmount > team2VotesAmount))
217217 then aid
218218 else aid2
219219 }
220220
221221 if (!(isGroupMember(i.caller)))
222222 then throw("grants working group access only")
223223 else {
224224 let chosenTeamId = {
225- let $list1038410415 = [0, 1]
226- let $size1038410415 = size($list1038410415)
227- let $acc01038410415 = 0
228- if (($size1038410415 == 0))
229- then $acc01038410415
225+ let $list1037610407 = [0, 1]
226+ let $size1037610407 = size($list1037610407)
227+ let $acc01037610407 = 0
228+ if (($size1037610407 == 0))
229+ then $acc01037610407
230230 else {
231- let $acc11038410415 = hasMoreVotes($acc01038410415, $list1038410415[0])
232- if (($size1038410415 == 1))
233- then $acc11038410415
231+ let $acc11037610407 = hasMoreVotes($acc01037610407, $list1037610407[0])
232+ if (($size1037610407 == 1))
233+ then $acc11037610407
234234 else {
235- let $acc21038410415 = hasMoreVotes($acc11038410415, $list1038410415[1])
236- if (($size1038410415 == 2))
237- then $acc21038410415
235+ let $acc21037610407 = hasMoreVotes($acc11037610407, $list1037610407[1])
236+ if (($size1037610407 == 2))
237+ then $acc21037610407
238238 else {
239- let $acc31038410415 = hasMoreVotes($acc21038410415, $list1038410415[2])
239+ let $acc31037610407 = hasMoreVotes($acc21037610407, $list1037610407[2])
240240 throw("List size exceed 2")
241241 }
242242 }
243243 }
244244 }
245245 let listKey = (("tasks_" + taskId) + "_applicants")
246246 let applicantsList = split(getStringValue(this, listKey), ";")
247247 let teamIdentifier = applicantsList[chosenTeamId]
248248 WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "team_chosen"), DataEntry((("tasks_" + taskId) + "_performer"), teamIdentifier), DataEntry((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_process"), "can_begin")])
249249 }
250250 }
251251
252252
253253
254254 @Callable(i)
255255 func startWork (taskId) = {
256256 let teamIdentifier = getStringValue(this, (("tasks_" + taskId) + "_performer"))
257257 if ((toString(i.caller) != getStringValue(this, (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_leader"))))
258258 then throw("team leader only")
259259 else WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "work_started"), DataEntry((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_process"), "work_started")])
260260 }
261261
262262
263263
264264 @Callable(i)
265265 func acceptWorkResult (taskId) = if (!(isGroupMember(i.caller)))
266266 then throw("grants working group access only")
267267 else {
268268 let rewardAmount = tryGetInteger((("tasks_" + taskId) + "_reward"))
269269 let teamIdentifier = getStringValue(this, (("tasks_" + taskId) + "_performer"))
270270 let teamAddress = getStringValue(this, (((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_leader"))
271271 ScriptResult(WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "work_finished"), DataEntry((((("tasks_" + taskId) + "_app_") + teamIdentifier) + "_process"), "work_finished")]), TransferSet([ScriptTransfer(addressFromStringValue(teamAddress), rewardAmount, unit)]))
272272 }
273273
274274

github/deemru/w8io/3ef1775 
67.44 ms