tx · EAFn41YHcdH9ZciASRWoGSGcETaejUiRe4v8ArGTEtvb

3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao:  -0.01000000 Waves

2021.12.24 12:05 [1848144] smart account 3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao > SELF 0.00000000 Waves

{ "type": 13, "id": "EAFn41YHcdH9ZciASRWoGSGcETaejUiRe4v8ArGTEtvb", "fee": 1000000, "feeAssetId": null, "timestamp": 1640336773257, "version": 1, "sender": "3MvdzbvEZLHEE3EXHXxaRQjgpNqq28733ao", "senderPublicKey": "HQmnkZjA2Ehwb2iKXAadqRsrXsHGZChU6WfgmHRsMW8t", "proofs": [ "3iaCg3rcmo4vuKfgfbUpx6S7F3owFHWoxKdyAfTaaM3dLuFG2RG9fzihfxors3aA28zqc4KR8LPqdKyJcYqAWwW1" ], "script": "base64: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", "chainId": 84, "height": 1848144, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FoSZnYRKBgsHP6hELgLV7b2NtYV84nbUBa3siPcpkXaS Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "collector"), "")), "")
5-
6-let b = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "oracle"), "")), "")
7-
8-let c = split(valueOrErrorMessage(getString(b, "pools"), ""), ",")
9-
10-func d (e) = if ((e == "WAVES"))
11- then unit
12- else fromBase58String(e)
4+func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
135
146
15-func f (g) = {
16- let h = g
17- if ($isInstanceOf(h, "ByteVector"))
7+func d (e) = valueOrErrorMessage(addressFromString(e), (("Can't parse address from '" + e) + "'"))
8+
9+
10+func f (g) = valueOrErrorMessage(parseInt(g), (("Can't parse integer from '" + g) + "'"))
11+
12+
13+let h = d(a(this, "collector"))
14+
15+let i = d(a(this, "oracle"))
16+
17+let j = split(a(i, "pools"), ",")
18+
19+func k (l) = if ((l == "WAVES"))
20+ then unit
21+ else fromBase58String(l)
22+
23+
24+func m (n) = {
25+ let o = n
26+ if ($isInstanceOf(o, "ByteVector"))
1827 then {
19- let e = h
20- assetBalance(this, e)
28+ let l = o
29+ assetBalance(this, l)
2130 }
22- else if ($isInstanceOf(h, "Unit"))
31+ else if ($isInstanceOf(o, "Unit"))
2332 then {
24- let i = h
33+ let p = o
2534 wavesBalance(this).available
2635 }
2736 else throw("Match error")
2837 }
2938
3039
31-func j (k) = fraction(k, 1, 1000)
40+func q (r) = fraction(r, 1, 1000)
3241
3342
34-func l (k) = fraction(k, 1, 10000)
43+func s (r) = fraction(r, 1, 10000)
3544
3645
37-func m (n,o,p,q,r) = {
38- let s = valueOrErrorMessage(addressFromString(n), "")
39- let t = d(p)
40- if ((0 >= q))
41- then throw("")
42- else if ((0 > r))
43- then throw("")
44- else {
45- let u = f(t)
46- if ((u == u))
47- then if (!(containsElement(c, n)))
48- then throw("")
49- else {
50- let v = valueOrErrorMessage(getString(s, "A_asset_id"), "")
51- let w = valueOrErrorMessage(getString(s, "B_asset_id"), "")
52- let x = d(v)
53- let y = d(w)
54- let z = valueOrErrorMessage(parseInt(split(valueOrErrorMessage(getString(s, "version"), ""), ".")[0]), "")
55- let A = if ((z == 1))
56- then [(q + j(q))]
57- else if ((z == 2))
58- then if ((0 >= r))
59- then throw("")
60- else [(r + l(r)), (q + j(q))]
61- else throw("")
62- let B = invoke(s, "exchange", A, [o])
63- if ((B == B))
46+func t (u,v,w,x,y) = {
47+ let z = d(u)
48+ let A = k(w)
49+ if ((0 >= x))
50+ then throw("minAmountToReceive must be positive")
51+ else if ((0 > y))
52+ then throw("estAmountToReceive must be positive")
53+ else if (!(containsElement(j, u)))
54+ then throw((("There is no pool at address '" + u) + "'"))
55+ else {
56+ let B = f(split(a(z, "version"), ".")[0])
57+ let C = if ((B == 1))
58+ then [(x + q(x))]
59+ else if ((B == 2))
60+ then if ((0 >= y))
61+ then throw("estAmountToReceive must be positive")
62+ else [(y + s(y)), (x + q(x))]
63+ else throw("")
64+ let D = m(A)
65+ if ((D == D))
66+ then {
67+ let E = invoke(z, "exchange", C, [v])
68+ if ((E == E))
6469 then {
65- let C = (f(t) - u)
66- if ((C == C))
70+ let F = (m(A) - D)
71+ if ((F == F))
6772 then {
68- let D = if ((z == 1))
69- then j(C)
70- else if ((z == 2))
71- then l(C)
72- else throw("")
73- if ((0 >= C))
74- then throw("")
75- else $Tuple3(u, C, D)
73+ let G = if ((B == 1))
74+ then q(F)
75+ else if ((B == 2))
76+ then s(F)
77+ else throw((("Unknown pool version '" + toString(B)) + "', but 1 or 2 expected"))
78+ if ((0 >= F))
79+ then throw("Received amount from pool must be positive")
80+ else $Tuple3(D, F, G)
7681 }
7782 else throw("Strict value is not equal to itself.")
7883 }
7984 else throw("Strict value is not equal to itself.")
8085 }
81- else throw("Strict value is not equal to itself.")
82- }
86+ else throw("Strict value is not equal to itself.")
87+ }
8388 }
8489
8590
86-@Callable(E)
87-func swap (n,F,q,r) = {
88- let G = if ((size(E.payments) > 0))
89- then E.payments[0]
90- else throw("")
91- let t = d(F)
92- if ((0 >= q))
93- then throw("")
91+@Callable(H)
92+func swap (u,I,x,y) = {
93+ let J = if ((size(H.payments) > 0))
94+ then H.payments[0]
95+ else throw("Payment required")
96+ let A = k(I)
97+ if ((0 >= x))
98+ then throw("minAmountToReceive must be positive")
9499 else {
95- let H = {
96- let h = m(n, G, F, q, r)
97- if (if (if ($isInstanceOf(h._1, "Int"))
98- then if ($isInstanceOf(h._2, "Int"))
99- then $isInstanceOf(h._3, "Int")
100+ let K = {
101+ let o = t(u, J, I, x, y)
102+ if (if (if ($isInstanceOf(o._1, "Int"))
103+ then if ($isInstanceOf(o._2, "Int"))
104+ then $isInstanceOf(o._3, "Int")
100105 else false
101106 else false)
102- then $isInstanceOf(h, "(Int, Int, Int)")
107+ then $isInstanceOf(o, "(Int, Int, Int)")
103108 else false)
104109 then {
105- let I = h._1
106- let J = h._2
107- let D = h._3
108- $Tuple3(I, J, D)
110+ let L = o._1
111+ let M = o._2
112+ let G = o._3
113+ $Tuple3(L, M, G)
109114 }
110- else throw("")
115+ else throw("Can't handle swap result")
111116 }
112- let u = H._1
113- let C = H._2
114- let D = H._3
115-[ScriptTransfer(E.caller, (C - D), t), ScriptTransfer(a, D, t)]
117+ let D = K._1
118+ let F = K._2
119+ let G = K._3
120+[ScriptTransfer(H.caller, (F - G), A), ScriptTransfer(h, G, A)]
116121 }
117122 }
118123
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "collector"), "")), "")
5-
6-let b = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "oracle"), "")), "")
7-
8-let c = split(valueOrErrorMessage(getString(b, "pools"), ""), ",")
9-
10-func d (e) = if ((e == "WAVES"))
11- then unit
12- else fromBase58String(e)
4+func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
135
146
15-func f (g) = {
16- let h = g
17- if ($isInstanceOf(h, "ByteVector"))
7+func d (e) = valueOrErrorMessage(addressFromString(e), (("Can't parse address from '" + e) + "'"))
8+
9+
10+func f (g) = valueOrErrorMessage(parseInt(g), (("Can't parse integer from '" + g) + "'"))
11+
12+
13+let h = d(a(this, "collector"))
14+
15+let i = d(a(this, "oracle"))
16+
17+let j = split(a(i, "pools"), ",")
18+
19+func k (l) = if ((l == "WAVES"))
20+ then unit
21+ else fromBase58String(l)
22+
23+
24+func m (n) = {
25+ let o = n
26+ if ($isInstanceOf(o, "ByteVector"))
1827 then {
19- let e = h
20- assetBalance(this, e)
28+ let l = o
29+ assetBalance(this, l)
2130 }
22- else if ($isInstanceOf(h, "Unit"))
31+ else if ($isInstanceOf(o, "Unit"))
2332 then {
24- let i = h
33+ let p = o
2534 wavesBalance(this).available
2635 }
2736 else throw("Match error")
2837 }
2938
3039
31-func j (k) = fraction(k, 1, 1000)
40+func q (r) = fraction(r, 1, 1000)
3241
3342
34-func l (k) = fraction(k, 1, 10000)
43+func s (r) = fraction(r, 1, 10000)
3544
3645
37-func m (n,o,p,q,r) = {
38- let s = valueOrErrorMessage(addressFromString(n), "")
39- let t = d(p)
40- if ((0 >= q))
41- then throw("")
42- else if ((0 > r))
43- then throw("")
44- else {
45- let u = f(t)
46- if ((u == u))
47- then if (!(containsElement(c, n)))
48- then throw("")
49- else {
50- let v = valueOrErrorMessage(getString(s, "A_asset_id"), "")
51- let w = valueOrErrorMessage(getString(s, "B_asset_id"), "")
52- let x = d(v)
53- let y = d(w)
54- let z = valueOrErrorMessage(parseInt(split(valueOrErrorMessage(getString(s, "version"), ""), ".")[0]), "")
55- let A = if ((z == 1))
56- then [(q + j(q))]
57- else if ((z == 2))
58- then if ((0 >= r))
59- then throw("")
60- else [(r + l(r)), (q + j(q))]
61- else throw("")
62- let B = invoke(s, "exchange", A, [o])
63- if ((B == B))
46+func t (u,v,w,x,y) = {
47+ let z = d(u)
48+ let A = k(w)
49+ if ((0 >= x))
50+ then throw("minAmountToReceive must be positive")
51+ else if ((0 > y))
52+ then throw("estAmountToReceive must be positive")
53+ else if (!(containsElement(j, u)))
54+ then throw((("There is no pool at address '" + u) + "'"))
55+ else {
56+ let B = f(split(a(z, "version"), ".")[0])
57+ let C = if ((B == 1))
58+ then [(x + q(x))]
59+ else if ((B == 2))
60+ then if ((0 >= y))
61+ then throw("estAmountToReceive must be positive")
62+ else [(y + s(y)), (x + q(x))]
63+ else throw("")
64+ let D = m(A)
65+ if ((D == D))
66+ then {
67+ let E = invoke(z, "exchange", C, [v])
68+ if ((E == E))
6469 then {
65- let C = (f(t) - u)
66- if ((C == C))
70+ let F = (m(A) - D)
71+ if ((F == F))
6772 then {
68- let D = if ((z == 1))
69- then j(C)
70- else if ((z == 2))
71- then l(C)
72- else throw("")
73- if ((0 >= C))
74- then throw("")
75- else $Tuple3(u, C, D)
73+ let G = if ((B == 1))
74+ then q(F)
75+ else if ((B == 2))
76+ then s(F)
77+ else throw((("Unknown pool version '" + toString(B)) + "', but 1 or 2 expected"))
78+ if ((0 >= F))
79+ then throw("Received amount from pool must be positive")
80+ else $Tuple3(D, F, G)
7681 }
7782 else throw("Strict value is not equal to itself.")
7883 }
7984 else throw("Strict value is not equal to itself.")
8085 }
81- else throw("Strict value is not equal to itself.")
82- }
86+ else throw("Strict value is not equal to itself.")
87+ }
8388 }
8489
8590
86-@Callable(E)
87-func swap (n,F,q,r) = {
88- let G = if ((size(E.payments) > 0))
89- then E.payments[0]
90- else throw("")
91- let t = d(F)
92- if ((0 >= q))
93- then throw("")
91+@Callable(H)
92+func swap (u,I,x,y) = {
93+ let J = if ((size(H.payments) > 0))
94+ then H.payments[0]
95+ else throw("Payment required")
96+ let A = k(I)
97+ if ((0 >= x))
98+ then throw("minAmountToReceive must be positive")
9499 else {
95- let H = {
96- let h = m(n, G, F, q, r)
97- if (if (if ($isInstanceOf(h._1, "Int"))
98- then if ($isInstanceOf(h._2, "Int"))
99- then $isInstanceOf(h._3, "Int")
100+ let K = {
101+ let o = t(u, J, I, x, y)
102+ if (if (if ($isInstanceOf(o._1, "Int"))
103+ then if ($isInstanceOf(o._2, "Int"))
104+ then $isInstanceOf(o._3, "Int")
100105 else false
101106 else false)
102- then $isInstanceOf(h, "(Int, Int, Int)")
107+ then $isInstanceOf(o, "(Int, Int, Int)")
103108 else false)
104109 then {
105- let I = h._1
106- let J = h._2
107- let D = h._3
108- $Tuple3(I, J, D)
110+ let L = o._1
111+ let M = o._2
112+ let G = o._3
113+ $Tuple3(L, M, G)
109114 }
110- else throw("")
115+ else throw("Can't handle swap result")
111116 }
112- let u = H._1
113- let C = H._2
114- let D = H._3
115-[ScriptTransfer(E.caller, (C - D), t), ScriptTransfer(a, D, t)]
117+ let D = K._1
118+ let F = K._2
119+ let G = K._3
120+[ScriptTransfer(H.caller, (F - G), A), ScriptTransfer(h, G, A)]
116121 }
117122 }
118123
119124

github/deemru/w8io/873ac7e 
80.09 ms