tx · FHFuEo3f5gS9dkWkpYJUAm5ft2KwiFXorwrhz6WGbojB

3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA:  -0.03400000 Waves

2022.08.18 15:37 [2189920] smart account 3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA > SELF 0.00000000 Waves

{ "type": 13, "id": "FHFuEo3f5gS9dkWkpYJUAm5ft2KwiFXorwrhz6WGbojB", "fee": 3400000, "feeAssetId": null, "timestamp": 1660826302199, "version": 1, "sender": "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA", "senderPublicKey": "35yd3qw1gxKDxKwGAykHN9fANbXNWwseaUwbWDj24o3x", "proofs": [ "aM8FpRhukqYRzyNXQ3XNrR9BT7JHAtyQebx6k5F8DGXZAAAyeHufDNicPLWZtvHhb9Qdih7P4Qqzx9gm257Fypo" ], "script": "base64:AAIFAAAAAAAAC68IAhIDCgEIEgMKAQgSABIECgIBBBIHCgUBAQEBBBIDCgEBEgASBwoFAQEBCAESBAoCAQESAwoBARIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIJb25lQmlnSW50IgpzbGlwcGFnZTREIgVBbXVsdCIFRGNvbnYiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiClBvb2xQdXREaXMiDlBvb2xNYXRjaGVyRGlzIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIglpZHhQb29sU3QiCWlkeExQQXNJZCIJaWR4QW1Bc0lkIglpZHhQckFzSWQiC2lkeEFtdEFzRGNtIg1pZHhQcmljZUFzRGNtIgtpZHhJQW10QXNJZCINaWR4SVByaWNlQXNJZCIPaWR4RmFjdFN0YWtDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciIFZGVsYXkiAnQxIgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0IgJmMSIDdmFsIg9yZXN1bHRTY2FsZU11bHQiAnRzIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiAXQiA3BhdSICdWEiBHR4SWQiA2dhdSICYWEiAnBhIgNhbXAiA2FkYSIFbGdvdGMiBmNhbGxlciIFbHNvdGMiBGZjZmciBG10cGsiAnBjIgZpQW10QXMiBWlQckFzIgNtYmEiBWJBU3RyIgNhcHMiA3RvZSIDb3JWIgZzZW5kclYiBm1hdGNoViIDc3RyIgckbWF0Y2gwIgZ2YWxTdHIiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIDZmNhIgFBIgNpZ3MiAm1wIgNncGMiBWFtdEFzIgdwcmljZUFzIghpUHJpY2VBcyIDZ2ZjIhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiA2VnbyIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCILdXNlckFkZHJlc3MiBGxwSWQiBGFtSWQiBHBySWQiBWFtRGNtIgVwckRjbSIDc3RzIgdscEVtaXNzIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiCmxwRW1pc3NYMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIDZXBvIgdpbkFtQW10IgZpbkFtSWQiB2luUHJBbXQiBmluUHJJZCIGaXNFdmFsIgZlbWl0THAiCmlzT25lQXNzZXQiBnBtdEFtdCIFcG10SWQiB2FtSWRTdHIiB3BySWRTdHIiCWluQW1JZFN0ciIJaW5QcklkU3RyIgZhbXREY20iCHByaWNlRGNtIgRscEVtIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgFyIgtzbGlwcGFnZVgxOCIPc2xpcHBhZ2VSZWFsWDE4Ig1scEVtaXNzaW9uWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIg0kdDAxNTUzMTE1ODc2Igp3cml0ZUFtQW10Igp3cml0ZVByQW10Igtjb21tb25TdGF0ZSIDbW9hIgVvcmRlciIHYW10QXNJZCIGcHJBc0lkIg9hY2NBbXRBc0JhbGFuY2UiDmFjY1ByQXNCYWxhbmNlIgpvckFtdEFzc2V0IgpvckFtdEFzU3RyIglvclByQXNzZXQiCW9yUHJBc1N0ciIKb3JkZXJQcmljZSIOY2FzdE9yZGVyUHJpY2UiEWlzT3JkZXJQcmljZVZhbGlkIgJjZyIBaSIDcG10IgJjcCIHYW1Bc1BtdCIHcHJBc1BtdCIBbSIBcyICcG0iAnBkIgJtbSICcGsiAWMiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgJjbSIDaHBtIgNjcG0iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIgthbUFzc2V0UGFydCILcHJBc3NldFBhcnQiBW91dExwIgdnd3hDbnRyIgdwb29sQ2ZnIgVhZGRvbiINYWRkb25Db250cmFjdCIFY2hlY2siDSR0MDI0ODMyMjUyMTIiDGFtQmFsYW5jZU5vdyIMcHJCYWxhbmNlTm93Igx2aXJ0U3dhcEluQW0iDXZpcnRTd2FwT3V0UHIiDHZpcnRTd2FwSW5QciINdmlydFN3YXBPdXRBbSIGRDB2c0QxIgZlc3RQdXQiB2VzdGltTFAiCWxwQ2FsY1JlcyIHbWF4U2xwZyIJb3V0QW10QW10IgFiIgpleGNoUmVzdWx0Igdub3RVc2VkIglvdXRBbW91bnQiCm91dEFzc2V0SWQiCmVzdGltQW1BbXQiCmVzdGltUHJBbXQiDSR0MDMwMjQzMzA3MDAiCHRvdGFsR2V0IghmaW5hbFJl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", "chainId": 84, "height": 2189920, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7TWuUDmGmaHU9G5CzN24GHdhCC47BJSULNmFnTyEkjjf Next: 2AWT5EHVe8NkNLvUiWTvDwGUaX777YQFHy5D5FXNVA6G Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 6 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
77
88 let c = toBigInt(1000000000000000000)
99
10-let d = 1000
10+let d = toBigInt(0)
1111
12-let e = toBigInt(0)
12+let e = toBigInt(1)
1313
14-let f = toBigInt(1)
14+let f = toBigInt((a - ((a * 1) / a)))
1515
16-let g = toBigInt((a - ((a * 1) / a)))
16+let g = "100"
1717
18-let h = "100"
18+let h = "1"
1919
20-let i = "1"
20+let i = "__"
2121
22-let j = "__"
22+let j = ""
2323
24-let k = ""
24+let k = 1
2525
26-let l = 1
26+let l = 2
2727
28-let m = 2
28+let m = 3
2929
30-let n = 3
30+let n = 4
3131
32-let o = 4
32+let o = 1
3333
34-let p = 1
34+let p = 2
3535
36-let q = 2
36+let q = 3
3737
38-let r = 3
38+let r = 4
3939
40-let s = 4
40+let s = 5
4141
42-let t = 5
42+let t = 6
4343
44-let u = 6
44+let u = 7
4545
46-let v = 7
46+let v = 8
4747
48-let w = 8
48+let w = 9
4949
50-let x = 9
50+let x = 1
5151
52-let y = 1
52+let y = 7
5353
54-let z = 7
54+let z = 10
5555
56-let A = 10
56+let A = "%s__delay"
5757
58-let B = 0
59-
60-func C (D,E) = fraction(toBigInt(D), c, toBigInt(E))
58+func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
6159
6260
63-func F (G,H) = toInt(fraction(G, toBigInt(H), c))
61+func E (F,G) = toInt(fraction(F, toBigInt(G), c))
6462
6563
66-func I (J,K,L) = fraction(J, K, L)
64+func H (I,J,K) = fraction(I, J, K)
6765
6866
69-func M (G) = if ((e > G))
70- then -(G)
71- else G
67+func L (F) = if ((d > F))
68+ then -(F)
69+ else F
7270
7371
74-func N () = "%s__factoryContract"
72+func M () = "%s__factoryContract"
7573
7674
77-func O () = "%s__managerPublicKey"
75+func N () = "%s__managerPublicKey"
7876
7977
80-func P () = "%s__pendingManagerPublicKey"
78+func O () = "%s__pendingManagerPublicKey"
8179
8280
83-func Q () = "%s%s__price__last"
81+func P () = "%s%s__price__last"
8482
8583
86-func R (S,T) = makeString(["%s%s%d%d__price__history", toString(S), toString(T)], j)
84+func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], i)
8785
8886
89-func U (V,W) = ((("%s%s%s__P__" + V) + "__") + W)
87+func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
9088
9189
92-func X (V,W) = ((("%s%s%s__G__" + V) + "__") + W)
90+func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
9391
9492
95-func Y () = "%s__amountAsset"
93+func X () = "%s__amountAsset"
9694
9795
98-func Z () = "%s__priceAsset"
96+func Y () = "%s__priceAsset"
9997
10098
101-func aa () = "%s__amp"
99+func Z () = "%s__amp"
102100
103101
104-func ab () = "%s__addonAddr"
102+func aa () = "%s__addonAddr"
105103
106104
107-let ac = "%s__feePermille"
105+func ab (ac) = makeString(["%s%s__lastGetOneTknCall", ac], i)
108106
109-let ad = valueOrElse(getInteger(this, ac), B)
107+
108+func ad (ac) = makeString(["%s%s__lastPutOneTknCall", ac], i)
109+
110110
111111 func ae () = "%s__factoryConfig"
112112
123123 func al () = "%s__shutdown"
124124
125125
126-func am (an) = throw(makeString(["lp_stable.ride:", an], " "))
126+func am (an,ao,ap) = throw(((((("Failed: ordValid=" + toString(an)) + " sndrValid=") + toString(ao)) + " mtchrValid=") + toString(ap)))
127127
128128
129-func ao (ap,aq,ar) = am(((((("Failed: ordValid=" + toString(ap)) + " sndrValid=") + toString(aq)) + " mtchrValid=") + toString(ar)))
130-
131-
132-func as (G) = {
133- let at = G
134- if ($isInstanceOf(at, "String"))
129+func aq (F) = {
130+ let ar = F
131+ if ($isInstanceOf(ar, "String"))
135132 then {
136- let au = at
137- au
133+ let as = ar
134+ as
138135 }
139- else am("fail cast to String")
136+ else throw("fail cast to String")
140137 }
141138
142139
143-func av (aw,ax) = valueOrErrorMessage(getString(aw, ax), makeString(["mandatory ", toString(aw), ".", ax, " not defined"], ""))
140+func at (au,av) = valueOrErrorMessage(getString(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
144141
145142
146-func ay (aw,ax) = valueOrErrorMessage(getInteger(aw, ax), makeString(["mandatory ", toString(aw), ".", ax, " not defined"], ""))
143+func aw (au,av) = valueOrErrorMessage(getInteger(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
147144
148145
149-let az = addressFromStringValue(av(this, N()))
146+let ax = addressFromStringValue(at(this, M()))
150147
151-let aA = av(this, aa())
148+let ay = at(this, Z())
152149
153-func aB () = valueOrElse(getBoolean(az, al()), false)
150+func az () = valueOrElse(getBoolean(ax, al()), false)
154151
155152
156-func aC () = fromBase58String(av(az, af()))
153+func aA () = fromBase58String(at(ax, af()))
157154
158155
159-let aD = addressFromPublicKey(aC())
160-
161-func aE () = {
162- let aF = av(this, Y())
163- let aG = av(this, Z())
164- let aH = ay(az, aj(aG))
165- let ah = ay(az, aj(aF))
166- split(av(az, ag(toString(ah), toString(aH))), j)
156+func aB () = {
157+ let aC = at(this, X())
158+ let aD = at(this, Y())
159+ let aE = aw(ax, aj(aD))
160+ let ah = aw(ax, aj(aC))
161+ split(at(ax, ag(toString(ah), toString(aE))), i)
167162 }
168163
169164
170-func aI () = split(av(az, ae()), j)
165+func aF () = split(at(ax, ae()), i)
171166
172167
173-func aJ (aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aK), toString(aL), toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), toString(aT)], j)
168+func aG (aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ)], i)
174169
175170
176-func aU (aV,aW,aX,aN,aQ,aR) = makeString(["%d%d%d%d%d%d", toString(aV), toString(aW), toString(aX), toString(aN), toString(aQ), toString(aR)], j)
171+func aR (aS,aT,aU,aK,aN,aO) = makeString(["%d%d%d%d%d%d", toString(aS), toString(aT), toString(aU), toString(aK), toString(aN), toString(aO)], i)
177172
178173
179-func aY (aZ) = if ((aZ == "WAVES"))
174+func aV (aW) = if ((aW == "WAVES"))
180175 then wavesBalance(this).available
181- else assetBalance(this, fromBase58String(aZ))
176+ else assetBalance(this, fromBase58String(aW))
182177
183178
184-func ba (bb,bc) = fraction(bb, c, bc)
179+func aX (aY,aZ) = fraction(aY, c, aZ)
185180
186181
187-func bd (be,bf,bg) = {
188- let bh = fraction((be - bf), b, bf)
189- let bi = ((bg - M(bh)) > e)
190- if (!(bi))
191- then am(("Big slippage: " + toString(bh)))
192- else $Tuple2(bi, min([be, bf]))
182+func ba (bb,bc,bd) = {
183+ let be = fraction((bb - bc), b, bc)
184+ let bf = ((bd - L(be)) > d)
185+ if (!(bf))
186+ then throw(("Big slpg: " + toString(be)))
187+ else $Tuple2(bf, min([bb, bc]))
193188 }
194189
195190
196-func bj (bk,bl,bg) = {
197- let bh = fraction(bl, b, bk)
198- let bm = (bg > bh)
199- if (if (bm)
191+func bg (bh,bi,bj) = {
192+ let be = fraction(bi, b, bh)
193+ let bk = (bj > be)
194+ if (if (bk)
200195 then true
201- else (bl > bk))
202- then am(((((((toString(bl) + " ") + toString(bk)) + " ") + toString(bh)) + " ") + toString(bg)))
203- else bm
196+ else (bi > bh))
197+ then throw(((((((toString(bi) + " ") + toString(bh)) + " ") + toString(be)) + " ") + toString(bj)))
198+ else bk
204199 }
205200
206201
207-func bn (bo,bp,bq,br) = {
208- let bs = C(bq, bo)
209- let bt = C(br, bp)
210- ba(bt, bs)
202+func bl (bm,bn,bo,bp) = {
203+ let bq = B(bo, bm)
204+ let br = B(bp, bn)
205+ aX(br, bq)
211206 }
212207
213208
214-func bu (bq,br,bv) = {
215- let bw = aE()
216- let bx = parseIntValue(bw[u])
217- let by = parseIntValue(bw[v])
218- let bz = bn(bx, by, bq, br)
219- let bc = C(bq, bx)
220- let bb = C(br, by)
221- let bA = C(bv, a)
222- let bB = ba(bc, bA)
223- let bC = ba(bb, bA)
224-[bz, bB, bC]
209+func bs (bo,bp,bt) = {
210+ let bu = aB()
211+ let bv = parseIntValue(bu[t])
212+ let bw = parseIntValue(bu[u])
213+ let bx = bl(bv, bw, bo, bp)
214+ let aZ = B(bo, bv)
215+ let aY = B(bp, bw)
216+ let by = B(bt, a)
217+ let bz = aX(aZ, by)
218+ let bA = aX(aY, by)
219+[bx, bz, bA]
225220 }
226221
227222
228-func bD (bq,br,bv) = {
229- let bE = bu(bq, br, bv)
230-[F(bE[0], a), F(bE[1], a), F(bE[2], a)]
223+func bB (bo,bp,bt) = {
224+ let bC = bs(bo, bp, bt)
225+[E(bC[0], a), E(bC[1], a), E(bC[2], a)]
231226 }
232227
233228
234-func bF (bG,bH,bI,bJ) = {
235- let bw = aE()
236- let bK = bw[r]
237- let bL = bw[s]
238- let bM = bw[t]
239- let bN = parseIntValue(bw[u])
240- let bO = parseIntValue(bw[v])
241- let bP = bw[q]
242- let bQ = valueOrErrorMessage(assetInfo(fromBase58String(bK)), "Wrong LP id").quantity
243- let bR = if ((bK == bH))
244- then true
245- else am("Wrong payment asset")
246- if ((bR == bR))
247- then {
248- let bS = if ((bN >= bO))
249- then bN
250- else bO
251- if ((bS == bS))
252- then {
253- let bT = aY(bL)
254- let bU = C(bT, bS)
255- let bV = aY(bM)
256- let bW = C(bV, bS)
257- let bX = ba(bW, bU)
258- let bY = F(bX, a)
259- let bZ = C(bI, a)
260- let ca = C(bQ, a)
261- let cb = fraction(bU, bZ, ca)
262- let cc = fraction(bW, bZ, ca)
263- let cd = F(cb, bS)
264- let ce = F(cc, bS)
265- let cf = if ((bG == ""))
266- then nil
267- else [ScriptTransfer(bJ, cd, if ((bL == "WAVES"))
268- then unit
269- else fromBase58String(bL)), ScriptTransfer(bJ, ce, if ((bM == "WAVES"))
270- then unit
271- else fromBase58String(bM)), StringEntry(X(toString(bJ), bG), aU(cd, ce, bI, bY, height, lastBlock.timestamp)), IntegerEntry(Q(), bY), IntegerEntry(R(height, lastBlock.timestamp), bY)]
272- $Tuple10(cd, ce, bL, bM, bT, bV, bQ, bX, bP, cf)
273- }
274- else throw("Strict value is not equal to itself.")
229+func bD (bE,bF,bG,bH) = {
230+ let bu = aB()
231+ let bI = bu[q]
232+ let bJ = bu[r]
233+ let bK = bu[s]
234+ let bL = parseIntValue(bu[t])
235+ let bM = parseIntValue(bu[u])
236+ let bN = bu[p]
237+ let bO = valueOrErrorMessage(assetInfo(fromBase58String(bI)), "Wrong LP id").quantity
238+ if ((bI != bF))
239+ then throw("Wrong pmt asset")
240+ else {
241+ let bP = aV(bJ)
242+ let bQ = B(bP, bL)
243+ let bR = aV(bK)
244+ let bS = B(bR, bM)
245+ let bT = aX(bS, bQ)
246+ let bU = E(bT, a)
247+ let bV = B(bG, a)
248+ let bW = B(bO, a)
249+ let bX = fraction(bQ, bV, bW)
250+ let bY = fraction(bS, bV, bW)
251+ let bZ = E(bX, bL)
252+ let ca = E(bY, bM)
253+ let cb = if ((bE == ""))
254+ then nil
255+ else [ScriptTransfer(bH, bZ, if ((bJ == "WAVES"))
256+ then unit
257+ else fromBase58String(bJ)), ScriptTransfer(bH, ca, if ((bK == "WAVES"))
258+ then unit
259+ else fromBase58String(bK)), StringEntry(W(toString(bH), bE), aR(bZ, ca, bG, bU, height, lastBlock.timestamp)), IntegerEntry(P(), bU), IntegerEntry(Q(height, lastBlock.timestamp), bU)]
260+ $Tuple10(bZ, ca, bJ, bK, bP, bR, bO, bT, bN, cb)
275261 }
276- else throw("Strict value is not equal to itself.")
277262 }
278263
279264
280-func cg (bG,ch,ci,cj,ck,cl,bJ,cm,cn,co,cp,cq) = {
281- let bw = aE()
282- let bK = fromBase58String(bw[r])
283- let cr = bw[s]
284- let cs = bw[t]
285- let ct = bw[w]
286- let cu = bw[x]
287- let bN = parseIntValue(bw[u])
288- let bO = parseIntValue(bw[v])
289- let bP = bw[q]
290- let bQ = valueOrErrorMessage(assetInfo(bK), "Wrong lp asset").quantity
291- let bT = if (cm)
292- then aY(cr)
293- else if (if (co)
294- then (cq == cr)
265+func cc (bE,bd,cd,ce,cf,cg,bH,ch,ci,cj,ck,cl) = {
266+ let bu = aB()
267+ let bI = fromBase58String(bu[q])
268+ let cm = bu[r]
269+ let cn = bu[s]
270+ let co = bu[v]
271+ let cp = bu[w]
272+ let cq = parseIntValue(bu[t])
273+ let cr = parseIntValue(bu[u])
274+ let bN = bu[p]
275+ let cs = valueOrErrorMessage(assetInfo(bI), "Wr lp as").quantity
276+ let bP = if (ch)
277+ then aV(cm)
278+ else if (if (cj)
279+ then (cl == cm)
295280 else false)
296- then (aY(cr) - cp)
297- else if (co)
298- then aY(cr)
299- else (aY(cr) - ci)
300- let bV = if (cm)
301- then aY(cs)
302- else if (if (co)
303- then (cq == cs)
281+ then (aV(cm) - ck)
282+ else if (cj)
283+ then aV(cm)
284+ else (aV(cm) - cd)
285+ let bR = if (ch)
286+ then aV(cn)
287+ else if (if (cj)
288+ then (cl == cn)
304289 else false)
305- then (aY(cs) - cp)
306- else if (co)
307- then aY(cs)
308- else (aY(cs) - ck)
309- let bS = if ((bN >= bO))
310- then bN
311- else bO
312- if ((bS == bS))
290+ then (aV(cn) - ck)
291+ else if (cj)
292+ then aV(cn)
293+ else (aV(cn) - cf)
294+ let ct = B(cd, cq)
295+ let cu = B(cf, cr)
296+ let cv = aX(cu, ct)
297+ let bQ = B(bP, cq)
298+ let bS = B(bR, cr)
299+ let cw = if ((cs == 0))
313300 then {
314- let cv = C(ci, bS)
315- let cw = C(ck, bS)
316- let cx = ba(cw, cv)
317- let bU = C(bT, bS)
318- let bW = C(bV, bS)
319- let cy = if ((bQ == 0))
320- then {
321- let bX = e
322- let cz = e
323- let cA = pow((cv * cw), 0, toBigInt(5), 1, 0, DOWN)
324- $Tuple5(F(cA, a), F(cv, bS), F(cw, bS), ba((bW + cw), (bU + cv)), cz)
301+ let bT = d
302+ let cx = d
303+ let by = pow((ct * cu), 0, toBigInt(5), 1, 0, DOWN)
304+ $Tuple5(E(by, a), E(ct, cq), E(cu, cr), aX((bS + cu), (bQ + ct)), cx)
305+ }
306+ else {
307+ let bT = aX(bS, bQ)
308+ let cy = fraction(L((bT - cv)), c, bT)
309+ let cx = B(bd, a)
310+ if (if ((bT != d))
311+ then (cy > cx)
312+ else false)
313+ then throw(((("Price slippage " + toString(cy)) + " > ") + toString(cx)))
314+ else {
315+ let cz = B(cs, a)
316+ let cA = fraction(ct, bT, c)
317+ let cB = fraction(cu, c, bT)
318+ let cC = if ((cA > cu))
319+ then $Tuple2(cB, cu)
320+ else $Tuple2(ct, cA)
321+ let cD = cC._1
322+ let cE = cC._2
323+ let by = fraction(cz, cE, bS)
324+ $Tuple5(E(by, a), E(cD, cq), E(cE, cr), bT, cx)
325325 }
326- else {
327- let bX = ba(bW, bU)
328- let cB = fraction(M((bX - cx)), c, bX)
329- let cz = C(ch, a)
330- if (if ((bX != e))
331- then (cB > cz)
332- else false)
333- then am(((("Price slippage " + toString(cB)) + " > ") + toString(cz)))
334- else {
335- let ca = C(bQ, a)
336- let cC = fraction(cv, bX, c)
337- let cD = fraction(cw, c, bX)
338- let cE = if ((cC > cw))
339- then $Tuple2(cD, cv)
340- else $Tuple2(cv, cC)
341- let cF = cE._1
342- let cG = cE._2
343- let cA = fraction(ca, cG, bW)
344- $Tuple5(F(cA, a), F(cF, bS), F(cG, bS), bX, cz)
345- }
346- }
347- let cH = cy._1
348- let cI = cy._2
349- let cJ = cy._3
350- let cK = F(cy._4, a)
351- let cL = F(cy._5, a)
352- let cM = if ((cH > 0))
353- then true
354- else am("LP <= 0")
355- if ((cM == cM))
356- then {
357- let cN = if (!(cn))
358- then 0
359- else cH
360- let cO = (ci - cI)
361- let cP = (ck - cJ)
362- let cQ = if (if (co)
363- then (cq == cr)
364- else false)
365- then $Tuple2(cp, 0)
366- else if (if (co)
367- then (cq == cs)
368- else false)
369- then $Tuple2(0, cp)
370- else $Tuple2(cI, cJ)
371- let cR = cQ._1
372- let cS = cQ._2
373- let cT = [IntegerEntry(Q(), cK), IntegerEntry(R(height, lastBlock.timestamp), cK), StringEntry(U(bJ, bG), aJ(cR, cS, cN, cK, ch, cL, height, lastBlock.timestamp, cO, cP))]
374- $Tuple13(cH, cN, cK, bT, bV, bQ, bK, bP, cT, cO, cP, cj, cl)
375- }
376- else throw("Strict value is not equal to itself.")
377326 }
378- else throw("Strict value is not equal to itself.")
327+ let cF = cw._1
328+ let cG = cw._2
329+ let cH = cw._3
330+ let bU = E(cw._4, a)
331+ let cI = E(cw._5, a)
332+ if ((0 >= cF))
333+ then throw("LP <= 0")
334+ else {
335+ let cJ = if (!(ci))
336+ then 0
337+ else cF
338+ let cK = (cd - cG)
339+ let cL = (cf - cH)
340+ let cM = if (if (cj)
341+ then (cl == cm)
342+ else false)
343+ then $Tuple2(ck, 0)
344+ else if (if (cj)
345+ then (cl == cn)
346+ else false)
347+ then $Tuple2(0, ck)
348+ else $Tuple2(cG, cH)
349+ let cN = cM._1
350+ let cO = cM._2
351+ let cP = [IntegerEntry(P(), bU), IntegerEntry(Q(height, lastBlock.timestamp), bU), StringEntry(T(bH, bE), aG(cN, cO, cJ, bU, bd, cI, height, lastBlock.timestamp, cK, cL))]
352+ $Tuple13(cF, cJ, bU, bP, bR, cs, bI, bN, cP, cK, cL, ce, cg)
353+ }
379354 }
380355
381356
382-func cU (cV) = {
383- let bw = aE()
384- let cW = bw[s]
385- let cX = bw[t]
386- let bP = parseIntValue(bw[q])
387- let bx = parseIntValue(bw[u])
388- let by = parseIntValue(bw[v])
389- let cY = aY(cW)
390- let cZ = aY(cX)
391- let bX = if ((cV.orderType == Buy))
392- then bn(bx, by, (cY + cV.amount), cZ)
393- else bn(bx, by, (cY - cV.amount), cZ)
394- let bY = F(bX, a)
395- if (if (if (aB())
357+func cQ (cR) = {
358+ let bu = aB()
359+ let cS = bu[r]
360+ let cT = bu[s]
361+ let bN = parseIntValue(bu[p])
362+ let bv = parseIntValue(bu[t])
363+ let bw = parseIntValue(bu[u])
364+ let cU = aV(cS)
365+ let cV = aV(cT)
366+ let bT = if ((cR.orderType == Buy))
367+ then bl(bv, bw, (cU + cR.amount), cV)
368+ else bl(bv, bw, (cU - cR.amount), cV)
369+ let bU = E(bT, a)
370+ if (if (if (az())
396371 then true
397- else (bP == n))
372+ else (bN == m))
398373 then true
399- else (bP == o))
400- then am("Admin blocked")
374+ else (bN == n))
375+ then throw("Admin blocked")
401376 else {
402- let da = cV.assetPair.amountAsset
403- let db = if ((da == unit))
377+ let cW = cR.assetPair.amountAsset
378+ let cX = if ((cW == unit))
404379 then "WAVES"
405- else toBase58String(value(da))
406- let dc = cV.assetPair.priceAsset
407- let dd = if ((dc == unit))
380+ else toBase58String(value(cW))
381+ let cY = cR.assetPair.priceAsset
382+ let cZ = if ((cY == unit))
408383 then "WAVES"
409- else toBase58String(value(dc))
410- if (if ((db != cW))
384+ else toBase58String(value(cY))
385+ if (if ((cX != cS))
411386 then true
412- else (dd != cX))
413- then am("Wr assets")
387+ else (cZ != cT))
388+ then throw("Wr assets")
414389 else {
415- let de = cV.price
416- let bO = fraction(a, by, bx)
417- let df = I(de, a, bO)
418- let dg = if ((cV.orderType == Buy))
419- then (bY >= df)
420- else (df >= bY)
390+ let da = cR.price
391+ let cr = fraction(a, bw, bv)
392+ let db = H(da, a, cr)
393+ let dc = if ((cR.orderType == Buy))
394+ then (bU >= db)
395+ else (db >= bU)
421396 true
422397 }
423398 }
424399 }
425400
426401
427-func dh (di) = {
428- let dj = if ((size(di.payments) == 1))
402+func dd (de) = if ((size(de.payments) != 1))
403+ then throw("1 pmnt exp")
404+ else {
405+ let df = value(de.payments[0])
406+ let bF = value(df.assetId)
407+ let ck = df.amount
408+ let cw = bD(toBase58String(de.transactionId), toBase58String(bF), ck, de.caller)
409+ let bZ = cw._1
410+ let ca = cw._2
411+ let bN = parseIntValue(cw._9)
412+ let cb = cw._10
413+ if (if (az())
414+ then true
415+ else (bN == n))
416+ then throw(("Admin blocked: " + toString(bN)))
417+ else $Tuple5(bZ, ca, ck, bF, cb)
418+ }
419+
420+
421+func dg (ac,V,dh,di,bd,ci,cj,ck,cl) = {
422+ let cw = cc(V, bd, value(dh).amount, value(dh).assetId, value(di).amount, value(di).assetId, ac, false, ci, cj, ck, cl)
423+ let bN = parseIntValue(cw._8)
424+ if (if (if (az())
429425 then true
430- else am("1 payment expected")
431- if ((dj == dj))
432- then {
433- let dk = value(di.payments[0])
434- let bH = value(dk.assetId)
435- let cp = dk.amount
436- let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
437- let cd = cy._1
438- let ce = cy._2
439- let bP = parseIntValue(cy._9)
440- let cf = cy._10
441- if (if (aB())
442- then true
443- else (bP == o))
444- then am(("Admin blocked: " + toString(bP)))
445- else $Tuple5(cd, ce, cp, bH, cf)
446- }
447- else throw("Strict value is not equal to itself.")
426+ else (bN == l))
427+ then true
428+ else (bN == n))
429+ then throw(("Blocked:" + toString(bN)))
430+ else cw
448431 }
449432
450433
451-func dl (dm,W,dn,do,bg,cn,co,cp,cq) = {
452- let cy = cg(W, bg, value(dn).amount, value(dn).assetId, value(do).amount, value(do).assetId, dm, false, cn, co, cp, cq)
453- let bP = parseIntValue(cy._8)
454- if (if (if (aB())
455- then true
456- else (bP == m))
457- then true
458- else (bP == o))
459- then am(("Blocked:" + toString(bP)))
460- else cy
461- }
462-
463-
464-func dp (dq) = {
465- let dr = fraction(dq, ad, d)
466- $Tuple2((dq - dr), dr)
467- }
468-
469-
470-func ds () = {
471- let at = getString(O())
472- if ($isInstanceOf(at, "String"))
434+func dj () = {
435+ let ar = getString(N())
436+ if ($isInstanceOf(ar, "String"))
473437 then {
474- let dt = at
475- fromBase58String(dt)
438+ let dk = ar
439+ fromBase58String(dk)
476440 }
477- else if ($isInstanceOf(at, "Unit"))
441+ else if ($isInstanceOf(ar, "Unit"))
478442 then unit
479443 else throw("Match error")
480444 }
481445
482446
483-func du () = {
484- let at = getString(P())
485- if ($isInstanceOf(at, "String"))
447+func dl () = {
448+ let ar = getString(O())
449+ if ($isInstanceOf(ar, "String"))
486450 then {
487- let dt = at
488- fromBase58String(dt)
451+ let dk = ar
452+ fromBase58String(dk)
489453 }
490- else if ($isInstanceOf(at, "Unit"))
454+ else if ($isInstanceOf(ar, "Unit"))
491455 then unit
492456 else throw("Match error")
493457 }
494458
495459
496-let dv = am("Permission denied")
460+let dm = throw("Permission denied")
497461
498-func dw (di) = {
499- let at = ds()
500- if ($isInstanceOf(at, "ByteVector"))
462+func dn (de) = {
463+ let ar = dj()
464+ if ($isInstanceOf(ar, "ByteVector"))
501465 then {
502- let dx = at
503- if ((di.callerPublicKey == dx))
466+ let do = ar
467+ if ((de.callerPublicKey == do))
504468 then true
505- else dv
469+ else dm
506470 }
507- else if ($isInstanceOf(at, "Unit"))
508- then if ((di.caller == this))
471+ else if ($isInstanceOf(ar, "Unit"))
472+ then if ((de.caller == this))
509473 then true
510- else dv
474+ else dm
511475 else throw("Match error")
512476 }
513477
514478
515-@Callable(di)
516-func constructor (az) = {
517- let dy = dw(di)
518- if ((dy == dy))
519- then [StringEntry(N(), az)]
479+@Callable(de)
480+func constructor (M) = {
481+ let dp = dn(de)
482+ if ((dp == dp))
483+ then [StringEntry(M(), M)]
520484 else throw("Strict value is not equal to itself.")
521485 }
522486
523487
524488
525-@Callable(di)
526-func setManager (dz) = {
527- let dy = dw(di)
528- if ((dy == dy))
489+@Callable(de)
490+func setManager (dq) = {
491+ let dp = dn(de)
492+ if ((dp == dp))
529493 then {
530- let dA = fromBase58String(dz)
531- if ((dA == dA))
532- then [StringEntry(P(), dz)]
494+ let dr = fromBase58String(dq)
495+ if ((dr == dr))
496+ then [StringEntry(O(), dq)]
533497 else throw("Strict value is not equal to itself.")
534498 }
535499 else throw("Strict value is not equal to itself.")
537501
538502
539503
540-@Callable(di)
504+@Callable(de)
541505 func confirmManager () = {
542- let dB = du()
543- let dC = if (isDefined(dB))
506+ let bC = dl()
507+ let ds = if (isDefined(bC))
544508 then true
545- else am("No pending manager")
546- if ((dC == dC))
509+ else throw("No pending manager")
510+ if ((ds == ds))
547511 then {
548- let dD = if ((di.callerPublicKey == value(dB)))
512+ let dt = if ((de.callerPublicKey == value(bC)))
549513 then true
550- else am("You are not pending manager")
551- if ((dD == dD))
552- then [StringEntry(O(), toBase58String(value(dB))), DeleteEntry(P())]
514+ else throw("You are not pending manager")
515+ if ((dt == dt))
516+ then [StringEntry(N(), toBase58String(value(bC))), DeleteEntry(O())]
553517 else throw("Strict value is not equal to itself.")
554518 }
555519 else throw("Strict value is not equal to itself.")
557521
558522
559523
560-@Callable(di)
561-func put (bg,dE) = {
562- let dF = aI()
563- let dG = valueOrErrorMessage(addressFromString(dF[y]), "Wrong staking contract")
564- let dH = valueOrErrorMessage(addressFromString(dF[z]), "Wrogn slippage contract")
565- let dI = if ((bg >= 0))
566- then true
567- else am("wrong slippage")
568- if ((dI == dI))
569- then {
570- let dJ = if ((size(di.payments) == 2))
571- then true
572- else am("2 payments expected")
573- if ((dJ == dJ))
574- then {
575- let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], bg, true, false, 0, "")
576- let cN = dK._2
577- let bK = dK._7
578- let cf = dK._9
579- let cO = dK._10
580- let cP = dK._11
581- let bL = dK._12
582- let bM = dK._13
583- let cy = invoke(az, "emit", [cN], nil)
584- if ((cy == cy))
585- then {
586- let dL = {
587- let at = cy
588- if ($isInstanceOf(at, "Address"))
524+@Callable(de)
525+func put (du,dv) = {
526+ let dw = aF()
527+ let dx = valueOrErrorMessage(addressFromString(dw[x]), "Wr st addr")
528+ let dy = valueOrErrorMessage(addressFromString(dw[y]), "Wr sl addr")
529+ if ((0 > du))
530+ then throw("Wrong slippage")
531+ else if ((size(de.payments) != 2))
532+ then throw("2 pmnts expd")
533+ else {
534+ let dz = dg(toString(de.caller), toBase58String(de.transactionId), AttachedPayment(value(de.payments[0]).assetId, value(de.payments[0]).amount), de.payments[1], du, true, false, 0, "")
535+ let cJ = dz._2
536+ let dA = dz._7
537+ let cb = dz._9
538+ let cK = dz._10
539+ let cL = dz._11
540+ let bJ = dz._12
541+ let bK = dz._13
542+ let cw = invoke(ax, "emit", [cJ], nil)
543+ if ((cw == cw))
544+ then {
545+ let dB = {
546+ let ar = cw
547+ if ($isInstanceOf(ar, "Address"))
548+ then {
549+ let dC = ar
550+ invoke(dC, "emit", [cJ], nil)
551+ }
552+ else unit
553+ }
554+ if ((dB == dB))
555+ then {
556+ let dD = if ((cK > 0))
557+ then invoke(dy, "put", nil, [AttachedPayment(bJ, cK)])
558+ else nil
559+ if ((dD == dD))
589560 then {
590- let dM = at
591- invoke(dM, "emit", [cN], nil)
561+ let dE = if ((cL > 0))
562+ then invoke(dy, "put", nil, [AttachedPayment(bK, cL)])
563+ else nil
564+ if ((dE == dE))
565+ then {
566+ let dF = if (dv)
567+ then {
568+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
569+ if ((dG == dG))
570+ then nil
571+ else throw("Strict value is not equal to itself.")
572+ }
573+ else [ScriptTransfer(de.caller, cJ, dA)]
574+ (cb ++ dF)
575+ }
576+ else throw("Strict value is not equal to itself.")
592577 }
593- else unit
578+ else throw("Strict value is not equal to itself.")
594579 }
595- if ((dL == dL))
580+ else throw("Strict value is not equal to itself.")
581+ }
582+ else throw("Strict value is not equal to itself.")
583+ }
584+ }
585+
586+
587+
588+@Callable(de)
589+func putOneTkn (dH,dI,dJ,bd,dv) = {
590+ let bu = aF()
591+ let dx = valueOrErrorMessage(addressFromString(bu[x]), "Wr st addr")
592+ let dy = valueOrErrorMessage(addressFromString(bu[y]), "Wr sl addr")
593+ let dK = valueOrErrorMessage(addressFromString(bu[z]), "Wr gwx addr")
594+ let dL = aB()
595+ let bJ = dL[r]
596+ let bK = dL[s]
597+ let bL = parseIntValue(dL[t])
598+ let bM = parseIntValue(dL[u])
599+ let dM = valueOrElse(getString(this, aa()), "")
600+ let bH = if ((dM == toString(de.caller)))
601+ then de.originCaller
602+ else de.caller
603+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
604+ let dO = reentrantInvoke(dN, "ensureCanPutOneTkn", [toString(bH)], nil)
605+ if ((dO == dO))
606+ then if (if (if (if ((0 >= bd))
607+ then true
608+ else (0 >= dH))
609+ then true
610+ else (0 >= dI))
611+ then true
612+ else (0 >= dJ))
613+ then throw("Wrong params")
614+ else if ((size(de.payments) != 1))
615+ then throw("1 pmnt expd")
616+ else {
617+ let df = value(de.payments[0])
618+ let bF = toBase58String(value(df.assetId))
619+ let ck = df.amount
620+ if (if (if ((dH > ck))
621+ then true
622+ else (dI > ck))
623+ then true
624+ else (10000000 > ck))
625+ then throw("Wrong pmt amt")
626+ else {
627+ let bP = aV(bJ)
628+ let bR = aV(bK)
629+ let dP = if ((bF == bJ))
630+ then $Tuple6((bP - ck), bR, (ck - dH), dI, 0, 0)
631+ else if ((bF == bK))
632+ then $Tuple6(bP, (bR - ck), 0, 0, (ck - dI), dH)
633+ else throw("wrong pmtAssetId")
634+ let dQ = dP._1
635+ let dR = dP._2
636+ let dS = dP._3
637+ let dT = dP._4
638+ let dU = dP._5
639+ let dV = dP._6
640+ let bi = invoke(dK, "calcD", [toString(dQ), toString(dR), ay, g, h], nil)
641+ let bh = invoke(dK, "calcD", [toString(toBigInt(((dQ + dS) - dV))), toString(toBigInt(((dR + dU) - dT))), ay, g, h], nil)
642+ let dW = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
643+ if ((dW == dW))
596644 then {
597- let dN = if ((cO > 0))
598- then invoke(dH, "put", nil, [AttachedPayment(bL, cO)])
599- else nil
600- if ((dN == dN))
645+ let dX = dg(toString(de.caller), toBase58String(de.transactionId), AttachedPayment(fromBase58String(bJ), dH), AttachedPayment(fromBase58String(bK), dI), bd, true, true, ck, bF)
646+ let dY = dX._2
647+ let dA = dX._7
648+ let cb = dX._9
649+ let cK = dX._10
650+ let cL = dX._11
651+ let dZ = ba(toBigInt(dY), toBigInt(dJ), toBigInt(bd))
652+ let cJ = toInt(dZ._2)
653+ let dz = invoke(ax, "emit", [cJ], nil)
654+ if ((dz == dz))
601655 then {
602- let dO = if ((cP > 0))
603- then invoke(dH, "put", nil, [AttachedPayment(bM, cP)])
604- else nil
605- if ((dO == dO))
656+ let dB = {
657+ let ar = dz
658+ if ($isInstanceOf(ar, "Address"))
659+ then {
660+ let dC = ar
661+ invoke(dC, "emit", [cJ], nil)
662+ }
663+ else unit
664+ }
665+ if ((dB == dB))
606666 then {
607- let dP = if (dE)
667+ let dD = if ((cK > 0))
668+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bJ), cK)])
669+ else nil
670+ if ((dD == dD))
608671 then {
609- let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
610- if ((dQ == dQ))
611- then nil
672+ let dE = if ((cL > 0))
673+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bK), cL)])
674+ else nil
675+ if ((dE == dE))
676+ then {
677+ let dF = if (dv)
678+ then {
679+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
680+ if ((dG == dG))
681+ then nil
682+ else throw("Strict value is not equal to itself.")
683+ }
684+ else [ScriptTransfer(de.caller, cJ, dA)]
685+ (cb ++ dF)
686+ }
612687 else throw("Strict value is not equal to itself.")
613688 }
614- else [ScriptTransfer(di.caller, cN, bK)]
615- (cf ++ dP)
689+ else throw("Strict value is not equal to itself.")
616690 }
617691 else throw("Strict value is not equal to itself.")
618692 }
619693 else throw("Strict value is not equal to itself.")
620694 }
695+ else throw("Strict value is not equal to itself.")
696+ }
697+ }
698+ else throw("Strict value is not equal to itself.")
699+ }
700+
701+
702+
703+@Callable(de)
704+func putForFree (ea) = if ((0 > ea))
705+ then throw("Wrong slpg")
706+ else if ((size(de.payments) != 2))
707+ then throw("2 pmnts expd")
708+ else {
709+ let dX = dg(toString(de.caller), toBase58String(de.transactionId), AttachedPayment(value(de.payments[0]).assetId, value(de.payments[0]).amount), de.payments[1], ea, false, false, 0, "")
710+ dX._9
711+ }
712+
713+
714+
715+@Callable(de)
716+func get () = {
717+ let cw = dd(de)
718+ let eb = cw._1
719+ let ca = cw._2
720+ let ck = cw._3
721+ let bF = cw._4
722+ let cb = cw._5
723+ let ec = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
724+ if ((ec == ec))
725+ then cb
726+ else throw("Strict value is not equal to itself.")
727+ }
728+
729+
730+
731+@Callable(de)
732+func getOneTkn (ed,ee,ef,eg,bd) = if ((size(de.payments) != 1))
733+ then throw("1 pmnt expd")
734+ else {
735+ let bu = aB()
736+ let bI = bu[q]
737+ let bJ = bu[r]
738+ let bK = bu[s]
739+ let bL = parseIntValue(bu[t])
740+ let bM = parseIntValue(bu[u])
741+ let bN = bu[p]
742+ let dw = aF()
743+ let dK = valueOrErrorMessage(addressFromString(dw[z]), "Wr sl addr")
744+ let df = value(de.payments[0])
745+ let dM = valueOrElse(getString(this, aa()), "")
746+ let bH = if ((dM == toString(de.caller)))
747+ then de.originCaller
748+ else de.caller
749+ let bE = toBase58String(de.transactionId)
750+ let bF = value(df.assetId)
751+ let ck = df.amount
752+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
753+ let dO = reentrantInvoke(dN, "ensureCanGetOneTkn", [toString(bH)], nil)
754+ if ((dO == dO))
755+ then if ((1000000000 > ck))
756+ then throw("Min pmt 10 LP")
757+ else if (if (if ((0 > bd))
758+ then true
759+ else (0 > ed))
760+ then true
761+ else (0 > ef))
762+ then throw("Wrong params")
763+ else if ((bI != toBase58String(bF)))
764+ then throw("Wrong LP")
765+ else {
766+ let cw = bD(toBase58String(de.transactionId), toBase58String(bF), ck, de.caller)
767+ let eh = cw._1
768+ let ei = cw._2
769+ let bP = aV(bJ)
770+ let bR = aV(bK)
771+ let ej = if ((eg == bJ))
772+ then $Tuple7((bP - eh), (bR - ei), ed, ei, 0, 0, (eh + ed))
773+ else if ((eg == bK))
774+ then $Tuple7((bP - eh), (bR - ei), 0, 0, ed, eh, (ei + ed))
775+ else throw("wrong outAssetId")
776+ let dQ = ej._1
777+ let dR = ej._2
778+ let dS = ej._3
779+ let dT = ej._4
780+ let dU = ej._5
781+ let dV = ej._6
782+ let ek = ej._7
783+ if (if ((0 > dS))
784+ then true
785+ else (0 > dU))
786+ then throw("Wrong calc")
787+ else {
788+ let bi = invoke(dK, "calcD", [toString(dQ), toString(dR), ay, g, h], nil)
789+ let bh = invoke(dK, "calcD", [toString(((dQ - dS) + dV)), toString(((dR + dT) - dU)), ay, g, h], nil)
790+ let dW = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
791+ if ((dW == dW))
792+ then {
793+ let el = ba(toBigInt(ek), toBigInt(ef), toBigInt(bd))
794+ if ((el == el))
795+ then {
796+ let em = if ((eg == bJ))
797+ then $Tuple2(toInt(el._2), 0)
798+ else $Tuple2(0, toInt(el._2))
799+ let en = em._1
800+ let eo = em._2
801+ let ep = aX(B(bR, bM), B(bP, bL))
802+ let eq = E(ep, a)
803+ let cb = [ScriptTransfer(bH, (en + eo), if ((eg == "WAVES"))
804+ then unit
805+ else fromBase58String(eg)), StringEntry(W(toString(bH), bE), aR(en, eo, ck, eq, height, lastBlock.timestamp)), IntegerEntry(P(), eq), IntegerEntry(Q(height, lastBlock.timestamp), eq)]
806+ if ((cb == cb))
807+ then {
808+ let er = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
809+ if ((er == er))
810+ then cb
811+ else throw("Strict value is not equal to itself.")
812+ }
813+ else throw("Strict value is not equal to itself.")
814+ }
815+ else throw("Strict value is not equal to itself.")
816+ }
817+ else throw("Strict value is not equal to itself.")
818+ }
819+ }
820+ else throw("Strict value is not equal to itself.")
821+ }
822+
823+
824+
825+@Callable(de)
826+func getNoLess (es,et) = {
827+ let cw = dd(de)
828+ let bZ = cw._1
829+ let ca = cw._2
830+ let ck = cw._3
831+ let bF = cw._4
832+ let cb = cw._5
833+ if ((es > bZ))
834+ then throw(((("Failed: " + toString(bZ)) + " < ") + toString(es)))
835+ else if ((et > ca))
836+ then throw(((("Failed: " + toString(ca)) + " < ") + toString(et)))
837+ else {
838+ let eu = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
839+ if ((eu == eu))
840+ then cb
841+ else throw("Strict value is not equal to itself.")
842+ }
843+ }
844+
845+
846+
847+@Callable(de)
848+func unstakeAndGet (ev) = {
849+ let ew = if ((size(de.payments) != 0))
850+ then throw("No pmnts expd")
851+ else true
852+ if ((ew == ew))
853+ then {
854+ let bu = aB()
855+ let ex = aF()
856+ let dA = fromBase58String(bu[q])
857+ let ey = valueOrErrorMessage(addressFromString(ex[x]), "Wr st addr")
858+ let ez = invoke(ey, "unstake", [toBase58String(dA), ev], nil)
859+ if ((ez == ez))
860+ then {
861+ let cw = bD(toBase58String(de.transactionId), toBase58String(dA), ev, de.caller)
862+ let bN = parseIntValue(cw._9)
863+ let cb = cw._10
864+ let eA = if (if (az())
865+ then true
866+ else (bN == n))
867+ then throw(("Blocked: " + toString(bN)))
868+ else true
869+ if ((eA == eA))
870+ then {
871+ let eB = invoke(ax, "burn", [ev], [AttachedPayment(dA, ev)])
872+ if ((eB == eB))
873+ then cb
621874 else throw("Strict value is not equal to itself.")
622875 }
623876 else throw("Strict value is not equal to itself.")
629882
630883
631884
632-@Callable(di)
633-func putOneTkn (dR,dS,bf,bg,dE) = {
634- let bw = aI()
635- let dG = valueOrErrorMessage(addressFromString(bw[y]), "Wrong staking contract")
636- let dH = valueOrErrorMessage(addressFromString(bw[z]), "Wrong slippage contract")
637- let dT = valueOrErrorMessage(addressFromString(bw[A]), "Wrong gwx reward contract")
638- let dU = aE()
639- let bL = dU[s]
640- let bM = dU[t]
641- let bN = parseIntValue(dU[u])
642- let bO = parseIntValue(dU[v])
643- let dV = valueOrElse(getString(this, ab()), "")
644- let bJ = if ((dV == toString(di.caller)))
645- then di.originCaller
646- else di.caller
647- if (if (if (if ((0 >= bg))
648- then true
649- else (0 >= dR))
650- then true
651- else (0 >= dS))
652- then true
653- else (0 >= bf))
654- then am("Wrong params")
655- else if ((size(di.payments) != 1))
656- then am("1 payment expected")
657- else {
658- let dk = value(di.payments[0])
659- let bH = toBase58String(value(dk.assetId))
660- let dW = dk.amount
661- let dX = dp(dW)
662- let cp = dX._1
663- let dY = dX._2
664- if (if (if ((dR > cp))
665- then true
666- else (dS > cp))
667- then true
668- else (10000000 > cp))
669- then am("wrong payment amount")
670- else {
671- let bT = aY(bL)
672- let bV = aY(bM)
673- let dZ = if ((bH == bL))
674- then $Tuple6((bT - cp), bV, (cp - dR), dS, 0, 0)
675- else if ((bH == bM))
676- then $Tuple6(bT, (bV - cp), 0, 0, (cp - dS), dR)
677- else am("wrong paymentAssetId")
678- let ea = dZ._1
679- let eb = dZ._2
680- let ec = dZ._3
681- let ed = dZ._4
682- let ee = dZ._5
683- let ef = dZ._6
684- let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
685- let bk = invoke(dT, "calcD", [toString(toBigInt(((ea + ec) - ef))), toString(toBigInt(((eb + ee) - ed))), aA, h, i], nil)
686- let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
687- if ((eg == eg))
688- then {
689- let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(fromBase58String(bL), dR), AttachedPayment(fromBase58String(bM), dS), bg, true, true, cp, bH)
690- let be = dK._2
691- let bK = dK._7
692- let cf = dK._9
693- let cO = dK._10
694- let cP = dK._11
695- let eh = bd(toBigInt(be), toBigInt(bf), toBigInt(bg))
696- let cN = toInt(eh._2)
697- let ei = invoke(az, "emit", [cN], nil)
698- if ((ei == ei))
699- then {
700- let dL = {
701- let at = ei
702- if ($isInstanceOf(at, "Address"))
703- then {
704- let dM = at
705- invoke(dM, "emit", [cN], nil)
706- }
707- else unit
708- }
709- if ((dL == dL))
710- then {
711- let dN = if ((cO > 0))
712- then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bL), cO)])
713- else nil
714- if ((dN == dN))
715- then {
716- let dO = if ((cP > 0))
717- then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bM), cP)])
718- else nil
719- if ((dO == dO))
720- then {
721- let dP = if (dE)
722- then {
723- let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
724- if ((dQ == dQ))
725- then nil
726- else throw("Strict value is not equal to itself.")
727- }
728- else [ScriptTransfer(di.caller, cN, bK)]
729- let ej = if ((dY > 0))
730- then [ScriptTransfer(aD, dY, fromBase58String(bH))]
731- else nil
732- ((cf ++ dP) ++ ej)
733- }
734- else throw("Strict value is not equal to itself.")
735- }
736- else throw("Strict value is not equal to itself.")
737- }
738- else throw("Strict value is not equal to itself.")
739- }
740- else throw("Strict value is not equal to itself.")
741- }
742- else throw("Strict value is not equal to itself.")
743- }
744- }
885+@Callable(de)
886+func activate (eC,eD) = if ((toString(de.caller) != toString(ax)))
887+ then throw("denied")
888+ else $Tuple2([StringEntry(X(), eC), StringEntry(Y(), eD)], "success")
889+
890+
891+
892+@Callable(de)
893+func setS (eE,eA) = if ((toString(de.caller) != at(this, aa())))
894+ then dm
895+ else [StringEntry(eE, eA)]
896+
897+
898+
899+@Callable(de)
900+func setI (eE,eA) = if ((toString(de.caller) != at(this, aa())))
901+ then dm
902+ else [IntegerEntry(eE, eA)]
903+
904+
905+
906+@Callable(de)
907+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
908+
909+
910+
911+@Callable(de)
912+func getAccBalanceWrapperREADONLY (aW) = $Tuple2(nil, aV(aW))
913+
914+
915+
916+@Callable(de)
917+func calcPricesWrapperREADONLY (bo,bp,bt) = {
918+ let eF = bs(bo, bp, bt)
919+ $Tuple2(nil, [toString(eF[0]), toString(eF[1]), toString(eF[2])])
745920 }
746921
747922
748923
749-@Callable(di)
750-func putForFree (ek) = if ((0 > ek))
751- then am("wrong slippage")
752- else if ((size(di.payments) != 2))
753- then am("2 payments expected")
754- else {
755- let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], ek, false, false, 0, "")
756- dK._9
757- }
924+@Callable(de)
925+func fromX18WrapperREADONLY (F,eG) = $Tuple2(nil, E(parseBigIntValue(F), eG))
758926
759927
760928
761-@Callable(di)
762-func get () = {
763- let cy = dh(di)
764- let el = cy._1
765- let ce = cy._2
766- let cp = cy._3
767- let bH = cy._4
768- let cf = cy._5
769- let em = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
770- if ((em == em))
771- then cf
772- else throw("Strict value is not equal to itself.")
929+@Callable(de)
930+func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
931+
932+
933+
934+@Callable(de)
935+func calcPriceBigIntWrapperREADONLY (aY,aZ) = $Tuple2(nil, toString(aX(parseBigIntValue(aY), parseBigIntValue(aZ))))
936+
937+
938+
939+@Callable(de)
940+func estimatePutOperationWrapperREADONLY (bE,bd,cd,ce,cf,cg,eH,ch,ci) = $Tuple2(nil, cc(bE, bd, cd, ce, cf, cg, eH, ch, ci, false, 0, ""))
941+
942+
943+
944+@Callable(de)
945+func estimateGetOperationWrapperREADONLY (bE,eI,bG,eH) = {
946+ let cw = bD(bE, eI, bG, addressFromStringValue(eH))
947+ $Tuple2(nil, $Tuple10(cw._1, cw._2, cw._3, cw._4, cw._5, cw._6, cw._7, toString(cw._8), cw._9, cw._10))
773948 }
774949
775950
776-
777-@Callable(di)
778-func getOneTkn (en,eo,ep,eq,bg) = if ((size(di.payments) != 1))
779- then am("1 payment expected")
780- else {
781- let bw = aE()
782- let bK = bw[r]
783- let bL = bw[s]
784- let bM = bw[t]
785- let bN = parseIntValue(bw[u])
786- let bO = parseIntValue(bw[v])
787- let bP = bw[q]
788- let dF = aI()
789- let dT = valueOrErrorMessage(addressFromString(dF[A]), "Wrong gwxRewardContract address")
790- let dk = value(di.payments[0])
791- let dV = valueOrElse(getString(this, ab()), "")
792- let bJ = if ((dV == toString(di.caller)))
793- then di.originCaller
794- else di.caller
795- let bG = toBase58String(di.transactionId)
796- let bH = value(dk.assetId)
797- let cp = dk.amount
798- if ((1000000000 > cp))
799- then am("Min payment 10 LP")
800- else if (if (if ((0 > bg))
801- then true
802- else (0 > en))
803- then true
804- else (0 > ep))
805- then am("Wrong params")
806- else if ((bK != toBase58String(bH)))
807- then am("Wrong LP")
808- else {
809- let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
810- let er = cy._1
811- let es = cy._2
812- let bT = aY(bL)
813- let bV = aY(bM)
814- let et = if ((eq == bL))
815- then $Tuple7((bT - er), (bV - es), en, es, 0, 0, (er + en))
816- else if ((eq == bM))
817- then $Tuple7((bT - er), (bV - es), 0, 0, en, er, (es + en))
818- else am("wrong outAssetId")
819- let ea = et._1
820- let eb = et._2
821- let ec = et._3
822- let ed = et._4
823- let ee = et._5
824- let ef = et._6
825- let eu = et._7
826- if (if ((0 > ec))
827- then true
828- else (0 > ee))
829- then am("Wrong calc")
830- else {
831- let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
832- let bk = invoke(dT, "calcD", [toString(((ea - ec) + ef)), toString(((eb + ed) - ee)), aA, h, i], nil)
833- let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
834- if ((eg == eg))
835- then {
836- let ev = bd(toBigInt(eu), toBigInt(ep), toBigInt(bg))
837- if ((ev == ev))
838- then {
839- let ew = if ((eq == bL))
840- then $Tuple2(toInt(ev._2), 0)
841- else $Tuple2(0, toInt(ev._2))
842- let ex = ew._1
843- let ey = ew._2
844- let ez = (ex + ey)
845- let eA = dp(ez)
846- let eB = eA._1
847- let dY = eA._2
848- let eC = if ((eq == "WAVES"))
849- then unit
850- else fromBase58String(eq)
851- let ej = if ((dY > 0))
852- then [ScriptTransfer(aD, dY, eC)]
853- else nil
854- let bS = if ((bN >= bO))
855- then bN
856- else bO
857- if ((bS == bS))
858- then {
859- let eD = ba(C(bV, bS), C(bT, bS))
860- let eE = F(eD, a)
861- let cf = [ScriptTransfer(bJ, eB, eC), StringEntry(X(toString(bJ), bG), aU(ex, ey, cp, eE, height, lastBlock.timestamp)), IntegerEntry(Q(), eE), IntegerEntry(R(height, lastBlock.timestamp), eE)]
862- if ((cf == cf))
863- then {
864- let eF = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
865- if ((eF == eF))
866- then (cf ++ ej)
867- else throw("Strict value is not equal to itself.")
868- }
869- else throw("Strict value is not equal to itself.")
870- }
871- else throw("Strict value is not equal to itself.")
872- }
873- else throw("Strict value is not equal to itself.")
874- }
875- else throw("Strict value is not equal to itself.")
876- }
877- }
878- }
879-
880-
881-
882-@Callable(di)
883-func getNoLess (eG,eH) = {
884- let cy = dh(di)
885- let cd = cy._1
886- let ce = cy._2
887- let cp = cy._3
888- let bH = cy._4
889- let cf = cy._5
890- let eI = if ((cd >= eG))
891- then true
892- else am(((("Failed: " + toString(cd)) + " < ") + toString(eG)))
893- if ((eI == eI))
951+@Verifier(eJ)
952+func eK () = {
953+ let ar = eJ
954+ if ($isInstanceOf(ar, "Order"))
894955 then {
895- let eJ = if ((ce >= eH))
896- then true
897- else am(((("Failed: " + toString(ce)) + " < ") + toString(eH)))
898- if ((eJ == eJ))
899- then {
900- let eK = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
901- if ((eK == eK))
902- then cf
903- else throw("Strict value is not equal to itself.")
904- }
905- else throw("Strict value is not equal to itself.")
906- }
907- else throw("Strict value is not equal to itself.")
908- }
909-
910-
911-
912-@Callable(di)
913-func unstakeAndGet (dq) = {
914- let dj = if ((size(di.payments) != 0))
915- then am("no payments expected")
916- else true
917- if ((dj == dj))
918- then {
919- let bw = aE()
920- let eL = aI()
921- let bK = fromBase58String(bw[r])
922- let eM = valueOrErrorMessage(addressFromString(eL[y]), "wrong")
923- let eN = invoke(eM, "unstake", [toBase58String(bK), dq], nil)
924- if ((eN == eN))
925- then {
926- let cy = bF(toBase58String(di.transactionId), toBase58String(bK), dq, di.caller)
927- let bP = parseIntValue(cy._9)
928- let cf = cy._10
929- let eO = if (if (aB())
930- then true
931- else (bP == o))
932- then am(("Blocked: " + toString(bP)))
933- else true
934- if ((eO == eO))
935- then {
936- let eP = invoke(az, "burn", [dq], [AttachedPayment(bK, dq)])
937- if ((eP == eP))
938- then cf
939- else throw("Strict value is not equal to itself.")
940- }
941- else throw("Strict value is not equal to itself.")
942- }
943- else throw("Strict value is not equal to itself.")
944- }
945- else throw("Strict value is not equal to itself.")
946- }
947-
948-
949-
950-@Callable(di)
951-func activate (eQ,eR) = if ((toString(di.caller) != toString(az)))
952- then am("denied")
953- else $Tuple2([StringEntry(Y(), eQ), StringEntry(Z(), eR)], "success")
954-
955-
956-
957-@Callable(di)
958-func setS (eS,eO) = if ((toString(di.caller) != av(this, ab())))
959- then dv
960- else [StringEntry(eS, eO)]
961-
962-
963-
964-@Callable(di)
965-func setI (eS,eO) = if ((toString(di.caller) != av(this, ab())))
966- then dv
967- else [IntegerEntry(eS, eO)]
968-
969-
970-
971-@Callable(di)
972-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aE())
973-
974-
975-
976-@Callable(di)
977-func getAccBalanceWrapperREADONLY (aZ) = $Tuple2(nil, aY(aZ))
978-
979-
980-
981-@Callable(di)
982-func calcPricesWrapperREADONLY (bq,br,bv) = {
983- let eT = bu(bq, br, bv)
984- $Tuple2(nil, [toString(eT[0]), toString(eT[1]), toString(eT[2])])
985- }
986-
987-
988-
989-@Callable(di)
990-func fromX18WrapperREADONLY (G,eU) = $Tuple2(nil, F(parseBigIntValue(G), eU))
991-
992-
993-
994-@Callable(di)
995-func toX18WrapperREADONLY (D,E) = $Tuple2(nil, toString(C(D, E)))
996-
997-
998-
999-@Callable(di)
1000-func calcPriceBigIntWrapperREADONLY (bb,bc) = $Tuple2(nil, toString(ba(parseBigIntValue(bb), parseBigIntValue(bc))))
1001-
1002-
1003-
1004-@Callable(di)
1005-func estimatePutOperationWrapperREADONLY (bG,bg,ci,eV,ck,eW,eX,cm,cn) = $Tuple2(nil, cg(bG, bg, ci, eV, ck, eW, eX, cm, cn, false, 0, ""))
1006-
1007-
1008-
1009-@Callable(di)
1010-func estimateGetOperationWrapperREADONLY (bG,eY,bI,eX) = {
1011- let cy = bF(bG, eY, bI, addressFromStringValue(eX))
1012- $Tuple2(nil, $Tuple10(cy._1, cy._2, cy._3, cy._4, cy._5, cy._6, cy._7, toString(cy._8), cy._9, cy._10))
1013- }
1014-
1015-
1016-@Verifier(eZ)
1017-func fa () = {
1018- let at = eZ
1019- if ($isInstanceOf(at, "Order"))
1020- then {
1021- let cV = at
1022- let fb = aC()
1023- let ap = cU(cV)
1024- let fc = sigVerify(cV.bodyBytes, cV.proofs[0], cV.senderPublicKey)
1025- let fd = sigVerify(cV.bodyBytes, cV.proofs[1], fb)
1026- if (if (if (ap)
1027- then fc
956+ let cR = ar
957+ let eL = aA()
958+ let an = cQ(cR)
959+ let eM = sigVerify(cR.bodyBytes, cR.proofs[0], cR.senderPublicKey)
960+ let eN = sigVerify(cR.bodyBytes, cR.proofs[1], eL)
961+ if (if (if (an)
962+ then eM
1028963 else false)
1029- then fd
964+ then eN
1030965 else false)
1031966 then true
1032- else ao(ap, fc, fd)
967+ else am(an, eM, eN)
1033968 }
1034969 else {
1035- let fe = {
1036- let ff = ds()
1037- if ($isInstanceOf(ff, "ByteVector"))
970+ let eO = {
971+ let eP = dj()
972+ if ($isInstanceOf(eP, "ByteVector"))
1038973 then {
1039- let dx = ff
1040- dx
974+ let do = eP
975+ do
1041976 }
1042- else if ($isInstanceOf(ff, "Unit"))
1043- then eZ.senderPublicKey
977+ else if ($isInstanceOf(eP, "Unit"))
978+ then eJ.senderPublicKey
1044979 else throw("Match error")
1045980 }
1046- sigVerify(eZ.bodyBytes, eZ.proofs[0], fe)
981+ sigVerify(eJ.bodyBytes, eJ.proofs[0], eO)
1047982 }
1048983 }
1049984
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 6 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
10-let d = 1000
10+let d = toBigInt(0)
1111
12-let e = toBigInt(0)
12+let e = toBigInt(1)
1313
14-let f = toBigInt(1)
14+let f = toBigInt((a - ((a * 1) / a)))
1515
16-let g = toBigInt((a - ((a * 1) / a)))
16+let g = "100"
1717
18-let h = "100"
18+let h = "1"
1919
20-let i = "1"
20+let i = "__"
2121
22-let j = "__"
22+let j = ""
2323
24-let k = ""
24+let k = 1
2525
26-let l = 1
26+let l = 2
2727
28-let m = 2
28+let m = 3
2929
30-let n = 3
30+let n = 4
3131
32-let o = 4
32+let o = 1
3333
34-let p = 1
34+let p = 2
3535
36-let q = 2
36+let q = 3
3737
38-let r = 3
38+let r = 4
3939
40-let s = 4
40+let s = 5
4141
42-let t = 5
42+let t = 6
4343
44-let u = 6
44+let u = 7
4545
46-let v = 7
46+let v = 8
4747
48-let w = 8
48+let w = 9
4949
50-let x = 9
50+let x = 1
5151
52-let y = 1
52+let y = 7
5353
54-let z = 7
54+let z = 10
5555
56-let A = 10
56+let A = "%s__delay"
5757
58-let B = 0
59-
60-func C (D,E) = fraction(toBigInt(D), c, toBigInt(E))
58+func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
6159
6260
63-func F (G,H) = toInt(fraction(G, toBigInt(H), c))
61+func E (F,G) = toInt(fraction(F, toBigInt(G), c))
6462
6563
66-func I (J,K,L) = fraction(J, K, L)
64+func H (I,J,K) = fraction(I, J, K)
6765
6866
69-func M (G) = if ((e > G))
70- then -(G)
71- else G
67+func L (F) = if ((d > F))
68+ then -(F)
69+ else F
7270
7371
74-func N () = "%s__factoryContract"
72+func M () = "%s__factoryContract"
7573
7674
77-func O () = "%s__managerPublicKey"
75+func N () = "%s__managerPublicKey"
7876
7977
80-func P () = "%s__pendingManagerPublicKey"
78+func O () = "%s__pendingManagerPublicKey"
8179
8280
83-func Q () = "%s%s__price__last"
81+func P () = "%s%s__price__last"
8482
8583
86-func R (S,T) = makeString(["%s%s%d%d__price__history", toString(S), toString(T)], j)
84+func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], i)
8785
8886
89-func U (V,W) = ((("%s%s%s__P__" + V) + "__") + W)
87+func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
9088
9189
92-func X (V,W) = ((("%s%s%s__G__" + V) + "__") + W)
90+func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
9391
9492
95-func Y () = "%s__amountAsset"
93+func X () = "%s__amountAsset"
9694
9795
98-func Z () = "%s__priceAsset"
96+func Y () = "%s__priceAsset"
9997
10098
101-func aa () = "%s__amp"
99+func Z () = "%s__amp"
102100
103101
104-func ab () = "%s__addonAddr"
102+func aa () = "%s__addonAddr"
105103
106104
107-let ac = "%s__feePermille"
105+func ab (ac) = makeString(["%s%s__lastGetOneTknCall", ac], i)
108106
109-let ad = valueOrElse(getInteger(this, ac), B)
107+
108+func ad (ac) = makeString(["%s%s__lastPutOneTknCall", ac], i)
109+
110110
111111 func ae () = "%s__factoryConfig"
112112
113113
114114 func af () = "%s%s__matcher__publicKey"
115115
116116
117117 func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
118118
119119
120120 func aj (ak) = ("%s%s%s__mappings__baseAsset2internalId__" + ak)
121121
122122
123123 func al () = "%s__shutdown"
124124
125125
126-func am (an) = throw(makeString(["lp_stable.ride:", an], " "))
126+func am (an,ao,ap) = throw(((((("Failed: ordValid=" + toString(an)) + " sndrValid=") + toString(ao)) + " mtchrValid=") + toString(ap)))
127127
128128
129-func ao (ap,aq,ar) = am(((((("Failed: ordValid=" + toString(ap)) + " sndrValid=") + toString(aq)) + " mtchrValid=") + toString(ar)))
130-
131-
132-func as (G) = {
133- let at = G
134- if ($isInstanceOf(at, "String"))
129+func aq (F) = {
130+ let ar = F
131+ if ($isInstanceOf(ar, "String"))
135132 then {
136- let au = at
137- au
133+ let as = ar
134+ as
138135 }
139- else am("fail cast to String")
136+ else throw("fail cast to String")
140137 }
141138
142139
143-func av (aw,ax) = valueOrErrorMessage(getString(aw, ax), makeString(["mandatory ", toString(aw), ".", ax, " not defined"], ""))
140+func at (au,av) = valueOrErrorMessage(getString(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
144141
145142
146-func ay (aw,ax) = valueOrErrorMessage(getInteger(aw, ax), makeString(["mandatory ", toString(aw), ".", ax, " not defined"], ""))
143+func aw (au,av) = valueOrErrorMessage(getInteger(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
147144
148145
149-let az = addressFromStringValue(av(this, N()))
146+let ax = addressFromStringValue(at(this, M()))
150147
151-let aA = av(this, aa())
148+let ay = at(this, Z())
152149
153-func aB () = valueOrElse(getBoolean(az, al()), false)
150+func az () = valueOrElse(getBoolean(ax, al()), false)
154151
155152
156-func aC () = fromBase58String(av(az, af()))
153+func aA () = fromBase58String(at(ax, af()))
157154
158155
159-let aD = addressFromPublicKey(aC())
160-
161-func aE () = {
162- let aF = av(this, Y())
163- let aG = av(this, Z())
164- let aH = ay(az, aj(aG))
165- let ah = ay(az, aj(aF))
166- split(av(az, ag(toString(ah), toString(aH))), j)
156+func aB () = {
157+ let aC = at(this, X())
158+ let aD = at(this, Y())
159+ let aE = aw(ax, aj(aD))
160+ let ah = aw(ax, aj(aC))
161+ split(at(ax, ag(toString(ah), toString(aE))), i)
167162 }
168163
169164
170-func aI () = split(av(az, ae()), j)
165+func aF () = split(at(ax, ae()), i)
171166
172167
173-func aJ (aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aK), toString(aL), toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), toString(aT)], j)
168+func aG (aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ)], i)
174169
175170
176-func aU (aV,aW,aX,aN,aQ,aR) = makeString(["%d%d%d%d%d%d", toString(aV), toString(aW), toString(aX), toString(aN), toString(aQ), toString(aR)], j)
171+func aR (aS,aT,aU,aK,aN,aO) = makeString(["%d%d%d%d%d%d", toString(aS), toString(aT), toString(aU), toString(aK), toString(aN), toString(aO)], i)
177172
178173
179-func aY (aZ) = if ((aZ == "WAVES"))
174+func aV (aW) = if ((aW == "WAVES"))
180175 then wavesBalance(this).available
181- else assetBalance(this, fromBase58String(aZ))
176+ else assetBalance(this, fromBase58String(aW))
182177
183178
184-func ba (bb,bc) = fraction(bb, c, bc)
179+func aX (aY,aZ) = fraction(aY, c, aZ)
185180
186181
187-func bd (be,bf,bg) = {
188- let bh = fraction((be - bf), b, bf)
189- let bi = ((bg - M(bh)) > e)
190- if (!(bi))
191- then am(("Big slippage: " + toString(bh)))
192- else $Tuple2(bi, min([be, bf]))
182+func ba (bb,bc,bd) = {
183+ let be = fraction((bb - bc), b, bc)
184+ let bf = ((bd - L(be)) > d)
185+ if (!(bf))
186+ then throw(("Big slpg: " + toString(be)))
187+ else $Tuple2(bf, min([bb, bc]))
193188 }
194189
195190
196-func bj (bk,bl,bg) = {
197- let bh = fraction(bl, b, bk)
198- let bm = (bg > bh)
199- if (if (bm)
191+func bg (bh,bi,bj) = {
192+ let be = fraction(bi, b, bh)
193+ let bk = (bj > be)
194+ if (if (bk)
200195 then true
201- else (bl > bk))
202- then am(((((((toString(bl) + " ") + toString(bk)) + " ") + toString(bh)) + " ") + toString(bg)))
203- else bm
196+ else (bi > bh))
197+ then throw(((((((toString(bi) + " ") + toString(bh)) + " ") + toString(be)) + " ") + toString(bj)))
198+ else bk
204199 }
205200
206201
207-func bn (bo,bp,bq,br) = {
208- let bs = C(bq, bo)
209- let bt = C(br, bp)
210- ba(bt, bs)
202+func bl (bm,bn,bo,bp) = {
203+ let bq = B(bo, bm)
204+ let br = B(bp, bn)
205+ aX(br, bq)
211206 }
212207
213208
214-func bu (bq,br,bv) = {
215- let bw = aE()
216- let bx = parseIntValue(bw[u])
217- let by = parseIntValue(bw[v])
218- let bz = bn(bx, by, bq, br)
219- let bc = C(bq, bx)
220- let bb = C(br, by)
221- let bA = C(bv, a)
222- let bB = ba(bc, bA)
223- let bC = ba(bb, bA)
224-[bz, bB, bC]
209+func bs (bo,bp,bt) = {
210+ let bu = aB()
211+ let bv = parseIntValue(bu[t])
212+ let bw = parseIntValue(bu[u])
213+ let bx = bl(bv, bw, bo, bp)
214+ let aZ = B(bo, bv)
215+ let aY = B(bp, bw)
216+ let by = B(bt, a)
217+ let bz = aX(aZ, by)
218+ let bA = aX(aY, by)
219+[bx, bz, bA]
225220 }
226221
227222
228-func bD (bq,br,bv) = {
229- let bE = bu(bq, br, bv)
230-[F(bE[0], a), F(bE[1], a), F(bE[2], a)]
223+func bB (bo,bp,bt) = {
224+ let bC = bs(bo, bp, bt)
225+[E(bC[0], a), E(bC[1], a), E(bC[2], a)]
231226 }
232227
233228
234-func bF (bG,bH,bI,bJ) = {
235- let bw = aE()
236- let bK = bw[r]
237- let bL = bw[s]
238- let bM = bw[t]
239- let bN = parseIntValue(bw[u])
240- let bO = parseIntValue(bw[v])
241- let bP = bw[q]
242- let bQ = valueOrErrorMessage(assetInfo(fromBase58String(bK)), "Wrong LP id").quantity
243- let bR = if ((bK == bH))
244- then true
245- else am("Wrong payment asset")
246- if ((bR == bR))
247- then {
248- let bS = if ((bN >= bO))
249- then bN
250- else bO
251- if ((bS == bS))
252- then {
253- let bT = aY(bL)
254- let bU = C(bT, bS)
255- let bV = aY(bM)
256- let bW = C(bV, bS)
257- let bX = ba(bW, bU)
258- let bY = F(bX, a)
259- let bZ = C(bI, a)
260- let ca = C(bQ, a)
261- let cb = fraction(bU, bZ, ca)
262- let cc = fraction(bW, bZ, ca)
263- let cd = F(cb, bS)
264- let ce = F(cc, bS)
265- let cf = if ((bG == ""))
266- then nil
267- else [ScriptTransfer(bJ, cd, if ((bL == "WAVES"))
268- then unit
269- else fromBase58String(bL)), ScriptTransfer(bJ, ce, if ((bM == "WAVES"))
270- then unit
271- else fromBase58String(bM)), StringEntry(X(toString(bJ), bG), aU(cd, ce, bI, bY, height, lastBlock.timestamp)), IntegerEntry(Q(), bY), IntegerEntry(R(height, lastBlock.timestamp), bY)]
272- $Tuple10(cd, ce, bL, bM, bT, bV, bQ, bX, bP, cf)
273- }
274- else throw("Strict value is not equal to itself.")
229+func bD (bE,bF,bG,bH) = {
230+ let bu = aB()
231+ let bI = bu[q]
232+ let bJ = bu[r]
233+ let bK = bu[s]
234+ let bL = parseIntValue(bu[t])
235+ let bM = parseIntValue(bu[u])
236+ let bN = bu[p]
237+ let bO = valueOrErrorMessage(assetInfo(fromBase58String(bI)), "Wrong LP id").quantity
238+ if ((bI != bF))
239+ then throw("Wrong pmt asset")
240+ else {
241+ let bP = aV(bJ)
242+ let bQ = B(bP, bL)
243+ let bR = aV(bK)
244+ let bS = B(bR, bM)
245+ let bT = aX(bS, bQ)
246+ let bU = E(bT, a)
247+ let bV = B(bG, a)
248+ let bW = B(bO, a)
249+ let bX = fraction(bQ, bV, bW)
250+ let bY = fraction(bS, bV, bW)
251+ let bZ = E(bX, bL)
252+ let ca = E(bY, bM)
253+ let cb = if ((bE == ""))
254+ then nil
255+ else [ScriptTransfer(bH, bZ, if ((bJ == "WAVES"))
256+ then unit
257+ else fromBase58String(bJ)), ScriptTransfer(bH, ca, if ((bK == "WAVES"))
258+ then unit
259+ else fromBase58String(bK)), StringEntry(W(toString(bH), bE), aR(bZ, ca, bG, bU, height, lastBlock.timestamp)), IntegerEntry(P(), bU), IntegerEntry(Q(height, lastBlock.timestamp), bU)]
260+ $Tuple10(bZ, ca, bJ, bK, bP, bR, bO, bT, bN, cb)
275261 }
276- else throw("Strict value is not equal to itself.")
277262 }
278263
279264
280-func cg (bG,ch,ci,cj,ck,cl,bJ,cm,cn,co,cp,cq) = {
281- let bw = aE()
282- let bK = fromBase58String(bw[r])
283- let cr = bw[s]
284- let cs = bw[t]
285- let ct = bw[w]
286- let cu = bw[x]
287- let bN = parseIntValue(bw[u])
288- let bO = parseIntValue(bw[v])
289- let bP = bw[q]
290- let bQ = valueOrErrorMessage(assetInfo(bK), "Wrong lp asset").quantity
291- let bT = if (cm)
292- then aY(cr)
293- else if (if (co)
294- then (cq == cr)
265+func cc (bE,bd,cd,ce,cf,cg,bH,ch,ci,cj,ck,cl) = {
266+ let bu = aB()
267+ let bI = fromBase58String(bu[q])
268+ let cm = bu[r]
269+ let cn = bu[s]
270+ let co = bu[v]
271+ let cp = bu[w]
272+ let cq = parseIntValue(bu[t])
273+ let cr = parseIntValue(bu[u])
274+ let bN = bu[p]
275+ let cs = valueOrErrorMessage(assetInfo(bI), "Wr lp as").quantity
276+ let bP = if (ch)
277+ then aV(cm)
278+ else if (if (cj)
279+ then (cl == cm)
295280 else false)
296- then (aY(cr) - cp)
297- else if (co)
298- then aY(cr)
299- else (aY(cr) - ci)
300- let bV = if (cm)
301- then aY(cs)
302- else if (if (co)
303- then (cq == cs)
281+ then (aV(cm) - ck)
282+ else if (cj)
283+ then aV(cm)
284+ else (aV(cm) - cd)
285+ let bR = if (ch)
286+ then aV(cn)
287+ else if (if (cj)
288+ then (cl == cn)
304289 else false)
305- then (aY(cs) - cp)
306- else if (co)
307- then aY(cs)
308- else (aY(cs) - ck)
309- let bS = if ((bN >= bO))
310- then bN
311- else bO
312- if ((bS == bS))
290+ then (aV(cn) - ck)
291+ else if (cj)
292+ then aV(cn)
293+ else (aV(cn) - cf)
294+ let ct = B(cd, cq)
295+ let cu = B(cf, cr)
296+ let cv = aX(cu, ct)
297+ let bQ = B(bP, cq)
298+ let bS = B(bR, cr)
299+ let cw = if ((cs == 0))
313300 then {
314- let cv = C(ci, bS)
315- let cw = C(ck, bS)
316- let cx = ba(cw, cv)
317- let bU = C(bT, bS)
318- let bW = C(bV, bS)
319- let cy = if ((bQ == 0))
320- then {
321- let bX = e
322- let cz = e
323- let cA = pow((cv * cw), 0, toBigInt(5), 1, 0, DOWN)
324- $Tuple5(F(cA, a), F(cv, bS), F(cw, bS), ba((bW + cw), (bU + cv)), cz)
301+ let bT = d
302+ let cx = d
303+ let by = pow((ct * cu), 0, toBigInt(5), 1, 0, DOWN)
304+ $Tuple5(E(by, a), E(ct, cq), E(cu, cr), aX((bS + cu), (bQ + ct)), cx)
305+ }
306+ else {
307+ let bT = aX(bS, bQ)
308+ let cy = fraction(L((bT - cv)), c, bT)
309+ let cx = B(bd, a)
310+ if (if ((bT != d))
311+ then (cy > cx)
312+ else false)
313+ then throw(((("Price slippage " + toString(cy)) + " > ") + toString(cx)))
314+ else {
315+ let cz = B(cs, a)
316+ let cA = fraction(ct, bT, c)
317+ let cB = fraction(cu, c, bT)
318+ let cC = if ((cA > cu))
319+ then $Tuple2(cB, cu)
320+ else $Tuple2(ct, cA)
321+ let cD = cC._1
322+ let cE = cC._2
323+ let by = fraction(cz, cE, bS)
324+ $Tuple5(E(by, a), E(cD, cq), E(cE, cr), bT, cx)
325325 }
326- else {
327- let bX = ba(bW, bU)
328- let cB = fraction(M((bX - cx)), c, bX)
329- let cz = C(ch, a)
330- if (if ((bX != e))
331- then (cB > cz)
332- else false)
333- then am(((("Price slippage " + toString(cB)) + " > ") + toString(cz)))
334- else {
335- let ca = C(bQ, a)
336- let cC = fraction(cv, bX, c)
337- let cD = fraction(cw, c, bX)
338- let cE = if ((cC > cw))
339- then $Tuple2(cD, cv)
340- else $Tuple2(cv, cC)
341- let cF = cE._1
342- let cG = cE._2
343- let cA = fraction(ca, cG, bW)
344- $Tuple5(F(cA, a), F(cF, bS), F(cG, bS), bX, cz)
345- }
346- }
347- let cH = cy._1
348- let cI = cy._2
349- let cJ = cy._3
350- let cK = F(cy._4, a)
351- let cL = F(cy._5, a)
352- let cM = if ((cH > 0))
353- then true
354- else am("LP <= 0")
355- if ((cM == cM))
356- then {
357- let cN = if (!(cn))
358- then 0
359- else cH
360- let cO = (ci - cI)
361- let cP = (ck - cJ)
362- let cQ = if (if (co)
363- then (cq == cr)
364- else false)
365- then $Tuple2(cp, 0)
366- else if (if (co)
367- then (cq == cs)
368- else false)
369- then $Tuple2(0, cp)
370- else $Tuple2(cI, cJ)
371- let cR = cQ._1
372- let cS = cQ._2
373- let cT = [IntegerEntry(Q(), cK), IntegerEntry(R(height, lastBlock.timestamp), cK), StringEntry(U(bJ, bG), aJ(cR, cS, cN, cK, ch, cL, height, lastBlock.timestamp, cO, cP))]
374- $Tuple13(cH, cN, cK, bT, bV, bQ, bK, bP, cT, cO, cP, cj, cl)
375- }
376- else throw("Strict value is not equal to itself.")
377326 }
378- else throw("Strict value is not equal to itself.")
327+ let cF = cw._1
328+ let cG = cw._2
329+ let cH = cw._3
330+ let bU = E(cw._4, a)
331+ let cI = E(cw._5, a)
332+ if ((0 >= cF))
333+ then throw("LP <= 0")
334+ else {
335+ let cJ = if (!(ci))
336+ then 0
337+ else cF
338+ let cK = (cd - cG)
339+ let cL = (cf - cH)
340+ let cM = if (if (cj)
341+ then (cl == cm)
342+ else false)
343+ then $Tuple2(ck, 0)
344+ else if (if (cj)
345+ then (cl == cn)
346+ else false)
347+ then $Tuple2(0, ck)
348+ else $Tuple2(cG, cH)
349+ let cN = cM._1
350+ let cO = cM._2
351+ let cP = [IntegerEntry(P(), bU), IntegerEntry(Q(height, lastBlock.timestamp), bU), StringEntry(T(bH, bE), aG(cN, cO, cJ, bU, bd, cI, height, lastBlock.timestamp, cK, cL))]
352+ $Tuple13(cF, cJ, bU, bP, bR, cs, bI, bN, cP, cK, cL, ce, cg)
353+ }
379354 }
380355
381356
382-func cU (cV) = {
383- let bw = aE()
384- let cW = bw[s]
385- let cX = bw[t]
386- let bP = parseIntValue(bw[q])
387- let bx = parseIntValue(bw[u])
388- let by = parseIntValue(bw[v])
389- let cY = aY(cW)
390- let cZ = aY(cX)
391- let bX = if ((cV.orderType == Buy))
392- then bn(bx, by, (cY + cV.amount), cZ)
393- else bn(bx, by, (cY - cV.amount), cZ)
394- let bY = F(bX, a)
395- if (if (if (aB())
357+func cQ (cR) = {
358+ let bu = aB()
359+ let cS = bu[r]
360+ let cT = bu[s]
361+ let bN = parseIntValue(bu[p])
362+ let bv = parseIntValue(bu[t])
363+ let bw = parseIntValue(bu[u])
364+ let cU = aV(cS)
365+ let cV = aV(cT)
366+ let bT = if ((cR.orderType == Buy))
367+ then bl(bv, bw, (cU + cR.amount), cV)
368+ else bl(bv, bw, (cU - cR.amount), cV)
369+ let bU = E(bT, a)
370+ if (if (if (az())
396371 then true
397- else (bP == n))
372+ else (bN == m))
398373 then true
399- else (bP == o))
400- then am("Admin blocked")
374+ else (bN == n))
375+ then throw("Admin blocked")
401376 else {
402- let da = cV.assetPair.amountAsset
403- let db = if ((da == unit))
377+ let cW = cR.assetPair.amountAsset
378+ let cX = if ((cW == unit))
404379 then "WAVES"
405- else toBase58String(value(da))
406- let dc = cV.assetPair.priceAsset
407- let dd = if ((dc == unit))
380+ else toBase58String(value(cW))
381+ let cY = cR.assetPair.priceAsset
382+ let cZ = if ((cY == unit))
408383 then "WAVES"
409- else toBase58String(value(dc))
410- if (if ((db != cW))
384+ else toBase58String(value(cY))
385+ if (if ((cX != cS))
411386 then true
412- else (dd != cX))
413- then am("Wr assets")
387+ else (cZ != cT))
388+ then throw("Wr assets")
414389 else {
415- let de = cV.price
416- let bO = fraction(a, by, bx)
417- let df = I(de, a, bO)
418- let dg = if ((cV.orderType == Buy))
419- then (bY >= df)
420- else (df >= bY)
390+ let da = cR.price
391+ let cr = fraction(a, bw, bv)
392+ let db = H(da, a, cr)
393+ let dc = if ((cR.orderType == Buy))
394+ then (bU >= db)
395+ else (db >= bU)
421396 true
422397 }
423398 }
424399 }
425400
426401
427-func dh (di) = {
428- let dj = if ((size(di.payments) == 1))
402+func dd (de) = if ((size(de.payments) != 1))
403+ then throw("1 pmnt exp")
404+ else {
405+ let df = value(de.payments[0])
406+ let bF = value(df.assetId)
407+ let ck = df.amount
408+ let cw = bD(toBase58String(de.transactionId), toBase58String(bF), ck, de.caller)
409+ let bZ = cw._1
410+ let ca = cw._2
411+ let bN = parseIntValue(cw._9)
412+ let cb = cw._10
413+ if (if (az())
414+ then true
415+ else (bN == n))
416+ then throw(("Admin blocked: " + toString(bN)))
417+ else $Tuple5(bZ, ca, ck, bF, cb)
418+ }
419+
420+
421+func dg (ac,V,dh,di,bd,ci,cj,ck,cl) = {
422+ let cw = cc(V, bd, value(dh).amount, value(dh).assetId, value(di).amount, value(di).assetId, ac, false, ci, cj, ck, cl)
423+ let bN = parseIntValue(cw._8)
424+ if (if (if (az())
429425 then true
430- else am("1 payment expected")
431- if ((dj == dj))
432- then {
433- let dk = value(di.payments[0])
434- let bH = value(dk.assetId)
435- let cp = dk.amount
436- let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
437- let cd = cy._1
438- let ce = cy._2
439- let bP = parseIntValue(cy._9)
440- let cf = cy._10
441- if (if (aB())
442- then true
443- else (bP == o))
444- then am(("Admin blocked: " + toString(bP)))
445- else $Tuple5(cd, ce, cp, bH, cf)
446- }
447- else throw("Strict value is not equal to itself.")
426+ else (bN == l))
427+ then true
428+ else (bN == n))
429+ then throw(("Blocked:" + toString(bN)))
430+ else cw
448431 }
449432
450433
451-func dl (dm,W,dn,do,bg,cn,co,cp,cq) = {
452- let cy = cg(W, bg, value(dn).amount, value(dn).assetId, value(do).amount, value(do).assetId, dm, false, cn, co, cp, cq)
453- let bP = parseIntValue(cy._8)
454- if (if (if (aB())
455- then true
456- else (bP == m))
457- then true
458- else (bP == o))
459- then am(("Blocked:" + toString(bP)))
460- else cy
461- }
462-
463-
464-func dp (dq) = {
465- let dr = fraction(dq, ad, d)
466- $Tuple2((dq - dr), dr)
467- }
468-
469-
470-func ds () = {
471- let at = getString(O())
472- if ($isInstanceOf(at, "String"))
434+func dj () = {
435+ let ar = getString(N())
436+ if ($isInstanceOf(ar, "String"))
473437 then {
474- let dt = at
475- fromBase58String(dt)
438+ let dk = ar
439+ fromBase58String(dk)
476440 }
477- else if ($isInstanceOf(at, "Unit"))
441+ else if ($isInstanceOf(ar, "Unit"))
478442 then unit
479443 else throw("Match error")
480444 }
481445
482446
483-func du () = {
484- let at = getString(P())
485- if ($isInstanceOf(at, "String"))
447+func dl () = {
448+ let ar = getString(O())
449+ if ($isInstanceOf(ar, "String"))
486450 then {
487- let dt = at
488- fromBase58String(dt)
451+ let dk = ar
452+ fromBase58String(dk)
489453 }
490- else if ($isInstanceOf(at, "Unit"))
454+ else if ($isInstanceOf(ar, "Unit"))
491455 then unit
492456 else throw("Match error")
493457 }
494458
495459
496-let dv = am("Permission denied")
460+let dm = throw("Permission denied")
497461
498-func dw (di) = {
499- let at = ds()
500- if ($isInstanceOf(at, "ByteVector"))
462+func dn (de) = {
463+ let ar = dj()
464+ if ($isInstanceOf(ar, "ByteVector"))
501465 then {
502- let dx = at
503- if ((di.callerPublicKey == dx))
466+ let do = ar
467+ if ((de.callerPublicKey == do))
504468 then true
505- else dv
469+ else dm
506470 }
507- else if ($isInstanceOf(at, "Unit"))
508- then if ((di.caller == this))
471+ else if ($isInstanceOf(ar, "Unit"))
472+ then if ((de.caller == this))
509473 then true
510- else dv
474+ else dm
511475 else throw("Match error")
512476 }
513477
514478
515-@Callable(di)
516-func constructor (az) = {
517- let dy = dw(di)
518- if ((dy == dy))
519- then [StringEntry(N(), az)]
479+@Callable(de)
480+func constructor (M) = {
481+ let dp = dn(de)
482+ if ((dp == dp))
483+ then [StringEntry(M(), M)]
520484 else throw("Strict value is not equal to itself.")
521485 }
522486
523487
524488
525-@Callable(di)
526-func setManager (dz) = {
527- let dy = dw(di)
528- if ((dy == dy))
489+@Callable(de)
490+func setManager (dq) = {
491+ let dp = dn(de)
492+ if ((dp == dp))
529493 then {
530- let dA = fromBase58String(dz)
531- if ((dA == dA))
532- then [StringEntry(P(), dz)]
494+ let dr = fromBase58String(dq)
495+ if ((dr == dr))
496+ then [StringEntry(O(), dq)]
533497 else throw("Strict value is not equal to itself.")
534498 }
535499 else throw("Strict value is not equal to itself.")
536500 }
537501
538502
539503
540-@Callable(di)
504+@Callable(de)
541505 func confirmManager () = {
542- let dB = du()
543- let dC = if (isDefined(dB))
506+ let bC = dl()
507+ let ds = if (isDefined(bC))
544508 then true
545- else am("No pending manager")
546- if ((dC == dC))
509+ else throw("No pending manager")
510+ if ((ds == ds))
547511 then {
548- let dD = if ((di.callerPublicKey == value(dB)))
512+ let dt = if ((de.callerPublicKey == value(bC)))
549513 then true
550- else am("You are not pending manager")
551- if ((dD == dD))
552- then [StringEntry(O(), toBase58String(value(dB))), DeleteEntry(P())]
514+ else throw("You are not pending manager")
515+ if ((dt == dt))
516+ then [StringEntry(N(), toBase58String(value(bC))), DeleteEntry(O())]
553517 else throw("Strict value is not equal to itself.")
554518 }
555519 else throw("Strict value is not equal to itself.")
556520 }
557521
558522
559523
560-@Callable(di)
561-func put (bg,dE) = {
562- let dF = aI()
563- let dG = valueOrErrorMessage(addressFromString(dF[y]), "Wrong staking contract")
564- let dH = valueOrErrorMessage(addressFromString(dF[z]), "Wrogn slippage contract")
565- let dI = if ((bg >= 0))
566- then true
567- else am("wrong slippage")
568- if ((dI == dI))
569- then {
570- let dJ = if ((size(di.payments) == 2))
571- then true
572- else am("2 payments expected")
573- if ((dJ == dJ))
574- then {
575- let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], bg, true, false, 0, "")
576- let cN = dK._2
577- let bK = dK._7
578- let cf = dK._9
579- let cO = dK._10
580- let cP = dK._11
581- let bL = dK._12
582- let bM = dK._13
583- let cy = invoke(az, "emit", [cN], nil)
584- if ((cy == cy))
585- then {
586- let dL = {
587- let at = cy
588- if ($isInstanceOf(at, "Address"))
524+@Callable(de)
525+func put (du,dv) = {
526+ let dw = aF()
527+ let dx = valueOrErrorMessage(addressFromString(dw[x]), "Wr st addr")
528+ let dy = valueOrErrorMessage(addressFromString(dw[y]), "Wr sl addr")
529+ if ((0 > du))
530+ then throw("Wrong slippage")
531+ else if ((size(de.payments) != 2))
532+ then throw("2 pmnts expd")
533+ else {
534+ let dz = dg(toString(de.caller), toBase58String(de.transactionId), AttachedPayment(value(de.payments[0]).assetId, value(de.payments[0]).amount), de.payments[1], du, true, false, 0, "")
535+ let cJ = dz._2
536+ let dA = dz._7
537+ let cb = dz._9
538+ let cK = dz._10
539+ let cL = dz._11
540+ let bJ = dz._12
541+ let bK = dz._13
542+ let cw = invoke(ax, "emit", [cJ], nil)
543+ if ((cw == cw))
544+ then {
545+ let dB = {
546+ let ar = cw
547+ if ($isInstanceOf(ar, "Address"))
548+ then {
549+ let dC = ar
550+ invoke(dC, "emit", [cJ], nil)
551+ }
552+ else unit
553+ }
554+ if ((dB == dB))
555+ then {
556+ let dD = if ((cK > 0))
557+ then invoke(dy, "put", nil, [AttachedPayment(bJ, cK)])
558+ else nil
559+ if ((dD == dD))
589560 then {
590- let dM = at
591- invoke(dM, "emit", [cN], nil)
561+ let dE = if ((cL > 0))
562+ then invoke(dy, "put", nil, [AttachedPayment(bK, cL)])
563+ else nil
564+ if ((dE == dE))
565+ then {
566+ let dF = if (dv)
567+ then {
568+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
569+ if ((dG == dG))
570+ then nil
571+ else throw("Strict value is not equal to itself.")
572+ }
573+ else [ScriptTransfer(de.caller, cJ, dA)]
574+ (cb ++ dF)
575+ }
576+ else throw("Strict value is not equal to itself.")
592577 }
593- else unit
578+ else throw("Strict value is not equal to itself.")
594579 }
595- if ((dL == dL))
580+ else throw("Strict value is not equal to itself.")
581+ }
582+ else throw("Strict value is not equal to itself.")
583+ }
584+ }
585+
586+
587+
588+@Callable(de)
589+func putOneTkn (dH,dI,dJ,bd,dv) = {
590+ let bu = aF()
591+ let dx = valueOrErrorMessage(addressFromString(bu[x]), "Wr st addr")
592+ let dy = valueOrErrorMessage(addressFromString(bu[y]), "Wr sl addr")
593+ let dK = valueOrErrorMessage(addressFromString(bu[z]), "Wr gwx addr")
594+ let dL = aB()
595+ let bJ = dL[r]
596+ let bK = dL[s]
597+ let bL = parseIntValue(dL[t])
598+ let bM = parseIntValue(dL[u])
599+ let dM = valueOrElse(getString(this, aa()), "")
600+ let bH = if ((dM == toString(de.caller)))
601+ then de.originCaller
602+ else de.caller
603+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
604+ let dO = reentrantInvoke(dN, "ensureCanPutOneTkn", [toString(bH)], nil)
605+ if ((dO == dO))
606+ then if (if (if (if ((0 >= bd))
607+ then true
608+ else (0 >= dH))
609+ then true
610+ else (0 >= dI))
611+ then true
612+ else (0 >= dJ))
613+ then throw("Wrong params")
614+ else if ((size(de.payments) != 1))
615+ then throw("1 pmnt expd")
616+ else {
617+ let df = value(de.payments[0])
618+ let bF = toBase58String(value(df.assetId))
619+ let ck = df.amount
620+ if (if (if ((dH > ck))
621+ then true
622+ else (dI > ck))
623+ then true
624+ else (10000000 > ck))
625+ then throw("Wrong pmt amt")
626+ else {
627+ let bP = aV(bJ)
628+ let bR = aV(bK)
629+ let dP = if ((bF == bJ))
630+ then $Tuple6((bP - ck), bR, (ck - dH), dI, 0, 0)
631+ else if ((bF == bK))
632+ then $Tuple6(bP, (bR - ck), 0, 0, (ck - dI), dH)
633+ else throw("wrong pmtAssetId")
634+ let dQ = dP._1
635+ let dR = dP._2
636+ let dS = dP._3
637+ let dT = dP._4
638+ let dU = dP._5
639+ let dV = dP._6
640+ let bi = invoke(dK, "calcD", [toString(dQ), toString(dR), ay, g, h], nil)
641+ let bh = invoke(dK, "calcD", [toString(toBigInt(((dQ + dS) - dV))), toString(toBigInt(((dR + dU) - dT))), ay, g, h], nil)
642+ let dW = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
643+ if ((dW == dW))
596644 then {
597- let dN = if ((cO > 0))
598- then invoke(dH, "put", nil, [AttachedPayment(bL, cO)])
599- else nil
600- if ((dN == dN))
645+ let dX = dg(toString(de.caller), toBase58String(de.transactionId), AttachedPayment(fromBase58String(bJ), dH), AttachedPayment(fromBase58String(bK), dI), bd, true, true, ck, bF)
646+ let dY = dX._2
647+ let dA = dX._7
648+ let cb = dX._9
649+ let cK = dX._10
650+ let cL = dX._11
651+ let dZ = ba(toBigInt(dY), toBigInt(dJ), toBigInt(bd))
652+ let cJ = toInt(dZ._2)
653+ let dz = invoke(ax, "emit", [cJ], nil)
654+ if ((dz == dz))
601655 then {
602- let dO = if ((cP > 0))
603- then invoke(dH, "put", nil, [AttachedPayment(bM, cP)])
604- else nil
605- if ((dO == dO))
656+ let dB = {
657+ let ar = dz
658+ if ($isInstanceOf(ar, "Address"))
659+ then {
660+ let dC = ar
661+ invoke(dC, "emit", [cJ], nil)
662+ }
663+ else unit
664+ }
665+ if ((dB == dB))
606666 then {
607- let dP = if (dE)
667+ let dD = if ((cK > 0))
668+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bJ), cK)])
669+ else nil
670+ if ((dD == dD))
608671 then {
609- let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
610- if ((dQ == dQ))
611- then nil
672+ let dE = if ((cL > 0))
673+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bK), cL)])
674+ else nil
675+ if ((dE == dE))
676+ then {
677+ let dF = if (dv)
678+ then {
679+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
680+ if ((dG == dG))
681+ then nil
682+ else throw("Strict value is not equal to itself.")
683+ }
684+ else [ScriptTransfer(de.caller, cJ, dA)]
685+ (cb ++ dF)
686+ }
612687 else throw("Strict value is not equal to itself.")
613688 }
614- else [ScriptTransfer(di.caller, cN, bK)]
615- (cf ++ dP)
689+ else throw("Strict value is not equal to itself.")
616690 }
617691 else throw("Strict value is not equal to itself.")
618692 }
619693 else throw("Strict value is not equal to itself.")
620694 }
695+ else throw("Strict value is not equal to itself.")
696+ }
697+ }
698+ else throw("Strict value is not equal to itself.")
699+ }
700+
701+
702+
703+@Callable(de)
704+func putForFree (ea) = if ((0 > ea))
705+ then throw("Wrong slpg")
706+ else if ((size(de.payments) != 2))
707+ then throw("2 pmnts expd")
708+ else {
709+ let dX = dg(toString(de.caller), toBase58String(de.transactionId), AttachedPayment(value(de.payments[0]).assetId, value(de.payments[0]).amount), de.payments[1], ea, false, false, 0, "")
710+ dX._9
711+ }
712+
713+
714+
715+@Callable(de)
716+func get () = {
717+ let cw = dd(de)
718+ let eb = cw._1
719+ let ca = cw._2
720+ let ck = cw._3
721+ let bF = cw._4
722+ let cb = cw._5
723+ let ec = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
724+ if ((ec == ec))
725+ then cb
726+ else throw("Strict value is not equal to itself.")
727+ }
728+
729+
730+
731+@Callable(de)
732+func getOneTkn (ed,ee,ef,eg,bd) = if ((size(de.payments) != 1))
733+ then throw("1 pmnt expd")
734+ else {
735+ let bu = aB()
736+ let bI = bu[q]
737+ let bJ = bu[r]
738+ let bK = bu[s]
739+ let bL = parseIntValue(bu[t])
740+ let bM = parseIntValue(bu[u])
741+ let bN = bu[p]
742+ let dw = aF()
743+ let dK = valueOrErrorMessage(addressFromString(dw[z]), "Wr sl addr")
744+ let df = value(de.payments[0])
745+ let dM = valueOrElse(getString(this, aa()), "")
746+ let bH = if ((dM == toString(de.caller)))
747+ then de.originCaller
748+ else de.caller
749+ let bE = toBase58String(de.transactionId)
750+ let bF = value(df.assetId)
751+ let ck = df.amount
752+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
753+ let dO = reentrantInvoke(dN, "ensureCanGetOneTkn", [toString(bH)], nil)
754+ if ((dO == dO))
755+ then if ((1000000000 > ck))
756+ then throw("Min pmt 10 LP")
757+ else if (if (if ((0 > bd))
758+ then true
759+ else (0 > ed))
760+ then true
761+ else (0 > ef))
762+ then throw("Wrong params")
763+ else if ((bI != toBase58String(bF)))
764+ then throw("Wrong LP")
765+ else {
766+ let cw = bD(toBase58String(de.transactionId), toBase58String(bF), ck, de.caller)
767+ let eh = cw._1
768+ let ei = cw._2
769+ let bP = aV(bJ)
770+ let bR = aV(bK)
771+ let ej = if ((eg == bJ))
772+ then $Tuple7((bP - eh), (bR - ei), ed, ei, 0, 0, (eh + ed))
773+ else if ((eg == bK))
774+ then $Tuple7((bP - eh), (bR - ei), 0, 0, ed, eh, (ei + ed))
775+ else throw("wrong outAssetId")
776+ let dQ = ej._1
777+ let dR = ej._2
778+ let dS = ej._3
779+ let dT = ej._4
780+ let dU = ej._5
781+ let dV = ej._6
782+ let ek = ej._7
783+ if (if ((0 > dS))
784+ then true
785+ else (0 > dU))
786+ then throw("Wrong calc")
787+ else {
788+ let bi = invoke(dK, "calcD", [toString(dQ), toString(dR), ay, g, h], nil)
789+ let bh = invoke(dK, "calcD", [toString(((dQ - dS) + dV)), toString(((dR + dT) - dU)), ay, g, h], nil)
790+ let dW = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
791+ if ((dW == dW))
792+ then {
793+ let el = ba(toBigInt(ek), toBigInt(ef), toBigInt(bd))
794+ if ((el == el))
795+ then {
796+ let em = if ((eg == bJ))
797+ then $Tuple2(toInt(el._2), 0)
798+ else $Tuple2(0, toInt(el._2))
799+ let en = em._1
800+ let eo = em._2
801+ let ep = aX(B(bR, bM), B(bP, bL))
802+ let eq = E(ep, a)
803+ let cb = [ScriptTransfer(bH, (en + eo), if ((eg == "WAVES"))
804+ then unit
805+ else fromBase58String(eg)), StringEntry(W(toString(bH), bE), aR(en, eo, ck, eq, height, lastBlock.timestamp)), IntegerEntry(P(), eq), IntegerEntry(Q(height, lastBlock.timestamp), eq)]
806+ if ((cb == cb))
807+ then {
808+ let er = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
809+ if ((er == er))
810+ then cb
811+ else throw("Strict value is not equal to itself.")
812+ }
813+ else throw("Strict value is not equal to itself.")
814+ }
815+ else throw("Strict value is not equal to itself.")
816+ }
817+ else throw("Strict value is not equal to itself.")
818+ }
819+ }
820+ else throw("Strict value is not equal to itself.")
821+ }
822+
823+
824+
825+@Callable(de)
826+func getNoLess (es,et) = {
827+ let cw = dd(de)
828+ let bZ = cw._1
829+ let ca = cw._2
830+ let ck = cw._3
831+ let bF = cw._4
832+ let cb = cw._5
833+ if ((es > bZ))
834+ then throw(((("Failed: " + toString(bZ)) + " < ") + toString(es)))
835+ else if ((et > ca))
836+ then throw(((("Failed: " + toString(ca)) + " < ") + toString(et)))
837+ else {
838+ let eu = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
839+ if ((eu == eu))
840+ then cb
841+ else throw("Strict value is not equal to itself.")
842+ }
843+ }
844+
845+
846+
847+@Callable(de)
848+func unstakeAndGet (ev) = {
849+ let ew = if ((size(de.payments) != 0))
850+ then throw("No pmnts expd")
851+ else true
852+ if ((ew == ew))
853+ then {
854+ let bu = aB()
855+ let ex = aF()
856+ let dA = fromBase58String(bu[q])
857+ let ey = valueOrErrorMessage(addressFromString(ex[x]), "Wr st addr")
858+ let ez = invoke(ey, "unstake", [toBase58String(dA), ev], nil)
859+ if ((ez == ez))
860+ then {
861+ let cw = bD(toBase58String(de.transactionId), toBase58String(dA), ev, de.caller)
862+ let bN = parseIntValue(cw._9)
863+ let cb = cw._10
864+ let eA = if (if (az())
865+ then true
866+ else (bN == n))
867+ then throw(("Blocked: " + toString(bN)))
868+ else true
869+ if ((eA == eA))
870+ then {
871+ let eB = invoke(ax, "burn", [ev], [AttachedPayment(dA, ev)])
872+ if ((eB == eB))
873+ then cb
621874 else throw("Strict value is not equal to itself.")
622875 }
623876 else throw("Strict value is not equal to itself.")
624877 }
625878 else throw("Strict value is not equal to itself.")
626879 }
627880 else throw("Strict value is not equal to itself.")
628881 }
629882
630883
631884
632-@Callable(di)
633-func putOneTkn (dR,dS,bf,bg,dE) = {
634- let bw = aI()
635- let dG = valueOrErrorMessage(addressFromString(bw[y]), "Wrong staking contract")
636- let dH = valueOrErrorMessage(addressFromString(bw[z]), "Wrong slippage contract")
637- let dT = valueOrErrorMessage(addressFromString(bw[A]), "Wrong gwx reward contract")
638- let dU = aE()
639- let bL = dU[s]
640- let bM = dU[t]
641- let bN = parseIntValue(dU[u])
642- let bO = parseIntValue(dU[v])
643- let dV = valueOrElse(getString(this, ab()), "")
644- let bJ = if ((dV == toString(di.caller)))
645- then di.originCaller
646- else di.caller
647- if (if (if (if ((0 >= bg))
648- then true
649- else (0 >= dR))
650- then true
651- else (0 >= dS))
652- then true
653- else (0 >= bf))
654- then am("Wrong params")
655- else if ((size(di.payments) != 1))
656- then am("1 payment expected")
657- else {
658- let dk = value(di.payments[0])
659- let bH = toBase58String(value(dk.assetId))
660- let dW = dk.amount
661- let dX = dp(dW)
662- let cp = dX._1
663- let dY = dX._2
664- if (if (if ((dR > cp))
665- then true
666- else (dS > cp))
667- then true
668- else (10000000 > cp))
669- then am("wrong payment amount")
670- else {
671- let bT = aY(bL)
672- let bV = aY(bM)
673- let dZ = if ((bH == bL))
674- then $Tuple6((bT - cp), bV, (cp - dR), dS, 0, 0)
675- else if ((bH == bM))
676- then $Tuple6(bT, (bV - cp), 0, 0, (cp - dS), dR)
677- else am("wrong paymentAssetId")
678- let ea = dZ._1
679- let eb = dZ._2
680- let ec = dZ._3
681- let ed = dZ._4
682- let ee = dZ._5
683- let ef = dZ._6
684- let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
685- let bk = invoke(dT, "calcD", [toString(toBigInt(((ea + ec) - ef))), toString(toBigInt(((eb + ee) - ed))), aA, h, i], nil)
686- let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
687- if ((eg == eg))
688- then {
689- let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(fromBase58String(bL), dR), AttachedPayment(fromBase58String(bM), dS), bg, true, true, cp, bH)
690- let be = dK._2
691- let bK = dK._7
692- let cf = dK._9
693- let cO = dK._10
694- let cP = dK._11
695- let eh = bd(toBigInt(be), toBigInt(bf), toBigInt(bg))
696- let cN = toInt(eh._2)
697- let ei = invoke(az, "emit", [cN], nil)
698- if ((ei == ei))
699- then {
700- let dL = {
701- let at = ei
702- if ($isInstanceOf(at, "Address"))
703- then {
704- let dM = at
705- invoke(dM, "emit", [cN], nil)
706- }
707- else unit
708- }
709- if ((dL == dL))
710- then {
711- let dN = if ((cO > 0))
712- then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bL), cO)])
713- else nil
714- if ((dN == dN))
715- then {
716- let dO = if ((cP > 0))
717- then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bM), cP)])
718- else nil
719- if ((dO == dO))
720- then {
721- let dP = if (dE)
722- then {
723- let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
724- if ((dQ == dQ))
725- then nil
726- else throw("Strict value is not equal to itself.")
727- }
728- else [ScriptTransfer(di.caller, cN, bK)]
729- let ej = if ((dY > 0))
730- then [ScriptTransfer(aD, dY, fromBase58String(bH))]
731- else nil
732- ((cf ++ dP) ++ ej)
733- }
734- else throw("Strict value is not equal to itself.")
735- }
736- else throw("Strict value is not equal to itself.")
737- }
738- else throw("Strict value is not equal to itself.")
739- }
740- else throw("Strict value is not equal to itself.")
741- }
742- else throw("Strict value is not equal to itself.")
743- }
744- }
885+@Callable(de)
886+func activate (eC,eD) = if ((toString(de.caller) != toString(ax)))
887+ then throw("denied")
888+ else $Tuple2([StringEntry(X(), eC), StringEntry(Y(), eD)], "success")
889+
890+
891+
892+@Callable(de)
893+func setS (eE,eA) = if ((toString(de.caller) != at(this, aa())))
894+ then dm
895+ else [StringEntry(eE, eA)]
896+
897+
898+
899+@Callable(de)
900+func setI (eE,eA) = if ((toString(de.caller) != at(this, aa())))
901+ then dm
902+ else [IntegerEntry(eE, eA)]
903+
904+
905+
906+@Callable(de)
907+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
908+
909+
910+
911+@Callable(de)
912+func getAccBalanceWrapperREADONLY (aW) = $Tuple2(nil, aV(aW))
913+
914+
915+
916+@Callable(de)
917+func calcPricesWrapperREADONLY (bo,bp,bt) = {
918+ let eF = bs(bo, bp, bt)
919+ $Tuple2(nil, [toString(eF[0]), toString(eF[1]), toString(eF[2])])
745920 }
746921
747922
748923
749-@Callable(di)
750-func putForFree (ek) = if ((0 > ek))
751- then am("wrong slippage")
752- else if ((size(di.payments) != 2))
753- then am("2 payments expected")
754- else {
755- let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], ek, false, false, 0, "")
756- dK._9
757- }
924+@Callable(de)
925+func fromX18WrapperREADONLY (F,eG) = $Tuple2(nil, E(parseBigIntValue(F), eG))
758926
759927
760928
761-@Callable(di)
762-func get () = {
763- let cy = dh(di)
764- let el = cy._1
765- let ce = cy._2
766- let cp = cy._3
767- let bH = cy._4
768- let cf = cy._5
769- let em = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
770- if ((em == em))
771- then cf
772- else throw("Strict value is not equal to itself.")
929+@Callable(de)
930+func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
931+
932+
933+
934+@Callable(de)
935+func calcPriceBigIntWrapperREADONLY (aY,aZ) = $Tuple2(nil, toString(aX(parseBigIntValue(aY), parseBigIntValue(aZ))))
936+
937+
938+
939+@Callable(de)
940+func estimatePutOperationWrapperREADONLY (bE,bd,cd,ce,cf,cg,eH,ch,ci) = $Tuple2(nil, cc(bE, bd, cd, ce, cf, cg, eH, ch, ci, false, 0, ""))
941+
942+
943+
944+@Callable(de)
945+func estimateGetOperationWrapperREADONLY (bE,eI,bG,eH) = {
946+ let cw = bD(bE, eI, bG, addressFromStringValue(eH))
947+ $Tuple2(nil, $Tuple10(cw._1, cw._2, cw._3, cw._4, cw._5, cw._6, cw._7, toString(cw._8), cw._9, cw._10))
773948 }
774949
775950
776-
777-@Callable(di)
778-func getOneTkn (en,eo,ep,eq,bg) = if ((size(di.payments) != 1))
779- then am("1 payment expected")
780- else {
781- let bw = aE()
782- let bK = bw[r]
783- let bL = bw[s]
784- let bM = bw[t]
785- let bN = parseIntValue(bw[u])
786- let bO = parseIntValue(bw[v])
787- let bP = bw[q]
788- let dF = aI()
789- let dT = valueOrErrorMessage(addressFromString(dF[A]), "Wrong gwxRewardContract address")
790- let dk = value(di.payments[0])
791- let dV = valueOrElse(getString(this, ab()), "")
792- let bJ = if ((dV == toString(di.caller)))
793- then di.originCaller
794- else di.caller
795- let bG = toBase58String(di.transactionId)
796- let bH = value(dk.assetId)
797- let cp = dk.amount
798- if ((1000000000 > cp))
799- then am("Min payment 10 LP")
800- else if (if (if ((0 > bg))
801- then true
802- else (0 > en))
803- then true
804- else (0 > ep))
805- then am("Wrong params")
806- else if ((bK != toBase58String(bH)))
807- then am("Wrong LP")
808- else {
809- let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
810- let er = cy._1
811- let es = cy._2
812- let bT = aY(bL)
813- let bV = aY(bM)
814- let et = if ((eq == bL))
815- then $Tuple7((bT - er), (bV - es), en, es, 0, 0, (er + en))
816- else if ((eq == bM))
817- then $Tuple7((bT - er), (bV - es), 0, 0, en, er, (es + en))
818- else am("wrong outAssetId")
819- let ea = et._1
820- let eb = et._2
821- let ec = et._3
822- let ed = et._4
823- let ee = et._5
824- let ef = et._6
825- let eu = et._7
826- if (if ((0 > ec))
827- then true
828- else (0 > ee))
829- then am("Wrong calc")
830- else {
831- let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
832- let bk = invoke(dT, "calcD", [toString(((ea - ec) + ef)), toString(((eb + ed) - ee)), aA, h, i], nil)
833- let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
834- if ((eg == eg))
835- then {
836- let ev = bd(toBigInt(eu), toBigInt(ep), toBigInt(bg))
837- if ((ev == ev))
838- then {
839- let ew = if ((eq == bL))
840- then $Tuple2(toInt(ev._2), 0)
841- else $Tuple2(0, toInt(ev._2))
842- let ex = ew._1
843- let ey = ew._2
844- let ez = (ex + ey)
845- let eA = dp(ez)
846- let eB = eA._1
847- let dY = eA._2
848- let eC = if ((eq == "WAVES"))
849- then unit
850- else fromBase58String(eq)
851- let ej = if ((dY > 0))
852- then [ScriptTransfer(aD, dY, eC)]
853- else nil
854- let bS = if ((bN >= bO))
855- then bN
856- else bO
857- if ((bS == bS))
858- then {
859- let eD = ba(C(bV, bS), C(bT, bS))
860- let eE = F(eD, a)
861- let cf = [ScriptTransfer(bJ, eB, eC), StringEntry(X(toString(bJ), bG), aU(ex, ey, cp, eE, height, lastBlock.timestamp)), IntegerEntry(Q(), eE), IntegerEntry(R(height, lastBlock.timestamp), eE)]
862- if ((cf == cf))
863- then {
864- let eF = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
865- if ((eF == eF))
866- then (cf ++ ej)
867- else throw("Strict value is not equal to itself.")
868- }
869- else throw("Strict value is not equal to itself.")
870- }
871- else throw("Strict value is not equal to itself.")
872- }
873- else throw("Strict value is not equal to itself.")
874- }
875- else throw("Strict value is not equal to itself.")
876- }
877- }
878- }
879-
880-
881-
882-@Callable(di)
883-func getNoLess (eG,eH) = {
884- let cy = dh(di)
885- let cd = cy._1
886- let ce = cy._2
887- let cp = cy._3
888- let bH = cy._4
889- let cf = cy._5
890- let eI = if ((cd >= eG))
891- then true
892- else am(((("Failed: " + toString(cd)) + " < ") + toString(eG)))
893- if ((eI == eI))
951+@Verifier(eJ)
952+func eK () = {
953+ let ar = eJ
954+ if ($isInstanceOf(ar, "Order"))
894955 then {
895- let eJ = if ((ce >= eH))
896- then true
897- else am(((("Failed: " + toString(ce)) + " < ") + toString(eH)))
898- if ((eJ == eJ))
899- then {
900- let eK = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
901- if ((eK == eK))
902- then cf
903- else throw("Strict value is not equal to itself.")
904- }
905- else throw("Strict value is not equal to itself.")
906- }
907- else throw("Strict value is not equal to itself.")
908- }
909-
910-
911-
912-@Callable(di)
913-func unstakeAndGet (dq) = {
914- let dj = if ((size(di.payments) != 0))
915- then am("no payments expected")
916- else true
917- if ((dj == dj))
918- then {
919- let bw = aE()
920- let eL = aI()
921- let bK = fromBase58String(bw[r])
922- let eM = valueOrErrorMessage(addressFromString(eL[y]), "wrong")
923- let eN = invoke(eM, "unstake", [toBase58String(bK), dq], nil)
924- if ((eN == eN))
925- then {
926- let cy = bF(toBase58String(di.transactionId), toBase58String(bK), dq, di.caller)
927- let bP = parseIntValue(cy._9)
928- let cf = cy._10
929- let eO = if (if (aB())
930- then true
931- else (bP == o))
932- then am(("Blocked: " + toString(bP)))
933- else true
934- if ((eO == eO))
935- then {
936- let eP = invoke(az, "burn", [dq], [AttachedPayment(bK, dq)])
937- if ((eP == eP))
938- then cf
939- else throw("Strict value is not equal to itself.")
940- }
941- else throw("Strict value is not equal to itself.")
942- }
943- else throw("Strict value is not equal to itself.")
944- }
945- else throw("Strict value is not equal to itself.")
946- }
947-
948-
949-
950-@Callable(di)
951-func activate (eQ,eR) = if ((toString(di.caller) != toString(az)))
952- then am("denied")
953- else $Tuple2([StringEntry(Y(), eQ), StringEntry(Z(), eR)], "success")
954-
955-
956-
957-@Callable(di)
958-func setS (eS,eO) = if ((toString(di.caller) != av(this, ab())))
959- then dv
960- else [StringEntry(eS, eO)]
961-
962-
963-
964-@Callable(di)
965-func setI (eS,eO) = if ((toString(di.caller) != av(this, ab())))
966- then dv
967- else [IntegerEntry(eS, eO)]
968-
969-
970-
971-@Callable(di)
972-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aE())
973-
974-
975-
976-@Callable(di)
977-func getAccBalanceWrapperREADONLY (aZ) = $Tuple2(nil, aY(aZ))
978-
979-
980-
981-@Callable(di)
982-func calcPricesWrapperREADONLY (bq,br,bv) = {
983- let eT = bu(bq, br, bv)
984- $Tuple2(nil, [toString(eT[0]), toString(eT[1]), toString(eT[2])])
985- }
986-
987-
988-
989-@Callable(di)
990-func fromX18WrapperREADONLY (G,eU) = $Tuple2(nil, F(parseBigIntValue(G), eU))
991-
992-
993-
994-@Callable(di)
995-func toX18WrapperREADONLY (D,E) = $Tuple2(nil, toString(C(D, E)))
996-
997-
998-
999-@Callable(di)
1000-func calcPriceBigIntWrapperREADONLY (bb,bc) = $Tuple2(nil, toString(ba(parseBigIntValue(bb), parseBigIntValue(bc))))
1001-
1002-
1003-
1004-@Callable(di)
1005-func estimatePutOperationWrapperREADONLY (bG,bg,ci,eV,ck,eW,eX,cm,cn) = $Tuple2(nil, cg(bG, bg, ci, eV, ck, eW, eX, cm, cn, false, 0, ""))
1006-
1007-
1008-
1009-@Callable(di)
1010-func estimateGetOperationWrapperREADONLY (bG,eY,bI,eX) = {
1011- let cy = bF(bG, eY, bI, addressFromStringValue(eX))
1012- $Tuple2(nil, $Tuple10(cy._1, cy._2, cy._3, cy._4, cy._5, cy._6, cy._7, toString(cy._8), cy._9, cy._10))
1013- }
1014-
1015-
1016-@Verifier(eZ)
1017-func fa () = {
1018- let at = eZ
1019- if ($isInstanceOf(at, "Order"))
1020- then {
1021- let cV = at
1022- let fb = aC()
1023- let ap = cU(cV)
1024- let fc = sigVerify(cV.bodyBytes, cV.proofs[0], cV.senderPublicKey)
1025- let fd = sigVerify(cV.bodyBytes, cV.proofs[1], fb)
1026- if (if (if (ap)
1027- then fc
956+ let cR = ar
957+ let eL = aA()
958+ let an = cQ(cR)
959+ let eM = sigVerify(cR.bodyBytes, cR.proofs[0], cR.senderPublicKey)
960+ let eN = sigVerify(cR.bodyBytes, cR.proofs[1], eL)
961+ if (if (if (an)
962+ then eM
1028963 else false)
1029- then fd
964+ then eN
1030965 else false)
1031966 then true
1032- else ao(ap, fc, fd)
967+ else am(an, eM, eN)
1033968 }
1034969 else {
1035- let fe = {
1036- let ff = ds()
1037- if ($isInstanceOf(ff, "ByteVector"))
970+ let eO = {
971+ let eP = dj()
972+ if ($isInstanceOf(eP, "ByteVector"))
1038973 then {
1039- let dx = ff
1040- dx
974+ let do = eP
975+ do
1041976 }
1042- else if ($isInstanceOf(ff, "Unit"))
1043- then eZ.senderPublicKey
977+ else if ($isInstanceOf(eP, "Unit"))
978+ then eJ.senderPublicKey
1044979 else throw("Match error")
1045980 }
1046- sigVerify(eZ.bodyBytes, eZ.proofs[0], fe)
981+ sigVerify(eJ.bodyBytes, eJ.proofs[0], eO)
1047982 }
1048983 }
1049984

github/deemru/w8io/026f985 
271.53 ms