tx · AQAh3Mj5gYC5vcLENxLAbSMYkcsqM5kj3UMGJMm3kJUG

3N3tDUvYTUkPj99XK6ahYY1seKQssSPSUxa:  -0.00100000 Waves

2022.09.07 13:53 [2218589] smart account 3N3tDUvYTUkPj99XK6ahYY1seKQssSPSUxa > SELF 0.00000000 Waves

{ "type": 13, "id": "AQAh3Mj5gYC5vcLENxLAbSMYkcsqM5kj3UMGJMm3kJUG", "fee": 100000, "feeAssetId": null, "timestamp": 1662547982488, "version": 2, "chainId": 84, "sender": "3N3tDUvYTUkPj99XK6ahYY1seKQssSPSUxa", "senderPublicKey": "uabndDFnsGq9PjWSXCTHbtJ6qRyJrTnAiV1p3iLLEBf", "proofs": [ "5gXjC3fge85XMtCBpyMH6RoskaY4kCZdwZEx8nVjAQ3pbkrSfFpwDksiHXBuDZ298cZ2qh2ae4JMgDczDyNfHXNG" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEIAAAAAgAAAAAEVVNETgEAAAAgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEAAAAAC3plZnRBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUmTdczELFE8GJ6RS3xffhbl9ZidNnbG3LAAAAAQAAAAFpAQAAAAZjYWxsXzEAAAABAAAACW15YWRkcmVzcwQAAAAFYWRtaW4CAAAAIzNOM3REVXZZVFVrUGo5OVhLNmFoWVkxc2VLUXNzU1BTVXhhAwkBAAAAAiE9AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABWFkbWluCQAAAgAAAAECAAAAEW9ubHkgYWRtaW4gY2FuIGRvBAAAAAZyZXN1bHQJAAP9AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAJbXlhZGRyZXNzAgAAAAh1c2RuXzEwMAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAABnJlc3VsdAUAAAAGcmVzdWx0CQAAAgAAAAECAAAAB3N1Y2Nlc3MJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAEp/rxs=", "height": 2218589, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BGdn1CTMD15hT3Y29evbW5xkEPDxVzjM3eA62Sct1rmy Next: ofzQx5nEf5DcmcnsqtR5FyjfLvrYeh2VhtnLqwRddrY Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 1000
4+let a = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
55
6-func b (c) = {
7- let d = c
8- if ($isInstanceOf(d, "(Int, Int, Int, Int, Int, Boolean)"))
9- then {
10- let e = d
11- e
12- }
6+let b = Address(base58'3N3tDUvYTUkPj99XK6ahYY1seKQssSPSUxa')
7+
8+@Callable(c)
9+func call_1 (d) = {
10+ let e = "3N3tDUvYTUkPj99XK6ahYY1seKQssSPSUxa"
11+ if ((toString(c.caller) != e))
12+ then throw("only admin can do")
1313 else {
14- let f = d
15- throw("expected int5&boolean")
16- }
17- }
18-
19-
20-let g = "admin"
21-
22-let h = "config"
23-
24-let i = "reserves"
25-
26-let j = "aTokenId"
27-
28-let k = "assetId"
29-
30-let l = addressFromStringValue(getStringValue(this, g))
31-
32-let m = addressFromStringValue(getStringValue(this, h))
33-
34-let n = valueOrErrorMessage(getString(this, i), "no reserves registered")
35-
36-let o = split(n, "|")
37-
38-func p (q) = valueOrErrorMessage(getString(q, k), "no assetId in reserve")
39-
40-
41-func r (q) = valueOrErrorMessage(getInteger(m, (p(q) + "_CollateralFactor")), "no CollateralFactor in config")
42-
43-
44-func s (q) = valueOrErrorMessage(getInteger(m, (p(q) + "_LiquidationThreshold")), "no LiquidationThreshold in config")
45-
46-
47-func t (u) = valueOrErrorMessage(getInteger(m, (u + "_LiquidationPenalty")), "no LiquidationPenalty in config")
48-
49-
50-let v = valueOrErrorMessage(getInteger(m, "account_health_threshold"), "no account_health_threshold")
51-
52-let w = valueOrErrorMessage(getInteger(m, "account_health_overlap"), "no account_health_overlap")
53-
54-let x = valueOrErrorMessage(getInteger(m, "collapse_penalty"), "no collapse_penalty")
55-
56-let y = valueOrElse(getString(m, "liquidators"), "")
57-
58-func z (A) = if (contains(n, A))
59- then true
60- else throw(("unknown reserve:" + A))
61-
62-
63-func B (q,C) = b(invoke(q, "userBalance", [C], nil))
64-
65-
66-func D (E,c) = {
67- func F (G,A) = {
68- let d = G
69- if ($isInstanceOf(d, "Address"))
70- then {
71- let H = d
72- H
73- }
74- else {
75- let q = valueOrErrorMessage(addressFromString(A), "reserve bad address")
76- if ((valueOrErrorMessage(getString(q, E), ("reserve has no " + E)) == c))
77- then q
78- else unit
79- }
80- }
81-
82- let d = {
83- let I = o
84- let J = size(I)
85- let K = unit
86- func L (M,N) = if ((N >= J))
87- then M
88- else F(M, I[N])
89-
90- func O (M,N) = if ((N >= J))
91- then M
92- else throw("List size exceeds 6")
93-
94- O(L(L(L(L(L(L(K, 0), 1), 2), 3), 4), 5), 6)
95- }
96- if ($isInstanceOf(d, "Address"))
97- then {
98- let H = d
99- H
100- }
101- else throw(("unknown " + E))
102- }
103-
104-
105-func P (c,Q,R) = {
106- let S = fraction(c, Q, R)
107- let T = 3037000499
108- let U = ((((S % T) * (R % T)) % T) == (((c % T) * (Q % T)) % T))
109- if (U)
110- then S
111- else (S + 1)
112- }
113-
114-
115-func V (C) = {
116- func F (W,A) = {
117- let X = W
118- let Y = X._1
119- let Z = X._2
120- let q = valueOrErrorMessage(addressFromString(A), "reserve bad address")
121- let aa = r(q)
122- let ab = s(q)
123- let ac = B(q, C)
124- let ad = ac._1
125- let ae = ac._2
126- let af = ac._3
127- let ag = ac._4
128- let ah = ac._5
129- let ai = ac._6
130- let aj = if (ai)
131- then af
132- else 0
133- let ak = min([ah, aj])
134- let al = P(ak, w, a)
135- if ((ah > aj))
136- then $Tuple2(Y, ((Z + fraction((ah - aj), a, ab)) + al))
137- else $Tuple2((Y + fraction((aj - ah), aa, a)), (Z + al))
138- }
139-
140- let I = o
141- let J = size(I)
142- let K = $Tuple2(0, 0)
143- func L (M,N) = if ((N >= J))
144- then M
145- else F(M, I[N])
146-
147- func O (M,N) = if ((N >= J))
148- then M
149- else throw("List size exceeds 6")
150-
151- O(L(L(L(L(L(L(K, 0), 1), 2), 3), 4), 5), 6)
152- }
153-
154-
155-func am (C,an) = {
156- let ao = V(C)
157- let ap = ao._1
158- let aq = ao._2
159- let ar = (((ap - aq) * a) / ap)
160- if (if ((ap == 0))
161- then (aq == 0)
162- else false)
163- then nil
164- else if (if ((ap == 0))
165- then (aq > 0)
166- else false)
167- then throw(((an + " too much: breaching liquidation threshold(bp=0, bpu=") + toString(aq)))
168- else if ((v > ar))
169- then throw((((((((an + " too much: breaching liquidation threshold(bp=") + toString(ap)) + ", bpu=") + toString(aq)) + ", health=") + toString(ar)) + ")"))
170- else nil
171- }
172-
173-
174-@Callable(as)
175-func withdraw (u,at) = {
176- let C = toString(as.caller)
177- let au = D(k, u)
178- let av = invoke(au, "withdrawFor", [C, at], nil)
179- if ((av == av))
180- then am(C, "withdrawing")
181- else throw("Strict value is not equal to itself.")
182- }
183-
184-
185-
186-@Callable(as)
187-func withdraw2 (q,at) = {
188- let aw = z(q)
189- if ((aw == aw))
190- then {
191- let C = toString(as.caller)
192- let au = addressFromStringValue(q)
193- let av = invoke(au, "withdrawFor", [C, at], nil)
194- if ((av == av))
195- then am(C, "withdrawing2")
14+ let f = reentrantInvoke(addressFromStringValue(d), "usdn_100", nil, nil)
15+ if ((f == f))
16+ then throw("success")
19617 else throw("Strict value is not equal to itself.")
19718 }
198- else throw("Strict value is not equal to itself.")
19919 }
20020
20121

github/deemru/w8io/873ac7e 
26.68 ms