tx · 52aBVp65DXHa3B9Dbdtwcwqnqg5UUNqWfdZzm94jbY3G

3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP:  -0.02000000 Waves

2022.11.30 15:55 [3405331] smart account 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > SELF 0.00000000 Waves

{ "type": 13, "id": "52aBVp65DXHa3B9Dbdtwcwqnqg5UUNqWfdZzm94jbY3G", "fee": 2000000, "feeAssetId": null, "timestamp": 1669815453860, "version": 1, "sender": "3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP", "senderPublicKey": "GqXuX2WHNr3WUqTaeH2YCySFY45NAJoE9RmY9bEWkzh", "proofs": [ "", "2oyDgkPQFAiUyCyDyrQJGJxvRUzQVApeK312UqUc7sC8o7rsWHVA31USKNwFVjQ8wLeqh8K4rjxTbc1VeRbtn7Af", "", "2XJWziQxU8G9j3YtEsL6qQRs1touUiGmpsRCBz1mEG4mVd1UsfnDKZpcAXU6AiRx37Awm66wy3oiXruVD7peUotQ" ], "script": "base64:AAIEAAAAAAAAACYIAhIPCg0ICAgICAgICAgICAgIEgMKAQgSDAoKAQIBAgECAQIBAgAAACoAAAAAC3JldmlzaW9uTnVtAgAAAChjNTU2ZGQ3ZTVmNmU4M2RiMDcyYWVjNjk4YjdiMTJiMmI5NDJhMzk1AAAAAANTRVACAAAAAl9fAAAAABlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAAAAAAAAAAABAAAAABhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAAAAAAAAAAAIAAAAAFElkeENvbnRyb2xDZmdScGREYXBwAAAAAAAAAAADAAAAABVJZHhDb250cm9sQ2ZnTWF0aERhcHAAAAAAAAAAAAQAAAAAHElkeENvbnRyb2xDZmdMaXF1aWRhdGlvbkRhcHAAAAAAAAAAAAUAAAAAFUlkeENvbnRyb2xDZmdSZXN0RGFwcAAAAAAAAAAABgAAAAAdSWR4Q29udHJvbENmZ05vZGVSZWdpc3RyeURhcHAAAAAAAAAAAAcAAAAAHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAAAAAAAAAAAAgAAAAAGUlkeENvbnRyb2xDZmdNZWRpYXRvckRhcHAAAAAAAAAAAAkAAAAAHElkeENvbnRyb2xDZmdTdXJmU3Rha2luZ0RhcHAAAAAAAAAAAAoAAAAAIElkeENvbnRyb2xDZmdHbnNidENvbnRyb2xsZXJEYXBwAAAAAAAAAAALAAAAABdJZHhDb250cm9sQ2ZnUmVzdFYyRGFwcAAAAAAAAAAADAAAAAAbSWR4Q29udHJvbENmZ0dvdmVybmFuY2VEYXBwAAAAAAAAAAANAQAAABBrZXlDb250cm9sQ29uZmlnAAAAAAIAAAARJXNfX2NvbnRyb2xDb25maWcBAAAADmRhdGFDb250cm9sQ2ZnAAAADQAAABBuZXV0cmlub0NvbnRyYWN0AAAAD2F1Y3Rpb25Db250cmFjdAAAAAtycGRDb250cmFjdAAAAAxtYXRoQ29udHJhY3QAAAATbGlxdWlkYXRpb25Db250cmFjdAAAAAxyZXN0Q29udHJhY3QAAAAUbm9kZVJlZ2lzdHJ5Q29udHJhY3QAAAATbnNidFN0YWtpbmdDb250cmFjdAAAABBtZWRpYXRvckNvbnRyYWN0AAAAE3N1cmZTdGFr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dENvbnRyYWN0QWRkcmVzc09yRmFpbAAAAAIAAAAKY29udHJvbENmZwAAAANpZHgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQABkQAAAAIFAAAACmNvbnRyb2xDZmcFAAAAA2lkeAkAASwAAAACAgAAAC1Db250cm9sIGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAAGkAAAAAQUAAAADaWR4AAAAAApjb250cm9sQ2ZnCQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAAR0aGlzCQEAAAAQa2V5Q29udHJvbENvbmZpZwAAAAAFAAAAA1NFUAAAAAASZ292ZXJuYW5jZUNvbnRyYWN0CQEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgUAAAAKY29udHJvbENmZwUAAAAbSWR4Q29udHJvbENmZ0dvdmVybmFuY2VEYXBwAAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAPbmV1dHJpbm9BZGRyZXNzAgAAABViYWxhbmNlX2xvY2tfbmV1dHJpbm8AAAAAAAAAAAAAAAAAEndhdmVzTG9ja2VkQmFsYW5jZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAA9uZXV0cmlub0FkZHJlc3MCAAAAEmJhbGFuY2VfbG9ja193YXZlcwAAAAAAAAAAAAAAAAAHcmVzZXJ2ZQkAAGUAAAACCAkAA+8AAAABBQAAAA9uZXV0cmlub0FkZHJlc3MAAAAHcmVndWxhcgUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlAAAAAA5uZXV0cmlub1N1cHBseQkAAGUAAAACCQAAZQAAAAIJAABkAAAAAgUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAA1uZXV0cmlub0Fzc2V0AAAACHF1YW50aXR5CQAD8AAAAAIFAAAAD25ldXRyaW5vQWRkcmVzcwUAAAANbmV1dHJpbm9Bc3NldAkAA/AAAAACBQAAABJsaXF1aWRhdGlvbkFkZHJlc3MFAAAADW5ldXRyaW5vQXNzZXQA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AGYAAAACBQAAAANwNDEFAAAAD21pblBlcmNlbnRCb3VuZAcJAARMAAAAAgAAAAAAAAAAAQUAAAAGYXJyYXkxBQAAAAZhcnJheTEEAAAABmFycmF5MwMDCQAAZgAAAAIFAAAAD21heFBlcmNlbnRCb3VuZAUAAAADcDQyCQAAZgAAAAIFAAAAA3A0MgUAAAAPbWluUGVyY2VudEJvdW5kBwkABEwAAAACAAAAAAAAAAACBQAAAAZhcnJheTIFAAAABmFycmF5MgMDCQAAZgAAAAIFAAAAD21heFBlcmNlbnRCb3VuZAUAAAADcDQzCQAAZgAAAAIFAAAAA3A0MwUAAAAPbWluUGVyY2VudEJvdW5kBwkABEwAAAACAAAAAAAAAAADBQAAAAZhcnJheTMFAAAABmFycmF5MwEAAAASZm9ybWF0dGluZ1ByaWNlTXNnAAAAAQAAAAVwcmljZQkAAZsAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAE1dBVkVTTkVVVFJJTk9QUkVGSVgCAAAAAV8JAAGkAAAAAQUAAAAGaGVpZ2h0AgAAAAFfCQABpAAAAAEFAAAABXByaWNlAAAAAwAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAA0AAAAQbmV1dHJpbm9Db250cmFjdAAAAA9hdWN0aW9uQ29udHJhY3QAAAALcnBkQ29udHJhY3QAAAAMbWF0aENvbnRyYWN0AAAAE2xpcXVpZGF0aW9uQ29udHJhY3QAAAAMcmVzdENvbnRyYWN0AAAAFG5vZGVSZWdpc3RyeUNvbnRyYWN0AAAAE25zYnRTdGFraW5nQ29udHJhY3QAAAAQbWVkaWF0b3JDb250cmFjdAAAABNzdXJmU3Rha2luZ0NvbnRyYWN0AAAAF2duc2J0Q29udHJvbGxlckNvbnRyYWN0AAAADnJlc3RWMkNvbnRyYWN0AAAAEmdvdmVybmFuY2VDb250cmFjdAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABJwZXJtaXNzaW9ucyBkZW5pZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUNvbnRyb2xDb25maWcAAAAACQEAAAAOZGF0YUNvbnRyb2xDZmcAAAANBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAC3JwZENvbnRyYWN0BQAAAAxtYXRoQ29udHJhY3QFAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QFAAAADHJlc3RDb250cmFjdAUAAAAUbm9kZVJlZ2lzdHJ5Q29udHJhY3QFAAAAE25zYnRTdGFraW5nQ29udHJhY3QFAAAAEG1lZGlhdG9yQ29udHJhY3QFAAAAE3N1cmZTdGFraW5nQ29udHJhY3QFAAAAF2duc2J0Q29udHJvbGxlckNvbnRyYWN0BQAAAA5yZXN0VjJDb250cmFjdAUAAAASZ292ZXJuYW5jZUNvbnRyYWN0BQAAAANuaWwAAAABaQEAAAAVY2FsbEVtZXJnZW5jeVNodXRkb3duAAAAAQAAAAZyZWFzb24EAAAAGkF1dG9FbWVyZ2VuY3lPcmFjbGVBZGRyZXNzAgAAACMzUDdpaEZWeEJOYkhLMjM3VE5kUHhUMXhIRXU4cEhleFhUcgQAAAANY2FsbGVyQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIDAwkBAAAAAiE9AAAAAgUAAAAaQXV0b0VtZXJnZW5jeU9yYWNsZUFkZHJlc3MFAAAADWNhbGxlckFkZHJlc3MJAQAAAAIhPQAAAAIJAAQlAAAAAQUAAAASZ292ZXJuYW5jZUNvbnRyYWN0BQAAAA1jYWxsZXJBZGRyZXNzBwkAAAIAAAABAgAAAD1jYWxsZXIgbXVzdCBiZSBvbmUgYW4gZW1lcmdlbmN5IG9yYWNsZSBvciBHb3Zlcm5hbmNlIGNvbnRyYWN0CQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACAgAAAAppc19ibG9ja2VkBgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAABFpc19ibG9ja2VkX2NhbGxlcgUAAAANY2FsbGVyQWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAABFpc19ibG9ja2VkX3JlYXNvbgUAAAAGcmVhc29uBQAAAANuaWwAAAABaQEAAAAUZmluYWxpemVDdXJyZW50UHJpY2UAAAAKAAAABnByaWNlMQAAAAVzaWduMQAAAAZwcmljZTIA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", "chainId": 87, "height": 3405331, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HAMtLxM5X4F1WkjyhjRRPZ9Mq7PZmxSUKNn5ezr2ZKxT Next: 8tfCXyHzAqtZCd9UaJBN6rvv4J77hYNsBzjDwiTVSErb Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "b3ff7472a1d54a9f0c8f6d6665c4458c36a31e48"
4+let a = "c556dd7e5f6e83db072aec698b7b12b2b942a395"
55
66 let b = "__"
77
8-func c (d,e) = fraction(fraction(d, e, 1000000), 1000000, 100000000)
8+let c = 1
9+
10+let d = 2
11+
12+let e = 3
13+
14+let f = 4
15+
16+let g = 5
17+
18+let h = 6
19+
20+let i = 7
21+
22+let j = 8
23+
24+let k = 9
25+
26+let l = 10
27+
28+let m = 11
29+
30+let n = 12
31+
32+let o = 13
33+
34+func p () = "%s__controlConfig"
935
1036
11-func f (g,h) = valueOrElse(getInteger(addressFromStringValue(g), h), 0)
37+func q (r,s,t,u,v,w,x,y,z,A,B,C,D) = makeString(["%s%s%s%s%s%s%s%s%s%s%s%s%s", r, s, t, u, v, w, x, y, z, A, B, C, D], b)
1238
1339
14-func i (g,h) = valueOrElse(getString(g, h), "")
40+func E (F,G) = fraction(fraction(F, G, 1000000), 1000000, 100000000)
1541
1642
17-func j (k) = split(k, ",")
43+func H (I,J) = valueOrElse(getInteger(addressFromStringValue(I), J), 0)
1844
1945
20-let e = valueOrElse(getInteger(this, "price"), 0)
46+func K (I,J) = valueOrElse(getString(I, J), "")
2147
22-let l = valueOrElse(getInteger(this, "price_index"), 0)
2348
24-let m = valueOrElse(getBoolean(this, "is_blocked"), false)
49+func L (M) = split(M, ",")
2550
26-let n = 7
2751
28-let o = valueOrElse(getString(this, "oracles"), "")
52+let G = valueOrElse(getInteger(this, "price"), 0)
2953
30-let p = j(o)
54+let N = valueOrElse(getInteger(this, "price_index"), 0)
3155
32-let q = Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo')
56+let O = valueOrElse(getBoolean(this, "is_blocked"), false)
3357
34-let r = Address(base58'3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7')
58+let P = 7
3559
36-let s = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
60+let Q = valueOrElse(getString(this, "oracles"), "")
3761
38-let t = this
62+let R = L(Q)
3963
40-let u = valueOrElse(getInteger(q, "balance_lock_neutrino"), 0)
64+let S = Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo')
4165
42-let v = valueOrElse(getInteger(q, "balance_lock_waves"), 0)
66+let T = Address(base58'3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7')
4367
44-let w = (wavesBalance(q).regular - v)
68+let U = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
4569
46-let x = (((u + value(assetInfo(s)).quantity) - assetBalance(q, s)) - assetBalance(r, s))
70+let V = this
4771
48-let y = (x - c(w, e))
72+func W (I,J) = valueOrErrorMessage(getString(I, J), makeString(["mandatory ", toString(I), ".", J, " is not defined"], ""))
4973
50-func z (A) = {
51- let B = 90
52- let C = 110
53- let D = A[0]
54- let E = if ((0 >= A[0]))
74+
75+func X (Y,Z) = valueOrErrorMessage(addressFromString(Y[Z]), ("Control cfg doesn't contain address at index " + toString(Z)))
76+
77+
78+let Y = split(W(this, p()), b)
79+
80+let D = X(Y, o)
81+
82+let aa = valueOrElse(getInteger(S, "balance_lock_neutrino"), 0)
83+
84+let ab = valueOrElse(getInteger(S, "balance_lock_waves"), 0)
85+
86+let ac = (wavesBalance(S).regular - ab)
87+
88+let ad = (((aa + value(assetInfo(U)).quantity) - assetBalance(S, U)) - assetBalance(T, U))
89+
90+let ae = (ad - E(ac, G))
91+
92+func af (ag) = {
93+ let ah = 90
94+ let ai = 110
95+ let aj = ag[0]
96+ let ak = if ((0 >= ag[0]))
5597 then [0]
5698 else {
57- let F = ((A[1] * 100) / D)
58- let G = ((A[2] * 100) / D)
59- let H = ((A[3] * 100) / D)
60- let I = ((A[4] * 100) / D)
61- let J = if (if ((C > F))
62- then (F > B)
99+ let al = ((ag[1] * 100) / aj)
100+ let am = ((ag[2] * 100) / aj)
101+ let an = ((ag[3] * 100) / aj)
102+ let ao = ((ag[4] * 100) / aj)
103+ let ap = if (if ((ai > al))
104+ then (al > ah)
63105 else false)
64106 then [1, 0]
65107 else [0]
66- let K = if (if ((C > G))
67- then (G > B)
108+ let aq = if (if ((ai > am))
109+ then (am > ah)
68110 else false)
69- then 2 :: J
70- else J
71- let L = if (if ((C > H))
72- then (H > B)
111+ then 2 :: ap
112+ else ap
113+ let ar = if (if ((ai > an))
114+ then (an > ah)
73115 else false)
74- then 3 :: K
75- else K
76- if (if ((C > I))
77- then (I > B)
116+ then 3 :: aq
117+ else aq
118+ if (if ((ai > ao))
119+ then (ao > ah)
78120 else false)
79- then 4 :: L
80- else L
121+ then 4 :: ar
122+ else ar
81123 }
82- let M = if ((size(E) >= 3))
83- then E
124+ let as = if ((size(ak) >= 3))
125+ then ak
84126 else {
85- let N = A[1]
86- if ((0 >= N))
127+ let at = ag[1]
128+ if ((0 >= at))
87129 then [1]
88130 else {
89- let O = ((A[0] * 100) / N)
90- let P = ((A[2] * 100) / N)
91- let Q = ((A[3] * 100) / N)
92- let R = ((A[4] * 100) / N)
93- let J = if (if ((C > O))
94- then (O > B)
131+ let au = ((ag[0] * 100) / at)
132+ let av = ((ag[2] * 100) / at)
133+ let aw = ((ag[3] * 100) / at)
134+ let ax = ((ag[4] * 100) / at)
135+ let ap = if (if ((ai > au))
136+ then (au > ah)
95137 else false)
96138 then [0, 1]
97139 else [1]
98- let K = if (if ((C > P))
99- then (P > B)
140+ let aq = if (if ((ai > av))
141+ then (av > ah)
100142 else false)
101- then 2 :: J
102- else J
103- let L = if (if ((C > Q))
104- then (Q > B)
143+ then 2 :: ap
144+ else ap
145+ let ar = if (if ((ai > aw))
146+ then (aw > ah)
105147 else false)
106- then 3 :: K
107- else K
108- if (if ((C > R))
109- then (R > B)
148+ then 3 :: aq
149+ else aq
150+ if (if ((ai > ax))
151+ then (ax > ah)
110152 else false)
111- then 4 :: L
112- else L
153+ then 4 :: ar
154+ else ar
113155 }
114156 }
115- let S = if ((size(M) >= 3))
116- then M
157+ let ay = if ((size(as) >= 3))
158+ then as
117159 else {
118- let T = A[2]
119- if ((0 >= T))
160+ let az = ag[2]
161+ if ((0 >= az))
120162 then [2]
121163 else {
122- let U = ((A[0] * 100) / T)
123- let V = ((A[1] * 100) / T)
124- let W = ((A[3] * 100) / T)
125- let X = ((A[4] * 100) / T)
126- let J = if (if ((C > U))
127- then (U > B)
164+ let aA = ((ag[0] * 100) / az)
165+ let aB = ((ag[1] * 100) / az)
166+ let aC = ((ag[3] * 100) / az)
167+ let aD = ((ag[4] * 100) / az)
168+ let ap = if (if ((ai > aA))
169+ then (aA > ah)
128170 else false)
129171 then [0, 2]
130172 else [2]
131- let K = if (if ((C > V))
132- then (V > B)
173+ let aq = if (if ((ai > aB))
174+ then (aB > ah)
133175 else false)
134- then 1 :: J
135- else J
136- let L = if (if ((C > W))
137- then (W > B)
176+ then 1 :: ap
177+ else ap
178+ let ar = if (if ((ai > aC))
179+ then (aC > ah)
138180 else false)
139- then 3 :: K
140- else K
141- if (if ((C > X))
142- then (X > B)
181+ then 3 :: aq
182+ else aq
183+ if (if ((ai > aD))
184+ then (aD > ah)
143185 else false)
144- then 4 :: L
145- else L
186+ then 4 :: ar
187+ else ar
146188 }
147189 }
148- let Y = if ((size(S) >= 3))
149- then S
190+ let aE = if ((size(ay) >= 3))
191+ then ay
150192 else {
151- let Z = A[3]
152- if ((0 >= Z))
193+ let aF = ag[3]
194+ if ((0 >= aF))
153195 then [3]
154196 else {
155- let aa = ((A[0] * 100) / Z)
156- let ab = ((A[1] * 100) / Z)
157- let ac = ((A[2] * 100) / Z)
158- let ad = ((A[4] * 100) / Z)
159- let J = if (if ((C > aa))
160- then (aa > B)
197+ let aG = ((ag[0] * 100) / aF)
198+ let aH = ((ag[1] * 100) / aF)
199+ let aI = ((ag[2] * 100) / aF)
200+ let aJ = ((ag[4] * 100) / aF)
201+ let ap = if (if ((ai > aG))
202+ then (aG > ah)
161203 else false)
162204 then [0, 3]
163205 else [3]
164- let K = if (if ((C > ab))
165- then (ab > B)
206+ let aq = if (if ((ai > aH))
207+ then (aH > ah)
166208 else false)
167- then 1 :: J
168- else J
169- let L = if (if ((C > ac))
170- then (ac > B)
209+ then 1 :: ap
210+ else ap
211+ let ar = if (if ((ai > aI))
212+ then (aI > ah)
171213 else false)
172- then 2 :: K
173- else K
174- if (if ((C > ad))
175- then (ad > B)
214+ then 2 :: aq
215+ else aq
216+ if (if ((ai > aJ))
217+ then (aJ > ah)
176218 else false)
177- then 4 :: L
178- else L
219+ then 4 :: ar
220+ else ar
179221 }
180222 }
181- if ((size(Y) >= 3))
182- then Y
223+ if ((size(aE) >= 3))
224+ then aE
183225 else {
184- let ae = A[4]
185- if ((0 >= ae))
226+ let aK = ag[4]
227+ if ((0 >= aK))
186228 then [4]
187229 else {
188- let af = ((A[0] * 100) / ae)
189- let ag = ((A[1] * 100) / ae)
190- let ah = ((A[2] * 100) / ae)
191- let ai = ((A[3] * 100) / ae)
192- let J = if (if ((C > af))
193- then (af > B)
230+ let aL = ((ag[0] * 100) / aK)
231+ let aM = ((ag[1] * 100) / aK)
232+ let aN = ((ag[2] * 100) / aK)
233+ let aO = ((ag[3] * 100) / aK)
234+ let ap = if (if ((ai > aL))
235+ then (aL > ah)
194236 else false)
195237 then [0, 4]
196238 else [4]
197- let K = if (if ((C > ag))
198- then (ag > B)
239+ let aq = if (if ((ai > aM))
240+ then (aM > ah)
199241 else false)
200- then 1 :: J
201- else J
202- let L = if (if ((C > ah))
203- then (ah > B)
242+ then 1 :: ap
243+ else ap
244+ let ar = if (if ((ai > aN))
245+ then (aN > ah)
204246 else false)
205- then 2 :: K
206- else K
207- if (if ((C > ai))
208- then (ai > B)
247+ then 2 :: aq
248+ else aq
249+ if (if ((ai > aO))
250+ then (aO > ah)
209251 else false)
210- then 3 :: L
211- else L
252+ then 3 :: ar
253+ else ar
212254 }
213255 }
214256 }
215257
216258
217-func aj (e) = toBytes((((("WAVESNEUTRINOPREFIX" + "_") + toString(height)) + "_") + toString(e)))
259+func aP (G) = toBytes((((("WAVESNEUTRINOPREFIX" + "_") + toString(height)) + "_") + toString(G)))
218260
219261
220-@Callable(ak)
221-func callEmergencyShutdown (al) = {
222- let am = "3P7ihFVxBNbHK237TNdPxT1xHEu8pHexXTr"
223- let an = toString(ak.caller)
224- if ((am != an))
225- then throw("caller must be one an emergency oracle")
226- else [BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", an), StringEntry("is_blocked_reason", al)]
262+@Callable(aQ)
263+func constructor (r,s,t,u,v,w,x,y,z,A,B,C,D) = if ((aQ.caller != this))
264+ then throw("permissions denied")
265+ else [StringEntry(p(), q(r, s, t, u, v, w, x, y, z, A, B, C, D))]
266+
267+
268+
269+@Callable(aQ)
270+func callEmergencyShutdown (aR) = {
271+ let aS = "3P7ihFVxBNbHK237TNdPxT1xHEu8pHexXTr"
272+ let aT = toString(aQ.caller)
273+ if (if ((aS != aT))
274+ then (toString(D) != aT)
275+ else false)
276+ then throw("caller must be one an emergency oracle or Governance contract")
277+ else [BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", aT), StringEntry("is_blocked_reason", aR)]
227278 }
228279
229280
230281
231-@Callable(ak)
232-func finalizeCurrentPrice (ao,ap,aq,ar,as,at,au,av,aw,ax) = if (m)
282+@Callable(aQ)
283+func finalizeCurrentPrice (aU,aV,aW,aX,aY,aZ,ba,bb,bc,bd) = if (O)
233284 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
234285 else if ((valueOrElse(getInteger(this, ("price_" + toString(height))), 0) != 0))
235286 then throw("wait next block")
236- else if ((p[(height % 5)] != toBase58String(ak.callerPublicKey)))
237- then throw(((("Out of turn finalization: " + toString(height)) + " block should be finalize by ") + p[(height % 5)]))
287+ else if ((R[(height % 5)] != toBase58String(aQ.callerPublicKey)))
288+ then throw(((("Out of turn finalization: " + toString(height)) + " block should be finalize by ") + R[(height % 5)]))
238289 else {
239- let A = [if (sigVerify_8Kb(aj(ao), ap, fromBase58String(p[0])))
240- then ao
241- else 0, if (sigVerify_8Kb(aj(aq), ar, fromBase58String(p[1])))
242- then aq
243- else 0, if (sigVerify_8Kb(aj(as), at, fromBase58String(p[2])))
244- then as
245- else 0, if (sigVerify_8Kb(aj(au), av, fromBase58String(p[3])))
246- then au
247- else 0, if (sigVerify_8Kb(aj(aw), ax, fromBase58String(p[4])))
248- then aw
290+ let ag = [if (sigVerify_8Kb(aP(aU), aV, fromBase58String(R[0])))
291+ then aU
292+ else 0, if (sigVerify_8Kb(aP(aW), aX, fromBase58String(R[1])))
293+ then aW
294+ else 0, if (sigVerify_8Kb(aP(aY), aZ, fromBase58String(R[2])))
295+ then aY
296+ else 0, if (sigVerify_8Kb(aP(ba), bb, fromBase58String(R[3])))
297+ then ba
298+ else 0, if (sigVerify_8Kb(aP(bc), bd, fromBase58String(R[4])))
299+ then bc
249300 else 0]
250- let ay = if ((A[0] == 0))
301+ let be = if ((ag[0] == 0))
251302 then 1
252- else (0 + (if ((A[1] == 0))
303+ else (0 + (if ((ag[1] == 0))
253304 then 1
254- else (0 + (if ((A[2] == 0))
305+ else (0 + (if ((ag[2] == 0))
255306 then 1
256- else (0 + (if ((A[3] == 0))
307+ else (0 + (if ((ag[3] == 0))
257308 then 1
258- else (0 + (if ((A[4] == 0))
309+ else (0 + (if ((ag[4] == 0))
259310 then 1
260311 else 0))))))))
261- if ((ay >= 3))
312+ if ((be >= 3))
262313 then throw("3 prices or more are equals to 0")
263314 else {
264- let az = z(A)
265- let aA = size(az)
266- if ((3 > aA))
315+ let bf = af(ag)
316+ let bg = size(bf)
317+ if ((3 > bg))
267318 then throw(((((((((((((((((((((("Could not finalize price because of big variation: height=" + toString(height)) + "
268-") + p[0]) + "=") + toString(A[0])) + "
269-") + p[1]) + "=") + toString(A[1])) + "
270-") + p[2]) + "=") + toString(A[2])) + "
271-") + p[3]) + "=") + toString(A[3])) + "
272-") + p[4]) + "=") + toString(A[4])))
319+") + R[0]) + "=") + toString(ag[0])) + "
320+") + R[1]) + "=") + toString(ag[1])) + "
321+") + R[2]) + "=") + toString(ag[2])) + "
322+") + R[3]) + "=") + toString(ag[3])) + "
323+") + R[4]) + "=") + toString(ag[4])))
273324 else {
274- let aB = ((A[az[0]] + A[az[1]]) + A[az[2]])
275- let aC = if ((aA >= 4))
276- then (aB + A[az[3]])
277- else aB
278- let aD = if ((aA >= 5))
279- then (aC + A[az[4]])
280- else aC
281- if ((aA >= 6))
325+ let bh = ((ag[bf[0]] + ag[bf[1]]) + ag[bf[2]])
326+ let bi = if ((bg >= 4))
327+ then (bh + ag[bf[3]])
328+ else bh
329+ let bj = if ((bg >= 5))
330+ then (bi + ag[bf[4]])
331+ else bi
332+ if ((bg >= 6))
282333 then throw("Invalid pricesInRange creation")
283334 else {
284- let aE = (aD / aA)
285- if (if ((aE >= (e + ((e * n) / 100))))
335+ let bk = (bj / bg)
336+ if (if ((bk >= (G + ((G * P) / 100))))
286337 then true
287- else ((e - ((e * n) / 100)) >= aE))
338+ else ((G - ((G * P) / 100)) >= bk))
288339 then {
289- let al = "automatic emergency shutdown because of large price variability"
290-[BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", toString(this)), StringEntry("is_blocked_reason", al), IntegerEntry((("black_swarm_price" + "_") + toString(height)), aE)]
340+ let aR = "automatic emergency shutdown because of large price variability"
341+[BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", toString(this)), StringEntry("is_blocked_reason", aR), IntegerEntry((("black_swarm_price" + "_") + toString(height)), bk)]
291342 }
292343 else {
293- let aF = (l + 1)
294-[IntegerEntry("price", aE), IntegerEntry(("price_" + toString(height)), aE), IntegerEntry("price_index", aF), IntegerEntry(("price_index_" + toString(aF)), height), IntegerEntry(("deficit_" + toString(height)), y), IntegerEntry(("neutrinoSupply_" + toString(height)), x), IntegerEntry(("deficit_percent_" + toString(height)), if ((x != 0))
295- then ((y * 100) / x)
344+ let bl = (N + 1)
345+[IntegerEntry("price", bk), IntegerEntry(("price_" + toString(height)), bk), IntegerEntry("price_index", bl), IntegerEntry(("price_index_" + toString(bl)), height), IntegerEntry(("deficit_" + toString(height)), ae), IntegerEntry(("neutrinoSupply_" + toString(height)), ad), IntegerEntry(("deficit_percent_" + toString(height)), if ((ad != 0))
346+ then ((ae * 100) / ad)
296347 else 0)]
297348 }
298349 }
301352 }
302353
303354
304-@Verifier(aG)
305-func aH () = {
306- let aI = makeString(["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "EYwZmURd5KKaQRBjsVa6g8DPisFoS6SovRJtFiL5gMHU", "DtmAfuDdCrHK8spdAeAYzq6MsZegeD9gnsrpuTRkCbVA", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"], b)
307- let aJ = split(valueOrElse(getString(t, "%s__multisig"), aI), b)
308- let aK = ((((if (sigVerify(aG.bodyBytes, aG.proofs[0], fromBase58String(aJ[0])))
355+@Verifier(bm)
356+func bn () = {
357+ let bo = makeString(["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "EYwZmURd5KKaQRBjsVa6g8DPisFoS6SovRJtFiL5gMHU", "DtmAfuDdCrHK8spdAeAYzq6MsZegeD9gnsrpuTRkCbVA", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"], b)
358+ let bp = split(valueOrElse(getString(V, "%s__multisig"), bo), b)
359+ let bq = ((((if (sigVerify(bm.bodyBytes, bm.proofs[0], fromBase58String(bp[0])))
309360 then 1
310- else 0) + (if (sigVerify(aG.bodyBytes, aG.proofs[1], fromBase58String(aJ[1])))
361+ else 0) + (if (sigVerify(bm.bodyBytes, bm.proofs[1], fromBase58String(bp[1])))
311362 then 1
312- else 0)) + (if (sigVerify(aG.bodyBytes, aG.proofs[2], fromBase58String(aJ[2])))
363+ else 0)) + (if (sigVerify(bm.bodyBytes, bm.proofs[2], fromBase58String(bp[2])))
313364 then 1
314- else 0)) + (if (sigVerify(aG.bodyBytes, aG.proofs[3], fromBase58String(aJ[3])))
365+ else 0)) + (if (sigVerify(bm.bodyBytes, bm.proofs[3], fromBase58String(bp[3])))
315366 then 2
316367 else 0))
317- (aK >= 3)
368+ (bq >= 3)
318369 }
319370
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "b3ff7472a1d54a9f0c8f6d6665c4458c36a31e48"
4+let a = "c556dd7e5f6e83db072aec698b7b12b2b942a395"
55
66 let b = "__"
77
8-func c (d,e) = fraction(fraction(d, e, 1000000), 1000000, 100000000)
8+let c = 1
9+
10+let d = 2
11+
12+let e = 3
13+
14+let f = 4
15+
16+let g = 5
17+
18+let h = 6
19+
20+let i = 7
21+
22+let j = 8
23+
24+let k = 9
25+
26+let l = 10
27+
28+let m = 11
29+
30+let n = 12
31+
32+let o = 13
33+
34+func p () = "%s__controlConfig"
935
1036
11-func f (g,h) = valueOrElse(getInteger(addressFromStringValue(g), h), 0)
37+func q (r,s,t,u,v,w,x,y,z,A,B,C,D) = makeString(["%s%s%s%s%s%s%s%s%s%s%s%s%s", r, s, t, u, v, w, x, y, z, A, B, C, D], b)
1238
1339
14-func i (g,h) = valueOrElse(getString(g, h), "")
40+func E (F,G) = fraction(fraction(F, G, 1000000), 1000000, 100000000)
1541
1642
17-func j (k) = split(k, ",")
43+func H (I,J) = valueOrElse(getInteger(addressFromStringValue(I), J), 0)
1844
1945
20-let e = valueOrElse(getInteger(this, "price"), 0)
46+func K (I,J) = valueOrElse(getString(I, J), "")
2147
22-let l = valueOrElse(getInteger(this, "price_index"), 0)
2348
24-let m = valueOrElse(getBoolean(this, "is_blocked"), false)
49+func L (M) = split(M, ",")
2550
26-let n = 7
2751
28-let o = valueOrElse(getString(this, "oracles"), "")
52+let G = valueOrElse(getInteger(this, "price"), 0)
2953
30-let p = j(o)
54+let N = valueOrElse(getInteger(this, "price_index"), 0)
3155
32-let q = Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo')
56+let O = valueOrElse(getBoolean(this, "is_blocked"), false)
3357
34-let r = Address(base58'3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7')
58+let P = 7
3559
36-let s = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
60+let Q = valueOrElse(getString(this, "oracles"), "")
3761
38-let t = this
62+let R = L(Q)
3963
40-let u = valueOrElse(getInteger(q, "balance_lock_neutrino"), 0)
64+let S = Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo')
4165
42-let v = valueOrElse(getInteger(q, "balance_lock_waves"), 0)
66+let T = Address(base58'3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7')
4367
44-let w = (wavesBalance(q).regular - v)
68+let U = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
4569
46-let x = (((u + value(assetInfo(s)).quantity) - assetBalance(q, s)) - assetBalance(r, s))
70+let V = this
4771
48-let y = (x - c(w, e))
72+func W (I,J) = valueOrErrorMessage(getString(I, J), makeString(["mandatory ", toString(I), ".", J, " is not defined"], ""))
4973
50-func z (A) = {
51- let B = 90
52- let C = 110
53- let D = A[0]
54- let E = if ((0 >= A[0]))
74+
75+func X (Y,Z) = valueOrErrorMessage(addressFromString(Y[Z]), ("Control cfg doesn't contain address at index " + toString(Z)))
76+
77+
78+let Y = split(W(this, p()), b)
79+
80+let D = X(Y, o)
81+
82+let aa = valueOrElse(getInteger(S, "balance_lock_neutrino"), 0)
83+
84+let ab = valueOrElse(getInteger(S, "balance_lock_waves"), 0)
85+
86+let ac = (wavesBalance(S).regular - ab)
87+
88+let ad = (((aa + value(assetInfo(U)).quantity) - assetBalance(S, U)) - assetBalance(T, U))
89+
90+let ae = (ad - E(ac, G))
91+
92+func af (ag) = {
93+ let ah = 90
94+ let ai = 110
95+ let aj = ag[0]
96+ let ak = if ((0 >= ag[0]))
5597 then [0]
5698 else {
57- let F = ((A[1] * 100) / D)
58- let G = ((A[2] * 100) / D)
59- let H = ((A[3] * 100) / D)
60- let I = ((A[4] * 100) / D)
61- let J = if (if ((C > F))
62- then (F > B)
99+ let al = ((ag[1] * 100) / aj)
100+ let am = ((ag[2] * 100) / aj)
101+ let an = ((ag[3] * 100) / aj)
102+ let ao = ((ag[4] * 100) / aj)
103+ let ap = if (if ((ai > al))
104+ then (al > ah)
63105 else false)
64106 then [1, 0]
65107 else [0]
66- let K = if (if ((C > G))
67- then (G > B)
108+ let aq = if (if ((ai > am))
109+ then (am > ah)
68110 else false)
69- then 2 :: J
70- else J
71- let L = if (if ((C > H))
72- then (H > B)
111+ then 2 :: ap
112+ else ap
113+ let ar = if (if ((ai > an))
114+ then (an > ah)
73115 else false)
74- then 3 :: K
75- else K
76- if (if ((C > I))
77- then (I > B)
116+ then 3 :: aq
117+ else aq
118+ if (if ((ai > ao))
119+ then (ao > ah)
78120 else false)
79- then 4 :: L
80- else L
121+ then 4 :: ar
122+ else ar
81123 }
82- let M = if ((size(E) >= 3))
83- then E
124+ let as = if ((size(ak) >= 3))
125+ then ak
84126 else {
85- let N = A[1]
86- if ((0 >= N))
127+ let at = ag[1]
128+ if ((0 >= at))
87129 then [1]
88130 else {
89- let O = ((A[0] * 100) / N)
90- let P = ((A[2] * 100) / N)
91- let Q = ((A[3] * 100) / N)
92- let R = ((A[4] * 100) / N)
93- let J = if (if ((C > O))
94- then (O > B)
131+ let au = ((ag[0] * 100) / at)
132+ let av = ((ag[2] * 100) / at)
133+ let aw = ((ag[3] * 100) / at)
134+ let ax = ((ag[4] * 100) / at)
135+ let ap = if (if ((ai > au))
136+ then (au > ah)
95137 else false)
96138 then [0, 1]
97139 else [1]
98- let K = if (if ((C > P))
99- then (P > B)
140+ let aq = if (if ((ai > av))
141+ then (av > ah)
100142 else false)
101- then 2 :: J
102- else J
103- let L = if (if ((C > Q))
104- then (Q > B)
143+ then 2 :: ap
144+ else ap
145+ let ar = if (if ((ai > aw))
146+ then (aw > ah)
105147 else false)
106- then 3 :: K
107- else K
108- if (if ((C > R))
109- then (R > B)
148+ then 3 :: aq
149+ else aq
150+ if (if ((ai > ax))
151+ then (ax > ah)
110152 else false)
111- then 4 :: L
112- else L
153+ then 4 :: ar
154+ else ar
113155 }
114156 }
115- let S = if ((size(M) >= 3))
116- then M
157+ let ay = if ((size(as) >= 3))
158+ then as
117159 else {
118- let T = A[2]
119- if ((0 >= T))
160+ let az = ag[2]
161+ if ((0 >= az))
120162 then [2]
121163 else {
122- let U = ((A[0] * 100) / T)
123- let V = ((A[1] * 100) / T)
124- let W = ((A[3] * 100) / T)
125- let X = ((A[4] * 100) / T)
126- let J = if (if ((C > U))
127- then (U > B)
164+ let aA = ((ag[0] * 100) / az)
165+ let aB = ((ag[1] * 100) / az)
166+ let aC = ((ag[3] * 100) / az)
167+ let aD = ((ag[4] * 100) / az)
168+ let ap = if (if ((ai > aA))
169+ then (aA > ah)
128170 else false)
129171 then [0, 2]
130172 else [2]
131- let K = if (if ((C > V))
132- then (V > B)
173+ let aq = if (if ((ai > aB))
174+ then (aB > ah)
133175 else false)
134- then 1 :: J
135- else J
136- let L = if (if ((C > W))
137- then (W > B)
176+ then 1 :: ap
177+ else ap
178+ let ar = if (if ((ai > aC))
179+ then (aC > ah)
138180 else false)
139- then 3 :: K
140- else K
141- if (if ((C > X))
142- then (X > B)
181+ then 3 :: aq
182+ else aq
183+ if (if ((ai > aD))
184+ then (aD > ah)
143185 else false)
144- then 4 :: L
145- else L
186+ then 4 :: ar
187+ else ar
146188 }
147189 }
148- let Y = if ((size(S) >= 3))
149- then S
190+ let aE = if ((size(ay) >= 3))
191+ then ay
150192 else {
151- let Z = A[3]
152- if ((0 >= Z))
193+ let aF = ag[3]
194+ if ((0 >= aF))
153195 then [3]
154196 else {
155- let aa = ((A[0] * 100) / Z)
156- let ab = ((A[1] * 100) / Z)
157- let ac = ((A[2] * 100) / Z)
158- let ad = ((A[4] * 100) / Z)
159- let J = if (if ((C > aa))
160- then (aa > B)
197+ let aG = ((ag[0] * 100) / aF)
198+ let aH = ((ag[1] * 100) / aF)
199+ let aI = ((ag[2] * 100) / aF)
200+ let aJ = ((ag[4] * 100) / aF)
201+ let ap = if (if ((ai > aG))
202+ then (aG > ah)
161203 else false)
162204 then [0, 3]
163205 else [3]
164- let K = if (if ((C > ab))
165- then (ab > B)
206+ let aq = if (if ((ai > aH))
207+ then (aH > ah)
166208 else false)
167- then 1 :: J
168- else J
169- let L = if (if ((C > ac))
170- then (ac > B)
209+ then 1 :: ap
210+ else ap
211+ let ar = if (if ((ai > aI))
212+ then (aI > ah)
171213 else false)
172- then 2 :: K
173- else K
174- if (if ((C > ad))
175- then (ad > B)
214+ then 2 :: aq
215+ else aq
216+ if (if ((ai > aJ))
217+ then (aJ > ah)
176218 else false)
177- then 4 :: L
178- else L
219+ then 4 :: ar
220+ else ar
179221 }
180222 }
181- if ((size(Y) >= 3))
182- then Y
223+ if ((size(aE) >= 3))
224+ then aE
183225 else {
184- let ae = A[4]
185- if ((0 >= ae))
226+ let aK = ag[4]
227+ if ((0 >= aK))
186228 then [4]
187229 else {
188- let af = ((A[0] * 100) / ae)
189- let ag = ((A[1] * 100) / ae)
190- let ah = ((A[2] * 100) / ae)
191- let ai = ((A[3] * 100) / ae)
192- let J = if (if ((C > af))
193- then (af > B)
230+ let aL = ((ag[0] * 100) / aK)
231+ let aM = ((ag[1] * 100) / aK)
232+ let aN = ((ag[2] * 100) / aK)
233+ let aO = ((ag[3] * 100) / aK)
234+ let ap = if (if ((ai > aL))
235+ then (aL > ah)
194236 else false)
195237 then [0, 4]
196238 else [4]
197- let K = if (if ((C > ag))
198- then (ag > B)
239+ let aq = if (if ((ai > aM))
240+ then (aM > ah)
199241 else false)
200- then 1 :: J
201- else J
202- let L = if (if ((C > ah))
203- then (ah > B)
242+ then 1 :: ap
243+ else ap
244+ let ar = if (if ((ai > aN))
245+ then (aN > ah)
204246 else false)
205- then 2 :: K
206- else K
207- if (if ((C > ai))
208- then (ai > B)
247+ then 2 :: aq
248+ else aq
249+ if (if ((ai > aO))
250+ then (aO > ah)
209251 else false)
210- then 3 :: L
211- else L
252+ then 3 :: ar
253+ else ar
212254 }
213255 }
214256 }
215257
216258
217-func aj (e) = toBytes((((("WAVESNEUTRINOPREFIX" + "_") + toString(height)) + "_") + toString(e)))
259+func aP (G) = toBytes((((("WAVESNEUTRINOPREFIX" + "_") + toString(height)) + "_") + toString(G)))
218260
219261
220-@Callable(ak)
221-func callEmergencyShutdown (al) = {
222- let am = "3P7ihFVxBNbHK237TNdPxT1xHEu8pHexXTr"
223- let an = toString(ak.caller)
224- if ((am != an))
225- then throw("caller must be one an emergency oracle")
226- else [BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", an), StringEntry("is_blocked_reason", al)]
262+@Callable(aQ)
263+func constructor (r,s,t,u,v,w,x,y,z,A,B,C,D) = if ((aQ.caller != this))
264+ then throw("permissions denied")
265+ else [StringEntry(p(), q(r, s, t, u, v, w, x, y, z, A, B, C, D))]
266+
267+
268+
269+@Callable(aQ)
270+func callEmergencyShutdown (aR) = {
271+ let aS = "3P7ihFVxBNbHK237TNdPxT1xHEu8pHexXTr"
272+ let aT = toString(aQ.caller)
273+ if (if ((aS != aT))
274+ then (toString(D) != aT)
275+ else false)
276+ then throw("caller must be one an emergency oracle or Governance contract")
277+ else [BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", aT), StringEntry("is_blocked_reason", aR)]
227278 }
228279
229280
230281
231-@Callable(ak)
232-func finalizeCurrentPrice (ao,ap,aq,ar,as,at,au,av,aw,ax) = if (m)
282+@Callable(aQ)
283+func finalizeCurrentPrice (aU,aV,aW,aX,aY,aZ,ba,bb,bc,bd) = if (O)
233284 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
234285 else if ((valueOrElse(getInteger(this, ("price_" + toString(height))), 0) != 0))
235286 then throw("wait next block")
236- else if ((p[(height % 5)] != toBase58String(ak.callerPublicKey)))
237- then throw(((("Out of turn finalization: " + toString(height)) + " block should be finalize by ") + p[(height % 5)]))
287+ else if ((R[(height % 5)] != toBase58String(aQ.callerPublicKey)))
288+ then throw(((("Out of turn finalization: " + toString(height)) + " block should be finalize by ") + R[(height % 5)]))
238289 else {
239- let A = [if (sigVerify_8Kb(aj(ao), ap, fromBase58String(p[0])))
240- then ao
241- else 0, if (sigVerify_8Kb(aj(aq), ar, fromBase58String(p[1])))
242- then aq
243- else 0, if (sigVerify_8Kb(aj(as), at, fromBase58String(p[2])))
244- then as
245- else 0, if (sigVerify_8Kb(aj(au), av, fromBase58String(p[3])))
246- then au
247- else 0, if (sigVerify_8Kb(aj(aw), ax, fromBase58String(p[4])))
248- then aw
290+ let ag = [if (sigVerify_8Kb(aP(aU), aV, fromBase58String(R[0])))
291+ then aU
292+ else 0, if (sigVerify_8Kb(aP(aW), aX, fromBase58String(R[1])))
293+ then aW
294+ else 0, if (sigVerify_8Kb(aP(aY), aZ, fromBase58String(R[2])))
295+ then aY
296+ else 0, if (sigVerify_8Kb(aP(ba), bb, fromBase58String(R[3])))
297+ then ba
298+ else 0, if (sigVerify_8Kb(aP(bc), bd, fromBase58String(R[4])))
299+ then bc
249300 else 0]
250- let ay = if ((A[0] == 0))
301+ let be = if ((ag[0] == 0))
251302 then 1
252- else (0 + (if ((A[1] == 0))
303+ else (0 + (if ((ag[1] == 0))
253304 then 1
254- else (0 + (if ((A[2] == 0))
305+ else (0 + (if ((ag[2] == 0))
255306 then 1
256- else (0 + (if ((A[3] == 0))
307+ else (0 + (if ((ag[3] == 0))
257308 then 1
258- else (0 + (if ((A[4] == 0))
309+ else (0 + (if ((ag[4] == 0))
259310 then 1
260311 else 0))))))))
261- if ((ay >= 3))
312+ if ((be >= 3))
262313 then throw("3 prices or more are equals to 0")
263314 else {
264- let az = z(A)
265- let aA = size(az)
266- if ((3 > aA))
315+ let bf = af(ag)
316+ let bg = size(bf)
317+ if ((3 > bg))
267318 then throw(((((((((((((((((((((("Could not finalize price because of big variation: height=" + toString(height)) + "
268-") + p[0]) + "=") + toString(A[0])) + "
269-") + p[1]) + "=") + toString(A[1])) + "
270-") + p[2]) + "=") + toString(A[2])) + "
271-") + p[3]) + "=") + toString(A[3])) + "
272-") + p[4]) + "=") + toString(A[4])))
319+") + R[0]) + "=") + toString(ag[0])) + "
320+") + R[1]) + "=") + toString(ag[1])) + "
321+") + R[2]) + "=") + toString(ag[2])) + "
322+") + R[3]) + "=") + toString(ag[3])) + "
323+") + R[4]) + "=") + toString(ag[4])))
273324 else {
274- let aB = ((A[az[0]] + A[az[1]]) + A[az[2]])
275- let aC = if ((aA >= 4))
276- then (aB + A[az[3]])
277- else aB
278- let aD = if ((aA >= 5))
279- then (aC + A[az[4]])
280- else aC
281- if ((aA >= 6))
325+ let bh = ((ag[bf[0]] + ag[bf[1]]) + ag[bf[2]])
326+ let bi = if ((bg >= 4))
327+ then (bh + ag[bf[3]])
328+ else bh
329+ let bj = if ((bg >= 5))
330+ then (bi + ag[bf[4]])
331+ else bi
332+ if ((bg >= 6))
282333 then throw("Invalid pricesInRange creation")
283334 else {
284- let aE = (aD / aA)
285- if (if ((aE >= (e + ((e * n) / 100))))
335+ let bk = (bj / bg)
336+ if (if ((bk >= (G + ((G * P) / 100))))
286337 then true
287- else ((e - ((e * n) / 100)) >= aE))
338+ else ((G - ((G * P) / 100)) >= bk))
288339 then {
289- let al = "automatic emergency shutdown because of large price variability"
290-[BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", toString(this)), StringEntry("is_blocked_reason", al), IntegerEntry((("black_swarm_price" + "_") + toString(height)), aE)]
340+ let aR = "automatic emergency shutdown because of large price variability"
341+[BooleanEntry("is_blocked", true), StringEntry("is_blocked_caller", toString(this)), StringEntry("is_blocked_reason", aR), IntegerEntry((("black_swarm_price" + "_") + toString(height)), bk)]
291342 }
292343 else {
293- let aF = (l + 1)
294-[IntegerEntry("price", aE), IntegerEntry(("price_" + toString(height)), aE), IntegerEntry("price_index", aF), IntegerEntry(("price_index_" + toString(aF)), height), IntegerEntry(("deficit_" + toString(height)), y), IntegerEntry(("neutrinoSupply_" + toString(height)), x), IntegerEntry(("deficit_percent_" + toString(height)), if ((x != 0))
295- then ((y * 100) / x)
344+ let bl = (N + 1)
345+[IntegerEntry("price", bk), IntegerEntry(("price_" + toString(height)), bk), IntegerEntry("price_index", bl), IntegerEntry(("price_index_" + toString(bl)), height), IntegerEntry(("deficit_" + toString(height)), ae), IntegerEntry(("neutrinoSupply_" + toString(height)), ad), IntegerEntry(("deficit_percent_" + toString(height)), if ((ad != 0))
346+ then ((ae * 100) / ad)
296347 else 0)]
297348 }
298349 }
299350 }
300351 }
301352 }
302353
303354
304-@Verifier(aG)
305-func aH () = {
306- let aI = makeString(["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "EYwZmURd5KKaQRBjsVa6g8DPisFoS6SovRJtFiL5gMHU", "DtmAfuDdCrHK8spdAeAYzq6MsZegeD9gnsrpuTRkCbVA", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"], b)
307- let aJ = split(valueOrElse(getString(t, "%s__multisig"), aI), b)
308- let aK = ((((if (sigVerify(aG.bodyBytes, aG.proofs[0], fromBase58String(aJ[0])))
355+@Verifier(bm)
356+func bn () = {
357+ let bo = makeString(["GJdLSaLiv5K7xuejac8mcRcHoyo3dPrESrvktG3a6MAR", "EYwZmURd5KKaQRBjsVa6g8DPisFoS6SovRJtFiL5gMHU", "DtmAfuDdCrHK8spdAeAYzq6MsZegeD9gnsrpuTRkCbVA", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"], b)
358+ let bp = split(valueOrElse(getString(V, "%s__multisig"), bo), b)
359+ let bq = ((((if (sigVerify(bm.bodyBytes, bm.proofs[0], fromBase58String(bp[0])))
309360 then 1
310- else 0) + (if (sigVerify(aG.bodyBytes, aG.proofs[1], fromBase58String(aJ[1])))
361+ else 0) + (if (sigVerify(bm.bodyBytes, bm.proofs[1], fromBase58String(bp[1])))
311362 then 1
312- else 0)) + (if (sigVerify(aG.bodyBytes, aG.proofs[2], fromBase58String(aJ[2])))
363+ else 0)) + (if (sigVerify(bm.bodyBytes, bm.proofs[2], fromBase58String(bp[2])))
313364 then 1
314- else 0)) + (if (sigVerify(aG.bodyBytes, aG.proofs[3], fromBase58String(aJ[3])))
365+ else 0)) + (if (sigVerify(bm.bodyBytes, bm.proofs[3], fromBase58String(bp[3])))
315366 then 2
316367 else 0))
317- (aK >= 3)
368+ (bq >= 3)
318369 }
319370

github/deemru/w8io/6500d08 
163.49 ms