tx · 6gee9Wyas6LnQ3geZHBsiPxAP8auvDfivvZUZakMeV4i 3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL: -0.01500000 Waves 2022.06.01 11:13 [2077029] smart account 3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL > SELF 0.00000000 Waves
{ "type": 13, "id": "6gee9Wyas6LnQ3geZHBsiPxAP8auvDfivvZUZakMeV4i", "fee": 1500000, "feeAssetId": null, "timestamp": 1654071216537, "version": 1, "sender": "3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL", "senderPublicKey": "DnPyGWCgpQChvoQrnXQRcC9FtN32mPGrcog2wcKHdkVn", "proofs": [ "2XR4E9HsAwGANZ4vRMp8H9jHcZtBs8urr3kQ1LZE6ChGmnz2DQWxSUUcPvu4zoy7jDkPYF8khUxTQ1UFiDgFzRLu" ], "script": "base64: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AAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgUAAAACcGQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IAAAAKAAAAAWkBAAAACnNldE1hbmFnZXIAAAABAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBAAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAAJZAAAAAQUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5jb25maXJtTWFuYWdlcgAAAAAEAAAAAnBtCQEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAVoYXNQTQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAJwbQYJAAACAAAAAQIAAAASTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQAAAgAAAAECAAAAG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0AAAAAgAAAAt1c2VyQWRkcmVzcwAAAAx0YXJnZXRIZWlnaHQEAAAAF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAADGdldFN0ck9yRmFpbAAAAAIFAAAABHRoaXMFAAAAE2tleUJvb3N0aW5nQ29udHJhY3QCAAAAIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkABRQAAAACBQAAAANuaWwKAAAAAAFACQAD/AAAAAQFAAAAF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzAgAAACBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwkABEwAAAACBQAAAAx0YXJnZXRIZWlnaHQFAAAAA25pbAUAAAADbmlsAwkAAAEAAAACBQAAAAFAAgAAAANJbnQFAAAAAUAJAAACAAAAAQIAAAAYQ291bGRuJ3QgY2FzdCBBbnkgdG8gSW50AAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAAAwAAAB92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0AAAAEGJvb3N0aW5nQ29udHJhY3QAAAALZXBvY2hMZW5ndGgEAAAABWNoZWtzCQAETAAAAAIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkJAARMAAAAAgMJAQAAAAIhPQAAAAIJAAQmAAAAAQUAAAAfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUAAAAEdW5pdAYCAAAAMmludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQEAAAACIT0AAAACCQAEJgAAAAEFAAAAEGJvb3N0aW5nQ29udHJhY3QFAAAABHVuaXQGAgAAACFpbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAARMAAAAAgMJAABmAAAAAgUAAAALZXBvY2hMZW5ndGgAAAAAAAAAAAAGCQAAAgAAAAECAAAAFGludmFsaWQgZXBvY2ggbGVuZ3RoBQAAAANuaWwDCQAAAAAAAAIFAAAABWNoZWtzBQAAAAVjaGVrcwkABRQAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QFAAAAH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAATa2V5Qm9vc3RpbmdDb250cmFjdAUAAAAQYm9vc3RpbmdDb250cmFjdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOa2V5RXBvY2hMZW5ndGgFAAAAC2Vwb2NoTGVuZ3RoBQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAABmNyZWF0ZQAAAAIAAAANYW1vdW50QXNzZXRJZAAAAAxwcmljZUFzc2V0SWQEAAAABmNoZWNrcwkABEwAAAACAwkAAAAAAAACCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAia2V5Vm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAIAAAAABgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwQAAAAEcG9vbAkABRQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQEAAAADWluTGlzdEFjdGlvbnMJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAQAAAAlrZXlJbkxpc3QAAAABBQAAAARwb29sBgUAAAADbmlsBAAAABdzdGFydEhlaWdodElzTm90RGVmaW5lZAkAAAAAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADmtleVN0YXJ0SGVpZ2h0BQAAAAR1bml0BAAAABJzdGFydEhlaWdodEFjdGlvbnMDBQAAABdzdGFydEhlaWdodElzTm90RGVmaW5lZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOa2V5U3RhcnRIZWlnaHQFAAAABmhlaWdodAUAAAADbmlsBQAAAANuaWwJAAUUAAAAAgkABE4AAAACBQAAAA1pbkxpc3RBY3Rpb25zBQAAABJzdGFydEhlaWdodEFjdGlvbnMFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAABHZvdGUAAAADAAAADWFtb3VudEFzc2V0SWQAAAAMcHJpY2VBc3NldElkAAAABXNoYXJlBAAAAARwb29sCQAFFAAAAAIFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAQAAAALc3RhcnRIZWlnaHQJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAAAR0aGlzBQAAAA5rZXlTdGFydEhlaWdodAQAAAALZXBvY2hMZW5ndGgJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAAAR0aGlzBQAAAA5rZXlFcG9jaExlbmd0aAQAAAAJZW5kSGVpZ2h0CQAAZAAAAAIFAAAAC3N0YXJ0SGVpZ2h0BQAAAAtlcG9jaExlbmd0aAQAAAAJc2hhcmVVc2VkCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAMZ2V0SW50T3JVbml0AAAAAgUAAAAEdGhpcwkBAAAADGtleVNoYXJlVXNlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAAAQAAAANcG9vbFZvdGVTaGFyZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAADGdldEludE9yVW5pdAAAAAIFAAAABHRoaXMJAQAAAAxrZXlWb3RlU2hhcmUAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHBvb2wA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", "chainId": 84, "height": 2077029, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 7ymi4VA8L6BBGzUEHZWwPCUYSdHywrG4wqYa36sz8Kn6 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = 100 | |
7 | + | ||
8 | + | let c = makeString(["%s", "epochLength"], a) | |
9 | + | ||
10 | + | let d = makeString(["%s", "startHeight"], a) | |
11 | + | ||
12 | + | let e = makeString(["%s", "votingEmissionCandidateContract"], a) | |
13 | + | ||
14 | + | let f = makeString(["%s", "boostingContract"], a) | |
15 | + | ||
16 | + | func g (h) = { | |
17 | + | let i = h | |
18 | + | let j = i._1 | |
19 | + | let k = i._2 | |
20 | + | makeString(["%s%s%s", "inList", j, k], a) | |
21 | + | } | |
22 | + | ||
23 | + | ||
24 | + | func l (m) = makeString(["%s%s", "shareUsed", toString(m)], a) | |
25 | + | ||
26 | + | ||
27 | + | func n (m,h) = { | |
28 | + | let o = h | |
29 | + | let j = o._1 | |
30 | + | let k = o._2 | |
31 | + | makeString(["%s%s%s%s", "voteShare", j, k, toString(m)], a) | |
32 | + | } | |
33 | + | ||
34 | + | ||
35 | + | func p (m,h) = { | |
36 | + | let q = h | |
37 | + | let j = q._1 | |
38 | + | let k = q._2 | |
39 | + | makeString(["%s%s%s%s", "voteGwx", j, k, toString(m)], a) | |
40 | + | } | |
41 | + | ||
42 | + | ||
43 | + | func r (h) = { | |
44 | + | let s = h | |
45 | + | let j = s._1 | |
46 | + | let k = s._2 | |
47 | + | makeString(["%s%s%s", "votingResult", j, k], a) | |
48 | + | } | |
49 | + | ||
50 | + | ||
51 | + | func t (m,u,v) = { | |
52 | + | let w = makeString(["mandatory ", toString(m), ".", u, " is not defined"], "") | |
53 | + | valueOrErrorMessage({ | |
54 | + | let x = v | |
55 | + | if ($isInstanceOf(x, "String")) | |
56 | + | then { | |
57 | + | let y = x | |
58 | + | getString(m, u) | |
59 | + | } | |
60 | + | else if ($isInstanceOf(x, "Int")) | |
61 | + | then { | |
62 | + | let z = x | |
63 | + | getInteger(m, u) | |
64 | + | } | |
65 | + | else throw("invalid entry type") | |
66 | + | }, w) | |
67 | + | } | |
68 | + | ||
69 | + | ||
70 | + | func A (m,u) = { | |
71 | + | let B = t(m, u, 0) | |
72 | + | if ($isInstanceOf(B, "String")) | |
73 | + | then B | |
74 | + | else throw("Couldn't cast Int|String to String") | |
75 | + | } | |
76 | + | ||
77 | + | ||
78 | + | func C (m,u) = { | |
79 | + | let B = t(m, u, 0) | |
80 | + | if ($isInstanceOf(B, "String")) | |
81 | + | then B | |
82 | + | else unit | |
83 | + | } | |
84 | + | ||
85 | + | ||
86 | + | func D (m,u) = { | |
87 | + | let B = t(m, u, 0) | |
88 | + | if ($isInstanceOf(B, "Int")) | |
89 | + | then B | |
90 | + | else throw("Couldn't cast Int|String to Int") | |
91 | + | } | |
92 | + | ||
93 | + | ||
94 | + | func E (m,u) = { | |
95 | + | let B = t(m, u, 0) | |
96 | + | if ($isInstanceOf(B, "Int")) | |
97 | + | then B | |
98 | + | else unit | |
99 | + | } | |
100 | + | ||
101 | + | ||
102 | + | func F () = "%s__managerPublicKey" | |
103 | + | ||
104 | + | ||
105 | + | func G () = "%s__pendingManagerPublicKey" | |
106 | + | ||
107 | + | ||
108 | + | func H () = { | |
109 | + | let x = getString(F()) | |
110 | + | if ($isInstanceOf(x, "String")) | |
111 | + | then { | |
112 | + | let I = x | |
113 | + | fromBase58String(I) | |
114 | + | } | |
115 | + | else if ($isInstanceOf(x, "Unit")) | |
116 | + | then unit | |
117 | + | else throw("Match error") | |
118 | + | } | |
119 | + | ||
120 | + | ||
121 | + | func J () = { | |
122 | + | let x = getString(G()) | |
123 | + | if ($isInstanceOf(x, "String")) | |
124 | + | then { | |
125 | + | let I = x | |
126 | + | fromBase58String(I) | |
127 | + | } | |
128 | + | else if ($isInstanceOf(x, "Unit")) | |
129 | + | then unit | |
130 | + | else throw("Match error") | |
131 | + | } | |
132 | + | ||
133 | + | ||
134 | + | func K (L) = { | |
135 | + | let M = throw("Permission denied") | |
136 | + | let x = H() | |
137 | + | if ($isInstanceOf(x, "ByteVector")) | |
138 | + | then { | |
139 | + | let N = x | |
140 | + | if ((L.callerPublicKey == N)) | |
141 | + | then true | |
142 | + | else M | |
143 | + | } | |
144 | + | else if ($isInstanceOf(x, "Unit")) | |
145 | + | then if ((L.caller == this)) | |
146 | + | then true | |
147 | + | else M | |
148 | + | else throw("Match error") | |
149 | + | } | |
150 | + | ||
151 | + | ||
152 | + | @Callable(L) | |
153 | + | func setManager (O) = { | |
154 | + | let P = K(L) | |
155 | + | if ((P == P)) | |
156 | + | then { | |
157 | + | let Q = fromBase58String(O) | |
158 | + | if ((Q == Q)) | |
159 | + | then [StringEntry(G(), O)] | |
160 | + | else throw("Strict value is not equal to itself.") | |
161 | + | } | |
162 | + | else throw("Strict value is not equal to itself.") | |
163 | + | } | |
164 | + | ||
165 | + | ||
166 | + | ||
167 | + | @Callable(L) | |
168 | + | func confirmManager () = { | |
169 | + | let R = J() | |
170 | + | let S = if (isDefined(R)) | |
171 | + | then true | |
172 | + | else throw("No pending manager") | |
173 | + | if ((S == S)) | |
174 | + | then { | |
175 | + | let T = if ((L.callerPublicKey == value(R))) | |
176 | + | then true | |
177 | + | else throw("You are not pending manager") | |
178 | + | if ((T == T)) | |
179 | + | then [StringEntry(F(), toBase58String(value(R))), DeleteEntry(G())] | |
180 | + | else throw("Strict value is not equal to itself.") | |
181 | + | } | |
182 | + | else throw("Strict value is not equal to itself.") | |
183 | + | } | |
184 | + | ||
185 | + | ||
186 | + | ||
187 | + | @Callable(L) | |
188 | + | func getUserGwxAmountAtHeight (U,V) = { | |
189 | + | let W = valueOrErrorMessage(addressFromString(A(this, f)), "invalid boosting contract address") | |
190 | + | $Tuple2(nil, { | |
191 | + | let B = invoke(W, "getUserGwxAmountAtHeightREADONLY", [U, V], nil) | |
192 | + | if ($isInstanceOf(B, "Int")) | |
193 | + | then B | |
194 | + | else throw("Couldn't cast Any to Int") | |
195 | + | }) | |
196 | + | } | |
197 | + | ||
198 | + | ||
199 | + | ||
200 | + | @Callable(L) | |
201 | + | func constructor (X,Y,Z) = { | |
202 | + | let aa = [K(L), if ((addressFromString(X) != unit)) | |
203 | + | then true | |
204 | + | else "invalid voting emission candidate contract address", if ((addressFromString(Y) != unit)) | |
205 | + | then true | |
206 | + | else "invalid boosting contract address", if ((Z > 0)) | |
207 | + | then true | |
208 | + | else throw("invalid epoch length")] | |
209 | + | if ((aa == aa)) | |
210 | + | then $Tuple2([StringEntry(e, X), StringEntry(f, Y), IntegerEntry(c, Z)], unit) | |
211 | + | else throw("Strict value is not equal to itself.") | |
212 | + | } | |
213 | + | ||
214 | + | ||
215 | + | ||
216 | + | @Callable(L) | |
217 | + | func create (j,k) = { | |
218 | + | let ab = [if ((toBase58String(L.caller.bytes) == valueOrElse(getString(this, e), ""))) | |
219 | + | then true | |
220 | + | else K(L)] | |
221 | + | if ((ab == ab)) | |
222 | + | then { | |
223 | + | let h = $Tuple2(j, k) | |
224 | + | let ac = [BooleanEntry(g(h), true)] | |
225 | + | let ad = (getString(this, d) == unit) | |
226 | + | let ae = if (ad) | |
227 | + | then [IntegerEntry(d, height)] | |
228 | + | else nil | |
229 | + | $Tuple2((ac ++ ae), unit) | |
230 | + | } | |
231 | + | else throw("Strict value is not equal to itself.") | |
232 | + | } | |
233 | + | ||
234 | + | ||
235 | + | ||
236 | + | @Callable(L) | |
237 | + | func vote (j,k,af) = { | |
238 | + | let h = $Tuple2(j, k) | |
239 | + | let ag = D(this, d) | |
240 | + | let Z = D(this, c) | |
241 | + | let ah = (ag + Z) | |
242 | + | let ai = valueOrElse(E(this, l(L.caller)), 0) | |
243 | + | let aj = valueOrElse(E(this, n(L.caller, h)), 0) | |
244 | + | let ak = (b - ai) | |
245 | + | let al = (aj + af) | |
246 | + | let am = { | |
247 | + | let B = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(L.caller.bytes), ah], nil) | |
248 | + | if ($isInstanceOf(B, "Int")) | |
249 | + | then B | |
250 | + | else throw("Couldn't cast Any to Int") | |
251 | + | } | |
252 | + | let an = fraction(am, al, b) | |
253 | + | let ab = [if ((getBoolean(g(h)) != unit)) | |
254 | + | then true | |
255 | + | else throw("invalid assets"), if ((ah > height)) | |
256 | + | then true | |
257 | + | else throw("invalid height"), if ((an > 0)) | |
258 | + | then true | |
259 | + | else throw("you do not have gWX"), if (if ((af > 0)) | |
260 | + | then (ak >= af) | |
261 | + | else false) | |
262 | + | then true | |
263 | + | else throw("invalid share")] | |
264 | + | if ((ab == ab)) | |
265 | + | then $Tuple2([IntegerEntry(l(L.caller), (ai + af)), IntegerEntry(n(L.caller, h), al), IntegerEntry(p(L.caller, h), an)], unit) | |
266 | + | else throw("Strict value is not equal to itself.") | |
267 | + | } | |
268 | + | ||
269 | + | ||
270 | + | ||
271 | + | @Callable(L) | |
272 | + | func cancelVote (j,k) = { | |
273 | + | let h = $Tuple2(j, k) | |
274 | + | let ag = D(this, d) | |
275 | + | let Z = D(this, c) | |
276 | + | let ah = (ag + Z) | |
277 | + | let aj = valueOrElse(E(this, n(L.caller, h)), 0) | |
278 | + | let ai = valueOrElse(E(this, l(L.caller)), 0) | |
279 | + | let ab = [if ((getBoolean(g(h)) != unit)) | |
280 | + | then true | |
281 | + | else throw("invalid assets"), if ((ah > height)) | |
282 | + | then true | |
283 | + | else throw("invalid height"), if ((aj > 0)) | |
284 | + | then true | |
285 | + | else throw("no vote")] | |
286 | + | if ((ab == ab)) | |
287 | + | then $Tuple2([IntegerEntry(l(L.caller), max([(ai - aj), 0])), DeleteEntry(n(L.caller, h)), DeleteEntry(p(L.caller, h))], unit) | |
288 | + | else throw("Strict value is not equal to itself.") | |
289 | + | } | |
290 | + | ||
291 | + | ||
292 | + | ||
293 | + | @Callable(L) | |
294 | + | func setEpochLength (ao) = { | |
295 | + | let aa = [K(L), if ((ao > 0)) | |
296 | + | then true | |
297 | + | else throw("invalid epoch length")] | |
298 | + | if ((aa == aa)) | |
299 | + | then $Tuple2([IntegerEntry(c, ao)], unit) | |
300 | + | else throw("Strict value is not equal to itself.") | |
301 | + | } | |
302 | + | ||
303 | + | ||
304 | + | ||
305 | + | @Callable(L) | |
306 | + | func finalize () = $Tuple2(nil, unit) | |
307 | + | ||
308 | + | ||
309 | + | ||
310 | + | @Callable(L) | |
311 | + | func onVerificationLoss (ap) = $Tuple2(nil, unit) | |
312 | + | ||
313 | + | ||
314 | + | @Verifier(aq) | |
315 | + | func ar () = { | |
316 | + | let as = { | |
317 | + | let x = H() | |
318 | + | if ($isInstanceOf(x, "ByteVector")) | |
319 | + | then { | |
320 | + | let N = x | |
321 | + | N | |
322 | + | } | |
323 | + | else if ($isInstanceOf(x, "Unit")) | |
324 | + | then aq.senderPublicKey | |
325 | + | else throw("Match error") | |
326 | + | } | |
327 | + | sigVerify(aq.bodyBytes, aq.proofs[0], as) | |
328 | + | } | |
329 | + |
github/deemru/w8io/169f3d6 21.51 ms ◑