@magmaprotocol/magma-clmm-sdk 0.5.39 → 0.5.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -92,6 +92,7 @@ __export(src_exports, {
92
92
  SUI_SYSTEM_STATE_OBJECT_ID: () => SUI_SYSTEM_STATE_OBJECT_ID,
93
93
  SplitSwap: () => SplitSwap,
94
94
  SplitUnit: () => SplitUnit,
95
+ StrategyType: () => StrategyType,
95
96
  SwapDirection: () => SwapDirection,
96
97
  SwapModule: () => SwapModule,
97
98
  SwapUtils: () => SwapUtils,
@@ -113,6 +114,10 @@ __export(src_exports, {
113
114
  adjustForSlippage: () => adjustForSlippage,
114
115
  asIntN: () => asIntN,
115
116
  asUintN: () => asUintN,
117
+ autoFillXByStrategy: () => autoFillXByStrategy,
118
+ autoFillXByWeight: () => autoFillXByWeight,
119
+ autoFillYByStrategy: () => autoFillYByStrategy,
120
+ autoFillYByWeight: () => autoFillYByWeight,
116
121
  bufferToHex: () => bufferToHex,
117
122
  buildClmmPositionName: () => buildClmmPositionName,
118
123
  buildNFT: () => buildNFT,
@@ -151,12 +156,14 @@ __export(src_exports, {
151
156
  getAmountUnfixedDelta: () => getAmountUnfixedDelta,
152
157
  getCoinAFromLiquidity: () => getCoinAFromLiquidity,
153
158
  getCoinBFromLiquidity: () => getCoinBFromLiquidity,
159
+ getCoinXYForLiquidity: () => getCoinXYForLiquidity,
154
160
  getDefaultSuiInputType: () => getDefaultSuiInputType,
155
161
  getDeltaA: () => getDeltaA,
156
162
  getDeltaB: () => getDeltaB,
157
163
  getDeltaDownFromOutput: () => getDeltaDownFromOutput,
158
164
  getDeltaUpFromInput: () => getDeltaUpFromInput,
159
165
  getFutureTime: () => getFutureTime,
166
+ getLiquidityAndCoinYByCoinX: () => getLiquidityAndCoinYByCoinX,
160
167
  getLiquidityFromCoinA: () => getLiquidityFromCoinA,
161
168
  getLiquidityFromCoinB: () => getLiquidityFromCoinB,
162
169
  getLowerSqrtPriceFromCoinA: () => getLowerSqrtPriceFromCoinA,
@@ -180,6 +187,7 @@ __export(src_exports, {
180
187
  getObjectType: () => getObjectType,
181
188
  getObjectVersion: () => getObjectVersion,
182
189
  getPackagerConfigs: () => getPackagerConfigs,
190
+ getPriceOfBinByBinId: () => getPriceOfBinByBinId,
183
191
  getRewardInTickRange: () => getRewardInTickRange,
184
192
  getSuiObjectData: () => getSuiObjectData,
185
193
  getTickDataFromUrlData: () => getTickDataFromUrlData,
@@ -203,11 +211,16 @@ __export(src_exports, {
203
211
  shortAddress: () => shortAddress,
204
212
  shortString: () => shortString,
205
213
  tickScore: () => tickScore,
214
+ toAmountAskSide: () => toAmountAskSide,
215
+ toAmountBidSide: () => toAmountBidSide,
216
+ toAmountBothSide: () => toAmountBothSide,
217
+ toAmountsBothSideByStrategy: () => toAmountsBothSideByStrategy,
206
218
  toBuffer: () => toBuffer,
207
219
  toCoinAmount: () => toCoinAmount,
208
220
  toDecimalsAmount: () => toDecimalsAmount,
209
221
  transClmmpoolDataWithoutTicks: () => transClmmpoolDataWithoutTicks,
210
- utf8to16: () => utf8to16
222
+ utf8to16: () => utf8to16,
223
+ withLiquiditySlippage: () => withLiquiditySlippage
211
224
  });
212
225
  module.exports = __toCommonJS(src_exports);
213
226
 
@@ -243,7 +256,7 @@ var CachedContent = class {
243
256
  };
244
257
 
245
258
  // src/utils/common.ts
246
- var import_bn11 = __toESM(require("bn.js"));
259
+ var import_bn13 = __toESM(require("bn.js"));
247
260
  var import_bcs = require("@mysten/bcs");
248
261
  var import_ed25519 = require("@mysten/sui/keypairs/ed25519");
249
262
  var import_secp256k1 = require("@mysten/sui/keypairs/secp256k1");
@@ -1798,8 +1811,660 @@ function collectFeesQuote(param) {
1798
1811
  return updateFees(param.position, fee_growth_inside_a, fee_growth_inside_b);
1799
1812
  }
1800
1813
 
1801
- // src/math/percentage.ts
1814
+ // src/math/dlmmStrategy.ts
1815
+ var import_bn10 = __toESM(require("bn.js"));
1816
+
1817
+ // src/math/dlmmWeightToAmounts.ts
1802
1818
  var import_bn9 = __toESM(require("bn.js"));
1819
+ var import_decimal6 = __toESM(require("decimal.js"));
1820
+ var import_calc_dlmm = require("@magmaprotocol/calc_dlmm");
1821
+ function getPriceOfBinByBinId(binId, binStep) {
1822
+ const twoDec = new import_decimal6.default(2);
1823
+ const price = new import_decimal6.default((0, import_calc_dlmm.get_price_from_real_id)(binId, binStep));
1824
+ return price.div(twoDec.pow(128));
1825
+ }
1826
+ function autoFillYByWeight(activeId, binStep, amountX, amountXInActiveBin, amountYInActiveBin, distributions) {
1827
+ const activeBins = distributions.filter((element) => {
1828
+ return element.binId === activeId;
1829
+ });
1830
+ if (activeBins.length === 1) {
1831
+ const p0 = getPriceOfBinByBinId(activeId, binStep);
1832
+ let wx0 = new import_decimal6.default(0);
1833
+ let wy0 = new import_decimal6.default(0);
1834
+ const activeBin = activeBins[0];
1835
+ if (amountXInActiveBin.isZero() && amountYInActiveBin.isZero()) {
1836
+ wx0 = new import_decimal6.default(activeBin.weight).div(p0.mul(new import_decimal6.default(2)));
1837
+ wy0 = new import_decimal6.default(activeBin.weight).div(new import_decimal6.default(2));
1838
+ } else {
1839
+ const amountXInActiveBinDec = new import_decimal6.default(amountXInActiveBin.toString());
1840
+ const amountYInActiveBinDec = new import_decimal6.default(amountYInActiveBin.toString());
1841
+ if (!amountXInActiveBin.isZero()) {
1842
+ wx0 = new import_decimal6.default(activeBin.weight).div(p0.add(amountYInActiveBinDec.div(amountXInActiveBinDec)));
1843
+ }
1844
+ if (!amountYInActiveBin.isZero()) {
1845
+ wy0 = new import_decimal6.default(activeBin.weight).div(new import_decimal6.default(1).add(p0.mul(amountXInActiveBinDec).div(amountYInActiveBinDec)));
1846
+ }
1847
+ }
1848
+ let totalWeightX2 = wx0;
1849
+ let totalWeightY2 = wy0;
1850
+ distributions.forEach((element) => {
1851
+ if (element.binId < activeId) {
1852
+ totalWeightY2 = totalWeightY2.add(new import_decimal6.default(element.weight));
1853
+ }
1854
+ if (element.binId > activeId) {
1855
+ const price = getPriceOfBinByBinId(element.binId, binStep);
1856
+ const weighPerPrice = new import_decimal6.default(element.weight).div(price);
1857
+ totalWeightX2 = totalWeightX2.add(weighPerPrice);
1858
+ }
1859
+ });
1860
+ const kx2 = totalWeightX2.isZero() ? new import_decimal6.default(1) : new import_decimal6.default(amountX.toString()).div(totalWeightX2);
1861
+ const amountY2 = kx2.mul(totalWeightY2);
1862
+ return new import_bn9.default(amountY2.floor().toString());
1863
+ }
1864
+ let totalWeightX = new import_decimal6.default(0);
1865
+ let totalWeightY = new import_decimal6.default(0);
1866
+ distributions.forEach((element) => {
1867
+ if (element.binId < activeId) {
1868
+ totalWeightY = totalWeightY.add(new import_decimal6.default(element.weight));
1869
+ } else {
1870
+ const price = getPriceOfBinByBinId(element.binId, binStep);
1871
+ const weighPerPrice = new import_decimal6.default(element.weight).div(price);
1872
+ totalWeightX = totalWeightX.add(weighPerPrice);
1873
+ }
1874
+ });
1875
+ const kx = totalWeightX.isZero() ? new import_decimal6.default(1) : new import_decimal6.default(amountX.toString()).div(totalWeightX);
1876
+ const amountY = kx.mul(totalWeightY);
1877
+ return new import_bn9.default(amountY.floor().toString());
1878
+ }
1879
+ function autoFillXByWeight(activeId, binStep, amountY, amountXInActiveBin, amountYInActiveBin, distributions) {
1880
+ const activeBins = distributions.filter((element) => {
1881
+ return element.binId === activeId;
1882
+ });
1883
+ if (activeBins.length === 1) {
1884
+ const p0 = getPriceOfBinByBinId(activeId, binStep);
1885
+ let wx0 = new import_decimal6.default(0);
1886
+ let wy0 = new import_decimal6.default(0);
1887
+ const activeBin = activeBins[0];
1888
+ if (amountXInActiveBin.isZero() && amountYInActiveBin.isZero()) {
1889
+ wx0 = new import_decimal6.default(activeBin.weight).div(p0.mul(new import_decimal6.default(2)));
1890
+ wy0 = new import_decimal6.default(activeBin.weight).div(new import_decimal6.default(2));
1891
+ } else {
1892
+ const amountXInActiveBinDec = new import_decimal6.default(amountXInActiveBin.toString());
1893
+ const amountYInActiveBinDec = new import_decimal6.default(amountYInActiveBin.toString());
1894
+ if (!amountXInActiveBin.isZero()) {
1895
+ wx0 = new import_decimal6.default(activeBin.weight).div(p0.add(amountYInActiveBinDec.div(amountXInActiveBinDec)));
1896
+ }
1897
+ if (!amountYInActiveBin.isZero()) {
1898
+ wy0 = new import_decimal6.default(activeBin.weight).div(new import_decimal6.default(1).add(p0.mul(amountXInActiveBinDec).div(amountYInActiveBinDec)));
1899
+ }
1900
+ }
1901
+ let totalWeightX2 = wx0;
1902
+ let totalWeightY2 = wy0;
1903
+ distributions.forEach((element) => {
1904
+ if (element.binId < activeId) {
1905
+ totalWeightY2 = totalWeightY2.add(new import_decimal6.default(element.weight));
1906
+ }
1907
+ if (element.binId > activeId) {
1908
+ const price = getPriceOfBinByBinId(element.binId, binStep);
1909
+ const weighPerPrice = new import_decimal6.default(element.weight).div(price);
1910
+ totalWeightX2 = totalWeightX2.add(weighPerPrice);
1911
+ }
1912
+ });
1913
+ const ky2 = totalWeightY2.isZero() ? new import_decimal6.default(1) : new import_decimal6.default(amountY.toString()).div(totalWeightY2);
1914
+ const amountX2 = ky2.mul(totalWeightX2);
1915
+ return new import_bn9.default(amountX2.floor().toString());
1916
+ }
1917
+ let totalWeightX = new import_decimal6.default(0);
1918
+ let totalWeightY = new import_decimal6.default(0);
1919
+ distributions.forEach((element) => {
1920
+ if (element.binId < activeId) {
1921
+ totalWeightY = totalWeightY.add(new import_decimal6.default(element.weight));
1922
+ } else {
1923
+ const price = getPriceOfBinByBinId(element.binId, binStep);
1924
+ const weighPerPrice = new import_decimal6.default(element.weight).div(price);
1925
+ totalWeightX = totalWeightX.add(weighPerPrice);
1926
+ }
1927
+ });
1928
+ const ky = totalWeightY.isZero() ? new import_decimal6.default(1) : new import_decimal6.default(amountY.toString()).div(totalWeightY);
1929
+ const amountX = ky.mul(totalWeightX);
1930
+ return new import_bn9.default(amountX.floor().toString());
1931
+ }
1932
+ function toAmountBidSide(activeId, totalAmount, distributions) {
1933
+ const totalWeight = distributions.reduce((sum, el) => {
1934
+ return el.binId > activeId ? sum : sum.add(el.weight);
1935
+ }, new import_decimal6.default(0));
1936
+ if (totalWeight.cmp(new import_decimal6.default(0)) !== 1) {
1937
+ throw Error("Invalid parameteres");
1938
+ }
1939
+ return distributions.map((bin) => {
1940
+ if (bin.binId > activeId) {
1941
+ return {
1942
+ binId: bin.binId,
1943
+ amount: new import_bn9.default(0)
1944
+ };
1945
+ }
1946
+ return {
1947
+ binId: bin.binId,
1948
+ amount: new import_bn9.default(new import_decimal6.default(totalAmount.toString()).mul(new import_decimal6.default(bin.weight).div(totalWeight)).floor().toString())
1949
+ };
1950
+ });
1951
+ }
1952
+ function toAmountAskSide(activeId, binStep, totalAmount, distributions) {
1953
+ const totalWeight = distributions.reduce((sum, el) => {
1954
+ if (el.binId < activeId) {
1955
+ return sum;
1956
+ }
1957
+ const price = getPriceOfBinByBinId(el.binId, binStep);
1958
+ const weightPerPrice = new import_decimal6.default(el.weight).div(price);
1959
+ return sum.add(weightPerPrice);
1960
+ }, new import_decimal6.default(0));
1961
+ if (totalWeight.cmp(new import_decimal6.default(0)) !== 1) {
1962
+ throw Error("Invalid parameteres");
1963
+ }
1964
+ return distributions.map((bin) => {
1965
+ if (bin.binId < activeId) {
1966
+ return {
1967
+ binId: bin.binId,
1968
+ amount: new import_bn9.default(0)
1969
+ };
1970
+ }
1971
+ const price = getPriceOfBinByBinId(bin.binId, binStep);
1972
+ const weightPerPrice = new import_decimal6.default(bin.weight).div(price);
1973
+ return {
1974
+ binId: bin.binId,
1975
+ amount: new import_bn9.default(new import_decimal6.default(totalAmount.toString()).mul(weightPerPrice).div(totalWeight).floor().toString())
1976
+ };
1977
+ });
1978
+ }
1979
+ function toAmountBothSide(activeId, binStep, amountX, amountY, amountXInActiveBin, amountYInActiveBin, distributions) {
1980
+ if (activeId > distributions[distributions.length - 1].binId) {
1981
+ const amounts = toAmountBidSide(activeId, amountY, distributions);
1982
+ return amounts.map((bin) => {
1983
+ return {
1984
+ binId: bin.binId,
1985
+ amountX: new import_bn9.default(0),
1986
+ amountY: bin.amount
1987
+ };
1988
+ });
1989
+ }
1990
+ if (activeId < distributions[0].binId) {
1991
+ const amounts = toAmountAskSide(activeId, binStep, amountX, distributions);
1992
+ return amounts.map((bin) => {
1993
+ return {
1994
+ binId: bin.binId,
1995
+ amountX: bin.amount,
1996
+ amountY: new import_bn9.default(0)
1997
+ };
1998
+ });
1999
+ }
2000
+ const activeBins = distributions.filter((element) => {
2001
+ return element.binId === activeId;
2002
+ });
2003
+ if (activeBins.length === 1) {
2004
+ const p0 = getPriceOfBinByBinId(activeId, binStep);
2005
+ let wx0 = new import_decimal6.default(0);
2006
+ let wy0 = new import_decimal6.default(0);
2007
+ const activeBin = activeBins[0];
2008
+ if (amountXInActiveBin.isZero() && amountYInActiveBin.isZero()) {
2009
+ wx0 = new import_decimal6.default(activeBin.weight).div(p0.mul(new import_decimal6.default(2)));
2010
+ wy0 = new import_decimal6.default(activeBin.weight).div(new import_decimal6.default(2));
2011
+ } else {
2012
+ const amountXInActiveBinDec = new import_decimal6.default(amountXInActiveBin.toString());
2013
+ const amountYInActiveBinDec = new import_decimal6.default(amountYInActiveBin.toString());
2014
+ if (!amountXInActiveBin.isZero()) {
2015
+ wx0 = new import_decimal6.default(activeBin.weight).div(p0.add(amountYInActiveBinDec.div(amountXInActiveBinDec)));
2016
+ }
2017
+ if (!amountYInActiveBin.isZero()) {
2018
+ wy0 = new import_decimal6.default(activeBin.weight).div(new import_decimal6.default(1).add(p0.mul(amountXInActiveBinDec).div(amountYInActiveBinDec)));
2019
+ }
2020
+ }
2021
+ let totalWeightX2 = wx0;
2022
+ let totalWeightY2 = wy0;
2023
+ distributions.forEach((element) => {
2024
+ if (element.binId < activeId) {
2025
+ totalWeightY2 = totalWeightY2.add(new import_decimal6.default(element.weight));
2026
+ }
2027
+ if (element.binId > activeId) {
2028
+ const price = getPriceOfBinByBinId(element.binId, binStep);
2029
+ const weighPerPrice = new import_decimal6.default(element.weight).div(price);
2030
+ totalWeightX2 = totalWeightX2.add(weighPerPrice);
2031
+ }
2032
+ });
2033
+ const kx2 = new import_decimal6.default(amountX.toString()).div(totalWeightX2);
2034
+ const ky2 = new import_decimal6.default(amountY.toString()).div(totalWeightY2);
2035
+ const k2 = kx2.lessThan(ky2) ? kx2 : ky2;
2036
+ return distributions.map((bin) => {
2037
+ if (bin.binId < activeId) {
2038
+ const amount = k2.mul(new import_decimal6.default(bin.weight));
2039
+ return {
2040
+ binId: bin.binId,
2041
+ amountX: new import_bn9.default(0),
2042
+ amountY: new import_bn9.default(amount.floor().toString())
2043
+ };
2044
+ }
2045
+ if (bin.binId > activeId) {
2046
+ const price = getPriceOfBinByBinId(bin.binId, binStep);
2047
+ const weighPerPrice = new import_decimal6.default(bin.weight).div(price);
2048
+ const amount = k2.mul(weighPerPrice);
2049
+ return {
2050
+ binId: bin.binId,
2051
+ amountX: new import_bn9.default(amount.floor().toString()),
2052
+ amountY: new import_bn9.default(0)
2053
+ };
2054
+ }
2055
+ const amountXActiveBin = k2.mul(wx0);
2056
+ const amountYActiveBin = k2.mul(wy0);
2057
+ return {
2058
+ binId: bin.binId,
2059
+ amountX: new import_bn9.default(amountXActiveBin.floor().toString()),
2060
+ amountY: new import_bn9.default(amountYActiveBin.floor().toString())
2061
+ };
2062
+ });
2063
+ }
2064
+ let totalWeightX = new import_decimal6.default(0);
2065
+ let totalWeightY = new import_decimal6.default(0);
2066
+ distributions.forEach((element) => {
2067
+ if (element.binId < activeId) {
2068
+ totalWeightY = totalWeightY.add(new import_decimal6.default(element.weight));
2069
+ } else {
2070
+ const price = getPriceOfBinByBinId(element.binId, binStep);
2071
+ const weighPerPrice = new import_decimal6.default(element.weight).div(price);
2072
+ totalWeightX = totalWeightX.add(weighPerPrice);
2073
+ }
2074
+ });
2075
+ const kx = new import_decimal6.default(amountX.toString()).div(totalWeightX);
2076
+ const ky = new import_decimal6.default(amountY.toString()).div(totalWeightY);
2077
+ const k = kx.lessThan(ky) ? kx : ky;
2078
+ return distributions.map((bin) => {
2079
+ if (bin.binId < activeId) {
2080
+ const amount2 = k.mul(new import_decimal6.default(bin.weight));
2081
+ return {
2082
+ binId: bin.binId,
2083
+ amountX: new import_bn9.default(0),
2084
+ amountY: new import_bn9.default(amount2.floor().toString())
2085
+ };
2086
+ }
2087
+ const price = getPriceOfBinByBinId(bin.binId, binStep);
2088
+ const weighPerPrice = new import_decimal6.default(bin.weight).div(price);
2089
+ const amount = k.mul(weighPerPrice);
2090
+ return {
2091
+ binId: bin.binId,
2092
+ amountX: new import_bn9.default(amount.floor().toString()),
2093
+ amountY: new import_bn9.default(0)
2094
+ };
2095
+ });
2096
+ }
2097
+
2098
+ // src/math/dlmmStrategy.ts
2099
+ var StrategyType = /* @__PURE__ */ ((StrategyType2) => {
2100
+ StrategyType2[StrategyType2["Spot"] = 0] = "Spot";
2101
+ StrategyType2[StrategyType2["Curve"] = 1] = "Curve";
2102
+ StrategyType2[StrategyType2["BidAsk"] = 2] = "BidAsk";
2103
+ return StrategyType2;
2104
+ })(StrategyType || {});
2105
+ function toWeightDecendingOrder(minBinId, maxBinId) {
2106
+ const distributions = [];
2107
+ for (let i = minBinId; i <= maxBinId; i++) {
2108
+ distributions.push({
2109
+ binId: i,
2110
+ weight: maxBinId - i + 1
2111
+ });
2112
+ }
2113
+ return distributions;
2114
+ }
2115
+ function toWeightAscendingOrder(minBinId, maxBinId) {
2116
+ const distributions = [];
2117
+ for (let i = minBinId; i <= maxBinId; i++) {
2118
+ distributions.push({
2119
+ binId: i,
2120
+ weight: i - minBinId + 1
2121
+ });
2122
+ }
2123
+ return distributions;
2124
+ }
2125
+ function toWeightSpotBalanced(minBinId, maxBinId) {
2126
+ const distributions = [];
2127
+ for (let i = minBinId; i <= maxBinId; i++) {
2128
+ distributions.push({
2129
+ binId: i,
2130
+ weight: 1
2131
+ });
2132
+ }
2133
+ return distributions;
2134
+ }
2135
+ var DEFAULT_MAX_WEIGHT = 2e3;
2136
+ var DEFAULT_MIN_WEIGHT = 200;
2137
+ function toWeightCurve(minBinId, maxBinId, activeId) {
2138
+ if (activeId < minBinId || activeId > maxBinId) {
2139
+ throw new ClmmpoolsError("Invalid strategy params", "InvalidParams" /* InvalidParams */);
2140
+ }
2141
+ const maxWeight = DEFAULT_MAX_WEIGHT;
2142
+ const minWeight = DEFAULT_MIN_WEIGHT;
2143
+ const diffWeight = maxWeight - minWeight;
2144
+ const diffMinWeight = activeId > minBinId ? Math.floor(diffWeight / (activeId - minBinId)) : 0;
2145
+ const diffMaxWeight = maxBinId > activeId ? Math.floor(diffWeight / (maxBinId - activeId)) : 0;
2146
+ const distributions = [];
2147
+ for (let i = minBinId; i <= maxBinId; i++) {
2148
+ if (i < activeId) {
2149
+ distributions.push({
2150
+ binId: i,
2151
+ weight: maxWeight - (activeId - i) * diffMinWeight
2152
+ });
2153
+ } else if (i > activeId) {
2154
+ distributions.push({
2155
+ binId: i,
2156
+ weight: maxWeight - (i - activeId) * diffMaxWeight
2157
+ });
2158
+ } else {
2159
+ distributions.push({
2160
+ binId: i,
2161
+ weight: maxWeight
2162
+ });
2163
+ }
2164
+ }
2165
+ return distributions;
2166
+ }
2167
+ function toWeightBidAsk(minBinId, maxBinId, activeId) {
2168
+ if (activeId < minBinId || activeId > maxBinId) {
2169
+ throw new ClmmpoolsError("Invalid strategy params", "InvalidParams" /* InvalidParams */);
2170
+ }
2171
+ const maxWeight = DEFAULT_MAX_WEIGHT;
2172
+ const minWeight = DEFAULT_MIN_WEIGHT;
2173
+ const diffWeight = maxWeight - minWeight;
2174
+ const diffMinWeight = activeId > minBinId ? Math.floor(diffWeight / (activeId - minBinId)) : 0;
2175
+ const diffMaxWeight = maxBinId > activeId ? Math.floor(diffWeight / (maxBinId - activeId)) : 0;
2176
+ const distributions = [];
2177
+ for (let i = minBinId; i <= maxBinId; i++) {
2178
+ if (i < activeId) {
2179
+ distributions.push({
2180
+ binId: i,
2181
+ weight: minWeight + (activeId - i) * diffMinWeight
2182
+ });
2183
+ } else if (i > activeId) {
2184
+ distributions.push({
2185
+ binId: i,
2186
+ weight: minWeight + (i - activeId) * diffMaxWeight
2187
+ });
2188
+ } else {
2189
+ distributions.push({
2190
+ binId: i,
2191
+ weight: minWeight
2192
+ });
2193
+ }
2194
+ }
2195
+ return distributions;
2196
+ }
2197
+ function autoFillYByStrategy(activeId, binStep, amountX, amountXInActiveBin, amountYInActiveBin, minBinId, maxBinId, strategyType) {
2198
+ switch (strategyType) {
2199
+ case 0 /* Spot */: {
2200
+ const weights = toWeightSpotBalanced(minBinId, maxBinId);
2201
+ return autoFillYByWeight(activeId, binStep, amountX, amountXInActiveBin, amountYInActiveBin, weights);
2202
+ }
2203
+ case 1 /* Curve */: {
2204
+ const weights = toWeightCurve(minBinId, maxBinId, activeId);
2205
+ return autoFillYByWeight(activeId, binStep, amountX, amountXInActiveBin, amountYInActiveBin, weights);
2206
+ }
2207
+ case 2 /* BidAsk */: {
2208
+ const weights = toWeightBidAsk(minBinId, maxBinId, activeId);
2209
+ return autoFillYByWeight(activeId, binStep, amountX, amountXInActiveBin, amountYInActiveBin, weights);
2210
+ }
2211
+ default:
2212
+ throw new Error(`Unsupported strategy type: ${strategyType}`);
2213
+ }
2214
+ }
2215
+ function autoFillXByStrategy(activeId, binStep, amountY, amountXInActiveBin, amountYInActiveBin, minBinId, maxBinId, strategyType) {
2216
+ switch (strategyType) {
2217
+ case 0 /* Spot */: {
2218
+ const weights = toWeightSpotBalanced(minBinId, maxBinId);
2219
+ return autoFillXByWeight(activeId, binStep, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2220
+ }
2221
+ case 1 /* Curve */: {
2222
+ const weights = toWeightCurve(minBinId, maxBinId, activeId);
2223
+ return autoFillXByWeight(activeId, binStep, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2224
+ }
2225
+ case 2 /* BidAsk */: {
2226
+ const weights = toWeightBidAsk(minBinId, maxBinId, activeId);
2227
+ return autoFillXByWeight(activeId, binStep, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2228
+ }
2229
+ default:
2230
+ throw new Error(`Unsupported strategy type: ${strategyType}`);
2231
+ }
2232
+ }
2233
+ function toAmountsBothSideByStrategy(activeId, binStep, minBinId, maxBinId, amountX, amountY, amountXInActiveBin, amountYInActiveBin, strategyType) {
2234
+ const isSingleSideX = amountY.isZero();
2235
+ switch (strategyType) {
2236
+ case 0 /* Spot */: {
2237
+ if (activeId < minBinId || activeId > maxBinId) {
2238
+ const weights = toWeightSpotBalanced(minBinId, maxBinId);
2239
+ return toAmountBothSide(activeId, binStep, amountX, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2240
+ }
2241
+ const amountsInBin = [];
2242
+ if (!isSingleSideX) {
2243
+ if (minBinId <= activeId) {
2244
+ const weights = toWeightSpotBalanced(minBinId, activeId);
2245
+ const amounts = toAmountBidSide(activeId, amountY, weights);
2246
+ for (const bin of amounts) {
2247
+ amountsInBin.push({
2248
+ binId: bin.binId,
2249
+ amountX: new import_bn10.default(0),
2250
+ amountY: bin.amount
2251
+ });
2252
+ }
2253
+ }
2254
+ if (activeId < maxBinId) {
2255
+ const weights = toWeightSpotBalanced(activeId + 1, maxBinId);
2256
+ const amounts = toAmountAskSide(activeId, binStep, amountX, weights);
2257
+ for (const bin of amounts) {
2258
+ amountsInBin.push({
2259
+ binId: bin.binId,
2260
+ amountX: bin.amount,
2261
+ amountY: new import_bn10.default(0)
2262
+ });
2263
+ }
2264
+ }
2265
+ } else {
2266
+ if (minBinId < activeId) {
2267
+ const weights = toWeightSpotBalanced(minBinId, activeId - 1);
2268
+ const amountsIntoBidSide = toAmountBidSide(activeId, amountY, weights);
2269
+ for (const bin of amountsIntoBidSide) {
2270
+ amountsInBin.push({
2271
+ binId: bin.binId,
2272
+ amountX: new import_bn10.default(0),
2273
+ amountY: bin.amount
2274
+ });
2275
+ }
2276
+ }
2277
+ if (activeId <= maxBinId) {
2278
+ const weights = toWeightSpotBalanced(activeId, maxBinId);
2279
+ const amountsIntoAskSide = toAmountAskSide(activeId, binStep, amountX, weights);
2280
+ for (const bin of amountsIntoAskSide) {
2281
+ amountsInBin.push({
2282
+ binId: bin.binId,
2283
+ amountX: bin.amount,
2284
+ amountY: new import_bn10.default(0)
2285
+ });
2286
+ }
2287
+ }
2288
+ }
2289
+ return amountsInBin;
2290
+ }
2291
+ case 1 /* Curve */: {
2292
+ if (activeId < minBinId) {
2293
+ const weights = toWeightDecendingOrder(minBinId, maxBinId);
2294
+ return toAmountBothSide(activeId, binStep, amountX, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2295
+ }
2296
+ if (activeId > maxBinId) {
2297
+ const weights = toWeightAscendingOrder(minBinId, maxBinId);
2298
+ return toAmountBothSide(activeId, binStep, amountX, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2299
+ }
2300
+ const amountsInBin = [];
2301
+ if (!isSingleSideX) {
2302
+ if (minBinId <= activeId) {
2303
+ const weights = toWeightAscendingOrder(minBinId, activeId);
2304
+ const amounts = toAmountBidSide(activeId, amountY, weights);
2305
+ for (const bin of amounts) {
2306
+ amountsInBin.push({
2307
+ binId: bin.binId,
2308
+ amountX: new import_bn10.default(0),
2309
+ amountY: bin.amount
2310
+ });
2311
+ }
2312
+ }
2313
+ if (activeId < maxBinId) {
2314
+ const weights = toWeightDecendingOrder(activeId + 1, maxBinId);
2315
+ const amounts = toAmountAskSide(activeId, binStep, amountX, weights);
2316
+ for (const bin of amounts) {
2317
+ amountsInBin.push({
2318
+ binId: bin.binId,
2319
+ amountX: bin.amount,
2320
+ amountY: new import_bn10.default(0)
2321
+ });
2322
+ }
2323
+ }
2324
+ } else {
2325
+ if (minBinId < activeId) {
2326
+ const weights = toWeightAscendingOrder(minBinId, activeId - 1);
2327
+ const amountsIntoBidSide = toAmountBidSide(activeId, amountY, weights);
2328
+ for (const bin of amountsIntoBidSide) {
2329
+ amountsInBin.push({
2330
+ binId: bin.binId,
2331
+ amountX: new import_bn10.default(0),
2332
+ amountY: bin.amount
2333
+ });
2334
+ }
2335
+ }
2336
+ if (activeId <= maxBinId) {
2337
+ const weights = toWeightDecendingOrder(activeId, maxBinId);
2338
+ const amountsIntoAskSide = toAmountAskSide(activeId, binStep, amountX, weights);
2339
+ for (const bin of amountsIntoAskSide) {
2340
+ amountsInBin.push({
2341
+ binId: bin.binId,
2342
+ amountX: bin.amount,
2343
+ amountY: new import_bn10.default(0)
2344
+ });
2345
+ }
2346
+ }
2347
+ }
2348
+ return amountsInBin;
2349
+ }
2350
+ case 2 /* BidAsk */: {
2351
+ if (activeId < minBinId) {
2352
+ const weights = toWeightAscendingOrder(minBinId, maxBinId);
2353
+ return toAmountBothSide(activeId, binStep, amountX, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2354
+ }
2355
+ if (activeId > maxBinId) {
2356
+ const weights = toWeightDecendingOrder(minBinId, maxBinId);
2357
+ return toAmountBothSide(activeId, binStep, amountX, amountY, amountXInActiveBin, amountYInActiveBin, weights);
2358
+ }
2359
+ const amountsInBin = [];
2360
+ if (!isSingleSideX) {
2361
+ if (minBinId <= activeId) {
2362
+ const weights = toWeightDecendingOrder(minBinId, activeId);
2363
+ const amounts = toAmountBidSide(activeId, amountY, weights);
2364
+ for (const bin of amounts) {
2365
+ amountsInBin.push({
2366
+ binId: bin.binId,
2367
+ amountX: new import_bn10.default(0),
2368
+ amountY: bin.amount
2369
+ });
2370
+ }
2371
+ }
2372
+ if (activeId < maxBinId) {
2373
+ const weights = toWeightAscendingOrder(activeId + 1, maxBinId);
2374
+ const amounts = toAmountAskSide(activeId, binStep, amountX, weights);
2375
+ for (const bin of amounts) {
2376
+ amountsInBin.push({
2377
+ binId: bin.binId,
2378
+ amountX: bin.amount,
2379
+ amountY: new import_bn10.default(0)
2380
+ });
2381
+ }
2382
+ }
2383
+ } else {
2384
+ if (minBinId < activeId) {
2385
+ const weights = toWeightDecendingOrder(minBinId, activeId - 1);
2386
+ const amountsIntoBidSide = toAmountBidSide(activeId, amountY, weights);
2387
+ for (const bin of amountsIntoBidSide) {
2388
+ amountsInBin.push({
2389
+ binId: bin.binId,
2390
+ amountX: new import_bn10.default(0),
2391
+ amountY: bin.amount
2392
+ });
2393
+ }
2394
+ }
2395
+ if (activeId <= maxBinId) {
2396
+ const weights = toWeightAscendingOrder(activeId, maxBinId);
2397
+ const amountsIntoAskSide = toAmountAskSide(activeId, binStep, amountX, weights);
2398
+ for (const bin of amountsIntoAskSide) {
2399
+ amountsInBin.push({
2400
+ binId: bin.binId,
2401
+ amountX: bin.amount,
2402
+ amountY: new import_bn10.default(0)
2403
+ });
2404
+ }
2405
+ }
2406
+ }
2407
+ return amountsInBin;
2408
+ }
2409
+ default:
2410
+ throw new Error(`Unsupported strategy type: ${strategyType}`);
2411
+ }
2412
+ }
2413
+
2414
+ // src/math/LiquidityHelper.ts
2415
+ var import_decimal8 = __toESM(require("decimal.js"));
2416
+
2417
+ // src/utils/numbers.ts
2418
+ var import_decimal7 = __toESM(require("decimal.js"));
2419
+ function d(value) {
2420
+ if (import_decimal7.default.isDecimal(value)) {
2421
+ return value;
2422
+ }
2423
+ return new import_decimal7.default(value === void 0 ? 0 : value);
2424
+ }
2425
+ function decimalsMultiplier(decimals) {
2426
+ return d(10).pow(d(decimals).abs());
2427
+ }
2428
+
2429
+ // src/math/LiquidityHelper.ts
2430
+ function withLiquiditySlippage(value, slippage, mode) {
2431
+ return d(value)[mode](d(value).mul(slippage)).toDP(0);
2432
+ }
2433
+ function getLiquidityAndCoinYByCoinX(coinInVal, reserveInSize, reserveOutSize, lpSupply) {
2434
+ if (coinInVal.lessThanOrEqualTo(0)) {
2435
+ throw new ClmmpoolsError("coinInVal is less than zero", "InvalidCoinAmount" /* InvalidCoinAmount */);
2436
+ }
2437
+ if (reserveInSize.lessThanOrEqualTo(0) || reserveOutSize.lessThanOrEqualTo(0)) {
2438
+ return -1;
2439
+ }
2440
+ const coinYAmount = coinInVal.mul(reserveOutSize).div(reserveInSize);
2441
+ const sqrtSupply = lpSupply;
2442
+ const lpX = coinInVal.div(reserveInSize).mul(sqrtSupply);
2443
+ const lpY = coinYAmount.div(reserveOutSize).mul(sqrtSupply);
2444
+ const lpAmount = import_decimal8.default.min(lpX, lpY);
2445
+ return {
2446
+ coinYAmount,
2447
+ lpAmount
2448
+ };
2449
+ }
2450
+ function getCoinXYForLiquidity(liquidity, reserveInSize, reserveOutSize, lpSuply) {
2451
+ if (liquidity.lessThanOrEqualTo(0)) {
2452
+ throw new ClmmpoolsError("liquidity can't be equal or less than zero", "InvalidLiquidityAmount" /* InvalidLiquidityAmount */);
2453
+ }
2454
+ if (reserveInSize.lessThanOrEqualTo(0) || reserveOutSize.lessThanOrEqualTo(0)) {
2455
+ throw new ClmmpoolsError("reserveInSize or reserveOutSize can not be equal or less than zero", "InvalidReserveAmount" /* InvalidReserveAmount */);
2456
+ }
2457
+ const sqrtSupply = lpSuply;
2458
+ const coinXAmount = liquidity.div(sqrtSupply).mul(reserveInSize);
2459
+ const coinYAmount = liquidity.div(sqrtSupply).mul(reserveOutSize);
2460
+ return {
2461
+ coinXAmount,
2462
+ coinYAmount
2463
+ };
2464
+ }
2465
+
2466
+ // src/math/percentage.ts
2467
+ var import_bn11 = __toESM(require("bn.js"));
1803
2468
  var Percentage = class {
1804
2469
  numerator;
1805
2470
  denominator;
@@ -1827,8 +2492,8 @@ var Percentage = class {
1827
2492
  * @returns
1828
2493
  */
1829
2494
  static fromFraction(numerator, denominator) {
1830
- const num = typeof numerator === "number" ? new import_bn9.default(numerator.toString()) : numerator;
1831
- const denom = typeof denominator === "number" ? new import_bn9.default(denominator.toString()) : denominator;
2495
+ const num = typeof numerator === "number" ? new import_bn11.default(numerator.toString()) : numerator;
2496
+ const denom = typeof denominator === "number" ? new import_bn11.default(denominator.toString()) : denominator;
1832
2497
  return new Percentage(num, denom);
1833
2498
  }
1834
2499
  };
@@ -1928,7 +2593,7 @@ function adjustForCoinSlippage(tokenAmount, slippage, adjustUp) {
1928
2593
  }
1929
2594
 
1930
2595
  // src/math/SplitSwap.ts
1931
- var import_bn10 = __toESM(require("bn.js"));
2596
+ var import_bn12 = __toESM(require("bn.js"));
1932
2597
  var SplitUnit = /* @__PURE__ */ ((SplitUnit2) => {
1933
2598
  SplitUnit2[SplitUnit2["FIVE"] = 5] = "FIVE";
1934
2599
  SplitUnit2[SplitUnit2["TEN"] = 10] = "TEN";
@@ -1986,7 +2651,7 @@ function updateSplitSwapResult(maxIndex, currentIndex, splitSwapResult, stepResu
1986
2651
  return splitSwapResult;
1987
2652
  }
1988
2653
  function computeSplitSwap(a2b, byAmountIn, amounts, poolData, swapTicks) {
1989
- let currentLiquidity = new import_bn10.default(poolData.liquidity);
2654
+ let currentLiquidity = new import_bn12.default(poolData.liquidity);
1990
2655
  let { currentSqrtPrice } = poolData;
1991
2656
  let splitSwapResult = {
1992
2657
  amountInArray: [],
@@ -2049,7 +2714,7 @@ function computeSplitSwap(a2b, byAmountIn, amounts, poolData, swapTicks) {
2049
2714
  targetSqrtPrice,
2050
2715
  currentLiquidity,
2051
2716
  remainerAmount,
2052
- new import_bn10.default(poolData.feeRate),
2717
+ new import_bn12.default(poolData.feeRate),
2053
2718
  byAmountIn
2054
2719
  );
2055
2720
  tempStepResult = stepResult;
@@ -2061,7 +2726,7 @@ function computeSplitSwap(a2b, byAmountIn, amounts, poolData, swapTicks) {
2061
2726
  splitSwapResult.amountOutArray[i] = splitSwapResult.amountOutArray[i].add(stepResult.amountOut);
2062
2727
  splitSwapResult.feeAmountArray[i] = splitSwapResult.feeAmountArray[i].add(stepResult.feeAmount);
2063
2728
  if (stepResult.nextSqrtPrice.eq(tick.sqrtPrice)) {
2064
- signedLiquidityChange = a2b ? tick.liquidityNet.mul(new import_bn10.default(-1)) : tick.liquidityNet;
2729
+ signedLiquidityChange = a2b ? tick.liquidityNet.mul(new import_bn12.default(-1)) : tick.liquidityNet;
2065
2730
  currentLiquidity = signedLiquidityChange.gt(ZERO) ? currentLiquidity.add(signedLiquidityChange) : currentLiquidity.sub(signedLiquidityChange.abs());
2066
2731
  currentSqrtPrice = tick.sqrtPrice;
2067
2732
  } else {
@@ -2086,7 +2751,7 @@ function computeSplitSwap(a2b, byAmountIn, amounts, poolData, swapTicks) {
2086
2751
  break;
2087
2752
  }
2088
2753
  if (tempStepResult.nextSqrtPrice.eq(tick.sqrtPrice)) {
2089
- signedLiquidityChange = a2b ? tick.liquidityNet.mul(new import_bn10.default(-1)) : tick.liquidityNet;
2754
+ signedLiquidityChange = a2b ? tick.liquidityNet.mul(new import_bn12.default(-1)) : tick.liquidityNet;
2090
2755
  currentLiquidity = signedLiquidityChange.gt(ZERO) ? currentLiquidity.add(signedLiquidityChange) : currentLiquidity.sub(signedLiquidityChange.abs());
2091
2756
  currentSqrtPrice = tick.sqrtPrice;
2092
2757
  } else {
@@ -2141,18 +2806,6 @@ var SplitSwap = class {
2141
2806
  }
2142
2807
  };
2143
2808
 
2144
- // src/utils/numbers.ts
2145
- var import_decimal6 = __toESM(require("decimal.js"));
2146
- function d(value) {
2147
- if (import_decimal6.default.isDecimal(value)) {
2148
- return value;
2149
- }
2150
- return new import_decimal6.default(value === void 0 ? 0 : value);
2151
- }
2152
- function decimalsMultiplier(decimals) {
2153
- return d(10).pow(d(decimals).abs());
2154
- }
2155
-
2156
2809
  // src/utils/objects.ts
2157
2810
  function getSuiObjectData(resp) {
2158
2811
  return resp.data;
@@ -2306,7 +2959,7 @@ function buildPool(objects) {
2306
2959
  const rewarders = [];
2307
2960
  fields.rewarder_manager.fields.rewarders.forEach((item) => {
2308
2961
  const { emissions_per_second } = item.fields;
2309
- const emissionSeconds = MathUtil.fromX64(new import_bn11.default(emissions_per_second));
2962
+ const emissionSeconds = MathUtil.fromX64(new import_bn13.default(emissions_per_second));
2310
2963
  const emissionsEveryDay = Math.floor(emissionSeconds.toNumber() * 60 * 60 * 24);
2311
2964
  rewarders.push({
2312
2965
  emissions_per_second,
@@ -2498,11 +3151,11 @@ function buildTickData(objects) {
2498
3151
  const possition = {
2499
3152
  objectId: getObjectId(objects),
2500
3153
  index: asIntN(BigInt(valueItem.index.fields.bits)),
2501
- sqrtPrice: new import_bn11.default(valueItem.sqrt_price),
2502
- liquidityNet: new import_bn11.default(valueItem.liquidity_net.fields.bits),
2503
- liquidityGross: new import_bn11.default(valueItem.liquidity_gross),
2504
- feeGrowthOutsideA: new import_bn11.default(valueItem.fee_growth_outside_a),
2505
- feeGrowthOutsideB: new import_bn11.default(valueItem.fee_growth_outside_b),
3154
+ sqrtPrice: new import_bn13.default(valueItem.sqrt_price),
3155
+ liquidityNet: new import_bn13.default(valueItem.liquidity_net.fields.bits),
3156
+ liquidityGross: new import_bn13.default(valueItem.liquidity_gross),
3157
+ feeGrowthOutsideA: new import_bn13.default(valueItem.fee_growth_outside_a),
3158
+ feeGrowthOutsideB: new import_bn13.default(valueItem.fee_growth_outside_b),
2506
3159
  rewardersGrowthOutside: valueItem.rewards_growth_outside
2507
3160
  };
2508
3161
  return possition;
@@ -2512,11 +3165,11 @@ function buildTickDataByEvent(fields) {
2512
3165
  throw new ClmmpoolsError(`Invalid tick fields.`, "InvalidTickFields" /* InvalidTickFields */);
2513
3166
  }
2514
3167
  const index = asIntN(BigInt(fields.index.bits));
2515
- const sqrtPrice = new import_bn11.default(fields.sqrt_price);
2516
- const liquidityNet = new import_bn11.default(fields.liquidity_net.bits);
2517
- const liquidityGross = new import_bn11.default(fields.liquidity_gross);
2518
- const feeGrowthOutsideA = new import_bn11.default(fields.fee_growth_outside_a);
2519
- const feeGrowthOutsideB = new import_bn11.default(fields.fee_growth_outside_b);
3168
+ const sqrtPrice = new import_bn13.default(fields.sqrt_price);
3169
+ const liquidityNet = new import_bn13.default(fields.liquidity_net.bits);
3170
+ const liquidityGross = new import_bn13.default(fields.liquidity_gross);
3171
+ const feeGrowthOutsideA = new import_bn13.default(fields.fee_growth_outside_a);
3172
+ const feeGrowthOutsideB = new import_bn13.default(fields.fee_growth_outside_b);
2520
3173
  const rewardersGrowthOutside = fields.rewards_growth_outside || [];
2521
3174
  const tick = {
2522
3175
  objectId: "",
@@ -2535,7 +3188,7 @@ function buildClmmPositionName(pool_index, position_index) {
2535
3188
  }
2536
3189
 
2537
3190
  // src/utils/tick.ts
2538
- var import_bn12 = __toESM(require("bn.js"));
3191
+ var import_bn14 = __toESM(require("bn.js"));
2539
3192
  var TickUtil = class {
2540
3193
  /**
2541
3194
  * Get min tick index.
@@ -2575,22 +3228,22 @@ function getRewardInTickRange(pool, tickLower, tickUpper, tickLowerIndex, tickUp
2575
3228
  let rewarder_growth_below = growthGlobal[i];
2576
3229
  if (tickLower !== null) {
2577
3230
  if (pool.current_tick_index < tickLowerIndex) {
2578
- rewarder_growth_below = growthGlobal[i].sub(new import_bn12.default(tickLower.rewardersGrowthOutside[i]));
3231
+ rewarder_growth_below = growthGlobal[i].sub(new import_bn14.default(tickLower.rewardersGrowthOutside[i]));
2579
3232
  } else {
2580
3233
  rewarder_growth_below = tickLower.rewardersGrowthOutside[i];
2581
3234
  }
2582
3235
  }
2583
- let rewarder_growth_above = new import_bn12.default(0);
3236
+ let rewarder_growth_above = new import_bn14.default(0);
2584
3237
  if (tickUpper !== null) {
2585
3238
  if (pool.current_tick_index >= tickUpperIndex) {
2586
- rewarder_growth_above = growthGlobal[i].sub(new import_bn12.default(tickUpper.rewardersGrowthOutside[i]));
3239
+ rewarder_growth_above = growthGlobal[i].sub(new import_bn14.default(tickUpper.rewardersGrowthOutside[i]));
2587
3240
  } else {
2588
3241
  rewarder_growth_above = tickUpper.rewardersGrowthOutside[i];
2589
3242
  }
2590
3243
  }
2591
3244
  const rewGrowthInside = MathUtil.subUnderflowU128(
2592
- MathUtil.subUnderflowU128(new import_bn12.default(growthGlobal[i]), new import_bn12.default(rewarder_growth_below)),
2593
- new import_bn12.default(rewarder_growth_above)
3245
+ MathUtil.subUnderflowU128(new import_bn14.default(growthGlobal[i]), new import_bn14.default(rewarder_growth_below)),
3246
+ new import_bn14.default(rewarder_growth_above)
2594
3247
  );
2595
3248
  rewarderGrowthInside.push(rewGrowthInside);
2596
3249
  }
@@ -2598,8 +3251,8 @@ function getRewardInTickRange(pool, tickLower, tickUpper, tickLowerIndex, tickUp
2598
3251
  }
2599
3252
 
2600
3253
  // src/utils/transaction-util.ts
2601
- var import_bn13 = __toESM(require("bn.js"));
2602
- var import_decimal7 = __toESM(require("decimal.js"));
3254
+ var import_bn15 = __toESM(require("bn.js"));
3255
+ var import_decimal9 = __toESM(require("decimal.js"));
2603
3256
  var import_transactions = require("@mysten/sui/transactions");
2604
3257
  function findAdjustCoin(coinPair) {
2605
3258
  const isAdjustCoinA = CoinAssist.isSuiCoin(coinPair.coinTypeA);
@@ -2607,7 +3260,7 @@ function findAdjustCoin(coinPair) {
2607
3260
  return { isAdjustCoinA, isAdjustCoinB };
2608
3261
  }
2609
3262
  function reverSlippageAmount(slippageAmount, slippage) {
2610
- return import_decimal7.default.ceil(d(slippageAmount).div(1 + slippage)).toString();
3263
+ return import_decimal9.default.ceil(d(slippageAmount).div(1 + slippage)).toString();
2611
3264
  }
2612
3265
  async function printTransaction(tx, isPrint = true) {
2613
3266
  console.log(`inputs`, tx.blockData.inputs);
@@ -2907,7 +3560,7 @@ var _TransactionUtil = class {
2907
3560
  const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(
2908
3561
  Number(params.tick_lower),
2909
3562
  Number(params.tick_upper),
2910
- new import_bn13.default(coinAmount),
3563
+ new import_bn15.default(coinAmount),
2911
3564
  params.fix_amount_a,
2912
3565
  true,
2913
3566
  slippage,
@@ -2981,12 +3634,12 @@ var _TransactionUtil = class {
2981
3634
  max_amount_a = params.amount_a;
2982
3635
  min_amount_a = params.amount_a;
2983
3636
  max_amount_b = params.amount_b;
2984
- min_amount_b = new import_decimal7.default(params.amount_b).div(new import_decimal7.default(1).plus(new import_decimal7.default(params.slippage))).mul(new import_decimal7.default(1).minus(new import_decimal7.default(params.slippage))).toDecimalPlaces(0).toNumber();
3637
+ min_amount_b = new import_decimal9.default(params.amount_b).div(new import_decimal9.default(1).plus(new import_decimal9.default(params.slippage))).mul(new import_decimal9.default(1).minus(new import_decimal9.default(params.slippage))).toDecimalPlaces(0).toNumber();
2985
3638
  } else {
2986
3639
  max_amount_b = params.amount_b;
2987
3640
  min_amount_b = params.amount_b;
2988
3641
  max_amount_a = params.amount_a;
2989
- min_amount_a = new import_decimal7.default(params.amount_a).div(new import_decimal7.default(1).plus(new import_decimal7.default(params.slippage))).mul(new import_decimal7.default(1).minus(new import_decimal7.default(params.slippage))).toDecimalPlaces(0).toNumber();
3642
+ min_amount_a = new import_decimal9.default(params.amount_a).div(new import_decimal9.default(1).plus(new import_decimal9.default(params.slippage))).mul(new import_decimal9.default(1).minus(new import_decimal9.default(params.slippage))).toDecimalPlaces(0).toNumber();
2990
3643
  }
2991
3644
  const args = params.is_open ? [
2992
3645
  tx.object(clmmConfig.global_config_id),
@@ -3975,7 +4628,7 @@ var _TransactionUtil = class {
3975
4628
  const basePath = splitPath.basePaths[i];
3976
4629
  a2b.push(basePath.direction);
3977
4630
  poolAddress.push(basePath.poolAddress);
3978
- rawAmountLimit.push(new import_bn13.default(basePath.inputAmount.toString()));
4631
+ rawAmountLimit.push(new import_bn15.default(basePath.inputAmount.toString()));
3979
4632
  if (i === 0) {
3980
4633
  coinType.push(basePath.fromCoin, basePath.toCoin);
3981
4634
  } else {
@@ -3983,8 +4636,8 @@ var _TransactionUtil = class {
3983
4636
  }
3984
4637
  }
3985
4638
  const onePath = {
3986
- amountIn: new import_bn13.default(splitPath.inputAmount.toString()),
3987
- amountOut: new import_bn13.default(splitPath.outputAmount.toString()),
4639
+ amountIn: new import_bn15.default(splitPath.inputAmount.toString()),
4640
+ amountOut: new import_bn15.default(splitPath.outputAmount.toString()),
3988
4641
  poolAddress,
3989
4642
  a2b,
3990
4643
  rawAmountLimit,
@@ -4341,9 +4994,9 @@ var TxBlock = class {
4341
4994
  };
4342
4995
 
4343
4996
  // src/utils/deepbook-utils.ts
4344
- var import_bn14 = __toESM(require("bn.js"));
4997
+ var import_bn16 = __toESM(require("bn.js"));
4345
4998
  var import_transactions3 = require("@mysten/sui/transactions");
4346
- var FLOAT_SCALING = new import_bn14.default(1e9);
4999
+ var FLOAT_SCALING = new import_bn16.default(1e9);
4347
5000
  var DeepbookUtils = class {
4348
5001
  static createAccountCap(senderAddress, sdkOptions, tx, isTransfer = false) {
4349
5002
  if (senderAddress.length === 0) {
@@ -4489,9 +5142,9 @@ var DeepbookUtils = class {
4489
5142
  static async preSwap(sdk, pool, a2b, amountIn) {
4490
5143
  let isExceed = false;
4491
5144
  let amountOut = ZERO;
4492
- let remainAmount = new import_bn14.default(amountIn);
5145
+ let remainAmount = new import_bn16.default(amountIn);
4493
5146
  let feeAmount = ZERO;
4494
- const initAmountIn = new import_bn14.default(amountIn);
5147
+ const initAmountIn = new import_bn16.default(amountIn);
4495
5148
  if (a2b) {
4496
5149
  let bids = await this.getPoolBids(sdk, pool.poolID, pool.baseAsset, pool.quoteAsset);
4497
5150
  if (bids === null) {
@@ -4501,16 +5154,16 @@ var DeepbookUtils = class {
4501
5154
  return b.price - a.price;
4502
5155
  });
4503
5156
  for (let i = 0; i < bids.length; i += 1) {
4504
- const curBidAmount = new import_bn14.default(bids[i].quantity);
4505
- const curBidPrice = new import_bn14.default(bids[i].price);
4506
- const fee = curBidAmount.mul(new import_bn14.default(curBidPrice)).mul(new import_bn14.default(pool.takerFeeRate)).div(FLOAT_SCALING).div(FLOAT_SCALING);
5157
+ const curBidAmount = new import_bn16.default(bids[i].quantity);
5158
+ const curBidPrice = new import_bn16.default(bids[i].price);
5159
+ const fee = curBidAmount.mul(new import_bn16.default(curBidPrice)).mul(new import_bn16.default(pool.takerFeeRate)).div(FLOAT_SCALING).div(FLOAT_SCALING);
4507
5160
  if (remainAmount.gt(curBidAmount)) {
4508
5161
  remainAmount = remainAmount.sub(curBidAmount);
4509
5162
  amountOut = amountOut.add(curBidAmount.mul(curBidPrice).div(FLOAT_SCALING).sub(fee));
4510
5163
  feeAmount = feeAmount.add(fee);
4511
5164
  } else {
4512
- const curOut = remainAmount.mul(new import_bn14.default(bids[i].price)).div(FLOAT_SCALING);
4513
- const curFee = curOut.mul(new import_bn14.default(pool.takerFeeRate)).div(FLOAT_SCALING);
5165
+ const curOut = remainAmount.mul(new import_bn16.default(bids[i].price)).div(FLOAT_SCALING);
5166
+ const curFee = curOut.mul(new import_bn16.default(pool.takerFeeRate)).div(FLOAT_SCALING);
4514
5167
  amountOut = amountOut.add(curOut.sub(curFee));
4515
5168
  remainAmount = remainAmount.sub(remainAmount);
4516
5169
  feeAmount = feeAmount.add(curFee);
@@ -4525,15 +5178,15 @@ var DeepbookUtils = class {
4525
5178
  isExceed = true;
4526
5179
  }
4527
5180
  for (let i = 0; i < asks.length; i += 1) {
4528
- const curAskAmount = new import_bn14.default(asks[i].price).mul(new import_bn14.default(asks[i].quantity)).div(new import_bn14.default(1e9));
4529
- const fee = curAskAmount.mul(new import_bn14.default(pool.takerFeeRate)).div(FLOAT_SCALING);
5181
+ const curAskAmount = new import_bn16.default(asks[i].price).mul(new import_bn16.default(asks[i].quantity)).div(new import_bn16.default(1e9));
5182
+ const fee = curAskAmount.mul(new import_bn16.default(pool.takerFeeRate)).div(FLOAT_SCALING);
4530
5183
  const curAskAmountWithFee = curAskAmount.add(fee);
4531
5184
  if (remainAmount.gt(curAskAmount)) {
4532
- amountOut = amountOut.add(new import_bn14.default(asks[i].quantity));
5185
+ amountOut = amountOut.add(new import_bn16.default(asks[i].quantity));
4533
5186
  remainAmount = remainAmount.sub(curAskAmountWithFee);
4534
5187
  feeAmount = feeAmount.add(fee);
4535
5188
  } else {
4536
- const splitNums = new import_bn14.default(asks[i].quantity).div(new import_bn14.default(pool.lotSize));
5189
+ const splitNums = new import_bn16.default(asks[i].quantity).div(new import_bn16.default(pool.lotSize));
4537
5190
  const splitAmount = curAskAmountWithFee.div(splitNums);
4538
5191
  const swapSplitNum = remainAmount.div(splitAmount);
4539
5192
  amountOut = amountOut.add(swapSplitNum.muln(pool.lotSize));
@@ -5394,7 +6047,7 @@ var PoolModule = class {
5394
6047
  };
5395
6048
 
5396
6049
  // src/modules/positionModule.ts
5397
- var import_bn15 = __toESM(require("bn.js"));
6050
+ var import_bn17 = __toESM(require("bn.js"));
5398
6051
  var import_transactions5 = require("@mysten/sui/transactions");
5399
6052
  var import_utils15 = require("@mysten/sui/utils");
5400
6053
  var PositionModule = class {
@@ -5616,8 +6269,8 @@ var PositionModule = class {
5616
6269
  for (let i = 0; i < valueData.length; i += 1) {
5617
6270
  const { parsedJson } = valueData[i];
5618
6271
  const posRrewarderResult = {
5619
- feeOwedA: new import_bn15.default(parsedJson.fee_owned_a),
5620
- feeOwedB: new import_bn15.default(parsedJson.fee_owned_b),
6272
+ feeOwedA: new import_bn17.default(parsedJson.fee_owned_a),
6273
+ feeOwedB: new import_bn17.default(parsedJson.fee_owned_b),
5621
6274
  position_id: parsedJson.position_id
5622
6275
  };
5623
6276
  result.push(posRrewarderResult);
@@ -5993,7 +6646,7 @@ var PositionModule = class {
5993
6646
  };
5994
6647
 
5995
6648
  // src/modules/rewarderModule.ts
5996
- var import_bn16 = __toESM(require("bn.js"));
6649
+ var import_bn18 = __toESM(require("bn.js"));
5997
6650
  var import_transactions6 = require("@mysten/sui/transactions");
5998
6651
  var RewarderModule = class {
5999
6652
  _sdk;
@@ -6019,7 +6672,7 @@ var RewarderModule = class {
6019
6672
  }
6020
6673
  const emissionsEveryDay = [];
6021
6674
  for (const rewarderInfo of rewarderInfos) {
6022
- const emissionSeconds = MathUtil.fromX64(new import_bn16.default(rewarderInfo.emissions_per_second));
6675
+ const emissionSeconds = MathUtil.fromX64(new import_bn18.default(rewarderInfo.emissions_per_second));
6023
6676
  emissionsEveryDay.push({
6024
6677
  emissions: Math.floor(emissionSeconds.toNumber() * 60 * 60 * 24),
6025
6678
  coin_address: rewarderInfo.coinAddress
@@ -6038,20 +6691,20 @@ var RewarderModule = class {
6038
6691
  const currentPool = await this.sdk.Pool.getPool(poolID);
6039
6692
  const lastTime = currentPool.rewarder_last_updated_time;
6040
6693
  currentPool.rewarder_last_updated_time = currentTime.toString();
6041
- if (Number(currentPool.liquidity) === 0 || currentTime.eq(new import_bn16.default(lastTime))) {
6694
+ if (Number(currentPool.liquidity) === 0 || currentTime.eq(new import_bn18.default(lastTime))) {
6042
6695
  return currentPool;
6043
6696
  }
6044
- const timeDelta = currentTime.div(new import_bn16.default(1e3)).sub(new import_bn16.default(lastTime)).add(new import_bn16.default(15));
6697
+ const timeDelta = currentTime.div(new import_bn18.default(1e3)).sub(new import_bn18.default(lastTime)).add(new import_bn18.default(15));
6045
6698
  const rewarderInfos = currentPool.rewarder_infos;
6046
6699
  for (let i = 0; i < rewarderInfos.length; i += 1) {
6047
6700
  const rewarderInfo = rewarderInfos[i];
6048
6701
  const rewarderGrowthDelta = MathUtil.checkMulDivFloor(
6049
6702
  timeDelta,
6050
- new import_bn16.default(rewarderInfo.emissions_per_second),
6051
- new import_bn16.default(currentPool.liquidity),
6703
+ new import_bn18.default(rewarderInfo.emissions_per_second),
6704
+ new import_bn18.default(currentPool.liquidity),
6052
6705
  128
6053
6706
  );
6054
- this.growthGlobal[i] = new import_bn16.default(rewarderInfo.growth_global).add(new import_bn16.default(rewarderGrowthDelta));
6707
+ this.growthGlobal[i] = new import_bn18.default(rewarderInfo.growth_global).add(new import_bn18.default(rewarderGrowthDelta));
6055
6708
  }
6056
6709
  return currentPool;
6057
6710
  }
@@ -6066,7 +6719,7 @@ var RewarderModule = class {
6066
6719
  */
6067
6720
  async posRewardersAmount(poolID, positionHandle, positionID) {
6068
6721
  const currentTime = Date.parse((/* @__PURE__ */ new Date()).toString());
6069
- const pool = await this.updatePoolRewarder(poolID, new import_bn16.default(currentTime));
6722
+ const pool = await this.updatePoolRewarder(poolID, new import_bn18.default(currentTime));
6070
6723
  const position = await this.sdk.Position.getPositionRewarders(positionHandle, positionID);
6071
6724
  if (position === void 0) {
6072
6725
  return [];
@@ -6087,7 +6740,7 @@ var RewarderModule = class {
6087
6740
  */
6088
6741
  async poolRewardersAmount(accountAddress, poolID) {
6089
6742
  const currentTime = Date.parse((/* @__PURE__ */ new Date()).toString());
6090
- const pool = await this.updatePoolRewarder(poolID, new import_bn16.default(currentTime));
6743
+ const pool = await this.updatePoolRewarder(poolID, new import_bn18.default(currentTime));
6091
6744
  const positions = await this.sdk.Position.getPositionList(accountAddress, [poolID]);
6092
6745
  const tickDatas = await this.getPoolLowerAndUpperTicks(pool.ticks_handle, positions);
6093
6746
  const rewarderAmount = [ZERO, ZERO, ZERO];
@@ -6114,38 +6767,38 @@ var RewarderModule = class {
6114
6767
  const growthInside = [];
6115
6768
  const AmountOwed = [];
6116
6769
  if (rewardersInside.length > 0) {
6117
- let growthDelta0 = MathUtil.subUnderflowU128(rewardersInside[0], new import_bn16.default(position.reward_growth_inside_0));
6118
- if (growthDelta0.gt(new import_bn16.default("3402823669209384634633745948738404"))) {
6770
+ let growthDelta0 = MathUtil.subUnderflowU128(rewardersInside[0], new import_bn18.default(position.reward_growth_inside_0));
6771
+ if (growthDelta0.gt(new import_bn18.default("3402823669209384634633745948738404"))) {
6119
6772
  growthDelta0 = ONE;
6120
6773
  }
6121
- const amountOwed_0 = MathUtil.checkMulShiftRight(new import_bn16.default(position.liquidity), growthDelta0, 64, 128);
6774
+ const amountOwed_0 = MathUtil.checkMulShiftRight(new import_bn18.default(position.liquidity), growthDelta0, 64, 128);
6122
6775
  growthInside.push(rewardersInside[0]);
6123
6776
  AmountOwed.push({
6124
- amount_owed: new import_bn16.default(position.reward_amount_owed_0).add(amountOwed_0),
6777
+ amount_owed: new import_bn18.default(position.reward_amount_owed_0).add(amountOwed_0),
6125
6778
  coin_address: pool.rewarder_infos[0].coinAddress
6126
6779
  });
6127
6780
  }
6128
6781
  if (rewardersInside.length > 1) {
6129
- let growthDelta_1 = MathUtil.subUnderflowU128(rewardersInside[1], new import_bn16.default(position.reward_growth_inside_1));
6130
- if (growthDelta_1.gt(new import_bn16.default("3402823669209384634633745948738404"))) {
6782
+ let growthDelta_1 = MathUtil.subUnderflowU128(rewardersInside[1], new import_bn18.default(position.reward_growth_inside_1));
6783
+ if (growthDelta_1.gt(new import_bn18.default("3402823669209384634633745948738404"))) {
6131
6784
  growthDelta_1 = ONE;
6132
6785
  }
6133
- const amountOwed_1 = MathUtil.checkMulShiftRight(new import_bn16.default(position.liquidity), growthDelta_1, 64, 128);
6786
+ const amountOwed_1 = MathUtil.checkMulShiftRight(new import_bn18.default(position.liquidity), growthDelta_1, 64, 128);
6134
6787
  growthInside.push(rewardersInside[1]);
6135
6788
  AmountOwed.push({
6136
- amount_owed: new import_bn16.default(position.reward_amount_owed_1).add(amountOwed_1),
6789
+ amount_owed: new import_bn18.default(position.reward_amount_owed_1).add(amountOwed_1),
6137
6790
  coin_address: pool.rewarder_infos[1].coinAddress
6138
6791
  });
6139
6792
  }
6140
6793
  if (rewardersInside.length > 2) {
6141
- let growthDelta_2 = MathUtil.subUnderflowU128(rewardersInside[2], new import_bn16.default(position.reward_growth_inside_2));
6142
- if (growthDelta_2.gt(new import_bn16.default("3402823669209384634633745948738404"))) {
6794
+ let growthDelta_2 = MathUtil.subUnderflowU128(rewardersInside[2], new import_bn18.default(position.reward_growth_inside_2));
6795
+ if (growthDelta_2.gt(new import_bn18.default("3402823669209384634633745948738404"))) {
6143
6796
  growthDelta_2 = ONE;
6144
6797
  }
6145
- const amountOwed_2 = MathUtil.checkMulShiftRight(new import_bn16.default(position.liquidity), growthDelta_2, 64, 128);
6798
+ const amountOwed_2 = MathUtil.checkMulShiftRight(new import_bn18.default(position.liquidity), growthDelta_2, 64, 128);
6146
6799
  growthInside.push(rewardersInside[2]);
6147
6800
  AmountOwed.push({
6148
- amount_owed: new import_bn16.default(position.reward_amount_owed_2).add(amountOwed_2),
6801
+ amount_owed: new import_bn18.default(position.reward_amount_owed_2).add(amountOwed_2),
6149
6802
  coin_address: pool.rewarder_infos[2].coinAddress
6150
6803
  });
6151
6804
  }
@@ -6259,8 +6912,8 @@ var RewarderModule = class {
6259
6912
  for (let i = 0; i < valueData.length; i += 1) {
6260
6913
  const { parsedJson } = valueData[i];
6261
6914
  const posRrewarderResult = {
6262
- feeOwedA: new import_bn16.default(parsedJson.fee_owned_a),
6263
- feeOwedB: new import_bn16.default(parsedJson.fee_owned_b),
6915
+ feeOwedA: new import_bn18.default(parsedJson.fee_owned_a),
6916
+ feeOwedB: new import_bn18.default(parsedJson.fee_owned_b),
6264
6917
  position_id: parsedJson.position_id
6265
6918
  };
6266
6919
  result.push(posRrewarderResult);
@@ -6323,7 +6976,7 @@ var RewarderModule = class {
6323
6976
  };
6324
6977
  for (let j = 0; j < params[i].rewarderInfo.length; j += 1) {
6325
6978
  posRrewarderResult.rewarderAmountOwed.push({
6326
- amount_owed: new import_bn16.default(valueData[i].parsedJson.data[j]),
6979
+ amount_owed: new import_bn18.default(valueData[i].parsedJson.data[j]),
6327
6980
  coin_address: params[i].rewarderInfo[j].coinAddress
6328
6981
  });
6329
6982
  }
@@ -6512,7 +7165,7 @@ var RewarderModule = class {
6512
7165
  };
6513
7166
 
6514
7167
  // src/modules/routerModule.ts
6515
- var import_bn17 = __toESM(require("bn.js"));
7168
+ var import_bn19 = __toESM(require("bn.js"));
6516
7169
  var import_cc_graph = require("@syntsugar/cc-graph");
6517
7170
  var import_transactions7 = require("@mysten/sui/transactions");
6518
7171
  function _pairSymbol(base, quote) {
@@ -6794,8 +7447,8 @@ var RouterModule = class {
6794
7447
  if (swapWithMultiPoolParams != null) {
6795
7448
  const preSwapResult2 = await this.sdk.Swap.preSwapWithMultiPool(swapWithMultiPoolParams);
6796
7449
  const onePath2 = {
6797
- amountIn: new import_bn17.default(preSwapResult2.estimatedAmountIn),
6798
- amountOut: new import_bn17.default(preSwapResult2.estimatedAmountOut),
7450
+ amountIn: new import_bn19.default(preSwapResult2.estimatedAmountIn),
7451
+ amountOut: new import_bn19.default(preSwapResult2.estimatedAmountOut),
6799
7452
  poolAddress: [preSwapResult2.poolAddress],
6800
7453
  a2b: [preSwapResult2.aToB],
6801
7454
  rawAmountLimit: byAmountIn ? [preSwapResult2.estimatedAmountOut] : [preSwapResult2.estimatedAmountIn],
@@ -6808,8 +7461,8 @@ var RouterModule = class {
6808
7461
  priceSlippagePoint
6809
7462
  };
6810
7463
  const result2 = {
6811
- amountIn: new import_bn17.default(preSwapResult2.estimatedAmountIn),
6812
- amountOut: new import_bn17.default(preSwapResult2.estimatedAmountOut),
7464
+ amountIn: new import_bn19.default(preSwapResult2.estimatedAmountIn),
7465
+ amountOut: new import_bn19.default(preSwapResult2.estimatedAmountOut),
6813
7466
  paths: [onePath2],
6814
7467
  a2b: preSwapResult2.aToB,
6815
7468
  b2c: void 0,
@@ -6831,8 +7484,8 @@ var RouterModule = class {
6831
7484
  if (swapWithMultiPoolParams != null) {
6832
7485
  const preSwapResult2 = await this.sdk.Swap.preSwapWithMultiPool(swapWithMultiPoolParams);
6833
7486
  const onePath2 = {
6834
- amountIn: new import_bn17.default(preSwapResult2.estimatedAmountIn),
6835
- amountOut: new import_bn17.default(preSwapResult2.estimatedAmountOut),
7487
+ amountIn: new import_bn19.default(preSwapResult2.estimatedAmountIn),
7488
+ amountOut: new import_bn19.default(preSwapResult2.estimatedAmountOut),
6836
7489
  poolAddress: [preSwapResult2.poolAddress],
6837
7490
  a2b: [preSwapResult2.aToB],
6838
7491
  rawAmountLimit: byAmountIn ? [preSwapResult2.estimatedAmountOut] : [preSwapResult2.estimatedAmountIn],
@@ -6845,8 +7498,8 @@ var RouterModule = class {
6845
7498
  priceSlippagePoint
6846
7499
  };
6847
7500
  const result3 = {
6848
- amountIn: new import_bn17.default(preSwapResult2.estimatedAmountIn),
6849
- amountOut: new import_bn17.default(preSwapResult2.estimatedAmountOut),
7501
+ amountIn: new import_bn19.default(preSwapResult2.estimatedAmountIn),
7502
+ amountOut: new import_bn19.default(preSwapResult2.estimatedAmountOut),
6850
7503
  paths: [onePath2],
6851
7504
  a2b: preSwapResult2.aToB,
6852
7505
  b2c: void 0,
@@ -6927,8 +7580,8 @@ var RouterModule = class {
6927
7580
  if (swapWithMultiPoolParams != null) {
6928
7581
  const preSwapResult = await this.sdk.Swap.preSwapWithMultiPool(swapWithMultiPoolParams);
6929
7582
  const onePath = {
6930
- amountIn: new import_bn17.default(preSwapResult.estimatedAmountIn),
6931
- amountOut: new import_bn17.default(preSwapResult.estimatedAmountOut),
7583
+ amountIn: new import_bn19.default(preSwapResult.estimatedAmountIn),
7584
+ amountOut: new import_bn19.default(preSwapResult.estimatedAmountOut),
6932
7585
  poolAddress: [preSwapResult.poolAddress],
6933
7586
  a2b: [preSwapResult.aToB],
6934
7587
  rawAmountLimit: byAmountIn ? [preSwapResult.estimatedAmountOut] : [preSwapResult.estimatedAmountIn],
@@ -6941,8 +7594,8 @@ var RouterModule = class {
6941
7594
  priceSlippagePoint
6942
7595
  };
6943
7596
  const result = {
6944
- amountIn: new import_bn17.default(preSwapResult.estimatedAmountIn),
6945
- amountOut: new import_bn17.default(preSwapResult.estimatedAmountOut),
7597
+ amountIn: new import_bn19.default(preSwapResult.estimatedAmountIn),
7598
+ amountOut: new import_bn19.default(preSwapResult.estimatedAmountOut),
6946
7599
  paths: [onePath],
6947
7600
  a2b: preSwapResult.aToB,
6948
7601
  b2c: void 0,
@@ -7026,13 +7679,13 @@ var RouterModule = class {
7026
7679
  continue;
7027
7680
  }
7028
7681
  if (params[0].byAmountIn) {
7029
- const amount = new import_bn17.default(valueData[i].parsedJson.data.amount_out);
7682
+ const amount = new import_bn19.default(valueData[i].parsedJson.data.amount_out);
7030
7683
  if (amount.gt(tempMaxAmount)) {
7031
7684
  tempIndex = i;
7032
7685
  tempMaxAmount = amount;
7033
7686
  }
7034
7687
  } else {
7035
- const amount = params[i].stepNums > 1 ? new import_bn17.default(valueData[i].parsedJson.data.amount_in) : new import_bn17.default(valueData[i].parsedJson.data.amount_in).add(new import_bn17.default(valueData[i].parsedJson.data.fee_amount));
7688
+ const amount = params[i].stepNums > 1 ? new import_bn19.default(valueData[i].parsedJson.data.amount_in) : new import_bn19.default(valueData[i].parsedJson.data.amount_in).add(new import_bn19.default(valueData[i].parsedJson.data.fee_amount));
7036
7689
  if (amount.lt(tempMaxAmount)) {
7037
7690
  tempIndex = i;
7038
7691
  tempMaxAmount = amount;
@@ -7102,8 +7755,8 @@ var RouterModule = class {
7102
7755
  };
7103
7756
 
7104
7757
  // src/modules/swapModule.ts
7105
- var import_bn18 = __toESM(require("bn.js"));
7106
- var import_decimal8 = __toESM(require("decimal.js"));
7758
+ var import_bn20 = __toESM(require("bn.js"));
7759
+ var import_decimal10 = __toESM(require("decimal.js"));
7107
7760
  var import_transactions8 = require("@mysten/sui/transactions");
7108
7761
  var AMM_SWAP_MODULE = "amm_swap";
7109
7762
  var POOL_STRUCT = "Pool";
@@ -7121,14 +7774,14 @@ var SwapModule = class {
7121
7774
  const pathCount = item.basePaths.length;
7122
7775
  if (pathCount > 0) {
7123
7776
  const path = item.basePaths[0];
7124
- const feeRate = path.label === "Magma" ? new import_decimal8.default(path.feeRate).div(10 ** 6) : new import_decimal8.default(path.feeRate).div(10 ** 9);
7777
+ const feeRate = path.label === "Magma" ? new import_decimal10.default(path.feeRate).div(10 ** 6) : new import_decimal10.default(path.feeRate).div(10 ** 9);
7125
7778
  const feeAmount = d(path.inputAmount).div(10 ** path.fromDecimal).mul(feeRate);
7126
7779
  fee = fee.add(feeAmount);
7127
7780
  if (pathCount > 1) {
7128
7781
  const path2 = item.basePaths[1];
7129
- const price1 = path.direction ? path.currentPrice : new import_decimal8.default(1).div(path.currentPrice);
7130
- const price2 = path2.direction ? path2.currentPrice : new import_decimal8.default(1).div(path2.currentPrice);
7131
- const feeRate2 = path2.label === "Magma" ? new import_decimal8.default(path2.feeRate).div(10 ** 6) : new import_decimal8.default(path2.feeRate).div(10 ** 9);
7782
+ const price1 = path.direction ? path.currentPrice : new import_decimal10.default(1).div(path.currentPrice);
7783
+ const price2 = path2.direction ? path2.currentPrice : new import_decimal10.default(1).div(path2.currentPrice);
7784
+ const feeRate2 = path2.label === "Magma" ? new import_decimal10.default(path2.feeRate).div(10 ** 6) : new import_decimal10.default(path2.feeRate).div(10 ** 9);
7132
7785
  const feeAmount2 = d(path2.outputAmount).div(10 ** path2.toDecimal).mul(feeRate2);
7133
7786
  const fee2 = feeAmount2.div(price1.mul(price2));
7134
7787
  fee = fee.add(fee2);
@@ -7146,17 +7799,17 @@ var SwapModule = class {
7146
7799
  const outputAmount = d(path.outputAmount).div(10 ** path.toDecimal);
7147
7800
  const inputAmount = d(path.inputAmount).div(10 ** path.fromDecimal);
7148
7801
  const rate = outputAmount.div(inputAmount);
7149
- const cprice = path.direction ? new import_decimal8.default(path.currentPrice) : new import_decimal8.default(1).div(path.currentPrice);
7802
+ const cprice = path.direction ? new import_decimal10.default(path.currentPrice) : new import_decimal10.default(1).div(path.currentPrice);
7150
7803
  impactValue = impactValue.add(this.calculateSingleImpact(rate, cprice));
7151
7804
  }
7152
7805
  if (pathCount === 2) {
7153
7806
  const path = item.basePaths[0];
7154
7807
  const path2 = item.basePaths[1];
7155
- const cprice1 = path.direction ? new import_decimal8.default(path.currentPrice) : new import_decimal8.default(1).div(path.currentPrice);
7156
- const cprice2 = path2.direction ? new import_decimal8.default(path2.currentPrice) : new import_decimal8.default(1).div(path2.currentPrice);
7808
+ const cprice1 = path.direction ? new import_decimal10.default(path.currentPrice) : new import_decimal10.default(1).div(path.currentPrice);
7809
+ const cprice2 = path2.direction ? new import_decimal10.default(path2.currentPrice) : new import_decimal10.default(1).div(path2.currentPrice);
7157
7810
  const cprice = cprice1.mul(cprice2);
7158
- const outputAmount = new import_decimal8.default(path2.outputAmount).div(10 ** path2.toDecimal);
7159
- const inputAmount = new import_decimal8.default(path.inputAmount).div(10 ** path.fromDecimal);
7811
+ const outputAmount = new import_decimal10.default(path2.outputAmount).div(10 ** path2.toDecimal);
7812
+ const inputAmount = new import_decimal10.default(path.inputAmount).div(10 ** path.fromDecimal);
7160
7813
  const rate = outputAmount.div(inputAmount);
7161
7814
  impactValue = impactValue.add(this.calculateSingleImpact(rate, cprice));
7162
7815
  }
@@ -7218,13 +7871,13 @@ var SwapModule = class {
7218
7871
  continue;
7219
7872
  }
7220
7873
  if (params.byAmountIn) {
7221
- const amount = new import_bn18.default(valueData[i].parsedJson.data.amount_out);
7874
+ const amount = new import_bn20.default(valueData[i].parsedJson.data.amount_out);
7222
7875
  if (amount.gt(tempMaxAmount)) {
7223
7876
  tempIndex = i;
7224
7877
  tempMaxAmount = amount;
7225
7878
  }
7226
7879
  } else {
7227
- const amount = new import_bn18.default(valueData[i].parsedJson.data.amount_out);
7880
+ const amount = new import_bn20.default(valueData[i].parsedJson.data.amount_out);
7228
7881
  if (amount.lt(tempMaxAmount)) {
7229
7882
  tempIndex = i;
7230
7883
  tempMaxAmount = amount;
@@ -7288,7 +7941,7 @@ var SwapModule = class {
7288
7941
  return this.transformSwapData(params, valueData[0].parsedJson.data);
7289
7942
  }
7290
7943
  transformSwapData(params, data) {
7291
- const estimatedAmountIn = data.amount_in && data.fee_amount ? new import_bn18.default(data.amount_in).add(new import_bn18.default(data.fee_amount)).toString() : "";
7944
+ const estimatedAmountIn = data.amount_in && data.fee_amount ? new import_bn20.default(data.amount_in).add(new import_bn20.default(data.fee_amount)).toString() : "";
7292
7945
  return {
7293
7946
  poolAddress: params.pool.poolAddress,
7294
7947
  currentSqrtPrice: params.currentSqrtPrice,
@@ -7305,7 +7958,7 @@ var SwapModule = class {
7305
7958
  transformSwapWithMultiPoolData(params, jsonData) {
7306
7959
  const { data } = jsonData;
7307
7960
  console.log("json data. ", data);
7308
- const estimatedAmountIn = data.amount_in && data.fee_amount ? new import_bn18.default(data.amount_in).add(new import_bn18.default(data.fee_amount)).toString() : "";
7961
+ const estimatedAmountIn = data.amount_in && data.fee_amount ? new import_bn20.default(data.amount_in).add(new import_bn20.default(data.fee_amount)).toString() : "";
7309
7962
  return {
7310
7963
  poolAddress: params.poolAddress,
7311
7964
  estimatedAmountIn,
@@ -8818,8 +9471,8 @@ var TokenModule = class {
8818
9471
  };
8819
9472
 
8820
9473
  // src/modules/routerModuleV2.ts
8821
- var import_bn19 = __toESM(require("bn.js"));
8822
- var import_decimal9 = __toESM(require("decimal.js"));
9474
+ var import_bn21 = __toESM(require("bn.js"));
9475
+ var import_decimal11 = __toESM(require("decimal.js"));
8823
9476
  var import_uuid = require("uuid");
8824
9477
  var import_axios = __toESM(require("axios"));
8825
9478
  var RouterModuleV2 = class {
@@ -8836,7 +9489,7 @@ var RouterModuleV2 = class {
8836
9489
  if (label === "Magma") {
8837
9490
  return TickMath.sqrtPriceX64ToPrice(currentSqrtPrice, decimalA, decimalB);
8838
9491
  }
8839
- return new import_decimal9.default(currentSqrtPrice.toString()).div(new import_decimal9.default(10).pow(new import_decimal9.default(decimalB + 9 - decimalA)));
9492
+ return new import_decimal11.default(currentSqrtPrice.toString()).div(new import_decimal11.default(10).pow(new import_decimal11.default(decimalB + 9 - decimalA)));
8840
9493
  }
8841
9494
  parseJsonResult(data) {
8842
9495
  const result = {
@@ -8862,12 +9515,12 @@ var RouterModuleV2 = class {
8862
9515
  outputAmount: basePath.output_amount,
8863
9516
  inputAmount: basePath.input_amount,
8864
9517
  feeRate: basePath.fee_rate,
8865
- currentSqrtPrice: new import_bn19.default(basePath.current_sqrt_price.toString()),
8866
- afterSqrtPrice: basePath.label === "Magma" ? new import_bn19.default(basePath.after_sqrt_price.toString()) : ZERO,
9518
+ currentSqrtPrice: new import_bn21.default(basePath.current_sqrt_price.toString()),
9519
+ afterSqrtPrice: basePath.label === "Magma" ? new import_bn21.default(basePath.after_sqrt_price.toString()) : ZERO,
8867
9520
  fromDecimal: basePath.from_decimal,
8868
9521
  toDecimal: basePath.to_decimal,
8869
9522
  currentPrice: this.calculatePrice(
8870
- new import_bn19.default(basePath.current_sqrt_price.toString()),
9523
+ new import_bn21.default(basePath.current_sqrt_price.toString()),
8871
9524
  basePath.from_decimal,
8872
9525
  basePath.to_decimal,
8873
9526
  basePath.direction,
@@ -8950,7 +9603,7 @@ var RouterModuleV2 = class {
8950
9603
  const priceResult = await this.sdk.Router.priceUseV1(
8951
9604
  from,
8952
9605
  to,
8953
- new import_bn19.default(amount),
9606
+ new import_bn21.default(amount),
8954
9607
  byAmountIn,
8955
9608
  priceSplitPoint,
8956
9609
  partner,
@@ -8962,7 +9615,7 @@ var RouterModuleV2 = class {
8962
9615
  if (path.poolAddress.length > 1) {
8963
9616
  const fromDecimal0 = this.sdk.Router.tokenInfo(path.coinType[0]).decimals;
8964
9617
  const toDecimal0 = this.sdk.Router.tokenInfo(path.coinType[1]).decimals;
8965
- const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), fromDecimal0, toDecimal0) : TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), toDecimal0, fromDecimal0);
9618
+ const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), fromDecimal0, toDecimal0) : TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), toDecimal0, fromDecimal0);
8966
9619
  const path0 = {
8967
9620
  direction: path.a2b[0],
8968
9621
  label: "Magma",
@@ -8979,7 +9632,7 @@ var RouterModuleV2 = class {
8979
9632
  };
8980
9633
  const fromDecimal1 = this.sdk.Router.tokenInfo(path.coinType[1]).decimals;
8981
9634
  const toDecimal1 = this.sdk.Router.tokenInfo(path.coinType[2]).decimals;
8982
- const currentPrice1 = path.a2b[1] ? TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[1]), fromDecimal1, toDecimal1) : TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[1]), toDecimal1, fromDecimal1);
9635
+ const currentPrice1 = path.a2b[1] ? TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[1]), fromDecimal1, toDecimal1) : TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[1]), toDecimal1, fromDecimal1);
8983
9636
  const path1 = {
8984
9637
  direction: path.a2b[1],
8985
9638
  label: "Magma",
@@ -8998,7 +9651,7 @@ var RouterModuleV2 = class {
8998
9651
  } else {
8999
9652
  const fromDecimal = this.sdk.Router.tokenInfo(path.coinType[0]).decimals;
9000
9653
  const toDecimal = this.sdk.Router.tokenInfo(path.coinType[1]).decimals;
9001
- const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), fromDecimal, toDecimal) : TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), toDecimal, fromDecimal);
9654
+ const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), fromDecimal, toDecimal) : TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), toDecimal, fromDecimal);
9002
9655
  const path0 = {
9003
9656
  direction: path.a2b[0],
9004
9657
  label: "Magma",
@@ -9083,7 +9736,7 @@ var RouterModuleV2 = class {
9083
9736
  const priceResult = await this.sdk.Router.priceUseV1(
9084
9737
  from,
9085
9738
  to,
9086
- new import_bn19.default(amount),
9739
+ new import_bn21.default(amount),
9087
9740
  byAmountIn,
9088
9741
  priceSplitPoint,
9089
9742
  partner,
@@ -9095,7 +9748,7 @@ var RouterModuleV2 = class {
9095
9748
  if (path.poolAddress.length > 1) {
9096
9749
  const fromDecimal0 = this.sdk.Router.tokenInfo(path.coinType[0]).decimals;
9097
9750
  const toDecimal0 = this.sdk.Router.tokenInfo(path.coinType[1]).decimals;
9098
- const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), fromDecimal0, toDecimal0) : TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), toDecimal0, fromDecimal0);
9751
+ const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), fromDecimal0, toDecimal0) : TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), toDecimal0, fromDecimal0);
9099
9752
  const path0 = {
9100
9753
  direction: path.a2b[0],
9101
9754
  label: "Magma",
@@ -9112,7 +9765,7 @@ var RouterModuleV2 = class {
9112
9765
  };
9113
9766
  const fromDecimal1 = this.sdk.Router.tokenInfo(path.coinType[1]).decimals;
9114
9767
  const toDecimal1 = this.sdk.Router.tokenInfo(path.coinType[2]).decimals;
9115
- const currentPrice1 = path.a2b[1] ? TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[1]), fromDecimal1, toDecimal1) : TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[1]), toDecimal1, fromDecimal1);
9768
+ const currentPrice1 = path.a2b[1] ? TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[1]), fromDecimal1, toDecimal1) : TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[1]), toDecimal1, fromDecimal1);
9116
9769
  const path1 = {
9117
9770
  direction: path.a2b[1],
9118
9771
  label: "Magma",
@@ -9131,7 +9784,7 @@ var RouterModuleV2 = class {
9131
9784
  } else {
9132
9785
  const fromDecimal = this.sdk.Router.tokenInfo(path.coinType[0]).decimals;
9133
9786
  const toDecimal = this.sdk.Router.tokenInfo(path.coinType[1]).decimals;
9134
- const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), fromDecimal, toDecimal) : TickMath.sqrtPriceX64ToPrice(new import_bn19.default(priceResult.currentSqrtPrice[0]), toDecimal, fromDecimal);
9787
+ const currentPrice = path.a2b[0] ? TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), fromDecimal, toDecimal) : TickMath.sqrtPriceX64ToPrice(new import_bn21.default(priceResult.currentSqrtPrice[0]), toDecimal, fromDecimal);
9135
9788
  const path0 = {
9136
9789
  direction: path.a2b[0],
9137
9790
  label: "Magma",
@@ -10053,8 +10706,8 @@ var GaugeModule = class {
10053
10706
 
10054
10707
  // src/modules/dlmm.ts
10055
10708
  var import_transactions12 = require("@mysten/sui/transactions");
10056
- var import_decimal10 = __toESM(require("decimal.js"));
10057
- var import_calc_dlmm = require("@magmaprotocol/calc_dlmm");
10709
+ var import_decimal12 = __toESM(require("decimal.js"));
10710
+ var import_calc_dlmm2 = require("@magmaprotocol/calc_dlmm");
10058
10711
  var DlmmModule = class {
10059
10712
  _sdk;
10060
10713
  constructor(sdk) {
@@ -10126,12 +10779,12 @@ var DlmmModule = class {
10126
10779
  }
10127
10780
  // params price: input (b/(10^b_decimal))/(a/(10^a_decimal))
10128
10781
  price_to_storage_id(price, bin_step, tokenADecimal, tokenBDecimal) {
10129
- const priceDec = new import_decimal10.default(price);
10130
- const tenDec = new import_decimal10.default(10);
10131
- const twoDec = new import_decimal10.default(2);
10782
+ const priceDec = new import_decimal12.default(price);
10783
+ const tenDec = new import_decimal12.default(10);
10784
+ const twoDec = new import_decimal12.default(2);
10132
10785
  const price_x128 = priceDec.mul(tenDec.pow(tokenBDecimal)).div(tenDec.pow(tokenADecimal)).mul(twoDec.pow(128));
10133
- const active_id = (0, import_calc_dlmm.get_real_id_from_price)(price_x128.toFixed(0).toString(), bin_step);
10134
- return (0, import_calc_dlmm.get_storage_id_from_real_id)(active_id);
10786
+ const active_id = (0, import_calc_dlmm2.get_real_id_from_price)(price_x128.toFixed(0).toString(), bin_step);
10787
+ return (0, import_calc_dlmm2.get_storage_id_from_real_id)(active_id);
10135
10788
  }
10136
10789
  // NOTE: x, y should be sorted
10137
10790
  async createPairPayload(params) {
@@ -10842,6 +11495,7 @@ var src_default = MagmaClmmSDK;
10842
11495
  SUI_SYSTEM_STATE_OBJECT_ID,
10843
11496
  SplitSwap,
10844
11497
  SplitUnit,
11498
+ StrategyType,
10845
11499
  SwapDirection,
10846
11500
  SwapModule,
10847
11501
  SwapUtils,
@@ -10863,6 +11517,10 @@ var src_default = MagmaClmmSDK;
10863
11517
  adjustForSlippage,
10864
11518
  asIntN,
10865
11519
  asUintN,
11520
+ autoFillXByStrategy,
11521
+ autoFillXByWeight,
11522
+ autoFillYByStrategy,
11523
+ autoFillYByWeight,
10866
11524
  bufferToHex,
10867
11525
  buildClmmPositionName,
10868
11526
  buildNFT,
@@ -10900,12 +11558,14 @@ var src_default = MagmaClmmSDK;
10900
11558
  getAmountUnfixedDelta,
10901
11559
  getCoinAFromLiquidity,
10902
11560
  getCoinBFromLiquidity,
11561
+ getCoinXYForLiquidity,
10903
11562
  getDefaultSuiInputType,
10904
11563
  getDeltaA,
10905
11564
  getDeltaB,
10906
11565
  getDeltaDownFromOutput,
10907
11566
  getDeltaUpFromInput,
10908
11567
  getFutureTime,
11568
+ getLiquidityAndCoinYByCoinX,
10909
11569
  getLiquidityFromCoinA,
10910
11570
  getLiquidityFromCoinB,
10911
11571
  getLowerSqrtPriceFromCoinA,
@@ -10929,6 +11589,7 @@ var src_default = MagmaClmmSDK;
10929
11589
  getObjectType,
10930
11590
  getObjectVersion,
10931
11591
  getPackagerConfigs,
11592
+ getPriceOfBinByBinId,
10932
11593
  getRewardInTickRange,
10933
11594
  getSuiObjectData,
10934
11595
  getTickDataFromUrlData,
@@ -10952,10 +11613,15 @@ var src_default = MagmaClmmSDK;
10952
11613
  shortAddress,
10953
11614
  shortString,
10954
11615
  tickScore,
11616
+ toAmountAskSide,
11617
+ toAmountBidSide,
11618
+ toAmountBothSide,
11619
+ toAmountsBothSideByStrategy,
10955
11620
  toBuffer,
10956
11621
  toCoinAmount,
10957
11622
  toDecimalsAmount,
10958
11623
  transClmmpoolDataWithoutTicks,
10959
- utf8to16
11624
+ utf8to16,
11625
+ withLiquiditySlippage
10960
11626
  });
10961
11627
  //# sourceMappingURL=index.js.map