tx · AhAQU4CwJvKCC9TLj94aCnwLAENgQVZgrBiQGZrHPZzL

3MvhwW8DRJqkZAHDJPMP7okZGfbFwxhBFEA:  -0.03000000 Waves

2020.10.25 22:29 [1236536] smart account 3MvhwW8DRJqkZAHDJPMP7okZGfbFwxhBFEA > SELF 0.00000000 Waves

{ "type": 13, "id": "AhAQU4CwJvKCC9TLj94aCnwLAENgQVZgrBiQGZrHPZzL", "fee": 3000000, "feeAssetId": null, "timestamp": 1603654130858, "version": 2, "chainId": 84, "sender": "3MvhwW8DRJqkZAHDJPMP7okZGfbFwxhBFEA", "senderPublicKey": "76gvXgrqX3zR94Q9hUBuZtUWuT2cUmehesJdF9UeuTFV", "proofs": [ "2xJ2NJsQ8sp2nyKDAwGDUbhN3tdu7pSMq1P8c35bvK2jv5qN6jSdaLbCgHp18ur3Nc9FX2G5DWShXJWW9GYBsJt8" ], "script": "base64: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aXN0BQAAAANhaWQEAAAAEnRlYW1Wb3Rlc0Ftb3VudEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAADnRlYW1JZGVudGlmaWVyAgAAAAZfdm90ZXMEAAAAD3RlYW1Wb3Rlc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABJ0ZWFtVm90ZXNBbW91bnRLZXkEAAAAD3RlYW0ySWRlbnRpZmllcgkAAZEAAAACBQAAAA5hcHBsaWNhbnRzTGlzdAUAAAAEYWlkMgQAAAATdGVhbTJWb3Rlc0Ftb3VudEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAFX2FwcF8FAAAAD3RlYW0ySWRlbnRpZmllcgIAAAAGX3ZvdGVzBAAAABB0ZWFtMlZvdGVzQW1vdW50CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAE3RlYW0yVm90ZXNBbW91bnRLZXkDCQAAZgAAAAIFAAAAD3RlYW1Wb3Rlc0Ftb3VudAUAAAAQdGVhbTJWb3Rlc0Ftb3VudAUAAAADYWlkBQAAAARhaWQyAwkBAAAAASEAAAABCQEAAAANaXNHcm91cE1lbWJlcgAAAAEIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAACBncmFudHMgd29ya2luZyBncm91cCBhY2Nlc3Mgb25seQQAAAAMY2hvc2VuVGVhbUlkBAAAAA8kbGlzdDEwMzg4MTA0MTkJAARMAAAAAgAAAAAAAAAAAAkABEwAAAACAAAAAAAAAAABBQAAAANuaWwEAAAADyRzaXplMTAzODgxMDQxOQkAAZAAAAABBQAAAA8kbGlzdDEwMzg4MTA0MTkEAAAADyRhY2MwMTAzODgxMDQxOQAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxMDM4ODEwNDE5AAAAAAAAAAAABQAAAA8kYWNjMDEwMzg4MTA0MTkEAAAADyRhY2MxMTAzODgxMDQxOQkBAAAADGhhc01vcmVWb3RlcwAAAAIFAAAADyRhY2MwMTAzODgxMDQxOQkAAZEAAAACBQAAAA8kbGlzdDEwMzg4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", "height": 1236536, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8dHwfZU563CxtsYFzzrhattK1vNZuAD3kc5mZtkFdTDx Next: 8f4fsPw6q4Kxer8sM8gpFGayDVZ16ZdHWgTXscAEmrEt Diff:
OldNewDifferences
175175 func voteForApplicant (taskId,teamIdentifier,voteValue) = if (!(canMemberVote(i)))
176176 then throw("you can't vote")
177177 else {
178- let voteHash = sha256(toBytes((toString(i.caller) + teamIdentifier)))
179- let voteKey = ((("tasks_" + taskId) + "_vote_") + toUtf8String(voteHash))
178+ let voteHash = toUtf8String(sha256(toBytes((toString(i.caller) + teamIdentifier))))
179+ 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")
222222 then throw("grants working group access only")
223223 else {
224224 let chosenTeamId = {
225- let $list1038910420 = [0, 1]
226- let $size1038910420 = size($list1038910420)
227- let $acc01038910420 = 0
228- if (($size1038910420 == 0))
229- then $acc01038910420
225+ let $list1038810419 = [0, 1]
226+ let $size1038810419 = size($list1038810419)
227+ let $acc01038810419 = 0
228+ if (($size1038810419 == 0))
229+ then $acc01038810419
230230 else {
231- let $acc11038910420 = hasMoreVotes($acc01038910420, $list1038910420[0])
232- if (($size1038910420 == 1))
233- then $acc11038910420
231+ let $acc11038810419 = hasMoreVotes($acc01038810419, $list1038810419[0])
232+ if (($size1038810419 == 1))
233+ then $acc11038810419
234234 else {
235- let $acc21038910420 = hasMoreVotes($acc11038910420, $list1038910420[1])
236- if (($size1038910420 == 2))
237- then $acc21038910420
235+ let $acc21038810419 = hasMoreVotes($acc11038810419, $list1038810419[1])
236+ if (($size1038810419 == 2))
237+ then $acc21038810419
238238 else {
239- let $acc31038910420 = hasMoreVotes($acc21038910420, $list1038910420[2])
239+ let $acc31038810419 = hasMoreVotes($acc21038810419, $list1038810419[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 = sha256(toBytes((toString(i.caller) + teamIdentifier)))
179- let voteKey = ((("tasks_" + taskId) + "_vote_") + toUtf8String(voteHash))
178+ let voteHash = toUtf8String(sha256(toBytes((toString(i.caller) + teamIdentifier))))
179+ 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 $list1038910420 = [0, 1]
226- let $size1038910420 = size($list1038910420)
227- let $acc01038910420 = 0
228- if (($size1038910420 == 0))
229- then $acc01038910420
225+ let $list1038810419 = [0, 1]
226+ let $size1038810419 = size($list1038810419)
227+ let $acc01038810419 = 0
228+ if (($size1038810419 == 0))
229+ then $acc01038810419
230230 else {
231- let $acc11038910420 = hasMoreVotes($acc01038910420, $list1038910420[0])
232- if (($size1038910420 == 1))
233- then $acc11038910420
231+ let $acc11038810419 = hasMoreVotes($acc01038810419, $list1038810419[0])
232+ if (($size1038810419 == 1))
233+ then $acc11038810419
234234 else {
235- let $acc21038910420 = hasMoreVotes($acc11038910420, $list1038910420[1])
236- if (($size1038910420 == 2))
237- then $acc21038910420
235+ let $acc21038810419 = hasMoreVotes($acc11038810419, $list1038810419[1])
236+ if (($size1038810419 == 2))
237+ then $acc21038810419
238238 else {
239- let $acc31038910420 = hasMoreVotes($acc21038910420, $list1038910420[2])
239+ let $acc31038810419 = hasMoreVotes($acc21038810419, $list1038810419[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 
66.58 ms