tx · 8Wt8G9Y4s7vAsviL4koNi23THBRxGVaCoFQLc7cAHubF

3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph:  -0.01400000 Waves

2022.01.15 13:26 [1879956] smart account 3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph > SELF 0.00000000 Waves

{ "type": 13, "id": "8Wt8G9Y4s7vAsviL4koNi23THBRxGVaCoFQLc7cAHubF", "fee": 1400000, "feeAssetId": null, "timestamp": 1642242523037, "version": 2, "chainId": 84, "sender": "3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph", "senderPublicKey": "G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD", "proofs": [ "2czujt9RezUoRhpw9aEZMnMsGjuV7jGyUwReHgBT5Yn3By6dTjPRmg6qoYR2ZLyRqgG7uxswRSBpkXVZNi9s9PUk", "5X5so2aGtLPPBEUhrmLMhNF6NbMNAdC8HN6LmButvLj4x7uqyqVRUTYpz7X68DchKPcmF8xGGh9KRmbfR6oVc3cM", "45mNMSYjqAYZy9zmXmejxtTEMZJkEkzJYMD1bTeCn1tJYBoVKnc9RoH3MEm7kW5oRqF1JuKRXiV31VpYXZ9C4HjT" ], "script": "base64:AAIFAAAAAAAAB9IIAhIGCgQYGBgREgMKARgSBgoECAgBARIAEgMKAQgSAwoBCBIECgIYFBoTCgFBEg50cmFuc2ZlclRvVXNlchoLCgFCEgZhbW91bnQaDAoBQxIHYXNzZXRJZBoJCgFEEgR0eXBlGhUKAUUSEGRBcHBTdGFrZWRUb2tlbnMaFAoBRhIPYXNzZXRJZFF1YW50aXR5GgoKAUcSBWFzc2V0GhkKAUgSFHRyYW5zZmVyVG9Vc2VyQW1vdW50GgYKAUkSAWkaCgoBShIFcG9vbHMaFAoBSxIPbGlxdWlkaXR5VG9rZW5zGhIKAUwSDXNlcnZpY2VUb2tlbnMaGwoBTRIWbGlxdWlkaXR5VG9rZW5EZWNpbWFscxoVCgFOEhBnZW5lcmF0ZVBvb2xLZXlzGhAKAU8SC2FjY3VtdWxhdGVkGiMKAVASHmdlbmVyYXRlUG9vbExpcXVpZGl0eVRva2VuS2V5cxoOCgFREglwb29sSW5kZXgaEwoBUhIObGlxdWlkaXR5VG9rZW4aIQoBUxIcZ2VuZXJhdGVQb29sU2VydmljZVRva2VuS2V5cxoqCgFUEiVnZW5lcmF0ZVBvb2xMaXF1aWRpdHlUb2tlbkRlY2ltYWxLZXlzGhsKAVUSFmdlbmVyYXRlUG9vbEFjdGl2ZUtleXMaFAoBVhIPcG9vbEJhbGFuY2VLZXlzGgcKAVcSAiRsGgcKAVgSAiRzGgoKAVkSBSRhY2MwGgoKAVoSBSRmMF8xGg8KAWESCmRlcG9zaXRGZWUaEwoCYUESDXBvb2xBbW91bnRLZXkaEQoCYUISC3VzZXJBZGRyZXNzGhcKAmFDEhF1c2VyUG9vbEFtb3VudEtleRoWCgJhRBIQZEFwcEFzc2V0QWRkcmVzcxobCgJhRRIVbGlxdWlkdXR5QXNzZXRBZGRyZXNzGhsKAmFGEhVsaXF1aWRpdHlUb2tlbkRlY2ltYWwaEAoCYUcSCnBvb2xBbW91bnQaEAoCYUgSCnVzZXJBbW91bnQaCQoCYUkSA2ludBoaCgJhShIUdXNlckFtb3VudFdpdGhvdXRGZWUaCQoCYUsSA2ZlZRoTCgJhTBINbmV3UG9vbEFtb3VudBoXCgJhTRIRbmV3VXNlclBvb2xBbW91bnQaEwoCYU4SDWxvY2tUb2tlbnNLZXkaDgoCYU8SCHN0YXR1c2VzGgwKAmFQEgZzdGF0dXMaCAoCYVESAnR4GgwKAmFSEgZ2ZXJpZnkaCQoCYVMSA2ludhoVCgJhVBIPbG9ja1NoYXJlVG9rZW5zGhEKAmFVEgtkQXBwQWRkcmVzcxoNCgJhVhIHJG1hdGNoMRoKCgJhVxIEZEFwcBoTCgJhWBINcG9vbEZ1bmN0aW9ucxoTCgJhWRINc2lnbmVkQnlBZG1pbhoQCgJhWhIKYWRtMVNpZ25lZBoICgJhYRICJGEaCAoCYWISAiRpGgsKAmFjEgUkZjBfMhocCgJhZBIWcG9vbExpcXVpZGl0eVRva2VuS2V5cxoLCgJhZRIFJGYxXzEaCwoCYWYSBSRmMV8yGhoKAmFnEhRwb29sU2VydmljZVRva2VuS2V5cxoLCgJhaBIFJGYyXzEaCwoCYWkSBSRmMl8yGiMKAmFqEh1wb29sTGlxdWlkaXR5VG9rZW5EZWNpbWFsS2V5cxoLCgJhaxIFJGYzXzEaCwoCYWwSBSRmM18yGhQKAmFtEg5wb29sQWN0aXZlS2V5cxoLCgJhbhIFJGY0XzEaCwoCYW8SBSRmNF8yGg0KAmFwEgdyZWNvcmRzGhoKAmFxEhRnZW5lcmF0ZURlbGV0aW5nS2V5cxoMCgJhchIGcmVjb3JkGhAKAmFzEgpkZWxldGVLZXlzGgoKAmF0EgRuYW1lGhEKAmF1EgtkZXNjcmlwdGlvbhoOCgJhdhIIcXVhbnRpdHkaDgoCYXcSCGRlY2ltYWxzGggKAmF4EgJhOBoTCgJheRINYXNzZXRJZFN0cmluZxoICgJhehICaWQaEgoBYhINY29udHJvbGxlckZlZRoQCgJiYRIKYWRtMlNpZ25lZBoQCgJiYhIKYWRtM1NpZ25lZBoQCgFjEgtwbGF0Zm9ybUZlZRoRCgFkEgxhZG1pblB1YktleTEaEQoBZRIMYWRtaW5QdWJLZXkyGhEKAWYSDGFkbWluUHViS2V5MxoRCgFnEgxhZG1pblB1YktleTQaFgoBaBIRZ292ZXJtYW5jZUFkZHJlc3MaEAoBaRILZGVwb3NpdFR5cGUaEQoBahIMd2l0aGRyYXdUeXBlGhMKAWsSDmZhcm1pbmdBZGRyZXNzGhAKAWwSC3N3b3BGaVBvb2xzGhQKAW0SD3N3b3BGaUZ1bmN0aW9ucxoRCgFuEgxpc1Bv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AAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgkBAAAAAmFlAAAAAgUAAAABWQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAQAAAACYWcKAAAAAAFXBQAAAAFKCgAAAAABWAkAAZAAAAABBQAAAAFXCgAAAAABWQUAAAADbmlsCgEAAAACYWgAAAACAAAAAmFhAAAAAmFiAwkAAGcAAAACBQAAAAJhYgUAAAABWAUAAAACYWEJAQAAAAFTAAAAAgUAAAACYWEJAAGRAAAAAgUAAAABVwUAAAACYWIKAQAAAAJhaQAAAAIAAAACYWEAAAACYWIDCQAAZwAAAAIFAAAAAmFiBQAAAAFYBQAAAAJhYQkAAAIAAAABAgAAABRMaXN0IHNpemUgZXhjZWVkcyAyMAkBAAAAAmFpAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgkBAAAAAmFoAAAAAgUAAAABWQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAQAAAACYWoKAAAAAAFXBQAAAAFKCgAAAAABWAkAAZAAAAABBQAAAAFXCgAAAAABWQUAAAADbmlsCgEAAAACYWsAAAACAAAAAmFhAAAAAmFiAwkAAGcAAAACBQAAAAJhYgUAAAABWAUAAAACYWEJAQAAAAFUAAAAAgUAAAACYWEJAAGRAAAAAgUAAAABVwUAAAACYWIKAQAAAAJhbAAAAAIAAAACYWEAAAACYWIDCQAAZwAAAAIFAAAAAmFiBQAAAAFYBQAAAAJhYQkAAAIAAAABAgAAABRMaXN0IHNpemUgZXhjZWVkcyAyMAkBAAAAAmFsAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgkBAAAAAmFrAAAAAgUAAAABWQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAQAAAACYW0KAAAAAAFXBQAAAAFKCgAAAAABWAkAAZAAAAABBQAAAAFX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AAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACBQAAAAFZAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKAAAAAAAAAAALAAAAAAAAAAAMAAAAAAAAAAANAAAAAAAAAAAOAAAAAAAAAAAPAAAAAAAAAAAQAAAAAAAAAAARAAAAAAAAAAASAAAAAAAAAAATAAAAAAAAAAAUAAAAAAAAAAAVAAAAAAAAAAAWAAAAAAAAAAAXAAAAAAAAAAAYAAAAAAAAAAAZAAAAAAAAAAAaAAAAAAAAAAAbAAAAAAAAAAAcAAAAAAAAAAAdAAAAAAAAAAAeAAAAAAAAAAAfAAAAAAAAAAAgAAAAAAAAAAAhAAAAAAAAAAAiAAAAAAAAAAAjAAAAAAAAAAAkAAAAAAAAAAAlAAAAAAAAAAAmAAAAAAAAAAAnAAAA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AAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACCQEAAAABWgAAAAIJAQAAAAFaAAAAAgkBAAAAAVoAAAACBQAAAAFZAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKAAAAAAAAAAALAAAAAAAAAAAMAAAAAAAAAAANAAAAAAAAAAAOAAAAAAAAAAAPAAAAAAAAAAAQAAAAAAAAAAARAAAAAAAAAAASAAAAAAAAAAATAAAAAAAAAAAUAAAAAAAAAAAVAAAAAAAAAAAWAAAAAAAAAAAXAAAAAAAAAAAYAAAAAAAAAAAZAAAAAAAAAAAaAAAAAAAAAAAbAAAAAAAAAAAcAAAAAAAAAAAdAAAAAAAAAAAeAAAAAAAAAAAfAAAAAAAAAAAgAAAAAAAAAAAhAAAAAAAAAAAiAAAAAAAAAAAjAAAAAAAAAAAkAAAAAAAAAAAlAAAAAAAAAAAmAAAAAAAAAAAnAAAAAAAAAAAoAAAAAAAAAAApAAAAAAAAAAAqAAAAAAAAAAArAAAAAAAAAAAsAAAAAAAAAAAtAAAAAAAAAAAuAAAAAAAA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", "height": 1879956, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9geSeobvSjdTMtjczoKTUS2UWBcNiv6GjXEqDY5HPqq6 Next: 7JGivjj9bn4Snc1ZcCjCHw2xVgVY8vRwf1eHoPqicUd Diff:
OldNewDifferences
1717
1818 let h = Address(base58'3N7ExjwfofPYTvNBv2zqtAtLcMxqjTxS7iL')
1919
20-let i = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
20+let i = "deposit"
2121
22-let j = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
22+let j = "withdraw"
2323
24-let k = ["replenishWithTwoTokens", "exchange"]
24+let k = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
2525
26-func l (m) = {
27- let n = (m + "_active")
28- let o = {
29- let p = getBoolean(this, n)
30- if ($isInstanceOf(p, "Boolean"))
26+let l = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
27+
28+let m = ["replenishWithTwoTokens", "exchange"]
29+
30+func n (o) = {
31+ let p = (o + "_active")
32+ let q = {
33+ let r = getBoolean(this, p)
34+ if ($isInstanceOf(r, "Boolean"))
3135 then {
32- let q = p
33- q
36+ let s = r
37+ s
3438 }
3539 else throw("Pool is not active!")
3640 }
37- o
41+ q
3842 }
3943
4044
41-func r (m) = {
42- let p = getString((m + "_service_token"))
43- if ($isInstanceOf(p, "String"))
45+func t (o) = {
46+ let r = getString((o + "_service_token"))
47+ if ($isInstanceOf(r, "String"))
4448 then {
45- let s = p
46- s
49+ let u = r
50+ u
4751 }
4852 else {
49- let t = p
53+ let v = r
5054 throw("You try to deposit on unsupported pool")
5155 }
5256 }
5357
5458
55-func u (m) = {
56- let p = getString((m + "_liquidity_token"))
57- if ($isInstanceOf(p, "String"))
59+func w (o) = {
60+ let r = getString((o + "_liquidity_token"))
61+ if ($isInstanceOf(r, "String"))
5862 then {
59- let s = p
60- s
63+ let u = r
64+ u
6165 }
6266 else {
63- let t = p
67+ let v = r
6468 throw("You try to withdraw from unsupported pool")
6569 }
6670 }
6771
6872
69-func v (w) = {
70- let p = getInteger(i, (((w + "_") + toString(this)) + "_share_tokens_locked"))
71- if ($isInstanceOf(p, "Int"))
73+func x (y) = {
74+ let r = getInteger(k, (((y + "_") + toString(this)) + "_share_tokens_locked"))
75+ if ($isInstanceOf(r, "Int"))
7276 then {
73- let x = p
74- x
77+ let z = r
78+ z
7579 }
76- else if ($isInstanceOf(p, "Unit"))
80+ else if ($isInstanceOf(r, "Unit"))
7781 then {
78- let t = p
82+ let v = r
7983 0
8084 }
8185 else throw("Match error")
8286 }
8387
8488
85-func y (z,A,w) = {
86- let B = v(w)
87- let C = {
88- let p = assetInfo(A)
89- if ($isInstanceOf(p, "Asset"))
89+func A (B,C,y,D) = {
90+ let E = x(y)
91+ let F = {
92+ let r = assetInfo(C)
93+ if ($isInstanceOf(r, "Asset"))
9094 then {
91- let D = p
92- D.quantity
95+ let G = r
96+ G.quantity
9397 }
9498 else throw("Can't find asset")
9599 }
96- if ((B == 0))
97- then z
98- else {
99- let E = fraction(z, C, B)
100- E
101- }
100+ if ((E == 0))
101+ then B
102+ else if ((D == i))
103+ then {
104+ let H = fraction(B, F, E)
105+ H
106+ }
107+ else {
108+ let H = fraction(B, E, F)
109+ H
110+ }
102111 }
103112
104113
105-@Callable(F)
106-func addPools (G,H,I,J) = if (containsElement([d, e, f], F.callerPublicKey))
114+@Callable(I)
115+func addPools (J,K,L,M) = if (containsElement([d, e, f], I.callerPublicKey))
107116 then {
108- func K (L,m) = IntegerEntry((m + "_asset_balance"), 0) :: L
117+ func N (O,o) = IntegerEntry((o + "_asset_balance"), 0) :: O
109118
110- func M (L,m) = {
111- let N = value(indexOf(G, m))
112- let O = H[N]
113-StringEntry((m + "_liquidity_token"), O) :: L
119+ func P (O,o) = {
120+ let Q = value(indexOf(J, o))
121+ let R = K[Q]
122+StringEntry((o + "_liquidity_token"), R) :: O
114123 }
115124
116- func P (L,m) = {
117- let N = value(indexOf(G, m))
118- let O = I[N]
119-StringEntry((m + "_service_token"), O) :: L
125+ func S (O,o) = {
126+ let Q = value(indexOf(J, o))
127+ let R = L[Q]
128+StringEntry((o + "_service_token"), R) :: O
120129 }
121130
122- func Q (L,m) = {
123- let N = value(indexOf(G, m))
124- let O = J[N]
125-IntegerEntry((m + "_service_token_decimal"), O) :: L
131+ func T (O,o) = {
132+ let Q = value(indexOf(J, o))
133+ let R = M[Q]
134+IntegerEntry((o + "_service_token_decimal"), R) :: O
126135 }
127136
128- func R (L,m) = BooleanEntry((m + "_active"), true) :: L
137+ func U (O,o) = BooleanEntry((o + "_active"), true) :: O
129138
130- let S = {
131- let T = G
132- let U = size(T)
133- let V = nil
134- func W (X,Y) = if ((Y >= U))
135- then X
136- else K(X, T[Y])
139+ let V = {
140+ let W = J
141+ let X = size(W)
142+ let Y = nil
143+ func Z (aa,ab) = if ((ab >= X))
144+ then aa
145+ else N(aa, W[ab])
137146
138- func Z (X,Y) = if ((Y >= U))
139- then X
147+ func ac (aa,ab) = if ((ab >= X))
148+ then aa
140149 else throw("List size exceeds 20")
141150
142- Z(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
151+ ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
143152 }
144- let aa = {
145- let T = G
146- let U = size(T)
147- let V = nil
148- func ab (X,Y) = if ((Y >= U))
149- then X
150- else M(X, T[Y])
153+ let ad = {
154+ let W = J
155+ let X = size(W)
156+ let Y = nil
157+ func ae (aa,ab) = if ((ab >= X))
158+ then aa
159+ else P(aa, W[ab])
151160
152- func ac (X,Y) = if ((Y >= U))
153- then X
161+ func af (aa,ab) = if ((ab >= X))
162+ then aa
154163 else throw("List size exceeds 20")
155164
156- ac(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
165+ af(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
157166 }
158- let ad = {
159- let T = G
160- let U = size(T)
161- let V = nil
162- func ae (X,Y) = if ((Y >= U))
163- then X
164- else P(X, T[Y])
167+ let ag = {
168+ let W = J
169+ let X = size(W)
170+ let Y = nil
171+ func ah (aa,ab) = if ((ab >= X))
172+ then aa
173+ else S(aa, W[ab])
165174
166- func af (X,Y) = if ((Y >= U))
167- then X
175+ func ai (aa,ab) = if ((ab >= X))
176+ then aa
168177 else throw("List size exceeds 20")
169178
170- af(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
179+ ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
171180 }
172- let ag = {
173- let T = G
174- let U = size(T)
175- let V = nil
176- func ah (X,Y) = if ((Y >= U))
177- then X
178- else Q(X, T[Y])
181+ let aj = {
182+ let W = J
183+ let X = size(W)
184+ let Y = nil
185+ func ak (aa,ab) = if ((ab >= X))
186+ then aa
187+ else T(aa, W[ab])
179188
180- func ai (X,Y) = if ((Y >= U))
181- then X
189+ func al (aa,ab) = if ((ab >= X))
190+ then aa
182191 else throw("List size exceeds 20")
183192
184- ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
193+ al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
185194 }
186- let aj = {
187- let T = G
188- let U = size(T)
189- let V = nil
190- func ak (X,Y) = if ((Y >= U))
191- then X
192- else R(X, T[Y])
195+ let am = {
196+ let W = J
197+ let X = size(W)
198+ let Y = nil
199+ func an (aa,ab) = if ((ab >= X))
200+ then aa
201+ else U(aa, W[ab])
193202
194- func al (X,Y) = if ((Y >= U))
195- then X
203+ func ao (aa,ab) = if ((ab >= X))
204+ then aa
196205 else throw("List size exceeds 20")
197206
198- al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
207+ ao(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
199208 }
200- ((((S ++ aa) ++ ad) ++ ag) ++ aj)
209+ ((((V ++ ad) ++ ag) ++ aj) ++ am)
201210 }
202211 else throw("Only admin can call this function")
203212
204213
205214
206-@Callable(F)
207-func deleteDepositLockRecords (am) = if (containsElement([d, e, f], F.callerPublicKey))
215+@Callable(I)
216+func deleteDepositLockRecords (ap) = if (containsElement([d, e, f], I.callerPublicKey))
208217 then {
209- func an (L,ao) = DeleteEntry((ao + "_locked")) :: L
218+ func aq (O,ar) = DeleteEntry((ar + "_locked")) :: O
210219
211- let ap = {
212- let T = am
213- let U = size(T)
214- let V = nil
215- func W (X,Y) = if ((Y >= U))
216- then X
217- else an(X, T[Y])
220+ let as = {
221+ let W = ap
222+ let X = size(W)
223+ let Y = nil
224+ func Z (aa,ab) = if ((ab >= X))
225+ then aa
226+ else aq(aa, W[ab])
218227
219- func Z (X,Y) = if ((Y >= U))
220- then X
228+ func ac (aa,ab) = if ((ab >= X))
229+ then aa
221230 else throw("List size exceeds 100")
222231
223- Z(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
232+ ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
224233 }
225- ap
234+ as
226235 }
227236 else throw("Only admin can call this function")
228237
229238
230239
231-@Callable(F)
232-func issueToken (aq,ar,as,at) = if (containsElement([d, e, f], F.callerPublicKey))
233- then [Issue(aq, ar, as, at, true, unit, 0)]
240+@Callable(I)
241+func issueToken (at,au,av,aw) = if (containsElement([d, e, f], I.callerPublicKey))
242+ then [Issue(at, au, av, aw, true, unit, 0)]
234243 else throw("Only admin can call this function")
235244
236245
237246
238-@Callable(au)
247+@Callable(ax)
239248 func call () = [DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3N5viYFhnu1ew4FRZ9nujme9edr918FkT1a_current_reward")]
240249
241250
242251
243-@Callable(F)
244-func deposit (m) = if ((size(F.payments) != 1))
252+@Callable(I)
253+func deposit (o) = if ((size(I.payments) != 1))
245254 then throw("One attached payment expected")
246255 else {
247- let z = F.payments[0].amount
248- let A = F.payments[0].assetId
249- let av = {
250- let p = A
251- if ($isInstanceOf(p, "ByteVector"))
256+ let B = I.payments[0].amount
257+ let C = I.payments[0].assetId
258+ let ay = {
259+ let r = C
260+ if ($isInstanceOf(r, "ByteVector"))
252261 then {
253- let aw = p
254- toBase58String(aw)
262+ let az = r
263+ toBase58String(az)
255264 }
256265 else throw("Match error")
257266 }
258- if ((0 >= z))
259- then throw(("Deposit amount must be positive. Actual: " + toString(z)))
267+ if ((0 >= B))
268+ then throw(("Deposit amount must be positive. Actual: " + toString(B)))
260269 else {
261- let ax = (m + "_asset_balance")
262- let ay = toString(F.caller)
263- let az = (((m + "_") + ay) + "_asset_balance")
264- let aA = r(m)
265- let aB = {
266- let p = getString((m + "_liquidity_token"))
267- if ($isInstanceOf(p, "String"))
270+ let aA = (o + "_asset_balance")
271+ let aB = toString(I.caller)
272+ let aC = (((o + "_") + aB) + "_asset_balance")
273+ let aD = t(o)
274+ let aE = {
275+ let r = getString((o + "_liquidity_token"))
276+ if ($isInstanceOf(r, "String"))
268277 then {
269- let s = p
270- s
278+ let u = r
279+ u
271280 }
272281 else {
273- let t = p
282+ let v = r
274283 throw("You try to deposit on unsupported pool")
275284 }
276285 }
277- if (l(m))
286+ if (n(o))
278287 then {
279- let aC = {
280- let p = assetInfo(fromBase58String(aB))
281- if ($isInstanceOf(p, "Asset"))
288+ let aF = {
289+ let r = assetInfo(fromBase58String(aE))
290+ if ($isInstanceOf(r, "Asset"))
282291 then {
283- let D = p
284- D.decimals
292+ let G = r
293+ G.decimals
285294 }
286295 else throw("Can't find asset")
287296 }
288- if ((aB != av))
297+ if ((aE != ay))
289298 then throw("You attached wrong liquidity token from Swop.fi")
290299 else {
291- let aD = getIntegerValue(this, ax)
292- let aE = {
293- let p = getInteger(az)
294- if ($isInstanceOf(p, "Int"))
300+ let aG = getIntegerValue(this, aA)
301+ let aH = {
302+ let r = getInteger(aC)
303+ if ($isInstanceOf(r, "Int"))
295304 then {
296- let aF = p
297- aF
305+ let aI = r
306+ aI
298307 }
299308 else {
300- let t = p
309+ let v = r
301310 0
302311 }
303312 }
304- let aG = ((z - fraction(z, 1, a, HALFUP)) - fraction(z, 1, b, HALFUP))
305- let E = y(aG, fromBase58String(aA), m)
306- let aH = (z - aG)
307- let aI = ((aD + z) - aH)
308- let aJ = (aE + E)
309- let aK = (((((m + "_") + ay) + "_") + toBase58String(F.transactionId)) + "_locked")
310-[Reissue(fromBase58String(aA), E, true), ScriptTransfer(F.caller, E, fromBase58String(aA)), ScriptTransfer(h, aH, fromBase58String(aB)), IntegerEntry(aK, aG), IntegerEntry(ax, aI), IntegerEntry(az, aJ)]
313+ let aJ = ((B - fraction(B, 1, a, HALFUP)) - fraction(B, 1, b, HALFUP))
314+ let H = A(aJ, fromBase58String(aD), o, i)
315+ let aK = (B - aJ)
316+ let aL = ((aG + B) - aK)
317+ let aM = (aH + H)
318+ let aN = (((((o + "_") + aB) + "_") + toBase58String(I.transactionId)) + "_locked")
319+[Reissue(fromBase58String(aD), H, true), ScriptTransfer(I.caller, H, fromBase58String(aD)), ScriptTransfer(h, aK, fromBase58String(aE)), IntegerEntry(aN, aJ), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
311320 }
312321 }
313322 else throw("Pool is not active!")
316325
317326
318327
319-@Callable(F)
320-func withdraw (m) = if ((size(F.payments) != 1))
328+@Callable(I)
329+func withdraw (o) = if ((size(I.payments) != 1))
321330 then throw("One attached payment expected")
322331 else {
323- let z = F.payments[0].amount
324- let A = F.payments[0].assetId
325- let av = {
326- let p = A
327- if ($isInstanceOf(p, "ByteVector"))
332+ let B = I.payments[0].amount
333+ let C = I.payments[0].assetId
334+ let ay = {
335+ let r = C
336+ if ($isInstanceOf(r, "ByteVector"))
328337 then {
329- let aw = p
330- toBase58String(aw)
338+ let az = r
339+ toBase58String(az)
331340 }
332341 else throw("Match error")
333342 }
334- if ((0 >= z))
335- then throw(("Deposit amount must be positive. Actual: " + toString(z)))
336- else if (l(m))
343+ if ((0 >= B))
344+ then throw(("Deposit amount must be positive. Actual: " + toString(B)))
345+ else if (n(o))
337346 then {
338- let ax = (m + "_asset_balance")
339- let ay = toString(F.caller)
340- let az = (((m + "_") + ay) + "_asset_balance")
341- let aE = {
342- let p = getInteger(az)
343- if ($isInstanceOf(p, "Int"))
347+ let aA = (o + "_asset_balance")
348+ let aB = toString(I.caller)
349+ let aC = (((o + "_") + aB) + "_asset_balance")
350+ let aH = {
351+ let r = getInteger(aC)
352+ if ($isInstanceOf(r, "Int"))
344353 then {
345- let aF = p
346- aF
354+ let aI = r
355+ aI
347356 }
348357 else {
349- let t = p
358+ let v = r
350359 0
351360 }
352361 }
353- let aA = r(m)
354- let aB = u(m)
355- let aD = getIntegerValue(this, ax)
356- let aG = ((z - fraction(z, 1, c, HALFUP)) - fraction(z, 1, b, HALFUP))
357- let E = y(aG, fromBase58String(av), m)
358- let aI = (aD - aG)
359- let aH = (z - aG)
360- let aJ = (aE - z)
361-[Burn(fromBase58String(aA), E), ScriptTransfer(F.caller, E, fromBase58String(aB)), ScriptTransfer(h, aH, fromBase58String(aB)), IntegerEntry(ax, aI), IntegerEntry(az, aJ)]
362+ let aD = t(o)
363+ let aE = w(o)
364+ let aG = getIntegerValue(this, aA)
365+ let aJ = ((B - fraction(B, 1, c, HALFUP)) - fraction(B, 1, b, HALFUP))
366+ let H = A(aJ, fromBase58String(ay), o, j)
367+ let aL = (aG - aJ)
368+ let aK = (B - aJ)
369+ let aM = (aH - B)
370+[Burn(fromBase58String(aD), H), ScriptTransfer(I.caller, H, fromBase58String(aE)), ScriptTransfer(h, aK, fromBase58String(aE)), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
362371 }
363372 else throw("Pool is not active!")
364373 }
365374
366375
367376
368-@Callable(F)
369-func poolActivating (G,aL) = if (containsElement([d, e, f], F.callerPublicKey))
377+@Callable(I)
378+func poolActivating (J,aO) = if (containsElement([d, e, f], I.callerPublicKey))
370379 then {
371- func R (L,m) = {
372- let N = value(indexOf(G, m))
373- let aM = aL[N]
374-BooleanEntry((m + "_active"), aM) :: L
380+ func U (O,o) = {
381+ let Q = value(indexOf(J, o))
382+ let aP = aO[Q]
383+BooleanEntry((o + "_active"), aP) :: O
375384 }
376385
377- let aj = {
378- let T = G
379- let U = size(T)
380- let V = nil
381- func W (X,Y) = if ((Y >= U))
382- then X
383- else R(X, T[Y])
386+ let am = {
387+ let W = J
388+ let X = size(W)
389+ let Y = nil
390+ func Z (aa,ab) = if ((ab >= X))
391+ then aa
392+ else U(aa, W[ab])
384393
385- func Z (X,Y) = if ((Y >= U))
386- then X
394+ func ac (aa,ab) = if ((ab >= X))
395+ then aa
387396 else throw("List size exceeds 100")
388397
389- Z(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
398+ ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
390399 }
391- aj
400+ am
392401 }
393402 else throw("Only admin can call this function")
394403
395404
396-@Verifier(aN)
397-func aO () = {
398- let p = aN
399- if ($isInstanceOf(p, "InvokeScriptTransaction"))
405+@Verifier(aQ)
406+func aR () = {
407+ let r = aQ
408+ if ($isInstanceOf(r, "InvokeScriptTransaction"))
400409 then {
401- let aP = p
402- let aQ = if ((aP.dApp == i))
403- then if (if ((aP.function == "lockShareTokens"))
410+ let aS = r
411+ let aT = if ((aS.dApp == k))
412+ then if (if ((aS.function == "lockShareTokens"))
404413 then true
405- else (aP.function == "claim"))
414+ else (aS.function == "claim"))
406415 then true
407- else (aP.function == "withdrawShareTokens")
416+ else (aS.function == "withdrawShareTokens")
408417 else false
409- let aR = {
410- let aS = aP.dApp
411- if ($isInstanceOf(aS, "Address"))
418+ let aU = {
419+ let aV = aS.dApp
420+ if ($isInstanceOf(aV, "Address"))
412421 then {
413- let aT = aS
414- toString(aT)
422+ let aW = aV
423+ toString(aW)
415424 }
416425 else throw("Transaction must have only address")
417426 }
418- let aU = if (containsElement(j, aR))
419- then containsElement(k, aP.function)
427+ let aX = if (containsElement(l, aU))
428+ then containsElement(m, aS.function)
420429 else false
421- let aV = if (if (if (sigVerify(aN.bodyBytes, aN.proofs[0], d))
430+ let aY = if (if (if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
422431 then true
423- else sigVerify(aN.bodyBytes, aN.proofs[0], e))
432+ else sigVerify(aQ.bodyBytes, aQ.proofs[0], e))
424433 then true
425- else sigVerify(aN.bodyBytes, aN.proofs[0], g))
434+ else sigVerify(aQ.bodyBytes, aQ.proofs[0], g))
426435 then true
427- else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
428- if (if (aQ)
436+ else sigVerify(aQ.bodyBytes, aQ.proofs[0], aQ.senderPublicKey)
437+ if (if (aT)
429438 then true
430- else aU)
431- then aV
439+ else aX)
440+ then aY
432441 else false
433442 }
434443 else {
435- let aW = if (sigVerify(aN.bodyBytes, aN.proofs[0], d))
444+ let aZ = if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
436445 then 1
437446 else 0
438- let aX = if (sigVerify(aN.bodyBytes, aN.proofs[1], e))
447+ let ba = if (sigVerify(aQ.bodyBytes, aQ.proofs[1], e))
439448 then 1
440449 else 0
441- let aY = if (sigVerify(aN.bodyBytes, aN.proofs[2], f))
450+ let bb = if (sigVerify(aQ.bodyBytes, aQ.proofs[2], f))
442451 then 1
443452 else 0
444- (((aW + aX) + aY) >= 2)
453+ (((aZ + ba) + bb) >= 2)
445454 }
446455 }
447456
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000
55
66 let b = 10000
77
88 let c = 10000
99
1010 let d = base58'68Po1k24uP6goKr7RDmXPg4QkMiKuyTMEirao14rif8s'
1111
1212 let e = base58'Bze4aurT9WmLgBT6swA9CajaZFtUwhtwCri6XGAjnAkt'
1313
1414 let f = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
1515
1616 let g = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
1717
1818 let h = Address(base58'3N7ExjwfofPYTvNBv2zqtAtLcMxqjTxS7iL')
1919
20-let i = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
20+let i = "deposit"
2121
22-let j = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
22+let j = "withdraw"
2323
24-let k = ["replenishWithTwoTokens", "exchange"]
24+let k = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
2525
26-func l (m) = {
27- let n = (m + "_active")
28- let o = {
29- let p = getBoolean(this, n)
30- if ($isInstanceOf(p, "Boolean"))
26+let l = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
27+
28+let m = ["replenishWithTwoTokens", "exchange"]
29+
30+func n (o) = {
31+ let p = (o + "_active")
32+ let q = {
33+ let r = getBoolean(this, p)
34+ if ($isInstanceOf(r, "Boolean"))
3135 then {
32- let q = p
33- q
36+ let s = r
37+ s
3438 }
3539 else throw("Pool is not active!")
3640 }
37- o
41+ q
3842 }
3943
4044
41-func r (m) = {
42- let p = getString((m + "_service_token"))
43- if ($isInstanceOf(p, "String"))
45+func t (o) = {
46+ let r = getString((o + "_service_token"))
47+ if ($isInstanceOf(r, "String"))
4448 then {
45- let s = p
46- s
49+ let u = r
50+ u
4751 }
4852 else {
49- let t = p
53+ let v = r
5054 throw("You try to deposit on unsupported pool")
5155 }
5256 }
5357
5458
55-func u (m) = {
56- let p = getString((m + "_liquidity_token"))
57- if ($isInstanceOf(p, "String"))
59+func w (o) = {
60+ let r = getString((o + "_liquidity_token"))
61+ if ($isInstanceOf(r, "String"))
5862 then {
59- let s = p
60- s
63+ let u = r
64+ u
6165 }
6266 else {
63- let t = p
67+ let v = r
6468 throw("You try to withdraw from unsupported pool")
6569 }
6670 }
6771
6872
69-func v (w) = {
70- let p = getInteger(i, (((w + "_") + toString(this)) + "_share_tokens_locked"))
71- if ($isInstanceOf(p, "Int"))
73+func x (y) = {
74+ let r = getInteger(k, (((y + "_") + toString(this)) + "_share_tokens_locked"))
75+ if ($isInstanceOf(r, "Int"))
7276 then {
73- let x = p
74- x
77+ let z = r
78+ z
7579 }
76- else if ($isInstanceOf(p, "Unit"))
80+ else if ($isInstanceOf(r, "Unit"))
7781 then {
78- let t = p
82+ let v = r
7983 0
8084 }
8185 else throw("Match error")
8286 }
8387
8488
85-func y (z,A,w) = {
86- let B = v(w)
87- let C = {
88- let p = assetInfo(A)
89- if ($isInstanceOf(p, "Asset"))
89+func A (B,C,y,D) = {
90+ let E = x(y)
91+ let F = {
92+ let r = assetInfo(C)
93+ if ($isInstanceOf(r, "Asset"))
9094 then {
91- let D = p
92- D.quantity
95+ let G = r
96+ G.quantity
9397 }
9498 else throw("Can't find asset")
9599 }
96- if ((B == 0))
97- then z
98- else {
99- let E = fraction(z, C, B)
100- E
101- }
100+ if ((E == 0))
101+ then B
102+ else if ((D == i))
103+ then {
104+ let H = fraction(B, F, E)
105+ H
106+ }
107+ else {
108+ let H = fraction(B, E, F)
109+ H
110+ }
102111 }
103112
104113
105-@Callable(F)
106-func addPools (G,H,I,J) = if (containsElement([d, e, f], F.callerPublicKey))
114+@Callable(I)
115+func addPools (J,K,L,M) = if (containsElement([d, e, f], I.callerPublicKey))
107116 then {
108- func K (L,m) = IntegerEntry((m + "_asset_balance"), 0) :: L
117+ func N (O,o) = IntegerEntry((o + "_asset_balance"), 0) :: O
109118
110- func M (L,m) = {
111- let N = value(indexOf(G, m))
112- let O = H[N]
113-StringEntry((m + "_liquidity_token"), O) :: L
119+ func P (O,o) = {
120+ let Q = value(indexOf(J, o))
121+ let R = K[Q]
122+StringEntry((o + "_liquidity_token"), R) :: O
114123 }
115124
116- func P (L,m) = {
117- let N = value(indexOf(G, m))
118- let O = I[N]
119-StringEntry((m + "_service_token"), O) :: L
125+ func S (O,o) = {
126+ let Q = value(indexOf(J, o))
127+ let R = L[Q]
128+StringEntry((o + "_service_token"), R) :: O
120129 }
121130
122- func Q (L,m) = {
123- let N = value(indexOf(G, m))
124- let O = J[N]
125-IntegerEntry((m + "_service_token_decimal"), O) :: L
131+ func T (O,o) = {
132+ let Q = value(indexOf(J, o))
133+ let R = M[Q]
134+IntegerEntry((o + "_service_token_decimal"), R) :: O
126135 }
127136
128- func R (L,m) = BooleanEntry((m + "_active"), true) :: L
137+ func U (O,o) = BooleanEntry((o + "_active"), true) :: O
129138
130- let S = {
131- let T = G
132- let U = size(T)
133- let V = nil
134- func W (X,Y) = if ((Y >= U))
135- then X
136- else K(X, T[Y])
139+ let V = {
140+ let W = J
141+ let X = size(W)
142+ let Y = nil
143+ func Z (aa,ab) = if ((ab >= X))
144+ then aa
145+ else N(aa, W[ab])
137146
138- func Z (X,Y) = if ((Y >= U))
139- then X
147+ func ac (aa,ab) = if ((ab >= X))
148+ then aa
140149 else throw("List size exceeds 20")
141150
142- Z(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
151+ ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
143152 }
144- let aa = {
145- let T = G
146- let U = size(T)
147- let V = nil
148- func ab (X,Y) = if ((Y >= U))
149- then X
150- else M(X, T[Y])
153+ let ad = {
154+ let W = J
155+ let X = size(W)
156+ let Y = nil
157+ func ae (aa,ab) = if ((ab >= X))
158+ then aa
159+ else P(aa, W[ab])
151160
152- func ac (X,Y) = if ((Y >= U))
153- then X
161+ func af (aa,ab) = if ((ab >= X))
162+ then aa
154163 else throw("List size exceeds 20")
155164
156- ac(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(ab(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
165+ af(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
157166 }
158- let ad = {
159- let T = G
160- let U = size(T)
161- let V = nil
162- func ae (X,Y) = if ((Y >= U))
163- then X
164- else P(X, T[Y])
167+ let ag = {
168+ let W = J
169+ let X = size(W)
170+ let Y = nil
171+ func ah (aa,ab) = if ((ab >= X))
172+ then aa
173+ else S(aa, W[ab])
165174
166- func af (X,Y) = if ((Y >= U))
167- then X
175+ func ai (aa,ab) = if ((ab >= X))
176+ then aa
168177 else throw("List size exceeds 20")
169178
170- af(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(ae(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
179+ ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
171180 }
172- let ag = {
173- let T = G
174- let U = size(T)
175- let V = nil
176- func ah (X,Y) = if ((Y >= U))
177- then X
178- else Q(X, T[Y])
181+ let aj = {
182+ let W = J
183+ let X = size(W)
184+ let Y = nil
185+ func ak (aa,ab) = if ((ab >= X))
186+ then aa
187+ else T(aa, W[ab])
179188
180- func ai (X,Y) = if ((Y >= U))
181- then X
189+ func al (aa,ab) = if ((ab >= X))
190+ then aa
182191 else throw("List size exceeds 20")
183192
184- ai(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
193+ al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
185194 }
186- let aj = {
187- let T = G
188- let U = size(T)
189- let V = nil
190- func ak (X,Y) = if ((Y >= U))
191- then X
192- else R(X, T[Y])
195+ let am = {
196+ let W = J
197+ let X = size(W)
198+ let Y = nil
199+ func an (aa,ab) = if ((ab >= X))
200+ then aa
201+ else U(aa, W[ab])
193202
194- func al (X,Y) = if ((Y >= U))
195- then X
203+ func ao (aa,ab) = if ((ab >= X))
204+ then aa
196205 else throw("List size exceeds 20")
197206
198- al(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(ak(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
207+ ao(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(an(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
199208 }
200- ((((S ++ aa) ++ ad) ++ ag) ++ aj)
209+ ((((V ++ ad) ++ ag) ++ aj) ++ am)
201210 }
202211 else throw("Only admin can call this function")
203212
204213
205214
206-@Callable(F)
207-func deleteDepositLockRecords (am) = if (containsElement([d, e, f], F.callerPublicKey))
215+@Callable(I)
216+func deleteDepositLockRecords (ap) = if (containsElement([d, e, f], I.callerPublicKey))
208217 then {
209- func an (L,ao) = DeleteEntry((ao + "_locked")) :: L
218+ func aq (O,ar) = DeleteEntry((ar + "_locked")) :: O
210219
211- let ap = {
212- let T = am
213- let U = size(T)
214- let V = nil
215- func W (X,Y) = if ((Y >= U))
216- then X
217- else an(X, T[Y])
220+ let as = {
221+ let W = ap
222+ let X = size(W)
223+ let Y = nil
224+ func Z (aa,ab) = if ((ab >= X))
225+ then aa
226+ else aq(aa, W[ab])
218227
219- func Z (X,Y) = if ((Y >= U))
220- then X
228+ func ac (aa,ab) = if ((ab >= X))
229+ then aa
221230 else throw("List size exceeds 100")
222231
223- Z(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
232+ ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
224233 }
225- ap
234+ as
226235 }
227236 else throw("Only admin can call this function")
228237
229238
230239
231-@Callable(F)
232-func issueToken (aq,ar,as,at) = if (containsElement([d, e, f], F.callerPublicKey))
233- then [Issue(aq, ar, as, at, true, unit, 0)]
240+@Callable(I)
241+func issueToken (at,au,av,aw) = if (containsElement([d, e, f], I.callerPublicKey))
242+ then [Issue(at, au, av, aw, true, unit, 0)]
234243 else throw("Only admin can call this function")
235244
236245
237246
238-@Callable(au)
247+@Callable(ax)
239248 func call () = [DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3N5viYFhnu1ew4FRZ9nujme9edr918FkT1a_current_reward")]
240249
241250
242251
243-@Callable(F)
244-func deposit (m) = if ((size(F.payments) != 1))
252+@Callable(I)
253+func deposit (o) = if ((size(I.payments) != 1))
245254 then throw("One attached payment expected")
246255 else {
247- let z = F.payments[0].amount
248- let A = F.payments[0].assetId
249- let av = {
250- let p = A
251- if ($isInstanceOf(p, "ByteVector"))
256+ let B = I.payments[0].amount
257+ let C = I.payments[0].assetId
258+ let ay = {
259+ let r = C
260+ if ($isInstanceOf(r, "ByteVector"))
252261 then {
253- let aw = p
254- toBase58String(aw)
262+ let az = r
263+ toBase58String(az)
255264 }
256265 else throw("Match error")
257266 }
258- if ((0 >= z))
259- then throw(("Deposit amount must be positive. Actual: " + toString(z)))
267+ if ((0 >= B))
268+ then throw(("Deposit amount must be positive. Actual: " + toString(B)))
260269 else {
261- let ax = (m + "_asset_balance")
262- let ay = toString(F.caller)
263- let az = (((m + "_") + ay) + "_asset_balance")
264- let aA = r(m)
265- let aB = {
266- let p = getString((m + "_liquidity_token"))
267- if ($isInstanceOf(p, "String"))
270+ let aA = (o + "_asset_balance")
271+ let aB = toString(I.caller)
272+ let aC = (((o + "_") + aB) + "_asset_balance")
273+ let aD = t(o)
274+ let aE = {
275+ let r = getString((o + "_liquidity_token"))
276+ if ($isInstanceOf(r, "String"))
268277 then {
269- let s = p
270- s
278+ let u = r
279+ u
271280 }
272281 else {
273- let t = p
282+ let v = r
274283 throw("You try to deposit on unsupported pool")
275284 }
276285 }
277- if (l(m))
286+ if (n(o))
278287 then {
279- let aC = {
280- let p = assetInfo(fromBase58String(aB))
281- if ($isInstanceOf(p, "Asset"))
288+ let aF = {
289+ let r = assetInfo(fromBase58String(aE))
290+ if ($isInstanceOf(r, "Asset"))
282291 then {
283- let D = p
284- D.decimals
292+ let G = r
293+ G.decimals
285294 }
286295 else throw("Can't find asset")
287296 }
288- if ((aB != av))
297+ if ((aE != ay))
289298 then throw("You attached wrong liquidity token from Swop.fi")
290299 else {
291- let aD = getIntegerValue(this, ax)
292- let aE = {
293- let p = getInteger(az)
294- if ($isInstanceOf(p, "Int"))
300+ let aG = getIntegerValue(this, aA)
301+ let aH = {
302+ let r = getInteger(aC)
303+ if ($isInstanceOf(r, "Int"))
295304 then {
296- let aF = p
297- aF
305+ let aI = r
306+ aI
298307 }
299308 else {
300- let t = p
309+ let v = r
301310 0
302311 }
303312 }
304- let aG = ((z - fraction(z, 1, a, HALFUP)) - fraction(z, 1, b, HALFUP))
305- let E = y(aG, fromBase58String(aA), m)
306- let aH = (z - aG)
307- let aI = ((aD + z) - aH)
308- let aJ = (aE + E)
309- let aK = (((((m + "_") + ay) + "_") + toBase58String(F.transactionId)) + "_locked")
310-[Reissue(fromBase58String(aA), E, true), ScriptTransfer(F.caller, E, fromBase58String(aA)), ScriptTransfer(h, aH, fromBase58String(aB)), IntegerEntry(aK, aG), IntegerEntry(ax, aI), IntegerEntry(az, aJ)]
313+ let aJ = ((B - fraction(B, 1, a, HALFUP)) - fraction(B, 1, b, HALFUP))
314+ let H = A(aJ, fromBase58String(aD), o, i)
315+ let aK = (B - aJ)
316+ let aL = ((aG + B) - aK)
317+ let aM = (aH + H)
318+ let aN = (((((o + "_") + aB) + "_") + toBase58String(I.transactionId)) + "_locked")
319+[Reissue(fromBase58String(aD), H, true), ScriptTransfer(I.caller, H, fromBase58String(aD)), ScriptTransfer(h, aK, fromBase58String(aE)), IntegerEntry(aN, aJ), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
311320 }
312321 }
313322 else throw("Pool is not active!")
314323 }
315324 }
316325
317326
318327
319-@Callable(F)
320-func withdraw (m) = if ((size(F.payments) != 1))
328+@Callable(I)
329+func withdraw (o) = if ((size(I.payments) != 1))
321330 then throw("One attached payment expected")
322331 else {
323- let z = F.payments[0].amount
324- let A = F.payments[0].assetId
325- let av = {
326- let p = A
327- if ($isInstanceOf(p, "ByteVector"))
332+ let B = I.payments[0].amount
333+ let C = I.payments[0].assetId
334+ let ay = {
335+ let r = C
336+ if ($isInstanceOf(r, "ByteVector"))
328337 then {
329- let aw = p
330- toBase58String(aw)
338+ let az = r
339+ toBase58String(az)
331340 }
332341 else throw("Match error")
333342 }
334- if ((0 >= z))
335- then throw(("Deposit amount must be positive. Actual: " + toString(z)))
336- else if (l(m))
343+ if ((0 >= B))
344+ then throw(("Deposit amount must be positive. Actual: " + toString(B)))
345+ else if (n(o))
337346 then {
338- let ax = (m + "_asset_balance")
339- let ay = toString(F.caller)
340- let az = (((m + "_") + ay) + "_asset_balance")
341- let aE = {
342- let p = getInteger(az)
343- if ($isInstanceOf(p, "Int"))
347+ let aA = (o + "_asset_balance")
348+ let aB = toString(I.caller)
349+ let aC = (((o + "_") + aB) + "_asset_balance")
350+ let aH = {
351+ let r = getInteger(aC)
352+ if ($isInstanceOf(r, "Int"))
344353 then {
345- let aF = p
346- aF
354+ let aI = r
355+ aI
347356 }
348357 else {
349- let t = p
358+ let v = r
350359 0
351360 }
352361 }
353- let aA = r(m)
354- let aB = u(m)
355- let aD = getIntegerValue(this, ax)
356- let aG = ((z - fraction(z, 1, c, HALFUP)) - fraction(z, 1, b, HALFUP))
357- let E = y(aG, fromBase58String(av), m)
358- let aI = (aD - aG)
359- let aH = (z - aG)
360- let aJ = (aE - z)
361-[Burn(fromBase58String(aA), E), ScriptTransfer(F.caller, E, fromBase58String(aB)), ScriptTransfer(h, aH, fromBase58String(aB)), IntegerEntry(ax, aI), IntegerEntry(az, aJ)]
362+ let aD = t(o)
363+ let aE = w(o)
364+ let aG = getIntegerValue(this, aA)
365+ let aJ = ((B - fraction(B, 1, c, HALFUP)) - fraction(B, 1, b, HALFUP))
366+ let H = A(aJ, fromBase58String(ay), o, j)
367+ let aL = (aG - aJ)
368+ let aK = (B - aJ)
369+ let aM = (aH - B)
370+[Burn(fromBase58String(aD), H), ScriptTransfer(I.caller, H, fromBase58String(aE)), ScriptTransfer(h, aK, fromBase58String(aE)), IntegerEntry(aA, aL), IntegerEntry(aC, aM)]
362371 }
363372 else throw("Pool is not active!")
364373 }
365374
366375
367376
368-@Callable(F)
369-func poolActivating (G,aL) = if (containsElement([d, e, f], F.callerPublicKey))
377+@Callable(I)
378+func poolActivating (J,aO) = if (containsElement([d, e, f], I.callerPublicKey))
370379 then {
371- func R (L,m) = {
372- let N = value(indexOf(G, m))
373- let aM = aL[N]
374-BooleanEntry((m + "_active"), aM) :: L
380+ func U (O,o) = {
381+ let Q = value(indexOf(J, o))
382+ let aP = aO[Q]
383+BooleanEntry((o + "_active"), aP) :: O
375384 }
376385
377- let aj = {
378- let T = G
379- let U = size(T)
380- let V = nil
381- func W (X,Y) = if ((Y >= U))
382- then X
383- else R(X, T[Y])
386+ let am = {
387+ let W = J
388+ let X = size(W)
389+ let Y = nil
390+ func Z (aa,ab) = if ((ab >= X))
391+ then aa
392+ else U(aa, W[ab])
384393
385- func Z (X,Y) = if ((Y >= U))
386- then X
394+ func ac (aa,ab) = if ((ab >= X))
395+ then aa
387396 else throw("List size exceeds 100")
388397
389- Z(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(W(V, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
398+ ac(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
390399 }
391- aj
400+ am
392401 }
393402 else throw("Only admin can call this function")
394403
395404
396-@Verifier(aN)
397-func aO () = {
398- let p = aN
399- if ($isInstanceOf(p, "InvokeScriptTransaction"))
405+@Verifier(aQ)
406+func aR () = {
407+ let r = aQ
408+ if ($isInstanceOf(r, "InvokeScriptTransaction"))
400409 then {
401- let aP = p
402- let aQ = if ((aP.dApp == i))
403- then if (if ((aP.function == "lockShareTokens"))
410+ let aS = r
411+ let aT = if ((aS.dApp == k))
412+ then if (if ((aS.function == "lockShareTokens"))
404413 then true
405- else (aP.function == "claim"))
414+ else (aS.function == "claim"))
406415 then true
407- else (aP.function == "withdrawShareTokens")
416+ else (aS.function == "withdrawShareTokens")
408417 else false
409- let aR = {
410- let aS = aP.dApp
411- if ($isInstanceOf(aS, "Address"))
418+ let aU = {
419+ let aV = aS.dApp
420+ if ($isInstanceOf(aV, "Address"))
412421 then {
413- let aT = aS
414- toString(aT)
422+ let aW = aV
423+ toString(aW)
415424 }
416425 else throw("Transaction must have only address")
417426 }
418- let aU = if (containsElement(j, aR))
419- then containsElement(k, aP.function)
427+ let aX = if (containsElement(l, aU))
428+ then containsElement(m, aS.function)
420429 else false
421- let aV = if (if (if (sigVerify(aN.bodyBytes, aN.proofs[0], d))
430+ let aY = if (if (if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
422431 then true
423- else sigVerify(aN.bodyBytes, aN.proofs[0], e))
432+ else sigVerify(aQ.bodyBytes, aQ.proofs[0], e))
424433 then true
425- else sigVerify(aN.bodyBytes, aN.proofs[0], g))
434+ else sigVerify(aQ.bodyBytes, aQ.proofs[0], g))
426435 then true
427- else sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey)
428- if (if (aQ)
436+ else sigVerify(aQ.bodyBytes, aQ.proofs[0], aQ.senderPublicKey)
437+ if (if (aT)
429438 then true
430- else aU)
431- then aV
439+ else aX)
440+ then aY
432441 else false
433442 }
434443 else {
435- let aW = if (sigVerify(aN.bodyBytes, aN.proofs[0], d))
444+ let aZ = if (sigVerify(aQ.bodyBytes, aQ.proofs[0], d))
436445 then 1
437446 else 0
438- let aX = if (sigVerify(aN.bodyBytes, aN.proofs[1], e))
447+ let ba = if (sigVerify(aQ.bodyBytes, aQ.proofs[1], e))
439448 then 1
440449 else 0
441- let aY = if (sigVerify(aN.bodyBytes, aN.proofs[2], f))
450+ let bb = if (sigVerify(aQ.bodyBytes, aQ.proofs[2], f))
442451 then 1
443452 else 0
444- (((aW + aX) + aY) >= 2)
453+ (((aZ + ba) + bb) >= 2)
445454 }
446455 }
447456

github/deemru/w8io/03bedc9 
360.91 ms