tx · 4rKsJoCdotWQCih4tqjSoRhSF9qEDjqmk3kd7mU9mAN3

3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP:  -0.01400000 Waves

2020.01.23 17:35 [1897557] smart account 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > SELF 0.00000000 Waves

{ "type": 13, "id": "4rKsJoCdotWQCih4tqjSoRhSF9qEDjqmk3kd7mU9mAN3", "fee": 1400000, "feeAssetId": null, "timestamp": 1579787001516, "version": 1, "sender": "3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP", "senderPublicKey": "GqXuX2WHNr3WUqTaeH2YCySFY45NAJoE9RmY9bEWkzh", "proofs": [ "3URyhoFTduMPk3EtXBxyeg9hnQ4ghXYYywBVQKDLRXbzCyVMJByJyPftH4XsjAHF3Q4NdWGj17YcgCEQ87zDZywD", "3PaauQsivWWuo88q2ZPKT6HPJ9u4yHUMEDgoBXfaTRDV3t75fXicbsH5nnGFgPvevJx5cUAqYntbUWB4aPzYuCbT", "64fuSYX8F6G8D1Z4KbvwHpKTxJgt74FysQyiTZyk8kyT14G7BZ1LzMk6DzLrV4Pfp7WaCZqkviwcpzydcXAhyQJB" ], "script": "base64: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YmVyQnlLZXkAAAABBQAAAA1QcmljZUluZGV4S2V5AAAAAAlpc0Jsb2NrZWQJAQAAAAxnZXRCb29sQnlLZXkAAAABBQAAAAxJc0Jsb2NrZWRLZXkAAAAAFGJmdENvZWZmaWNpZW50T3JhY2xlAAAAAAAAAAADAAAAABJwZXJjZW50UHJpY2VPZmZzZXQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAADlByaWNlT2Zmc2V0S2V5AAAAAAdvcmFjbGVzCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAApPcmFjbGVzS2V5AAAAAAtvcmFjbGVzTGlzdAkBAAAAFmNvbnZlcnRKc29uQXJyYXlUb0xpc3QAAAABBQAAAAdvcmFjbGVzAQAAABZnZXRPcmFjbGVQcm92aWRlSGVpZ2h0AAAAAgAAAAVvd25lcgAAAAZoZWlnaHQJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAABW93bmVyCQEAAAAYZ2V0T3JhY2xlUHJvdmlkZVByaWNlS2V5AAAAAQUAAAAGaGVpZ2h0AQAAAA9nZXRQcmljZUhpc3RvcnkAAAABAAAABmhlaWdodAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmdldFByaWNlSGlzdG9yeUtleQAAAAEFAAAABmhlaWdodAEAAAAIaXNPcmFjbGUAAAABAAAAB2FkZHJlc3MJAQAAAAlpc0RlZmluZWQAAAABCQAEswAAAAIFAAAAB29yYWNsZXMFAAAAB2FkZHJlc3MBAAAAGGZpbHRlckFkbWluc1ZvdGVCeUFjdGlvbgAAAAMAAAAGcmVzdWx0AAAAB2FkZHJlc3MAAAAGYWN0aW9uCQAETAAAAAIFAAAAB2FkZHJlc3MFAAAABnJlc3VsdAEAAAAdZmlsdGVyQWRtaW5zVm90ZUJ5QmxvY2tBY3Rpb24AAAACAAAABnJlc3VsdAAAAAdhZGRyZXNzCQEAAAAYZmlsdGVyQWRtaW5zVm90ZUJ5QWN0aW9uAAAAAwUAAAAGcmVzdWx0BQAAAAdhZGRyZXNzBQAAAAVCTE9DSwEAAAAfZmlsdGVyQWRtaW5zVm90ZUJ5VW5ibG9ja0Fj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", "chainId": 87, "height": 1897557, "spentComplexity": 0 } View: original | compacted Prev: 7DRyRYFS9mcnbQDQnhZGwY4xaTc35BXfYtcsGJv59VAz Next: 5AtmaD7Vre1AMSxEh6JvXbKZSv8QeSFoK39n8gK1iXD4 Diff:
OldNewDifferences
7575
7676 let s = "oracles"
7777
78-let t = "admins"
78+let t = "price_offset"
7979
80-let u = "vote_interval"
80+let u = "price"
8181
82-let v = "coefficient_oracle"
82+let v = "is_blocked"
8383
84-let w = "coefficient_admin"
84+let w = "price_index"
8585
86-let x = "script_update_interval"
87-
88-let y = "price_offset"
89-
90-let z = "price"
91-
92-let A = "is_blocked"
93-
94-let B = "vote_expire_block"
95-
96-let C = "script_update_block"
97-
98-let D = "price_index"
99-
100-func E (F) = ("admin_vote_" + F)
86+func x (y) = (("black_swarm_price" + "_") + toString(y))
10187
10288
103-func G (F) = ((E(F) + "_") + "action")
89+func z (y) = ((u + "_") + toString(y))
10490
10591
106-func H (I) = (("black_swarm_price" + "_") + toString(I))
92+func A (B) = ((w + "_") + toString(B))
10793
10894
109-func J (I) = ((z + "_") + toString(I))
95+func C (D) = ("price_" + toString(D))
11096
11197
112-func K (L) = ((D + "_") + toString(L))
98+let E = a(u)
99+
100+let F = a(w)
101+
102+let G = f(v)
103+
104+let H = 3
105+
106+let I = a(t)
107+
108+let J = e(s)
109+
110+let K = n(J)
111+
112+func L (M,D) = g(addressFromStringValue(M), C(D))
113113
114114
115-func M (N) = ("price_" + toString(N))
115+func N (D) = a(z(D))
116116
117117
118-let O = a(z)
119-
120-let P = a(D)
121-
122-let Q = a(B)
123-
124-let R = a(C)
125-
126-let S = a(x)
127-
128-let T = f(A)
129-
130-let U = a(v)
131-
132-let V = a(w)
133-
134-let W = a(y)
135-
136-let X = a(u)
137-
138-let Y = e(s)
139-
140-let Z = n(Y)
141-
142-func aa (F) = e(G(F))
118+func O (h) = isDefined(indexOf(J, h))
143119
144120
145-func ab (F,N) = g(addressFromStringValue(F), M(N))
121+func P (Q,h,R) = h :: Q
146122
147123
148-func ac (N) = a(J(N))
124+func S (Q,h) = P(Q, h, p)
149125
150126
151-func ad (h) = isDefined(indexOf(Y, h))
127+func T (Q,h) = P(Q, h, q)
152128
153129
154-func ae (af,h,ag) = h :: af
130+func U (Q,h) = P(Q, h, r)
155131
156132
157-func ah (af,h) = ae(af, h, p)
158-
159-
160-func ai (af,h) = ae(af, h, q)
161-
162-
163-func aj (af,h) = ae(af, h, r)
164-
165-
166-@Callable(ak)
167-func finalizeCurrentPrice () = {
168- let al = [ab(Z[0], height), ab(Z[1], height), ab(Z[2], height), ab(Z[3], height), ab(Z[4], height)]
169- let am = (((((if ((al[0] != 0))
170- then 1
171- else 0) + (if ((al[1] != 0))
172- then 1
173- else 0)) + (if ((al[2] != 0))
174- then 1
175- else 0)) + (if ((al[3] != 0))
176- then 1
177- else 0)) + (if ((al[4] != 0))
178- then 1
179- else 0))
180- let an = ((((al[0] + al[1]) + al[2]) + al[3]) + al[4])
181- let ao = (an / am)
182- if (T)
183- then throw("contract is blocked")
184- else if ((ac(height) != 0))
185- then throw("wait next block")
186- else if ((U > am))
187- then throw((((toString(U) + "/5 oracles need to set a price (") + toString(am)) + ")"))
188- else if (if ((ao >= (O + ((O * W) / 100))))
189- then true
190- else ((O - ((O * W) / 100)) >= ao))
191- then WriteSet([DataEntry(A, true), DataEntry(H(height), ao)])
192- else {
193- let ap = (P + 1)
194- WriteSet([DataEntry(z, ao), DataEntry(J(height), ao), DataEntry(D, ap), DataEntry(K(ap), height)])
195- }
133+func V (W) = {
134+ let X = 90
135+ let Y = 110
136+ let Z = W[0]
137+ let aa = if ((0 >= W[0]))
138+ then [0]
139+ else {
140+ let ab = ((W[1] * 100) / Z)
141+ let ac = ((W[2] * 100) / Z)
142+ let ad = ((W[3] * 100) / Z)
143+ let ae = ((W[4] * 100) / Z)
144+ let af = if (if ((Y > ab))
145+ then (ab > X)
146+ else false)
147+ then [1, 0]
148+ else [0]
149+ let ag = if (if ((Y > ac))
150+ then (ac > X)
151+ else false)
152+ then 2 :: af
153+ else af
154+ let ah = if (if ((Y > ad))
155+ then (ad > X)
156+ else false)
157+ then 3 :: ag
158+ else ag
159+ if (if ((Y > ae))
160+ then (ae > X)
161+ else false)
162+ then 4 :: ah
163+ else ah
164+ }
165+ let ai = if ((size(aa) >= 3))
166+ then aa
167+ else {
168+ let aj = W[1]
169+ if ((0 >= aj))
170+ then [1]
171+ else {
172+ let ak = ((W[0] * 100) / aj)
173+ let al = ((W[2] * 100) / aj)
174+ let am = ((W[3] * 100) / aj)
175+ let an = ((W[4] * 100) / aj)
176+ let af = if (if ((Y > ak))
177+ then (ak > X)
178+ else false)
179+ then [0, 1]
180+ else [1]
181+ let ag = if (if ((Y > al))
182+ then (al > X)
183+ else false)
184+ then 2 :: af
185+ else af
186+ let ah = if (if ((Y > am))
187+ then (am > X)
188+ else false)
189+ then 3 :: ag
190+ else ag
191+ if (if ((Y > an))
192+ then (an > X)
193+ else false)
194+ then 4 :: ah
195+ else ah
196+ }
197+ }
198+ let ao = if ((size(ai) >= 3))
199+ then ai
200+ else {
201+ let ap = W[2]
202+ if ((0 >= ap))
203+ then [2]
204+ else {
205+ let aq = ((W[0] * 100) / ap)
206+ let ar = ((W[1] * 100) / ap)
207+ let as = ((W[3] * 100) / ap)
208+ let at = ((W[4] * 100) / ap)
209+ let af = if (if ((Y > aq))
210+ then (aq > X)
211+ else false)
212+ then [0, 2]
213+ else [2]
214+ let ag = if (if ((Y > ar))
215+ then (ar > X)
216+ else false)
217+ then 1 :: af
218+ else af
219+ let ah = if (if ((Y > as))
220+ then (as > X)
221+ else false)
222+ then 3 :: ag
223+ else ag
224+ if (if ((Y > at))
225+ then (at > X)
226+ else false)
227+ then 4 :: ah
228+ else ah
229+ }
230+ }
231+ let au = if ((size(ao) >= 3))
232+ then ao
233+ else {
234+ let av = W[3]
235+ if ((0 >= av))
236+ then [3]
237+ else {
238+ let aw = ((W[0] * 100) / av)
239+ let ax = ((W[1] * 100) / av)
240+ let ay = ((W[2] * 100) / av)
241+ let az = ((W[4] * 100) / av)
242+ let af = if (if ((Y > aw))
243+ then (aw > X)
244+ else false)
245+ then [0, 3]
246+ else [3]
247+ let ag = if (if ((Y > ax))
248+ then (ax > X)
249+ else false)
250+ then 1 :: af
251+ else af
252+ let ah = if (if ((Y > ay))
253+ then (ay > X)
254+ else false)
255+ then 2 :: ag
256+ else ag
257+ if (if ((Y > az))
258+ then (az > X)
259+ else false)
260+ then 4 :: ah
261+ else ah
262+ }
263+ }
264+ if ((size(au) >= 3))
265+ then au
266+ else {
267+ let aA = W[4]
268+ if ((0 >= aA))
269+ then [4]
270+ else {
271+ let aB = ((W[0] * 100) / aA)
272+ let aC = ((W[1] * 100) / aA)
273+ let aD = ((W[2] * 100) / aA)
274+ let aE = ((W[3] * 100) / aA)
275+ let af = if (if ((Y > aB))
276+ then (aB > X)
277+ else false)
278+ then [0, 4]
279+ else [4]
280+ let ag = if (if ((Y > aC))
281+ then (aC > X)
282+ else false)
283+ then 1 :: af
284+ else af
285+ let ah = if (if ((Y > aD))
286+ then (aD > X)
287+ else false)
288+ then 2 :: ag
289+ else ag
290+ if (if ((Y > aE))
291+ then (aE > X)
292+ else false)
293+ then 3 :: ah
294+ else ah
295+ }
296+ }
196297 }
197298
198299
199-@Verifier(aq)
200-func ar () = {
201- let as = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
202- let at = ((((if (sigVerify(aq.bodyBytes, aq.proofs[0], fromBase58String(as[0])))
300+@Callable(aF)
301+func finalizeCurrentPrice () = {
302+ let W = [L(K[0], height), L(K[1], height), L(K[2], height), L(K[3], height), L(K[4], height)]
303+ let aG = V(W)
304+ let aH = size(aG)
305+ if ((3 > aH))
306+ then throw("Could not finalize price because of big variation")
307+ else {
308+ let aI = ((W[aG[0]] + W[aG[1]]) + W[aG[2]])
309+ let aJ = if ((aH >= 4))
310+ then (aI + W[aG[3]])
311+ else aI
312+ let aK = if ((aH >= 5))
313+ then (aJ + W[aG[4]])
314+ else aJ
315+ if ((aH >= 6))
316+ then throw("Invalid pricesInRange creation")
317+ else {
318+ let aL = (aK / aH)
319+ if (G)
320+ then throw("contract is blocked")
321+ else if ((N(height) != 0))
322+ then throw("wait next block")
323+ else if ((H > aH))
324+ then throw((((toString(H) + "/5 oracles need to set a price (") + toString(aH)) + ")"))
325+ else if (if ((aL >= (E + ((E * I) / 100))))
326+ then true
327+ else ((E - ((E * I) / 100)) >= aL))
328+ then WriteSet([DataEntry(v, true), DataEntry(x(height), aL)])
329+ else {
330+ let aM = (F + 1)
331+ WriteSet([DataEntry(u, aL), DataEntry(z(height), aL), DataEntry(w, aM), DataEntry(A(aM), height)])
332+ }
333+ }
334+ }
335+ }
336+
337+
338+@Verifier(aN)
339+func aO () = {
340+ let aP = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
341+ let aQ = ((((if (sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(aP[0])))
203342 then 1
204- else 0) + (if (sigVerify(aq.bodyBytes, aq.proofs[1], fromBase58String(as[1])))
343+ else 0) + (if (sigVerify(aN.bodyBytes, aN.proofs[1], fromBase58String(aP[1])))
205344 then 1
206- else 0)) + (if (sigVerify(aq.bodyBytes, aq.proofs[2], fromBase58String(as[2])))
345+ else 0)) + (if (sigVerify(aN.bodyBytes, aN.proofs[2], fromBase58String(aP[2])))
207346 then 1
208- else 0)) + (if (sigVerify(aq.bodyBytes, aq.proofs[3], fromBase58String(as[3])))
347+ else 0)) + (if (sigVerify(aN.bodyBytes, aN.proofs[3], fromBase58String(aP[3])))
209348 then 2
210349 else 0))
211- (at >= 3)
350+ (aQ >= 3)
212351 }
213352
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = getInteger(this, b)
66 if ($isInstanceOf(c, "Int"))
77 then {
88 let d = c
99 d
1010 }
1111 else 0
1212 }
1313
1414
1515 func e (b) = {
1616 let c = getString(this, b)
1717 if ($isInstanceOf(c, "String"))
1818 then {
1919 let d = c
2020 d
2121 }
2222 else ""
2323 }
2424
2525
2626 func f (b) = {
2727 let c = getBoolean(this, b)
2828 if ($isInstanceOf(c, "Boolean"))
2929 then {
3030 let d = c
3131 d
3232 }
3333 else false
3434 }
3535
3636
3737 func g (h,b) = {
3838 let c = getInteger(h, b)
3939 if ($isInstanceOf(c, "Int"))
4040 then {
4141 let d = c
4242 d
4343 }
4444 else 0
4545 }
4646
4747
4848 func i (h,b) = {
4949 let c = getString(h, b)
5050 if ($isInstanceOf(c, "String"))
5151 then {
5252 let d = c
5353 d
5454 }
5555 else ""
5656 }
5757
5858
5959 func j (k,l) = {
6060 let m = split(k, l)
6161 if ((take(m[1], 1) == ","))
6262 then (m[0] + drop(m[1], 1))
6363 else (dropRight(m[0], 1) + m[1])
6464 }
6565
6666
6767 func n (o) = split(o, ",")
6868
6969
7070 let p = "block"
7171
7272 let q = "unblock"
7373
7474 let r = "update"
7575
7676 let s = "oracles"
7777
78-let t = "admins"
78+let t = "price_offset"
7979
80-let u = "vote_interval"
80+let u = "price"
8181
82-let v = "coefficient_oracle"
82+let v = "is_blocked"
8383
84-let w = "coefficient_admin"
84+let w = "price_index"
8585
86-let x = "script_update_interval"
87-
88-let y = "price_offset"
89-
90-let z = "price"
91-
92-let A = "is_blocked"
93-
94-let B = "vote_expire_block"
95-
96-let C = "script_update_block"
97-
98-let D = "price_index"
99-
100-func E (F) = ("admin_vote_" + F)
86+func x (y) = (("black_swarm_price" + "_") + toString(y))
10187
10288
103-func G (F) = ((E(F) + "_") + "action")
89+func z (y) = ((u + "_") + toString(y))
10490
10591
106-func H (I) = (("black_swarm_price" + "_") + toString(I))
92+func A (B) = ((w + "_") + toString(B))
10793
10894
109-func J (I) = ((z + "_") + toString(I))
95+func C (D) = ("price_" + toString(D))
11096
11197
112-func K (L) = ((D + "_") + toString(L))
98+let E = a(u)
99+
100+let F = a(w)
101+
102+let G = f(v)
103+
104+let H = 3
105+
106+let I = a(t)
107+
108+let J = e(s)
109+
110+let K = n(J)
111+
112+func L (M,D) = g(addressFromStringValue(M), C(D))
113113
114114
115-func M (N) = ("price_" + toString(N))
115+func N (D) = a(z(D))
116116
117117
118-let O = a(z)
119-
120-let P = a(D)
121-
122-let Q = a(B)
123-
124-let R = a(C)
125-
126-let S = a(x)
127-
128-let T = f(A)
129-
130-let U = a(v)
131-
132-let V = a(w)
133-
134-let W = a(y)
135-
136-let X = a(u)
137-
138-let Y = e(s)
139-
140-let Z = n(Y)
141-
142-func aa (F) = e(G(F))
118+func O (h) = isDefined(indexOf(J, h))
143119
144120
145-func ab (F,N) = g(addressFromStringValue(F), M(N))
121+func P (Q,h,R) = h :: Q
146122
147123
148-func ac (N) = a(J(N))
124+func S (Q,h) = P(Q, h, p)
149125
150126
151-func ad (h) = isDefined(indexOf(Y, h))
127+func T (Q,h) = P(Q, h, q)
152128
153129
154-func ae (af,h,ag) = h :: af
130+func U (Q,h) = P(Q, h, r)
155131
156132
157-func ah (af,h) = ae(af, h, p)
158-
159-
160-func ai (af,h) = ae(af, h, q)
161-
162-
163-func aj (af,h) = ae(af, h, r)
164-
165-
166-@Callable(ak)
167-func finalizeCurrentPrice () = {
168- let al = [ab(Z[0], height), ab(Z[1], height), ab(Z[2], height), ab(Z[3], height), ab(Z[4], height)]
169- let am = (((((if ((al[0] != 0))
170- then 1
171- else 0) + (if ((al[1] != 0))
172- then 1
173- else 0)) + (if ((al[2] != 0))
174- then 1
175- else 0)) + (if ((al[3] != 0))
176- then 1
177- else 0)) + (if ((al[4] != 0))
178- then 1
179- else 0))
180- let an = ((((al[0] + al[1]) + al[2]) + al[3]) + al[4])
181- let ao = (an / am)
182- if (T)
183- then throw("contract is blocked")
184- else if ((ac(height) != 0))
185- then throw("wait next block")
186- else if ((U > am))
187- then throw((((toString(U) + "/5 oracles need to set a price (") + toString(am)) + ")"))
188- else if (if ((ao >= (O + ((O * W) / 100))))
189- then true
190- else ((O - ((O * W) / 100)) >= ao))
191- then WriteSet([DataEntry(A, true), DataEntry(H(height), ao)])
192- else {
193- let ap = (P + 1)
194- WriteSet([DataEntry(z, ao), DataEntry(J(height), ao), DataEntry(D, ap), DataEntry(K(ap), height)])
195- }
133+func V (W) = {
134+ let X = 90
135+ let Y = 110
136+ let Z = W[0]
137+ let aa = if ((0 >= W[0]))
138+ then [0]
139+ else {
140+ let ab = ((W[1] * 100) / Z)
141+ let ac = ((W[2] * 100) / Z)
142+ let ad = ((W[3] * 100) / Z)
143+ let ae = ((W[4] * 100) / Z)
144+ let af = if (if ((Y > ab))
145+ then (ab > X)
146+ else false)
147+ then [1, 0]
148+ else [0]
149+ let ag = if (if ((Y > ac))
150+ then (ac > X)
151+ else false)
152+ then 2 :: af
153+ else af
154+ let ah = if (if ((Y > ad))
155+ then (ad > X)
156+ else false)
157+ then 3 :: ag
158+ else ag
159+ if (if ((Y > ae))
160+ then (ae > X)
161+ else false)
162+ then 4 :: ah
163+ else ah
164+ }
165+ let ai = if ((size(aa) >= 3))
166+ then aa
167+ else {
168+ let aj = W[1]
169+ if ((0 >= aj))
170+ then [1]
171+ else {
172+ let ak = ((W[0] * 100) / aj)
173+ let al = ((W[2] * 100) / aj)
174+ let am = ((W[3] * 100) / aj)
175+ let an = ((W[4] * 100) / aj)
176+ let af = if (if ((Y > ak))
177+ then (ak > X)
178+ else false)
179+ then [0, 1]
180+ else [1]
181+ let ag = if (if ((Y > al))
182+ then (al > X)
183+ else false)
184+ then 2 :: af
185+ else af
186+ let ah = if (if ((Y > am))
187+ then (am > X)
188+ else false)
189+ then 3 :: ag
190+ else ag
191+ if (if ((Y > an))
192+ then (an > X)
193+ else false)
194+ then 4 :: ah
195+ else ah
196+ }
197+ }
198+ let ao = if ((size(ai) >= 3))
199+ then ai
200+ else {
201+ let ap = W[2]
202+ if ((0 >= ap))
203+ then [2]
204+ else {
205+ let aq = ((W[0] * 100) / ap)
206+ let ar = ((W[1] * 100) / ap)
207+ let as = ((W[3] * 100) / ap)
208+ let at = ((W[4] * 100) / ap)
209+ let af = if (if ((Y > aq))
210+ then (aq > X)
211+ else false)
212+ then [0, 2]
213+ else [2]
214+ let ag = if (if ((Y > ar))
215+ then (ar > X)
216+ else false)
217+ then 1 :: af
218+ else af
219+ let ah = if (if ((Y > as))
220+ then (as > X)
221+ else false)
222+ then 3 :: ag
223+ else ag
224+ if (if ((Y > at))
225+ then (at > X)
226+ else false)
227+ then 4 :: ah
228+ else ah
229+ }
230+ }
231+ let au = if ((size(ao) >= 3))
232+ then ao
233+ else {
234+ let av = W[3]
235+ if ((0 >= av))
236+ then [3]
237+ else {
238+ let aw = ((W[0] * 100) / av)
239+ let ax = ((W[1] * 100) / av)
240+ let ay = ((W[2] * 100) / av)
241+ let az = ((W[4] * 100) / av)
242+ let af = if (if ((Y > aw))
243+ then (aw > X)
244+ else false)
245+ then [0, 3]
246+ else [3]
247+ let ag = if (if ((Y > ax))
248+ then (ax > X)
249+ else false)
250+ then 1 :: af
251+ else af
252+ let ah = if (if ((Y > ay))
253+ then (ay > X)
254+ else false)
255+ then 2 :: ag
256+ else ag
257+ if (if ((Y > az))
258+ then (az > X)
259+ else false)
260+ then 4 :: ah
261+ else ah
262+ }
263+ }
264+ if ((size(au) >= 3))
265+ then au
266+ else {
267+ let aA = W[4]
268+ if ((0 >= aA))
269+ then [4]
270+ else {
271+ let aB = ((W[0] * 100) / aA)
272+ let aC = ((W[1] * 100) / aA)
273+ let aD = ((W[2] * 100) / aA)
274+ let aE = ((W[3] * 100) / aA)
275+ let af = if (if ((Y > aB))
276+ then (aB > X)
277+ else false)
278+ then [0, 4]
279+ else [4]
280+ let ag = if (if ((Y > aC))
281+ then (aC > X)
282+ else false)
283+ then 1 :: af
284+ else af
285+ let ah = if (if ((Y > aD))
286+ then (aD > X)
287+ else false)
288+ then 2 :: ag
289+ else ag
290+ if (if ((Y > aE))
291+ then (aE > X)
292+ else false)
293+ then 3 :: ah
294+ else ah
295+ }
296+ }
196297 }
197298
198299
199-@Verifier(aq)
200-func ar () = {
201- let as = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
202- let at = ((((if (sigVerify(aq.bodyBytes, aq.proofs[0], fromBase58String(as[0])))
300+@Callable(aF)
301+func finalizeCurrentPrice () = {
302+ let W = [L(K[0], height), L(K[1], height), L(K[2], height), L(K[3], height), L(K[4], height)]
303+ let aG = V(W)
304+ let aH = size(aG)
305+ if ((3 > aH))
306+ then throw("Could not finalize price because of big variation")
307+ else {
308+ let aI = ((W[aG[0]] + W[aG[1]]) + W[aG[2]])
309+ let aJ = if ((aH >= 4))
310+ then (aI + W[aG[3]])
311+ else aI
312+ let aK = if ((aH >= 5))
313+ then (aJ + W[aG[4]])
314+ else aJ
315+ if ((aH >= 6))
316+ then throw("Invalid pricesInRange creation")
317+ else {
318+ let aL = (aK / aH)
319+ if (G)
320+ then throw("contract is blocked")
321+ else if ((N(height) != 0))
322+ then throw("wait next block")
323+ else if ((H > aH))
324+ then throw((((toString(H) + "/5 oracles need to set a price (") + toString(aH)) + ")"))
325+ else if (if ((aL >= (E + ((E * I) / 100))))
326+ then true
327+ else ((E - ((E * I) / 100)) >= aL))
328+ then WriteSet([DataEntry(v, true), DataEntry(x(height), aL)])
329+ else {
330+ let aM = (F + 1)
331+ WriteSet([DataEntry(u, aL), DataEntry(z(height), aL), DataEntry(w, aM), DataEntry(A(aM), height)])
332+ }
333+ }
334+ }
335+ }
336+
337+
338+@Verifier(aN)
339+func aO () = {
340+ let aP = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
341+ let aQ = ((((if (sigVerify(aN.bodyBytes, aN.proofs[0], fromBase58String(aP[0])))
203342 then 1
204- else 0) + (if (sigVerify(aq.bodyBytes, aq.proofs[1], fromBase58String(as[1])))
343+ else 0) + (if (sigVerify(aN.bodyBytes, aN.proofs[1], fromBase58String(aP[1])))
205344 then 1
206- else 0)) + (if (sigVerify(aq.bodyBytes, aq.proofs[2], fromBase58String(as[2])))
345+ else 0)) + (if (sigVerify(aN.bodyBytes, aN.proofs[2], fromBase58String(aP[2])))
207346 then 1
208- else 0)) + (if (sigVerify(aq.bodyBytes, aq.proofs[3], fromBase58String(as[3])))
347+ else 0)) + (if (sigVerify(aN.bodyBytes, aN.proofs[3], fromBase58String(aP[3])))
209348 then 2
210349 else 0))
211- (at >= 3)
350+ (aQ >= 3)
212351 }
213352

github/deemru/w8io/6500d08 
81.76 ms