2021.10.11 16:50 [2806670] smart account 3PPPep1YYKkq7hbrjb1ATLPyXhJh9oZRdJX > SELF 0.00000000 Waves

{ "type": 13, "id": "4QckAZRHPCGchDCKnZzd9VF532KLqv33QTLwhk9fw67b", "fee": 1000000, "feeAssetId": null, "timestamp": 1633960227905, "version": 2, "chainId": 87, "sender": "3PPPep1YYKkq7hbrjb1ATLPyXhJh9oZRdJX", "senderPublicKey": "4YZsuRk6CwpbNpEbHoiCDVqeQg5ddn1kBnrcdyQ731mE", "proofs": [ "7ogb6sBJpr4yQozK8QJ3LFnr7oj8fjgCrk93BNNFm8v31jUFCt4n2L916KpQaqi484EtUw6Jkj3BgRtBoMB8FXK" ], "script": "base64:AAIFAAAAAAAAACoIAhIAEgkKBwgICAgICAgSBAoCCAgSAwoBCBIECgIICBIDCgEIEgMKAQgAAAAPAAAAAAxtYWluQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQRmNRdEt1NHUxY0RkRmFZa2NUV0YzN3JwcXRTUVVHQkJ6AAAAAAZRVU9SVU0AAAAAAAAAAB4BAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABQAAAAN2YWwBAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAN2YWwEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAUAAAADdmFsAQAAAAdpc093bmVyAAAAAQAAAAdhZGRyZXNzCQAAAAAAAAIFAAAAB2FkZHJlc3MFAAAABHRoaXMBAAAACGdldEdyb3VwAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADG1haW5Db250cmFjdAIAAAAVd29ya2luZ19ncm91cF9tZW1iZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAUAAAADdmFsAQAAAApnZXRNZW1iZXJzAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADG1haW5Db250cmFjdAIAAAALZGFvX21lbWJlcnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAABQAAAAN2YWwBAAAACmdldERBT1NpemUAAAAABAAAAAN2YWwEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAMbWFpbkNvbnRyYWN0AgAAAAhkYW9fc2l6ZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABQAAAAN2YWwBAAAADWlzR3JvdXBNZW1iZXIAAAABAAAAAWEEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAxtYWluQ29udHJhY3QJAAEsAAAAAgkAASwAAAACAgAAABV3b3JraW5nX2dyb3VwX21lbWJlcl8JAAQlAAAAAQUAAAABYQIAAAAHX3dlaWdodAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAACQAAZgAAAAIFAAAAA3ZhbAAAAAAAAAAAAAEAAAANY2FuTWVtYmVyVm90ZQAAAAEAAAAHYWRkcmVzcwQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAADG1haW5Db250cmFjdAkAASwAAAACCQABLAAAAAICAAAAC2Rhb19tZW1iZXJfCQAEJQAAAAEFAAAAB2FkZHJlc3MCAAAAB193ZWlnaHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgAAAAAAAAAAAAkAAGYAAAACBQAAAAN2YWwAAAAAAAAAAAABAAAADGdldFZvdGVWYWx1ZQAAAAEAAAABcwMJAAAAAAAAAgUAAAABcwIAAAAEbGlrZQAAAAAAAAAAAQMJAAAAAAAAAgUAAAABcwIAAAAHZGlzbGlrZQD//////////wkAAAIAAAABAgAAAC95b3UgbmVlZCB0byB2b3RlIHdpdGggJ2xpa2UnIG9yICdkaXNsaWtlJyB2YWx1ZQEAAAARYWRkVGFza0NvbmRpdGlvbnMAAAABAAAAB2FkZHJlc3MDCQEAAAABIQAAAAEJAQAAAA1pc0dyb3VwTWVtYmVyAAAAAQUAAAAHYWRkcmVzcwkAAAIAAAABAgAAACBncmFudHMgd29ya2luZyBncm91cCBhY2Nlc3Mgb25seQYBAAAAE2FkZFJld2FyZENvbmRpdGlvbnMAAAACAAAAB2FkZHJlc3MAAAAGdGFza0lkAwkBAAAAASEAAAABCQEAAAANaXNHcm91cE1lbWJlcgAAAAEFAAAAB2FkZHJlc3MJAAACAAAAAQIAAAAgZ3JhbnRzIHdvcmtpbmcgZ3JvdXAgYWNjZXNzIG9ubHkDCQEAAAACIT0AAAACCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzAgAAAAAJAAACAAAAAQIAAAAPZ3JhbnQgaXNuYHQgbmV3BgEAAAAddm90ZUZvclRhc2tQcm9wb3NhbENvbmRpdGlvbnMAAAACAAAAB2FkZHJlc3MAAAAGdGFza0lkAwkBAAAAASEAAAABCQEAAAANY2FuTWVtYmVyVm90ZQAAAAEFAAAAB2FkZHJlc3MJAAACAAAAAQIAAAAOeW91IGNhbid0IHZvdGUDCQEAAAACIT0AAAACCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAAdfc3RhdHVzAgAAAAhwcm9wb3NlZAkAAAIAAAABAgAAAB92b3RpbmcgaXMgY2xvc2VkIG9yIG5vdCBzdGFydGVkAwkBAAAAAiE9AAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3ZvdGVkXwkABCUAAAABBQAAAAdhZGRyZXNzAAAAAAAAAAAACQAAAgAAAAECAAAAFnlvdSBoYXZlIGFscmVhZHkgdm90ZWQGAQAAACJmaW5pc2hUYXNrUHJvcG9zYWxWb3RpbmdDb25kaXRpb25zAAAAAgAAAAdhZGRyZXNzAAAABnRhc2tJZAMJAQAAAAEhAAAAAQkBAAAADWlzR3JvdXBNZW1iZXIAAAABBQAAAAdhZGRyZXNzCQAAAgAAAAECAAAAIGdyYW50cyB3b3JraW5nIGdyb3VwIGFjY2VzcyBvbmx5AwkBAAAAAiE9AAAAAgkBAAAADHRyeUdldFN0cmluZwAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZ0YXNrc18FAAAABnRhc2tJZAIAAAAHX3N0YXR1cwIAAAAIcHJvcG9zZWQJAAACAAAAAQIAAAAUdm90aW5nIGlzIG5vdCBhY3RpdmUDCQAAZgAAAAIFAAAABlFVT1JVTQkAAGkAAAACCQAAaAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnRhc2tzXwUAAAAGdGFza0lkAgAAAA5fdm90aW5nX2Ftb3VudAAAAAAAAAAAZAkBAAAACmdldERBT1NpemUAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAptb3JlIHRoYW4gCQABpAAAAAEFAAAABlFVT1JVTQIAAAAyJSBtZW1iZXJzIGhhdmUgdG8gdm90ZSBiZWZvcmUgZmluaXNoaW5nIHRoZSB2b3RpbmcGAAAABwAAAAFpAQAAAAxpbml0Q29udHJhY3QAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAHmRhdGFfcHJvdmlkZXJfZGVzY3JpcHRpb25fPGVuPgIAAAAVV2F2ZXMgQXNzb2NpYXRpb24gREFPCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAE2RhdGFfcHJvdmlkZXJfZW1haWwCAAAAG2dyYW50c0B3YXZlc2Fzc29jaWF0aW9uLm9yZwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAABdkYXRhX3Byb3ZpZGVyX2xhbmdfbGlzdAIAAAACZW4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAASZGF0YV9wcm92aWRlcl9saW5rAgAAACBodHRwczovL2Rhby53YXZlc2Fzc29jaWF0aW9uLm9yZwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAABJkYXRhX3Byb3ZpZGVyX25hbWUCAAAAFVdhdmVzIEFzc29jaWF0aW9uIERBTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVZGF0YV9wcm92aWRlcl92ZXJzaW9uAAAAAAAAAAAACQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACAgAAAAZpbml0ZWQGBQAAAANuaWwAAAABaQEAAAALYWRkUHJvcG9zYWwAAAAHAAAAB3Rva2VuSWQAAAALZGVzY3JpcHRpb24AAAAFZW1haWwAAAAEbGluawAAAARsb2dvAAAABnRpY2tlcgAAAARoYXNoAwkBAAAAEWFkZFRhc2tDb25k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", "height": 2806670, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5ZoemfYmJeSvxNymVqUsfebGmgLfKoiEdGdcdBteGyyd Next: none Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let mainContract = addressFromStringValue("3PFcQtKu4u1cDdFaYkcTWF37rpqtSQUGBBz")
55
6-let QUORUM = 1
6+let QUORUM = 30
77
88 func tryGetInteger (key) = {
99 let val = match getInteger(this, key) {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let mainContract = addressFromStringValue("3PFcQtKu4u1cDdFaYkcTWF37rpqtSQUGBBz")
55
6-let QUORUM = 1
6+let QUORUM = 30
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 tryGetString (key) = {
2020 let val = match getString(this, key) {
2121 case b: String =>
2222 b
2323 case _ =>
2424 ""
2525 }
2626 val
2727 }
2828
2929
3030 func isOwner (address) = (address == this)
3131
3232
3333 func getGroup () = {
3434 let val = match getString(mainContract, "working_group_members") {
3535 case b: String =>
3636 b
3737 case _ =>
3838 ""
3939 }
4040 val
4141 }
4242
4343
4444 func getMembers () = {
4545 let val = match getString(mainContract, "dao_members") {
4646 case b: String =>
4747 b
4848 case _ =>
4949 ""
5050 }
5151 val
5252 }
5353
5454
5555 func getDAOSize () = {
5656 let val = match getInteger(mainContract, "dao_size") {
5757 case b: Int =>
5858 b
5959 case _ =>
6060 0
6161 }
6262 val
6363 }
6464
6565
6666 func isGroupMember (a) = {
6767 let val = match getInteger(mainContract, (("working_group_member_" + toString(a)) + "_weight")) {
6868 case b: Int =>
6969 b
7070 case _ =>
7171 0
7272 }
7373 (val > 0)
7474 }
7575
7676
7777 func canMemberVote (address) = {
7878 let val = match getInteger(mainContract, (("dao_member_" + toString(address)) + "_weight")) {
7979 case b: Int =>
8080 b
8181 case _ =>
8282 0
8383 }
8484 (val > 0)
8585 }
8686
8787
8888 func getVoteValue (s) = if ((s == "like"))
8989 then 1
9090 else if ((s == "dislike"))
9191 then -1
9292 else throw("you need to vote with 'like' or 'dislike' value")
9393
9494
9595 func addTaskConditions (address) = if (!(isGroupMember(address)))
9696 then throw("grants working group access only")
9797 else true
9898
9999
100100 func addRewardConditions (address,taskId) = if (!(isGroupMember(address)))
101101 then throw("grants working group access only")
102102 else if ((tryGetString((("tasks_" + taskId) + "_status")) != ""))
103103 then throw("grant isn`t new")
104104 else true
105105
106106
107107 func voteForTaskProposalConditions (address,taskId) = if (!(canMemberVote(address)))
108108 then throw("you can't vote")
109109 else if ((tryGetString((("tasks_" + taskId) + "_status")) != "proposed"))
110110 then throw("voting is closed or not started")
111111 else if ((tryGetInteger(((("tasks_" + taskId) + "_voted_") + toString(address))) != 0))
112112 then throw("you have already voted")
113113 else true
114114
115115
116116 func finishTaskProposalVotingConditions (address,taskId) = if (!(isGroupMember(address)))
117117 then throw("grants working group access only")
118118 else if ((tryGetString((("tasks_" + taskId) + "_status")) != "proposed"))
119119 then throw("voting is not active")
120120 else if ((QUORUM > ((tryGetInteger((("tasks_" + taskId) + "_voting_amount")) * 100) / getDAOSize())))
121121 then throw((("more than " + toString(QUORUM)) + "% members have to vote before finishing the voting"))
122122 else true
123123
124124
125125 @Callable(i)
126126 func initContract () = [StringEntry("data_provider_description_<en>", "Waves Association DAO"), StringEntry("data_provider_email", "[email protected]"), StringEntry("data_provider_lang_list", "en"), StringEntry("data_provider_link", "https://dao.wavesassociation.org"), StringEntry("data_provider_name", "Waves Association DAO"), IntegerEntry("data_provider_version", 0), BooleanEntry("inited", true)]
127127
128128
129129
130130 @Callable(i)
131131 func addProposal (tokenId,description,email,link,logo,ticker,hash) = if (addTaskConditions(i.caller))
132132 then [StringEntry((("description_<en>_<" + tokenId) + ">"), description), StringEntry((("email_<" + tokenId) + ">"), email), StringEntry((("logo_<" + tokenId) + ">"), logo), StringEntry((("ticker_<" + tokenId) + ">"), ticker), StringEntry((("link_<" + tokenId) + ">"), link), StringEntry((("tasks_" + tokenId) + "_hash"), hash), IntegerEntry((("version_<" + tokenId) + ">"), 0), IntegerEntry((("status_<" + tokenId) + ">"), 0), StringEntry((("tasks_" + tokenId) + "_status"), "proposed")]
133133 else throw("checks are not passed")
134134
135135
136136
137137 @Callable(i)
138138 func resetHash (taskId,hash) = [StringEntry((("tasks_" + taskId) + "_hash"), hash)]
139139
140140
141141
142142 @Callable(i)
143143 func hideTask (taskId) = [StringEntry((("tasks_" + taskId) + "_status"), "hide")]
144144
145145
146146
147147 @Callable(i)
148148 func voteForTaskProposal (taskId,voteValue) = if (voteForTaskProposalConditions(i.caller, taskId))
149149 then {
150150 let voteKey = ((("tasks_" + taskId) + "_voted_") + toString(i.caller))
151151 let voteValueInt = getVoteValue(voteValue)
152152 let votingKey = (("tasks_" + taskId) + "_voting_state")
153153 let votingState = tryGetInteger(votingKey)
154154 let votesAmountKey = (("tasks_" + taskId) + "_voting_amount")
155155 let votesAmountState = (tryGetInteger(votesAmountKey) + 1)
156156 let newVotingState = (votingState + voteValueInt)
157157 [IntegerEntry(votingKey, newVotingState), IntegerEntry(voteKey, voteValueInt), IntegerEntry(votesAmountKey, votesAmountState)]
158158 }
159159 else throw("checks are not passed")
160160
161161
162162
163163 @Callable(i)
164164 func finishTaskProposalVoting (taskId) = if (finishTaskProposalVotingConditions(i.caller, taskId))
165165 then {
166166 let votingKey = (("tasks_" + taskId) + "_voting_state")
167167 [StringEntry((("tasks_" + taskId) + "_status"), if ((tryGetInteger(votingKey) > 0))
168168 then "approved"
169169 else "rejected"), IntegerEntry((("status_<" + taskId) + ">"), if ((tryGetInteger(votingKey) > 0))
170170 then 2
171171 else 0)]
172172 }
173173 else throw("checks are not passed")
174174
175175
176176
177177 @Callable(i)
178178 func rejectTask (taskId) = if (isGroupMember(i.caller))
179179 then [StringEntry((("tasks_" + taskId) + "_status"), "rejected")]
180180 else throw("grants working group access only")
181181
182182

github/deemru/w8io/786bc32 
38.53 ms