tx · E3YLgiJaTSyXvRiTTAwRfpEqpgNV79KsKHAjovfCat1

3PMrcFXJx23B9zbxxUT49z6ET6wF2dKfTdW:  -0.01000000 Waves

2022.03.09 13:29 [3021424] smart account 3PMrcFXJx23B9zbxxUT49z6ET6wF2dKfTdW > SELF 0.00000000 Waves

{ "type": 13, "id": "E3YLgiJaTSyXvRiTTAwRfpEqpgNV79KsKHAjovfCat1", "fee": 1000000, "feeAssetId": null, "timestamp": 1646821747002, "version": 1, "sender": "3PMrcFXJx23B9zbxxUT49z6ET6wF2dKfTdW", "senderPublicKey": "DCwRjW98gZsAvKFLyK4sgrn1zwQWLok27vhfYxz4Cok5", "proofs": [ "Zm6TNSE933btfNqTXMfoxqFa5z6mzgCpN1xTXJjdAoS97374hwgBw4PTGbvSHqdYKbdBN8chZcRBnao6XqSXCra" ], "script": "base64:AAIFAAAAAAAAAB4IAhIAEgMKAQgSAwoBCBIDCgEIEgQKAggBEgMKAQgAAAAeAQAAAAh3cml0ZUludAAAAAIAAAADa2V5AAAABXZhbHVlAwkAAGYAAAACAAAAAAAAAAAABQAAAAV2YWx1ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkAAaQAAAABBQAAAAV2YWx1ZQIAAAAJIGZvciBrZXkgBQAAAANrZXkJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlAQAAAAhjaGFuZ2VCeQAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAId3JpdGVJbnQAAAACBQAAAANrZXkJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAAFAAAABXZhbHVlAQAAAA91c2VyU2hhcmVzU3RvcmUAAAABAAAABHVzZXIJAAEsAAAAAgUAAAAEdXNlcgIAAAAHX3NoYXJlcwAAAAARc3Rha2VkSGVpZ2h0U3RvcmUCAAAADHN0YWtlZEhlaWdodAAAAAAQdG90YWxTaGFyZXNTdG9yZQIAAAALdG90YWxTaGFyZXMAAAAAC3N0YWtlZFN0b3JlAgAAAAZzdGFrZWQBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAAAAA2tleQAAAAV2YWx1ZQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAALU3RyaW5nRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgIAAAAVYWxyZWFkeSBpbml0aWFsaXplZDogBQAAAANrZXkAAAAAEXZpcmVzQXNzZXRJZFN0b3JlAgAAAAdhc3NldElkAAAAAAttaW50ZXJTdG9yZQIAAAAMdmlyZXNfbWludGVyAAAAAAtjb25maWdTdG9yZQIAAAAGY29uZmlnAAAAAA1jb25maWdBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAC2NvbmZpZ1N0b3JlAgAAAB52aXJlcy1zdGFrZXI6IG5vIGNvbmZpZ0FkZHJlc3MCAAAAFmludmFsaWQgY29uZmlnIGFkZHJlc3MAAAAAEm1heWJlT3JhY2xlQWRkcmVzcwQAAAAHJG1hdGNoMAkABB0AAAACBQAAAA1jb25maWdBZGRyZXNzAgAAAA5vcmFjbGVfYWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQAEJgAAAAEFAAAAAXMFAAAABHVuaXQAAAAABkhFSUdIVAUAAAAGaGVpZ2h0AAAAAAVSQmFzZQAAI4byb8EAAAAAAAADYXByCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAANY29uZmlnQWRkcmVzcwIAAAAQdmlyZXNfc3Rha2VyX2FwcgIAAAATbm8gdmlyZXNfc3Rha2VyX2FwcgAAAAANYmxvY2tzUGVyWWVhcgkAAGgAAAACCQAAaAAAAAIAAAAAAAAAAW0AAAAAAAAAABgAAAAAAAAAADwAAAAACVJQZXJCbG9jawkAAGsAAAADBQAAAANhcHIFAAAABVJCYXNlCQAAaAAAAAIAAAAAAAAAA+gFAAAADWJsb2Nrc1BlclllYXIAAAAAC3ZpcmVzTWludGVyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAADWNvbmZpZ0FkZHJlc3MFAAAAC21pbnRlclN0b3JlAgAAABx2aXJlcy1zdGFrZXI6IG5vIHZpcmVzTWludGVyAgAAABNpbnZhbGlkIHZpcmVzTWludGVyAAAAAARtYWluCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAADWNvbmZpZ0FkZHJlc3MCAAAABG1haW4CAAAAB25vIG1haW4CAAAADGludmFsaWQgbWFpbgAAAAAKdmlyZXNJZFN0cgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UA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", "chainId": 87, "height": 3021424, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: vFXR1tZT3rBZUgMVMwWLGufyjY8EagHxRSBVnzeH9Ne Next: BZ6nvQ7EsEmUFwXB9b6GNpFZN62Bsor3MBWmoeUyyKyW Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = getString(this, b)
4+func a (b,c) = if ((0 > c))
5+ then throw(((("writing negative value " + toString(c)) + " for key ") + b))
6+ else IntegerEntry(b, c)
57
68
7-let c = "oracleAddress"
9+func d (b,c) = a(b, (valueOrElse(getInteger(this, b), 0) + c))
810
9-let d = {
10- let e = a(c)
11- if ($isInstanceOf(e, "String"))
11+
12+func e (f) = (f + "_shares")
13+
14+
15+let g = "stakedHeight"
16+
17+let h = "totalShares"
18+
19+let i = "staked"
20+
21+func j (b,c) = if (!(isDefined(getString(this, b))))
22+ then StringEntry(b, c)
23+ else throw(("already initialized: " + b))
24+
25+
26+let k = "assetId"
27+
28+let l = "vires_minter"
29+
30+let m = "config"
31+
32+let n = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, m), "vires-staker: no configAddress")), "invalid config address")
33+
34+let o = {
35+ let p = getString(n, "oracle_address")
36+ if ($isInstanceOf(p, "String"))
1237 then {
13- let f = e
14- addressFromString(f)
38+ let q = p
39+ addressFromString(q)
1540 }
1641 else unit
1742 }
1843
19-let g = height
44+let r = height
2045
21-func h (b,i) = if ((0 > i))
22- then throw(((("writing negative value " + toString(i)) + " for key ") + b))
23- else IntegerEntry(b, i)
46+let s = 10000000000000000
2447
48+let t = valueOrErrorMessage(getInteger(n, "vires_staker_apr"), "no vires_staker_apr")
2549
26-func j (b) = getInteger(this, b)
50+let u = ((365 * 24) * 60)
2751
52+let v = fraction(t, s, (1000 * u))
2853
29-func k (b,i) = h(b, (valueOrElse(j(b), 0) + i))
54+let w = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n, l), "vires-staker: no viresMinter")), "invalid viresMinter")
3055
56+let x = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n, "main"), "no main")), "invalid main")
3157
32-func l (m) = (m + "_shares")
58+let y = valueOrErrorMessage(getString(w, k), "vires assetId not found")
3359
60+let z = valueOrErrorMessage(fromBase58String(y), "invalid vires assetId")
3461
35-let n = "stakedHeight"
36-
37-let o = "totalShares"
38-
39-let p = "staked"
40-
41-func q (b,i) = if (!(isDefined(getString(this, b))))
42- then StringEntry(b, i)
43- else throw(("already initialized: " + b))
44-
45-
46-let r = "admin"
47-
48-let s = "assetId"
49-
50-let t = "vires_minter"
51-
52-let u = "config"
53-
54-let v = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, u), "no configAddress")), "invalid config address")
55-
56-let w = 10000000000000000
57-
58-let x = valueOrErrorMessage(getInteger(v, "vires_staker_apr"), "no vires_staker_apr")
59-
60-let y = ((365 * 24) * 60)
61-
62-let z = fraction(x, w, (1000 * y))
63-
64-let A = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(v, t), "vires-staker: no viresMinter")), "invalid viresMinter")
65-
66-let B = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(v, "main"), "no main")), "invalid main")
67-
68-let C = valueOrErrorMessage(getString(A, s), "vires assetId not found")
69-
70-let D = valueOrErrorMessage(fromBase58String(C), "invalid vires assetId")
71-
72-func E (F,G) = if (F)
73- then throw(G)
62+func A (B,C) = if (B)
63+ then throw(C)
7464 else true
7565
7666
77-func H (I) = if (E((0 >= I.payments[0].amount), "staking zero amount"))
78- then E(if ((I.payments[0].assetId != D))
67+func D (E) = if (A((0 >= E.payments[0].amount), "staking zero amount"))
68+ then A(if ((E.payments[0].assetId != z))
7969 then true
80- else (size(I.payments) != 1), "staking only vires")
70+ else (size(E.payments) != 1), "staking only vires")
8171 else false
8272
8373
84-func J (I,m) = {
85- let e = addressFromString(m)
86- if ($isInstanceOf(e, "Address"))
74+func F (E,f) = {
75+ let p = addressFromString(f)
76+ if ($isInstanceOf(p, "Address"))
8777 then {
88- let K = e
89- if (if ((I.caller == B))
78+ let G = p
79+ if (if ((E.caller == x))
9080 then true
91- else (toString(I.caller) == m))
81+ else (toString(E.caller) == f))
9282 then true
93- else if ((I.caller != K))
83+ else if ((E.caller != G))
9484 then throw("only main can do on users behalf")
9585 else true
9686 }
9888 }
9989
10090
101-let L = {
102- let M = valueOrElse(getInteger(this, n), 0)
103- let N = valueOrElse(getInteger(this, p), 0)
104- let O = (g - M)
105- let P = (w + (O * z))
106- fraction(N, P, w)
91+let H = {
92+ let I = valueOrElse(getInteger(this, g), 0)
93+ let J = valueOrElse(getInteger(this, i), 0)
94+ let K = (r - I)
95+ let L = (s + (K * v))
96+ fraction(J, L, s)
10797 }
10898
109-func Q (R) = {
110- let S = valueOrElse(getInteger(this, o), 0)
111- if ((S == 0))
112- then R
113- else fraction(R, S, L)
99+func M (N) = {
100+ let O = valueOrElse(getInteger(this, h), 0)
101+ if ((O == 0))
102+ then N
103+ else fraction(N, O, H)
114104 }
115105
116106
117-func T (U) = {
118- let S = valueOrElse(getInteger(this, o), 0)
119- if ((S == 0))
120- then U
121- else fraction(U, L, S)
107+func P (Q) = {
108+ let O = valueOrElse(getInteger(this, h), 0)
109+ if ((O == 0))
110+ then Q
111+ else fraction(Q, H, O)
122112 }
123113
124114
125-func V (W) = {
126- let X = assetBalance(this, D)
127- if ((W > X))
115+func R (S) = {
116+ let T = assetBalance(this, z)
117+ if ((S > T))
128118 then {
129- let Y = invoke(A, "stakerMint", [toString(this), (W - X)], nil)
130- if ((Y == Y))
119+ let U = invoke(w, "stakerMint", [toString(this), (S - T)], nil)
120+ if ((U == U))
131121 then nil
132122 else throw("Strict value is not equal to itself.")
133123 }
135125 }
136126
137127
138-func Z (m,W) = {
139- let aa = V(W)
140- if ((aa == aa))
141- then ScriptTransfer(addressFromStringValue(m), W, D)
128+func V (f,S) = {
129+ let W = R(S)
130+ if ((W == W))
131+ then ScriptTransfer(addressFromStringValue(f), S, z)
142132 else throw("Strict value is not equal to itself.")
143133 }
144134
145135
146-func ab (ac) = {
147- let e = invoke(v, "opAllowed", [C, ac], nil)
148- if ($isInstanceOf(e, "Boolean"))
136+func X (Y) = {
137+ let p = invoke(n, "opAllowed", [y, Y], nil)
138+ if ($isInstanceOf(p, "Boolean"))
149139 then {
150- let ad = e
151- if (ad)
140+ let Z = p
141+ if (Z)
152142 then true
153143 else throw("not allowed")
154144 }
156146 }
157147
158148
159-@Callable(I)
149+@Callable(E)
160150 func advise () = {
161- let S = valueOrElse(getInteger(this, o), 0)
162- let ae = T(S)
163- $Tuple2(nil, ("totalStaked: " + toString(ae)))
151+ let O = valueOrElse(getInteger(this, h), 0)
152+ let aa = P(O)
153+ $Tuple2(nil, ("totalStaked: " + toString(aa)))
164154 }
165155
166156
167157
168-@Callable(I)
169-func adviseUser (m) = {
170- let af = valueOrElse(getInteger(this, l(m)), 0)
171- let ag = T(af)
172- $Tuple2(nil, ((("viresStakedShares: " + toString(af)) + ", viresStaked: ") + toString(ag)))
158+@Callable(E)
159+func adviseUser (f) = {
160+ let ab = valueOrElse(getInteger(this, e(f)), 0)
161+ let ac = P(ab)
162+ $Tuple2(nil, ((("viresStakedShares: " + toString(ab)) + ", viresStaked: ") + toString(ac)))
173163 }
174164
175165
176166
177-@Callable(I)
178-func init (v,ah) = [StringEntry(c, ah), q(r, toString(I.caller)), q(u, v)]
167+@Callable(E)
168+func init (n) = [j(m, n)]
179169
180170
181171
182-@Callable(I)
183-func stakeVires (m) = {
184- let ai = if (if (H(I))
185- then J(I, m)
172+@Callable(E)
173+func stakeVires (f) = {
174+ let ad = if (if (D(E))
175+ then F(E, f)
186176 else false)
187- then ab("stake_vires")
177+ then X("stake_vires")
188178 else false
189- if ((ai == ai))
179+ if ((ad == ad))
190180 then {
191- let W = I.payments[0].amount
192- let U = Q(W)
193-[h(p, (L + W)), h(n, g), k(o, U), k(l(m), U)]
181+ let S = E.payments[0].amount
182+ let Q = M(S)
183+[a(i, (H + S)), a(g, r), d(h, Q), d(e(f), Q)]
194184 }
195185 else throw("Strict value is not equal to itself.")
196186 }
197187
198188
199189
200-@Callable(I)
201-func unstakeVires (m,aj) = {
202- let ai = if (J(I, m))
203- then ab("unstake_vires")
190+@Callable(E)
191+func unstakeVires (f,ae) = {
192+ let ad = if (F(E, f))
193+ then X("unstake_vires")
204194 else false
205- if ((ai == ai))
195+ if ((ad == ad))
206196 then {
207- let af = valueOrElse(getInteger(this, l(m)), 0)
208- if ((af == 0))
197+ let ab = valueOrElse(getInteger(this, e(f)), 0)
198+ if ((ab == 0))
209199 then throw("nothing to unstake")
210200 else {
211- let ak = T(af)
212- let W = if ((aj == -1))
213- then ak
214- else aj
215- if ((0 > W))
201+ let af = P(ab)
202+ let S = if ((ae == -1))
203+ then af
204+ else ae
205+ if ((0 > S))
216206 then throw("cannot unstake negative amount")
217- else if ((W > ak))
207+ else if ((S > af))
218208 then throw("cannot unstake more than you have")
219209 else {
220- let U = min([Q(W), af])
221- if ((U == 0))
210+ let Q = min([M(S), ab])
211+ if ((Q == 0))
222212 then throw("cannot unstake 0 shares")
223- else [h(p, (L - W)), h(n, g), k(o, -(U)), k(l(m), -(U)), Z(m, W)]
213+ else [a(i, (H - S)), a(g, r), d(h, -(Q)), d(e(f), -(Q)), V(f, S)]
224214 }
225215 }
226216 }
229219
230220
231221
232-@Callable(I)
233-func unstakeAllViresFrom (m) = {
234- let ai = if ((I.caller == B))
235- then ab("unstake_vires")
222+@Callable(E)
223+func unstakeAllViresFrom (f) = {
224+ let ad = if ((E.caller == x))
225+ then X("unstake_vires")
236226 else false
237- if ((ai == ai))
227+ if ((ad == ad))
238228 then {
239- let af = valueOrElse(getInteger(this, l(m)), 0)
240- let al = T(af)
241- $Tuple2([h(p, (L - al)), h(n, g), k(o, -(af)), k(l(m), -(af)), Z(toString(I.caller), al)], al)
229+ let ab = valueOrElse(getInteger(this, e(f)), 0)
230+ let ag = P(ab)
231+ $Tuple2([a(i, (H - ag)), a(g, r), d(h, -(ab)), d(e(f), -(ab)), V(toString(E.caller), ag)], ag)
242232 }
243233 else throw("Strict value is not equal to itself.")
244234 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = getString(this, b)
4+func a (b,c) = if ((0 > c))
5+ then throw(((("writing negative value " + toString(c)) + " for key ") + b))
6+ else IntegerEntry(b, c)
57
68
7-let c = "oracleAddress"
9+func d (b,c) = a(b, (valueOrElse(getInteger(this, b), 0) + c))
810
9-let d = {
10- let e = a(c)
11- if ($isInstanceOf(e, "String"))
11+
12+func e (f) = (f + "_shares")
13+
14+
15+let g = "stakedHeight"
16+
17+let h = "totalShares"
18+
19+let i = "staked"
20+
21+func j (b,c) = if (!(isDefined(getString(this, b))))
22+ then StringEntry(b, c)
23+ else throw(("already initialized: " + b))
24+
25+
26+let k = "assetId"
27+
28+let l = "vires_minter"
29+
30+let m = "config"
31+
32+let n = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, m), "vires-staker: no configAddress")), "invalid config address")
33+
34+let o = {
35+ let p = getString(n, "oracle_address")
36+ if ($isInstanceOf(p, "String"))
1237 then {
13- let f = e
14- addressFromString(f)
38+ let q = p
39+ addressFromString(q)
1540 }
1641 else unit
1742 }
1843
19-let g = height
44+let r = height
2045
21-func h (b,i) = if ((0 > i))
22- then throw(((("writing negative value " + toString(i)) + " for key ") + b))
23- else IntegerEntry(b, i)
46+let s = 10000000000000000
2447
48+let t = valueOrErrorMessage(getInteger(n, "vires_staker_apr"), "no vires_staker_apr")
2549
26-func j (b) = getInteger(this, b)
50+let u = ((365 * 24) * 60)
2751
52+let v = fraction(t, s, (1000 * u))
2853
29-func k (b,i) = h(b, (valueOrElse(j(b), 0) + i))
54+let w = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n, l), "vires-staker: no viresMinter")), "invalid viresMinter")
3055
56+let x = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(n, "main"), "no main")), "invalid main")
3157
32-func l (m) = (m + "_shares")
58+let y = valueOrErrorMessage(getString(w, k), "vires assetId not found")
3359
60+let z = valueOrErrorMessage(fromBase58String(y), "invalid vires assetId")
3461
35-let n = "stakedHeight"
36-
37-let o = "totalShares"
38-
39-let p = "staked"
40-
41-func q (b,i) = if (!(isDefined(getString(this, b))))
42- then StringEntry(b, i)
43- else throw(("already initialized: " + b))
44-
45-
46-let r = "admin"
47-
48-let s = "assetId"
49-
50-let t = "vires_minter"
51-
52-let u = "config"
53-
54-let v = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, u), "no configAddress")), "invalid config address")
55-
56-let w = 10000000000000000
57-
58-let x = valueOrErrorMessage(getInteger(v, "vires_staker_apr"), "no vires_staker_apr")
59-
60-let y = ((365 * 24) * 60)
61-
62-let z = fraction(x, w, (1000 * y))
63-
64-let A = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(v, t), "vires-staker: no viresMinter")), "invalid viresMinter")
65-
66-let B = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(v, "main"), "no main")), "invalid main")
67-
68-let C = valueOrErrorMessage(getString(A, s), "vires assetId not found")
69-
70-let D = valueOrErrorMessage(fromBase58String(C), "invalid vires assetId")
71-
72-func E (F,G) = if (F)
73- then throw(G)
62+func A (B,C) = if (B)
63+ then throw(C)
7464 else true
7565
7666
77-func H (I) = if (E((0 >= I.payments[0].amount), "staking zero amount"))
78- then E(if ((I.payments[0].assetId != D))
67+func D (E) = if (A((0 >= E.payments[0].amount), "staking zero amount"))
68+ then A(if ((E.payments[0].assetId != z))
7969 then true
80- else (size(I.payments) != 1), "staking only vires")
70+ else (size(E.payments) != 1), "staking only vires")
8171 else false
8272
8373
84-func J (I,m) = {
85- let e = addressFromString(m)
86- if ($isInstanceOf(e, "Address"))
74+func F (E,f) = {
75+ let p = addressFromString(f)
76+ if ($isInstanceOf(p, "Address"))
8777 then {
88- let K = e
89- if (if ((I.caller == B))
78+ let G = p
79+ if (if ((E.caller == x))
9080 then true
91- else (toString(I.caller) == m))
81+ else (toString(E.caller) == f))
9282 then true
93- else if ((I.caller != K))
83+ else if ((E.caller != G))
9484 then throw("only main can do on users behalf")
9585 else true
9686 }
9787 else throw("invalid user")
9888 }
9989
10090
101-let L = {
102- let M = valueOrElse(getInteger(this, n), 0)
103- let N = valueOrElse(getInteger(this, p), 0)
104- let O = (g - M)
105- let P = (w + (O * z))
106- fraction(N, P, w)
91+let H = {
92+ let I = valueOrElse(getInteger(this, g), 0)
93+ let J = valueOrElse(getInteger(this, i), 0)
94+ let K = (r - I)
95+ let L = (s + (K * v))
96+ fraction(J, L, s)
10797 }
10898
109-func Q (R) = {
110- let S = valueOrElse(getInteger(this, o), 0)
111- if ((S == 0))
112- then R
113- else fraction(R, S, L)
99+func M (N) = {
100+ let O = valueOrElse(getInteger(this, h), 0)
101+ if ((O == 0))
102+ then N
103+ else fraction(N, O, H)
114104 }
115105
116106
117-func T (U) = {
118- let S = valueOrElse(getInteger(this, o), 0)
119- if ((S == 0))
120- then U
121- else fraction(U, L, S)
107+func P (Q) = {
108+ let O = valueOrElse(getInteger(this, h), 0)
109+ if ((O == 0))
110+ then Q
111+ else fraction(Q, H, O)
122112 }
123113
124114
125-func V (W) = {
126- let X = assetBalance(this, D)
127- if ((W > X))
115+func R (S) = {
116+ let T = assetBalance(this, z)
117+ if ((S > T))
128118 then {
129- let Y = invoke(A, "stakerMint", [toString(this), (W - X)], nil)
130- if ((Y == Y))
119+ let U = invoke(w, "stakerMint", [toString(this), (S - T)], nil)
120+ if ((U == U))
131121 then nil
132122 else throw("Strict value is not equal to itself.")
133123 }
134124 else nil
135125 }
136126
137127
138-func Z (m,W) = {
139- let aa = V(W)
140- if ((aa == aa))
141- then ScriptTransfer(addressFromStringValue(m), W, D)
128+func V (f,S) = {
129+ let W = R(S)
130+ if ((W == W))
131+ then ScriptTransfer(addressFromStringValue(f), S, z)
142132 else throw("Strict value is not equal to itself.")
143133 }
144134
145135
146-func ab (ac) = {
147- let e = invoke(v, "opAllowed", [C, ac], nil)
148- if ($isInstanceOf(e, "Boolean"))
136+func X (Y) = {
137+ let p = invoke(n, "opAllowed", [y, Y], nil)
138+ if ($isInstanceOf(p, "Boolean"))
149139 then {
150- let ad = e
151- if (ad)
140+ let Z = p
141+ if (Z)
152142 then true
153143 else throw("not allowed")
154144 }
155145 else throw("opAllowed: unexpected result type")
156146 }
157147
158148
159-@Callable(I)
149+@Callable(E)
160150 func advise () = {
161- let S = valueOrElse(getInteger(this, o), 0)
162- let ae = T(S)
163- $Tuple2(nil, ("totalStaked: " + toString(ae)))
151+ let O = valueOrElse(getInteger(this, h), 0)
152+ let aa = P(O)
153+ $Tuple2(nil, ("totalStaked: " + toString(aa)))
164154 }
165155
166156
167157
168-@Callable(I)
169-func adviseUser (m) = {
170- let af = valueOrElse(getInteger(this, l(m)), 0)
171- let ag = T(af)
172- $Tuple2(nil, ((("viresStakedShares: " + toString(af)) + ", viresStaked: ") + toString(ag)))
158+@Callable(E)
159+func adviseUser (f) = {
160+ let ab = valueOrElse(getInteger(this, e(f)), 0)
161+ let ac = P(ab)
162+ $Tuple2(nil, ((("viresStakedShares: " + toString(ab)) + ", viresStaked: ") + toString(ac)))
173163 }
174164
175165
176166
177-@Callable(I)
178-func init (v,ah) = [StringEntry(c, ah), q(r, toString(I.caller)), q(u, v)]
167+@Callable(E)
168+func init (n) = [j(m, n)]
179169
180170
181171
182-@Callable(I)
183-func stakeVires (m) = {
184- let ai = if (if (H(I))
185- then J(I, m)
172+@Callable(E)
173+func stakeVires (f) = {
174+ let ad = if (if (D(E))
175+ then F(E, f)
186176 else false)
187- then ab("stake_vires")
177+ then X("stake_vires")
188178 else false
189- if ((ai == ai))
179+ if ((ad == ad))
190180 then {
191- let W = I.payments[0].amount
192- let U = Q(W)
193-[h(p, (L + W)), h(n, g), k(o, U), k(l(m), U)]
181+ let S = E.payments[0].amount
182+ let Q = M(S)
183+[a(i, (H + S)), a(g, r), d(h, Q), d(e(f), Q)]
194184 }
195185 else throw("Strict value is not equal to itself.")
196186 }
197187
198188
199189
200-@Callable(I)
201-func unstakeVires (m,aj) = {
202- let ai = if (J(I, m))
203- then ab("unstake_vires")
190+@Callable(E)
191+func unstakeVires (f,ae) = {
192+ let ad = if (F(E, f))
193+ then X("unstake_vires")
204194 else false
205- if ((ai == ai))
195+ if ((ad == ad))
206196 then {
207- let af = valueOrElse(getInteger(this, l(m)), 0)
208- if ((af == 0))
197+ let ab = valueOrElse(getInteger(this, e(f)), 0)
198+ if ((ab == 0))
209199 then throw("nothing to unstake")
210200 else {
211- let ak = T(af)
212- let W = if ((aj == -1))
213- then ak
214- else aj
215- if ((0 > W))
201+ let af = P(ab)
202+ let S = if ((ae == -1))
203+ then af
204+ else ae
205+ if ((0 > S))
216206 then throw("cannot unstake negative amount")
217- else if ((W > ak))
207+ else if ((S > af))
218208 then throw("cannot unstake more than you have")
219209 else {
220- let U = min([Q(W), af])
221- if ((U == 0))
210+ let Q = min([M(S), ab])
211+ if ((Q == 0))
222212 then throw("cannot unstake 0 shares")
223- else [h(p, (L - W)), h(n, g), k(o, -(U)), k(l(m), -(U)), Z(m, W)]
213+ else [a(i, (H - S)), a(g, r), d(h, -(Q)), d(e(f), -(Q)), V(f, S)]
224214 }
225215 }
226216 }
227217 else throw("Strict value is not equal to itself.")
228218 }
229219
230220
231221
232-@Callable(I)
233-func unstakeAllViresFrom (m) = {
234- let ai = if ((I.caller == B))
235- then ab("unstake_vires")
222+@Callable(E)
223+func unstakeAllViresFrom (f) = {
224+ let ad = if ((E.caller == x))
225+ then X("unstake_vires")
236226 else false
237- if ((ai == ai))
227+ if ((ad == ad))
238228 then {
239- let af = valueOrElse(getInteger(this, l(m)), 0)
240- let al = T(af)
241- $Tuple2([h(p, (L - al)), h(n, g), k(o, -(af)), k(l(m), -(af)), Z(toString(I.caller), al)], al)
229+ let ab = valueOrElse(getInteger(this, e(f)), 0)
230+ let ag = P(ab)
231+ $Tuple2([a(i, (H - ag)), a(g, r), d(h, -(ab)), d(e(f), -(ab)), V(toString(E.caller), ag)], ag)
242232 }
243233 else throw("Strict value is not equal to itself.")
244234 }
245235
246236

github/deemru/w8io/3ef1775 
78.23 ms