tx · EDbQzqyGHXKBgtmbPkaRDZu5VkHpjRoDC8MDEgbR7gf1

3MvRNiiunRy51KJXcLmZhUzrm9fXfMcapuB:  -1.00000100 Waves

2021.05.20 10:43 [1533710] smart account 3MvRNiiunRy51KJXcLmZhUzrm9fXfMcapuB > SELF 0.00000000 Waves

{ "type": 13, "id": "EDbQzqyGHXKBgtmbPkaRDZu5VkHpjRoDC8MDEgbR7gf1", "fee": 100000100, "feeAssetId": null, "timestamp": 1621496620061, "version": 2, "chainId": 84, "sender": "3MvRNiiunRy51KJXcLmZhUzrm9fXfMcapuB", "senderPublicKey": "AJhgEzWrvQYvLJdZ4bDYWy3W5H1h7UqSPwUyzSKsTYuh", "proofs": [ "23swkoiCfgisx9XLYpfm284mYx4JeQe1uEfGkmX2fZCExJVYJguEx56H734VLbdN4cC2Nv3pbktsFyUEAshmvGnj" ], "script": "base64:AAIDAAAAAAAAACEIARIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgAAAALAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAFAAAAA3ZhbAEAAAAJaXNNYW5hZ2VyAAAAAQAAAAdhZGRyZXNzCQAAAAAAAAIFAAAAB2FkZHJlc3MFAAAABHRoaXMBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABQAAAAN2YWwBAAAAGGlzTWVtYmVyc2hpcFdvcmtpbmdHcm91cAAAAAEAAAABYQkAAAAAAAACCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAAC21lbWJlcnNoaXBfCQAEJQAAAAEFAAAAAWECAAAAB19zdGF0dXMCAAAACGFwcHJvdmVkAQAAAA5pc1dvcmtpbmdHcm91cAAAAAEAAAABYQkAAAAAAAACCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAADndvcmtpbmdfZ3JvdXBfCQAEJQAAAAEFAAAAAWECAAAAB19zdGF0dXMCAAAACGFwcHJvdmVkAQAAAAtpc0RBT01lbWJlcgAAAAEAAAABYQkAAAAAAAACCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAAC2Rhb19tZW1iZXJfCQAEJQAAAAEFAAAAAWECAAAAB19zdGF0dXMCAAAACGFwcHJvdmVkAQAAAB1pc01lbWJlcnNoaXBWb3RlZEZvckNhbmRpZGF0ZQAAAAIAAAARbWVtYmVyc2hpcEFkZHJlc3MAAAAQY2FuZGlkYXRlQWRkcmVzcwkAAGYAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACBQAAABFtZW1iZXJzaGlwQWRkcmVzcwIAAAAHX3ZvdGVkXwUAAAAQY2FuZGlkYXRlQWRkcmVzcwAAAAAAAAAAAAEAAAAPZ2V0V29ya2luZ0dyb3VwAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMCAAAAFXdvcmtpbmdfZ3JvdXBfbWVtYmVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAFAAAAA3ZhbAEAAAAMZ2V0REFPTWVtYmVyAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMCAAAAC2Rhb19tZW1iZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAUAAAADdmFsAQAAABlnZXRNZW1iZXJzaGlwV29ya2luZ0dyb3VwAAAAAAQAAAADdmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMCAAAAIG1lbWJlcnNoaXBfd29ya2luZ19ncm91cF9tZW1iZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAUAAAADdmFsAQAAAAxnZXRWb3RlVmFsdWUAAAABAAAAAXMDCQAAAAAAAAIFAAAAAXMCAAAABGxpa2UAAAAAAAAAAAEDCQAAAAAAAAIFAAAAAXMCAAAAB2Rpc2xpa2UA//////////8JAAACAAAAAQkAASwAAAACAgAAAD9Zb3UgbmVlZCB0byB2b3RlIHdpdGggJ2xpa2UnIG9yICdkaXNsaWtlJyB2YWx1ZS4gWW91IHNwZWNpZmllZDoFAAAAAXMAAAAGAAAAAWkBAAAAHWFQcm9wb3NlQ2FuZGlkYXRlRm9yREFPTWVtYmVyAAAAAQAAAAdhZGRyZXNzAwkBAAAAAiE9AAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHbWVtYmVyXwUAAAAHYWRkcmVzcwIAAAANX3ZvdGluZ19zdGF0ZQAAAAAAAAAAAAkAAAIAAAABAgAAABhUaGlzIHVzZXIgYWxyZWFkeSBleGlzdHMEAAAABWdyb3VwCQEAAAAMZ2V0REFPTWVtYmVyAAAAAAQAAAAIbmV3R3JvdXAJAAEsAAAAAgkAASwAAAACBQAAAAVncm91cAIAAAABOwUAAAAHYWRkcmVzcwQAAAAJZ3JvdXBTaXplCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAEGRhb19tZW1iZXJzX3NpemUEAAAADG5ld0dyb3VwU2l6ZQkAAGQAAAACBQAAAAlncm91cFNpemUAAAAAAAAAAAEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtkYW9fbWVtYmVyXwUAAAAHYWRkcmVzcwIAAAAHX3N0YXR1cwIAAAAHcHJvcG9zZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAALZGFvX21lbWJlcnMFAAAACG5ld0dyb3VwCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABBkYW9fbWVtYmVyc19zaXplBQAAAAxuZXdHcm91cFNpemUFAAAAA25pbAAAAAFpAQAAABBtUmVqZWN0REFPTWVtYmVyAAAAAQAAAAdhZGRyZXNzAwkBAAAAASEAAAABCQEAAAAJaXNNYW5hZ2VyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAHmFjY2VzcyBvbmx5IHRvIHRoZSBEQU8gTWFuYWdlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAAC2Rhb19tZW1iZXJfBQAAAAdhZGRyZXNzAgAAAAdfc3RhdHVzAgAAAAhyZWplY3RlZAUAAAADbmlsAAAAAWkBAAAADW1BZGREQU9NZW1iZXIAAAABAAAAB2FkZHJlc3MDCQEAAAABIQAAAAEJAQAAAAlpc01hbmFnZXIAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAeYWNjZXNzIG9ubHkgdG8gdGhlIERBTyBNYW5hZ2VyBAAAAAVncm91cAkBAAAADGdldERBT01lbWJlcgAAAAAEAAAACG5ld0dyb3VwCQABLAAAAAIJAAEsAAAAAgUAAAAFZ3JvdXACAAAAATsFAAAAB2FkZHJlc3MEAAAACWdyb3VwU2l6ZQkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABBkYW9fbWVtYmVyc19zaXplBAAAAAxuZXdHcm91cFNpemUJAABkAAAAAgUAAAAJZ3JvdXBTaXplAAAAAAAAAAABCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALZGFvX21lbWJlcl8FAAAAB2FkZHJlc3MCAAAAB19zdGF0dXMCAAAACGFwcHJvdmVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtkYW9fbWVtYmVycwUAAAAIbmV3R3JvdXAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAEGRhb19tZW1iZXJzX3NpemUFAAAADG5ld0dyb3VwU2l6ZQUAAAADbmlsAAAAAWkBAAAAEG1BZGRXb3JraW5nR3JvdXAAAAABAAAAB2FkZHJlc3MDCQEAAAABIQAAAAEJAQAAAAlpc01hbmFnZXIAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAeYWNjZXNzIG9ubHkgdG8gdGhlIERBTyBNYW5hZ2VyBAAAAAVncm91cAkBAAAAD2dldFdvcmtpbmdHcm91cAAAAAAEAAAACG5ld0dyb3VwCQABLAAAAAIJAAEsAAAAAgUAAAAFZ3JvdXACAAAAATsFAAAAB2FkZHJlc3MEAAAACWdyb3VwU2l6ZQkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABJ3b3JraW5nX2dyb3VwX3NpemUEAAAADG5ld0dyb3VwU2l6ZQkAAGQAAAACBQAAAAlncm91cFNpemUAAAAAAAAAAAEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAABV3b3JraW5nX2dyb3VwX21lbWJlcl8FAAAAB2FkZHJlc3MCAAAAB19zdGF0dXMCAAAACGFwcHJvdmVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABV3b3JraW5nX2dyb3VwX21lbWJlcnMFAAAACG5ld0dyb3VwCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABJ3b3JraW5nX2dyb3VwX3NpemUFAAAADG5ld0dyb3VwU2l6ZQUAAAADbmlsAAAAAWkBAAAAGm1BZGRNZW1iZXJzaGlwV29ya2luZ0dyb3VwAAAAAQAAAAdhZGRyZXNzAwkBAAAAASEAAAABCQEAAAAJaXNNYW5hZ2VyAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAHmFjY2VzcyBvbmx5IHRvIHRoZSBEQU8gTWFuYWdlcgQAAAAFZ3JvdXAJAQAAABlnZXRNZW1iZXJzaGlwV29ya2luZ0dyb3VwAAAAAAQAAAAIbmV3R3JvdXAJAAEsAAAAAgkAASwAAAACBQAAAAVncm91cAIAAAABOwUAAAAHYWRkcmVzcwQAAAAJZ3JvdXBTaXplCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAAJW1lbWJlcnNoaXBfd29ya2luZ19ncm91cF9tZW1iZXJzX3NpemUEAAAADG5ld0dyb3VwU2l6ZQkAAGQAAAACBQAAAAlncm91cFNpemUAAAAAAAAAAAEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAttZW1iZXJzaGlwXwUAAAAHYWRkcmVzcwIAAAAHX3N0YXR1cwIAAAAIYXBwcm92ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAIG1lbWJlcnNoaXBfd29ya2luZ19ncm91cF9tZW1iZXJzBQAAAAhuZXdHcm91cAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAlbWVtYmVyc2hpcF93b3JraW5nX2dyb3VwX21lbWJlcnNfc2l6ZQUAAAAMbmV3R3JvdXBTaXplBQAAAANuaWwAAAABaQEAAAAdd21nTWVtYmVyc2hpcFZvdGVGb3JEQU9NZW1iZXIAAAACAAAAEGNhbmRpZGF0ZUFkZHJlc3MAAAAJdm90ZVZhbHVlBAAAABFtZW1iZXJzaGlwQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADHZvdGVWYWx1ZUludAkBAAAADGdldFZvdGVWYWx1ZQAAAAEFAAAACXZvdGVWYWx1ZQQAAAAJdm90aW5nS2V5CQABLAAAAAIJAAEsAAAAAgIAAAALZGFvX21lbWJlcl8FAAAAEGNhbmRpZGF0ZUFkZHJlc3MCAAAABV92b3RlBAAAAAh2b3RlZEtleQkAASwAAAACCQABLAAAAAICAAAAC2Rhb19tZW1iZXJfBQAAABBjYW5kaWRhdGVBZGRyZXNzAgAAAAZfdm90ZWQEAAAACHZvdGVkVmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAACHZvdGVkS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAQAAAALdm90aW5nU3RhdGUJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAJdm90aW5nS2V5BAAAAA5uZXdWb3RpbmdTdGF0ZQkAAGQAAAACBQAAAAt2b3RpbmdTdGF0ZQUAAAAMdm90ZVZhbHVlSW50AwkBAAAAGGlzTWVtYmVyc2hpcFdvcmtpbmdHcm91cAAAAAEIBQAAAAFpAAAABmNhbGxlcgMJAQAAAB1pc01lbWJlcnNoaXBWb3RlZEZvckNhbmRpZGF0ZQAAAAIFAAAAEW1lbWJlcnNoaXBBZGRyZXNzBQAAABBjYW5kaWRhdGVBZGRyZXNzCQAAAgAAAAECAAAAFllvdSBoYXZlIGFscmVhZHkgdm90ZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAABFtZW1iZXJzaGlwQWRkcmVzcwIAAAAHX3ZvdGVkXwUAAAAQY2FuZGlkYXRlQWRkcmVzcwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAJdm90aW5nS2V5BQAAAA5uZXdWb3RpbmdTdGF0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAIdm90ZWRLZXkFAAAACHZvdGVkVmFsBQAAAANuaWwJAAACAAAAAQIAAAASWW91IGhhdmUgbm8gcmlnaHRzAAAAAIqqmEs=", "height": 1533710, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7YnD8jHRVxJsLipXh3f7iN3m8drjhEGu2GqbmdqBJCq9 Next: F842c7KVBcC5ZbSDz6Ko4yzAk9JTKtZQHDXokCMw6qgG Diff:
OldNewDifferences
141141 func wmgMembershipVoteForDAOMember (candidateAddress,voteValue) = {
142142 let membershipAddress = toString(i.caller)
143143 let voteValueInt = getVoteValue(voteValue)
144- let votingKey = (("member_" + candidateAddress) + "_voting_state")
144+ let votingKey = (("dao_member_" + candidateAddress) + "_vote")
145+ let votedKey = (("dao_member_" + candidateAddress) + "_voted")
146+ let votedVal = match getString(this, votedKey) {
147+ case b: String =>
148+ b
149+ case _ =>
150+ ""
151+ }
145152 let votingState = tryGetInteger(votingKey)
146153 let newVotingState = (votingState + voteValueInt)
147154 if (isMembershipWorkingGroup(i.caller))
148155 then if (isMembershipVotedForCandidate(membershipAddress, candidateAddress))
149156 then throw("You have already voted")
150- else WriteSet([DataEntry(((membershipAddress + "_voted_") + candidateAddress), 1), DataEntry(votingKey, newVotingState)])
157+ else WriteSet([DataEntry(((membershipAddress + "_voted_") + candidateAddress), 1), DataEntry(votingKey, newVotingState), DataEntry(votedKey, votedVal)])
151158 else throw("You have no rights")
152159 }
153160
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetString (key) = {
55 let val = match getString(this, key) {
66 case b: String =>
77 b
88 case _ =>
99 ""
1010 }
1111 val
1212 }
1313
1414
1515 func isManager (address) = (address == this)
1616
1717
1818 func tryGetInteger (key) = {
1919 let val = match getInteger(this, key) {
2020 case b: Int =>
2121 b
2222 case _ =>
2323 0
2424 }
2525 val
2626 }
2727
2828
2929 func isMembershipWorkingGroup (a) = (tryGetString((("membership_" + toString(a)) + "_status")) == "approved")
3030
3131
3232 func isWorkingGroup (a) = (tryGetString((("working_group_" + toString(a)) + "_status")) == "approved")
3333
3434
3535 func isDAOMember (a) = (tryGetString((("dao_member_" + toString(a)) + "_status")) == "approved")
3636
3737
3838 func isMembershipVotedForCandidate (membershipAddress,candidateAddress) = (tryGetInteger(((membershipAddress + "_voted_") + candidateAddress)) > 0)
3939
4040
4141 func getWorkingGroup () = {
4242 let val = match getString(this, "working_group_members") {
4343 case b: String =>
4444 b
4545 case _ =>
4646 ""
4747 }
4848 val
4949 }
5050
5151
5252 func getDAOMember () = {
5353 let val = match getString(this, "dao_members") {
5454 case b: String =>
5555 b
5656 case _ =>
5757 ""
5858 }
5959 val
6060 }
6161
6262
6363 func getMembershipWorkingGroup () = {
6464 let val = match getString(this, "membership_working_group_members") {
6565 case b: String =>
6666 b
6767 case _ =>
6868 ""
6969 }
7070 val
7171 }
7272
7373
7474 func getVoteValue (s) = if ((s == "like"))
7575 then 1
7676 else if ((s == "dislike"))
7777 then -1
7878 else throw(("You need to vote with 'like' or 'dislike' value. You specified:" + s))
7979
8080
8181 @Callable(i)
8282 func aProposeCandidateForDAOMember (address) = if ((tryGetInteger((("member_" + address) + "_voting_state")) != 0))
8383 then throw("This user already exists")
8484 else {
8585 let group = getDAOMember()
8686 let newGroup = ((group + ";") + address)
8787 let groupSize = tryGetInteger("dao_members_size")
8888 let newGroupSize = (groupSize + 1)
8989 WriteSet([DataEntry((("dao_member_" + address) + "_status"), "propose"), DataEntry("dao_members", newGroup), DataEntry("dao_members_size", newGroupSize)])
9090 }
9191
9292
9393
9494 @Callable(i)
9595 func mRejectDAOMember (address) = if (!(isManager(i.caller)))
9696 then throw("access only to the DAO Manager")
9797 else WriteSet([DataEntry((("dao_member_" + address) + "_status"), "rejected")])
9898
9999
100100
101101 @Callable(i)
102102 func mAddDAOMember (address) = if (!(isManager(i.caller)))
103103 then throw("access only to the DAO Manager")
104104 else {
105105 let group = getDAOMember()
106106 let newGroup = ((group + ";") + address)
107107 let groupSize = tryGetInteger("dao_members_size")
108108 let newGroupSize = (groupSize + 1)
109109 WriteSet([DataEntry((("dao_member_" + address) + "_status"), "approved"), DataEntry("dao_members", newGroup), DataEntry("dao_members_size", newGroupSize)])
110110 }
111111
112112
113113
114114 @Callable(i)
115115 func mAddWorkingGroup (address) = if (!(isManager(i.caller)))
116116 then throw("access only to the DAO Manager")
117117 else {
118118 let group = getWorkingGroup()
119119 let newGroup = ((group + ";") + address)
120120 let groupSize = tryGetInteger("working_group_size")
121121 let newGroupSize = (groupSize + 1)
122122 WriteSet([DataEntry((("working_group_member_" + address) + "_status"), "approved"), DataEntry("working_group_members", newGroup), DataEntry("working_group_size", newGroupSize)])
123123 }
124124
125125
126126
127127 @Callable(i)
128128 func mAddMembershipWorkingGroup (address) = if (!(isManager(i.caller)))
129129 then throw("access only to the DAO Manager")
130130 else {
131131 let group = getMembershipWorkingGroup()
132132 let newGroup = ((group + ";") + address)
133133 let groupSize = tryGetInteger("membership_working_group_members_size")
134134 let newGroupSize = (groupSize + 1)
135135 WriteSet([DataEntry((("membership_" + address) + "_status"), "approved"), DataEntry("membership_working_group_members", newGroup), DataEntry("membership_working_group_members_size", newGroupSize)])
136136 }
137137
138138
139139
140140 @Callable(i)
141141 func wmgMembershipVoteForDAOMember (candidateAddress,voteValue) = {
142142 let membershipAddress = toString(i.caller)
143143 let voteValueInt = getVoteValue(voteValue)
144- let votingKey = (("member_" + candidateAddress) + "_voting_state")
144+ let votingKey = (("dao_member_" + candidateAddress) + "_vote")
145+ let votedKey = (("dao_member_" + candidateAddress) + "_voted")
146+ let votedVal = match getString(this, votedKey) {
147+ case b: String =>
148+ b
149+ case _ =>
150+ ""
151+ }
145152 let votingState = tryGetInteger(votingKey)
146153 let newVotingState = (votingState + voteValueInt)
147154 if (isMembershipWorkingGroup(i.caller))
148155 then if (isMembershipVotedForCandidate(membershipAddress, candidateAddress))
149156 then throw("You have already voted")
150- else WriteSet([DataEntry(((membershipAddress + "_voted_") + candidateAddress), 1), DataEntry(votingKey, newVotingState)])
157+ else WriteSet([DataEntry(((membershipAddress + "_voted_") + candidateAddress), 1), DataEntry(votingKey, newVotingState), DataEntry(votedKey, votedVal)])
151158 else throw("You have no rights")
152159 }
153160
154161

github/deemru/w8io/c3f4982 
27.83 ms