tx · BywH8p8mvz2UZ5WuBUYW9n3uor1FpTrNEZy3dRdFhA5S

3MtP3m8hWMxYcyDxXB6n299KrsLLyT8ehni:  -0.01300000 Waves

2023.02.09 20:01 [2442355] smart account 3MtP3m8hWMxYcyDxXB6n299KrsLLyT8ehni > SELF 0.00000000 Waves

{ "type": 13, "id": "BywH8p8mvz2UZ5WuBUYW9n3uor1FpTrNEZy3dRdFhA5S", "fee": 1300000, "feeAssetId": null, "timestamp": 1675962062777, "version": 1, "sender": "3MtP3m8hWMxYcyDxXB6n299KrsLLyT8ehni", "senderPublicKey": "BRyVaCURUMe7ssUbXucteig1g44bGwWirJQzugKahUQ1", "proofs": [ "32cfp7u6vfR1e4Yqcv8X2oHhKtoVXdZYrnPobM5FbrSojHtZY4woCGFRUUquA1YJBhR45mY8CK72dcAX9sWkqasy" ], "script": "base64:BgIOCAIiAnR4IgZ2ZXJpZnkAAAEBYQEBYgAGXn9RmA==", "chainId": 84, "height": 2442355, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8Xg7j2AdyGjwm1G1bbaYJ7SgWSGE9KvwHbpw1gcs6f3E Next: 5JFezEPs4EWeQ6qqUMsU41nr2EaHE81djcK5mm1DDqMq Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 100000000
5-
6-let b = toBigInt(100000000)
7-
8-let c = toBigInt(1000000000000000000)
9-
10-let d = toBigInt(0)
11-
12-let e = toBigInt(0)
13-
14-let f = toBigInt(1)
15-
16-let g = toBigInt(2)
17-
18-let h = toBigInt(3)
19-
20-let i = toBigInt(4)
21-
22-let j = toBigInt((a - ((a * 1) / a)))
23-
24-let k = "WAVES"
25-
26-let l = "100"
27-
28-let m = "1"
29-
30-let n = "__"
31-
32-let o = ""
33-
34-let p = 1
35-
36-let q = 2
37-
38-let r = 3
39-
40-let s = 4
41-
42-let t = 1
43-
44-let u = 2
45-
46-let v = 3
47-
48-let w = 4
49-
50-let x = 5
51-
52-let y = 6
53-
54-let z = 7
55-
56-let A = 8
57-
58-let B = 9
59-
60-let C = 1
61-
62-let D = 6
63-
64-let E = 7
65-
66-let F = 10
67-
68-let G = fraction(10, a, 10000)
69-
70-func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
71-
72-
73-func K (I,J) = fraction(I, c, J)
74-
75-
76-func L (M,N) = toInt(fraction(M, toBigInt(N), c))
77-
78-
79-func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
80-
81-
82-func Q (I,J) = fraction(I, c, toBigInt(J))
83-
84-
85-func R (M,N) = fraction(M, toBigInt(N), c)
86-
87-
88-func S (T,U,V) = fraction(T, U, V)
89-
90-
91-func W (M) = if ((d > M))
92- then -(M)
93- else M
94-
95-
96-func X (M) = if ((d > M))
97- then -(M)
98- else M
99-
100-
101-func Y () = "%s__factoryContract"
102-
103-
104-func Z () = "%s__managerPublicKey"
105-
106-
107-func aa () = "%s__pendingManagerPublicKey"
108-
109-
110-func ab () = "%s%s__price__last"
111-
112-
113-func ac (ad,ae) = makeString(["%s%s%d%d__price__history", toString(ad), toString(ae)], n)
114-
115-
116-func af (ag,ah) = ((("%s%s%s__P__" + ag) + "__") + ah)
117-
118-
119-func ai (ag,ah) = ((("%s%s%s__G__" + ag) + "__") + ah)
120-
121-
122-func aj () = "%s__amountAsset"
123-
124-
125-func ak () = "%s__priceAsset"
126-
127-
128-func al () = "%s__amp"
129-
130-
131-func am () = "%s__addonAddr"
132-
133-
134-let an = "%s__fee"
135-
136-let ao = valueOrElse(getInteger(this, an), G)
137-
138-let ap = makeString(["%s", "dLp"], n)
139-
140-let aq = makeString(["%s", "dLpRefreshedHeight"], n)
141-
142-let ar = makeString(["%s", "refreshDLpDelay"], n)
143-
144-let as = 30
145-
146-let at = valueOrElse(getInteger(this, ar), as)
147-
148-func au () = "%s__factoryConfig"
149-
150-
151-func av () = "%s%s__matcher__publicKey"
152-
153-
154-func aw (ax,ay) = (((("%d%d%s__" + ax) + "__") + ay) + "__config")
155-
156-
157-func az (aA) = ("%s%s%s__mappings__baseAsset2internalId__" + aA)
158-
159-
160-func aB () = "%s__shutdown"
161-
162-
163-func aC () = "%s__allowedLpStableScriptHash"
164-
165-
166-func aD () = "%s__feeCollectorAddress"
167-
168-
169-func aE (aF,aG,aH,aI) = throw((((((((("order validation failed: orderValid=" + toString(aF)) + " (") + aG) + ")") + " senderValid=") + toString(aH)) + " matcherValid=") + toString(aI)))
170-
171-
172-func aJ (aK,aL) = valueOrErrorMessage(getString(aK, aL), makeString(["mandatory ", toString(aK), ".", aL, " not defined"], ""))
173-
174-
175-func aM (aK,aL) = valueOrErrorMessage(getInteger(aK, aL), makeString(["mandatory ", toString(aK), ".", aL, " not defined"], ""))
176-
177-
178-func aN (aO) = throw(makeString(["lp_stable.ride:", aO], " "))
179-
180-
181-func aP (aO) = makeString(["lp_stable.ride:", aO], " ")
182-
183-
184-let aQ = addressFromStringValue(aJ(this, Y()))
185-
186-let aR = {
187- let aS = invoke(aQ, "getInFeeREADONLY", [toString(this)], nil)
188- if ($isInstanceOf(aS, "Int"))
189- then aS
190- else throw(($getType(aS) + " couldn't be cast to Int"))
191- }
192-
193-let aT = {
194- let aS = invoke(aQ, "getOutFeeREADONLY", [toString(this)], nil)
195- if ($isInstanceOf(aS, "Int"))
196- then aS
197- else throw(($getType(aS) + " couldn't be cast to Int"))
198- }
199-
200-let aU = aJ(this, al())
201-
202-func aV () = valueOrElse(getBoolean(aQ, aB()), false)
203-
204-
205-func aW () = fromBase58String(aJ(aQ, av()))
206-
207-
208-let aX = addressFromStringValue(aJ(aQ, aD()))
209-
210-func aY () = {
211- let aZ = aJ(this, aj())
212- let ba = aJ(this, ak())
213- let bb = aM(aQ, az(ba))
214- let ax = aM(aQ, az(aZ))
215- split(aJ(aQ, aw(toString(ax), toString(bb))), n)
216- }
217-
218-
219-func bc (bd) = if ((bd == k))
220- then unit
221- else fromBase58String(bd)
222-
223-
224-func be (bd) = if ((bd == unit))
225- then k
226- else toBase58String(value(bd))
227-
228-
229-func bf (bg) = $Tuple9(addressFromStringValue(bg[t]), parseIntValue(bg[u]), fromBase58String(bg[v]), bc(bg[w]), bc(bg[x]), parseIntValue(bg[y]), parseIntValue(bg[z]), fromBase58String(bg[A]), fromBase58String(bg[B]))
230-
231-
232-let bh = bf(aY())
233-
234-let bi = bh
235-
236-let bj = bi._1
237-
238-let bk = bi._2
239-
240-let bl = bi._3
241-
242-let bm = bi._4
243-
244-let bn = bi._5
245-
246-let bo = bi._6
247-
248-let bp = bi._7
249-
250-let bq = bi._8
251-
252-let br = bi._9
253-
254-func bs () = split(aJ(aQ, au()), n)
255-
256-
257-let bt = bs()
258-
259-let bu = valueOrErrorMessage(addressFromString(bt[C]), "Invalid staking contract address")
260-
261-let bv = valueOrErrorMessage(addressFromString(bt[E]), "Invalid slipage contract address")
262-
263-let bw = valueOrErrorMessage(addressFromString(bt[F]), "Invalid gwx contract address")
264-
265-let bx = valueOrErrorMessage(addressFromString(bt[D]), "Invalid gwx contract address")
266-
267-func by (bz,bA,bB,bC,bD,bE,bF,bG,bH,bI) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), toString(bI)], n)
268-
269-
270-func bJ (bK,bL,bM,bC,bF,bG) = makeString(["%d%d%d%d%d%d", toString(bK), toString(bL), toString(bM), toString(bC), toString(bF), toString(bG)], n)
271-
272-
273-func bN (bO) = if ((bO == "WAVES"))
274- then wavesBalance(this).available
275- else assetBalance(this, fromBase58String(bO))
276-
277-
278-func bP (bQ,bR) = fraction(bQ, c, bR)
279-
280-
281-func bS (bQ,bR,P) = fraction(bQ, c, bR, P)
282-
283-
284-func bT (bU,bV,bW) = {
285- let bX = fraction((bU - bV), b, bV)
286- let bY = ((bW - W(bX)) > d)
287- if (!(bY))
288- then throw(("Big slpg: " + toString(bX)))
289- else $Tuple2(bY, min([bU, bV]))
290- }
291-
292-
293-func bZ (ca,cb,cc) = {
294- let bX = fraction(cb, b, ca)
295- let cd = (cc > bX)
296- if (if (cd)
297- then true
298- else (cb > ca))
299- then throw(((((((toString(cb) + " ") + toString(ca)) + " ") + toString(bX)) + " ") + toString(cc)))
300- else cd
301- }
302-
303-
304-func ce (cf,cg,ch,ci) = {
305- let cj = H(ch, cf)
306- let ck = H(ci, cg)
307- bP(ck, cj)
308- }
309-
310-
311-func cl (ch,ci,cm) = {
312- let cn = bo
313- let co = bp
314- let cp = ce(cn, co, ch, ci)
315- let bR = H(ch, cn)
316- let bQ = H(ci, co)
317- let cq = H(cm, a)
318- let cr = bP(bR, cq)
319- let cs = bP(bQ, cq)
320-[cp, cr, cs]
321- }
322-
323-
324-func ct (ch,ci,cm) = {
325- let cu = cl(ch, ci, cm)
326-[L(cu[0], a), L(cu[1], a), L(cu[2], a)]
327- }
328-
329-
330-func cv (cw,ao) = {
331- let cx = if ((ao == 0))
332- then 0
333- else fraction(cw, ao, a)
334- $Tuple2((cw - cx), cx)
335- }
336-
337-
338-func cy (cz) = {
339- let cA = cz[0]
340- let cB = cz[1]
341- let cC = (cA + cB)
342- if ((cC == e))
343- then e
344- else {
345- let cD = parseIntValue(aU)
346- let cE = (cD * 2)
347- let cu = fraction(cA, cB, f)
348- let cF = fraction(cu, i, f)
349- let cG = fraction(toBigInt(cE), cC, f)
350- let cH = toBigInt((cE - 1))
351- func cI (cJ) = {
352- let cK = fraction(cJ, cJ, f)
353- let cL = fraction(cK, cJ, f)
354- let cM = fraction(cL, f, cF)
355- fraction((cG + fraction(cM, g, f)), cJ, (fraction(cH, cJ, f) + fraction(h, cM, f)))
356- }
357-
358- func cN (cO,cP) = if (cO._2)
359- then cO
360- else {
361- let cJ = cO._1
362- let cQ = cI(cJ)
363- let cR = (cQ - value(cJ))
364- let cS = if ((e > cR))
365- then -(cR)
366- else cR
367- if ((f >= cS))
368- then $Tuple2(cQ, true)
369- else $Tuple2(cQ, false)
370- }
371-
372- let cT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
373- let cU = {
374- let cV = cT
375- let cW = size(cV)
376- let cX = $Tuple2(cC, false)
377- func cY (cZ,da) = if ((da >= cW))
378- then cZ
379- else cN(cZ, cV[da])
380-
381- func db (cZ,da) = if ((da >= cW))
382- then cZ
383- else throw("List size exceeds 15")
384-
385- db(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
386- }
387- let cJ = cU._1
388- let dc = cU._2
389- if (dc)
390- then cJ
391- else throw(("D calculation error, D = " + toString(cJ)))
392- }
393- }
394-
395-
396-func dd (de,df,dg,dh) = {
397- let di = bl
398- let dj = toBase58String(value(bm))
399- let dk = toBase58String(value(bn))
400- let dl = bo
401- let dm = bp
402- let dn = toString(bk)
403- let do = valueOrErrorMessage(assetInfo(di), "Wrong LP id").quantity
404- if ((toBase58String(di) != df))
405- then throw("Wrong pmt asset")
406- else {
407- let dp = bN(dj)
408- let dq = H(dp, dl)
409- let dr = bN(dk)
410- let ds = H(dr, dm)
411- let dt = bP(ds, dq)
412- let du = L(dt, a)
413- let dv = H(dg, a)
414- let dw = H(do, a)
415- let dx = fraction(dq, dv, dw)
416- let dy = fraction(ds, dv, dw)
417- let dz = O(dx, dl, FLOOR)
418- let dA = O(dy, dm, FLOOR)
419- let dB = if ((de == ""))
420- then nil
421- else [ScriptTransfer(dh, dz, if ((dj == "WAVES"))
422- then unit
423- else fromBase58String(dj)), ScriptTransfer(dh, dA, if ((dk == "WAVES"))
424- then unit
425- else fromBase58String(dk)), StringEntry(ai(toString(dh), de), bJ(dz, dA, dg, du, height, lastBlock.timestamp)), IntegerEntry(ab(), du), IntegerEntry(ac(height, lastBlock.timestamp), du)]
426- $Tuple10(dz, dA, dj, dk, dp, dr, do, dt, dn, dB)
427- }
428- }
429-
430-
431-func dC (de,bW,dD,dE,dF,dG,dh,dH,dI,dJ,dK,dL,dM) = {
432- let di = bl
433- let dN = toBase58String(value(bm))
434- let dO = toBase58String(value(bn))
435- let dP = bq
436- let dQ = br
437- let dR = bo
438- let dS = bp
439- let dn = toString(bk)
440- let dT = valueOrErrorMessage(assetInfo(di), "Wr lp as").quantity
441- let dp = if (dH)
442- then bN(dN)
443- else if (if (dJ)
444- then (dM == dN)
445- else false)
446- then (bN(dN) - dL)
447- else if (dJ)
448- then bN(dN)
449- else (bN(dN) - dD)
450- let dr = if (dH)
451- then bN(dO)
452- else if (if (dJ)
453- then (dM == dO)
454- else false)
455- then (bN(dO) - dL)
456- else if (dJ)
457- then bN(dO)
458- else (bN(dO) - dF)
459- let dU = H(dD, dR)
460- let dV = H(dF, dS)
461- let dW = bP(dV, dU)
462- let dq = H(dp, dR)
463- let ds = H(dr, dS)
464- let cb = cy([dq, ds])
465- let dX = if ((dT == 0))
466- then {
467- let ca = cy([(dq + dU), (ds + dV)])
468- let dY = if ((ca > cb))
469- then true
470- else throw("D1 should be greater than D0")
471- if ((dY == dY))
472- then {
473- let dt = d
474- let dZ = d
475- let cq = ca
476- $Tuple5(L(cq, a), L(dU, dR), L(dV, dS), bP((ds + dV), (dq + dU)), dZ)
477- }
478- else throw("Strict value is not equal to itself.")
479- }
480- else {
481- let dt = bP(ds, dq)
482- let ea = fraction(W((dt - dW)), c, dt)
483- let dZ = H(bW, a)
484- if (if (if (dK)
485- then (dt != d)
486- else false)
487- then (ea > dZ)
488- else false)
489- then throw(((("Price slippage " + toString(ea)) + " > ") + toString(dZ)))
490- else {
491- let eb = H(dT, a)
492- let ec = fraction(dU, bS(ds, dq, CEILING), c, CEILING)
493- let ed = fraction(dV, c, bS(ds, dq, FLOOR), CEILING)
494- let ee = if ((ec > dV))
495- then $Tuple2(ed, dV)
496- else $Tuple2(dU, ec)
497- let ef = ee._1
498- let eg = ee._2
499- let ca = cy([(dq + ef), (ds + eg)])
500- let dY = if ((ca > cb))
501- then true
502- else throw("D1 should be greater than D0")
503- if ((dY == dY))
504- then {
505- let cq = fraction(eb, (ca - cb), cb)
506- $Tuple5(O(cq, a, FLOOR), O(ef, dR, CEILING), O(eg, dS, CEILING), dt, dZ)
507- }
508- else throw("Strict value is not equal to itself.")
509- }
510- }
511- let eh = dX._1
512- let ei = dX._2
513- let ej = dX._3
514- let du = L(dX._4, a)
515- let ek = L(dX._5, a)
516- if ((0 >= eh))
517- then throw("LP <= 0")
518- else {
519- let el = if (!(dI))
520- then 0
521- else eh
522- let em = (dD - ei)
523- let en = (dF - ej)
524- let eo = if (if (dJ)
525- then (dM == dN)
526- else false)
527- then $Tuple2(dL, 0)
528- else if (if (dJ)
529- then (dM == dO)
530- else false)
531- then $Tuple2(0, dL)
532- else $Tuple2(ei, ej)
533- let ep = eo._1
534- let eq = eo._2
535- let er = [IntegerEntry(ab(), du), IntegerEntry(ac(height, lastBlock.timestamp), du), StringEntry(af(dh, de), by(ep, eq, el, du, bW, ek, height, lastBlock.timestamp, em, en))]
536- $Tuple13(eh, el, du, dp, dr, dT, di, dn, er, em, en, dE, dG)
537- }
538- }
539-
540-
541-func es (cz,cP,et) = {
542- let eu = g
543- let ev = cz[if ((cP == 0))
544- then 1
545- else 0]
546- let ew = parseBigIntValue(l)
547- let cD = (parseBigIntValue(aU) * ew)
548- let cC = ev
549- let cE = (cD * eu)
550- let ex = (((((et * et) / (ev * eu)) * et) * ew) / (cE * eu))
551- let ey = ((cC + ((et * ew) / cE)) - et)
552- func cN (cO,ez) = {
553- let eA = cO
554- let eB = eA._1
555- let dc = eA._2
556- if ((dc != unit))
557- then cO
558- else {
559- let eC = (((eB * eB) + ex) / ((g * eB) + ey))
560- let eD = X((eC - value(eB)))
561- if ((f >= eD))
562- then $Tuple2(eC, ez)
563- else $Tuple2(eC, unit)
564- }
565- }
566-
567- let cT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
568- let eE = {
569- let cV = cT
570- let cW = size(cV)
571- let cX = $Tuple2(et, unit)
572- func cY (cZ,da) = if ((da >= cW))
573- then cZ
574- else cN(cZ, cV[da])
575-
576- func db (cZ,da) = if ((da >= cW))
577- then cZ
578- else throw("List size exceeds 15")
579-
580- db(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cY(cX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
581- }
582- let eB = eE._1
583- let dc = eE._2
584- if ((dc != unit))
585- then eB
586- else throw(("Y calculation error, Y = " + toString(eB)))
587- }
588-
589-
590-func eF (eG,eH,eI) = {
591- let eJ = fraction(cy([K(eG, toBigInt(bo)), K(eH, toBigInt(bp))]), c, eI)
592- if ((eI == e))
593- then e
594- else eJ
595- }
596-
597-
598-func eK (eL,eM,eN) = {
599- let eO = (toBigInt(bN(be(bm))) - eL)
600- let eP = (toBigInt(bN(be(bn))) - eM)
601- let eQ = (toBigInt(value(assetInfo(bl)).quantity) - eN)
602- let eR = eF(eO, eP, eQ)
603- eR
604- }
605-
606-
607-func eS (eT,eU,eN) = {
608- let eO = (bN(be(bm)) + eT)
609- let eP = (bN(be(bn)) + eU)
610- let eQ = (value(assetInfo(bl)).quantity + eN)
611- let eJ = eF(toBigInt(eO), toBigInt(eP), toBigInt(eQ))
612- let eV = [IntegerEntry(aq, height), StringEntry(ap, toString(eJ))]
613- $Tuple2(eV, eJ)
614- }
615-
616-
617-func eW (eX,eJ) = if ((eJ >= eX))
618- then true
619- else aN("updated DLp lower than current DLp")
620-
621-
622-func eY (eZ) = {
623- let eO = bN(be(bm))
624- let eP = bN(be(bn))
625- let fa = eZ.amount
626- let fb = fraction(eZ.amount, eZ.price, a, FLOOR)
627- let fc = if ((eZ.orderType == Buy))
628- then $Tuple2(fa, -(fb))
629- else $Tuple2(-(fa), fb)
630- let eT = fc._1
631- let eU = fc._2
632- if (if (if (aV())
633- then true
634- else (bk == r))
635- then true
636- else (bk == s))
637- then throw("Admin blocked")
638- else if (if ((eZ.assetPair.amountAsset != bm))
639- then true
640- else (eZ.assetPair.priceAsset != bn))
641- then throw("Wr assets")
642- else {
643- let fd = parseBigIntValue(valueOrElse(getString(this, ap), "0"))
644- let fe = eS(eT, eU, 0)
645- let ff = fe._1
646- let fg = fe._2
647- let fh = (fg >= fd)
648- let fi = makeString(["dLp=", toString(fd), " dLpNew=", toString(fg), " amountAssetBalance=", toString(eO), " priceAssetBalance=", toString(eP), " amountAssetBalanceDelta=", toString(eT), " priceAssetBalanceDelta=", toString(eU), " height=", toString(height)], "")
649- $Tuple2(fh, fi)
650- }
651- }
652-
653-
654-func fj (cP) = if ((size(cP.payments) != 1))
655- then throw("1 pmnt exp")
656- else {
657- let fk = value(cP.payments[0])
658- let df = value(fk.assetId)
659- let dL = fk.amount
660- let dX = dd(toBase58String(cP.transactionId), toBase58String(df), dL, cP.caller)
661- let dz = dX._1
662- let dA = dX._2
663- let dn = parseIntValue(dX._9)
664- let dB = dX._10
665- if (if (aV())
666- then true
667- else (dn == s))
668- then throw(("Admin blocked: " + toString(dn)))
669- else $Tuple5(dz, dA, dL, df, dB)
670- }
671-
672-
673-func fl (fm,ah,fn,fo,bW,dI,dJ,dK,dL,dM) = {
674- let dX = dC(ah, bW, value(fn).amount, value(fn).assetId, value(fo).amount, value(fo).assetId, fm, (ah == ""), dI, dJ, dK, dL, dM)
675- let dn = parseIntValue(dX._8)
676- if (if (if (aV())
677- then true
678- else (dn == q))
679- then true
680- else (dn == s))
681- then throw(("Blocked:" + toString(dn)))
682- else dX
683- }
684-
685-
686-func fp (fq,df,dh,ah,fr) = {
687- let dj = toBase58String(value(bm))
688- let dk = toBase58String(value(bn))
689- let di = bl
690- let dR = bo
691- let dS = bp
692- let eQ = toBigInt(valueOrErrorMessage(assetInfo(di), "invalid lp asset").quantity)
693- let fs = if ((eQ > e))
694- then true
695- else throw("initial deposit requires all coins")
696- if ((fs == fs))
697- then {
698- let dp = bN(dj)
699- let dr = bN(dk)
700- let ft = if ((ah == ""))
701- then $Tuple2(dp, dr)
702- else if ((df == dj))
703- then if ((fq > dp))
704- then throw("invalid payment amount")
705- else $Tuple2((dp - fq), dr)
706- else if ((df == dk))
707- then if ((fq > dr))
708- then throw("invalid payment amount")
709- else $Tuple2(dp, (dr - fq))
710- else throw("wrong pmtAssetId")
711- let fu = ft._1
712- let fv = ft._2
713- let fw = if ((df == dj))
714- then $Tuple2(fq, 0)
715- else if ((df == dk))
716- then $Tuple2(0, fq)
717- else throw("invalid payment")
718- let fx = fw._1
719- let fy = fw._2
720- let fz = if (fr)
721- then $Tuple3(cv(fx, aR)._1, cv(fy, aR)._1, cv(fq, aR)._2)
722- else $Tuple3(fx, fy, 0)
723- let fA = fz._1
724- let fB = fz._2
725- let cx = fz._3
726- let fC = (fu + fA)
727- let fD = (fv + fB)
728- let cb = cy([H(fu, bo), H(fv, bp)])
729- let ca = cy([H(fC, bo), H(fD, bp)])
730- let dY = if ((ca > cb))
731- then true
732- else throw()
733- if ((dY == dY))
734- then {
735- let fE = fraction(eQ, (ca - cb), cb, FLOOR)
736- let du = L(bP(H(fD, dS), H(fC, dR)), a)
737- let er = [IntegerEntry(ab(), du), IntegerEntry(ac(height, lastBlock.timestamp), du), StringEntry(af(dh, ah), by(fx, fy, toInt(fE), du, 0, 0, height, lastBlock.timestamp, 0, 0))]
738- let fF = fraction(fv, a, fu)
739- let fG = fraction(fq, a, (fF + a))
740- let fH = (fq - fG)
741- let fI = fraction(eQ, toBigInt(fH), toBigInt(fv))
742- let fJ = toInt(fraction((fE - fI), b, fI))
743- $Tuple4(toInt(fE), er, cx, fJ)
744- }
745- else throw("Strict value is not equal to itself.")
746- }
747- else throw("Strict value is not equal to itself.")
748- }
749-
750-
751-func fK (fL,fM,fN,fm,fO,fP) = {
752- let di = toBase58String(value(bl))
753- let dj = toBase58String(value(bm))
754- let dk = toBase58String(value(bn))
755- let fQ = bo
756- let fR = bp
757- let fS = bk
758- let dh = if ((fm == bx))
759- then fO
760- else fm
761- let fk = value(fN[0])
762- let df = value(fk.assetId)
763- let dL = fk.amount
764- let eR = eK(e, e, e)
765- if ((eR == eR))
766- then {
767- let de = toBase58String(fP)
768- if ((di != toBase58String(df)))
769- then throw("Wrong LP")
770- else {
771- let dp = bN(dj)
772- let dr = bN(dk)
773- let fT = {
774- let aS = invoke(this, "getOneTknV2READONLY", [fL, dL], nil)
775- if ($isInstanceOf(aS, "(Int, Int)"))
776- then aS
777- else throw(($getType(aS) + " couldn't be cast to (Int, Int)"))
778- }
779- if ((fT == fT))
780- then {
781- let cx = fT._2
782- let fU = fT._1
783- let fV = if (if ((fM > 0))
784- then (fM > fU)
785- else false)
786- then aN(makeString(["amount to receive is less than ", toString(fM)], ""))
787- else fU
788- let fW = if ((fL == dj))
789- then $Tuple4(fV, 0, ((dp - fV) - cx), dr)
790- else if ((fL == dk))
791- then $Tuple4(0, fV, dp, ((dr - fV) - cx))
792- else throw("invalid out asset id")
793- let fX = fW._1
794- let fY = fW._2
795- let fC = fW._3
796- let fD = fW._4
797- let fZ = bP(H(fD, fR), H(fC, fQ))
798- let ga = L(fZ, a)
799- let gb = if ((fL == "WAVES"))
800- then unit
801- else fromBase58String(fL)
802- let gc = if ((cx > 0))
803- then [ScriptTransfer(aX, cx, gb)]
804- else nil
805- let dB = ([ScriptTransfer(dh, fV, gb), StringEntry(ai(toString(dh), de), bJ(fX, fY, dL, ga, height, lastBlock.timestamp)), IntegerEntry(ab(), ga), IntegerEntry(ac(height, lastBlock.timestamp), ga)] ++ gc)
806- if ((dB == dB))
807- then {
808- let gd = invoke(aQ, "burn", [dL], [AttachedPayment(df, dL)])
809- if ((gd == gd))
810- then {
811- let ge = {
812- let gf = if ((this == aX))
813- then 0
814- else cx
815- let gg = if ((bc(fL) == bm))
816- then true
817- else false
818- if (gg)
819- then $Tuple2(-((fU + gf)), 0)
820- else $Tuple2(0, -((fU + gf)))
821- }
822- let eT = ge._1
823- let eU = ge._2
824- let gh = eS(eT, eU, 0)
825- let gi = gh._1
826- let eJ = gh._2
827- let gj = eW(eR, eJ)
828- if ((gj == gj))
829- then $Tuple2((dB ++ gi), fV)
830- else throw("Strict value is not equal to itself.")
831- }
832- else throw("Strict value is not equal to itself.")
833- }
834- else throw("Strict value is not equal to itself.")
835- }
836- else throw("Strict value is not equal to itself.")
837- }
838- }
839- else throw("Strict value is not equal to itself.")
840- }
841-
842-
843-func gk () = {
844- let gl = getString(Z())
845- if ($isInstanceOf(gl, "String"))
846- then {
847- let cC = gl
848- fromBase58String(cC)
849- }
850- else if ($isInstanceOf(gl, "Unit"))
851- then unit
852- else throw("Match error")
853- }
854-
855-
856-func gm () = {
857- let gl = getString(aa())
858- if ($isInstanceOf(gl, "String"))
859- then {
860- let cC = gl
861- fromBase58String(cC)
862- }
863- else if ($isInstanceOf(gl, "Unit"))
864- then unit
865- else throw("Match error")
866- }
867-
868-
869-let gn = throw("Permission denied")
870-
871-func go (cP) = {
872- let gl = gk()
873- if ($isInstanceOf(gl, "ByteVector"))
874- then {
875- let gp = gl
876- (cP.callerPublicKey == gp)
877- }
878- else if ($isInstanceOf(gl, "Unit"))
879- then (cP.caller == this)
880- else throw("Match error")
881- }
882-
883-
884-func gq (cP) = {
885- let gl = gk()
886- if ($isInstanceOf(gl, "ByteVector"))
887- then {
888- let gp = gl
889- if ((cP.callerPublicKey == gp))
890- then true
891- else gn
892- }
893- else if ($isInstanceOf(gl, "Unit"))
894- then if ((cP.caller == this))
895- then true
896- else gn
897- else throw("Match error")
898- }
899-
900-
901-@Callable(cP)
902-func constructor (Y) = {
903- let ex = gq(cP)
904- if ((ex == ex))
905- then [StringEntry(Y(), Y)]
906- else throw("Strict value is not equal to itself.")
907- }
9084
9095
9106
911-@Callable(cP)
912-func setManager (gr) = {
913- let ex = gq(cP)
914- if ((ex == ex))
915- then {
916- let gs = fromBase58String(gr)
917- if ((gs == gs))
918- then [StringEntry(aa(), gr)]
919- else throw("Strict value is not equal to itself.")
920- }
921- else throw("Strict value is not equal to itself.")
922- }
923-
924-
925-
926-@Callable(cP)
927-func confirmManager () = {
928- let cu = gm()
929- let gt = if (isDefined(cu))
930- then true
931- else throw("No pending manager")
932- if ((gt == gt))
933- then {
934- let gu = if ((cP.callerPublicKey == value(cu)))
935- then true
936- else throw("You are not pending manager")
937- if ((gu == gu))
938- then [StringEntry(Z(), toBase58String(value(cu))), DeleteEntry(aa())]
939- else throw("Strict value is not equal to itself.")
940- }
941- else throw("Strict value is not equal to itself.")
942- }
943-
944-
945-
946-@Callable(cP)
947-func put (gv,gw) = {
948- let gx = bs()
949- let gy = valueOrErrorMessage(addressFromString(gx[C]), "Wr st addr")
950- let gz = valueOrErrorMessage(addressFromString(gx[E]), "Wr sl addr")
951- if ((0 > gv))
952- then throw("Wrong slippage")
953- else if ((size(cP.payments) != 2))
954- then throw("2 pmnts expd")
955- else {
956- let gA = toBigInt(value(cP.payments[0]).amount)
957- let gB = toBigInt(value(cP.payments[1]).amount)
958- let eO = (toBigInt(bN(be(bm))) - gA)
959- if ((eO == eO))
960- then {
961- let eP = (toBigInt(bN(be(bn))) - gB)
962- if ((eP == eP))
963- then {
964- let eQ = toBigInt(value(assetInfo(bl)).quantity)
965- if ((eQ == eQ))
966- then {
967- let eR = eK(gA, gB, toBigInt(0))
968- if ((eR == eR))
969- then {
970- let gC = fl(toString(cP.caller), toBase58String(cP.transactionId), AttachedPayment(value(cP.payments[0]).assetId, value(cP.payments[0]).amount), cP.payments[1], gv, true, false, true, 0, "")
971- let el = gC._2
972- let gD = gC._7
973- let dB = gC._9
974- let em = gC._10
975- let en = gC._11
976- let dj = gC._12
977- let dk = gC._13
978- let dX = invoke(aQ, "emit", [el], nil)
979- if ((dX == dX))
980- then {
981- let gE = {
982- let gl = dX
983- if ($isInstanceOf(gl, "Address"))
984- then {
985- let gF = gl
986- invoke(gF, "emit", [el], nil)
987- }
988- else unit
989- }
990- if ((gE == gE))
991- then {
992- let gG = if ((em > 0))
993- then invoke(gz, "put", nil, [AttachedPayment(dj, em)])
994- else nil
995- if ((gG == gG))
996- then {
997- let gH = if ((en > 0))
998- then invoke(gz, "put", nil, [AttachedPayment(dk, en)])
999- else nil
1000- if ((gH == gH))
1001- then {
1002- let gI = if (gw)
1003- then {
1004- let gJ = invoke(gy, "stake", nil, [AttachedPayment(gD, el)])
1005- if ((gJ == gJ))
1006- then nil
1007- else throw("Strict value is not equal to itself.")
1008- }
1009- else [ScriptTransfer(cP.caller, el, gD)]
1010- let gK = eS(0, 0, 0)
1011- let gi = gK._1
1012- let eJ = gK._2
1013- let gL = if ((eJ >= eR))
1014- then true
1015- else aN(makeString(["updated DLp lower than current DLp", toString(eO), toString(eP), toString(eQ), toString(eR), toString(eJ), toString(em), toString(en)], " "))
1016- if ((gL == gL))
1017- then {
1018- let gM = value(assetInfo(bl)).quantity
1019- if ((gM == gM))
1020- then ((dB ++ gI) ++ gi)
1021- else throw("Strict value is not equal to itself.")
1022- }
1023- else throw("Strict value is not equal to itself.")
1024- }
1025- else throw("Strict value is not equal to itself.")
1026- }
1027- else throw("Strict value is not equal to itself.")
1028- }
1029- else throw("Strict value is not equal to itself.")
1030- }
1031- else throw("Strict value is not equal to itself.")
1032- }
1033- else throw("Strict value is not equal to itself.")
1034- }
1035- else throw("Strict value is not equal to itself.")
1036- }
1037- else throw("Strict value is not equal to itself.")
1038- }
1039- else throw("Strict value is not equal to itself.")
1040- }
1041- }
1042-
1043-
1044-
1045-@Callable(cP)
1046-func putOneTknV2 (fM,gw) = {
1047- let gN = {
1048- let aS = invoke(aQ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1049- if ($isInstanceOf(aS, "Boolean"))
1050- then aS
1051- else throw(($getType(aS) + " couldn't be cast to Boolean"))
1052- }
1053- let gO = if (if (if (aV())
1054- then true
1055- else (bk == q))
1056- then true
1057- else (bk == s))
1058- then true
1059- else gN
1060- let gP = [if (if (!(gO))
1061- then true
1062- else go(cP))
1063- then true
1064- else aN("put operation is blocked by admin"), if ((size(cP.payments) == 1))
1065- then true
1066- else aN("exactly 1 payment are expected")]
1067- if ((gP == gP))
1068- then {
1069- let dj = toBase58String(value(bm))
1070- let dk = toBase58String(value(bn))
1071- let di = bl
1072- let fQ = bo
1073- let fR = bp
1074- let dh = if ((cP.caller == this))
1075- then cP.originCaller
1076- else cP.caller
1077- let fk = value(cP.payments[0])
1078- let df = toBase58String(value(fk.assetId))
1079- let dL = fk.amount
1080- let eR = if ((fk.assetId == bm))
1081- then eK(toBigInt(dL), toBigInt(0), toBigInt(0))
1082- else eK(toBigInt(0), toBigInt(dL), toBigInt(0))
1083- if ((eR == eR))
1084- then {
1085- let gQ = fp(dL, df, toString(dh), toBase58String(cP.transactionId), true)
1086- if ((gQ == gQ))
1087- then {
1088- let cx = gQ._3
1089- let dB = gQ._2
1090- let gR = gQ._1
1091- let el = if (if ((fM > 0))
1092- then (fM > gR)
1093- else false)
1094- then aN(makeString(["amount to receive is less than ", toString(fM)], ""))
1095- else gR
1096- let gC = invoke(aQ, "emit", [el], nil)
1097- if ((gC == gC))
1098- then {
1099- let gE = {
1100- let gl = gC
1101- if ($isInstanceOf(gl, "Address"))
1102- then {
1103- let gF = gl
1104- invoke(gF, "emit", [el], nil)
1105- }
1106- else unit
1107- }
1108- if ((gE == gE))
1109- then {
1110- let gI = if (gw)
1111- then {
1112- let gJ = invoke(bu, "stake", nil, [AttachedPayment(di, el)])
1113- if ((gJ == gJ))
1114- then nil
1115- else throw("Strict value is not equal to itself.")
1116- }
1117- else [ScriptTransfer(cP.caller, el, di)]
1118- let gc = if ((cx > 0))
1119- then [ScriptTransfer(aX, cx, fromBase58String(df))]
1120- else nil
1121- let gS = if ((this == aX))
1122- then $Tuple2(0, 0)
1123- else {
1124- let gT = if ((fk.assetId == bm))
1125- then true
1126- else false
1127- if (gT)
1128- then $Tuple2(-(cx), 0)
1129- else $Tuple2(0, -(cx))
1130- }
1131- let eT = gS._1
1132- let eU = gS._2
1133- let gU = eS(eT, eU, 0)
1134- let gi = gU._1
1135- let eJ = gU._2
1136- let gj = eW(eR, eJ)
1137- if ((gj == gj))
1138- then $Tuple2((((dB ++ gI) ++ gc) ++ gi), el)
1139- else throw("Strict value is not equal to itself.")
1140- }
1141- else throw("Strict value is not equal to itself.")
1142- }
1143- else throw("Strict value is not equal to itself.")
1144- }
1145- else throw("Strict value is not equal to itself.")
1146- }
1147- else throw("Strict value is not equal to itself.")
1148- }
1149- else throw("Strict value is not equal to itself.")
1150- }
1151-
1152-
1153-
1154-@Callable(cP)
1155-func putForFree (gV) = if ((0 > gV))
1156- then throw("Wrong slpg")
1157- else if ((size(cP.payments) != 2))
1158- then throw("2 pmnts expd")
1159- else {
1160- let gW = fl(toString(cP.caller), toBase58String(cP.transactionId), AttachedPayment(value(cP.payments[0]).assetId, value(cP.payments[0]).amount), cP.payments[1], gV, false, false, true, 0, "")
1161- let dB = gW._9
1162- let gA = toBigInt(value(cP.payments[0]).amount)
1163- let gB = toBigInt(value(cP.payments[1]).amount)
1164- let eR = eK(gA, gB, toBigInt(0))
1165- if ((eR == eR))
1166- then {
1167- let gX = eS(0, 0, 0)
1168- let gi = gX._1
1169- let eJ = gX._2
1170- let gj = eW(eR, eJ)
1171- if ((gj == gj))
1172- then (dB ++ gi)
1173- else throw("Strict value is not equal to itself.")
1174- }
1175- else throw("Strict value is not equal to itself.")
1176- }
1177-
1178-
1179-
1180-@Callable(cP)
1181-func get () = {
1182- let eR = eK(toBigInt(0), toBigInt(0), toBigInt(0))
1183- if ((eR == eR))
1184- then {
1185- let dX = fj(cP)
1186- let gY = dX._1
1187- let dA = dX._2
1188- let dL = dX._3
1189- let df = dX._4
1190- let dB = dX._5
1191- let ey = invoke(aQ, "burn", [dL], [AttachedPayment(df, dL)])
1192- if ((ey == ey))
1193- then {
1194- let gZ = eS(-(gY), -(dA), 0)
1195- let gi = gZ._1
1196- let eJ = gZ._2
1197- let gj = eW(eR, eJ)
1198- if ((gj == gj))
1199- then (dB ++ gi)
1200- else throw("Strict value is not equal to itself.")
1201- }
1202- else throw("Strict value is not equal to itself.")
1203- }
1204- else throw("Strict value is not equal to itself.")
1205- }
1206-
1207-
1208-
1209-@Callable(cP)
1210-func getOneTknV2 (fL,fM) = {
1211- let gN = {
1212- let aS = invoke(aQ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1213- if ($isInstanceOf(aS, "Boolean"))
1214- then aS
1215- else throw(($getType(aS) + " couldn't be cast to Boolean"))
1216- }
1217- let ha = if (if (aV())
1218- then true
1219- else (bk == s))
1220- then true
1221- else gN
1222- let gP = [if (if (!(ha))
1223- then true
1224- else go(cP))
1225- then true
1226- else aN("get operation is blocked by admin"), if ((size(cP.payments) == 1))
1227- then true
1228- else aN("exactly 1 payment are expected")]
1229- if ((gP == gP))
1230- then {
1231- let hb = fK(fL, fM, cP.payments, cP.caller, cP.originCaller, cP.transactionId)
1232- let dB = hb._1
1233- let fV = hb._2
1234- $Tuple2(dB, fV)
1235- }
1236- else throw("Strict value is not equal to itself.")
1237- }
1238-
1239-
1240-
1241-@Callable(cP)
1242-func refreshDLp () = {
1243- let hc = valueOrElse(getInteger(aq), 0)
1244- let hd = if (((height - hc) >= at))
1245- then unit
1246- else aN(makeString([toString(at), " blocks have not passed since the previous call"], ""))
1247- if ((hd == hd))
1248- then {
1249- let fd = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ap), "0")), aP("invalid dLp"))
1250- let he = eS(0, 0, 0)
1251- let hf = he._1
1252- let eJ = he._2
1253- let eV = if ((fd != eJ))
1254- then hf
1255- else aN("nothing to refresh")
1256- $Tuple2(eV, toString(eJ))
1257- }
1258- else throw("Strict value is not equal to itself.")
1259- }
1260-
1261-
1262-
1263-@Callable(cP)
1264-func getOneTknV2READONLY (fL,hg) = {
1265- let dj = toBase58String(value(bm))
1266- let dk = toBase58String(value(bn))
1267- let di = toBase58String(value(bl))
1268- let cz = [toBigInt(bN(dj)), toBigInt(bN(dk))]
1269- let eI = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(di)), "invalid lp asset").quantity)
1270- let cb = cy(cz)
1271- let ca = (cb - fraction(toBigInt(hg), cb, eI))
1272- let hh = if ((fL == dj))
1273- then 0
1274- else if ((fL == dk))
1275- then 1
1276- else throw("invalid out asset id")
1277- let hi = es(cz, hh, ca)
1278- let hj = (cz[hh] - hi)
1279- let hk = max([0, toInt((hj - f))])
1280- let hl = cv(hk, aT)
1281- let fU = hl._1
1282- let cx = hl._2
1283- $Tuple2(nil, $Tuple2(fU, cx))
1284- }
1285-
1286-
1287-
1288-@Callable(cP)
1289-func getOneTknV2WithBonusREADONLY (fL,hg) = {
1290- let dj = toBase58String(value(bm))
1291- let dk = toBase58String(value(bn))
1292- let di = toBase58String(value(bl))
1293- let dp = bN(dj)
1294- let dr = bN(dk)
1295- let hm = {
1296- let aS = invoke(this, "getOneTknV2READONLY", [fL, hg], nil)
1297- if ($isInstanceOf(aS, "(Int, Int)"))
1298- then aS
1299- else throw(($getType(aS) + " couldn't be cast to (Int, Int)"))
1300- }
1301- let fU = hm._1
1302- let cx = hm._2
1303- let dX = dd("", di, hg, this)
1304- let dz = dX._1
1305- let dA = dX._2
1306- let hn = (dz + dA)
1307- let fJ = if ((hn == 0))
1308- then if ((fU == 0))
1309- then 0
1310- else throw("bonus calculation error")
1311- else fraction((fU - hn), a, hn)
1312- $Tuple2(nil, $Tuple3(fU, cx, fJ))
1313- }
1314-
1315-
1316-
1317-@Callable(cP)
1318-func getNoLess (ho,hp) = {
1319- let dX = fj(cP)
1320- let dz = dX._1
1321- let dA = dX._2
1322- let dL = dX._3
1323- let df = dX._4
1324- let dB = dX._5
1325- if ((ho > dz))
1326- then throw(((("Failed: " + toString(dz)) + " < ") + toString(ho)))
1327- else if ((hp > dA))
1328- then throw(((("Failed: " + toString(dA)) + " < ") + toString(hp)))
1329- else {
1330- let eR = eK(toBigInt(0), toBigInt(0), toBigInt(0))
1331- if ((eR == eR))
1332- then {
1333- let hq = invoke(aQ, "burn", [dL], [AttachedPayment(df, dL)])
1334- if ((hq == hq))
1335- then {
1336- let hr = eS(-(dz), -(dA), 0)
1337- let gi = hr._1
1338- let eJ = hr._2
1339- let gj = eW(eR, eJ)
1340- if ((gj == gj))
1341- then (dB ++ gi)
1342- else throw("Strict value is not equal to itself.")
1343- }
1344- else throw("Strict value is not equal to itself.")
1345- }
1346- else throw("Strict value is not equal to itself.")
1347- }
1348- }
1349-
1350-
1351-
1352-@Callable(cP)
1353-func unstakeAndGet (cw) = {
1354- let hs = if ((size(cP.payments) != 0))
1355- then throw("No pmnts expd")
1356- else true
1357- if ((hs == hs))
1358- then {
1359- let ht = bs()
1360- let gD = bl
1361- let hu = valueOrErrorMessage(addressFromString(ht[C]), "Wr st addr")
1362- let eR = eK(toBigInt(0), toBigInt(0), toBigInt(0))
1363- if ((eR == eR))
1364- then {
1365- let hv = invoke(hu, "unstake", [toBase58String(gD), cw], nil)
1366- if ((hv == hv))
1367- then {
1368- let dX = dd(toBase58String(cP.transactionId), toBase58String(gD), cw, cP.caller)
1369- let dz = dX._1
1370- let dA = dX._2
1371- let dn = parseIntValue(dX._9)
1372- let dB = dX._10
1373- let hw = if (if (aV())
1374- then true
1375- else (dn == s))
1376- then throw(("Blocked: " + toString(dn)))
1377- else true
1378- if ((hw == hw))
1379- then {
1380- let hx = invoke(aQ, "burn", [cw], [AttachedPayment(gD, cw)])
1381- if ((hx == hx))
1382- then {
1383- let hy = eS(-(dz), -(dA), 0)
1384- let gi = hy._1
1385- let eJ = hy._2
1386- let gj = eW(eR, eJ)
1387- if ((gj == gj))
1388- then (dB ++ gi)
1389- else throw("Strict value is not equal to itself.")
1390- }
1391- else throw("Strict value is not equal to itself.")
1392- }
1393- else throw("Strict value is not equal to itself.")
1394- }
1395- else throw("Strict value is not equal to itself.")
1396- }
1397- else throw("Strict value is not equal to itself.")
1398- }
1399- else throw("Strict value is not equal to itself.")
1400- }
1401-
1402-
1403-
1404-@Callable(cP)
1405-func unstakeAndGetNoLess (hz,hA,hp) = {
1406- let ha = if (aV())
1407- then true
1408- else (bk == s)
1409- let gP = [if (!(ha))
1410- then true
1411- else throw("get operation is blocked by admin"), if ((size(cP.payments) == 0))
1412- then true
1413- else throw("no payments are expected")]
1414- if ((gP == gP))
1415- then {
1416- let eR = eK(toBigInt(0), toBigInt(0), toBigInt(0))
1417- if ((eR == eR))
1418- then {
1419- let hv = invoke(bu, "unstake", [toBase58String(bl), hz], nil)
1420- if ((hv == hv))
1421- then {
1422- let hB = dd(toBase58String(cP.transactionId), toBase58String(bl), hz, cP.caller)
1423- let dz = hB._1
1424- let dA = hB._2
1425- let dB = hB._10
1426- let hC = [if ((dz >= hA))
1427- then true
1428- else throw(makeString(["amount asset amount to receive is less than ", toString(hA)], "")), if ((dA >= hp))
1429- then true
1430- else throw(makeString(["price asset amount to receive is less than ", toString(hp)], ""))]
1431- if ((hC == hC))
1432- then {
1433- let hq = invoke(aQ, "burn", [hz], [AttachedPayment(bl, hz)])
1434- if ((hq == hq))
1435- then {
1436- let hD = eS(-(dz), -(dA), 0)
1437- let gi = hD._1
1438- let eJ = hD._2
1439- let gj = eW(eR, eJ)
1440- if ((gj == gj))
1441- then (dB ++ gi)
1442- else throw("Strict value is not equal to itself.")
1443- }
1444- else throw("Strict value is not equal to itself.")
1445- }
1446- else throw("Strict value is not equal to itself.")
1447- }
1448- else throw("Strict value is not equal to itself.")
1449- }
1450- else throw("Strict value is not equal to itself.")
1451- }
1452- else throw("Strict value is not equal to itself.")
1453- }
1454-
1455-
1456-
1457-@Callable(cP)
1458-func unstakeAndGetOneTknV2 (hz,fL,fM) = {
1459- let gN = {
1460- let aS = invoke(aQ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1461- if ($isInstanceOf(aS, "Boolean"))
1462- then aS
1463- else throw(($getType(aS) + " couldn't be cast to Boolean"))
1464- }
1465- let ha = if (if (aV())
1466- then true
1467- else (bk == s))
1468- then true
1469- else gN
1470- let gP = [if (if (!(ha))
1471- then true
1472- else go(cP))
1473- then true
1474- else aN("get operation is blocked by admin"), if ((size(cP.payments) == 0))
1475- then true
1476- else aN("no payments are expected")]
1477- if ((gP == gP))
1478- then {
1479- let ht = bs()
1480- let gD = bl
1481- let hu = valueOrErrorMessage(addressFromString(ht[C]), "Wr st addr")
1482- let hv = invoke(hu, "unstake", [toBase58String(gD), hz], nil)
1483- if ((hv == hv))
1484- then {
1485- let hE = fK(fL, fM, [AttachedPayment(gD, hz)], cP.caller, cP.originCaller, cP.transactionId)
1486- let dB = hE._1
1487- let fV = hE._2
1488- $Tuple2(dB, fV)
1489- }
1490- else throw("Strict value is not equal to itself.")
1491- }
1492- else throw("Strict value is not equal to itself.")
1493- }
1494-
1495-
1496-
1497-@Callable(cP)
1498-func putOneTknV2WithBonusREADONLY (hF,hG) = {
1499- let hH = fp(hF, hG, "", "", true)
1500- let fE = hH._1
1501- let dB = hH._2
1502- let cx = hH._3
1503- let fJ = hH._4
1504- $Tuple2(nil, $Tuple3(fE, cx, fJ))
1505- }
1506-
1507-
1508-
1509-@Callable(cP)
1510-func putOneTknV2WithoutTakeFeeREADONLY (hF,hG) = {
1511- let hI = fp(hF, hG, "", "", false)
1512- let fE = hI._1
1513- let dB = hI._2
1514- let cx = hI._3
1515- let fJ = hI._4
1516- $Tuple2(nil, $Tuple3(fE, cx, fJ))
1517- }
1518-
1519-
1520-
1521-@Callable(cP)
1522-func activate (hJ,hK) = if ((toString(cP.caller) != toString(aQ)))
1523- then throw("denied")
1524- else $Tuple2([StringEntry(aj(), hJ), StringEntry(ak(), hK)], "success")
1525-
1526-
1527-
1528-@Callable(cP)
1529-func setS (hL,hw) = if ((toString(cP.caller) != aJ(this, am())))
1530- then gn
1531- else [StringEntry(hL, hw)]
1532-
1533-
1534-
1535-@Callable(cP)
1536-func setI (hL,hw) = if ((toString(cP.caller) != aJ(this, am())))
1537- then gn
1538- else [IntegerEntry(hL, hw)]
1539-
1540-
1541-
1542-@Callable(cP)
1543-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aY())
1544-
1545-
1546-
1547-@Callable(cP)
1548-func getAccBalanceWrapperREADONLY (bO) = $Tuple2(nil, bN(bO))
1549-
1550-
1551-
1552-@Callable(cP)
1553-func calcPricesWrapperREADONLY (ch,ci,cm) = {
1554- let hM = cl(ch, ci, cm)
1555- $Tuple2(nil, [toString(hM[0]), toString(hM[1]), toString(hM[2])])
1556- }
1557-
1558-
1559-
1560-@Callable(cP)
1561-func fromX18WrapperREADONLY (M,hN) = $Tuple2(nil, L(parseBigIntValue(M), hN))
1562-
1563-
1564-
1565-@Callable(cP)
1566-func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
1567-
1568-
1569-
1570-@Callable(cP)
1571-func calcPriceBigIntWrapperREADONLY (bQ,bR) = $Tuple2(nil, toString(bP(parseBigIntValue(bQ), parseBigIntValue(bR))))
1572-
1573-
1574-
1575-@Callable(cP)
1576-func estimatePutOperationWrapperREADONLY (de,bW,dD,dE,dF,dG,hO,dH,dI) = $Tuple2(nil, dC(de, bW, dD, dE, dF, dG, hO, dH, dI, true, false, 0, ""))
1577-
1578-
1579-
1580-@Callable(cP)
1581-func estimateGetOperationWrapperREADONLY (de,hP,dg,hO) = {
1582- let dX = dd(de, hP, dg, addressFromStringValue(hO))
1583- $Tuple2(nil, $Tuple10(dX._1, dX._2, dX._3, dX._4, dX._5, dX._6, dX._7, toString(dX._8), dX._9, dX._10))
1584- }
1585-
1586-
1587-@Verifier(hQ)
1588-func hR () = {
1589- let hS = {
1590- let gl = gk()
1591- if ($isInstanceOf(gl, "ByteVector"))
1592- then {
1593- let gp = gl
1594- gp
1595- }
1596- else if ($isInstanceOf(gl, "Unit"))
1597- then hQ.senderPublicKey
1598- else throw("Match error")
1599- }
1600- let gl = hQ
1601- if ($isInstanceOf(gl, "Order"))
1602- then {
1603- let eZ = gl
1604- let hT = aW()
1605- let hU = eY(eZ)
1606- let aF = hU._1
1607- let aG = hU._2
1608- let aH = sigVerify(eZ.bodyBytes, eZ.proofs[0], eZ.senderPublicKey)
1609- let aI = sigVerify(eZ.bodyBytes, eZ.proofs[1], hT)
1610- if (if (if (aF)
1611- then aH
1612- else false)
1613- then aI
1614- else false)
1615- then true
1616- else aE(aF, aG, aH, aI)
1617- }
1618- else if ($isInstanceOf(gl, "SetScriptTransaction"))
1619- then {
1620- let cC = gl
1621- if (sigVerify(hQ.bodyBytes, hQ.proofs[0], hS))
1622- then true
1623- else {
1624- let hV = blake2b256(value(cC.script))
1625- let hW = fromBase64String(value(getString(aQ, aC())))
1626- let hX = scriptHash(this)
1627- if ((hW == hV))
1628- then (hX != hV)
1629- else false
1630- }
1631- }
1632- else sigVerify(hQ.bodyBytes, hQ.proofs[0], hS)
1633- }
7+@Verifier(a)
8+func b () = true
16349

github/deemru/w8io/873ac7e 
158.48 ms