tx · EishfpvG6BJojn83BtsqmZmoAXfYpSVs6Kf8CuV7P6PJ

3MvsqDUjgwou6Q8kxvUE4Rydq3aTAoGM4ez:  -0.01800000 Waves

2024.09.24 00:26 [3296771] smart account 3MvsqDUjgwou6Q8kxvUE4Rydq3aTAoGM4ez > SELF 0.00000000 Waves

{ "type": 13, "id": "EishfpvG6BJojn83BtsqmZmoAXfYpSVs6Kf8CuV7P6PJ", "fee": 1800000, "feeAssetId": null, "timestamp": 1727126859523, "version": 2, "chainId": 84, "sender": "3MvsqDUjgwou6Q8kxvUE4Rydq3aTAoGM4ez", "senderPublicKey": "G6Zojn5ShR3qnxHQU6Q8bQm9RCojVPtMWH2j2i6dUbmi", "proofs": [ "2oRQcGgfkhYEDCuaDAr8sCji4bEHxWnW6JQyAURn1i6ScC4KFm7BSSGa5PRze5rC47Z31bapTr7dKBshLpSWMWrG" ], "script": "base64:AAIFAAAAAAAAACsIAhIHCgUICAgICBIFCgMICAgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIAAAANwEAAAAHdGhyb3dJZgAAAAIAAAAJY29uZGl0aW9uAAAABWVycm9yAwUAAAAJY29uZGl0aW9uCQAAAgAAAAEFAAAABWVycm9yBgEAAAAObm9uRW1wdHlTdHJpbmcAAAACAAAAAXMAAAADa2V5AwkAAGcAAAACAAAAAAAAAAAACQABMQAAAAEFAAAAAXMJAAACAAAAAQkAASwAAAACAgAAAA5lbXB0eSBzdHJpbmc6IAUAAAADa2V5BgEAAAALd3JpdGVTdHJpbmcAAAACAAAAA2tleQAAAAV2YWx1ZQMJAABnAAAAAgAAAAAAAAAAAAkAATEAAAABBQAAAAV2YWx1ZQkAAAIAAAABCQABLAAAAAICAAAADmVtcHR5IHN0cmluZzogBQAAAANrZXkJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAACHdyaXRlSW50AAAAAgAAAANrZXkAAAAFdmFsdWUDCQAAZgAAAAIAAAAAAAAAAAAFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF3dyaXRpbmcgbmVnYXRpdmUgdmFsdWUgCQABpAAAAAEFAAAABXZhbHVlAgAAAAkgZm9yIGtleSAFAAAAA2tleQkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAAAAA2tleQAAAAV2YWx1ZQMDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQkBAAAADm5vbkVtcHR5U3RyaW5nAAAAAgUAAAAFdmFsdWUFAAAAA2tleQcJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUJAAACAAAAAQkAASwAAAACAgAAABVhbHJlYWR5IGluaXRpYWxpemVkOiAFAAAAA2tleQEAAAANd3JpdGVDb25zdEludAAAAAIAAAADa2V5AAAABXZhbHVlAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgIAAAAQYWxyZWFkeSBleGlzdHM6IAUAAAADa2V5AQAAAAhjaGFuZ2VCeQAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAId3JpdGVJbnQAAAACBQAAAANrZXkJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAAFAAAABXZhbHVlAQAAAAVhc0ludAAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50CQAAAgAAAAECAAAAGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQAAAAAEmNvbmZpZ0FkZHJlc3NTdG9yZQIAAAAGY29uZmlnAAAAAA1jb25maWdBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAEmNvbmZpZ0FkZHJlc3NTdG9yZQIAAAAJbm8gY29uZmlnAgAAABZpbnZhbGlkIGNvbmZpZyBhZGRyZXNzAAAAAAZ2b3RpbmcJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAANY29uZmlnQWRkcmVzcwIAAAAWY29udHJhY3Rfdm90aW5nX3Jlc3VsdAIAAAAZbm8gY29udHJhY3Rfdm90aW5nX3Jlc3VsdAIAAAAeaW52YWxpZCBjb250cmFjdF92b3RpbmdfcmVzdWx0AAAAAAdzdGFraW5nCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAADWNvbmZpZ0FkZHJlc3MCAAAAEGNvbnRyYWN0X3N0YWtpbmcCAAAA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dXNlcmRhdGEJAQAAABp1c2VyTGFzdFByb3Bvc2VIZWlnaHRTdG9yZQAAAAEFAAAABHVzZXIA//////////8AAAAAC3RoaXNBZGRyZXNzCQAEJQAAAAEFAAAABHRoaXMAAAAAEHVzZXJQcm9wb3NlRGVsYXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA1jb25maWdBZGRyZXNzCQABLAAAAAIFAAAAC3RoaXNBZGRyZXNzAgAAABNfdXNlcl9wcm9wb3NlX2RlbGF5AgAAACJfdXNlcl9wcm9wb3NlX2RlbGF5IGlzIG5vdCBkZWZpbmVkAAAAAAtxdW9ydW1SYXRpbwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAADWNvbmZpZ0FkZHJlc3MJAAEsAAAAAgUAAAALdGhpc0FkZHJlc3MCAAAAFl9wcm9wb3NhbF9xdW9ydW1fcmF0aW8CAAAAJV9wcm9wb3NhbF9xdW9ydW1fcmF0aW8gaXMgbm90IGRlZmluZWQBAAAAE3Byb3Bvc2FsUXVvcnVtU3RvcmUAAAABAAAABHR4aWQJAAEsAAAAAgIAAAAWcHJvcG9zYWxfcXVvcnVtX3JhdGlvXwUAAAAEdHhpZAAAAAALcGFzc2VkUmF0aW8JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA1jb25maWdBZGRyZXNzCQABLAAAAAIFAAAAC3RoaXNBZGRyZXNzAgAAABZfcHJvcG9zYWxfcGFzc2VkX3JhdGlvAgAAACVfcHJvcG9zYWxfcGFzc2VkX3JhdGlvIGlzIG5vdCBkZWZpbmVkAAAAABNwcm9wb3NhbE1pblJlcXVpcmVkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAANY29uZmlnQWRkcmVzcwkAASwAAAACBQAAAAt0aGlzQWRkcmVzcwIAAAAWX3Byb3Bvc2FsX21pbl9yZXF1aXJlZAIAAAAlX3Byb3Bvc2FsX21pbl9yZXF1aXJlZCBpcyBub3QgZGVmaW5lZAAAAAARdm90aW5nU3RhcnRPZmZzZXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA1jb25maWdBZGRyZXNzCQABLAAAAAIFAAAAC3RoaXNBZGRyZXNzAgAAABxfcHJvcG9zYWxfdm90aW5nc3RhcnRfb2Zmc2V0AgAAACtfcHJvcG9zYWxfdm90aW5nc3RhcnRfb2Zmc2V0IGlzIG5vdCBkZWZpbmVkAAAAAA92b3RpbmdFbmRPZmZzZXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA1jb25maWdBZGRyZXNzCQABLAAAAAIFAAAAC3RoaXNBZGRyZXNzAgAAABpfcHJvcG9zYWxfdm90aW5nZW5kX29mZnNldAIAAAApX3Byb3Bvc2FsX3ZvdGluZ2VuZF9vZmZzZXQgaXMgbm90IGRlZmluZWQBAAAACXVzZXJTdGFrZQAAAAEAAAAEdXNlcgkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAAdzdGFraW5nAgAAAAl1c2VyU3Rha2UJAARMAAAAAgUAAAAEdXNlcgUAAAADbmlsBQAAAANuaWwBAAAADnByb3Bvc2FsRXhpc3RzAAAAAQAAAAR0eElkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAQAAAAtoZWlnaHRTdG9yZQAAAAEFAAAABHR4SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFc3RhcnQFAAAAByRtYXRjaDAGBwEAAAAQcHJvcG9zYWxPblZvdGluZwAAAAEAAAAEdHhJZAQAAAALbm9uRXhpc3RFcnICAAAAFnByb3Bvc2FsIGRvZXNuJ3QgZXhpc3QDCQEAAAABIQAAAAEJAQAAAA5wcm9wb3NhbEV4aXN0cwAAAAEFAAAABHR4SWQJAAACAAAAAQUAAAALbm9uRXhpc3RFcnIEAAAAC3ZvdGluZ1N0YXJ0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAEHZvdGluZ1N0YXJ0U3RvcmUAAAABBQAAAAR0eElkBQAAAAtub25FeGlzdEVycgQAAAAJdm90aW5nRW5kCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAADnZvdGluZ0VuZFN0b3JlAAAAAQUAAAAEdHhJZAUA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", "height": 3296771, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func a (b,c) = if (b)
5+ then throw(c)
6+ else true
7+
8+
9+func d (e,f) = if ((0 >= size(e)))
10+ then throw(("empty string: " + f))
11+ else true
12+
13+
14+func g (f,h) = if ((0 >= size(h)))
15+ then throw(("empty string: " + f))
16+ else StringEntry(f, h)
17+
18+
19+func i (f,h) = if ((0 > h))
20+ then throw(((("writing negative value " + toString(h)) + " for key ") + f))
21+ else IntegerEntry(f, h)
22+
23+
24+func j (f,h) = if (if (!(isDefined(getString(this, f))))
25+ then d(h, f)
26+ else false)
27+ then StringEntry(f, h)
28+ else throw(("already initialized: " + f))
29+
30+
31+func k (f,h) = if (!(isDefined(getInteger(this, f))))
32+ then IntegerEntry(f, h)
33+ else throw(("already exists: " + f))
34+
35+
36+func l (f,h) = i(f, (valueOrElse(getInteger(this, f), 0) + h))
37+
38+
39+func m (h) = {
40+ let n = h
41+ if ($isInstanceOf(n, "Int"))
42+ then {
43+ let o = n
44+ o
45+ }
46+ else throw("wrong type, expected: Int")
47+ }
48+
49+
50+let p = "config"
51+
52+let q = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, p), "no config")), "invalid config address")
53+
54+let r = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(q, "contract_voting_result"), "no contract_voting_result")), "invalid contract_voting_result")
55+
56+let s = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(q, "contract_staking"), "no contract_staking")), "invalid contract_staking")
57+
58+let t = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(q, "contract_user_data"), "no contract_user_data")), "invalid contract_user_data")
59+
60+let u = height
61+
62+func v () = ("height: " + toString(u))
63+
64+
65+let w = 1000
66+
67+func x (y) = {
68+ let e = invoke(q, "opAllowed", [y], nil)
69+ if ((e == e))
70+ then true
71+ else throw("Strict value is not equal to itself.")
72+ }
73+
74+
75+func z (A) = ("proposal_address_" + A)
76+
77+
78+func B (A) = ("proposal_height_" + A)
79+
80+
81+func C (A) = ("proposal_votingstart_" + A)
82+
83+
84+func D (A) = ("proposal_votingend_" + A)
85+
86+
87+func E (A) = ("proposal_by_" + A)
88+
89+
90+func F (A) = ("proposal_description_" + A)
91+
92+
93+func G (A) = ("proposal_title_" + A)
94+
95+
96+func H (A) = ("proposal_payload_" + A)
97+
98+
99+func I (A) = ("proposal_max_snap_" + A)
100+
101+
102+func J (A) = ("proposal_yes_" + A)
103+
104+
105+func K (A) = ("proposal_no_" + A)
106+
107+
108+func L (M,A) = ((("proposal_yes_user_" + A) + "_") + M)
109+
110+
111+func N (M,A) = ((("proposal_no_user_" + A) + "_") + M)
112+
113+
114+func O (M) = ("propose_lastheight_" + M)
115+
116+
117+func P (M,A) = valueOrElse(getInteger(t, L(M, A)), 0)
118+
119+
120+func Q (M,A) = valueOrElse(getInteger(t, N(M, A)), 0)
121+
122+
123+func R (M) = valueOrElse(getInteger(t, O(M)), -1)
124+
125+
126+let S = toString(this)
127+
128+let T = valueOrErrorMessage(getInteger(q, (S + "_user_propose_delay")), "_user_propose_delay is not defined")
129+
130+let U = valueOrErrorMessage(getInteger(q, (S + "_proposal_quorum_ratio")), "_proposal_quorum_ratio is not defined")
131+
132+func V (W) = ("proposal_quorum_ratio_" + W)
133+
134+
135+let X = valueOrErrorMessage(getInteger(q, (S + "_proposal_passed_ratio")), "_proposal_passed_ratio is not defined")
136+
137+let Y = valueOrErrorMessage(getInteger(q, (S + "_proposal_min_required")), "_proposal_min_required is not defined")
138+
139+let Z = valueOrErrorMessage(getInteger(q, (S + "_proposal_votingstart_offset")), "_proposal_votingstart_offset is not defined")
140+
141+let aa = valueOrErrorMessage(getInteger(q, (S + "_proposal_votingend_offset")), "_proposal_votingend_offset is not defined")
142+
143+func ab (M) = m(invoke(s, "userStake", [M], nil))
144+
145+
146+func ac (ad) = {
147+ let n = getInteger(this, B(ad))
148+ if ($isInstanceOf(n, "Int"))
149+ then {
150+ let ae = n
151+ true
152+ }
153+ else false
154+ }
155+
156+
157+func af (ad) = {
158+ let ag = "proposal doesn't exist"
159+ if (!(ac(ad)))
160+ then throw(ag)
161+ else {
162+ let ah = valueOrErrorMessage(getInteger(this, C(ad)), ag)
163+ let ai = valueOrErrorMessage(getInteger(this, D(ad)), ag)
164+ if ((ah > u))
165+ then throw(((("voting not started yet, discussion is in progress, voting will start at block " + toString(ah)) + ", now it's ") + toString(u)))
166+ else if ((u > ai))
167+ then throw(((("voting ended at block " + toString(ai)) + ", now it's ") + toString(u)))
168+ else true
169+ }
170+ }
171+
172+
173+func aj (ad) = {
174+ let ag = "proposal doesn't exist"
175+ if (!(ac(ad)))
176+ then throw(ag)
177+ else {
178+ let ah = valueOrErrorMessage(getInteger(this, C(ad)), ag)
179+ if ((u >= ah))
180+ then throw("voting start is already happened")
181+ else true
182+ }
183+ }
184+
185+
186+func ak () = m(invoke(s, "totalStake", nil, nil))
187+
188+
189+func al (ad) = valueOrElse(getInteger(V(ad)), U)
190+
191+
192+func am (A,an,ao) = {
193+ let ap = (valueOrElse(getInteger(("proposal_yes_" + A)), 0) + an)
194+ let aq = (valueOrElse(getInteger(("proposal_no_" + A)), 0) + ao)
195+ let ar = ak()
196+ let as = (ap + aq)
197+ let at = (((as * w) / ar) >= al(A))
198+ let au = (((ap * w) / as) >= X)
199+ if (at)
200+ then au
201+ else false
202+ }
203+
204+
205+func av (ad,M) = {
206+ let aw = P(M, ad)
207+ let ax = Q(M, ad)
208+ let ay = valueOrErrorMessage(getString(z(ad)), "proposal address not found")
209+ ((((("height: " + toString(u)) + ", vote_yes: ") + toString(aw)) + ", vote_no: ") + toString(ax))
210+ }
211+
212+
213+func az (ad) = {
214+ let aA = valueOrErrorMessage(getInteger(B(ad)), "no proposal")
215+ let ah = valueOrErrorMessage(getInteger(C(ad)), "no proposal")
216+ let ai = valueOrErrorMessage(getInteger(D(ad)), "no proposal")
217+ let ap = valueOrElse(getInteger(J(ad)), 0)
218+ let aq = valueOrElse(getInteger(K(ad)), 0)
219+ let aB = valueOrElse(getInteger(I(ad)), 0)
220+ let as = (ap + aq)
221+ let aC = al(ad)
222+ let at = if ((as > 0))
223+ then (((as * w) / aB) >= aC)
224+ else false
225+ let au = if ((as > 0))
226+ then (((ap * w) / as) >= X)
227+ else false
228+ let aD = valueOrElse(transactionHeightById(fromBase58String(ad)), 0)
229+ let aE = if ((ah > u))
230+ then "discussion"
231+ else if ((ai >= u))
232+ then "voting"
233+ else if (!(at))
234+ then "noQuorum"
235+ else if (!(au))
236+ then "votingFailed"
237+ else if ((aD > 0))
238+ then "inBlockchain"
239+ else "waitingForTx"
240+ ((((((((((((((((((((((((((((((("height: " + toString(u)) + ", proposal_id: ") + ad) + ", proposal_title: ") + getStringValue(G(ad))) + ", proposal_address: ") + valueOrErrorMessage(z(ad), "no address")) + ", proposal_status: ") + aE) + ", proposal_by: ") + valueOrErrorMessage(getString(this, E(ad)), "no proposal")) + ", proposal_height: ") + toString(aA)) + ", proposal_txheight: ") + toString(aD)) + ", proposal_votingstart: ") + toString(ah)) + ", proposal_votingend: ") + toString(ai)) + ", proposal_max: ") + toString(aB)) + ", vote_yes: ") + toString(ap)) + ", vote_no: ") + toString(aq)) + ", proposal_quorum: ") + toString(aC)) + ", proposal_description: ") + getStringValue(F(ad))) + ", proposal_payload: ") + getStringValue(H(ad)))
241+ }
242+
243+
244+func aF (ad) = (getIntegerValue(D(ad)) + 1)
245+
246+
247+func aG (ay,ad,aH) = invoke(r, "setResult", [ay, ad, aH, aF(ad)], nil)
248+
249+
250+func aI (ad) = IntegerEntry(I(ad), ak())
251+
252+
253+func aJ (M,ad) = {
254+ let ai = getIntegerValue(D(ad))
255+ let aK = (ai + 1)
256+ invoke(s, "lockFor", [M, aK], nil)
257+ }
258+
259+
260+@Callable(aL)
261+func propose (aM,ad,aN,aO,aP) = {
262+ let aQ = x("governance_propose_tx")
263+ if ((aQ == aQ))
264+ then {
265+ let M = toString(aL.caller)
266+ let aR = ab(M)
267+ if ((Y > aR))
268+ then throw((((("not enough staked units to make proposal." + " Minimum required = ") + toString(Y)) + ", actual: = ") + toString(aR)))
269+ else {
270+ let aS = R(M)
271+ if (if ((aS > -1))
272+ then ((aS + T) > u)
273+ else false)
274+ then throw(((("can't propose too often, last proroposal height: " + toString(aS)) + ", blocks to wait: ") + toString(((aS + T) - u))))
275+ else {
276+ let aT = (u + aa)
277+ let aU = invoke(t, "write", [O(M), u], nil)
278+ if ((aU == aU))
279+ then [k(B(ad), u), aI(ad), k(C(ad), (u + Z)), k(D(ad), aT), j(E(ad), toString(aL.caller)), j(z(ad), aM), IntegerEntry(V(ad), U), g(F(ad), aO), g(H(ad), aP), j(G(ad), aN)]
280+ else throw("Strict value is not equal to itself.")
281+ }
282+ }
283+ }
284+ else throw("Strict value is not equal to itself.")
285+ }
286+
287+
288+
289+@Callable(aL)
290+func edit (ad,aN,aO) = {
291+ let aQ = if (x("governance_edit_attachments"))
292+ then aj(ad)
293+ else false
294+ if ((aQ == aQ))
295+ then {
296+ let M = toString(aL.caller)
297+ let aV = valueOrErrorMessage(getString(this, E(ad)), "proposal doesn't exist")
298+ if ((aV != M))
299+ then throw("only owner can edit proposal attachments e.g. title, description")
300+ else [g(G(ad), aN), g(F(ad), aO)]
301+ }
302+ else throw("Strict value is not equal to itself.")
303+ }
304+
305+
306+
307+@Callable(aL)
308+func voteYes (ad) = {
309+ let aQ = if (x("governance_vote_tx"))
310+ then af(ad)
311+ else false
312+ if ((aQ == aQ))
313+ then {
314+ let M = toString(aL.caller)
315+ if ((Q(M, ad) > 0))
316+ then throw("already voted against, please retract your vote first")
317+ else {
318+ let aW = (ab(M) - P(M, ad))
319+ let aU = aJ(M, ad)
320+ if ((aU == aU))
321+ then {
322+ let ay = valueOrErrorMessage(getString(z(ad)), "proposal address not found")
323+ let aH = am(ad, aW, 0)
324+ let e = aG(ay, ad, aH)
325+ if ((e == e))
326+ then {
327+ let aX = invoke(t, "changeBy", [L(M, ad), aW], nil)
328+ if ((aX == aX))
329+ then [aI(ad), l(J(ad), aW)]
330+ else throw("Strict value is not equal to itself.")
331+ }
332+ else throw("Strict value is not equal to itself.")
333+ }
334+ else throw("Strict value is not equal to itself.")
335+ }
336+ }
337+ else throw("Strict value is not equal to itself.")
338+ }
339+
340+
341+
342+@Callable(aL)
343+func voteNo (ad) = {
344+ let aQ = if (x("governance_vote_tx"))
345+ then af(ad)
346+ else false
347+ if ((aQ == aQ))
348+ then {
349+ let M = toString(aL.caller)
350+ if ((P(M, ad) > 0))
351+ then throw("already voted for, please retract your vote first")
352+ else {
353+ let aY = (ab(M) - Q(M, ad))
354+ let aU = aJ(M, ad)
355+ if ((aU == aU))
356+ then {
357+ let ay = valueOrErrorMessage(getString(z(ad)), "proposal address not found")
358+ let aH = am(ad, 0, aY)
359+ let e = aG(ay, ad, aH)
360+ if ((e == e))
361+ then {
362+ let aZ = invoke(t, "changeBy", [N(M, ad), aY], nil)
363+ if ((aZ == aZ))
364+ then [aI(ad), l(K(ad), aY)]
365+ else throw("Strict value is not equal to itself.")
366+ }
367+ else throw("Strict value is not equal to itself.")
368+ }
369+ else throw("Strict value is not equal to itself.")
370+ }
371+ }
372+ else throw("Strict value is not equal to itself.")
373+ }
374+
375+
376+
377+@Callable(aL)
378+func retract (ad) = {
379+ let aQ = if (x("governance_retract_vote"))
380+ then af(ad)
381+ else false
382+ if ((aQ == aQ))
383+ then {
384+ let M = toString(aL.caller)
385+ let aw = P(M, ad)
386+ let ax = Q(M, ad)
387+ let ay = valueOrErrorMessage(getString(z(ad)), "proposal address not found")
388+ let aH = am(ad, -(aw), -(ax))
389+ let e = aG(ay, ad, aH)
390+ if ((e == e))
391+ then {
392+ let aX = invoke(t, "delete", [L(M, ad)], nil)
393+ if ((aX == aX))
394+ then {
395+ let aZ = invoke(t, "delete", [N(M, ad)], nil)
396+ if ((aZ == aZ))
397+ then [l(J(ad), -(aw)), l(K(ad), -(ax))]
398+ else throw("Strict value is not equal to itself.")
399+ }
400+ else throw("Strict value is not equal to itself.")
401+ }
402+ else throw("Strict value is not equal to itself.")
403+ }
404+ else throw("Strict value is not equal to itself.")
405+ }
406+
407+
408+
409+@Callable(aL)
410+func retractProposal (ad) = {
411+ let aQ = if (x("governance_retract_proposal_tx"))
412+ then aj(ad)
413+ else false
414+ if ((aQ == aQ))
415+ then {
416+ let aV = valueOrErrorMessage(getString(this, E(ad)), "proposal doesn't exist")
417+ let M = toString(aL.caller)
418+ if ((aV != M))
419+ then throw("only owner can retract proposal")
420+ else {
421+ let aU = invoke(t, "delete", [O(M)], nil)
422+ if ((aU == aU))
423+ then [DeleteEntry(B(ad)), DeleteEntry(C(ad)), DeleteEntry(D(ad)), DeleteEntry(E(ad)), DeleteEntry(I(ad)), DeleteEntry(J(ad)), DeleteEntry(K(ad)), DeleteEntry(z(ad)), DeleteEntry(G(ad)), DeleteEntry(H(ad))]
424+ else throw("Strict value is not equal to itself.")
425+ }
426+ }
427+ else throw("Strict value is not equal to itself.")
428+ }
429+
430+
431+
432+@Callable(aL)
433+func init (ba) = [j(p, ba)]
434+
435+

github/deemru/w8io/169f3d6 
24.76 ms