tx · EdN4XkNhNBPYH5QTHKHdvMdPZEtHPZPm7cckqzmkXUGr

3MtV1AQ8fEPk76tjKgvrufuMe5aA3q4TviQ:  -0.10000000 Waves

2020.12.23 03:17 [1320609] smart account 3MtV1AQ8fEPk76tjKgvrufuMe5aA3q4TviQ > SELF 0.00000000 Waves

{ "type": 13, "id": "EdN4XkNhNBPYH5QTHKHdvMdPZEtHPZPm7cckqzmkXUGr", "fee": 10000000, "feeAssetId": null, "timestamp": 1608682661723, "version": 2, "chainId": 84, "sender": "3MtV1AQ8fEPk76tjKgvrufuMe5aA3q4TviQ", "senderPublicKey": "3Fjao2FW1JXSPd5EkP7C3uerW18HYacYsaMYALFMGA6N", "proofs": [ "MLsEZWBKMpPfhtetwMUhF3DdT2S6YL7ZdVFm4G6YDDVUEsFtoUgM973cf3ZrKgPRM3xnoocRRs4efkB8H5L9MSS" ], "script": "base64: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", "height": 1320609, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9YzTnJv9ZLgGknEmWzFc1NuyoTc7uJ3k392v4okXsF94 Next: BgmKiWmR4H9ptMk9tKEuBcQh29Qj94XADezJ1gzN8Ntx Diff:
OldNewDifferences
9595 else throw("you need to vote with 'like' or 'dislike' value")
9696
9797
98+func initTaskVotingConditions (taskId,address) = if (isGroupMember(address))
99+ then throw("grants working group access only")
100+ else if ((tryGetString((("tasks_" + taskId) + "_status")) != ""))
101+ then throw("task is not new")
102+ else true
103+
104+
98105 func startWorkConditions (taskId,address) = if ((tryGetString((("tasks_" + taskId) + "_status")) != "approved"))
99106 then throw("the task is not approved")
100107 else if ((toString(address) != tryGetString((("tasks_" + taskId) + "_leader"))))
127134 else true
128135
129136
137+func acceptWorkResultConditions (address) = if (!(isGroupMember(address)))
138+ then throw("grants working group access only")
139+ else true
140+
141+
130142 @Callable(i)
131143 func addTask (title,link) = WriteSet([DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_title"), title), DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_link"), link), DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_leader"), toString(i.caller))])
132144
140152
141153
142154 @Callable(i)
143-func initTaskVoting (taskId) = if (isGroupMember(i.caller))
155+func initTaskVoting (taskId) = if (initTaskVotingConditions(taskId, i.caller))
144156 then WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "voting_started")])
145- else throw("grants working group access only")
157+ else throw("checks are not passed")
146158
147159
148160
182194
183195
184196 @Callable(i)
185-func rejectTask (taskId) = if (!(isGroupMember(i.caller)))
186- then throw("grants working group access only")
187- else WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "rejected")])
197+func rejectTask (taskId) = if (isGroupMember(i.caller))
198+ then WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "rejected")])
199+ else throw("grants working group access only")
188200
189201
190202
191203 @Callable(i)
192-func acceptWorkResult (taskId,reportLink) = if (!(isGroupMember(i.caller)))
193- then throw("grants working group access only")
194- else {
204+func acceptWorkResult (taskId,reportLink) = if (acceptWorkResultConditions(i.caller))
205+ then {
195206 let rewardAmount = tryGetInteger((("tasks_" + taskId) + "_reward"))
196207 let teamAddress = getStringValue(this, (("tasks_" + taskId) + "_leader"))
197208 ScriptResult(WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "work_finished"), DataEntry((("tasks_" + taskId) + "_report"), reportLink)]), TransferSet([ScriptTransfer(addressFromStringValue(teamAddress), rewardAmount, unit)]))
198209 }
210+ else throw("grants working group access only")
199211
200212
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 let mainContract = addressFromStringValue("3MwRzi2BmqZZXWrCGCwcRQLsnic2Aod6zhS")
2929
3030 func getGroup () = {
3131 let val = match getString(mainContract, "working_group_members") {
3232 case b: String =>
3333 b
3434 case _ =>
3535 ""
3636 }
3737 val
3838 }
3939
4040
4141 func getMembers () = {
4242 let val = match getString(mainContract, "dao_members") {
4343 case b: String =>
4444 b
4545 case _ =>
4646 ""
4747 }
4848 val
4949 }
5050
5151
5252 func getDAOSize () = {
5353 let val = match getInteger(mainContract, "dao_size") {
5454 case b: Int =>
5555 b
5656 case _ =>
5757 0
5858 }
5959 val
6060 }
6161
6262
6363 func isGroupMember (a) = {
6464 let val = match getInteger(mainContract, (("working_group_member_" + toString(a)) + "_weight")) {
6565 case b: Int =>
6666 b
6767 case _ =>
6868 0
6969 }
7070 (val > 0)
7171 }
7272
7373
7474 func canMemberVote (i) = {
7575 let val = match getInteger(mainContract, (("dao_member_" + toString(i.caller)) + "_weight")) {
7676 case b: Int =>
7777 b
7878 case _ =>
7979 0
8080 }
8181 (val > 0)
8282 }
8383
8484
8585 func isVotingDisable (taskId) = (tryGetString((("tasks_" + taskId) + "_status")) != "voting_started")
8686
8787
8888 func isQuorumAchieved (taskId) = (QUORUM > ((tryGetInteger((("tasks_" + taskId) + "_voting_amount")) * 100) / getDAOSize()))
8989
9090
9191 func getVoteValue (s) = if ((s == "like"))
9292 then 1
9393 else if ((s == "dislike"))
9494 then -1
9595 else throw("you need to vote with 'like' or 'dislike' value")
9696
9797
98+func initTaskVotingConditions (taskId,address) = if (isGroupMember(address))
99+ then throw("grants working group access only")
100+ else if ((tryGetString((("tasks_" + taskId) + "_status")) != ""))
101+ then throw("task is not new")
102+ else true
103+
104+
98105 func startWorkConditions (taskId,address) = if ((tryGetString((("tasks_" + taskId) + "_status")) != "approved"))
99106 then throw("the task is not approved")
100107 else if ((toString(address) != tryGetString((("tasks_" + taskId) + "_leader"))))
101108 then throw("team leader only")
102109 else true
103110
104111
105112 func addRewardConditions (taskId,reward,address) = if ((tryGetString((("tasks_" + taskId) + "_status")) != ""))
106113 then throw("voting was already started, so the reward amount cannot be changed")
107114 else if ((toString(address) != tryGetString((("tasks_" + taskId) + "_leader"))))
108115 then throw("team leader only")
109116 else true
110117
111118
112119 func voteForTaskProposalConditions (taskId,i) = if (!(canMemberVote(i)))
113120 then throw("you can't vote")
114121 else if (isVotingDisable(taskId))
115122 then throw("voting is closed or not started")
116123 else if (!((tryGetInteger(((("tasks_" + taskId) + "_voted_") + toString(i.caller))) == 0)))
117124 then throw("you have already voted")
118125 else true
119126
120127
121128 func finishTaskProposalVotingConditions (taskId,address) = if ((tryGetString((("tasks_" + taskId) + "_status")) != "voting_started"))
122129 then throw("voting is not active")
123130 else if (isQuorumAchieved(taskId))
124131 then throw((("more than " + toString(QUORUM)) + "% members have to vote before finishing the voting"))
125132 else if (!(isGroupMember(address)))
126133 then throw("grants working group access only")
127134 else true
128135
129136
137+func acceptWorkResultConditions (address) = if (!(isGroupMember(address)))
138+ then throw("grants working group access only")
139+ else true
140+
141+
130142 @Callable(i)
131143 func addTask (title,link) = WriteSet([DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_title"), title), DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_link"), link), DataEntry((("tasks_" + toBase58String(i.transactionId)) + "_leader"), toString(i.caller))])
132144
133145
134146
135147 @Callable(i)
136148 func addReward (taskId,reward) = if (addRewardConditions(taskId, reward, i.caller))
137149 then WriteSet([DataEntry((("tasks_" + taskId) + "_reward"), reward)])
138150 else throw("checks are not passed")
139151
140152
141153
142154 @Callable(i)
143-func initTaskVoting (taskId) = if (isGroupMember(i.caller))
155+func initTaskVoting (taskId) = if (initTaskVotingConditions(taskId, i.caller))
144156 then WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "voting_started")])
145- else throw("grants working group access only")
157+ else throw("checks are not passed")
146158
147159
148160
149161 @Callable(i)
150162 func voteForTaskProposal (taskId,voteValueString) = if (voteForTaskProposalConditions(taskId, i))
151163 then {
152164 let voteKey = ((("tasks_" + taskId) + "_voted_") + toString(i.caller))
153165 let votingKey = (("tasks_" + taskId) + "_voting_state")
154166 let votesAmountKey = (("tasks_" + taskId) + "_voting_amount")
155167 let voteValue = getVoteValue(voteValueString)
156168 let votingState = tryGetInteger(votingKey)
157169 let votesAmountState = (tryGetInteger(votesAmountKey) + 1)
158170 WriteSet([DataEntry(votingKey, (votingState + voteValue)), DataEntry(voteKey, voteValue), DataEntry(votesAmountKey, votesAmountState)])
159171 }
160172 else throw("checks are not passed")
161173
162174
163175
164176 @Callable(i)
165177 func finishTaskProposalVoting (taskId) = if (finishTaskProposalVotingConditions(taskId, i.caller))
166178 then {
167179 let statusKey = (("tasks_" + taskId) + "_status")
168180 let votingKey = (("tasks_" + taskId) + "_voting_state")
169181 WriteSet([DataEntry(statusKey, if ((tryGetInteger(votingKey) > 0))
170182 then "approved"
171183 else "rejected")])
172184 }
173185 else throw("checks are not passed")
174186
175187
176188
177189 @Callable(i)
178190 func startWork (taskId) = if (startWorkConditions(taskId, i.caller))
179191 then WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "work_started")])
180192 else throw("checks are not passed")
181193
182194
183195
184196 @Callable(i)
185-func rejectTask (taskId) = if (!(isGroupMember(i.caller)))
186- then throw("grants working group access only")
187- else WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "rejected")])
197+func rejectTask (taskId) = if (isGroupMember(i.caller))
198+ then WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "rejected")])
199+ else throw("grants working group access only")
188200
189201
190202
191203 @Callable(i)
192-func acceptWorkResult (taskId,reportLink) = if (!(isGroupMember(i.caller)))
193- then throw("grants working group access only")
194- else {
204+func acceptWorkResult (taskId,reportLink) = if (acceptWorkResultConditions(i.caller))
205+ then {
195206 let rewardAmount = tryGetInteger((("tasks_" + taskId) + "_reward"))
196207 let teamAddress = getStringValue(this, (("tasks_" + taskId) + "_leader"))
197208 ScriptResult(WriteSet([DataEntry((("tasks_" + taskId) + "_status"), "work_finished"), DataEntry((("tasks_" + taskId) + "_report"), reportLink)]), TransferSet([ScriptTransfer(addressFromStringValue(teamAddress), rewardAmount, unit)]))
198209 }
210+ else throw("grants working group access only")
199211
200212

github/deemru/w8io/3ef1775 
52.15 ms