tx · DkKKgbk8iNLaN39ZxYaKKTuytqYxvgZJ7sqLNFBdio6x

3P7fBcGmUn3KCUhJSwvPd1yTsZhzEECbTPJ:  -0.01000000 Waves

2022.02.13 16:00 [2986962] smart account 3P7fBcGmUn3KCUhJSwvPd1yTsZhzEECbTPJ > SELF 0.00000000 Waves

{ "type": 13, "id": "DkKKgbk8iNLaN39ZxYaKKTuytqYxvgZJ7sqLNFBdio6x", "fee": 1000000, "feeAssetId": null, "timestamp": 1644757211817, "version": 1, "sender": "3P7fBcGmUn3KCUhJSwvPd1yTsZhzEECbTPJ", "senderPublicKey": "551sV9g8bMqcZf5x5yYqTinrYLLmDPrU73idSuksZKwg", "proofs": [ "5PikJ5CHydLguBQuabm2uSauYUTT8JXWPRXr4VBVMwRk2pTRhN77pRHoqxmqg7g695tLbYq73NKabYcp3Hx2w4HS" ], "script": "base64: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", "chainId": 87, "height": 2986962, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 2Bvah6diXXU6RTY8Xkg92gBZFT8CZZfnjKTmvFoqGka2 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let FLATAPP = addressFromStringValue("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1")
5+
6+let kBalanceA = "A_asset_balance"
7+
8+let kBalanceB = "B_asset_balance"
9+
10+let kInvariant = "invariant"
11+
12+let scale8 = 100000000
13+
14+let scale12 = 1000000000000
15+
16+let digits8 = 8
17+
18+let exchangeRatioLimitMin = 90000000
19+
20+let exchangeRatioLimitMax = 110000000
21+
22+let alpha = 50
23+
24+let alphaDigits = 2
25+
26+let beta = 46000000
27+
28+func skewness (x,y) = (((fraction(scale12, x, y) + fraction(scale12, y, x)) / 2) / 10000)
29+
30+
31+func invariantCalc (x,y) = {
32+ let sk = skewness(x, y)
33+ (fraction((x + y), scale8, pow(sk, digits8, alpha, alphaDigits, digits8, CEILING)) + (2 * fraction(pow(fraction(x, y, scale8), 0, 5, 1, (digits8 / 2), DOWN), pow((sk - beta), digits8, alpha, alphaDigits, digits8, DOWN), scale8)))
34+ }
35+
36+
37+func d (A,B,invariant,amount) = {
38+ let Dmin = (B - fraction(amount, exchangeRatioLimitMax, scale8))
39+ let Dmax = (B - fraction(amount, exchangeRatioLimitMin, scale8))
40+ let A_new = (A + amount)
41+ let Fmin = (invariantCalc(A_new, Dmin) - invariant)
42+ func DF (a,u) = if ((a._1 == 0))
43+ then a
44+ else {
45+ let D = a._2
46+ let Flastvalid = a._3
47+ let Dlastvalid = a._4
48+ let Fprev = a._5
49+ let Dprev = a._6
50+ let F = (invariantCalc(A_new, D) - invariant)
51+ if ((F == 0))
52+ then $Tuple6(0, D, 0, 0, 0, 0)
53+ else {
54+ let $t024172545 = if (if ((F > 0))
55+ then (Flastvalid > F)
56+ else false)
57+ then $Tuple2(F, D)
58+ else $Tuple2(Flastvalid, Dlastvalid)
59+ let Fvalid = $t024172545._1
60+ let Dvalid = $t024172545._2
61+ if (((F - Fprev) == 0))
62+ then $Tuple6(1, (D + 1), Fvalid, Dvalid, F, D)
63+ else {
64+ let Dnext = (D - fraction(F, (D - Dprev), (F - Fprev)))
65+ if (((D - Dnext) != 0))
66+ then $Tuple6(1, Dnext, Fvalid, Dvalid, F, D)
67+ else if ((0 > F))
68+ then $Tuple6(1, (D + 1), Fvalid, Dvalid, F, D)
69+ else $Tuple6(0, D, 0, 0, 0, 0)
70+ }
71+ }
72+ }
73+
74+ let a = {
75+ let $l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
76+ let $s = size($l)
77+ let $acc0 = $Tuple6(1, Dmax, 9223372036854775807, B, Fmin, Dmin)
78+ func $f0_1 ($a,$i) = if (($i >= $s))
79+ then $a
80+ else DF($a, $l[$i])
81+
82+ func $f0_2 ($a,$i) = if (($i >= $s))
83+ then $a
84+ else throw("List size exceeds 12")
85+
86+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12)
87+ }
88+ if ((a._1 == 0))
89+ then (B - a._2)
90+ else (B - a._4)
91+ }
92+
93+
94+@Callable(i)
95+func D (A,B,invariant,amount) = $Tuple2(nil, d(A, B, invariant, amount))
96+
97+

github/deemru/w8io/3ef1775 
35.27 ms