tx · 5vJHZ5p5QbT6r68taJLerTxi6CQ8MRfYh12vy3EyF7Lm

3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT:  -0.03400000 Waves

2022.06.23 14:26 [2108993] smart account 3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT > SELF 0.00000000 Waves

{ "type": 13, "id": "5vJHZ5p5QbT6r68taJLerTxi6CQ8MRfYh12vy3EyF7Lm", "fee": 3400000, "feeAssetId": null, "timestamp": 1655983652278, "version": 1, "sender": "3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT", "senderPublicKey": "D1BL65meykxFZTCuq7jq9HSGLLnWvQamQPUNrguW5w39", "proofs": [ "57pxh75WjJ2Rfrp3CwCDPtTXiQryarGsTQhVxQ2YsoL7urhE6ZpYCBJmAdg3EAJUPgUT27kVzaycL8TAoGJ5pe9K" ], "script": "base64:AAIFAAAAAAAAC68IAhIDCgEIEgMKAQgSABIECgIBBBIHCgUBAQEBBBIDCgEBEgASBwoFAQEBCAESBAoCAQESAwoBARIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIJb25lQmlnSW50IgpzbGlwcGFnZTREIgVBbXVsdCIFRGNvbnYiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiClBvb2xQdXREaXMiDlBvb2xNYXRjaGVyRGlzIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIglpZHhQb29sU3QiCWlkeExQQXNJZCIJaWR4QW1Bc0lkIglpZHhQckFzSWQiC2lkeEFtdEFzRGNtIg1pZHhQcmljZUFzRGNtIgtpZHhJQW10QXNJZCINaWR4SVByaWNlQXNJZCIPaWR4RmFjdFN0YWtDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciIFZGVsYXkiAnQxIgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0IgJmMSIDdmFsIg9yZXN1bHRTY2FsZU11bHQiAnRzIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiAXQiA3BhdSICdWEiBHR4SWQiA2dhdSICYWEiAnBhIgNhbXAiA2FkYSIFbGdvdGMiBmNhbGxlciIFbHNvdGMiBGZjZmciBG10cGsiAnBjIgZpQW10QXMiBWlQckFzIgNtYmEiBWJBU3RyIgNhcHMiA3RvZSIDb3JWIgZzZW5kclYiBm1hdGNoViIDc3RyIgckbWF0Y2gwIgZ2YWxTdHIiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIDZmNhIgFBIgNpZ3MiAm1wIgNncGMiBWFtdEFzIgdwcmljZUFzIghpUHJpY2VBcyIDZ2ZjIhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiA2VnbyIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCILdXNlckFkZHJlc3MiBGxwSWQiBGFtSWQiBHBySWQiBWFtRGNtIgVwckRjbSIDc3RzIgdscEVtaXNzIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiCmxwRW1pc3NYMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIDZXBvIgdpbkFtQW10IgZpbkFtSWQiB2luUHJBbXQiBmluUHJJZCIGaXNFdmFsIgZlbWl0THAiCmlzT25lQXNzZXQiBnBtdEFtdCIFcG10SWQiB2FtSWRTdHIiB3BySWRTdHIiCWluQW1JZFN0ciIJaW5QcklkU3RyIgZhbXREY20iCHByaWNlRGNtIgRscEVtIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgFyIgtzbGlwcGFnZVgxOCIPc2xpcHBhZ2VSZWFsWDE4Ig1scEVtaXNzaW9uWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIg0kdDAxNTUzMTE1ODc2Igp3cml0ZUFtQW10Igp3cml0ZVByQW10Igtjb21tb25TdGF0ZSIDbW9hIgVvcmRlciIHYW10QXNJZCIGcHJBc0lkIg9hY2NBbXRBc0JhbGFuY2UiDmFjY1ByQXNCYWxhbmNlIgpvckFtdEFzc2V0IgpvckFtdEFzU3RyIglvclByQXNzZXQiCW9yUHJBc1N0ciIKb3JkZXJQcmljZSIOY2FzdE9yZGVyUHJpY2UiEWlzT3JkZXJQcmljZVZhbGlkIgJjZyIBaSIDcG10IgJjcCIHYW1Bc1BtdCIHcHJBc1BtdCIBbSIBcyICcG0iAnBkIgJtbSICcGsiAWMiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgJjbSIDaHBtIgNjcG0iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIgthbUFzc2V0UGFydCILcHJBc3NldFBhcnQiBW91dExwIgdnd3hDbnRyIgdwb29sQ2ZnIgVhZGRvbiINYWRkb25Db250cmFjdCIFY2hlY2siDSR0MDI0ODMyMjUyMTIiDGFtQmFsYW5jZU5vdyIMcHJCYWxhbmNlTm93Igx2aXJ0U3dhcEluQW0iDXZpcnRTd2FwT3V0UHIiDHZpcnRTd2FwSW5QciINdmlydFN3YXBPdXRBbSIGRDB2c0QxIgZlc3RQdXQiB2VzdGltTFAiCWxwQ2FsY1JlcyIHbWF4U2xwZyIJb3V0QW10QW10IgFiIgpleGNoUmVzdWx0Igdub3RVc2VkIglvdXRBbW91bnQiCm91dEFzc2V0SWQiCmVzdGltQW1BbXQiCmVzdGltUHJBbXQiDSR0MDMwMjQzMzA3MDAiCHRvdGFsR2V0IghmaW5hbFJl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", "chainId": 84, "height": 2108993, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AhpdeX63nZcQ9oxa2LhdeoFr9dcJChihb52csXkVGrwN Next: 4XugvuAbdQpNSEmY2u7GnJw3Z8KR3J63K5sujFEcevm6 Diff:
OldNewDifferences
220220 }
221221
222222
223-func bB (bC,bD,bE,bF) = {
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)]
226+ }
227+
228+
229+func bD (bE,bF,bG,bH) = {
224230 let bu = aB()
225- let bG = bu[q]
226- let bH = bu[r]
227- let bI = bu[s]
228- let bJ = parseIntValue(bu[t])
229- let bK = parseIntValue(bu[u])
230- let bL = bu[p]
231- let bM = valueOrErrorMessage(assetInfo(fromBase58String(bG)), "Wrong LP id").quantity
232- if ((bG != bD))
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))
233239 then throw("Wrong pmt asset")
234240 else {
235- let bN = aV(bH)
236- let bO = B(bN, bJ)
237- let bP = aV(bI)
238- let bQ = B(bP, bK)
239- let bR = aX(bQ, bO)
240- let bS = E(bR, a)
241- let bT = B(bE, a)
242- let bU = B(bM, a)
243- let bV = fraction(bO, bT, bU)
244- let bW = fraction(bQ, bT, bU)
245- let bX = E(bV, bJ)
246- let bY = E(bW, bK)
247- let bZ = if ((bC == ""))
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 == ""))
248254 then nil
249- else [ScriptTransfer(bF, bX, if ((bH == "WAVES"))
255+ else [ScriptTransfer(bH, bZ, if ((bJ == "WAVES"))
250256 then unit
251- else fromBase58String(bH)), ScriptTransfer(bF, bY, if ((bI == "WAVES"))
257+ else fromBase58String(bJ)), ScriptTransfer(bH, ca, if ((bK == "WAVES"))
252258 then unit
253- else fromBase58String(bI)), StringEntry(W(toString(bF), bC), aR(bX, bY, bE, bS, height, lastBlock.timestamp)), IntegerEntry(P(), bS), IntegerEntry(Q(height, lastBlock.timestamp), bS)]
254- $Tuple10(bX, bY, bH, bI, bN, bP, bM, bR, bL, bZ)
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)
255261 }
256262 }
257263
258264
259-func ca (bC,bd,cb,cc,cd,ce,bF,cf,cg,ch,ci,cj) = {
265+func cc (bE,bd,cd,ce,cf,cg,bH,ch,ci,cj,ck,cl) = {
260266 let bu = aB()
261- let bG = fromBase58String(bu[q])
262- let ck = bu[r]
263- let cl = bu[s]
264- let cm = bu[v]
265- let cn = bu[w]
266- let co = parseIntValue(bu[t])
267- let cp = parseIntValue(bu[u])
268- let bL = bu[p]
269- let cq = valueOrErrorMessage(assetInfo(bG), "Wr lp as").quantity
270- let bN = if (cf)
271- then aV(ck)
272- else if (if (ch)
273- then (cj == ck)
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)
274280 else false)
275- then (aV(ck) - ci)
276- else if (ch)
277- then aV(ck)
278- else (aV(ck) - cb)
279- let bP = if (cf)
280- then aV(cl)
281- else if (if (ch)
282- then (cj == cl)
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)
283289 else false)
284- then (aV(cl) - ci)
285- else if (ch)
286- then aV(cl)
287- else (aV(cl) - cd)
288- let cr = B(cb, co)
289- let cs = B(cd, cp)
290- let ct = aX(cs, cr)
291- let bO = B(bN, co)
292- let bQ = B(bP, cp)
293- let cu = if ((cq == 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))
294300 then {
295- let bR = d
296- let cv = d
297- let by = pow((cr * cs), 0, toBigInt(5), 1, 0, DOWN)
298- $Tuple5(E(by, a), E(cr, co), E(cs, cp), aX((bQ + cs), (bO + cr)), cv)
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)
299305 }
300306 else {
301- let bR = aX(bQ, bO)
302- let cw = fraction(L((bR - ct)), c, bR)
303- let cv = B(bd, a)
304- if (if ((bR != d))
305- then (cw > cv)
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)
306312 else false)
307- then throw(((("Price slippage " + toString(cw)) + " > ") + toString(cv)))
313+ then throw(((("Price slippage " + toString(cy)) + " > ") + toString(cx)))
308314 else {
309- let cx = B(cq, a)
310- let cy = fraction(cr, bR, c)
311- let cz = fraction(cs, c, bR)
312- let cA = if ((cy > cs))
313- then $Tuple2(cz, cs)
314- else $Tuple2(cr, cy)
315- let cB = cA._1
316- let cC = cA._2
317- let by = fraction(cx, cC, bQ)
318- $Tuple5(E(by, a), E(cB, co), E(cC, cp), bR, cv)
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)
319325 }
320326 }
321- let cD = cu._1
322- let cE = cu._2
323- let cF = cu._3
324- let bS = E(cu._4, a)
325- let cG = E(cu._5, a)
326- if ((0 >= cD))
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))
327333 then throw("LP <= 0")
328334 else {
329- let cH = if (!(cg))
335+ let cJ = if (!(ci))
330336 then 0
331- else cD
332- let cI = (cb - cE)
333- let cJ = (cd - cF)
334- let cK = if (if (ch)
335- then (cj == ck)
337+ else cF
338+ let cK = (cd - cG)
339+ let cL = (cf - cH)
340+ let cM = if (if (cj)
341+ then (cl == cm)
336342 else false)
337- then $Tuple2(ci, 0)
338- else if (if (ch)
339- then (cj == cl)
343+ then $Tuple2(ck, 0)
344+ else if (if (cj)
345+ then (cl == cn)
340346 else false)
341- then $Tuple2(0, ci)
342- else $Tuple2(cE, cF)
343- let cL = cK._1
344- let cM = cK._2
345- let cN = [IntegerEntry(P(), bS), IntegerEntry(Q(height, lastBlock.timestamp), bS), StringEntry(T(bF, bC), aG(cL, cM, cH, bS, bd, cG, height, lastBlock.timestamp, cI, cJ))]
346- $Tuple13(cD, cH, bS, bN, bP, cq, bG, bL, cN, cI, cJ, cc, ce)
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)
347353 }
348354 }
349355
350356
351-func cO (cP) = {
357+func cQ (cR) = {
352358 let bu = aB()
353- let cQ = bu[r]
354- let cR = bu[s]
355- let bL = parseIntValue(bu[p])
359+ let cS = bu[r]
360+ let cT = bu[s]
361+ let bN = parseIntValue(bu[p])
356362 let bv = parseIntValue(bu[t])
357363 let bw = parseIntValue(bu[u])
358- let cS = aV(cQ)
359- let cT = aV(cR)
360- let bR = if ((cP.orderType == Buy))
361- then bl(bv, bw, (cS + cP.amount), cT)
362- else bl(bv, bw, (cS - cP.amount), cT)
363- let bS = E(bR, a)
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)
364370 if (if (if (az())
365371 then true
366- else (bL == m))
372+ else (bN == m))
367373 then true
368- else (bL == n))
374+ else (bN == n))
369375 then throw("Admin blocked")
370376 else {
371- let cU = cP.assetPair.amountAsset
372- let cV = if ((cU == unit))
373- then "WAVES"
374- else toBase58String(value(cU))
375- let cW = cP.assetPair.priceAsset
377+ let cW = cR.assetPair.amountAsset
376378 let cX = if ((cW == unit))
377379 then "WAVES"
378380 else toBase58String(value(cW))
379- if (if ((cV != cQ))
381+ let cY = cR.assetPair.priceAsset
382+ let cZ = if ((cY == unit))
383+ then "WAVES"
384+ else toBase58String(value(cY))
385+ if (if ((cX != cS))
380386 then true
381- else (cX != cR))
387+ else (cZ != cT))
382388 then throw("Wr assets")
383389 else {
384- let cY = cP.price
385- let cp = fraction(a, bw, bv)
386- let cZ = H(cY, a, cp)
387- let da = if ((cP.orderType == Buy))
388- then (bS >= cZ)
389- else (cZ >= bS)
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)
390396 true
391397 }
392398 }
393399 }
394400
395401
396-func db (dc) = if ((size(dc.payments) != 1))
402+func dd (de) = if ((size(de.payments) != 1))
397403 then throw("1 pmnt exp")
398404 else {
399- let dd = value(dc.payments[0])
400- let bD = value(dd.assetId)
401- let ci = dd.amount
402- let cu = bB(toBase58String(dc.transactionId), toBase58String(bD), ci, dc.caller)
403- let bX = cu._1
404- let bY = cu._2
405- let bL = parseIntValue(cu._9)
406- let bZ = cu._10
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
407413 if (if (az())
408414 then true
409- else (bL == n))
410- then throw(("Admin blocked: " + toString(bL)))
411- else $Tuple5(bX, bY, ci, bD, bZ)
415+ else (bN == n))
416+ then throw(("Admin blocked: " + toString(bN)))
417+ else $Tuple5(bZ, ca, ck, bF, cb)
412418 }
413419
414420
415-func de (ac,V,df,dg,bd,cg,ch,ci,cj) = {
416- let cu = ca(V, bd, value(df).amount, value(df).assetId, value(dg).amount, value(dg).assetId, ac, false, cg, ch, ci, cj)
417- let bL = parseIntValue(cu._8)
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)
418424 if (if (if (az())
419425 then true
420- else (bL == l))
426+ else (bN == l))
421427 then true
422- else (bL == n))
423- then throw(("Blocked:" + toString(bL)))
424- else cu
428+ else (bN == n))
429+ then throw(("Blocked:" + toString(bN)))
430+ else cw
425431 }
426432
427433
428-func dh () = {
434+func dj () = {
429435 let ar = getString(N())
430436 if ($isInstanceOf(ar, "String"))
431437 then {
432- let di = ar
433- fromBase58String(di)
438+ let dk = ar
439+ fromBase58String(dk)
434440 }
435441 else if ($isInstanceOf(ar, "Unit"))
436442 then unit
438444 }
439445
440446
441-func dj () = {
447+func dl () = {
442448 let ar = getString(O())
443449 if ($isInstanceOf(ar, "String"))
444450 then {
445- let di = ar
446- fromBase58String(di)
451+ let dk = ar
452+ fromBase58String(dk)
447453 }
448454 else if ($isInstanceOf(ar, "Unit"))
449455 then unit
451457 }
452458
453459
454-let dk = throw("Permission denied")
460+let dm = throw("Permission denied")
455461
456-func dl (dc) = {
457- let ar = dh()
462+func dn (de) = {
463+ let ar = dj()
458464 if ($isInstanceOf(ar, "ByteVector"))
459465 then {
460- let dm = ar
461- if ((dc.callerPublicKey == dm))
466+ let do = ar
467+ if ((de.callerPublicKey == do))
462468 then true
463- else dk
469+ else dm
464470 }
465471 else if ($isInstanceOf(ar, "Unit"))
466- then if ((dc.caller == this))
472+ then if ((de.caller == this))
467473 then true
468- else dk
474+ else dm
469475 else throw("Match error")
470476 }
471477
472478
473-@Callable(dc)
479+@Callable(de)
474480 func constructor (M) = {
475- let dn = dl(dc)
476- if ((dn == dn))
481+ let dp = dn(de)
482+ if ((dp == dp))
477483 then [StringEntry(M(), M)]
478484 else throw("Strict value is not equal to itself.")
479485 }
480486
481487
482488
483-@Callable(dc)
484-func setManager (do) = {
485- let dn = dl(dc)
486- if ((dn == dn))
489+@Callable(de)
490+func setManager (dq) = {
491+ let dp = dn(de)
492+ if ((dp == dp))
487493 then {
488- let dp = fromBase58String(do)
489- if ((dp == dp))
490- then [StringEntry(O(), do)]
494+ let dr = fromBase58String(dq)
495+ if ((dr == dr))
496+ then [StringEntry(O(), dq)]
491497 else throw("Strict value is not equal to itself.")
492498 }
493499 else throw("Strict value is not equal to itself.")
495501
496502
497503
498-@Callable(dc)
504+@Callable(de)
499505 func confirmManager () = {
500- let dq = dj()
501- let dr = if (isDefined(dq))
506+ let bC = dl()
507+ let ds = if (isDefined(bC))
502508 then true
503509 else throw("No pending manager")
504- if ((dr == dr))
510+ if ((ds == ds))
505511 then {
506- let ds = if ((dc.callerPublicKey == value(dq)))
512+ let dt = if ((de.callerPublicKey == value(bC)))
507513 then true
508514 else throw("You are not pending manager")
509- if ((ds == ds))
510- then [StringEntry(N(), toBase58String(value(dq))), DeleteEntry(O())]
515+ if ((dt == dt))
516+ then [StringEntry(N(), toBase58String(value(bC))), DeleteEntry(O())]
511517 else throw("Strict value is not equal to itself.")
512518 }
513519 else throw("Strict value is not equal to itself.")
515521
516522
517523
518-@Callable(dc)
519-func calculatePrices (bo,bp,bt) = {
520- let dq = bs(bo, bp, bt)
521- $Tuple2(nil, [E(dq[0], a), E(dq[1], a), E(dq[2], a)])
522- }
523-
524-
525-
526-@Callable(dc)
527-func put (dt,du) = {
528- let dv = aF()
529- let dw = valueOrErrorMessage(addressFromString(dv[x]), "Wr st addr")
530- let dx = valueOrErrorMessage(addressFromString(dv[y]), "Wr sl addr")
531- if ((0 > dt))
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))
532530 then throw("Wrong slippage")
533- else if ((size(dc.payments) != 2))
531+ else if ((size(de.payments) != 2))
534532 then throw("2 pmnts expd")
535533 else {
536- let dy = de(toString(dc.caller), toBase58String(dc.transactionId), AttachedPayment(value(dc.payments[0]).assetId, value(dc.payments[0]).amount), dc.payments[1], dt, true, false, 0, "")
537- let cH = dy._2
538- let dz = dy._7
539- let bZ = dy._9
540- let cI = dy._10
541- let cJ = dy._11
542- let bH = dy._12
543- let bI = dy._13
544- let cu = invoke(ax, "emit", [cH], nil)
545- if ((cu == cu))
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))
546544 then {
547- let dA = {
548- let ar = cu
545+ let dB = {
546+ let ar = cw
549547 if ($isInstanceOf(ar, "Address"))
550548 then {
551- let dB = ar
552- invoke(dB, "emit", [cH], nil)
549+ let dC = ar
550+ invoke(dC, "emit", [cJ], nil)
553551 }
554552 else unit
555553 }
556- if ((dA == dA))
554+ if ((dB == dB))
557555 then {
558- let dC = if ((cI > 0))
559- then invoke(dx, "put", nil, [AttachedPayment(bH, cI)])
556+ let dD = if ((cK > 0))
557+ then invoke(dy, "put", nil, [AttachedPayment(bJ, cK)])
560558 else nil
561- if ((dC == dC))
559+ if ((dD == dD))
562560 then {
563- let dD = if ((cJ > 0))
564- then invoke(dx, "put", nil, [AttachedPayment(bI, cJ)])
561+ let dE = if ((cL > 0))
562+ then invoke(dy, "put", nil, [AttachedPayment(bK, cL)])
565563 else nil
566- if ((dD == dD))
564+ if ((dE == dE))
567565 then {
568- let dE = if (du)
566+ let dF = if (dv)
569567 then {
570- let dF = invoke(dw, "stake", nil, [AttachedPayment(dz, cH)])
571- if ((dF == dF))
568+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
569+ if ((dG == dG))
572570 then nil
573571 else throw("Strict value is not equal to itself.")
574572 }
575- else [ScriptTransfer(dc.caller, cH, dz)]
576- (bZ ++ dE)
573+ else [ScriptTransfer(de.caller, cJ, dA)]
574+ (cb ++ dF)
577575 }
578576 else throw("Strict value is not equal to itself.")
579577 }
587585
588586
589587
590-@Callable(dc)
591-func putOneTkn (dG,dH,dI,bd,du) = {
588+@Callable(de)
589+func putOneTkn (dH,dI,dJ,bd,dv) = {
592590 let bu = aF()
593- let dw = valueOrErrorMessage(addressFromString(bu[x]), "Wr st addr")
594- let dx = valueOrErrorMessage(addressFromString(bu[y]), "Wr sl addr")
595- let dJ = valueOrErrorMessage(addressFromString(bu[z]), "Wr gwx addr")
596- let dK = aB()
597- let bH = dK[r]
598- let bI = dK[s]
599- let bJ = parseIntValue(dK[t])
600- let bK = parseIntValue(dK[u])
601- let dL = valueOrElse(getString(this, aa()), "")
602- let bF = if ((dL == toString(dc.caller)))
603- then dc.originCaller
604- else dc.caller
605- let dM = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
606- let dN = reentrantInvoke(dM, "ensureCanPutOneTkn", [toString(bF)], nil)
607- if ((dN == dN))
591+ let dx = valueOrErrorMessage(addressFromString(bu[x]), "Wr st addr")
592+ let dy = valueOrErrorMessage(addressFromString(bu[y]), "Wr sl addr")
593+ let dK = valueOrErrorMessage(addressFromString(bu[z]), "Wr gwx addr")
594+ let dL = aB()
595+ let bJ = dL[r]
596+ let bK = dL[s]
597+ let bL = parseIntValue(dL[t])
598+ let bM = parseIntValue(dL[u])
599+ let dM = valueOrElse(getString(this, aa()), "")
600+ let bH = if ((dM == toString(de.caller)))
601+ then de.originCaller
602+ else de.caller
603+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
604+ let dO = reentrantInvoke(dN, "ensureCanPutOneTkn", [toString(bH)], nil)
605+ if ((dO == dO))
608606 then if (if (if (if ((0 >= bd))
609- then true
610- else (0 >= dG))
611607 then true
612608 else (0 >= dH))
613609 then true
614610 else (0 >= dI))
611+ then true
612+ else (0 >= dJ))
615613 then throw("Wrong params")
616- else if ((size(dc.payments) != 1))
614+ else if ((size(de.payments) != 1))
617615 then throw("1 pmnt expd")
618616 else {
619- let dd = value(dc.payments[0])
620- let bD = toBase58String(value(dd.assetId))
621- let ci = dd.amount
622- if (if (if ((dG > ci))
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))
623621 then true
624- else (dH > ci))
622+ else (dI > ck))
625623 then true
626- else (10000000 > ci))
624+ else (10000000 > ck))
627625 then throw("Wrong pmt amt")
628626 else {
629- let bN = aV(bH)
630- let bP = aV(bI)
631- let dO = if ((bD == bH))
632- then $Tuple6((bN - ci), bP, (ci - dG), dH, 0, 0)
633- else if ((bD == bI))
634- then $Tuple6(bN, (bP - ci), 0, 0, (ci - dH), dG)
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)
635633 else throw("wrong pmtAssetId")
636- let dP = dO._1
637- let dQ = dO._2
638- let dR = dO._3
639- let dS = dO._4
640- let dT = dO._5
641- let dU = dO._6
642- let bi = invoke(dJ, "calcD", [toString(dP), toString(dQ), ay, g, h], nil)
643- let bh = invoke(dJ, "calcD", [toString(toBigInt(((dP + dR) - dU))), toString(toBigInt(((dQ + dT) - dS))), ay, g, h], nil)
644- let dV = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
645- if ((dV == dV))
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))
646644 then {
647- let dW = de(toString(dc.caller), toBase58String(dc.transactionId), AttachedPayment(fromBase58String(bH), dG), AttachedPayment(fromBase58String(bI), dH), bd, true, true, ci, bD)
648- let dX = dW._2
649- let dz = dW._7
650- let bZ = dW._9
651- let cI = dW._10
652- let cJ = dW._11
653- let dY = ba(toBigInt(dX), toBigInt(dI), toBigInt(bd))
654- let cH = toInt(dY._2)
655- let dy = invoke(ax, "emit", [cH], nil)
656- if ((dy == dy))
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))
657655 then {
658- let dA = {
659- let ar = dy
656+ let dB = {
657+ let ar = dz
660658 if ($isInstanceOf(ar, "Address"))
661659 then {
662- let dB = ar
663- invoke(dB, "emit", [cH], nil)
660+ let dC = ar
661+ invoke(dC, "emit", [cJ], nil)
664662 }
665663 else unit
666664 }
667- if ((dA == dA))
665+ if ((dB == dB))
668666 then {
669- let dC = if ((cI > 0))
670- then invoke(dx, "put", nil, [AttachedPayment(fromBase58String(bH), cI)])
667+ let dD = if ((cK > 0))
668+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bJ), cK)])
671669 else nil
672- if ((dC == dC))
670+ if ((dD == dD))
673671 then {
674- let dD = if ((cJ > 0))
675- then invoke(dx, "put", nil, [AttachedPayment(fromBase58String(bI), cJ)])
672+ let dE = if ((cL > 0))
673+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bK), cL)])
676674 else nil
677- if ((dD == dD))
675+ if ((dE == dE))
678676 then {
679- let dE = if (du)
677+ let dF = if (dv)
680678 then {
681- let dF = invoke(dw, "stake", nil, [AttachedPayment(dz, cH)])
682- if ((dF == dF))
679+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
680+ if ((dG == dG))
683681 then nil
684682 else throw("Strict value is not equal to itself.")
685683 }
686- else [ScriptTransfer(dc.caller, cH, dz)]
687- (bZ ++ dE)
684+ else [ScriptTransfer(de.caller, cJ, dA)]
685+ (cb ++ dF)
688686 }
689687 else throw("Strict value is not equal to itself.")
690688 }
702700
703701
704702
705-@Callable(dc)
706-func putForFree (dZ) = if ((0 > dZ))
703+@Callable(de)
704+func putForFree (ea) = if ((0 > ea))
707705 then throw("Wrong slpg")
708- else if ((size(dc.payments) != 2))
706+ else if ((size(de.payments) != 2))
709707 then throw("2 pmnts expd")
710708 else {
711- let dW = de(toString(dc.caller), toBase58String(dc.transactionId), AttachedPayment(value(dc.payments[0]).assetId, value(dc.payments[0]).amount), dc.payments[1], dZ, false, false, 0, "")
712- dW._9
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
713711 }
714712
715713
716714
717-@Callable(dc)
715+@Callable(de)
718716 func get () = {
719- let cu = db(dc)
720- let ea = cu._1
721- let bY = cu._2
722- let ci = cu._3
723- let bD = cu._4
724- let bZ = cu._5
725- let eb = invoke(ax, "burn", [ci], [AttachedPayment(bD, ci)])
726- if ((eb == eb))
727- then bZ
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
728726 else throw("Strict value is not equal to itself.")
729727 }
730728
731729
732730
733-@Callable(dc)
734-func getOneTkn (ec,ed,ee,ef,bd) = if ((size(dc.payments) != 1))
731+@Callable(de)
732+func getOneTkn (ed,ee,ef,eg,bd) = if ((size(de.payments) != 1))
735733 then throw("1 pmnt expd")
736734 else {
737735 let bu = aB()
738- let bG = bu[q]
739- let bH = bu[r]
740- let bI = bu[s]
741- let bJ = parseIntValue(bu[t])
742- let bK = parseIntValue(bu[u])
743- let bL = bu[p]
744- let dv = aF()
745- let dJ = valueOrErrorMessage(addressFromString(dv[z]), "Wr sl addr")
746- let dd = value(dc.payments[0])
747- let dL = valueOrElse(getString(this, aa()), "")
748- let bF = if ((dL == toString(dc.caller)))
749- then dc.originCaller
750- else dc.caller
751- let bC = toBase58String(dc.transactionId)
752- let bD = value(dd.assetId)
753- let ci = dd.amount
754- let dM = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
755- let dN = reentrantInvoke(dM, "ensureCanGetOneTkn", [toString(bF)], nil)
756- if ((dN == dN))
757- then if ((1000000000 > ci))
736+ let bI = bu[q]
737+ let bJ = bu[r]
738+ let bK = bu[s]
739+ let bL = parseIntValue(bu[t])
740+ let bM = parseIntValue(bu[u])
741+ let bN = bu[p]
742+ let dw = aF()
743+ let dK = valueOrErrorMessage(addressFromString(dw[z]), "Wr sl addr")
744+ let df = value(de.payments[0])
745+ let dM = valueOrElse(getString(this, aa()), "")
746+ let bH = if ((dM == toString(de.caller)))
747+ then de.originCaller
748+ else de.caller
749+ let bE = toBase58String(de.transactionId)
750+ let bF = value(df.assetId)
751+ let ck = df.amount
752+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
753+ let dO = reentrantInvoke(dN, "ensureCanGetOneTkn", [toString(bH)], nil)
754+ if ((dO == dO))
755+ then if ((1000000000 > ck))
758756 then throw("Min pmt 10 LP")
759757 else if (if (if ((0 > bd))
760758 then true
761- else (0 > ec))
759+ else (0 > ed))
762760 then true
763- else (0 > ee))
761+ else (0 > ef))
764762 then throw("Wrong params")
765- else if ((bG != toBase58String(bD)))
763+ else if ((bI != toBase58String(bF)))
766764 then throw("Wrong LP")
767765 else {
768- let cu = bB(toBase58String(dc.transactionId), toBase58String(bD), ci, dc.caller)
769- let eg = cu._1
770- let eh = cu._2
771- let bN = aV(bH)
772- let bP = aV(bI)
773- let ei = if ((ef == bH))
774- then $Tuple7((bN - eg), (bP - eh), ec, eh, 0, 0, (eg + ec))
775- else if ((ef == bI))
776- then $Tuple7((bN - eg), (bP - eh), 0, 0, ec, eg, (eh + ec))
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))
777775 else throw("wrong outAssetId")
778- let dP = ei._1
779- let dQ = ei._2
780- let dR = ei._3
781- let dS = ei._4
782- let dT = ei._5
783- let dU = ei._6
784- let ej = ei._7
785- if (if ((0 > dR))
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))
786784 then true
787- else (0 > dT))
785+ else (0 > dU))
788786 then throw("Wrong calc")
789787 else {
790- let bi = invoke(dJ, "calcD", [toString(dP), toString(dQ), ay, g, h], nil)
791- let bh = invoke(dJ, "calcD", [toString(((dP - dR) + dU)), toString(((dQ + dS) - dT)), ay, g, h], nil)
792- let dV = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
793- if ((dV == dV))
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))
794792 then {
795- let ek = ba(toBigInt(ej), toBigInt(ee), toBigInt(bd))
796- if ((ek == ek))
793+ let el = ba(toBigInt(ek), toBigInt(ef), toBigInt(bd))
794+ if ((el == el))
797795 then {
798- let el = if ((ef == bH))
799- then $Tuple2(toInt(ek._2), 0)
800- else $Tuple2(0, toInt(ek._2))
801- let em = el._1
802- let en = el._2
803- let eo = aX(B(bP, bK), B(bN, bJ))
804- let ep = E(eo, a)
805- let bZ = [ScriptTransfer(bF, (em + en), if ((ef == "WAVES"))
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"))
806804 then unit
807- else fromBase58String(ef)), StringEntry(W(toString(bF), bC), aR(em, en, ci, ep, height, lastBlock.timestamp)), IntegerEntry(P(), ep), IntegerEntry(Q(height, lastBlock.timestamp), ep)]
808- if ((bZ == bZ))
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))
809807 then {
810- let eq = invoke(ax, "burn", [ci], [AttachedPayment(bD, ci)])
811- if ((eq == eq))
812- then bZ
808+ let er = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
809+ if ((er == er))
810+ then cb
813811 else throw("Strict value is not equal to itself.")
814812 }
815813 else throw("Strict value is not equal to itself.")
824822
825823
826824
827-@Callable(dc)
828-func getNoLess (er,es) = {
829- let cu = db(dc)
830- let bX = cu._1
831- let bY = cu._2
832- let ci = cu._3
833- let bD = cu._4
834- let bZ = cu._5
835- if ((er > bX))
836- then throw(((("Failed: " + toString(bX)) + " < ") + toString(er)))
837- else if ((es > bY))
838- then throw(((("Failed: " + toString(bY)) + " < ") + toString(es)))
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)))
839837 else {
840- let et = invoke(ax, "burn", [ci], [AttachedPayment(bD, ci)])
841- if ((et == et))
842- then bZ
838+ let eu = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
839+ if ((eu == eu))
840+ then cb
843841 else throw("Strict value is not equal to itself.")
844842 }
845843 }
846844
847845
848846
849-@Callable(dc)
850-func unstakeAndGet (eu) = {
851- let ev = if ((size(dc.payments) != 0))
847+@Callable(de)
848+func unstakeAndGet (ev) = {
849+ let ew = if ((size(de.payments) != 0))
852850 then throw("No pmnts expd")
853851 else true
854- if ((ev == ev))
852+ if ((ew == ew))
855853 then {
856854 let bu = aB()
857- let ew = aF()
858- let dz = fromBase58String(bu[q])
859- let ex = valueOrErrorMessage(addressFromString(ew[x]), "Wr st addr")
860- let ey = invoke(ex, "unstake", [toBase58String(dz), eu], nil)
861- if ((ey == ey))
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))
862860 then {
863- let cu = bB(toBase58String(dc.transactionId), toBase58String(dz), eu, dc.caller)
864- let bL = parseIntValue(cu._9)
865- let bZ = cu._10
866- let ez = if (if (az())
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())
867865 then true
868- else (bL == n))
869- then throw(("Blocked: " + toString(bL)))
866+ else (bN == n))
867+ then throw(("Blocked: " + toString(bN)))
870868 else true
871- if ((ez == ez))
869+ if ((eA == eA))
872870 then {
873- let eA = invoke(ax, "burn", [eu], [AttachedPayment(dz, eu)])
874- if ((eA == eA))
875- then bZ
871+ let eB = invoke(ax, "burn", [ev], [AttachedPayment(dA, ev)])
872+ if ((eB == eB))
873+ then cb
876874 else throw("Strict value is not equal to itself.")
877875 }
878876 else throw("Strict value is not equal to itself.")
884882
885883
886884
887-@Callable(dc)
888-func activate (eB,eC) = if ((toString(dc.caller) != toString(ax)))
885+@Callable(de)
886+func activate (eC,eD) = if ((toString(de.caller) != toString(ax)))
889887 then throw("denied")
890- else $Tuple2([StringEntry(X(), eB), StringEntry(Y(), eC)], "success")
888+ else $Tuple2([StringEntry(X(), eC), StringEntry(Y(), eD)], "success")
891889
892890
893891
894-@Callable(dc)
895-func setS (eD,ez) = if ((toString(dc.caller) != at(this, aa())))
896- then dk
897- else [StringEntry(eD, ez)]
892+@Callable(de)
893+func setS (eE,eA) = if ((toString(de.caller) != at(this, aa())))
894+ then dm
895+ else [StringEntry(eE, eA)]
898896
899897
900898
901-@Callable(dc)
902-func setI (eD,ez) = if ((toString(dc.caller) != at(this, aa())))
903- then dk
904- else [IntegerEntry(eD, ez)]
899+@Callable(de)
900+func setI (eE,eA) = if ((toString(de.caller) != at(this, aa())))
901+ then dm
902+ else [IntegerEntry(eE, eA)]
905903
906904
907905
908-@Callable(dc)
906+@Callable(de)
909907 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
910908
911909
912910
913-@Callable(dc)
911+@Callable(de)
914912 func getAccBalanceWrapperREADONLY (aW) = $Tuple2(nil, aV(aW))
915913
916914
917915
918-@Callable(dc)
916+@Callable(de)
919917 func calcPricesWrapperREADONLY (bo,bp,bt) = {
920- let eE = bs(bo, bp, bt)
921- $Tuple2(nil, [toString(eE[0]), toString(eE[1]), toString(eE[2])])
918+ let eF = bs(bo, bp, bt)
919+ $Tuple2(nil, [toString(eF[0]), toString(eF[1]), toString(eF[2])])
922920 }
923921
924922
925923
926-@Callable(dc)
927-func fromX18WrapperREADONLY (F,eF) = $Tuple2(nil, E(parseBigIntValue(F), eF))
924+@Callable(de)
925+func fromX18WrapperREADONLY (F,eG) = $Tuple2(nil, E(parseBigIntValue(F), eG))
928926
929927
930928
931-@Callable(dc)
929+@Callable(de)
932930 func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
933931
934932
935933
936-@Callable(dc)
934+@Callable(de)
937935 func calcPriceBigIntWrapperREADONLY (aY,aZ) = $Tuple2(nil, toString(aX(parseBigIntValue(aY), parseBigIntValue(aZ))))
938936
939937
940938
941-@Callable(dc)
942-func estimatePutOperationWrapperREADONLY (bC,bd,cb,cc,cd,ce,eG,cf,cg) = $Tuple2(nil, ca(bC, bd, cb, cc, cd, ce, eG, cf, cg, 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, ""))
943941
944942
945943
946-@Callable(dc)
947-func estimateGetOperationWrapperREADONLY (bC,eH,bE,eG) = {
948- let cu = bB(bC, eH, bE, addressFromStringValue(eG))
949- $Tuple2(nil, $Tuple10(cu._1, cu._2, cu._3, cu._4, cu._5, cu._6, cu._7, toString(cu._8), cu._9, cu._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))
950948 }
951949
952950
953-@Verifier(eI)
954-func eJ () = {
955- let ar = eI
951+@Verifier(eJ)
952+func eK () = {
953+ let ar = eJ
956954 if ($isInstanceOf(ar, "Order"))
957955 then {
958- let cP = ar
959- let eK = aA()
960- let an = cO(cP)
961- let eL = sigVerify(cP.bodyBytes, cP.proofs[0], cP.senderPublicKey)
962- let eM = sigVerify(cP.bodyBytes, cP.proofs[1], eK)
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)
963961 if (if (if (an)
964- then eL
965- else false)
966962 then eM
967963 else false)
964+ then eN
965+ else false)
968966 then true
969- else am(an, eL, eM)
967+ else am(an, eM, eN)
970968 }
971969 else {
972- let eN = {
973- let eO = dh()
974- if ($isInstanceOf(eO, "ByteVector"))
970+ let eO = {
971+ let eP = dj()
972+ if ($isInstanceOf(eP, "ByteVector"))
975973 then {
976- let dm = eO
977- dm
974+ let do = eP
975+ do
978976 }
979- else if ($isInstanceOf(eO, "Unit"))
980- then eI.senderPublicKey
977+ else if ($isInstanceOf(eP, "Unit"))
978+ then eJ.senderPublicKey
981979 else throw("Match error")
982980 }
983- sigVerify(eI.bodyBytes, eI.proofs[0], eN)
981+ sigVerify(eJ.bodyBytes, eJ.proofs[0], eO)
984982 }
985983 }
986984
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
5656 let A = "%s__delay"
5757
5858 func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
5959
6060
6161 func E (F,G) = toInt(fraction(F, toBigInt(G), c))
6262
6363
6464 func H (I,J,K) = fraction(I, J, K)
6565
6666
6767 func L (F) = if ((d > F))
6868 then -(F)
6969 else F
7070
7171
7272 func M () = "%s__factoryContract"
7373
7474
7575 func N () = "%s__managerPublicKey"
7676
7777
7878 func O () = "%s__pendingManagerPublicKey"
7979
8080
8181 func P () = "%s%s__price__last"
8282
8383
8484 func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], i)
8585
8686
8787 func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
8888
8989
9090 func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
9191
9292
9393 func X () = "%s__amountAsset"
9494
9595
9696 func Y () = "%s__priceAsset"
9797
9898
9999 func Z () = "%s__amp"
100100
101101
102102 func aa () = "%s__addonAddr"
103103
104104
105105 func ab (ac) = makeString(["%s%s__lastGetOneTknCall", ac], i)
106106
107107
108108 func ad (ac) = makeString(["%s%s__lastPutOneTknCall", ac], i)
109109
110110
111111 func ae () = "%s__factoryConfig"
112112
113113
114114 func af () = "%s%s__matcher__publicKey"
115115
116116
117117 func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
118118
119119
120120 func aj (ak) = ("%s%s%s__mappings__baseAsset2internalId__" + ak)
121121
122122
123123 func al () = "%s__shutdown"
124124
125125
126126 func am (an,ao,ap) = throw(((((("Failed: ordValid=" + toString(an)) + " sndrValid=") + toString(ao)) + " mtchrValid=") + toString(ap)))
127127
128128
129129 func aq (F) = {
130130 let ar = F
131131 if ($isInstanceOf(ar, "String"))
132132 then {
133133 let as = ar
134134 as
135135 }
136136 else throw("fail cast to String")
137137 }
138138
139139
140140 func at (au,av) = valueOrErrorMessage(getString(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
141141
142142
143143 func aw (au,av) = valueOrErrorMessage(getInteger(au, av), makeString(["mandatory ", toString(au), ".", av, " not defined"], ""))
144144
145145
146146 let ax = addressFromStringValue(at(this, M()))
147147
148148 let ay = at(this, Z())
149149
150150 func az () = valueOrElse(getBoolean(ax, al()), false)
151151
152152
153153 func aA () = fromBase58String(at(ax, af()))
154154
155155
156156 func aB () = {
157157 let aC = at(this, X())
158158 let aD = at(this, Y())
159159 let aE = aw(ax, aj(aD))
160160 let ah = aw(ax, aj(aC))
161161 split(at(ax, ag(toString(ah), toString(aE))), i)
162162 }
163163
164164
165165 func aF () = split(at(ax, ae()), i)
166166
167167
168168 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)
169169
170170
171171 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)
172172
173173
174174 func aV (aW) = if ((aW == "WAVES"))
175175 then wavesBalance(this).available
176176 else assetBalance(this, fromBase58String(aW))
177177
178178
179179 func aX (aY,aZ) = fraction(aY, c, aZ)
180180
181181
182182 func ba (bb,bc,bd) = {
183183 let be = fraction((bb - bc), b, bc)
184184 let bf = ((bd - L(be)) > d)
185185 if (!(bf))
186186 then throw(("Big slpg: " + toString(be)))
187187 else $Tuple2(bf, min([bb, bc]))
188188 }
189189
190190
191191 func bg (bh,bi,bj) = {
192192 let be = fraction(bi, b, bh)
193193 let bk = (bj > be)
194194 if (if (bk)
195195 then true
196196 else (bi > bh))
197197 then throw(((((((toString(bi) + " ") + toString(bh)) + " ") + toString(be)) + " ") + toString(bj)))
198198 else bk
199199 }
200200
201201
202202 func bl (bm,bn,bo,bp) = {
203203 let bq = B(bo, bm)
204204 let br = B(bp, bn)
205205 aX(br, bq)
206206 }
207207
208208
209209 func bs (bo,bp,bt) = {
210210 let bu = aB()
211211 let bv = parseIntValue(bu[t])
212212 let bw = parseIntValue(bu[u])
213213 let bx = bl(bv, bw, bo, bp)
214214 let aZ = B(bo, bv)
215215 let aY = B(bp, bw)
216216 let by = B(bt, a)
217217 let bz = aX(aZ, by)
218218 let bA = aX(aY, by)
219219 [bx, bz, bA]
220220 }
221221
222222
223-func bB (bC,bD,bE,bF) = {
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)]
226+ }
227+
228+
229+func bD (bE,bF,bG,bH) = {
224230 let bu = aB()
225- let bG = bu[q]
226- let bH = bu[r]
227- let bI = bu[s]
228- let bJ = parseIntValue(bu[t])
229- let bK = parseIntValue(bu[u])
230- let bL = bu[p]
231- let bM = valueOrErrorMessage(assetInfo(fromBase58String(bG)), "Wrong LP id").quantity
232- if ((bG != bD))
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))
233239 then throw("Wrong pmt asset")
234240 else {
235- let bN = aV(bH)
236- let bO = B(bN, bJ)
237- let bP = aV(bI)
238- let bQ = B(bP, bK)
239- let bR = aX(bQ, bO)
240- let bS = E(bR, a)
241- let bT = B(bE, a)
242- let bU = B(bM, a)
243- let bV = fraction(bO, bT, bU)
244- let bW = fraction(bQ, bT, bU)
245- let bX = E(bV, bJ)
246- let bY = E(bW, bK)
247- let bZ = if ((bC == ""))
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 == ""))
248254 then nil
249- else [ScriptTransfer(bF, bX, if ((bH == "WAVES"))
255+ else [ScriptTransfer(bH, bZ, if ((bJ == "WAVES"))
250256 then unit
251- else fromBase58String(bH)), ScriptTransfer(bF, bY, if ((bI == "WAVES"))
257+ else fromBase58String(bJ)), ScriptTransfer(bH, ca, if ((bK == "WAVES"))
252258 then unit
253- else fromBase58String(bI)), StringEntry(W(toString(bF), bC), aR(bX, bY, bE, bS, height, lastBlock.timestamp)), IntegerEntry(P(), bS), IntegerEntry(Q(height, lastBlock.timestamp), bS)]
254- $Tuple10(bX, bY, bH, bI, bN, bP, bM, bR, bL, bZ)
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)
255261 }
256262 }
257263
258264
259-func ca (bC,bd,cb,cc,cd,ce,bF,cf,cg,ch,ci,cj) = {
265+func cc (bE,bd,cd,ce,cf,cg,bH,ch,ci,cj,ck,cl) = {
260266 let bu = aB()
261- let bG = fromBase58String(bu[q])
262- let ck = bu[r]
263- let cl = bu[s]
264- let cm = bu[v]
265- let cn = bu[w]
266- let co = parseIntValue(bu[t])
267- let cp = parseIntValue(bu[u])
268- let bL = bu[p]
269- let cq = valueOrErrorMessage(assetInfo(bG), "Wr lp as").quantity
270- let bN = if (cf)
271- then aV(ck)
272- else if (if (ch)
273- then (cj == ck)
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)
274280 else false)
275- then (aV(ck) - ci)
276- else if (ch)
277- then aV(ck)
278- else (aV(ck) - cb)
279- let bP = if (cf)
280- then aV(cl)
281- else if (if (ch)
282- then (cj == cl)
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)
283289 else false)
284- then (aV(cl) - ci)
285- else if (ch)
286- then aV(cl)
287- else (aV(cl) - cd)
288- let cr = B(cb, co)
289- let cs = B(cd, cp)
290- let ct = aX(cs, cr)
291- let bO = B(bN, co)
292- let bQ = B(bP, cp)
293- let cu = if ((cq == 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))
294300 then {
295- let bR = d
296- let cv = d
297- let by = pow((cr * cs), 0, toBigInt(5), 1, 0, DOWN)
298- $Tuple5(E(by, a), E(cr, co), E(cs, cp), aX((bQ + cs), (bO + cr)), cv)
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)
299305 }
300306 else {
301- let bR = aX(bQ, bO)
302- let cw = fraction(L((bR - ct)), c, bR)
303- let cv = B(bd, a)
304- if (if ((bR != d))
305- then (cw > cv)
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)
306312 else false)
307- then throw(((("Price slippage " + toString(cw)) + " > ") + toString(cv)))
313+ then throw(((("Price slippage " + toString(cy)) + " > ") + toString(cx)))
308314 else {
309- let cx = B(cq, a)
310- let cy = fraction(cr, bR, c)
311- let cz = fraction(cs, c, bR)
312- let cA = if ((cy > cs))
313- then $Tuple2(cz, cs)
314- else $Tuple2(cr, cy)
315- let cB = cA._1
316- let cC = cA._2
317- let by = fraction(cx, cC, bQ)
318- $Tuple5(E(by, a), E(cB, co), E(cC, cp), bR, cv)
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)
319325 }
320326 }
321- let cD = cu._1
322- let cE = cu._2
323- let cF = cu._3
324- let bS = E(cu._4, a)
325- let cG = E(cu._5, a)
326- if ((0 >= cD))
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))
327333 then throw("LP <= 0")
328334 else {
329- let cH = if (!(cg))
335+ let cJ = if (!(ci))
330336 then 0
331- else cD
332- let cI = (cb - cE)
333- let cJ = (cd - cF)
334- let cK = if (if (ch)
335- then (cj == ck)
337+ else cF
338+ let cK = (cd - cG)
339+ let cL = (cf - cH)
340+ let cM = if (if (cj)
341+ then (cl == cm)
336342 else false)
337- then $Tuple2(ci, 0)
338- else if (if (ch)
339- then (cj == cl)
343+ then $Tuple2(ck, 0)
344+ else if (if (cj)
345+ then (cl == cn)
340346 else false)
341- then $Tuple2(0, ci)
342- else $Tuple2(cE, cF)
343- let cL = cK._1
344- let cM = cK._2
345- let cN = [IntegerEntry(P(), bS), IntegerEntry(Q(height, lastBlock.timestamp), bS), StringEntry(T(bF, bC), aG(cL, cM, cH, bS, bd, cG, height, lastBlock.timestamp, cI, cJ))]
346- $Tuple13(cD, cH, bS, bN, bP, cq, bG, bL, cN, cI, cJ, cc, ce)
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)
347353 }
348354 }
349355
350356
351-func cO (cP) = {
357+func cQ (cR) = {
352358 let bu = aB()
353- let cQ = bu[r]
354- let cR = bu[s]
355- let bL = parseIntValue(bu[p])
359+ let cS = bu[r]
360+ let cT = bu[s]
361+ let bN = parseIntValue(bu[p])
356362 let bv = parseIntValue(bu[t])
357363 let bw = parseIntValue(bu[u])
358- let cS = aV(cQ)
359- let cT = aV(cR)
360- let bR = if ((cP.orderType == Buy))
361- then bl(bv, bw, (cS + cP.amount), cT)
362- else bl(bv, bw, (cS - cP.amount), cT)
363- let bS = E(bR, a)
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)
364370 if (if (if (az())
365371 then true
366- else (bL == m))
372+ else (bN == m))
367373 then true
368- else (bL == n))
374+ else (bN == n))
369375 then throw("Admin blocked")
370376 else {
371- let cU = cP.assetPair.amountAsset
372- let cV = if ((cU == unit))
373- then "WAVES"
374- else toBase58String(value(cU))
375- let cW = cP.assetPair.priceAsset
377+ let cW = cR.assetPair.amountAsset
376378 let cX = if ((cW == unit))
377379 then "WAVES"
378380 else toBase58String(value(cW))
379- if (if ((cV != cQ))
381+ let cY = cR.assetPair.priceAsset
382+ let cZ = if ((cY == unit))
383+ then "WAVES"
384+ else toBase58String(value(cY))
385+ if (if ((cX != cS))
380386 then true
381- else (cX != cR))
387+ else (cZ != cT))
382388 then throw("Wr assets")
383389 else {
384- let cY = cP.price
385- let cp = fraction(a, bw, bv)
386- let cZ = H(cY, a, cp)
387- let da = if ((cP.orderType == Buy))
388- then (bS >= cZ)
389- else (cZ >= bS)
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)
390396 true
391397 }
392398 }
393399 }
394400
395401
396-func db (dc) = if ((size(dc.payments) != 1))
402+func dd (de) = if ((size(de.payments) != 1))
397403 then throw("1 pmnt exp")
398404 else {
399- let dd = value(dc.payments[0])
400- let bD = value(dd.assetId)
401- let ci = dd.amount
402- let cu = bB(toBase58String(dc.transactionId), toBase58String(bD), ci, dc.caller)
403- let bX = cu._1
404- let bY = cu._2
405- let bL = parseIntValue(cu._9)
406- let bZ = cu._10
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
407413 if (if (az())
408414 then true
409- else (bL == n))
410- then throw(("Admin blocked: " + toString(bL)))
411- else $Tuple5(bX, bY, ci, bD, bZ)
415+ else (bN == n))
416+ then throw(("Admin blocked: " + toString(bN)))
417+ else $Tuple5(bZ, ca, ck, bF, cb)
412418 }
413419
414420
415-func de (ac,V,df,dg,bd,cg,ch,ci,cj) = {
416- let cu = ca(V, bd, value(df).amount, value(df).assetId, value(dg).amount, value(dg).assetId, ac, false, cg, ch, ci, cj)
417- let bL = parseIntValue(cu._8)
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)
418424 if (if (if (az())
419425 then true
420- else (bL == l))
426+ else (bN == l))
421427 then true
422- else (bL == n))
423- then throw(("Blocked:" + toString(bL)))
424- else cu
428+ else (bN == n))
429+ then throw(("Blocked:" + toString(bN)))
430+ else cw
425431 }
426432
427433
428-func dh () = {
434+func dj () = {
429435 let ar = getString(N())
430436 if ($isInstanceOf(ar, "String"))
431437 then {
432- let di = ar
433- fromBase58String(di)
438+ let dk = ar
439+ fromBase58String(dk)
434440 }
435441 else if ($isInstanceOf(ar, "Unit"))
436442 then unit
437443 else throw("Match error")
438444 }
439445
440446
441-func dj () = {
447+func dl () = {
442448 let ar = getString(O())
443449 if ($isInstanceOf(ar, "String"))
444450 then {
445- let di = ar
446- fromBase58String(di)
451+ let dk = ar
452+ fromBase58String(dk)
447453 }
448454 else if ($isInstanceOf(ar, "Unit"))
449455 then unit
450456 else throw("Match error")
451457 }
452458
453459
454-let dk = throw("Permission denied")
460+let dm = throw("Permission denied")
455461
456-func dl (dc) = {
457- let ar = dh()
462+func dn (de) = {
463+ let ar = dj()
458464 if ($isInstanceOf(ar, "ByteVector"))
459465 then {
460- let dm = ar
461- if ((dc.callerPublicKey == dm))
466+ let do = ar
467+ if ((de.callerPublicKey == do))
462468 then true
463- else dk
469+ else dm
464470 }
465471 else if ($isInstanceOf(ar, "Unit"))
466- then if ((dc.caller == this))
472+ then if ((de.caller == this))
467473 then true
468- else dk
474+ else dm
469475 else throw("Match error")
470476 }
471477
472478
473-@Callable(dc)
479+@Callable(de)
474480 func constructor (M) = {
475- let dn = dl(dc)
476- if ((dn == dn))
481+ let dp = dn(de)
482+ if ((dp == dp))
477483 then [StringEntry(M(), M)]
478484 else throw("Strict value is not equal to itself.")
479485 }
480486
481487
482488
483-@Callable(dc)
484-func setManager (do) = {
485- let dn = dl(dc)
486- if ((dn == dn))
489+@Callable(de)
490+func setManager (dq) = {
491+ let dp = dn(de)
492+ if ((dp == dp))
487493 then {
488- let dp = fromBase58String(do)
489- if ((dp == dp))
490- then [StringEntry(O(), do)]
494+ let dr = fromBase58String(dq)
495+ if ((dr == dr))
496+ then [StringEntry(O(), dq)]
491497 else throw("Strict value is not equal to itself.")
492498 }
493499 else throw("Strict value is not equal to itself.")
494500 }
495501
496502
497503
498-@Callable(dc)
504+@Callable(de)
499505 func confirmManager () = {
500- let dq = dj()
501- let dr = if (isDefined(dq))
506+ let bC = dl()
507+ let ds = if (isDefined(bC))
502508 then true
503509 else throw("No pending manager")
504- if ((dr == dr))
510+ if ((ds == ds))
505511 then {
506- let ds = if ((dc.callerPublicKey == value(dq)))
512+ let dt = if ((de.callerPublicKey == value(bC)))
507513 then true
508514 else throw("You are not pending manager")
509- if ((ds == ds))
510- then [StringEntry(N(), toBase58String(value(dq))), DeleteEntry(O())]
515+ if ((dt == dt))
516+ then [StringEntry(N(), toBase58String(value(bC))), DeleteEntry(O())]
511517 else throw("Strict value is not equal to itself.")
512518 }
513519 else throw("Strict value is not equal to itself.")
514520 }
515521
516522
517523
518-@Callable(dc)
519-func calculatePrices (bo,bp,bt) = {
520- let dq = bs(bo, bp, bt)
521- $Tuple2(nil, [E(dq[0], a), E(dq[1], a), E(dq[2], a)])
522- }
523-
524-
525-
526-@Callable(dc)
527-func put (dt,du) = {
528- let dv = aF()
529- let dw = valueOrErrorMessage(addressFromString(dv[x]), "Wr st addr")
530- let dx = valueOrErrorMessage(addressFromString(dv[y]), "Wr sl addr")
531- if ((0 > dt))
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))
532530 then throw("Wrong slippage")
533- else if ((size(dc.payments) != 2))
531+ else if ((size(de.payments) != 2))
534532 then throw("2 pmnts expd")
535533 else {
536- let dy = de(toString(dc.caller), toBase58String(dc.transactionId), AttachedPayment(value(dc.payments[0]).assetId, value(dc.payments[0]).amount), dc.payments[1], dt, true, false, 0, "")
537- let cH = dy._2
538- let dz = dy._7
539- let bZ = dy._9
540- let cI = dy._10
541- let cJ = dy._11
542- let bH = dy._12
543- let bI = dy._13
544- let cu = invoke(ax, "emit", [cH], nil)
545- if ((cu == cu))
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))
546544 then {
547- let dA = {
548- let ar = cu
545+ let dB = {
546+ let ar = cw
549547 if ($isInstanceOf(ar, "Address"))
550548 then {
551- let dB = ar
552- invoke(dB, "emit", [cH], nil)
549+ let dC = ar
550+ invoke(dC, "emit", [cJ], nil)
553551 }
554552 else unit
555553 }
556- if ((dA == dA))
554+ if ((dB == dB))
557555 then {
558- let dC = if ((cI > 0))
559- then invoke(dx, "put", nil, [AttachedPayment(bH, cI)])
556+ let dD = if ((cK > 0))
557+ then invoke(dy, "put", nil, [AttachedPayment(bJ, cK)])
560558 else nil
561- if ((dC == dC))
559+ if ((dD == dD))
562560 then {
563- let dD = if ((cJ > 0))
564- then invoke(dx, "put", nil, [AttachedPayment(bI, cJ)])
561+ let dE = if ((cL > 0))
562+ then invoke(dy, "put", nil, [AttachedPayment(bK, cL)])
565563 else nil
566- if ((dD == dD))
564+ if ((dE == dE))
567565 then {
568- let dE = if (du)
566+ let dF = if (dv)
569567 then {
570- let dF = invoke(dw, "stake", nil, [AttachedPayment(dz, cH)])
571- if ((dF == dF))
568+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
569+ if ((dG == dG))
572570 then nil
573571 else throw("Strict value is not equal to itself.")
574572 }
575- else [ScriptTransfer(dc.caller, cH, dz)]
576- (bZ ++ dE)
573+ else [ScriptTransfer(de.caller, cJ, dA)]
574+ (cb ++ dF)
577575 }
578576 else throw("Strict value is not equal to itself.")
579577 }
580578 else throw("Strict value is not equal to itself.")
581579 }
582580 else throw("Strict value is not equal to itself.")
583581 }
584582 else throw("Strict value is not equal to itself.")
585583 }
586584 }
587585
588586
589587
590-@Callable(dc)
591-func putOneTkn (dG,dH,dI,bd,du) = {
588+@Callable(de)
589+func putOneTkn (dH,dI,dJ,bd,dv) = {
592590 let bu = aF()
593- let dw = valueOrErrorMessage(addressFromString(bu[x]), "Wr st addr")
594- let dx = valueOrErrorMessage(addressFromString(bu[y]), "Wr sl addr")
595- let dJ = valueOrErrorMessage(addressFromString(bu[z]), "Wr gwx addr")
596- let dK = aB()
597- let bH = dK[r]
598- let bI = dK[s]
599- let bJ = parseIntValue(dK[t])
600- let bK = parseIntValue(dK[u])
601- let dL = valueOrElse(getString(this, aa()), "")
602- let bF = if ((dL == toString(dc.caller)))
603- then dc.originCaller
604- else dc.caller
605- let dM = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
606- let dN = reentrantInvoke(dM, "ensureCanPutOneTkn", [toString(bF)], nil)
607- if ((dN == dN))
591+ let dx = valueOrErrorMessage(addressFromString(bu[x]), "Wr st addr")
592+ let dy = valueOrErrorMessage(addressFromString(bu[y]), "Wr sl addr")
593+ let dK = valueOrErrorMessage(addressFromString(bu[z]), "Wr gwx addr")
594+ let dL = aB()
595+ let bJ = dL[r]
596+ let bK = dL[s]
597+ let bL = parseIntValue(dL[t])
598+ let bM = parseIntValue(dL[u])
599+ let dM = valueOrElse(getString(this, aa()), "")
600+ let bH = if ((dM == toString(de.caller)))
601+ then de.originCaller
602+ else de.caller
603+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
604+ let dO = reentrantInvoke(dN, "ensureCanPutOneTkn", [toString(bH)], nil)
605+ if ((dO == dO))
608606 then if (if (if (if ((0 >= bd))
609- then true
610- else (0 >= dG))
611607 then true
612608 else (0 >= dH))
613609 then true
614610 else (0 >= dI))
611+ then true
612+ else (0 >= dJ))
615613 then throw("Wrong params")
616- else if ((size(dc.payments) != 1))
614+ else if ((size(de.payments) != 1))
617615 then throw("1 pmnt expd")
618616 else {
619- let dd = value(dc.payments[0])
620- let bD = toBase58String(value(dd.assetId))
621- let ci = dd.amount
622- if (if (if ((dG > ci))
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))
623621 then true
624- else (dH > ci))
622+ else (dI > ck))
625623 then true
626- else (10000000 > ci))
624+ else (10000000 > ck))
627625 then throw("Wrong pmt amt")
628626 else {
629- let bN = aV(bH)
630- let bP = aV(bI)
631- let dO = if ((bD == bH))
632- then $Tuple6((bN - ci), bP, (ci - dG), dH, 0, 0)
633- else if ((bD == bI))
634- then $Tuple6(bN, (bP - ci), 0, 0, (ci - dH), dG)
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)
635633 else throw("wrong pmtAssetId")
636- let dP = dO._1
637- let dQ = dO._2
638- let dR = dO._3
639- let dS = dO._4
640- let dT = dO._5
641- let dU = dO._6
642- let bi = invoke(dJ, "calcD", [toString(dP), toString(dQ), ay, g, h], nil)
643- let bh = invoke(dJ, "calcD", [toString(toBigInt(((dP + dR) - dU))), toString(toBigInt(((dQ + dT) - dS))), ay, g, h], nil)
644- let dV = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
645- if ((dV == dV))
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))
646644 then {
647- let dW = de(toString(dc.caller), toBase58String(dc.transactionId), AttachedPayment(fromBase58String(bH), dG), AttachedPayment(fromBase58String(bI), dH), bd, true, true, ci, bD)
648- let dX = dW._2
649- let dz = dW._7
650- let bZ = dW._9
651- let cI = dW._10
652- let cJ = dW._11
653- let dY = ba(toBigInt(dX), toBigInt(dI), toBigInt(bd))
654- let cH = toInt(dY._2)
655- let dy = invoke(ax, "emit", [cH], nil)
656- if ((dy == dy))
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))
657655 then {
658- let dA = {
659- let ar = dy
656+ let dB = {
657+ let ar = dz
660658 if ($isInstanceOf(ar, "Address"))
661659 then {
662- let dB = ar
663- invoke(dB, "emit", [cH], nil)
660+ let dC = ar
661+ invoke(dC, "emit", [cJ], nil)
664662 }
665663 else unit
666664 }
667- if ((dA == dA))
665+ if ((dB == dB))
668666 then {
669- let dC = if ((cI > 0))
670- then invoke(dx, "put", nil, [AttachedPayment(fromBase58String(bH), cI)])
667+ let dD = if ((cK > 0))
668+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bJ), cK)])
671669 else nil
672- if ((dC == dC))
670+ if ((dD == dD))
673671 then {
674- let dD = if ((cJ > 0))
675- then invoke(dx, "put", nil, [AttachedPayment(fromBase58String(bI), cJ)])
672+ let dE = if ((cL > 0))
673+ then invoke(dy, "put", nil, [AttachedPayment(fromBase58String(bK), cL)])
676674 else nil
677- if ((dD == dD))
675+ if ((dE == dE))
678676 then {
679- let dE = if (du)
677+ let dF = if (dv)
680678 then {
681- let dF = invoke(dw, "stake", nil, [AttachedPayment(dz, cH)])
682- if ((dF == dF))
679+ let dG = invoke(dx, "stake", nil, [AttachedPayment(dA, cJ)])
680+ if ((dG == dG))
683681 then nil
684682 else throw("Strict value is not equal to itself.")
685683 }
686- else [ScriptTransfer(dc.caller, cH, dz)]
687- (bZ ++ dE)
684+ else [ScriptTransfer(de.caller, cJ, dA)]
685+ (cb ++ dF)
688686 }
689687 else throw("Strict value is not equal to itself.")
690688 }
691689 else throw("Strict value is not equal to itself.")
692690 }
693691 else throw("Strict value is not equal to itself.")
694692 }
695693 else throw("Strict value is not equal to itself.")
696694 }
697695 else throw("Strict value is not equal to itself.")
698696 }
699697 }
700698 else throw("Strict value is not equal to itself.")
701699 }
702700
703701
704702
705-@Callable(dc)
706-func putForFree (dZ) = if ((0 > dZ))
703+@Callable(de)
704+func putForFree (ea) = if ((0 > ea))
707705 then throw("Wrong slpg")
708- else if ((size(dc.payments) != 2))
706+ else if ((size(de.payments) != 2))
709707 then throw("2 pmnts expd")
710708 else {
711- let dW = de(toString(dc.caller), toBase58String(dc.transactionId), AttachedPayment(value(dc.payments[0]).assetId, value(dc.payments[0]).amount), dc.payments[1], dZ, false, false, 0, "")
712- dW._9
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
713711 }
714712
715713
716714
717-@Callable(dc)
715+@Callable(de)
718716 func get () = {
719- let cu = db(dc)
720- let ea = cu._1
721- let bY = cu._2
722- let ci = cu._3
723- let bD = cu._4
724- let bZ = cu._5
725- let eb = invoke(ax, "burn", [ci], [AttachedPayment(bD, ci)])
726- if ((eb == eb))
727- then bZ
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
728726 else throw("Strict value is not equal to itself.")
729727 }
730728
731729
732730
733-@Callable(dc)
734-func getOneTkn (ec,ed,ee,ef,bd) = if ((size(dc.payments) != 1))
731+@Callable(de)
732+func getOneTkn (ed,ee,ef,eg,bd) = if ((size(de.payments) != 1))
735733 then throw("1 pmnt expd")
736734 else {
737735 let bu = aB()
738- let bG = bu[q]
739- let bH = bu[r]
740- let bI = bu[s]
741- let bJ = parseIntValue(bu[t])
742- let bK = parseIntValue(bu[u])
743- let bL = bu[p]
744- let dv = aF()
745- let dJ = valueOrErrorMessage(addressFromString(dv[z]), "Wr sl addr")
746- let dd = value(dc.payments[0])
747- let dL = valueOrElse(getString(this, aa()), "")
748- let bF = if ((dL == toString(dc.caller)))
749- then dc.originCaller
750- else dc.caller
751- let bC = toBase58String(dc.transactionId)
752- let bD = value(dd.assetId)
753- let ci = dd.amount
754- let dM = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
755- let dN = reentrantInvoke(dM, "ensureCanGetOneTkn", [toString(bF)], nil)
756- if ((dN == dN))
757- then if ((1000000000 > ci))
736+ let bI = bu[q]
737+ let bJ = bu[r]
738+ let bK = bu[s]
739+ let bL = parseIntValue(bu[t])
740+ let bM = parseIntValue(bu[u])
741+ let bN = bu[p]
742+ let dw = aF()
743+ let dK = valueOrErrorMessage(addressFromString(dw[z]), "Wr sl addr")
744+ let df = value(de.payments[0])
745+ let dM = valueOrElse(getString(this, aa()), "")
746+ let bH = if ((dM == toString(de.caller)))
747+ then de.originCaller
748+ else de.caller
749+ let bE = toBase58String(de.transactionId)
750+ let bF = value(df.assetId)
751+ let ck = df.amount
752+ let dN = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
753+ let dO = reentrantInvoke(dN, "ensureCanGetOneTkn", [toString(bH)], nil)
754+ if ((dO == dO))
755+ then if ((1000000000 > ck))
758756 then throw("Min pmt 10 LP")
759757 else if (if (if ((0 > bd))
760758 then true
761- else (0 > ec))
759+ else (0 > ed))
762760 then true
763- else (0 > ee))
761+ else (0 > ef))
764762 then throw("Wrong params")
765- else if ((bG != toBase58String(bD)))
763+ else if ((bI != toBase58String(bF)))
766764 then throw("Wrong LP")
767765 else {
768- let cu = bB(toBase58String(dc.transactionId), toBase58String(bD), ci, dc.caller)
769- let eg = cu._1
770- let eh = cu._2
771- let bN = aV(bH)
772- let bP = aV(bI)
773- let ei = if ((ef == bH))
774- then $Tuple7((bN - eg), (bP - eh), ec, eh, 0, 0, (eg + ec))
775- else if ((ef == bI))
776- then $Tuple7((bN - eg), (bP - eh), 0, 0, ec, eg, (eh + ec))
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))
777775 else throw("wrong outAssetId")
778- let dP = ei._1
779- let dQ = ei._2
780- let dR = ei._3
781- let dS = ei._4
782- let dT = ei._5
783- let dU = ei._6
784- let ej = ei._7
785- if (if ((0 > dR))
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))
786784 then true
787- else (0 > dT))
785+ else (0 > dU))
788786 then throw("Wrong calc")
789787 else {
790- let bi = invoke(dJ, "calcD", [toString(dP), toString(dQ), ay, g, h], nil)
791- let bh = invoke(dJ, "calcD", [toString(((dP - dR) + dU)), toString(((dQ + dS) - dT)), ay, g, h], nil)
792- let dV = bg(parseBigIntValue(aq(bh)), parseBigIntValue(aq(bi)), f)
793- if ((dV == dV))
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))
794792 then {
795- let ek = ba(toBigInt(ej), toBigInt(ee), toBigInt(bd))
796- if ((ek == ek))
793+ let el = ba(toBigInt(ek), toBigInt(ef), toBigInt(bd))
794+ if ((el == el))
797795 then {
798- let el = if ((ef == bH))
799- then $Tuple2(toInt(ek._2), 0)
800- else $Tuple2(0, toInt(ek._2))
801- let em = el._1
802- let en = el._2
803- let eo = aX(B(bP, bK), B(bN, bJ))
804- let ep = E(eo, a)
805- let bZ = [ScriptTransfer(bF, (em + en), if ((ef == "WAVES"))
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"))
806804 then unit
807- else fromBase58String(ef)), StringEntry(W(toString(bF), bC), aR(em, en, ci, ep, height, lastBlock.timestamp)), IntegerEntry(P(), ep), IntegerEntry(Q(height, lastBlock.timestamp), ep)]
808- if ((bZ == bZ))
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))
809807 then {
810- let eq = invoke(ax, "burn", [ci], [AttachedPayment(bD, ci)])
811- if ((eq == eq))
812- then bZ
808+ let er = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
809+ if ((er == er))
810+ then cb
813811 else throw("Strict value is not equal to itself.")
814812 }
815813 else throw("Strict value is not equal to itself.")
816814 }
817815 else throw("Strict value is not equal to itself.")
818816 }
819817 else throw("Strict value is not equal to itself.")
820818 }
821819 }
822820 else throw("Strict value is not equal to itself.")
823821 }
824822
825823
826824
827-@Callable(dc)
828-func getNoLess (er,es) = {
829- let cu = db(dc)
830- let bX = cu._1
831- let bY = cu._2
832- let ci = cu._3
833- let bD = cu._4
834- let bZ = cu._5
835- if ((er > bX))
836- then throw(((("Failed: " + toString(bX)) + " < ") + toString(er)))
837- else if ((es > bY))
838- then throw(((("Failed: " + toString(bY)) + " < ") + toString(es)))
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)))
839837 else {
840- let et = invoke(ax, "burn", [ci], [AttachedPayment(bD, ci)])
841- if ((et == et))
842- then bZ
838+ let eu = invoke(ax, "burn", [ck], [AttachedPayment(bF, ck)])
839+ if ((eu == eu))
840+ then cb
843841 else throw("Strict value is not equal to itself.")
844842 }
845843 }
846844
847845
848846
849-@Callable(dc)
850-func unstakeAndGet (eu) = {
851- let ev = if ((size(dc.payments) != 0))
847+@Callable(de)
848+func unstakeAndGet (ev) = {
849+ let ew = if ((size(de.payments) != 0))
852850 then throw("No pmnts expd")
853851 else true
854- if ((ev == ev))
852+ if ((ew == ew))
855853 then {
856854 let bu = aB()
857- let ew = aF()
858- let dz = fromBase58String(bu[q])
859- let ex = valueOrErrorMessage(addressFromString(ew[x]), "Wr st addr")
860- let ey = invoke(ex, "unstake", [toBase58String(dz), eu], nil)
861- if ((ey == ey))
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))
862860 then {
863- let cu = bB(toBase58String(dc.transactionId), toBase58String(dz), eu, dc.caller)
864- let bL = parseIntValue(cu._9)
865- let bZ = cu._10
866- let ez = if (if (az())
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())
867865 then true
868- else (bL == n))
869- then throw(("Blocked: " + toString(bL)))
866+ else (bN == n))
867+ then throw(("Blocked: " + toString(bN)))
870868 else true
871- if ((ez == ez))
869+ if ((eA == eA))
872870 then {
873- let eA = invoke(ax, "burn", [eu], [AttachedPayment(dz, eu)])
874- if ((eA == eA))
875- then bZ
871+ let eB = invoke(ax, "burn", [ev], [AttachedPayment(dA, ev)])
872+ if ((eB == eB))
873+ then cb
876874 else throw("Strict value is not equal to itself.")
877875 }
878876 else throw("Strict value is not equal to itself.")
879877 }
880878 else throw("Strict value is not equal to itself.")
881879 }
882880 else throw("Strict value is not equal to itself.")
883881 }
884882
885883
886884
887-@Callable(dc)
888-func activate (eB,eC) = if ((toString(dc.caller) != toString(ax)))
885+@Callable(de)
886+func activate (eC,eD) = if ((toString(de.caller) != toString(ax)))
889887 then throw("denied")
890- else $Tuple2([StringEntry(X(), eB), StringEntry(Y(), eC)], "success")
888+ else $Tuple2([StringEntry(X(), eC), StringEntry(Y(), eD)], "success")
891889
892890
893891
894-@Callable(dc)
895-func setS (eD,ez) = if ((toString(dc.caller) != at(this, aa())))
896- then dk
897- else [StringEntry(eD, ez)]
892+@Callable(de)
893+func setS (eE,eA) = if ((toString(de.caller) != at(this, aa())))
894+ then dm
895+ else [StringEntry(eE, eA)]
898896
899897
900898
901-@Callable(dc)
902-func setI (eD,ez) = if ((toString(dc.caller) != at(this, aa())))
903- then dk
904- else [IntegerEntry(eD, ez)]
899+@Callable(de)
900+func setI (eE,eA) = if ((toString(de.caller) != at(this, aa())))
901+ then dm
902+ else [IntegerEntry(eE, eA)]
905903
906904
907905
908-@Callable(dc)
906+@Callable(de)
909907 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
910908
911909
912910
913-@Callable(dc)
911+@Callable(de)
914912 func getAccBalanceWrapperREADONLY (aW) = $Tuple2(nil, aV(aW))
915913
916914
917915
918-@Callable(dc)
916+@Callable(de)
919917 func calcPricesWrapperREADONLY (bo,bp,bt) = {
920- let eE = bs(bo, bp, bt)
921- $Tuple2(nil, [toString(eE[0]), toString(eE[1]), toString(eE[2])])
918+ let eF = bs(bo, bp, bt)
919+ $Tuple2(nil, [toString(eF[0]), toString(eF[1]), toString(eF[2])])
922920 }
923921
924922
925923
926-@Callable(dc)
927-func fromX18WrapperREADONLY (F,eF) = $Tuple2(nil, E(parseBigIntValue(F), eF))
924+@Callable(de)
925+func fromX18WrapperREADONLY (F,eG) = $Tuple2(nil, E(parseBigIntValue(F), eG))
928926
929927
930928
931-@Callable(dc)
929+@Callable(de)
932930 func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
933931
934932
935933
936-@Callable(dc)
934+@Callable(de)
937935 func calcPriceBigIntWrapperREADONLY (aY,aZ) = $Tuple2(nil, toString(aX(parseBigIntValue(aY), parseBigIntValue(aZ))))
938936
939937
940938
941-@Callable(dc)
942-func estimatePutOperationWrapperREADONLY (bC,bd,cb,cc,cd,ce,eG,cf,cg) = $Tuple2(nil, ca(bC, bd, cb, cc, cd, ce, eG, cf, cg, 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, ""))
943941
944942
945943
946-@Callable(dc)
947-func estimateGetOperationWrapperREADONLY (bC,eH,bE,eG) = {
948- let cu = bB(bC, eH, bE, addressFromStringValue(eG))
949- $Tuple2(nil, $Tuple10(cu._1, cu._2, cu._3, cu._4, cu._5, cu._6, cu._7, toString(cu._8), cu._9, cu._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))
950948 }
951949
952950
953-@Verifier(eI)
954-func eJ () = {
955- let ar = eI
951+@Verifier(eJ)
952+func eK () = {
953+ let ar = eJ
956954 if ($isInstanceOf(ar, "Order"))
957955 then {
958- let cP = ar
959- let eK = aA()
960- let an = cO(cP)
961- let eL = sigVerify(cP.bodyBytes, cP.proofs[0], cP.senderPublicKey)
962- let eM = sigVerify(cP.bodyBytes, cP.proofs[1], eK)
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)
963961 if (if (if (an)
964- then eL
965- else false)
966962 then eM
967963 else false)
964+ then eN
965+ else false)
968966 then true
969- else am(an, eL, eM)
967+ else am(an, eM, eN)
970968 }
971969 else {
972- let eN = {
973- let eO = dh()
974- if ($isInstanceOf(eO, "ByteVector"))
970+ let eO = {
971+ let eP = dj()
972+ if ($isInstanceOf(eP, "ByteVector"))
975973 then {
976- let dm = eO
977- dm
974+ let do = eP
975+ do
978976 }
979- else if ($isInstanceOf(eO, "Unit"))
980- then eI.senderPublicKey
977+ else if ($isInstanceOf(eP, "Unit"))
978+ then eJ.senderPublicKey
981979 else throw("Match error")
982980 }
983- sigVerify(eI.bodyBytes, eI.proofs[0], eN)
981+ sigVerify(eJ.bodyBytes, eJ.proofs[0], eO)
984982 }
985983 }
986984

github/deemru/w8io/c3f4982 
300.24 ms