tx · HjC698cA4R8Sg5RXmnpdSUmckH19tU7FzR1Y6tLutgGh

3Mq8mRJPrRkdb1YtuPrXtUUb3S6xDU9G2Nh:  -0.01000000 Waves

2020.06.28 05:59 [1062985] smart account 3Mq8mRJPrRkdb1YtuPrXtUUb3S6xDU9G2Nh > SELF 0.00000000 Waves

{ "type": 13, "id": "HjC698cA4R8Sg5RXmnpdSUmckH19tU7FzR1Y6tLutgGh", "fee": 1000000, "feeAssetId": null, "timestamp": 1593313230200, "version": 1, "sender": "3Mq8mRJPrRkdb1YtuPrXtUUb3S6xDU9G2Nh", "senderPublicKey": "Coqj3e9du1nr2NzUyndQtutSG3gqpBL9H9jHzEf3dsqC", "proofs": [ "31yMyznaNpeUvNisLAnEekn1S1CSzevEEktre6Y4moRjM8bJFo64mM2ZdEbR7rwhtb39T2r5NhbjDk6GF8DtpgnD" ], "script": "base64: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AgUAAAANJGxpc3QzMzA4MzMzOQAAAAAAAAAACQMJAAAAAAAAAgUAAAANJHNpemUzMzA4MzMzOQAAAAAAAAAACgUAAAAOJGFjYzEwMzMwODMzMzkEAAAADiRhY2MxMTMzMDgzMzM5CQEAAAAIZm9sZEZ1bmMAAAACBQAAAA4kYWNjMTAzMzA4MzMzOQkAAZEAAAACBQAAAA0kbGlzdDMzMDgzMzM5AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAEAAAAA3JlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAALcXVlc3Rpb25LZXkFAAAABmFuc3dlcgUAAAAFYWNjdW0EAAAAGnJlc1dpdGhRdWVzdGlvblRvdGFsV2VpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABZxdWVzdGlvblRvdGFsV2VpZ2h0S2V5CQAAZAAAAAIJAQAAAAlnZXRBbW91bnQAAAABBQAAABZxdWVzdGlvblRvdGFsV2VpZ2h0S2V5BQAAAAxjYWxsZXJXZWlnaHQFAAAAA3JlcwMJAAAAAAAAAgUAAAALY2FsbGVyVm90ZWQGCQEAAAAIV3JpdGVTZXQAAAABBQAAABpyZXNXaXRoUXVlc3Rpb25Ub3RhbFdlaWdodAQAAAALcmVzV2l0aEZsYWcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADnRvdGFsV2VpZ2h0S2V5CQAAZAAAAAIJAQAAAAlnZXRBbW91bnQAAAABBQAAAA50b3RhbFdlaWdodEtleQUAAAAMY2FsbGVyV2VpZ2h0BQAAABpyZXNXaXRoUXVlc3Rpb25Ub3RhbFdlaWdodAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPYWRkcmVzc1ZvdGVkS2V5BgUAAAALcmVzV2l0aEZsYWcAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBAAAAAR0eElkCQACWAAAAAEIBQAAAAJ0eAAAAAJpZAQAAAAJcEFkZHJlc3MxCQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQIAAAAJcEFkZHJlc3MxBAAAAAlwQWRkcmVzczIJAQAAABJnZXRBZGRyZXNzRnJvbUJvb2sAAAABAgAAAAlwQWRkcmVzczIEAAAACXBBZGRyZXNzMwkBAAAAEmdldEFkZHJlc3NGcm9tQm9vawAAAAECAAAACXBBZGRyZXNzMwQAAAAJcEFkZHJlc3M0CQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQIAAAAJcEFkZHJlc3M0BAAAAAlwQWRkcmVzczUJAQAAABJnZXRBZGRyZXNzRnJvbUJvb2sAAAABAgAAAAlwQWRkcmVzczUEAAAACXBBZGRyZXNzNgkBAAAAEmdldEFkZHJlc3NGcm9tQm9vawAAAAECAAAACXBBZGRyZXNzNgQAAAAJcEFkZHJlc3M3CQEAAAASZ2V0QWRkcmVzc0Zyb21Cb29rAAAAAQIAAAAJcEFkZHJlc3M3BAAAAAlwQWRkcmVzczgJAQAAABJnZXRBZGRyZXNzRnJvbUJvb2sAAAABAgAAAAlwQWRkcmVzczgEAAAAC3BLZXkxU2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAJcEFkZHJlc3MxBQAAAAR0eElkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5MlNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAACXBBZGRyZXNzMgUAAAAEdHhJZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleTNTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAlwQWRkcmVzczMFAAAABHR4SWQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAC3BLZXk0U2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAJcEFkZHJlc3M0BQAAAAR0eElkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5NVNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAACXBBZGRyZXNzNQUAAAAEdHhJZAAAAAAAAAAAAQAAAAAAAAAAAAQAAAALcEtleTZTaWduZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAlwQWRkcmVzczYFAAAABHR4SWQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAC3BLZXk3U2lnbmVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAJcEFkZHJlc3M3BQAAAAR0eElkAAAAAAAAAAABAAAAAAAAAAAABAAAAAtwS2V5OFNpZ25lZAMJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAACXBBZGRyZXNzOAUAAAAEdHhJZAAAAAAAAAAAAQAAAAAAAAAAAAkAAGcAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAC3BLZXkxU2lnbmVkBQAAAAtwS2V5MlNpZ25lZAUAAAALcEtleTNTaWduZWQFAAAAC3BLZXk0U2lnbmVkBQAAAAtwS2V5NVNpZ25lZAUAAAALcEtleTZTaWduZWQFAAAAC3BLZXk3U2lnbmVkBQAAAAtwS2V5OFNpZ25lZAAAAAAAAAAAAwfPmWxI", "chainId": 84, "height": 1062985, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let addressBook = Address(base58'3MwoVRAPfC2NKuuYJKHVAVtUFhq8MyTEfQh')
5+
6+let whitelistAddressKey = "whitelistAddress"
7+
8+let dAppWhitelistAddressKey = "dAppWhitelistAddress"
9+
10+let totalWeightKey = "totalWeight"
11+
12+let minTotalWeightKey = "minTotalWeight"
13+
14+let startTime = 1593378000
15+
16+let endTime = 1593637200
17+
18+let ver = "5.0.1"
19+
20+let validState = 1000
21+
22+let getCurrentTime = (lastBlock.timestamp / 1000)
23+
24+func hasStarted () = (getCurrentTime >= startTime)
25+
26+
27+func hasEnded () = (getCurrentTime > endTime)
28+
29+
30+func getAddressFromBook (key) = match getString(addressBook, key) {
31+ case a: String =>
32+ Address(fromBase58String(a))
33+ case _ =>
34+ throw("no key")
35+}
36+
37+
38+func checkAddress (account) = {
39+ let isAccountAllow = match getInteger(getAddressFromBook(whitelistAddressKey), account) {
40+ case a: Int =>
41+ a
42+ case _ =>
43+ -255
44+ }
45+ (isAccountAllow == validState)
46+ }
47+
48+
49+func getAmount (key) = match getInteger(this, key) {
50+ case a: Int =>
51+ a
52+ case _ =>
53+ 0
54+}
55+
56+
57+func isVoted (key) = match getBoolean(this, key) {
58+ case a: Boolean =>
59+ a
60+ case _ =>
61+ false
62+}
63+
64+
65+func getQuestionAnswerKey (question,answer) = ((("question_" + question) + "_answer_") + answer)
66+
67+
68+@Callable(i)
69+func vote (question,answer) = {
70+ let dAppStatus = match getInteger(getAddressFromBook(dAppWhitelistAddressKey), toString(this)) {
71+ case a: Int =>
72+ a
73+ case _ =>
74+ 0
75+ }
76+ let callerAddress = toString(i.caller)
77+ let callerCheck = checkAddress(callerAddress)
78+ let questionKey = ((("address_" + callerAddress) + "_question_") + question)
79+ let addressVotedKey = (("address_" + callerAddress) + "_voted")
80+ let addressWeightKey = (("address_" + callerAddress) + "_weight")
81+ let questionTotalWeightKey = (("question_" + question) + "_totalWeight")
82+ let callerWeight = getAmount(addressWeightKey)
83+ let callerVoted = isVoted(addressVotedKey)
84+ let callerVotedOnQuestion = match getString(this, questionKey) {
85+ case a: String =>
86+ true
87+ case _ =>
88+ false
89+ }
90+ if ((dAppStatus != 1))
91+ then throw("#001 Dealer dApp is not active")
92+ else if (!(hasStarted()))
93+ then throw("#002 The Vote not start")
94+ else if (hasEnded())
95+ then throw("#003 The Vote already completed")
96+ else if (!(callerCheck))
97+ then throw("#004 This account has no right to vote.")
98+ else if ((callerWeight == 0))
99+ then throw("#005 This account has no weight to vote.")
100+ else if ((callerVotedOnQuestion == true))
101+ then throw("#006 This account has already voted on this question.")
102+ else {
103+ let answers = split(answer, ",")
104+ func foldFunc (acc,e) = {
105+ let key = getQuestionAnswerKey(question, e)
106+ let currentWeight = valueOrErrorMessage(getInteger(this, key), "#007 Wrong answer")
107+DataEntry(key, (callerWeight + currentWeight)) :: acc
108+ }
109+
110+ let accum = {
111+ let $list33083339 = answers
112+ let $size33083339 = size($list33083339)
113+ let $acc033083339 = nil
114+ if (($size33083339 == 0))
115+ then $acc033083339
116+ else {
117+ let $acc133083339 = foldFunc($acc033083339, $list33083339[0])
118+ if (($size33083339 == 1))
119+ then $acc133083339
120+ else {
121+ let $acc233083339 = foldFunc($acc133083339, $list33083339[1])
122+ if (($size33083339 == 2))
123+ then $acc233083339
124+ else {
125+ let $acc333083339 = foldFunc($acc233083339, $list33083339[2])
126+ if (($size33083339 == 3))
127+ then $acc333083339
128+ else {
129+ let $acc433083339 = foldFunc($acc333083339, $list33083339[3])
130+ if (($size33083339 == 4))
131+ then $acc433083339
132+ else {
133+ let $acc533083339 = foldFunc($acc433083339, $list33083339[4])
134+ if (($size33083339 == 5))
135+ then $acc533083339
136+ else {
137+ let $acc633083339 = foldFunc($acc533083339, $list33083339[5])
138+ if (($size33083339 == 6))
139+ then $acc633083339
140+ else {
141+ let $acc733083339 = foldFunc($acc633083339, $list33083339[6])
142+ if (($size33083339 == 7))
143+ then $acc733083339
144+ else {
145+ let $acc833083339 = foldFunc($acc733083339, $list33083339[7])
146+ if (($size33083339 == 8))
147+ then $acc833083339
148+ else {
149+ let $acc933083339 = foldFunc($acc833083339, $list33083339[8])
150+ if (($size33083339 == 9))
151+ then $acc933083339
152+ else {
153+ let $acc1033083339 = foldFunc($acc933083339, $list33083339[9])
154+ if (($size33083339 == 10))
155+ then $acc1033083339
156+ else {
157+ let $acc1133083339 = foldFunc($acc1033083339, $list33083339[10])
158+ throw("List size exceed 10")
159+ }
160+ }
161+ }
162+ }
163+ }
164+ }
165+ }
166+ }
167+ }
168+ }
169+ }
170+ }
171+ let res = DataEntry(questionKey, answer) :: accum
172+ let resWithQuestionTotalWeight = DataEntry(questionTotalWeightKey, (getAmount(questionTotalWeightKey) + callerWeight)) :: res
173+ if ((callerVoted == true))
174+ then WriteSet(resWithQuestionTotalWeight)
175+ else {
176+ let resWithFlag = DataEntry(totalWeightKey, (getAmount(totalWeightKey) + callerWeight)) :: resWithQuestionTotalWeight
177+ WriteSet(DataEntry(addressVotedKey, true) :: resWithFlag)
178+ }
179+ }
180+ }
181+
182+
183+@Verifier(tx)
184+func verify () = match tx {
185+ case tx: SetScriptTransaction =>
186+ let txId = toBase58String(tx.id)
187+ let pAddress1 = getAddressFromBook("pAddress1")
188+ let pAddress2 = getAddressFromBook("pAddress2")
189+ let pAddress3 = getAddressFromBook("pAddress3")
190+ let pAddress4 = getAddressFromBook("pAddress4")
191+ let pAddress5 = getAddressFromBook("pAddress5")
192+ let pAddress6 = getAddressFromBook("pAddress6")
193+ let pAddress7 = getAddressFromBook("pAddress7")
194+ let pAddress8 = getAddressFromBook("pAddress8")
195+ let pKey1Signed = if (isDefined(getInteger(pAddress1, txId)))
196+ then 1
197+ else 0
198+ let pKey2Signed = if (isDefined(getInteger(pAddress2, txId)))
199+ then 1
200+ else 0
201+ let pKey3Signed = if (isDefined(getInteger(pAddress3, txId)))
202+ then 1
203+ else 0
204+ let pKey4Signed = if (isDefined(getInteger(pAddress4, txId)))
205+ then 1
206+ else 0
207+ let pKey5Signed = if (isDefined(getInteger(pAddress5, txId)))
208+ then 1
209+ else 0
210+ let pKey6Signed = if (isDefined(getInteger(pAddress6, txId)))
211+ then 1
212+ else 0
213+ let pKey7Signed = if (isDefined(getInteger(pAddress7, txId)))
214+ then 1
215+ else 0
216+ let pKey8Signed = if (isDefined(getInteger(pAddress8, txId)))
217+ then 1
218+ else 0
219+ ((((((((pKey1Signed + pKey2Signed) + pKey3Signed) + pKey4Signed) + pKey5Signed) + pKey6Signed) + pKey7Signed) + pKey8Signed) >= 3)
220+ case _ =>
221+ false
222+}
223+

github/deemru/w8io/026f985 
36.14 ms