tx · 2dVLCenRoox2uANFrH6VQwTyqVNEZJZ18Q6eDqH5di47

3N4vUDe3oc1YPNwMyQi2h8f2tmGoA7wBZp2:  -0.03500000 Waves

2022.05.24 16:52 [2065854] smart account 3N4vUDe3oc1YPNwMyQi2h8f2tmGoA7wBZp2 > SELF 0.00000000 Waves

{ "type": 13, "id": "2dVLCenRoox2uANFrH6VQwTyqVNEZJZ18Q6eDqH5di47", "fee": 3500000, "feeAssetId": null, "timestamp": 1653400331856, "version": 1, "sender": "3N4vUDe3oc1YPNwMyQi2h8f2tmGoA7wBZp2", "senderPublicKey": "6MuWw1pkme7UgQX2hZh8yTZyoWVkz8A4rmHZ1acrsrVm", "proofs": [ "4UiYbXtcX9vnszg6qJ8AKcUdrgJ1SRhYCChy6UBGcd9479xHGvKo9uZJoZ15vskcuuLQDN9PE2XDiQTARaN8Yfqh" ], "script": "base64:AAIFAAAAAAAAC68IAhIDCgEIEgMKAQgSABIECgIBBBIHCgUBAQEBBBIDCgEBEgASBwoFAQEBCAESBAoCAQESAwoBARIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIJb25lQmlnSW50IgpzbGlwcGFnZTREIgVBbXVsdCIFRGNvbnYiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiClBvb2xQdXREaXMiDlBvb2xNYXRjaGVyRGlzIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIglpZHhQb29sU3QiCWlkeExQQXNJZCIJaWR4QW1Bc0lkIglpZHhQckFzSWQiC2lkeEFtdEFzRGNtIg1pZHhQcmljZUFzRGNtIgtpZHhJQW10QXNJZCINaWR4SVByaWNlQXNJZCIPaWR4RmFjdFN0YWtDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciIFZGVsYXkiAnQxIgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0IgJmMSIDdmFsIg9yZXN1bHRTY2FsZU11bHQiAnRzIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiAXQiA3BhdSICdWEiBHR4SWQiA2dhdSICYWEiAnBhIgNhbXAiA2FkYSIFbGdvdGMiBmNhbGxlciIFbHNvdGMiBGZjZmciBG10cGsiAnBjIgZpQW10QXMiBWlQckFzIgNtYmEiBWJBU3RyIgNhcHMiA3RvZSIDb3JWIgZzZW5kclYiBm1hdGNoViIDc3RyIgckbWF0Y2gwIgZ2YWxTdHIiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIDZmNhIgFBIgNpZ3MiAm1wIgNncGMiBWFtdEFzIgdwcmljZUFzIghpUHJpY2VBcyIDZ2ZjIhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiA2VnbyIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCILdXNlckFkZHJlc3MiBGxwSWQiBGFtSWQiBHBySWQiBWFtRGNtIgVwckRjbSIDc3RzIgdscEVtaXNzIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiCmxwRW1pc3NYMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIDZXBvIgdpbkFtQW10IgZpbkFtSWQiB2luUHJBbXQiBmluUHJJZCIGaXNFdmFsIgZlbWl0THAiCmlzT25lQXNzZXQiBnBtdEFtdCIFcG10SWQiB2FtSWRTdHIiB3BySWRTdHIiCWluQW1JZFN0ciIJaW5QcklkU3RyIgZhbXREY20iCHByaWNlRGNtIgRscEVtIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgFyIgtzbGlwcGFnZVgxOCIPc2xpcHBhZ2VSZWFsWDE4Ig1scEVtaXNzaW9uWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIg0kdDAxNTUzMTE1ODc2Igp3cml0ZUFtQW10Igp3cml0ZVByQW10Igtjb21tb25TdGF0ZSIDbW9hIgVvcmRlciIHYW10QXNJZCIGcHJBc0lkIg9hY2NBbXRBc0JhbGFuY2UiDmFjY1ByQXNCYWxhbmNlIgpvckFtdEFzc2V0IgpvckFtdEFzU3RyIglvclByQXNzZXQiCW9yUHJBc1N0ciIKb3JkZXJQcmljZSIOY2FzdE9yZGVyUHJpY2UiEWlzT3JkZXJQcmljZVZhbGlkIgJjZyIBaSIDcG10IgJjcCIHYW1Bc1BtdCIHcHJBc1BtdCIBbSIBcyICcG0iAnBkIgJtbSICcGsiAWMiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgJjbSIDaHBtIgNjcG0iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIgthbUFzc2V0UGFydCILcHJBc3NldFBhcnQiBW91dExwIgdnd3hDbnRyIgdwb29sQ2ZnIgVhZGRvbiINYWRkb25Db250cmFjdCIFY2hlY2siDSR0MDI0NzM3MjUxMTciDGFtQmFsYW5jZU5vdyIMcHJCYWxhbmNlTm93Igx2aXJ0U3dhcEluQW0iDXZpcnRTd2FwT3V0UHIiDHZpcnRTd2FwSW5QciINdmlydFN3YXBPdXRBbSIGRDB2c0QxIgZlc3RQdXQiB2VzdGltTFAiCWxwQ2FsY1JlcyIHbWF4U2xwZyIJb3V0QW10QW10IgFiIgpleGNoUmVzdWx0Igdub3RVc2VkIglvdXRBbW91bnQiCm91dEFzc2V0SWQiCmVzdGltQW1BbXQiCmVzdGltUHJBbXQiDSR0MDMwMDU4MzA1MTUiCHRvdGFsR2V0IghmaW5hbFJl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", "chainId": 84, "height": 2065854, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: A5eBjfEsGLxzBn1QCGVMBLzkifw2NxN1CtBPkUNMLKR8 Next: 7MJW1cdV9pbvm3eEtn2rGWvo4AfvBPFCYUZCKZMpXQaS Diff:
OldNewDifferences
5353
5454 let z = 10
5555
56-func A (B,C) = fraction(toBigInt(B), c, toBigInt(C))
56+let A = "%s__delay"
57+
58+func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
5759
5860
59-func D (E,F) = toInt(fraction(E, toBigInt(F), c))
61+func E (F,G) = toInt(fraction(F, toBigInt(G), c))
6062
6163
62-func G (H,I,J) = fraction(H, I, J)
64+func H (I,J,K) = fraction(I, J, K)
6365
6466
65-func K (E) = if ((d > E))
66- then -(E)
67- else E
67+func L (F) = if ((d > F))
68+ then -(F)
69+ else F
6870
6971
70-func L () = "%s__factoryContract"
72+func M () = "%s__factoryContract"
7173
7274
73-func M () = "%s__managerPublicKey"
75+func N () = "%s__managerPublicKey"
7476
7577
76-func N () = "%s__pendingManagerPublicKey"
78+func O () = "%s__pendingManagerPublicKey"
7779
7880
79-func O () = "%s%s__price__last"
81+func P () = "%s%s__price__last"
8082
8183
82-func P (Q,R) = makeString(["%s%s%d%d__price__history", toString(Q), toString(R)], i)
84+func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], i)
8385
8486
85-func S (T,U) = ((("%s%s%s__P__" + T) + "__") + U)
87+func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
8688
8789
88-func V (T,U) = ((("%s%s%s__G__" + T) + "__") + U)
90+func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
8991
9092
91-func W () = "%s__amountAsset"
93+func X () = "%s__amountAsset"
9294
9395
94-func X () = "%s__priceAsset"
96+func Y () = "%s__priceAsset"
9597
9698
97-func Y () = "%s__amp"
99+func Z () = "%s__amp"
98100
99101
100-func Z () = "%s__addonAddr"
102+func aa () = "%s__addonAddr"
101103
102104
103-func aa () = "%s__factoryConfig"
105+func ab (ac) = makeString(["%s%s__lastGetOneTknCall", ac], i)
104106
105107
106-func ab () = "%s%s__matcher__publicKey"
108+func ad (ac) = makeString(["%s%s__lastPutOneTknCall", ac], i)
107109
108110
109-func ac (ad,ae) = (((("%d%d%s__" + ad) + "__") + ae) + "__config")
111+func ae () = "%s__factoryConfig"
110112
111113
112-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
114+func af () = "%s%s__matcher__publicKey"
113115
114116
115-func ah () = "%s__shutdown"
117+func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
116118
117119
118-func ai (aj,ak,al) = throw(((((("Failed: ordValid=" + toString(aj)) + " sndrValid=") + toString(ak)) + " mtchrValid=") + toString(al)))
120+func aj (ak) = ("%s%s%s__mappings__baseAsset2internalId__" + ak)
119121
120122
121-func am (E) = {
122- let an = E
123- if ($isInstanceOf(an, "String"))
123+func al () = "%s__shutdown"
124+
125+
126+func am (an,ao,ap) = throw(((((("Failed: ordValid=" + toString(an)) + " sndrValid=") + toString(ao)) + " mtchrValid=") + toString(ap)))
127+
128+
129+func aq (F) = {
130+ let ar = F
131+ if ($isInstanceOf(ar, "String"))
124132 then {
125- let ao = an
126- ao
133+ let as = ar
134+ as
127135 }
128136 else throw("fail cast to String")
129137 }
130138
131139
132-func ap (aq,ar) = valueOrErrorMessage(getString(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
140+func at (au,av) = valueOrErrorMessage(getString(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
133141
134142
135-func as (aq,ar) = valueOrErrorMessage(getInteger(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
143+func aw (au,av) = valueOrErrorMessage(getInteger(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
136144
137145
138-let at = addressFromStringValue(ap(this, L()))
146+let ax = addressFromStringValue(at(this, M()))
139147
140-let au = ap(this, Y())
148+let ay = at(this, Z())
141149
142-func av () = valueOrElse(getBoolean(at, ah()), false)
150+func az () = valueOrElse(getBoolean(ax, al()), false)
143151
144152
145-func aw () = fromBase58String(ap(at, ab()))
153+func aA () = fromBase58String(at(ax, af()))
146154
147155
148-func ax () = {
149- let ay = ap(this, W())
150- let az = ap(this, X())
151- let aA = as(at, af(az))
152- let ad = as(at, af(ay))
153- split(ap(at, ac(toString(ad), toString(aA))), i)
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)
154162 }
155163
156164
157-func aB () = split(ap(at, aa()), i)
165+func aF () = split(at(ax, ae()), i)
158166
159167
160-func aC (aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aD), toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM)], i)
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)
161169
162170
163-func aN (aO,aP,aQ,aG,aJ,aK) = makeString(["%d%d%d%d%d%d", toString(aO), toString(aP), toString(aQ), toString(aG), toString(aJ), toString(aK)], i)
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)
164172
165173
166-func aR (aS) = if ((aS == "WAVES"))
174+func aV (aW) = if ((aW == "WAVES"))
167175 then wavesBalance(this).available
168- else assetBalance(this, fromBase58String(aS))
176+ else assetBalance(this, fromBase58String(aW))
169177
170178
171-func aT (aU,aV) = fraction(aU, c, aV)
179+func aX (aY,aZ) = fraction(aY, c, aZ)
172180
173181
174-func aW (aX,aY,aZ) = {
175- let ba = fraction((aX - aY), b, aY)
176- let bb = ((aZ - K(ba)) > d)
177- if (!(bb))
178- then throw(("Big slpg: " + toString(ba)))
179- else $Tuple2(bb, min([aX, aY]))
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]))
180188 }
181189
182190
183-func bc (bd,be,bf) = {
184- let ba = fraction(be, b, bd)
185- let bg = (bf > ba)
186- if (if (bg)
191+func bg (bh,bi,bj) = {
192+ let be = fraction(bi, b, bh)
193+ let bk = (bj > be)
194+ if (if (bk)
187195 then true
188- else (be > bd))
189- then throw(((((((toString(be) + " ") + toString(bd)) + " ") + toString(ba)) + " ") + toString(bf)))
190- else bg
196+ else (bi > bh))
197+ then throw(((((((toString(bi) + " ") + toString(bh)) + " ") + toString(be)) + " ") + toString(bj)))
198+ else bk
191199 }
192200
193201
194-func bh (bi,bj,bk,bl) = {
195- let bm = A(bk, bi)
196- let bn = A(bl, bj)
197- aT(bn, bm)
202+func bl (bm,bn,bo,bp) = {
203+ let bq = B(bo, bm)
204+ let br = B(bp, bn)
205+ aX(br, bq)
198206 }
199207
200208
201-func bo (bk,bl,bp) = {
202- let bq = ax()
203- let br = parseIntValue(bq[t])
204- let bs = parseIntValue(bq[u])
205- let bt = bh(br, bs, bk, bl)
206- let aV = A(bk, br)
207- let aU = A(bl, bs)
208- let bu = A(bp, a)
209- let bv = aT(aV, bu)
210- let bw = aT(aU, bu)
211-[bt, bv, bw]
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]
212220 }
213221
214222
215-func bx (bk,bl,bp) = {
216- let by = bo(bk, bl, bp)
217-[D(by[0], a), D(by[1], a), D(by[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)]
218226 }
219227
220228
221-func bz (bA,bB,bC,bD) = {
222- let bq = ax()
223- let bE = bq[q]
224- let bF = bq[r]
225- let bG = bq[s]
226- let bH = parseIntValue(bq[t])
227- let bI = parseIntValue(bq[u])
228- let bJ = bq[p]
229- let bK = valueOrErrorMessage(assetInfo(fromBase58String(bE)), "Wrong LP id").quantity
230- if ((bE != bB))
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))
231239 then throw("Wrong pmt asset")
232240 else {
233- let bL = aR(bF)
234- let bM = A(bL, bH)
235- let bN = aR(bG)
236- let bO = A(bN, bI)
237- let bP = aT(bO, bM)
238- let bQ = D(bP, a)
239- let bR = A(bC, a)
240- let bS = A(bK, a)
241- let bT = fraction(bM, bR, bS)
242- let bU = fraction(bO, bR, bS)
243- let bV = D(bT, bH)
244- let bW = D(bU, bI)
245- let bX = if ((bA == ""))
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 == ""))
246254 then nil
247- else [ScriptTransfer(bD, bV, if ((bF == "WAVES"))
255+ else [ScriptTransfer(bH, bZ, if ((bJ == "WAVES"))
248256 then unit
249- else fromBase58String(bF)), ScriptTransfer(bD, bW, if ((bG == "WAVES"))
257+ else fromBase58String(bJ)), ScriptTransfer(bH, ca, if ((bK == "WAVES"))
250258 then unit
251- else fromBase58String(bG)), StringEntry(V(toString(bD), bA), aN(bV, bW, bC, bQ, height, lastBlock.timestamp)), IntegerEntry(O(), bQ), IntegerEntry(P(height, lastBlock.timestamp), bQ)]
252- $Tuple10(bV, bW, bF, bG, bL, bN, bK, bP, bJ, bX)
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)
253261 }
254262 }
255263
256264
257-func bY (bA,aZ,bZ,ca,cb,cc,bD,cd,ce,cf,cg,ch) = {
258- let bq = ax()
259- let bE = fromBase58String(bq[q])
260- let ci = bq[r]
261- let cj = bq[s]
262- let ck = bq[v]
263- let cl = bq[w]
264- let cm = parseIntValue(bq[t])
265- let cn = parseIntValue(bq[u])
266- let bJ = bq[p]
267- let co = valueOrErrorMessage(assetInfo(bE), "Wr lp as").quantity
268- let bL = if (cd)
269- then aR(ci)
270- else if (if (cf)
271- then (ch == ci)
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)
272280 else false)
273- then (aR(ci) - cg)
274- else if (cf)
275- then aR(ci)
276- else (aR(ci) - bZ)
277- let bN = if (cd)
278- then aR(cj)
279- else if (if (cf)
280- then (ch == cj)
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)
281289 else false)
282- then (aR(cj) - cg)
283- else if (cf)
284- then aR(cj)
285- else (aR(cj) - cb)
286- let cp = A(bZ, cm)
287- let cq = A(cb, cn)
288- let cr = aT(cq, cp)
289- let bM = A(bL, cm)
290- let bO = A(bN, cn)
291- let cs = if ((co == 0))
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))
292300 then {
293- let bP = d
294- let ct = d
295- let bu = pow((cp * cq), 0, toBigInt(5), 1, 0, DOWN)
296- $Tuple5(D(bu, a), D(cp, cm), D(cq, cn), aT((bO + cq), (bM + cp)), ct)
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)
297305 }
298306 else {
299- let bP = aT(bO, bM)
300- let cu = fraction(K((bP - cr)), c, bP)
301- let ct = A(aZ, a)
302- if (if ((bP != d))
303- then (cu > ct)
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)
304312 else false)
305- then throw(((("Price slippage " + toString(cu)) + " > ") + toString(ct)))
313+ then throw(((("Price slippage " + toString(cy)) + " > ") + toString(cx)))
306314 else {
307- let cv = A(co, a)
308- let cw = fraction(cp, bP, c)
309- let cx = fraction(cq, c, bP)
310- let cy = if ((cw > cq))
311- then $Tuple2(cx, cq)
312- else $Tuple2(cp, cw)
313- let cz = cy._1
314- let cA = cy._2
315- let bu = fraction(cv, cA, bO)
316- $Tuple5(D(bu, a), D(cz, cm), D(cA, cn), bP, ct)
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)
317325 }
318326 }
319- let cB = cs._1
320- let cC = cs._2
321- let cD = cs._3
322- let bQ = D(cs._4, a)
323- let cE = D(cs._5, a)
324- if ((0 >= cB))
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))
325333 then throw("LP <= 0")
326334 else {
327- let cF = if (!(ce))
335+ let cJ = if (!(ci))
328336 then 0
329- else cB
330- let cG = (bZ - cC)
331- let cH = (cb - cD)
332- let cI = if (if (cf)
333- then (ch == ci)
337+ else cF
338+ let cK = (cd - cG)
339+ let cL = (cf - cH)
340+ let cM = if (if (cj)
341+ then (cl == cm)
334342 else false)
335- then $Tuple2(cg, 0)
336- else if (if (cf)
337- then (ch == cj)
343+ then $Tuple2(ck, 0)
344+ else if (if (cj)
345+ then (cl == cn)
338346 else false)
339- then $Tuple2(0, cg)
340- else $Tuple2(cC, cD)
341- let cJ = cI._1
342- let cK = cI._2
343- let cL = [IntegerEntry(O(), bQ), IntegerEntry(P(height, lastBlock.timestamp), bQ), StringEntry(S(bD, bA), aC(cJ, cK, cF, bQ, aZ, cE, height, lastBlock.timestamp, cG, cH))]
344- $Tuple13(cB, cF, bQ, bL, bN, co, bE, bJ, cL, cG, cH, ca, cc)
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)
345353 }
346354 }
347355
348356
349-func cM (cN) = {
350- let bq = ax()
351- let cO = bq[r]
352- let cP = bq[s]
353- let bJ = parseIntValue(bq[p])
354- let br = parseIntValue(bq[t])
355- let bs = parseIntValue(bq[u])
356- let cQ = aR(cO)
357- let cR = aR(cP)
358- let bP = if ((cN.orderType == Buy))
359- then bh(br, bs, (cQ + cN.amount), cR)
360- else bh(br, bs, (cQ - cN.amount), cR)
361- let bQ = D(bP, a)
362- if (if (if (av())
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())
363371 then true
364- else (bJ == m))
372+ else (bN == m))
365373 then true
366- else (bJ == n))
374+ else (bN == n))
367375 then throw("Admin blocked")
368376 else {
369- let cS = cN.assetPair.amountAsset
370- let cT = if ((cS == unit))
377+ let cW = cR.assetPair.amountAsset
378+ let cX = if ((cW == unit))
371379 then "WAVES"
372- else toBase58String(value(cS))
373- let cU = cN.assetPair.priceAsset
374- let cV = if ((cU == unit))
380+ else toBase58String(value(cW))
381+ let cY = cR.assetPair.priceAsset
382+ let cZ = if ((cY == unit))
375383 then "WAVES"
376- else toBase58String(value(cU))
377- if (if ((cT != cO))
384+ else toBase58String(value(cY))
385+ if (if ((cX != cS))
378386 then true
379- else (cV != cP))
387+ else (cZ != cT))
380388 then throw("Wr assets")
381389 else {
382- let cW = cN.price
383- let cn = fraction(a, bs, br)
384- let cX = G(cW, a, cn)
385- let cY = if ((cN.orderType == Buy))
386- then (bQ >= cX)
387- else (cX >= bQ)
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)
388396 true
389397 }
390398 }
391399 }
392400
393401
394-func cZ (da) = if ((size(da.payments) != 1))
402+func dd (de) = if ((size(de.payments) != 1))
395403 then throw("1 pmnt exp")
396404 else {
397- let db = value(da.payments[0])
398- let bB = value(db.assetId)
399- let cg = db.amount
400- let cs = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
401- let bV = cs._1
402- let bW = cs._2
403- let bJ = parseIntValue(cs._9)
404- let bX = cs._10
405- if (if (av())
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())
406414 then true
407- else (bJ == n))
408- then throw(("Admin blocked: " + toString(bJ)))
409- else $Tuple5(bV, bW, cg, bB, bX)
415+ else (bN == n))
416+ then throw(("Admin blocked: " + toString(bN)))
417+ else $Tuple5(bZ, ca, ck, bF, cb)
410418 }
411419
412420
413-func dc (dd,U,de,df,aZ,ce,cf,cg,ch) = {
414- let cs = bY(U, aZ, value(de).amount, value(de).assetId, value(df).amount, value(df).assetId, dd, false, ce, cf, cg, ch)
415- let bJ = parseIntValue(cs._8)
416- if (if (if (av())
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())
417425 then true
418- else (bJ == l))
426+ else (bN == l))
419427 then true
420- else (bJ == n))
421- then throw(("Blocked:" + toString(bJ)))
422- else cs
428+ else (bN == n))
429+ then throw(("Blocked:" + toString(bN)))
430+ else cw
423431 }
424432
425433
426-func dg () = {
427- let an = getString(M())
428- if ($isInstanceOf(an, "String"))
434+func dj () = {
435+ let ar = getString(N())
436+ if ($isInstanceOf(ar, "String"))
429437 then {
430- let dh = an
431- fromBase58String(dh)
438+ let dk = ar
439+ fromBase58String(dk)
432440 }
433- else if ($isInstanceOf(an, "Unit"))
441+ else if ($isInstanceOf(ar, "Unit"))
434442 then unit
435443 else throw("Match error")
436444 }
437445
438446
439-func di () = {
440- let an = getString(N())
441- if ($isInstanceOf(an, "String"))
447+func dl () = {
448+ let ar = getString(O())
449+ if ($isInstanceOf(ar, "String"))
442450 then {
443- let dh = an
444- fromBase58String(dh)
451+ let dk = ar
452+ fromBase58String(dk)
445453 }
446- else if ($isInstanceOf(an, "Unit"))
454+ else if ($isInstanceOf(ar, "Unit"))
447455 then unit
448456 else throw("Match error")
449457 }
450458
451459
452-let dj = throw("Permission denied")
460+let dm = throw("Permission denied")
453461
454-func dk (da) = {
455- let an = dg()
456- if ($isInstanceOf(an, "ByteVector"))
462+func dn (de) = {
463+ let ar = dj()
464+ if ($isInstanceOf(ar, "ByteVector"))
457465 then {
458- let dl = an
459- if ((da.callerPublicKey == dl))
466+ let do = ar
467+ if ((de.callerPublicKey == do))
460468 then true
461- else dj
469+ else dm
462470 }
463- else if ($isInstanceOf(an, "Unit"))
464- then if ((da.caller == this))
471+ else if ($isInstanceOf(ar, "Unit"))
472+ then if ((de.caller == this))
465473 then true
466- else dj
474+ else dm
467475 else throw("Match error")
468476 }
469477
470478
471-@Callable(da)
472-func constructor (L) = {
473- let dm = dk(da)
474- if ((dm == dm))
475- then [StringEntry(L(), L)]
479+@Callable(de)
480+func constructor (M) = {
481+ let dp = dn(de)
482+ if ((dp == dp))
483+ then [StringEntry(M(), M)]
476484 else throw("Strict value is not equal to itself.")
477485 }
478486
479487
480488
481-@Callable(da)
482-func setManager (dn) = {
483- let dm = dk(da)
484- if ((dm == dm))
489+@Callable(de)
490+func setManager (dq) = {
491+ let dp = dn(de)
492+ if ((dp == dp))
485493 then {
486- let do = fromBase58String(dn)
487- if ((do == do))
488- then [StringEntry(N(), dn)]
494+ let dr = fromBase58String(dq)
495+ if ((dr == dr))
496+ then [StringEntry(O(), dq)]
489497 else throw("Strict value is not equal to itself.")
490498 }
491499 else throw("Strict value is not equal to itself.")
493501
494502
495503
496-@Callable(da)
504+@Callable(de)
497505 func confirmManager () = {
498- let by = di()
499- let dp = if (isDefined(by))
506+ let bC = dl()
507+ let ds = if (isDefined(bC))
500508 then true
501509 else throw("No pending manager")
502- if ((dp == dp))
510+ if ((ds == ds))
503511 then {
504- let dq = if ((da.callerPublicKey == value(by)))
512+ let dt = if ((de.callerPublicKey == value(bC)))
505513 then true
506514 else throw("You are not pending manager")
507- if ((dq == dq))
508- then [StringEntry(M(), toBase58String(value(by))), DeleteEntry(N())]
515+ if ((dt == dt))
516+ then [StringEntry(N(), toBase58String(value(bC))), DeleteEntry(O())]
509517 else throw("Strict value is not equal to itself.")
510518 }
511519 else throw("Strict value is not equal to itself.")
513521
514522
515523
516-@Callable(da)
517-func put (dr,ds) = {
518- let dt = aB()
519- let du = valueOrErrorMessage(addressFromString(dt[x]), "Wr st addr")
520- let dv = valueOrErrorMessage(addressFromString(dt[y]), "Wr sl addr")
521- if ((0 > dr))
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))
522530 then throw("Wrong slippage")
523- else if ((size(da.payments) != 2))
531+ else if ((size(de.payments) != 2))
524532 then throw("2 pmnts expd")
525533 else {
526- let dw = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], dr, true, false, 0, "")
527- let cF = dw._2
528- let dx = dw._7
529- let bX = dw._9
530- let cG = dw._10
531- let cH = dw._11
532- let bF = dw._12
533- let bG = dw._13
534- let cs = invoke(at, "emit", [cF], nil)
535- if ((cs == cs))
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))
536544 then {
537- let dy = {
538- let an = cs
539- if ($isInstanceOf(an, "Address"))
545+ let dB = {
546+ let ar = cw
547+ if ($isInstanceOf(ar, "Address"))
540548 then {
541- let dz = an
542- invoke(dz, "emit", [cF], nil)
549+ let dC = ar
550+ invoke(dC, "emit", [cJ], nil)
543551 }
544552 else unit
545553 }
546- if ((dy == dy))
554+ if ((dB == dB))
547555 then {
548- let dA = if ((cG > 0))
549- then invoke(dv, "put", nil, [AttachedPayment(bF, cG)])
556+ let dD = if ((cK > 0))
557+ then invoke(dy, "put", nil, [AttachedPayment(bJ, cK)])
550558 else nil
551- if ((dA == dA))
559+ if ((dD == dD))
552560 then {
553- let dB = if ((cH > 0))
554- then invoke(dv, "put", nil, [AttachedPayment(bG, cH)])
561+ let dE = if ((cL > 0))
562+ then invoke(dy, "put", nil, [AttachedPayment(bK, cL)])
555563 else nil
556- if ((dB == dB))
564+ if ((dE == dE))
557565 then {
558- let dC = if (ds)
566+ let dF = if (dv)
559567 then {
560- let dD = invoke(du, "stake", nil, [AttachedPayment(dx, cF)])
561- if ((dD == dD))
568+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
569+ if ((dG == dG))
562570 then nil
563571 else throw("Strict value is not equal to itself.")
564572 }
565- else [ScriptTransfer(da.caller, cF, dx)]
566- (bX ++ dC)
573+ else [ScriptTransfer(de.caller, cJ, dA)]
574+ (cb ++ dF)
567575 }
568576 else throw("Strict value is not equal to itself.")
569577 }
577585
578586
579587
580-@Callable(da)
581-func putOneTkn (dE,dF,dG,aZ,ds) = {
582- let bq = aB()
583- let du = valueOrErrorMessage(addressFromString(bq[x]), "Wr st addr")
584- let dv = valueOrErrorMessage(addressFromString(bq[y]), "Wr sl addr")
585- let dH = valueOrErrorMessage(addressFromString(bq[z]), "Wr gwx addr")
586- let dI = ax()
587- let bF = dI[r]
588- let bG = dI[s]
589- let bH = parseIntValue(dI[t])
590- let bI = parseIntValue(dI[u])
591- if (if (if (if ((0 >= aZ))
592- then true
593- else (0 >= dE))
594- then true
595- else (0 >= dF))
596- then true
597- else (0 >= dG))
598- then throw("Wrong params")
599- else if ((size(da.payments) != 1))
600- then throw("1 pmnt expd")
601- else {
602- let db = value(da.payments[0])
603- let bB = toBase58String(value(db.assetId))
604- let cg = db.amount
605- if (if (if ((dE > cg))
606- then true
607- else (dF > cg))
608- then true
609- else (10000000 > cg))
610- then throw("Wrong pmt amt")
611- else {
612- let bL = aR(bF)
613- let bN = aR(bG)
614- let dJ = if ((bB == bF))
615- then $Tuple6((bL - cg), bN, (cg - dE), dF, 0, 0)
616- else if ((bB == bG))
617- then $Tuple6(bL, (bN - cg), 0, 0, (cg - dF), dE)
618- else throw("wrong pmtAssetId")
619- let dK = dJ._1
620- let dL = dJ._2
621- let dM = dJ._3
622- let dN = dJ._4
623- let dO = dJ._5
624- let dP = dJ._6
625- let be = invoke(dH, "calcD", [toString(dK), toString(dL), au, g, h], nil)
626- let bd = invoke(dH, "calcD", [toString(toBigInt(((dK + dM) - dP))), toString(toBigInt(((dL + dO) - dN))), au, g, h], nil)
627- let dQ = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
628- if ((dQ == dQ))
629- then {
630- let dR = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(fromBase58String(bF), dE), AttachedPayment(fromBase58String(bG), dF), aZ, true, true, cg, bB)
631- let dS = dR._2
632- let dx = dR._7
633- let bX = dR._9
634- let cG = dR._10
635- let cH = dR._11
636- let dT = aW(toBigInt(dS), toBigInt(dG), toBigInt(aZ))
637- let cF = toInt(dT._2)
638- let dw = invoke(at, "emit", [cF], nil)
639- if ((dw == dw))
640- then {
641- let dy = {
642- let an = dw
643- if ($isInstanceOf(an, "Address"))
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(aa()), "no addons")
604+ let dO = invoke(dN, "ensureCanPutOneTkn", [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))
644+ then {
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))
655+ then {
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))
644666 then {
645- let dz = an
646- invoke(dz, "emit", [cF], nil)
667+ let dD = if ((cK > 0))
668+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bJ), cK)])
669+ else nil
670+ if ((dD == dD))
671+ then {
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+ }
687+ else throw("Strict value is not equal to itself.")
688+ }
689+ else throw("Strict value is not equal to itself.")
647690 }
648- else unit
691+ else throw("Strict value is not equal to itself.")
649692 }
650- if ((dy == dy))
651- then {
652- let dA = if ((cG > 0))
653- then invoke(dv, "put", nil, [AttachedPayment(fromBase58String(bF), cG)])
654- else nil
655- if ((dA == dA))
656- then {
657- let dB = if ((cH > 0))
658- then invoke(dv, "put", nil, [AttachedPayment(fromBase58String(bG), cH)])
659- else nil
660- if ((dB == dB))
661- then {
662- let dC = if (ds)
663- then {
664- let dD = invoke(du, "stake", nil, [AttachedPayment(dx, cF)])
665- if ((dD == dD))
666- then nil
667- else throw("Strict value is not equal to itself.")
668- }
669- else [ScriptTransfer(da.caller, cF, dx)]
670- (bX ++ dC)
671- }
672- else throw("Strict value is not equal to itself.")
673- }
674- else throw("Strict value is not equal to itself.")
675- }
676- else throw("Strict value is not equal to itself.")
677- }
678- else throw("Strict value is not equal to itself.")
679- }
680- else throw("Strict value is not equal to itself.")
681- }
682- }
683- }
684-
685-
686-
687-@Callable(da)
688-func putForFree (dU) = if ((0 > dU))
689- then throw("Wrong slpg")
690- else if ((size(da.payments) != 2))
691- then throw("2 pmnts expd")
692- else {
693- let dR = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], dU, false, false, 0, "")
694- dR._9
695- }
696-
697-
698-
699-@Callable(da)
700-func get () = {
701- let cs = cZ(da)
702- let dV = cs._1
703- let bW = cs._2
704- let cg = cs._3
705- let bB = cs._4
706- let bX = cs._5
707- let dW = invoke(at, "burn", [cg], [AttachedPayment(bB, cg)])
708- if ((dW == dW))
709- then bX
693+ else throw("Strict value is not equal to itself.")
694+ }
695+ else throw("Strict value is not equal to itself.")
696+ }
697+ }
710698 else throw("Strict value is not equal to itself.")
711699 }
712700
713701
714702
715-@Callable(da)
716-func getOneTkn (dX,dY,dZ,ea,aZ) = if ((size(da.payments) != 1))
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))
717733 then throw("1 pmnt expd")
718734 else {
719- let bq = ax()
720- let bE = bq[q]
721- let bF = bq[r]
722- let bG = bq[s]
723- let bH = parseIntValue(bq[t])
724- let bI = parseIntValue(bq[u])
725- let bJ = bq[p]
726- let dt = aB()
727- let dH = valueOrErrorMessage(addressFromString(dt[z]), "Wr sl addr")
728- let db = value(da.payments[0])
729- let eb = valueOrElse(getString(this, Z()), "")
730- let bD = if ((eb == toString(da.caller)))
731- then da.originCaller
732- else da.caller
733- let bA = toBase58String(da.transactionId)
734- let bB = value(db.assetId)
735- let cg = db.amount
736- if ((1000000000 > cg))
737- then throw("Min pmt 10 LP")
738- else if (if (if ((0 > aZ))
739- then true
740- else (0 > dX))
741- then true
742- else (0 > dZ))
743- then throw("Wrong params")
744- else if ((bE != toBase58String(bB)))
745- then throw("Wrong LP")
746- else {
747- let cs = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
748- let ec = cs._1
749- let ed = cs._2
750- let bL = aR(bF)
751- let bN = aR(bG)
752- let ee = if ((ea == bF))
753- then $Tuple7((bL - ec), (bN - ed), dX, ed, 0, 0, (ec + dX))
754- else if ((ea == bG))
755- then $Tuple7((bL - ec), (bN - ed), 0, 0, dX, ec, (ed + dX))
756- else throw("wrong outAssetId")
757- let dK = ee._1
758- let dL = ee._2
759- let dM = ee._3
760- let dN = ee._4
761- let dO = ee._5
762- let dP = ee._6
763- let ef = ee._7
764- if (if ((0 > dM))
765- then true
766- else (0 > dO))
767- then throw("Wrong calc")
768- else {
769- let be = invoke(dH, "calcD", [toString(dK), toString(dL), au, g, h], nil)
770- let bd = invoke(dH, "calcD", [toString(((dK - dM) + dP)), toString(((dL + dN) - dO)), au, g, h], nil)
771- let dQ = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
772- if ((dQ == dQ))
773- then {
774- let eg = aW(toBigInt(ef), toBigInt(dZ), toBigInt(aZ))
775- if ((eg == eg))
776- then {
777- let eh = if ((ea == bF))
778- then $Tuple2(toInt(eg._2), 0)
779- else $Tuple2(0, toInt(eg._2))
780- let ei = eh._1
781- let ej = eh._2
782- let ek = aT(A(bN, bI), A(bL, bH))
783- let el = D(ek, a)
784- let bX = [ScriptTransfer(bD, (ei + ej), if ((ea == "WAVES"))
785- then unit
786- else fromBase58String(ea)), StringEntry(V(toString(bD), bA), aN(ei, ej, cg, el, height, lastBlock.timestamp)), IntegerEntry(O(), el), IntegerEntry(P(height, lastBlock.timestamp), el)]
787- if ((bX == bX))
788- then {
789- let em = invoke(at, "burn", [cg], [AttachedPayment(bB, cg)])
790- if ((em == em))
791- then bX
792- else throw("Strict value is not equal to itself.")
793- }
794- else throw("Strict value is not equal to itself.")
795- }
796- else throw("Strict value is not equal to itself.")
797- }
798- else throw("Strict value is not equal to itself.")
799- }
800- }
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(aa()), "no addons")
753+ let dO = invoke(dN, "ensureCanGetOneTkn", [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.")
801821 }
802822
803823
804824
805-@Callable(da)
806-func getNoLess (en,eo) = {
807- let cs = cZ(da)
808- let bV = cs._1
809- let bW = cs._2
810- let cg = cs._3
811- let bB = cs._4
812- let bX = cs._5
813- if ((en > bV))
814- then throw(((("Failed: " + toString(bV)) + " < ") + toString(en)))
815- else if ((eo > bW))
816- then throw(((("Failed: " + toString(bW)) + " < ") + toString(eo)))
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)))
817837 else {
818- let ep = invoke(at, "burn", [cg], [AttachedPayment(bB, cg)])
819- if ((ep == ep))
820- then bX
838+ let eu = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
839+ if ((eu == eu))
840+ then cb
821841 else throw("Strict value is not equal to itself.")
822842 }
823843 }
824844
825845
826846
827-@Callable(da)
828-func unstakeAndGet (eq) = {
829- let er = if ((size(da.payments) != 0))
847+@Callable(de)
848+func unstakeAndGet (ev) = {
849+ let ew = if ((size(de.payments) != 0))
830850 then throw("No pmnts expd")
831851 else true
832- if ((er == er))
852+ if ((ew == ew))
833853 then {
834- let bq = ax()
835- let es = aB()
836- let dx = fromBase58String(bq[q])
837- let et = valueOrErrorMessage(addressFromString(es[x]), "Wr st addr")
838- let eu = invoke(et, "unstake", [toBase58String(dx), eq], nil)
839- if ((eu == eu))
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))
840860 then {
841- let cs = bz(toBase58String(da.transactionId), toBase58String(dx), eq, da.caller)
842- let bJ = parseIntValue(cs._9)
843- let bX = cs._10
844- let ev = if (if (av())
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())
845865 then true
846- else (bJ == n))
847- then throw(("Blocked: " + toString(bJ)))
866+ else (bN == n))
867+ then throw(("Blocked: " + toString(bN)))
848868 else true
849- if ((ev == ev))
869+ if ((eA == eA))
850870 then {
851- let ew = invoke(at, "burn", [eq], [AttachedPayment(dx, eq)])
852- if ((ew == ew))
853- then bX
871+ let eB = invoke(ax, "burn", [ev], [AttachedPayment(dA, ev)])
872+ if ((eB == eB))
873+ then cb
854874 else throw("Strict value is not equal to itself.")
855875 }
856876 else throw("Strict value is not equal to itself.")
862882
863883
864884
865-@Callable(da)
866-func activate (ex,ey) = if ((toString(da.caller) != toString(at)))
885+@Callable(de)
886+func activate (eC,eD) = if ((toString(de.caller) != toString(ax)))
867887 then throw("denied")
868- else $Tuple2([StringEntry(W(), ex), StringEntry(X(), ey)], "success")
888+ else $Tuple2([StringEntry(X(), eC), StringEntry(Y(), eD)], "success")
869889
870890
871891
872-@Callable(da)
873-func setS (ez,ev) = if ((toString(da.caller) != ap(this, Z())))
874- then dj
875- else [StringEntry(ez, ev)]
892+@Callable(de)
893+func setS (eE,eA) = if ((toString(de.caller) != at(this, aa())))
894+ then dm
895+ else [StringEntry(eE, eA)]
876896
877897
878898
879-@Callable(da)
880-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ax())
899+@Callable(de)
900+func setI (eE,eA) = if ((toString(de.caller) != at(this, aa())))
901+ then dm
902+ else [IntegerEntry(eE, eA)]
881903
882904
883905
884-@Callable(da)
885-func getAccBalanceWrapperREADONLY (aS) = $Tuple2(nil, aR(aS))
906+@Callable(de)
907+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
886908
887909
888910
889-@Callable(da)
890-func calcPricesWrapperREADONLY (bk,bl,bp) = {
891- let eA = bo(bk, bl, bp)
892- $Tuple2(nil, [toString(eA[0]), toString(eA[1]), toString(eA[2])])
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])])
893920 }
894921
895922
896923
897-@Callable(da)
898-func fromX18WrapperREADONLY (E,eB) = $Tuple2(nil, D(parseBigIntValue(E), eB))
924+@Callable(de)
925+func fromX18WrapperREADONLY (F,eG) = $Tuple2(nil, E(parseBigIntValue(F), eG))
899926
900927
901928
902-@Callable(da)
903-func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C)))
929+@Callable(de)
930+func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
904931
905932
906933
907-@Callable(da)
908-func calcPriceBigIntWrapperREADONLY (aU,aV) = $Tuple2(nil, toString(aT(parseBigIntValue(aU), parseBigIntValue(aV))))
934+@Callable(de)
935+func calcPriceBigIntWrapperREADONLY (aY,aZ) = $Tuple2(nil, toString(aX(parseBigIntValue(aY), parseBigIntValue(aZ))))
909936
910937
911938
912-@Callable(da)
913-func estimatePutOperationWrapperREADONLY (bA,aZ,bZ,ca,cb,cc,eC,cd,ce) = $Tuple2(nil, bY(bA, aZ, bZ, ca, cb, cc, eC, cd, ce, false, 0, ""))
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, ""))
914941
915942
916943
917-@Callable(da)
918-func estimateGetOperationWrapperREADONLY (bA,eD,bC,eC) = {
919- let cs = bz(bA, eD, bC, addressFromStringValue(eC))
920- $Tuple2(nil, $Tuple10(cs._1, cs._2, cs._3, cs._4, cs._5, cs._6, cs._7, toString(cs._8), cs._9, cs._10))
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))
921948 }
922949
923950
924-@Verifier(eE)
925-func eF () = {
926- let an = eE
927- if ($isInstanceOf(an, "Order"))
951+@Verifier(eJ)
952+func eK () = {
953+ let ar = eJ
954+ if ($isInstanceOf(ar, "Order"))
928955 then {
929- let cN = an
930- let eG = aw()
931- let aj = cM(cN)
932- let eH = sigVerify(cN.bodyBytes, cN.proofs[0], cN.senderPublicKey)
933- let eI = sigVerify(cN.bodyBytes, cN.proofs[1], eG)
934- if (if (if (aj)
935- then eH
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
936963 else false)
937- then eI
964+ then eN
938965 else false)
939966 then true
940- else ai(aj, eH, eI)
967+ else am(an, eM, eN)
941968 }
942969 else {
943- let eJ = {
944- let eK = dg()
945- if ($isInstanceOf(eK, "ByteVector"))
970+ let eO = {
971+ let eP = dj()
972+ if ($isInstanceOf(eP, "ByteVector"))
946973 then {
947- let dl = eK
948- dl
974+ let do = eP
975+ do
949976 }
950- else if ($isInstanceOf(eK, "Unit"))
951- then eE.senderPublicKey
977+ else if ($isInstanceOf(eP, "Unit"))
978+ then eJ.senderPublicKey
952979 else throw("Match error")
953980 }
954- sigVerify(eE.bodyBytes, eE.proofs[0], eJ)
981+ sigVerify(eJ.bodyBytes, eJ.proofs[0], eO)
955982 }
956983 }
957984
Full:
OldNewDifferences
11 {-# 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
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(1)
1313
1414 let f = toBigInt((a - ((a * 1) / a)))
1515
1616 let g = "100"
1717
1818 let h = "1"
1919
2020 let i = "__"
2121
2222 let j = ""
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 1
5151
5252 let y = 7
5353
5454 let z = 10
5555
56-func A (B,C) = fraction(toBigInt(B), c, toBigInt(C))
56+let A = "%s__delay"
57+
58+func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
5759
5860
59-func D (E,F) = toInt(fraction(E, toBigInt(F), c))
61+func E (F,G) = toInt(fraction(F, toBigInt(G), c))
6062
6163
62-func G (H,I,J) = fraction(H, I, J)
64+func H (I,J,K) = fraction(I, J, K)
6365
6466
65-func K (E) = if ((d > E))
66- then -(E)
67- else E
67+func L (F) = if ((d > F))
68+ then -(F)
69+ else F
6870
6971
70-func L () = "%s__factoryContract"
72+func M () = "%s__factoryContract"
7173
7274
73-func M () = "%s__managerPublicKey"
75+func N () = "%s__managerPublicKey"
7476
7577
76-func N () = "%s__pendingManagerPublicKey"
78+func O () = "%s__pendingManagerPublicKey"
7779
7880
79-func O () = "%s%s__price__last"
81+func P () = "%s%s__price__last"
8082
8183
82-func P (Q,R) = makeString(["%s%s%d%d__price__history", toString(Q), toString(R)], i)
84+func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], i)
8385
8486
85-func S (T,U) = ((("%s%s%s__P__" + T) + "__") + U)
87+func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
8688
8789
88-func V (T,U) = ((("%s%s%s__G__" + T) + "__") + U)
90+func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
8991
9092
91-func W () = "%s__amountAsset"
93+func X () = "%s__amountAsset"
9294
9395
94-func X () = "%s__priceAsset"
96+func Y () = "%s__priceAsset"
9597
9698
97-func Y () = "%s__amp"
99+func Z () = "%s__amp"
98100
99101
100-func Z () = "%s__addonAddr"
102+func aa () = "%s__addonAddr"
101103
102104
103-func aa () = "%s__factoryConfig"
105+func ab (ac) = makeString(["%s%s__lastGetOneTknCall", ac], i)
104106
105107
106-func ab () = "%s%s__matcher__publicKey"
108+func ad (ac) = makeString(["%s%s__lastPutOneTknCall", ac], i)
107109
108110
109-func ac (ad,ae) = (((("%d%d%s__" + ad) + "__") + ae) + "__config")
111+func ae () = "%s__factoryConfig"
110112
111113
112-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
114+func af () = "%s%s__matcher__publicKey"
113115
114116
115-func ah () = "%s__shutdown"
117+func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
116118
117119
118-func ai (aj,ak,al) = throw(((((("Failed: ordValid=" + toString(aj)) + " sndrValid=") + toString(ak)) + " mtchrValid=") + toString(al)))
120+func aj (ak) = ("%s%s%s__mappings__baseAsset2internalId__" + ak)
119121
120122
121-func am (E) = {
122- let an = E
123- if ($isInstanceOf(an, "String"))
123+func al () = "%s__shutdown"
124+
125+
126+func am (an,ao,ap) = throw(((((("Failed: ordValid=" + toString(an)) + " sndrValid=") + toString(ao)) + " mtchrValid=") + toString(ap)))
127+
128+
129+func aq (F) = {
130+ let ar = F
131+ if ($isInstanceOf(ar, "String"))
124132 then {
125- let ao = an
126- ao
133+ let as = ar
134+ as
127135 }
128136 else throw("fail cast to String")
129137 }
130138
131139
132-func ap (aq,ar) = valueOrErrorMessage(getString(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
140+func at (au,av) = valueOrErrorMessage(getString(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
133141
134142
135-func as (aq,ar) = valueOrErrorMessage(getInteger(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
143+func aw (au,av) = valueOrErrorMessage(getInteger(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
136144
137145
138-let at = addressFromStringValue(ap(this, L()))
146+let ax = addressFromStringValue(at(this, M()))
139147
140-let au = ap(this, Y())
148+let ay = at(this, Z())
141149
142-func av () = valueOrElse(getBoolean(at, ah()), false)
150+func az () = valueOrElse(getBoolean(ax, al()), false)
143151
144152
145-func aw () = fromBase58String(ap(at, ab()))
153+func aA () = fromBase58String(at(ax, af()))
146154
147155
148-func ax () = {
149- let ay = ap(this, W())
150- let az = ap(this, X())
151- let aA = as(at, af(az))
152- let ad = as(at, af(ay))
153- split(ap(at, ac(toString(ad), toString(aA))), i)
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)
154162 }
155163
156164
157-func aB () = split(ap(at, aa()), i)
165+func aF () = split(at(ax, ae()), i)
158166
159167
160-func aC (aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aD), toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM)], i)
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)
161169
162170
163-func aN (aO,aP,aQ,aG,aJ,aK) = makeString(["%d%d%d%d%d%d", toString(aO), toString(aP), toString(aQ), toString(aG), toString(aJ), toString(aK)], i)
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)
164172
165173
166-func aR (aS) = if ((aS == "WAVES"))
174+func aV (aW) = if ((aW == "WAVES"))
167175 then wavesBalance(this).available
168- else assetBalance(this, fromBase58String(aS))
176+ else assetBalance(this, fromBase58String(aW))
169177
170178
171-func aT (aU,aV) = fraction(aU, c, aV)
179+func aX (aY,aZ) = fraction(aY, c, aZ)
172180
173181
174-func aW (aX,aY,aZ) = {
175- let ba = fraction((aX - aY), b, aY)
176- let bb = ((aZ - K(ba)) > d)
177- if (!(bb))
178- then throw(("Big slpg: " + toString(ba)))
179- else $Tuple2(bb, min([aX, aY]))
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]))
180188 }
181189
182190
183-func bc (bd,be,bf) = {
184- let ba = fraction(be, b, bd)
185- let bg = (bf > ba)
186- if (if (bg)
191+func bg (bh,bi,bj) = {
192+ let be = fraction(bi, b, bh)
193+ let bk = (bj > be)
194+ if (if (bk)
187195 then true
188- else (be > bd))
189- then throw(((((((toString(be) + " ") + toString(bd)) + " ") + toString(ba)) + " ") + toString(bf)))
190- else bg
196+ else (bi > bh))
197+ then throw(((((((toString(bi) + " ") + toString(bh)) + " ") + toString(be)) + " ") + toString(bj)))
198+ else bk
191199 }
192200
193201
194-func bh (bi,bj,bk,bl) = {
195- let bm = A(bk, bi)
196- let bn = A(bl, bj)
197- aT(bn, bm)
202+func bl (bm,bn,bo,bp) = {
203+ let bq = B(bo, bm)
204+ let br = B(bp, bn)
205+ aX(br, bq)
198206 }
199207
200208
201-func bo (bk,bl,bp) = {
202- let bq = ax()
203- let br = parseIntValue(bq[t])
204- let bs = parseIntValue(bq[u])
205- let bt = bh(br, bs, bk, bl)
206- let aV = A(bk, br)
207- let aU = A(bl, bs)
208- let bu = A(bp, a)
209- let bv = aT(aV, bu)
210- let bw = aT(aU, bu)
211-[bt, bv, bw]
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]
212220 }
213221
214222
215-func bx (bk,bl,bp) = {
216- let by = bo(bk, bl, bp)
217-[D(by[0], a), D(by[1], a), D(by[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)]
218226 }
219227
220228
221-func bz (bA,bB,bC,bD) = {
222- let bq = ax()
223- let bE = bq[q]
224- let bF = bq[r]
225- let bG = bq[s]
226- let bH = parseIntValue(bq[t])
227- let bI = parseIntValue(bq[u])
228- let bJ = bq[p]
229- let bK = valueOrErrorMessage(assetInfo(fromBase58String(bE)), "Wrong LP id").quantity
230- if ((bE != bB))
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))
231239 then throw("Wrong pmt asset")
232240 else {
233- let bL = aR(bF)
234- let bM = A(bL, bH)
235- let bN = aR(bG)
236- let bO = A(bN, bI)
237- let bP = aT(bO, bM)
238- let bQ = D(bP, a)
239- let bR = A(bC, a)
240- let bS = A(bK, a)
241- let bT = fraction(bM, bR, bS)
242- let bU = fraction(bO, bR, bS)
243- let bV = D(bT, bH)
244- let bW = D(bU, bI)
245- let bX = if ((bA == ""))
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 == ""))
246254 then nil
247- else [ScriptTransfer(bD, bV, if ((bF == "WAVES"))
255+ else [ScriptTransfer(bH, bZ, if ((bJ == "WAVES"))
248256 then unit
249- else fromBase58String(bF)), ScriptTransfer(bD, bW, if ((bG == "WAVES"))
257+ else fromBase58String(bJ)), ScriptTransfer(bH, ca, if ((bK == "WAVES"))
250258 then unit
251- else fromBase58String(bG)), StringEntry(V(toString(bD), bA), aN(bV, bW, bC, bQ, height, lastBlock.timestamp)), IntegerEntry(O(), bQ), IntegerEntry(P(height, lastBlock.timestamp), bQ)]
252- $Tuple10(bV, bW, bF, bG, bL, bN, bK, bP, bJ, bX)
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)
253261 }
254262 }
255263
256264
257-func bY (bA,aZ,bZ,ca,cb,cc,bD,cd,ce,cf,cg,ch) = {
258- let bq = ax()
259- let bE = fromBase58String(bq[q])
260- let ci = bq[r]
261- let cj = bq[s]
262- let ck = bq[v]
263- let cl = bq[w]
264- let cm = parseIntValue(bq[t])
265- let cn = parseIntValue(bq[u])
266- let bJ = bq[p]
267- let co = valueOrErrorMessage(assetInfo(bE), "Wr lp as").quantity
268- let bL = if (cd)
269- then aR(ci)
270- else if (if (cf)
271- then (ch == ci)
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)
272280 else false)
273- then (aR(ci) - cg)
274- else if (cf)
275- then aR(ci)
276- else (aR(ci) - bZ)
277- let bN = if (cd)
278- then aR(cj)
279- else if (if (cf)
280- then (ch == cj)
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)
281289 else false)
282- then (aR(cj) - cg)
283- else if (cf)
284- then aR(cj)
285- else (aR(cj) - cb)
286- let cp = A(bZ, cm)
287- let cq = A(cb, cn)
288- let cr = aT(cq, cp)
289- let bM = A(bL, cm)
290- let bO = A(bN, cn)
291- let cs = if ((co == 0))
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))
292300 then {
293- let bP = d
294- let ct = d
295- let bu = pow((cp * cq), 0, toBigInt(5), 1, 0, DOWN)
296- $Tuple5(D(bu, a), D(cp, cm), D(cq, cn), aT((bO + cq), (bM + cp)), ct)
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)
297305 }
298306 else {
299- let bP = aT(bO, bM)
300- let cu = fraction(K((bP - cr)), c, bP)
301- let ct = A(aZ, a)
302- if (if ((bP != d))
303- then (cu > ct)
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)
304312 else false)
305- then throw(((("Price slippage " + toString(cu)) + " > ") + toString(ct)))
313+ then throw(((("Price slippage " + toString(cy)) + " > ") + toString(cx)))
306314 else {
307- let cv = A(co, a)
308- let cw = fraction(cp, bP, c)
309- let cx = fraction(cq, c, bP)
310- let cy = if ((cw > cq))
311- then $Tuple2(cx, cq)
312- else $Tuple2(cp, cw)
313- let cz = cy._1
314- let cA = cy._2
315- let bu = fraction(cv, cA, bO)
316- $Tuple5(D(bu, a), D(cz, cm), D(cA, cn), bP, ct)
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)
317325 }
318326 }
319- let cB = cs._1
320- let cC = cs._2
321- let cD = cs._3
322- let bQ = D(cs._4, a)
323- let cE = D(cs._5, a)
324- if ((0 >= cB))
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))
325333 then throw("LP <= 0")
326334 else {
327- let cF = if (!(ce))
335+ let cJ = if (!(ci))
328336 then 0
329- else cB
330- let cG = (bZ - cC)
331- let cH = (cb - cD)
332- let cI = if (if (cf)
333- then (ch == ci)
337+ else cF
338+ let cK = (cd - cG)
339+ let cL = (cf - cH)
340+ let cM = if (if (cj)
341+ then (cl == cm)
334342 else false)
335- then $Tuple2(cg, 0)
336- else if (if (cf)
337- then (ch == cj)
343+ then $Tuple2(ck, 0)
344+ else if (if (cj)
345+ then (cl == cn)
338346 else false)
339- then $Tuple2(0, cg)
340- else $Tuple2(cC, cD)
341- let cJ = cI._1
342- let cK = cI._2
343- let cL = [IntegerEntry(O(), bQ), IntegerEntry(P(height, lastBlock.timestamp), bQ), StringEntry(S(bD, bA), aC(cJ, cK, cF, bQ, aZ, cE, height, lastBlock.timestamp, cG, cH))]
344- $Tuple13(cB, cF, bQ, bL, bN, co, bE, bJ, cL, cG, cH, ca, cc)
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)
345353 }
346354 }
347355
348356
349-func cM (cN) = {
350- let bq = ax()
351- let cO = bq[r]
352- let cP = bq[s]
353- let bJ = parseIntValue(bq[p])
354- let br = parseIntValue(bq[t])
355- let bs = parseIntValue(bq[u])
356- let cQ = aR(cO)
357- let cR = aR(cP)
358- let bP = if ((cN.orderType == Buy))
359- then bh(br, bs, (cQ + cN.amount), cR)
360- else bh(br, bs, (cQ - cN.amount), cR)
361- let bQ = D(bP, a)
362- if (if (if (av())
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())
363371 then true
364- else (bJ == m))
372+ else (bN == m))
365373 then true
366- else (bJ == n))
374+ else (bN == n))
367375 then throw("Admin blocked")
368376 else {
369- let cS = cN.assetPair.amountAsset
370- let cT = if ((cS == unit))
377+ let cW = cR.assetPair.amountAsset
378+ let cX = if ((cW == unit))
371379 then "WAVES"
372- else toBase58String(value(cS))
373- let cU = cN.assetPair.priceAsset
374- let cV = if ((cU == unit))
380+ else toBase58String(value(cW))
381+ let cY = cR.assetPair.priceAsset
382+ let cZ = if ((cY == unit))
375383 then "WAVES"
376- else toBase58String(value(cU))
377- if (if ((cT != cO))
384+ else toBase58String(value(cY))
385+ if (if ((cX != cS))
378386 then true
379- else (cV != cP))
387+ else (cZ != cT))
380388 then throw("Wr assets")
381389 else {
382- let cW = cN.price
383- let cn = fraction(a, bs, br)
384- let cX = G(cW, a, cn)
385- let cY = if ((cN.orderType == Buy))
386- then (bQ >= cX)
387- else (cX >= bQ)
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)
388396 true
389397 }
390398 }
391399 }
392400
393401
394-func cZ (da) = if ((size(da.payments) != 1))
402+func dd (de) = if ((size(de.payments) != 1))
395403 then throw("1 pmnt exp")
396404 else {
397- let db = value(da.payments[0])
398- let bB = value(db.assetId)
399- let cg = db.amount
400- let cs = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
401- let bV = cs._1
402- let bW = cs._2
403- let bJ = parseIntValue(cs._9)
404- let bX = cs._10
405- if (if (av())
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())
406414 then true
407- else (bJ == n))
408- then throw(("Admin blocked: " + toString(bJ)))
409- else $Tuple5(bV, bW, cg, bB, bX)
415+ else (bN == n))
416+ then throw(("Admin blocked: " + toString(bN)))
417+ else $Tuple5(bZ, ca, ck, bF, cb)
410418 }
411419
412420
413-func dc (dd,U,de,df,aZ,ce,cf,cg,ch) = {
414- let cs = bY(U, aZ, value(de).amount, value(de).assetId, value(df).amount, value(df).assetId, dd, false, ce, cf, cg, ch)
415- let bJ = parseIntValue(cs._8)
416- if (if (if (av())
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())
417425 then true
418- else (bJ == l))
426+ else (bN == l))
419427 then true
420- else (bJ == n))
421- then throw(("Blocked:" + toString(bJ)))
422- else cs
428+ else (bN == n))
429+ then throw(("Blocked:" + toString(bN)))
430+ else cw
423431 }
424432
425433
426-func dg () = {
427- let an = getString(M())
428- if ($isInstanceOf(an, "String"))
434+func dj () = {
435+ let ar = getString(N())
436+ if ($isInstanceOf(ar, "String"))
429437 then {
430- let dh = an
431- fromBase58String(dh)
438+ let dk = ar
439+ fromBase58String(dk)
432440 }
433- else if ($isInstanceOf(an, "Unit"))
441+ else if ($isInstanceOf(ar, "Unit"))
434442 then unit
435443 else throw("Match error")
436444 }
437445
438446
439-func di () = {
440- let an = getString(N())
441- if ($isInstanceOf(an, "String"))
447+func dl () = {
448+ let ar = getString(O())
449+ if ($isInstanceOf(ar, "String"))
442450 then {
443- let dh = an
444- fromBase58String(dh)
451+ let dk = ar
452+ fromBase58String(dk)
445453 }
446- else if ($isInstanceOf(an, "Unit"))
454+ else if ($isInstanceOf(ar, "Unit"))
447455 then unit
448456 else throw("Match error")
449457 }
450458
451459
452-let dj = throw("Permission denied")
460+let dm = throw("Permission denied")
453461
454-func dk (da) = {
455- let an = dg()
456- if ($isInstanceOf(an, "ByteVector"))
462+func dn (de) = {
463+ let ar = dj()
464+ if ($isInstanceOf(ar, "ByteVector"))
457465 then {
458- let dl = an
459- if ((da.callerPublicKey == dl))
466+ let do = ar
467+ if ((de.callerPublicKey == do))
460468 then true
461- else dj
469+ else dm
462470 }
463- else if ($isInstanceOf(an, "Unit"))
464- then if ((da.caller == this))
471+ else if ($isInstanceOf(ar, "Unit"))
472+ then if ((de.caller == this))
465473 then true
466- else dj
474+ else dm
467475 else throw("Match error")
468476 }
469477
470478
471-@Callable(da)
472-func constructor (L) = {
473- let dm = dk(da)
474- if ((dm == dm))
475- then [StringEntry(L(), L)]
479+@Callable(de)
480+func constructor (M) = {
481+ let dp = dn(de)
482+ if ((dp == dp))
483+ then [StringEntry(M(), M)]
476484 else throw("Strict value is not equal to itself.")
477485 }
478486
479487
480488
481-@Callable(da)
482-func setManager (dn) = {
483- let dm = dk(da)
484- if ((dm == dm))
489+@Callable(de)
490+func setManager (dq) = {
491+ let dp = dn(de)
492+ if ((dp == dp))
485493 then {
486- let do = fromBase58String(dn)
487- if ((do == do))
488- then [StringEntry(N(), dn)]
494+ let dr = fromBase58String(dq)
495+ if ((dr == dr))
496+ then [StringEntry(O(), dq)]
489497 else throw("Strict value is not equal to itself.")
490498 }
491499 else throw("Strict value is not equal to itself.")
492500 }
493501
494502
495503
496-@Callable(da)
504+@Callable(de)
497505 func confirmManager () = {
498- let by = di()
499- let dp = if (isDefined(by))
506+ let bC = dl()
507+ let ds = if (isDefined(bC))
500508 then true
501509 else throw("No pending manager")
502- if ((dp == dp))
510+ if ((ds == ds))
503511 then {
504- let dq = if ((da.callerPublicKey == value(by)))
512+ let dt = if ((de.callerPublicKey == value(bC)))
505513 then true
506514 else throw("You are not pending manager")
507- if ((dq == dq))
508- then [StringEntry(M(), toBase58String(value(by))), DeleteEntry(N())]
515+ if ((dt == dt))
516+ then [StringEntry(N(), toBase58String(value(bC))), DeleteEntry(O())]
509517 else throw("Strict value is not equal to itself.")
510518 }
511519 else throw("Strict value is not equal to itself.")
512520 }
513521
514522
515523
516-@Callable(da)
517-func put (dr,ds) = {
518- let dt = aB()
519- let du = valueOrErrorMessage(addressFromString(dt[x]), "Wr st addr")
520- let dv = valueOrErrorMessage(addressFromString(dt[y]), "Wr sl addr")
521- if ((0 > dr))
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))
522530 then throw("Wrong slippage")
523- else if ((size(da.payments) != 2))
531+ else if ((size(de.payments) != 2))
524532 then throw("2 pmnts expd")
525533 else {
526- let dw = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], dr, true, false, 0, "")
527- let cF = dw._2
528- let dx = dw._7
529- let bX = dw._9
530- let cG = dw._10
531- let cH = dw._11
532- let bF = dw._12
533- let bG = dw._13
534- let cs = invoke(at, "emit", [cF], nil)
535- if ((cs == cs))
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))
536544 then {
537- let dy = {
538- let an = cs
539- if ($isInstanceOf(an, "Address"))
545+ let dB = {
546+ let ar = cw
547+ if ($isInstanceOf(ar, "Address"))
540548 then {
541- let dz = an
542- invoke(dz, "emit", [cF], nil)
549+ let dC = ar
550+ invoke(dC, "emit", [cJ], nil)
543551 }
544552 else unit
545553 }
546- if ((dy == dy))
554+ if ((dB == dB))
547555 then {
548- let dA = if ((cG > 0))
549- then invoke(dv, "put", nil, [AttachedPayment(bF, cG)])
556+ let dD = if ((cK > 0))
557+ then invoke(dy, "put", nil, [AttachedPayment(bJ, cK)])
550558 else nil
551- if ((dA == dA))
559+ if ((dD == dD))
552560 then {
553- let dB = if ((cH > 0))
554- then invoke(dv, "put", nil, [AttachedPayment(bG, cH)])
561+ let dE = if ((cL > 0))
562+ then invoke(dy, "put", nil, [AttachedPayment(bK, cL)])
555563 else nil
556- if ((dB == dB))
564+ if ((dE == dE))
557565 then {
558- let dC = if (ds)
566+ let dF = if (dv)
559567 then {
560- let dD = invoke(du, "stake", nil, [AttachedPayment(dx, cF)])
561- if ((dD == dD))
568+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
569+ if ((dG == dG))
562570 then nil
563571 else throw("Strict value is not equal to itself.")
564572 }
565- else [ScriptTransfer(da.caller, cF, dx)]
566- (bX ++ dC)
573+ else [ScriptTransfer(de.caller, cJ, dA)]
574+ (cb ++ dF)
567575 }
568576 else throw("Strict value is not equal to itself.")
569577 }
570578 else throw("Strict value is not equal to itself.")
571579 }
572580 else throw("Strict value is not equal to itself.")
573581 }
574582 else throw("Strict value is not equal to itself.")
575583 }
576584 }
577585
578586
579587
580-@Callable(da)
581-func putOneTkn (dE,dF,dG,aZ,ds) = {
582- let bq = aB()
583- let du = valueOrErrorMessage(addressFromString(bq[x]), "Wr st addr")
584- let dv = valueOrErrorMessage(addressFromString(bq[y]), "Wr sl addr")
585- let dH = valueOrErrorMessage(addressFromString(bq[z]), "Wr gwx addr")
586- let dI = ax()
587- let bF = dI[r]
588- let bG = dI[s]
589- let bH = parseIntValue(dI[t])
590- let bI = parseIntValue(dI[u])
591- if (if (if (if ((0 >= aZ))
592- then true
593- else (0 >= dE))
594- then true
595- else (0 >= dF))
596- then true
597- else (0 >= dG))
598- then throw("Wrong params")
599- else if ((size(da.payments) != 1))
600- then throw("1 pmnt expd")
601- else {
602- let db = value(da.payments[0])
603- let bB = toBase58String(value(db.assetId))
604- let cg = db.amount
605- if (if (if ((dE > cg))
606- then true
607- else (dF > cg))
608- then true
609- else (10000000 > cg))
610- then throw("Wrong pmt amt")
611- else {
612- let bL = aR(bF)
613- let bN = aR(bG)
614- let dJ = if ((bB == bF))
615- then $Tuple6((bL - cg), bN, (cg - dE), dF, 0, 0)
616- else if ((bB == bG))
617- then $Tuple6(bL, (bN - cg), 0, 0, (cg - dF), dE)
618- else throw("wrong pmtAssetId")
619- let dK = dJ._1
620- let dL = dJ._2
621- let dM = dJ._3
622- let dN = dJ._4
623- let dO = dJ._5
624- let dP = dJ._6
625- let be = invoke(dH, "calcD", [toString(dK), toString(dL), au, g, h], nil)
626- let bd = invoke(dH, "calcD", [toString(toBigInt(((dK + dM) - dP))), toString(toBigInt(((dL + dO) - dN))), au, g, h], nil)
627- let dQ = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
628- if ((dQ == dQ))
629- then {
630- let dR = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(fromBase58String(bF), dE), AttachedPayment(fromBase58String(bG), dF), aZ, true, true, cg, bB)
631- let dS = dR._2
632- let dx = dR._7
633- let bX = dR._9
634- let cG = dR._10
635- let cH = dR._11
636- let dT = aW(toBigInt(dS), toBigInt(dG), toBigInt(aZ))
637- let cF = toInt(dT._2)
638- let dw = invoke(at, "emit", [cF], nil)
639- if ((dw == dw))
640- then {
641- let dy = {
642- let an = dw
643- if ($isInstanceOf(an, "Address"))
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(aa()), "no addons")
604+ let dO = invoke(dN, "ensureCanPutOneTkn", [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))
644+ then {
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))
655+ then {
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))
644666 then {
645- let dz = an
646- invoke(dz, "emit", [cF], nil)
667+ let dD = if ((cK > 0))
668+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bJ), cK)])
669+ else nil
670+ if ((dD == dD))
671+ then {
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+ }
687+ else throw("Strict value is not equal to itself.")
688+ }
689+ else throw("Strict value is not equal to itself.")
647690 }
648- else unit
691+ else throw("Strict value is not equal to itself.")
649692 }
650- if ((dy == dy))
651- then {
652- let dA = if ((cG > 0))
653- then invoke(dv, "put", nil, [AttachedPayment(fromBase58String(bF), cG)])
654- else nil
655- if ((dA == dA))
656- then {
657- let dB = if ((cH > 0))
658- then invoke(dv, "put", nil, [AttachedPayment(fromBase58String(bG), cH)])
659- else nil
660- if ((dB == dB))
661- then {
662- let dC = if (ds)
663- then {
664- let dD = invoke(du, "stake", nil, [AttachedPayment(dx, cF)])
665- if ((dD == dD))
666- then nil
667- else throw("Strict value is not equal to itself.")
668- }
669- else [ScriptTransfer(da.caller, cF, dx)]
670- (bX ++ dC)
671- }
672- else throw("Strict value is not equal to itself.")
673- }
674- else throw("Strict value is not equal to itself.")
675- }
676- else throw("Strict value is not equal to itself.")
677- }
678- else throw("Strict value is not equal to itself.")
679- }
680- else throw("Strict value is not equal to itself.")
681- }
682- }
683- }
684-
685-
686-
687-@Callable(da)
688-func putForFree (dU) = if ((0 > dU))
689- then throw("Wrong slpg")
690- else if ((size(da.payments) != 2))
691- then throw("2 pmnts expd")
692- else {
693- let dR = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], dU, false, false, 0, "")
694- dR._9
695- }
696-
697-
698-
699-@Callable(da)
700-func get () = {
701- let cs = cZ(da)
702- let dV = cs._1
703- let bW = cs._2
704- let cg = cs._3
705- let bB = cs._4
706- let bX = cs._5
707- let dW = invoke(at, "burn", [cg], [AttachedPayment(bB, cg)])
708- if ((dW == dW))
709- then bX
693+ else throw("Strict value is not equal to itself.")
694+ }
695+ else throw("Strict value is not equal to itself.")
696+ }
697+ }
710698 else throw("Strict value is not equal to itself.")
711699 }
712700
713701
714702
715-@Callable(da)
716-func getOneTkn (dX,dY,dZ,ea,aZ) = if ((size(da.payments) != 1))
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))
717733 then throw("1 pmnt expd")
718734 else {
719- let bq = ax()
720- let bE = bq[q]
721- let bF = bq[r]
722- let bG = bq[s]
723- let bH = parseIntValue(bq[t])
724- let bI = parseIntValue(bq[u])
725- let bJ = bq[p]
726- let dt = aB()
727- let dH = valueOrErrorMessage(addressFromString(dt[z]), "Wr sl addr")
728- let db = value(da.payments[0])
729- let eb = valueOrElse(getString(this, Z()), "")
730- let bD = if ((eb == toString(da.caller)))
731- then da.originCaller
732- else da.caller
733- let bA = toBase58String(da.transactionId)
734- let bB = value(db.assetId)
735- let cg = db.amount
736- if ((1000000000 > cg))
737- then throw("Min pmt 10 LP")
738- else if (if (if ((0 > aZ))
739- then true
740- else (0 > dX))
741- then true
742- else (0 > dZ))
743- then throw("Wrong params")
744- else if ((bE != toBase58String(bB)))
745- then throw("Wrong LP")
746- else {
747- let cs = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
748- let ec = cs._1
749- let ed = cs._2
750- let bL = aR(bF)
751- let bN = aR(bG)
752- let ee = if ((ea == bF))
753- then $Tuple7((bL - ec), (bN - ed), dX, ed, 0, 0, (ec + dX))
754- else if ((ea == bG))
755- then $Tuple7((bL - ec), (bN - ed), 0, 0, dX, ec, (ed + dX))
756- else throw("wrong outAssetId")
757- let dK = ee._1
758- let dL = ee._2
759- let dM = ee._3
760- let dN = ee._4
761- let dO = ee._5
762- let dP = ee._6
763- let ef = ee._7
764- if (if ((0 > dM))
765- then true
766- else (0 > dO))
767- then throw("Wrong calc")
768- else {
769- let be = invoke(dH, "calcD", [toString(dK), toString(dL), au, g, h], nil)
770- let bd = invoke(dH, "calcD", [toString(((dK - dM) + dP)), toString(((dL + dN) - dO)), au, g, h], nil)
771- let dQ = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
772- if ((dQ == dQ))
773- then {
774- let eg = aW(toBigInt(ef), toBigInt(dZ), toBigInt(aZ))
775- if ((eg == eg))
776- then {
777- let eh = if ((ea == bF))
778- then $Tuple2(toInt(eg._2), 0)
779- else $Tuple2(0, toInt(eg._2))
780- let ei = eh._1
781- let ej = eh._2
782- let ek = aT(A(bN, bI), A(bL, bH))
783- let el = D(ek, a)
784- let bX = [ScriptTransfer(bD, (ei + ej), if ((ea == "WAVES"))
785- then unit
786- else fromBase58String(ea)), StringEntry(V(toString(bD), bA), aN(ei, ej, cg, el, height, lastBlock.timestamp)), IntegerEntry(O(), el), IntegerEntry(P(height, lastBlock.timestamp), el)]
787- if ((bX == bX))
788- then {
789- let em = invoke(at, "burn", [cg], [AttachedPayment(bB, cg)])
790- if ((em == em))
791- then bX
792- else throw("Strict value is not equal to itself.")
793- }
794- else throw("Strict value is not equal to itself.")
795- }
796- else throw("Strict value is not equal to itself.")
797- }
798- else throw("Strict value is not equal to itself.")
799- }
800- }
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(aa()), "no addons")
753+ let dO = invoke(dN, "ensureCanGetOneTkn", [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.")
801821 }
802822
803823
804824
805-@Callable(da)
806-func getNoLess (en,eo) = {
807- let cs = cZ(da)
808- let bV = cs._1
809- let bW = cs._2
810- let cg = cs._3
811- let bB = cs._4
812- let bX = cs._5
813- if ((en > bV))
814- then throw(((("Failed: " + toString(bV)) + " < ") + toString(en)))
815- else if ((eo > bW))
816- then throw(((("Failed: " + toString(bW)) + " < ") + toString(eo)))
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)))
817837 else {
818- let ep = invoke(at, "burn", [cg], [AttachedPayment(bB, cg)])
819- if ((ep == ep))
820- then bX
838+ let eu = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
839+ if ((eu == eu))
840+ then cb
821841 else throw("Strict value is not equal to itself.")
822842 }
823843 }
824844
825845
826846
827-@Callable(da)
828-func unstakeAndGet (eq) = {
829- let er = if ((size(da.payments) != 0))
847+@Callable(de)
848+func unstakeAndGet (ev) = {
849+ let ew = if ((size(de.payments) != 0))
830850 then throw("No pmnts expd")
831851 else true
832- if ((er == er))
852+ if ((ew == ew))
833853 then {
834- let bq = ax()
835- let es = aB()
836- let dx = fromBase58String(bq[q])
837- let et = valueOrErrorMessage(addressFromString(es[x]), "Wr st addr")
838- let eu = invoke(et, "unstake", [toBase58String(dx), eq], nil)
839- if ((eu == eu))
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))
840860 then {
841- let cs = bz(toBase58String(da.transactionId), toBase58String(dx), eq, da.caller)
842- let bJ = parseIntValue(cs._9)
843- let bX = cs._10
844- let ev = if (if (av())
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())
845865 then true
846- else (bJ == n))
847- then throw(("Blocked: " + toString(bJ)))
866+ else (bN == n))
867+ then throw(("Blocked: " + toString(bN)))
848868 else true
849- if ((ev == ev))
869+ if ((eA == eA))
850870 then {
851- let ew = invoke(at, "burn", [eq], [AttachedPayment(dx, eq)])
852- if ((ew == ew))
853- then bX
871+ let eB = invoke(ax, "burn", [ev], [AttachedPayment(dA, ev)])
872+ if ((eB == eB))
873+ then cb
854874 else throw("Strict value is not equal to itself.")
855875 }
856876 else throw("Strict value is not equal to itself.")
857877 }
858878 else throw("Strict value is not equal to itself.")
859879 }
860880 else throw("Strict value is not equal to itself.")
861881 }
862882
863883
864884
865-@Callable(da)
866-func activate (ex,ey) = if ((toString(da.caller) != toString(at)))
885+@Callable(de)
886+func activate (eC,eD) = if ((toString(de.caller) != toString(ax)))
867887 then throw("denied")
868- else $Tuple2([StringEntry(W(), ex), StringEntry(X(), ey)], "success")
888+ else $Tuple2([StringEntry(X(), eC), StringEntry(Y(), eD)], "success")
869889
870890
871891
872-@Callable(da)
873-func setS (ez,ev) = if ((toString(da.caller) != ap(this, Z())))
874- then dj
875- else [StringEntry(ez, ev)]
892+@Callable(de)
893+func setS (eE,eA) = if ((toString(de.caller) != at(this, aa())))
894+ then dm
895+ else [StringEntry(eE, eA)]
876896
877897
878898
879-@Callable(da)
880-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ax())
899+@Callable(de)
900+func setI (eE,eA) = if ((toString(de.caller) != at(this, aa())))
901+ then dm
902+ else [IntegerEntry(eE, eA)]
881903
882904
883905
884-@Callable(da)
885-func getAccBalanceWrapperREADONLY (aS) = $Tuple2(nil, aR(aS))
906+@Callable(de)
907+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
886908
887909
888910
889-@Callable(da)
890-func calcPricesWrapperREADONLY (bk,bl,bp) = {
891- let eA = bo(bk, bl, bp)
892- $Tuple2(nil, [toString(eA[0]), toString(eA[1]), toString(eA[2])])
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])])
893920 }
894921
895922
896923
897-@Callable(da)
898-func fromX18WrapperREADONLY (E,eB) = $Tuple2(nil, D(parseBigIntValue(E), eB))
924+@Callable(de)
925+func fromX18WrapperREADONLY (F,eG) = $Tuple2(nil, E(parseBigIntValue(F), eG))
899926
900927
901928
902-@Callable(da)
903-func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C)))
929+@Callable(de)
930+func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
904931
905932
906933
907-@Callable(da)
908-func calcPriceBigIntWrapperREADONLY (aU,aV) = $Tuple2(nil, toString(aT(parseBigIntValue(aU), parseBigIntValue(aV))))
934+@Callable(de)
935+func calcPriceBigIntWrapperREADONLY (aY,aZ) = $Tuple2(nil, toString(aX(parseBigIntValue(aY), parseBigIntValue(aZ))))
909936
910937
911938
912-@Callable(da)
913-func estimatePutOperationWrapperREADONLY (bA,aZ,bZ,ca,cb,cc,eC,cd,ce) = $Tuple2(nil, bY(bA, aZ, bZ, ca, cb, cc, eC, cd, ce, false, 0, ""))
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, ""))
914941
915942
916943
917-@Callable(da)
918-func estimateGetOperationWrapperREADONLY (bA,eD,bC,eC) = {
919- let cs = bz(bA, eD, bC, addressFromStringValue(eC))
920- $Tuple2(nil, $Tuple10(cs._1, cs._2, cs._3, cs._4, cs._5, cs._6, cs._7, toString(cs._8), cs._9, cs._10))
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))
921948 }
922949
923950
924-@Verifier(eE)
925-func eF () = {
926- let an = eE
927- if ($isInstanceOf(an, "Order"))
951+@Verifier(eJ)
952+func eK () = {
953+ let ar = eJ
954+ if ($isInstanceOf(ar, "Order"))
928955 then {
929- let cN = an
930- let eG = aw()
931- let aj = cM(cN)
932- let eH = sigVerify(cN.bodyBytes, cN.proofs[0], cN.senderPublicKey)
933- let eI = sigVerify(cN.bodyBytes, cN.proofs[1], eG)
934- if (if (if (aj)
935- then eH
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
936963 else false)
937- then eI
964+ then eN
938965 else false)
939966 then true
940- else ai(aj, eH, eI)
967+ else am(an, eM, eN)
941968 }
942969 else {
943- let eJ = {
944- let eK = dg()
945- if ($isInstanceOf(eK, "ByteVector"))
970+ let eO = {
971+ let eP = dj()
972+ if ($isInstanceOf(eP, "ByteVector"))
946973 then {
947- let dl = eK
948- dl
974+ let do = eP
975+ do
949976 }
950- else if ($isInstanceOf(eK, "Unit"))
951- then eE.senderPublicKey
977+ else if ($isInstanceOf(eP, "Unit"))
978+ then eJ.senderPublicKey
952979 else throw("Match error")
953980 }
954- sigVerify(eE.bodyBytes, eE.proofs[0], eJ)
981+ sigVerify(eJ.bodyBytes, eJ.proofs[0], eO)
955982 }
956983 }
957984

github/deemru/w8io/169f3d6 
330.55 ms