tx · EuP2aX2tH2ZQYRYmZmHRg9P7PpKetkVW2xd3gDa6rgaF 3MyN19SDzDpXyEtabWvag2P5mkeFrdFVd4h: -0.05000000 Waves 2023.01.02 15:48 [2387374] smart account 3MyN19SDzDpXyEtabWvag2P5mkeFrdFVd4h > SELF 0.00000000 Waves
{ "type": 13, "id": "EuP2aX2tH2ZQYRYmZmHRg9P7PpKetkVW2xd3gDa6rgaF", "fee": 5000000, "feeAssetId": null, "timestamp": 1672663687011, "version": 2, "chainId": 84, "sender": "3MyN19SDzDpXyEtabWvag2P5mkeFrdFVd4h", "senderPublicKey": "4HqqczFwZHAsxp1oNq8dQkRStfCKBL79X99icQ2B6FYn", "proofs": [ "4jvDseJU1tCZBsSLhyEFQCn4DWsvd4Nfs6Znm6Q4KUB6ZiUzefXtuqLcocFZJsiePVA51mLbjbpqwuLFgvs6c8nD" ], "script": "base64:AAIFAAAAAAAAACQIAhIECgIICBIECgIIARIDCgEIEgUKAwgBCBIDCgEIEgMKAQgAAAAZAAAAAANTRVACAAAAAl9fAAAAABlJZHhDb250cm9sQ2ZnTmV1dHJpbm9EYXBwAAAAAAAAAAABAAAAABhJZHhDb250cm9sQ2ZnQXVjdGlvbkRhcHAAAAAAAAAAAAIAAAAAFElkeENvbnRyb2xDZmdScGREYXBwAAAAAAAAAAADAAAAABVJZHhDb250cm9sQ2ZnTWF0aERhcHAAAAAAAAAAAAQAAAAAHElkeENvbnRyb2xDZmdMaXF1aWRhdGlvbkRhcHAAAAAAAAAAAAUAAAAAFUlkeENvbnRyb2xDZmdSZXN0RGFwcAAAAAAAAAAABgAAAAAdSWR4Q29udHJvbENmZ05vZGVSZWdpc3RyeURhcHAAAAAAAAAAAAcAAAAAHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAAAAAAAAAAAAgAAAAAGUlkeENvbnRyb2xDZmdNZWRpYXRvckRhcHAAAAAAAAAAAAkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAKbWFuZGF0b3J5IAkABCUAAAABBQAAAAdhZGRyZXNzAgAAAAEuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAARa2V5Q29udHJvbEFkZHJlc3MAAAAAAgAAABwlcyVzX19jb25maWdfX2NvbnRyb2xBZGRyZXNzAQAAAA1rZXlDb250cm9sQ2ZnAAAAAAIAAAARJXNfX2NvbnRyb2xDb25maWcBAAAAFHJlYWRDb250cm9sQ2ZnT3JGYWlsAAAAAQAAAAdjb250cm9sCQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAAdjb250cm9sCQEAAAANa2V5Q29udHJvbENmZwAAAAAFAAAAA1NFUAEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgAAAApjb250cm9sQ2ZnAAAAA2lkeAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEJAAGRAAAAAgUAAAAKY29udHJvbENmZwUAAAADaWR4CQABLAAAAAICAAAALUNvbnRyb2wgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkAAaQAAAABBQAAAANpZHgAAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzCQEAAAARa2V5Q29udHJvbEFkZHJlc3MAAAAAAgAAACMzUDVCZmQ1OFBQZk52Qk0ySHk4UWZiY0RxTWVOdHpnN0tmUAAAAAAKY29udHJvbENmZwkBAAAAFHJlYWRDb250cm9sQ2ZnT3JGYWlsAAAAAQUAAAAPY29udHJvbENvbnRyYWN0AAAAAAdyZXN0QWNjCQEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgUAAAAKY29udHJvbENmZwUAAAAVSWR4Q29udHJvbENmZ1Jlc3REYXBwAQAAAA5rZXlSZXN0QWRkcmVzcwAAAAACAAAAGSVzJXNfX2NvbmZpZ19fcmVzdEFkZHJlc3MBAAAADGdldFN0ck9yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgIAAAAPTWFuZGF0b3J5IHRoaXMuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAAQZ2V0QWRkcmVzc09yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAADGdldFN0ck9yRmFpbAAAAAEFAAAAA2tleQkAASwAAAACAgAAAB9mYWlsIHRvIHBhcnNlIGFkZHJlc3MgZm9yIHRoaXMuBQAAAANrZXkBAAAACGFzU3RyaW5nAAAAAQAAAAN2YWwEAAAAByRtYXRjaDAFAAAAA3ZhbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAZ2YWxTdHIFAAAAByRtYXRjaDAFAAAABnZhbFN0cgkAAAIAAAAB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", "height": 2387374, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CG7KVqCcnKv6x8HarFkyTrUWRkxG6c1CMjuJ9uw5zoNC Next: EVHRtR9ithvt9cUEiLLq6X42wwNh5nL3V4A4y7Vvezj8 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = "" | |
4 | + | let a = "__" | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = 1 | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = 2 | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = 3 | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = 4 | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = 5 | |
15 | 15 | ||
16 | - | let g = | |
16 | + | let g = 6 | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = 7 | |
19 | 19 | ||
20 | - | let i = | |
20 | + | let i = 8 | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = 9 | |
23 | 23 | ||
24 | - | let k = 3 | |
25 | - | ||
26 | - | let l = 4 | |
27 | - | ||
28 | - | let m = 5 | |
29 | - | ||
30 | - | let n = 6 | |
31 | - | ||
32 | - | let o = 7 | |
33 | - | ||
34 | - | let p = 8 | |
35 | - | ||
36 | - | let q = 9 | |
37 | - | ||
38 | - | let r = 10 | |
39 | - | ||
40 | - | let s = 11 | |
41 | - | ||
42 | - | func t (u,v) = valueOrErrorMessage(getString(u, v), (((("mandatory " + toString(u)) + ".") + v) + " is not defined")) | |
24 | + | func k (l,m) = valueOrErrorMessage(getString(l, m), (((("mandatory " + toString(l)) + ".") + m) + " is not defined")) | |
43 | 25 | ||
44 | 26 | ||
45 | - | func | |
27 | + | func n () = "%s%s__config__controlAddress" | |
46 | 28 | ||
47 | 29 | ||
48 | - | func | |
30 | + | func o () = "%s__controlConfig" | |
49 | 31 | ||
50 | 32 | ||
51 | - | func | |
33 | + | func p (q) = split(k(q, o()), a) | |
52 | 34 | ||
53 | 35 | ||
54 | - | func | |
36 | + | func r (s,t) = valueOrErrorMessage(addressFromString(s[t]), ("Control cfg doesn't contain address at index " + toString(t))) | |
55 | 37 | ||
56 | 38 | ||
57 | - | let | |
39 | + | let u = addressFromStringValue(valueOrElse(getString(this, n()), "3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP")) | |
58 | 40 | ||
59 | - | let | |
41 | + | let s = p(u) | |
60 | 42 | ||
61 | - | let | |
43 | + | let v = r(s, g) | |
62 | 44 | ||
63 | - | let F = A(B, i) | |
64 | - | ||
65 | - | let G = A(B, j) | |
66 | - | ||
67 | - | func H () = "bond_asset_id" | |
45 | + | func w () = "%s%s__config__restAddress" | |
68 | 46 | ||
69 | 47 | ||
70 | - | func | |
48 | + | func x (m) = valueOrErrorMessage(getString(this, m), (("Mandatory this." + m) + " is not defined")) | |
71 | 49 | ||
72 | 50 | ||
73 | - | func | |
51 | + | func y (m) = valueOrErrorMessage(addressFromString(x(m)), ("fail to parse address for this." + m)) | |
74 | 52 | ||
75 | 53 | ||
76 | - | func K () = "%s__stakedAssetId" | |
77 | - | ||
78 | - | ||
79 | - | func L (M) = makeString(["%s%s%s", "paramByUser", toString(M), "amount"], b) | |
80 | - | ||
81 | - | ||
82 | - | func N (M) = makeString(["%s%s%s", "paramByUser", toString(M), "start"], b) | |
83 | - | ||
84 | - | ||
85 | - | func O (M) = makeString(["%s%s%s", "paramByUser", toString(M), "vpEffectiveHeight"], b) | |
86 | - | ||
87 | - | ||
88 | - | func P (Q,M,R) = makeString(["%s%s%s%s", "history", Q, toString(M), toBase58String(R)], b) | |
89 | - | ||
90 | - | ||
91 | - | func S () = makeString(["%s%s", "stats", "activeTotalLocked"], b) | |
92 | - | ||
93 | - | ||
94 | - | func T () = makeString(["%s%s", "stats", "locksCount"], b) | |
95 | - | ||
96 | - | ||
97 | - | func U () = makeString(["%s%s", "stats", "activeUsersCount"], b) | |
98 | - | ||
99 | - | ||
100 | - | func V () = "%s__nextPeriod" | |
101 | - | ||
102 | - | ||
103 | - | func W () = "supportedRewardAssets" | |
104 | - | ||
105 | - | ||
106 | - | func X () = makeString(["%s%s%s", "dep", "lastNum"], b) | |
107 | - | ||
108 | - | ||
109 | - | func Y (M) = makeString(["%s%s%s", "userRwdFromDepNum", M], b) | |
110 | - | ||
111 | - | ||
112 | - | func Z (aa,ab) = makeString(["%s%d", "rwdPerNsbtSumByDepNum", toString(aa), ab], b) | |
113 | - | ||
114 | - | ||
115 | - | func ac (M,ab) = makeString(["%s%s%s", "rwd", M, ab], b) | |
116 | - | ||
117 | - | ||
118 | - | func ad (M,ab) = makeString(["%s%s%s", "clm", M, ab], b) | |
119 | - | ||
120 | - | ||
121 | - | func ae (ab) = makeString(["%s%s", "notDistributed", ab], b) | |
122 | - | ||
123 | - | ||
124 | - | func af (ag,ah) = fraction(toBigInt(ag), h, ah) | |
125 | - | ||
126 | - | ||
127 | - | func ai (v) = valueOrElse(getInteger(this, v), 0) | |
128 | - | ||
129 | - | ||
130 | - | func aj (v,ak) = valueOrElse(getInteger(this, v), ak) | |
131 | - | ||
132 | - | ||
133 | - | func al (v) = valueOrErrorMessage(getInteger(this, v), (("Mandatory this." + v) + " is not defined")) | |
134 | - | ||
135 | - | ||
136 | - | func am (v,ak) = valueOrElse(getString(this, v), ak) | |
137 | - | ||
138 | - | ||
139 | - | func an (ao) = valueOrErrorMessage(addressFromString(ao), ("couldn't parse passed addressStr=" + ao)) | |
140 | - | ||
141 | - | ||
142 | - | func ap (aq) = fromBase58String(aq) | |
143 | - | ||
144 | - | ||
145 | - | func ar (as) = { | |
146 | - | let at = as | |
147 | - | if ($isInstanceOf(at, "Int")) | |
54 | + | func z (A) = { | |
55 | + | let B = A | |
56 | + | if ($isInstanceOf(B, "String")) | |
148 | 57 | then { | |
149 | - | let | |
150 | - | | |
58 | + | let C = B | |
59 | + | C | |
151 | 60 | } | |
152 | - | else throw("fail to cast into | |
61 | + | else throw("fail to cast into String") | |
153 | 62 | } | |
154 | 63 | ||
155 | 64 | ||
156 | - | func av (aw) = { | |
157 | - | let at = aw | |
158 | - | if ($isInstanceOf(at, "(Int, Int, Int, Int, Int, Int, Int)")) | |
159 | - | then { | |
160 | - | let ax = at | |
161 | - | ax | |
162 | - | } | |
163 | - | else throw("fail to cast into Int") | |
65 | + | func D (E) = { | |
66 | + | let F = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] | |
67 | + | let G = size(E) | |
68 | + | if (((G % 2) != 0)) | |
69 | + | then throw("only even args size is accepeted") | |
70 | + | else if ((G > size(F))) | |
71 | + | then throw(("strMap length is greater then " + toString(size(F)))) | |
72 | + | else { | |
73 | + | func D (H,I) = if (if (((I % 2) == 0)) | |
74 | + | then (G >= (I + 1)) | |
75 | + | else false) | |
76 | + | then (((((H + " | |
77 | + | \"") + E[I]) + "\": \"") + E[(I + 1)]) + "\",") | |
78 | + | else H | |
79 | + | ||
80 | + | let J = { | |
81 | + | let K = F | |
82 | + | let L = size(K) | |
83 | + | let M = "" | |
84 | + | func N (O,P) = if ((P >= L)) | |
85 | + | then O | |
86 | + | else D(O, K[P]) | |
87 | + | ||
88 | + | func Q (O,P) = if ((P >= L)) | |
89 | + | then O | |
90 | + | else throw("List size exceeds 20") | |
91 | + | ||
92 | + | Q(N(N(N(N(N(N(N(N(N(N(N(N(N(N(N(N(N(N(N(N(M, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20) | |
93 | + | } | |
94 | + | (("{" + dropRight(J, 1)) + "}") | |
95 | + | } | |
164 | 96 | } | |
165 | 97 | ||
166 | 98 | ||
167 | - | func ay (az,aA,aB,aC) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(az), toString(aA), toString(aB), toString(aC)], b) | |
99 | + | func R (S) = { | |
100 | + | func T (U,V) = (U :+ invoke(Address(fromBase58String(V._1)), V._2, V._3, nil)) | |
168 | 101 | ||
102 | + | let K = S | |
103 | + | let L = size(K) | |
104 | + | let M = nil | |
105 | + | func N (O,P) = if ((P >= L)) | |
106 | + | then O | |
107 | + | else T(O, K[P]) | |
169 | 108 | ||
170 | - | func aD (aE,aF) = makeString(["%s%d%d%s", aE, toString(lastBlock.height), toString(lastBlock.timestamp), aF], b) | |
109 | + | func Q (O,P) = if ((P >= L)) | |
110 | + | then O | |
111 | + | else throw("List size exceeds 10") | |
171 | 112 | ||
172 | - | ||
173 | - | func aG (Q,M,R,az,aA,aB,aC) = StringEntry(P(Q, M, R), ay(az, aA, aB, aC)) | |
174 | - | ||
175 | - | ||
176 | - | func aH (M,R,aF) = StringEntry(P("claim", M, R), aD(toString(M), aF)) | |
177 | - | ||
178 | - | ||
179 | - | func aI (aJ,aK,aL) = { | |
180 | - | let aM = ai(T()) | |
181 | - | let aN = ai(U()) | |
182 | - | let aO = ai(S()) | |
183 | - | let aP = (aO + aJ) | |
184 | - | $Tuple3([IntegerEntry(T(), (aM + aK)), IntegerEntry(U(), (aN + aL)), IntegerEntry(S(), aP)], aO, aP) | |
113 | + | Q(N(N(N(N(N(N(N(N(N(N(M, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
185 | 114 | } | |
186 | 115 | ||
187 | 116 | ||
188 | - | func aQ (M,aR,aS) = [IntegerEntry(L(M), aR), IntegerEntry(N(M), aS)] | |
117 | + | func W (S) = { | |
118 | + | func T (U,V) = { | |
119 | + | let X = Address(fromBase58String(V._1)) | |
120 | + | let Y = V._2 | |
121 | + | let Z = V._3 | |
122 | + | let aa = V._4 | |
123 | + | let ab = if ((Z == "invoke")) | |
124 | + | then invoke(X, Y, aa, nil) | |
125 | + | else if ((Z == "binKey")) | |
126 | + | then getBinary(X, Y) | |
127 | + | else if ((Z == "binValKey")) | |
128 | + | then getBinaryValue(X, Y) | |
129 | + | else if ((Z == "boolKey")) | |
130 | + | then getBoolean(X, Y) | |
131 | + | else if ((Z == "boolValKey")) | |
132 | + | then getBooleanValue(X, Y) | |
133 | + | else if ((Z == "intKey")) | |
134 | + | then getInteger(X, Y) | |
135 | + | else if ((Z == "intValKey")) | |
136 | + | then getIntegerValue(X, Y) | |
137 | + | else if ((Z == "strKey")) | |
138 | + | then getString(X, Y) | |
139 | + | else if ((Z == "strValKey")) | |
140 | + | then getStringValue(X, Y) | |
141 | + | else if ((Z == "hasData")) | |
142 | + | then !(isDataStorageUntouched(X)) | |
143 | + | else throw(("not supported operation type: " + Z)) | |
144 | + | (U :+ ab) | |
145 | + | } | |
189 | 146 | ||
147 | + | let K = S | |
148 | + | let L = size(K) | |
149 | + | let M = nil | |
150 | + | func N (O,P) = if ((P >= L)) | |
151 | + | then O | |
152 | + | else T(O, K[P]) | |
190 | 153 | ||
191 | - | func aT () = $Tuple2(fromBase58String(t(this, K())), al(J())) | |
154 | + | func Q (O,P) = if ((P >= L)) | |
155 | + | then O | |
156 | + | else throw("List size exceeds 10") | |
192 | 157 | ||
193 | - | ||
194 | - | func aU (M) = (aj(L(M), 0) > 0) | |
195 | - | ||
196 | - | ||
197 | - | func aV (M) = if (aU(M)) | |
198 | - | then $Tuple3(false, al(L(M)), al(N(M))) | |
199 | - | else unit | |
200 | - | ||
201 | - | ||
202 | - | func aW (M) = valueOrErrorMessage(aV(M), (("User " + toString(M)) + " is not defined")) | |
203 | - | ||
204 | - | ||
205 | - | let aX = am(W(), "") | |
206 | - | ||
207 | - | let aY = split(aX, "_") | |
208 | - | ||
209 | - | func aZ (M,ba,bb,bc,bd) = { | |
210 | - | let be = Z(bd, ba) | |
211 | - | let bf = parseBigIntValue(am(Z(bd, ba), "0")) | |
212 | - | let bg = parseBigIntValue(am(Z(bc, ba), "0")) | |
213 | - | let bh = toInt(fraction((bf - bg), bb, h)) | |
214 | - | let bi = ac(M, ba) | |
215 | - | let bj = aj(bi, 0) | |
216 | - | $Tuple4((bj + bh), bj, bh, bi) | |
158 | + | Q(N(N(N(N(N(N(N(N(N(N(M, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
217 | 159 | } | |
218 | 160 | ||
219 | 161 | ||
220 | - | func bk (bl,M,bm) = { | |
221 | - | let bb = toBigInt(bm) | |
222 | - | let bn = Y(M) | |
223 | - | let bc = aj(bn, -1) | |
224 | - | let bd = aj(X(), -1) | |
225 | - | func bo (bp,bq) = { | |
226 | - | let br = aZ(M, bq, bb, bc, bd) | |
227 | - | let bs = br._1 | |
228 | - | let bt = br._2 | |
229 | - | let bu = br._3 | |
230 | - | let bi = br._4 | |
231 | - | (bp :+ IntegerEntry(bi, bs)) | |
232 | - | } | |
233 | - | ||
234 | - | if (if ((bd == -1)) | |
235 | - | then (bc == -1) | |
236 | - | else false) | |
237 | - | then nil | |
238 | - | else if (if ((bd == -1)) | |
239 | - | then (bc > -1) | |
240 | - | else false) | |
241 | - | then throw("invalid depositNumLast and depositNumUser state") | |
242 | - | else if (if ((bd > -1)) | |
243 | - | then (bc >= -1) | |
244 | - | else false) | |
245 | - | then if (bl) | |
246 | - | then [IntegerEntry(bn, bd)] | |
247 | - | else ({ | |
248 | - | let bv = aY | |
249 | - | let bw = size(bv) | |
250 | - | let bx = nil | |
251 | - | func by (bz,bA) = if ((bA >= bw)) | |
252 | - | then bz | |
253 | - | else bo(bz, bv[bA]) | |
254 | - | ||
255 | - | func bB (bz,bA) = if ((bA >= bw)) | |
256 | - | then bz | |
257 | - | else throw("List size exceeds 10") | |
258 | - | ||
259 | - | bB(by(by(by(by(by(by(by(by(by(by(bx, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
260 | - | } :+ IntegerEntry(bn, bd)) | |
261 | - | else throw(((("uncovered condition: depositNumLast=" + toString(bd)) + " depositNumUser=") + toString(bc))) | |
262 | - | } | |
263 | - | ||
264 | - | ||
265 | - | func bC (ab,bD) = { | |
266 | - | let bE = ae(ab) | |
267 | - | let bF = aj(bE, 0) | |
268 | - | [IntegerEntry(bE, (bF + bD))] | |
269 | - | } | |
270 | - | ||
271 | - | ||
272 | - | func bG (bH,bI,bJ,bK) = { | |
273 | - | let bL = (bI - height) | |
274 | - | if ((0 >= bL)) | |
275 | - | then (height + bH) | |
276 | - | else { | |
277 | - | let bM = (bH - bL) | |
278 | - | let bN = if ((bK != 0)) | |
279 | - | then fraction(bJ, e, bK) | |
280 | - | else bI | |
281 | - | ((bH + height) - fraction(bM, bN, e)) | |
282 | - | } | |
283 | - | } | |
284 | - | ||
285 | - | ||
286 | - | func bO (M,bP) = { | |
287 | - | let bQ = valueOrElse(aV(M), $Tuple3(true, 0, 0)) | |
288 | - | let bl = bQ._1 | |
289 | - | let bm = bQ._2 | |
290 | - | let bI = bQ._3 | |
291 | - | let bR = if (bl) | |
292 | - | then bP | |
293 | - | else (bP + bm) | |
294 | - | let bH = (1440 * 14) | |
295 | - | let bS = if (bl) | |
296 | - | then (bH + height) | |
297 | - | else bG(bH, bI, bm, bR) | |
298 | - | $Tuple5(bl, bm, bI, bR, bS) | |
299 | - | } | |
300 | - | ||
301 | - | ||
302 | - | func bT (M,bU) = { | |
303 | - | let bV = aT() | |
304 | - | let bW = bV._1 | |
305 | - | let bX = bV._2 | |
306 | - | if ((size(bU.payments) != 1)) | |
307 | - | then throw("Invalid payments size") | |
308 | - | else { | |
309 | - | let bY = bU.payments[0] | |
310 | - | let aR = bY.amount | |
311 | - | let bZ = (("Invalid asset. " + toBase58String(bW)) + " is expected") | |
312 | - | let ba = valueOrErrorMessage(bY.assetId, bZ) | |
313 | - | if ((ba != bW)) | |
314 | - | then throw(bZ) | |
315 | - | else { | |
316 | - | let ca = toString(M) | |
317 | - | let cb = bO(M, aR) | |
318 | - | let bl = cb._1 | |
319 | - | let bm = cb._2 | |
320 | - | let bI = cb._3 | |
321 | - | let bR = cb._4 | |
322 | - | let bS = cb._5 | |
323 | - | if ((bX > bR)) | |
324 | - | then throw(("Min lock amount is " + toString(bX))) | |
325 | - | else { | |
326 | - | let cc = aI(aR, 1, if (bl) | |
327 | - | then 1 | |
328 | - | else 0) | |
329 | - | let cd = cc._1 | |
330 | - | let ce = cc._2 | |
331 | - | let cf = cc._3 | |
332 | - | ((([aG("stake", M, bU.transactionId, bm, bI, bR, bS)] ++ bk(bl, ca, bm)) ++ aQ(M, bR, bS)) ++ cd) | |
333 | - | } | |
334 | - | } | |
335 | - | } | |
336 | - | } | |
337 | - | ||
338 | - | ||
339 | - | func cg (M,bU) = { | |
340 | - | let ca = toString(M) | |
341 | - | if ((size(bU.payments) > 0)) | |
342 | - | then throw("payments are not accepted") | |
343 | - | else { | |
344 | - | let ch = valueOrElse(aV(M), $Tuple3(true, 0, 0)) | |
345 | - | let bl = ch._1 | |
346 | - | let bm = ch._2 | |
347 | - | let ci = ch._3 | |
348 | - | let bb = toBigInt(bm) | |
349 | - | let bn = Y(ca) | |
350 | - | let bc = aj(bn, -1) | |
351 | - | let bd = aj(X(), -1) | |
352 | - | func cj (bp,bq) = { | |
353 | - | let ck = aZ(ca, bq, bb, bc, bd) | |
354 | - | let bs = ck._1 | |
355 | - | let bt = ck._2 | |
356 | - | let bu = ck._3 | |
357 | - | let bi = ck._4 | |
358 | - | let cl = ad(ca, bq) | |
359 | - | let cm = bp | |
360 | - | let cn = cm._1 | |
361 | - | let co = cm._2 | |
362 | - | let cp = makeString([bq, toString(bs)], ":") | |
363 | - | let cq = makeString([co, cp], "_") | |
364 | - | if ((0 >= bs)) | |
365 | - | then $Tuple2(cn, cq) | |
366 | - | else $Tuple2((((cn :+ ScriptTransfer(M, bs, ap(bq))) :+ IntegerEntry(cl, (valueOrElse(getInteger(cl), 0) + bs))) :+ IntegerEntry(bi, 0)), cq) | |
367 | - | } | |
368 | - | ||
369 | - | let cr = { | |
370 | - | let bv = aY | |
371 | - | let bw = size(bv) | |
372 | - | let bx = $Tuple2(nil, "") | |
373 | - | func by (bz,bA) = if ((bA >= bw)) | |
374 | - | then bz | |
375 | - | else cj(bz, bv[bA]) | |
376 | - | ||
377 | - | func bB (bz,bA) = if ((bA >= bw)) | |
378 | - | then bz | |
379 | - | else throw("List size exceeds 10") | |
380 | - | ||
381 | - | bB(by(by(by(by(by(by(by(by(by(by(bx, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
382 | - | } | |
383 | - | let cs = cr._1 | |
384 | - | let ct = cr._2 | |
385 | - | if ((0 >= size(cs))) | |
386 | - | then nil | |
387 | - | else ((cs :+ IntegerEntry(bn, bd)) :+ aH(M, bU.transactionId, drop(ct, 1))) | |
388 | - | } | |
389 | - | } | |
390 | - | ||
391 | - | ||
392 | - | @Callable(bU) | |
393 | - | func constructor (bX,cu,bW) = if ((bU.caller != this)) | |
394 | - | then throw("Permission denied") | |
395 | - | else [IntegerEntry(J(), bX), StringEntry(W(), cu), StringEntry(K(), bW)] | |
162 | + | @Callable(ac) | |
163 | + | func constructorV1 (ad,ae) = if ((ac.caller != this)) | |
164 | + | then throw("not authorized") | |
165 | + | else [StringEntry(n(), ad), StringEntry(w(), ae)] | |
396 | 166 | ||
397 | 167 | ||
398 | 168 | ||
399 | - | @Callable(bU) | |
400 | - | func stake () = bT(bU.caller, bU) | |
401 | - | ||
402 | - | ||
403 | - | ||
404 | - | @Callable(bU) | |
405 | - | func stakeByOriginCaller () = bT(bU.originCaller, bU) | |
406 | - | ||
407 | - | ||
408 | - | ||
409 | - | @Callable(bU) | |
410 | - | func unstake (aR) = if ((size(bU.payments) != 0)) | |
411 | - | then throw("unstake doesn't require any payment") | |
412 | - | else { | |
413 | - | let M = bU.caller | |
414 | - | let ca = toString(M) | |
415 | - | let cv = aT() | |
416 | - | let bW = cv._1 | |
417 | - | let bX = cv._2 | |
418 | - | let cw = aW(M) | |
419 | - | let bl = cw._1 | |
420 | - | let bm = cw._2 | |
421 | - | let bI = cw._3 | |
422 | - | let cx = av(reentrantInvoke(F, "swapParamsByUserSYSREADONLY", [ca, 0], nil)) | |
423 | - | let cy = cx._2 | |
424 | - | let cz = cx._3 | |
425 | - | if ((cy > 0)) | |
426 | - | then throw((("You have already made a swap operation. Wait " + toString((height + cz))) + " height to unstake")) | |
427 | - | else if ((0 >= bm)) | |
428 | - | then throw("Nothing to unstake") | |
429 | - | else if ((aR > bm)) | |
430 | - | then throw(((("Requested " + toString(aR)) + ", but staked only ") + toString(bm))) | |
431 | - | else { | |
432 | - | let bR = (bm - aR) | |
433 | - | let cA = aI(-(aR), if ((aR == bm)) | |
434 | - | then -1 | |
435 | - | else 0, if ((aR == bm)) | |
436 | - | then -1 | |
437 | - | else 0) | |
438 | - | let cd = cA._1 | |
439 | - | let ce = cA._2 | |
440 | - | let cf = cA._3 | |
441 | - | ((([ScriptTransfer(M, aR, bW), aG("unstake", M, bU.transactionId, bm, bI, bR, bI)] ++ bk(false, ca, bm)) ++ aQ(M, bR, bI)) ++ cd) | |
442 | - | } | |
443 | - | } | |
444 | - | ||
445 | - | ||
446 | - | ||
447 | - | @Callable(bU) | |
448 | - | func deposit () = if ((size(bU.payments) != 1)) | |
449 | - | then throw("exact 1 payment is allowed only") | |
450 | - | else { | |
451 | - | let cB = bU.payments[0] | |
452 | - | let aR = cB.amount | |
453 | - | let cC = value(cB.assetId) | |
454 | - | let cD = toBase58String(cC) | |
455 | - | let cE = f | |
456 | - | let cF = toBigInt(aR) | |
457 | - | let ce = aj(S(), 0) | |
458 | - | let cG = toBigInt(ce) | |
459 | - | if ((0 > ce)) | |
460 | - | then throw("TODO: case is not supported") | |
461 | - | else if ((ce == 0)) | |
462 | - | then bC(cD, aR) | |
463 | - | else { | |
464 | - | let cH = fraction(cF, h, cG) | |
465 | - | let cI = X() | |
466 | - | let bd = aj(cI, -1) | |
467 | - | let cJ = (bd + 1) | |
468 | - | if (!(contains(aX, cD))) | |
469 | - | then throw(((aX + " doesn't contain ") + cD)) | |
470 | - | else { | |
471 | - | func cK (bp,cL) = { | |
472 | - | let cM = Z(cJ, cL) | |
473 | - | let cN = am(Z(bd, cL), "0") | |
474 | - | (bp :+ (if ((cL == cD)) | |
475 | - | then StringEntry(cM, toString((parseBigIntValue(cN) + cH))) | |
476 | - | else StringEntry(cM, cN))) | |
477 | - | } | |
478 | - | ||
479 | - | ({ | |
480 | - | let bv = aY | |
481 | - | let bw = size(bv) | |
482 | - | let bx = nil | |
483 | - | func by (bz,bA) = if ((bA >= bw)) | |
484 | - | then bz | |
485 | - | else cK(bz, bv[bA]) | |
486 | - | ||
487 | - | func bB (bz,bA) = if ((bA >= bw)) | |
488 | - | then bz | |
489 | - | else throw("List size exceeds 10") | |
490 | - | ||
491 | - | bB(by(by(by(by(by(by(by(by(by(by(bx, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
492 | - | } :+ IntegerEntry(cI, cJ)) | |
493 | - | } | |
494 | - | } | |
495 | - | } | |
496 | - | ||
497 | - | ||
498 | - | ||
499 | - | @Callable(bU) | |
500 | - | func claimRewards () = cg(bU.caller, bU) | |
501 | - | ||
502 | - | ||
503 | - | ||
504 | - | @Callable(bU) | |
505 | - | func claimRewardsByOriginCaller () = cg(bU.originCaller, bU) | |
506 | - | ||
507 | - | ||
508 | - | ||
509 | - | @Callable(bU) | |
510 | - | func unclaimedRewardsREADONLY (ca) = { | |
511 | - | func cO (bp,bq) = ((bp + makeString([bq, "0", "0"], ":")) + "_") | |
512 | - | ||
513 | - | let cP = if ((ca == "")) | |
514 | - | then { | |
515 | - | let bv = aY | |
516 | - | let bw = size(bv) | |
517 | - | let bx = "" | |
518 | - | func by (bz,bA) = if ((bA >= bw)) | |
519 | - | then bz | |
520 | - | else cO(bz, bv[bA]) | |
521 | - | ||
522 | - | func bB (bz,bA) = if ((bA >= bw)) | |
523 | - | then bz | |
524 | - | else throw("List size exceeds 10") | |
525 | - | ||
526 | - | bB(by(by(by(by(by(by(by(by(by(by(bx, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
527 | - | } | |
528 | - | else { | |
529 | - | let M = addressFromStringValue(ca) | |
530 | - | let cQ = valueOrElse(aV(M), $Tuple3(true, 0, 0)) | |
531 | - | let bl = cQ._1 | |
532 | - | let bm = cQ._2 | |
533 | - | let ci = cQ._3 | |
534 | - | let bb = toBigInt(bm) | |
535 | - | let bn = Y(ca) | |
536 | - | let bc = aj(bn, -1) | |
537 | - | let bd = aj(X(), -1) | |
538 | - | func cj (bp,bq) = { | |
539 | - | let cR = aZ(ca, bq, bb, bc, bd) | |
540 | - | let bs = cR._1 | |
541 | - | let bt = cR._2 | |
542 | - | let bu = cR._3 | |
543 | - | let bi = cR._4 | |
544 | - | let cS = valueOrElse(getInteger(ad(ca, bq)), 0) | |
545 | - | ((bp + makeString([bq, toString(bs), toString(cS)], ":")) + "_") | |
546 | - | } | |
547 | - | ||
548 | - | let bv = aY | |
549 | - | let bw = size(bv) | |
550 | - | let bx = "" | |
551 | - | func by (bz,bA) = if ((bA >= bw)) | |
552 | - | then bz | |
553 | - | else cj(bz, bv[bA]) | |
554 | - | ||
555 | - | func bB (bz,bA) = if ((bA >= bw)) | |
556 | - | then bz | |
557 | - | else throw("List size exceeds 10") | |
558 | - | ||
559 | - | bB(by(by(by(by(by(by(by(by(by(by(bx, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
560 | - | } | |
561 | - | $Tuple2(nil, dropRight(cP, 1)) | |
169 | + | @Callable(ac) | |
170 | + | func stakeNsbtPageREADONLY (af,ag) = { | |
171 | + | let ah = z(invoke(v, "gnsbtInfoREADONLY", [af, ag], nil)) | |
172 | + | let ai = z(invoke(v, "swapInfoREADONLY", [af], nil)) | |
173 | + | $Tuple2(nil, D(["gnsbtInfoREADONLY", ah, "swapInfoREADONLY", ai])) | |
562 | 174 | } | |
563 | 175 | ||
564 | 176 | ||
565 | 177 | ||
566 | - | @Callable(bU) | |
567 | - | func usdnStakingSYSREADONLY (cT,cU) = { | |
568 | - | let cV = aj(S(), 0) | |
569 | - | if ((cT == "")) | |
570 | - | then $Tuple2(nil, [0, cV, 0, 0, 0, height, height]) | |
571 | - | else { | |
572 | - | let M = an(cT) | |
573 | - | let cb = bO(M, cU) | |
574 | - | let bl = cb._1 | |
575 | - | let bm = cb._2 | |
576 | - | let bI = cb._3 | |
577 | - | let bR = cb._4 | |
578 | - | let bS = cb._5 | |
579 | - | let cW = bm | |
580 | - | $Tuple2(nil, [cW, cV, 0, 0, bI, bS]) | |
581 | - | } | |
178 | + | @Callable(ac) | |
179 | + | func buyNsbtPageREADONLY (af) = { | |
180 | + | let ah = z(invoke(v, "gnsbtInfoREADONLY", [af, 0], nil)) | |
181 | + | let aj = z(invoke(v, "neutrinoStatsREADONLY", nil, nil)) | |
182 | + | $Tuple2(nil, D(["gnsbtInfoREADONLY", ah, "neutrinoStatsREADONLY", aj])) | |
582 | 183 | } | |
583 | 184 | ||
584 | 185 | ||
585 | 186 | ||
586 | - | @Callable(bU) | |
587 | - | func configSYSREADONLY () = { | |
588 | - | let cX = getIntegerValue(J()) | |
589 | - | $Tuple2(nil, [cX]) | |
187 | + | @Callable(ac) | |
188 | + | func buySurfPageREADONLY (af,ak,al) = { | |
189 | + | let aj = z(invoke(v, "neutrinoStatsREADONLY", nil, nil)) | |
190 | + | let am = z(invoke(v, "buySurfREADONLY", [af, ak, al], nil)) | |
191 | + | let an = z(invoke(v, "neutrinoConfigREADONLY", nil, nil)) | |
192 | + | $Tuple2(nil, D(["neutrinoStatsREADONLY", aj, "buySurfREADONLY", am, "neutrinoConfigREADONLY", an])) | |
193 | + | } | |
194 | + | ||
195 | + | ||
196 | + | ||
197 | + | @Callable(ac) | |
198 | + | func walletPageREADONLY (ao) = { | |
199 | + | let ap = z(invoke(v, "walletInfoREADONLY", [ao], nil)) | |
200 | + | $Tuple2(nil, D(["walletInfoREADONLY", ap])) | |
201 | + | } | |
202 | + | ||
203 | + | ||
204 | + | ||
205 | + | @Callable(ac) | |
206 | + | func genericREADONLY (aq) = { | |
207 | + | let ar = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] | |
208 | + | let as = [1, 3, 5, 7, 9, 11] | |
209 | + | let at = split(aq, a) | |
210 | + | let au = size(at) | |
211 | + | func av (aw,ax) = if ((ax >= au)) | |
212 | + | then aw | |
213 | + | else { | |
214 | + | let T = at[ax] | |
215 | + | let ay = split(T, "+") | |
216 | + | let l = addressFromStringValue(ay[0]) | |
217 | + | let az = ay[1] | |
218 | + | let aA = split(ay[2], ":") | |
219 | + | let aB = size(aA) | |
220 | + | func aC (aD,aE) = if ((aE >= aB)) | |
221 | + | then aD | |
222 | + | else { | |
223 | + | let aF = if ((aA[(aE - 1)] == "s")) | |
224 | + | then aA[aE] | |
225 | + | else parseIntValue(aA[aE]) | |
226 | + | (aD :+ aF) | |
227 | + | } | |
228 | + | ||
229 | + | let aa = { | |
230 | + | let K = as | |
231 | + | let L = size(K) | |
232 | + | let M = nil | |
233 | + | func N (O,P) = if ((P >= L)) | |
234 | + | then O | |
235 | + | else aC(O, K[P]) | |
236 | + | ||
237 | + | func Q (O,P) = if ((P >= L)) | |
238 | + | then O | |
239 | + | else throw("List size exceeds 6") | |
240 | + | ||
241 | + | Q(N(N(N(N(N(N(M, 0), 1), 2), 3), 4), 5), 6) | |
242 | + | } | |
243 | + | let aG = z(invoke(l, az, aa, nil)) | |
244 | + | (aw ++ [az, aG]) | |
245 | + | } | |
246 | + | ||
247 | + | let aH = { | |
248 | + | let K = ar | |
249 | + | let L = size(K) | |
250 | + | let M = nil | |
251 | + | func N (O,P) = if ((P >= L)) | |
252 | + | then O | |
253 | + | else av(O, K[P]) | |
254 | + | ||
255 | + | func Q (O,P) = if ((P >= L)) | |
256 | + | then O | |
257 | + | else throw("List size exceeds 10") | |
258 | + | ||
259 | + | Q(N(N(N(N(N(N(N(N(N(N(M, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
260 | + | } | |
261 | + | $Tuple2(nil, D(aH)) | |
590 | 262 | } | |
591 | 263 | ||
592 | 264 |
github/deemru/w8io/873ac7e 118.24 ms ◑