@pancakeswap/v3-sdk 3.0.0 → 3.0.1
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/constants.d.ts +36 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.js +73 -9
- package/dist/index.mjs +72 -7
- package/dist/utils/computePoolAddress.d.ts.map +1 -1
- package/dist/utils/feeCalculator.d.ts +4 -4
- package/dist/utils/feeCalculator.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/constants.d.ts
CHANGED
|
@@ -1,13 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* To compute Pool address use DEPLOYER_ADDRESSES instead
|
|
3
|
+
*/
|
|
4
|
+
export declare const FACTORY_ADDRESSES: {
|
|
5
|
+
readonly 1: "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
6
|
+
readonly 5: "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
7
|
+
readonly 56: "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
8
|
+
readonly 97: "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
9
|
+
readonly 42161: "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
10
|
+
readonly 421613: "0xBA40c83026213F9cbc79998752721a0312bdB74a";
|
|
11
|
+
readonly 1101: "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
12
|
+
readonly 1442: "0x2430dbd123BC40f8Be6110065a448C1aA0619Cb1";
|
|
13
|
+
readonly 324: "0x";
|
|
14
|
+
readonly 280: "0x57d01Fbde077C04381a28840A24aCbEeF8314062";
|
|
15
|
+
readonly 59140: "0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E";
|
|
16
|
+
};
|
|
3
17
|
export declare const DEPLOYER_ADDRESSES: {
|
|
4
18
|
readonly 1: "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
5
19
|
readonly 5: "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
6
20
|
readonly 56: "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
7
21
|
readonly 97: "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
22
|
+
readonly 42161: "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
23
|
+
readonly 421613: "0xbC465fbf687e4184103b67Ed86557A8155FA4343";
|
|
24
|
+
readonly 1101: "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
25
|
+
readonly 1442: "0x86808Be3f426C9B4c8C706bCDe29dBC036A1259B";
|
|
26
|
+
readonly 324: "0x";
|
|
27
|
+
readonly 280: "0x71df5b7ea5355180EAb2A54de8aA534016040008";
|
|
28
|
+
readonly 59140: "0xdAecee3C08e953Bd5f89A5Cc90ac560413d709E3";
|
|
8
29
|
};
|
|
9
30
|
export declare const ADDRESS_ZERO = "0x0000000000000000000000000000000000000000";
|
|
10
|
-
export declare const
|
|
31
|
+
export declare const POOL_INIT_CODE_HASHES: {
|
|
32
|
+
readonly 1: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
33
|
+
readonly 5: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
34
|
+
readonly 56: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
35
|
+
readonly 97: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
36
|
+
readonly 42161: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
37
|
+
readonly 421613: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
38
|
+
readonly 1101: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
39
|
+
readonly 1442: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
40
|
+
readonly 324: "0x01001487f1c11a662dda518635f8e1f03a41f505cbf7d981c899ba11bf847a8a";
|
|
41
|
+
readonly 280: "0x01001487f1c11a662dda518635f8e1f03a41f505cbf7d981c899ba11bf847a8a";
|
|
42
|
+
readonly 59140: "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
43
|
+
};
|
|
11
44
|
/**
|
|
12
45
|
* The default factory enabled fee amounts, denominated in hundredths of bips.
|
|
13
46
|
*/
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAae,CAAA;AAI7C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAac,CAAA;AAE7C,eAAO,MAAM,YAAY,+CAA+C,CAAA;AAIxE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;CAaQ,CAAA;AAE1C;;GAEG;AACH,oBAAY,SAAS;IACnB,MAAM,MAAM;IACZ,GAAG,MAAM;IACT,MAAM,OAAO;IACb,IAAI,QAAQ;CACb;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE;KAAG,MAAM,IAAI,SAAS,GAAG,MAAM;CAK1D,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -11,15 +11,51 @@ var invariant9__default = /*#__PURE__*/_interopDefault(invariant9);
|
|
|
11
11
|
|
|
12
12
|
// src/entities/pool.ts
|
|
13
13
|
var FACTORY_ADDRESS = "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
14
|
+
var FACTORY_ADDRESSES = {
|
|
15
|
+
[sdk.ChainId.ETHEREUM]: FACTORY_ADDRESS,
|
|
16
|
+
[sdk.ChainId.GOERLI]: FACTORY_ADDRESS,
|
|
17
|
+
[sdk.ChainId.BSC]: FACTORY_ADDRESS,
|
|
18
|
+
[sdk.ChainId.BSC_TESTNET]: FACTORY_ADDRESS,
|
|
19
|
+
// TODO: new chains
|
|
20
|
+
[sdk.ChainId.ARBITRUM_ONE]: FACTORY_ADDRESS,
|
|
21
|
+
[sdk.ChainId.ARBITRUM_GOERLI]: "0xBA40c83026213F9cbc79998752721a0312bdB74a",
|
|
22
|
+
[sdk.ChainId.POLYGON_ZKEVM]: FACTORY_ADDRESS,
|
|
23
|
+
[sdk.ChainId.POLYGON_ZKEVM_TESTNET]: "0x2430dbd123BC40f8Be6110065a448C1aA0619Cb1",
|
|
24
|
+
[sdk.ChainId.ZKSYNC]: "0x",
|
|
25
|
+
[sdk.ChainId.ZKSYNC_TESTNET]: "0x57d01Fbde077C04381a28840A24aCbEeF8314062",
|
|
26
|
+
[sdk.ChainId.LINEA_TESTNET]: "0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E"
|
|
27
|
+
};
|
|
14
28
|
var DEPLOYER_ADDRESS = "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
15
29
|
var DEPLOYER_ADDRESSES = {
|
|
16
30
|
[sdk.ChainId.ETHEREUM]: DEPLOYER_ADDRESS,
|
|
17
31
|
[sdk.ChainId.GOERLI]: DEPLOYER_ADDRESS,
|
|
18
32
|
[sdk.ChainId.BSC]: DEPLOYER_ADDRESS,
|
|
19
|
-
[sdk.ChainId.BSC_TESTNET]: DEPLOYER_ADDRESS
|
|
33
|
+
[sdk.ChainId.BSC_TESTNET]: DEPLOYER_ADDRESS,
|
|
34
|
+
// TODO: new chains
|
|
35
|
+
[sdk.ChainId.ARBITRUM_ONE]: DEPLOYER_ADDRESS,
|
|
36
|
+
[sdk.ChainId.ARBITRUM_GOERLI]: "0xbC465fbf687e4184103b67Ed86557A8155FA4343",
|
|
37
|
+
[sdk.ChainId.POLYGON_ZKEVM]: DEPLOYER_ADDRESS,
|
|
38
|
+
[sdk.ChainId.POLYGON_ZKEVM_TESTNET]: "0x86808Be3f426C9B4c8C706bCDe29dBC036A1259B",
|
|
39
|
+
[sdk.ChainId.ZKSYNC]: "0x",
|
|
40
|
+
[sdk.ChainId.ZKSYNC_TESTNET]: "0x71df5b7ea5355180EAb2A54de8aA534016040008",
|
|
41
|
+
[sdk.ChainId.LINEA_TESTNET]: "0xdAecee3C08e953Bd5f89A5Cc90ac560413d709E3"
|
|
20
42
|
};
|
|
21
43
|
var ADDRESS_ZERO = "0x0000000000000000000000000000000000000000";
|
|
22
44
|
var POOL_INIT_CODE_HASH = "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
45
|
+
var POOL_INIT_CODE_HASHES = {
|
|
46
|
+
[sdk.ChainId.ETHEREUM]: POOL_INIT_CODE_HASH,
|
|
47
|
+
[sdk.ChainId.GOERLI]: POOL_INIT_CODE_HASH,
|
|
48
|
+
[sdk.ChainId.BSC]: POOL_INIT_CODE_HASH,
|
|
49
|
+
[sdk.ChainId.BSC_TESTNET]: POOL_INIT_CODE_HASH,
|
|
50
|
+
[sdk.ChainId.ARBITRUM_ONE]: POOL_INIT_CODE_HASH,
|
|
51
|
+
[sdk.ChainId.ARBITRUM_GOERLI]: POOL_INIT_CODE_HASH,
|
|
52
|
+
[sdk.ChainId.POLYGON_ZKEVM]: POOL_INIT_CODE_HASH,
|
|
53
|
+
[sdk.ChainId.POLYGON_ZKEVM_TESTNET]: POOL_INIT_CODE_HASH,
|
|
54
|
+
// TODO: new chains
|
|
55
|
+
[sdk.ChainId.ZKSYNC]: "0x01001487f1c11a662dda518635f8e1f03a41f505cbf7d981c899ba11bf847a8a",
|
|
56
|
+
[sdk.ChainId.ZKSYNC_TESTNET]: "0x01001487f1c11a662dda518635f8e1f03a41f505cbf7d981c899ba11bf847a8a",
|
|
57
|
+
[sdk.ChainId.LINEA_TESTNET]: POOL_INIT_CODE_HASH
|
|
58
|
+
};
|
|
23
59
|
var FeeAmount = /* @__PURE__ */ ((FeeAmount4) => {
|
|
24
60
|
FeeAmount4[FeeAmount4["LOWEST"] = 100] = "LOWEST";
|
|
25
61
|
FeeAmount4[FeeAmount4["LOW"] = 500] = "LOW";
|
|
@@ -49,6 +85,13 @@ function getCreate2Address(from_, salt_, initCodeHash) {
|
|
|
49
85
|
});
|
|
50
86
|
return viem.getAddress(viem.slice(viem.keccak256(viem.concat([viem.toBytes("0xff"), from, salt, viem.toBytes(initCodeHash)])), 12));
|
|
51
87
|
}
|
|
88
|
+
var EMPTY_INPU_HASH = "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470";
|
|
89
|
+
var ZKSYNC_PREFIX = "0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494";
|
|
90
|
+
function getCreate2AddressZkSync(from, salt, initCodeHash) {
|
|
91
|
+
return viem.getAddress(
|
|
92
|
+
viem.keccak256(viem.concat([ZKSYNC_PREFIX, viem.pad(from, { size: 32 }), salt, initCodeHash, EMPTY_INPU_HASH])).slice(26)
|
|
93
|
+
);
|
|
94
|
+
}
|
|
52
95
|
function computePoolAddress({
|
|
53
96
|
deployerAddress,
|
|
54
97
|
tokenA,
|
|
@@ -57,12 +100,20 @@ function computePoolAddress({
|
|
|
57
100
|
initCodeHashManualOverride
|
|
58
101
|
}) {
|
|
59
102
|
const [token0, token1] = tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA];
|
|
103
|
+
const salt = viem.keccak256(
|
|
104
|
+
viem.encodeAbiParameters(viem.parseAbiParameters(["address, address, uint24"]), [token0.address, token1.address, fee])
|
|
105
|
+
);
|
|
106
|
+
if (token0.chainId === sdk.ChainId.ZKSYNC || token0.chainId === sdk.ChainId.ZKSYNC_TESTNET) {
|
|
107
|
+
return getCreate2AddressZkSync(
|
|
108
|
+
deployerAddress,
|
|
109
|
+
salt,
|
|
110
|
+
initCodeHashManualOverride ?? POOL_INIT_CODE_HASHES[token0.chainId]
|
|
111
|
+
);
|
|
112
|
+
}
|
|
60
113
|
return getCreate2Address(
|
|
61
114
|
deployerAddress,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
),
|
|
65
|
-
initCodeHashManualOverride ?? POOL_INIT_CODE_HASH
|
|
115
|
+
salt,
|
|
116
|
+
initCodeHashManualOverride ?? POOL_INIT_CODE_HASHES[token0.chainId]
|
|
66
117
|
);
|
|
67
118
|
}
|
|
68
119
|
|
|
@@ -1747,6 +1798,9 @@ function tryGetEstimatedLPFeeByAmounts({
|
|
|
1747
1798
|
tickLower,
|
|
1748
1799
|
sqrtRatioX96
|
|
1749
1800
|
});
|
|
1801
|
+
if (!liquidity) {
|
|
1802
|
+
return new swapSdkCore.Fraction(swapSdkCore.ZERO);
|
|
1803
|
+
}
|
|
1750
1804
|
const volumeInFraction = parseNumberToFraction(volume24H) || new swapSdkCore.Fraction(swapSdkCore.ZERO);
|
|
1751
1805
|
return insidePercentage.multiply(volumeInFraction.multiply(BigInt(fee)).multiply(liquidity)).divide(MAX_FEE * (liquidity + mostActiveLiquidity)).asFraction;
|
|
1752
1806
|
}
|
|
@@ -1756,6 +1810,9 @@ function getDependentAmount(options) {
|
|
|
1756
1810
|
const liquidity = FeeCalculator.getLiquidityBySingleAmount(options);
|
|
1757
1811
|
const isToken0 = currency.wrapped.sortsBefore(amount.currency.wrapped);
|
|
1758
1812
|
const getTokenAmount = isToken0 ? PositionMath.getToken0Amount : PositionMath.getToken1Amount;
|
|
1813
|
+
if (!liquidity) {
|
|
1814
|
+
return void 0;
|
|
1815
|
+
}
|
|
1759
1816
|
return swapSdkCore.CurrencyAmount.fromRawAmount(
|
|
1760
1817
|
currency,
|
|
1761
1818
|
getTokenAmount(currentTick, tickLower, tickUpper, sqrtRatioX96, liquidity)
|
|
@@ -1779,7 +1836,12 @@ function getLiquidityByAmountsAndPrice({
|
|
|
1779
1836
|
const [inputAmount0, inputAmount1] = isToken0 ? [amountA.quotient, amountB.quotient] : [amountB.quotient, amountA.quotient];
|
|
1780
1837
|
const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);
|
|
1781
1838
|
const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);
|
|
1782
|
-
|
|
1839
|
+
try {
|
|
1840
|
+
return maxLiquidityForAmounts(sqrtRatioX96, sqrtRatioAX96, sqrtRatioBX96, inputAmount0, inputAmount1, true);
|
|
1841
|
+
} catch (e) {
|
|
1842
|
+
console.error(e);
|
|
1843
|
+
return void 0;
|
|
1844
|
+
}
|
|
1783
1845
|
}
|
|
1784
1846
|
function getAmountsByLiquidityAndPrice(options) {
|
|
1785
1847
|
const { currencyA, currencyB, liquidity, sqrtRatioX96, tickLower, tickUpper } = options;
|
|
@@ -1795,6 +1857,9 @@ function getAmountsByLiquidityAndPrice(options) {
|
|
|
1795
1857
|
function getAmountsAtNewPrice({ newSqrtRatioX96, ...rest }) {
|
|
1796
1858
|
const { tickLower, tickUpper, amountA, amountB } = rest;
|
|
1797
1859
|
const liquidity = FeeCalculator.getLiquidityByAmountsAndPrice(rest);
|
|
1860
|
+
if (!liquidity) {
|
|
1861
|
+
return void 0;
|
|
1862
|
+
}
|
|
1798
1863
|
return FeeCalculator.getAmountsByLiquidityAndPrice({
|
|
1799
1864
|
liquidity,
|
|
1800
1865
|
currencyA: amountA.currency,
|
|
@@ -6021,9 +6086,8 @@ var MasterChefV3 = _MasterChefV3;
|
|
|
6021
6086
|
MasterChefV3.ABI = masterChefV3ABI;
|
|
6022
6087
|
|
|
6023
6088
|
exports.ADDRESS_ZERO = ADDRESS_ZERO;
|
|
6024
|
-
exports.DEPLOYER_ADDRESS = DEPLOYER_ADDRESS;
|
|
6025
6089
|
exports.DEPLOYER_ADDRESSES = DEPLOYER_ADDRESSES;
|
|
6026
|
-
exports.
|
|
6090
|
+
exports.FACTORY_ADDRESSES = FACTORY_ADDRESSES;
|
|
6027
6091
|
exports.FeeAmount = FeeAmount;
|
|
6028
6092
|
exports.FeeCalculator = FeeCalculator;
|
|
6029
6093
|
exports.FullMath = FullMath;
|
|
@@ -6033,7 +6097,7 @@ exports.MaxUint128 = MaxUint128;
|
|
|
6033
6097
|
exports.Multicall = Multicall;
|
|
6034
6098
|
exports.NoTickDataProvider = NoTickDataProvider;
|
|
6035
6099
|
exports.NonfungiblePositionManager = NonfungiblePositionManager;
|
|
6036
|
-
exports.
|
|
6100
|
+
exports.POOL_INIT_CODE_HASHES = POOL_INIT_CODE_HASHES;
|
|
6037
6101
|
exports.Payments = Payments;
|
|
6038
6102
|
exports.Pool = Pool;
|
|
6039
6103
|
exports.Position = Position;
|
package/dist/index.mjs
CHANGED
|
@@ -5,15 +5,51 @@ import { keccak256, encodeAbiParameters, parseAbiParameters, encodePacked, encod
|
|
|
5
5
|
|
|
6
6
|
// src/entities/pool.ts
|
|
7
7
|
var FACTORY_ADDRESS = "0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865";
|
|
8
|
+
var FACTORY_ADDRESSES = {
|
|
9
|
+
[ChainId.ETHEREUM]: FACTORY_ADDRESS,
|
|
10
|
+
[ChainId.GOERLI]: FACTORY_ADDRESS,
|
|
11
|
+
[ChainId.BSC]: FACTORY_ADDRESS,
|
|
12
|
+
[ChainId.BSC_TESTNET]: FACTORY_ADDRESS,
|
|
13
|
+
// TODO: new chains
|
|
14
|
+
[ChainId.ARBITRUM_ONE]: FACTORY_ADDRESS,
|
|
15
|
+
[ChainId.ARBITRUM_GOERLI]: "0xBA40c83026213F9cbc79998752721a0312bdB74a",
|
|
16
|
+
[ChainId.POLYGON_ZKEVM]: FACTORY_ADDRESS,
|
|
17
|
+
[ChainId.POLYGON_ZKEVM_TESTNET]: "0x2430dbd123BC40f8Be6110065a448C1aA0619Cb1",
|
|
18
|
+
[ChainId.ZKSYNC]: "0x",
|
|
19
|
+
[ChainId.ZKSYNC_TESTNET]: "0x57d01Fbde077C04381a28840A24aCbEeF8314062",
|
|
20
|
+
[ChainId.LINEA_TESTNET]: "0x02a84c1b3BBD7401a5f7fa98a384EBC70bB5749E"
|
|
21
|
+
};
|
|
8
22
|
var DEPLOYER_ADDRESS = "0x41ff9AA7e16B8B1a8a8dc4f0eFacd93D02d071c9";
|
|
9
23
|
var DEPLOYER_ADDRESSES = {
|
|
10
24
|
[ChainId.ETHEREUM]: DEPLOYER_ADDRESS,
|
|
11
25
|
[ChainId.GOERLI]: DEPLOYER_ADDRESS,
|
|
12
26
|
[ChainId.BSC]: DEPLOYER_ADDRESS,
|
|
13
|
-
[ChainId.BSC_TESTNET]: DEPLOYER_ADDRESS
|
|
27
|
+
[ChainId.BSC_TESTNET]: DEPLOYER_ADDRESS,
|
|
28
|
+
// TODO: new chains
|
|
29
|
+
[ChainId.ARBITRUM_ONE]: DEPLOYER_ADDRESS,
|
|
30
|
+
[ChainId.ARBITRUM_GOERLI]: "0xbC465fbf687e4184103b67Ed86557A8155FA4343",
|
|
31
|
+
[ChainId.POLYGON_ZKEVM]: DEPLOYER_ADDRESS,
|
|
32
|
+
[ChainId.POLYGON_ZKEVM_TESTNET]: "0x86808Be3f426C9B4c8C706bCDe29dBC036A1259B",
|
|
33
|
+
[ChainId.ZKSYNC]: "0x",
|
|
34
|
+
[ChainId.ZKSYNC_TESTNET]: "0x71df5b7ea5355180EAb2A54de8aA534016040008",
|
|
35
|
+
[ChainId.LINEA_TESTNET]: "0xdAecee3C08e953Bd5f89A5Cc90ac560413d709E3"
|
|
14
36
|
};
|
|
15
37
|
var ADDRESS_ZERO = "0x0000000000000000000000000000000000000000";
|
|
16
38
|
var POOL_INIT_CODE_HASH = "0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2";
|
|
39
|
+
var POOL_INIT_CODE_HASHES = {
|
|
40
|
+
[ChainId.ETHEREUM]: POOL_INIT_CODE_HASH,
|
|
41
|
+
[ChainId.GOERLI]: POOL_INIT_CODE_HASH,
|
|
42
|
+
[ChainId.BSC]: POOL_INIT_CODE_HASH,
|
|
43
|
+
[ChainId.BSC_TESTNET]: POOL_INIT_CODE_HASH,
|
|
44
|
+
[ChainId.ARBITRUM_ONE]: POOL_INIT_CODE_HASH,
|
|
45
|
+
[ChainId.ARBITRUM_GOERLI]: POOL_INIT_CODE_HASH,
|
|
46
|
+
[ChainId.POLYGON_ZKEVM]: POOL_INIT_CODE_HASH,
|
|
47
|
+
[ChainId.POLYGON_ZKEVM_TESTNET]: POOL_INIT_CODE_HASH,
|
|
48
|
+
// TODO: new chains
|
|
49
|
+
[ChainId.ZKSYNC]: "0x01001487f1c11a662dda518635f8e1f03a41f505cbf7d981c899ba11bf847a8a",
|
|
50
|
+
[ChainId.ZKSYNC_TESTNET]: "0x01001487f1c11a662dda518635f8e1f03a41f505cbf7d981c899ba11bf847a8a",
|
|
51
|
+
[ChainId.LINEA_TESTNET]: POOL_INIT_CODE_HASH
|
|
52
|
+
};
|
|
17
53
|
var FeeAmount = /* @__PURE__ */ ((FeeAmount4) => {
|
|
18
54
|
FeeAmount4[FeeAmount4["LOWEST"] = 100] = "LOWEST";
|
|
19
55
|
FeeAmount4[FeeAmount4["LOW"] = 500] = "LOW";
|
|
@@ -43,6 +79,13 @@ function getCreate2Address(from_, salt_, initCodeHash) {
|
|
|
43
79
|
});
|
|
44
80
|
return getAddress(slice(keccak256(concat([toBytes("0xff"), from, salt, toBytes(initCodeHash)])), 12));
|
|
45
81
|
}
|
|
82
|
+
var EMPTY_INPU_HASH = "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470";
|
|
83
|
+
var ZKSYNC_PREFIX = "0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494";
|
|
84
|
+
function getCreate2AddressZkSync(from, salt, initCodeHash) {
|
|
85
|
+
return getAddress(
|
|
86
|
+
keccak256(concat([ZKSYNC_PREFIX, pad(from, { size: 32 }), salt, initCodeHash, EMPTY_INPU_HASH])).slice(26)
|
|
87
|
+
);
|
|
88
|
+
}
|
|
46
89
|
function computePoolAddress({
|
|
47
90
|
deployerAddress,
|
|
48
91
|
tokenA,
|
|
@@ -51,12 +94,20 @@ function computePoolAddress({
|
|
|
51
94
|
initCodeHashManualOverride
|
|
52
95
|
}) {
|
|
53
96
|
const [token0, token1] = tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA];
|
|
97
|
+
const salt = keccak256(
|
|
98
|
+
encodeAbiParameters(parseAbiParameters(["address, address, uint24"]), [token0.address, token1.address, fee])
|
|
99
|
+
);
|
|
100
|
+
if (token0.chainId === ChainId.ZKSYNC || token0.chainId === ChainId.ZKSYNC_TESTNET) {
|
|
101
|
+
return getCreate2AddressZkSync(
|
|
102
|
+
deployerAddress,
|
|
103
|
+
salt,
|
|
104
|
+
initCodeHashManualOverride ?? POOL_INIT_CODE_HASHES[token0.chainId]
|
|
105
|
+
);
|
|
106
|
+
}
|
|
54
107
|
return getCreate2Address(
|
|
55
108
|
deployerAddress,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
),
|
|
59
|
-
initCodeHashManualOverride ?? POOL_INIT_CODE_HASH
|
|
109
|
+
salt,
|
|
110
|
+
initCodeHashManualOverride ?? POOL_INIT_CODE_HASHES[token0.chainId]
|
|
60
111
|
);
|
|
61
112
|
}
|
|
62
113
|
|
|
@@ -1741,6 +1792,9 @@ function tryGetEstimatedLPFeeByAmounts({
|
|
|
1741
1792
|
tickLower,
|
|
1742
1793
|
sqrtRatioX96
|
|
1743
1794
|
});
|
|
1795
|
+
if (!liquidity) {
|
|
1796
|
+
return new Fraction$1(ZERO$1);
|
|
1797
|
+
}
|
|
1744
1798
|
const volumeInFraction = parseNumberToFraction(volume24H) || new Fraction$1(ZERO$1);
|
|
1745
1799
|
return insidePercentage.multiply(volumeInFraction.multiply(BigInt(fee)).multiply(liquidity)).divide(MAX_FEE * (liquidity + mostActiveLiquidity)).asFraction;
|
|
1746
1800
|
}
|
|
@@ -1750,6 +1804,9 @@ function getDependentAmount(options) {
|
|
|
1750
1804
|
const liquidity = FeeCalculator.getLiquidityBySingleAmount(options);
|
|
1751
1805
|
const isToken0 = currency.wrapped.sortsBefore(amount.currency.wrapped);
|
|
1752
1806
|
const getTokenAmount = isToken0 ? PositionMath.getToken0Amount : PositionMath.getToken1Amount;
|
|
1807
|
+
if (!liquidity) {
|
|
1808
|
+
return void 0;
|
|
1809
|
+
}
|
|
1753
1810
|
return CurrencyAmount$1.fromRawAmount(
|
|
1754
1811
|
currency,
|
|
1755
1812
|
getTokenAmount(currentTick, tickLower, tickUpper, sqrtRatioX96, liquidity)
|
|
@@ -1773,7 +1830,12 @@ function getLiquidityByAmountsAndPrice({
|
|
|
1773
1830
|
const [inputAmount0, inputAmount1] = isToken0 ? [amountA.quotient, amountB.quotient] : [amountB.quotient, amountA.quotient];
|
|
1774
1831
|
const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);
|
|
1775
1832
|
const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);
|
|
1776
|
-
|
|
1833
|
+
try {
|
|
1834
|
+
return maxLiquidityForAmounts(sqrtRatioX96, sqrtRatioAX96, sqrtRatioBX96, inputAmount0, inputAmount1, true);
|
|
1835
|
+
} catch (e) {
|
|
1836
|
+
console.error(e);
|
|
1837
|
+
return void 0;
|
|
1838
|
+
}
|
|
1777
1839
|
}
|
|
1778
1840
|
function getAmountsByLiquidityAndPrice(options) {
|
|
1779
1841
|
const { currencyA, currencyB, liquidity, sqrtRatioX96, tickLower, tickUpper } = options;
|
|
@@ -1789,6 +1851,9 @@ function getAmountsByLiquidityAndPrice(options) {
|
|
|
1789
1851
|
function getAmountsAtNewPrice({ newSqrtRatioX96, ...rest }) {
|
|
1790
1852
|
const { tickLower, tickUpper, amountA, amountB } = rest;
|
|
1791
1853
|
const liquidity = FeeCalculator.getLiquidityByAmountsAndPrice(rest);
|
|
1854
|
+
if (!liquidity) {
|
|
1855
|
+
return void 0;
|
|
1856
|
+
}
|
|
1792
1857
|
return FeeCalculator.getAmountsByLiquidityAndPrice({
|
|
1793
1858
|
liquidity,
|
|
1794
1859
|
currencyA: amountA.currency,
|
|
@@ -6014,4 +6079,4 @@ var _MasterChefV3 = class {
|
|
|
6014
6079
|
var MasterChefV3 = _MasterChefV3;
|
|
6015
6080
|
MasterChefV3.ABI = masterChefV3ABI;
|
|
6016
6081
|
|
|
6017
|
-
export { ADDRESS_ZERO,
|
|
6082
|
+
export { ADDRESS_ZERO, DEPLOYER_ADDRESSES, FACTORY_ADDRESSES, FeeAmount, FeeCalculator, FullMath, LiquidityMath, MasterChefV3, MaxUint128, Multicall, NoTickDataProvider, NonfungiblePositionManager, POOL_INIT_CODE_HASHES, Payments, Pool, Position, PositionLibrary, PositionMath, Route, SelfPermit, SqrtPriceMath, Staker, SwapMath, SwapQuoter, SwapRouter, TICK_SPACINGS, Tick, TickLibrary, TickList, TickListDataProvider, TickMath, Trade, computePoolAddress, encodeRouteToPath, encodeSqrtRatioX96, getAmountsAtNewPrice, getAmountsByLiquidityAndPrice, getAverageLiquidity, getDependentAmount, getEstimatedLPFee, getEstimatedLPFeeByAmounts, getEstimatedLPFeeByAmountsWithProtocolFee, getEstimatedLPFeeWithProtocolFee, getLiquidityByAmountsAndPrice, getLiquidityBySingleAmount, getLiquidityFromSqrtRatioX96, getLiquidityFromTick, isMint, isSorted, masterChefV3ABI, maxLiquidityForAmounts, mostSignificantBit, nearestUsableTick, nonfungiblePositionManagerABI, parseProtocolFees, peripheryPaymentsWithFeeABI, priceToClosestTick, quoterABI, quoterV2ABI, selfPermitABI, sqrtRatioX96ToPrice, subIn256, swapRouterABI, tickToPrice, toHex, tradeComparator, v3StakerABI };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computePoolAddress.d.ts","sourceRoot":"","sources":["../../src/utils/computePoolAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAGP,IAAI,EAUL,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"computePoolAddress.d.ts","sourceRoot":"","sources":["../../src/utils/computePoolAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAGP,IAAI,EAUL,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,KAAK,EAAW,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAyB,MAAM,cAAc,CAAA;AAwB/D;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,eAAe,EACf,MAAM,EACN,MAAM,EACN,GAAG,EACH,0BAA0B,GAC3B,EAAE;IACD,eAAe,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,KAAK,CAAA;IACb,MAAM,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,SAAS,CAAA;IACd,0BAA0B,CAAC,EAAE,IAAI,CAAA;CAClC,GAAG,OAAO,CAoBV"}
|
|
@@ -39,13 +39,13 @@ interface GetAmountOptions {
|
|
|
39
39
|
tickUpper: number;
|
|
40
40
|
sqrtRatioX96: bigint;
|
|
41
41
|
}
|
|
42
|
-
export declare function getDependentAmount(options: GetAmountOptions): CurrencyAmount<Currency
|
|
43
|
-
export declare function getLiquidityBySingleAmount({ amount, currency, ...rest }: GetAmountOptions): bigint;
|
|
42
|
+
export declare function getDependentAmount(options: GetAmountOptions): CurrencyAmount<Currency> | undefined;
|
|
43
|
+
export declare function getLiquidityBySingleAmount({ amount, currency, ...rest }: GetAmountOptions): bigint | undefined;
|
|
44
44
|
interface GetLiquidityOptions extends Omit<GetAmountOptions, 'amount' | 'currency'> {
|
|
45
45
|
amountA: CurrencyAmount<Currency>;
|
|
46
46
|
amountB: CurrencyAmount<Currency>;
|
|
47
47
|
}
|
|
48
|
-
export declare function getLiquidityByAmountsAndPrice({ amountA, amountB, tickUpper, tickLower, sqrtRatioX96, }: GetLiquidityOptions): bigint;
|
|
48
|
+
export declare function getLiquidityByAmountsAndPrice({ amountA, amountB, tickUpper, tickLower, sqrtRatioX96, }: GetLiquidityOptions): bigint | undefined;
|
|
49
49
|
interface GetAmountsOptions extends Omit<GetAmountOptions, 'amount' | 'currency'> {
|
|
50
50
|
currencyA: Currency;
|
|
51
51
|
currencyB: Currency;
|
|
@@ -57,7 +57,7 @@ interface GetAmountsAtNewPriceOptions extends Omit<GetAmountOptions, 'amount' |
|
|
|
57
57
|
amountB: CurrencyAmount<Currency>;
|
|
58
58
|
newSqrtRatioX96: bigint;
|
|
59
59
|
}
|
|
60
|
-
export declare function getAmountsAtNewPrice({ newSqrtRatioX96, ...rest }: GetAmountsAtNewPriceOptions): CurrencyAmount<Currency>[];
|
|
60
|
+
export declare function getAmountsAtNewPrice({ newSqrtRatioX96, ...rest }: GetAmountsAtNewPriceOptions): CurrencyAmount<Currency>[] | undefined;
|
|
61
61
|
export declare function getAverageLiquidity(ticks: Tick[], tickSpacing: number, tickLower: number, tickUpper: number): bigint;
|
|
62
62
|
export declare function getLiquidityFromSqrtRatioX96(ticks: Tick[], sqrtRatioX96: bigint): bigint;
|
|
63
63
|
export declare function getLiquidityFromTick(ticks: Tick[], tick: number): bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeCalculator.d.ts","sourceRoot":"","sources":["../../src/utils/feeCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAc,OAAO,EAAE,QAAQ,EAAQ,MAAM,4BAA4B,CAAA;AAQ1G,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGlC,eAAO,MAAM,aAAa;;;;;;;;;;;CAWzB,CAAA;AAED,UAAU,kBAAkB;IAE1B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IAEhC,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IAEjB,SAAS,EAAE,MAAM,CAAA;IAIjB,YAAY,EAAE,MAAM,CAAA;IAEpB,mBAAmB,EAAE,MAAM,CAAA;IAE3B,GAAG,EAAE,MAAM,CAAA;IAGX,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAG1B,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,gCAAgC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,kBAAkB,YAMjG;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,kBAAkB,YAMlF;AAED,UAAU,2BAA4B,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3F,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CAClC;AAED,wBAAgB,yCAAyC,CAAC,OAAO,EAAE,2BAA2B,YAO7F;AAED,wBAAgB,0BAA0B,CAAC,EAAE,WAA0B,EAAE,GAAG,IAAI,EAAE,EAAE,2BAA2B,YAQ9G;
|
|
1
|
+
{"version":3,"file":"feeCalculator.d.ts","sourceRoot":"","sources":["../../src/utils/feeCalculator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "3.0.
|
|
7
|
+
"version": "3.0.1",
|
|
8
8
|
"description": "⚒️ An SDK for building applications on top of Pancakeswap V3",
|
|
9
9
|
"files": [
|
|
10
10
|
"dist"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"types": "dist/index.d.ts",
|
|
19
19
|
"module": "dist/index.mjs",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"viem": "^1.
|
|
21
|
+
"viem": "^1.2.9",
|
|
22
22
|
"@uniswap/v3-staker": "1.0.0",
|
|
23
23
|
"big.js": "^5.2.2",
|
|
24
24
|
"decimal.js-light": "^2.5.0",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"toformat": "^2.0.0",
|
|
28
28
|
"@pancakeswap/sdk": "5.0.0",
|
|
29
29
|
"@pancakeswap/swap-sdk-core": "1.0.0",
|
|
30
|
-
"@pancakeswap/tokens": "0.1.
|
|
30
|
+
"@pancakeswap/tokens": "0.1.4"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"vitest": "^0.30.1",
|
|
34
34
|
"tsup": "^6.7.0",
|
|
35
35
|
"typescript": "^5.1.3",
|
|
36
|
-
"@pancakeswap/utils": "2.0.
|
|
36
|
+
"@pancakeswap/utils": "2.0.1"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=10"
|