@centurion_project/v3-sdk 3.30.0-ctn.0
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/LICENSE +21 -0
- package/README.md +13 -0
- package/dist/cjs/src/constants.d.ts +23 -0
- package/dist/cjs/src/constants.js +44 -0
- package/dist/cjs/src/constants.js.map +1 -0
- package/dist/cjs/src/entities/index.d.ts +7 -0
- package/dist/cjs/src/entities/index.js +11 -0
- package/dist/cjs/src/entities/index.js.map +1 -0
- package/dist/cjs/src/entities/pool.d.ts +81 -0
- package/dist/cjs/src/entities/pool.js +142 -0
- package/dist/cjs/src/entities/pool.js.map +1 -0
- package/dist/cjs/src/entities/position.d.ts +131 -0
- package/dist/cjs/src/entities/position.js +248 -0
- package/dist/cjs/src/entities/position.js.map +1 -0
- package/dist/cjs/src/entities/route.d.ts +26 -0
- package/dist/cjs/src/entities/route.js +75 -0
- package/dist/cjs/src/entities/route.js.map +1 -0
- package/dist/cjs/src/entities/tick.d.ts +13 -0
- package/dist/cjs/src/entities/tick.js +17 -0
- package/dist/cjs/src/entities/tick.js.map +1 -0
- package/dist/cjs/src/entities/tickDataProvider.d.ts +31 -0
- package/dist/cjs/src/entities/tickDataProvider.js +18 -0
- package/dist/cjs/src/entities/tickDataProvider.js.map +1 -0
- package/dist/cjs/src/entities/tickListDataProvider.d.ts +15 -0
- package/dist/cjs/src/entities/tickListDataProvider.js +23 -0
- package/dist/cjs/src/entities/tickListDataProvider.js.map +1 -0
- package/dist/cjs/src/entities/trade.d.ts +220 -0
- package/dist/cjs/src/entities/trade.js +440 -0
- package/dist/cjs/src/entities/trade.js.map +1 -0
- package/dist/cjs/src/index.d.ts +10 -0
- package/dist/cjs/src/index.js +14 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/internalConstants.d.ts +6 -0
- package/dist/cjs/src/internalConstants.js +13 -0
- package/dist/cjs/src/internalConstants.js.map +1 -0
- package/dist/cjs/src/multicall.d.ts +10 -0
- package/dist/cjs/src/multicall.js +24 -0
- package/dist/cjs/src/multicall.js.map +1 -0
- package/dist/cjs/src/nonfungiblePositionManager.d.ts +159 -0
- package/dist/cjs/src/nonfungiblePositionManager.js +250 -0
- package/dist/cjs/src/nonfungiblePositionManager.js.map +1 -0
- package/dist/cjs/src/payments.d.ts +24 -0
- package/dist/cjs/src/payments.js +56 -0
- package/dist/cjs/src/payments.js.map +1 -0
- package/dist/cjs/src/quoter.d.ts +37 -0
- package/dist/cjs/src/quoter.js +69 -0
- package/dist/cjs/src/quoter.js.map +1 -0
- package/dist/cjs/src/selfPermit.d.ts +25 -0
- package/dist/cjs/src/selfPermit.js +38 -0
- package/dist/cjs/src/selfPermit.js.map +1 -0
- package/dist/cjs/src/staker.d.ts +101 -0
- package/dist/cjs/src/staker.js +129 -0
- package/dist/cjs/src/staker.js.map +1 -0
- package/dist/cjs/src/swapRouter.d.ts +51 -0
- package/dist/cjs/src/swapRouter.js +145 -0
- package/dist/cjs/src/swapRouter.js.map +1 -0
- package/dist/cjs/src/utils/calldata.d.ts +20 -0
- package/dist/cjs/src/utils/calldata.js +20 -0
- package/dist/cjs/src/utils/calldata.js.map +1 -0
- package/dist/cjs/src/utils/computePoolAddress.d.ts +20 -0
- package/dist/cjs/src/utils/computePoolAddress.js +33 -0
- package/dist/cjs/src/utils/computePoolAddress.js.map +1 -0
- package/dist/cjs/src/utils/encodeRouteToPath.d.ts +8 -0
- package/dist/cjs/src/utils/encodeRouteToPath.js +32 -0
- package/dist/cjs/src/utils/encodeRouteToPath.js.map +1 -0
- package/dist/cjs/src/utils/encodeSqrtRatioX96.d.ts +9 -0
- package/dist/cjs/src/utils/encodeSqrtRatioX96.js +20 -0
- package/dist/cjs/src/utils/encodeSqrtRatioX96.js.map +1 -0
- package/dist/cjs/src/utils/fullMath.d.ts +8 -0
- package/dist/cjs/src/utils/fullMath.js +21 -0
- package/dist/cjs/src/utils/fullMath.js.map +1 -0
- package/dist/cjs/src/utils/index.d.ts +18 -0
- package/dist/cjs/src/utils/index.js +22 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/cjs/src/utils/isSorted.d.ts +7 -0
- package/dist/cjs/src/utils/isSorted.js +19 -0
- package/dist/cjs/src/utils/isSorted.js.map +1 -0
- package/dist/cjs/src/utils/liquidityMath.d.ts +8 -0
- package/dist/cjs/src/utils/liquidityMath.js +22 -0
- package/dist/cjs/src/utils/liquidityMath.js.map +1 -0
- package/dist/cjs/src/utils/maxLiquidityForAmounts.d.ts +14 -0
- package/dist/cjs/src/utils/maxLiquidityForAmounts.js +87 -0
- package/dist/cjs/src/utils/maxLiquidityForAmounts.js.map +1 -0
- package/dist/cjs/src/utils/mostSignificantBit.d.ts +2 -0
- package/dist/cjs/src/utils/mostSignificantBit.js +27 -0
- package/dist/cjs/src/utils/mostSignificantBit.js.map +1 -0
- package/dist/cjs/src/utils/nearestUsableTick.d.ts +6 -0
- package/dist/cjs/src/utils/nearestUsableTick.js +25 -0
- package/dist/cjs/src/utils/nearestUsableTick.js.map +1 -0
- package/dist/cjs/src/utils/position.d.ts +8 -0
- package/dist/cjs/src/utils/position.js +21 -0
- package/dist/cjs/src/utils/position.js.map +1 -0
- package/dist/cjs/src/utils/priceTickConversions.d.ts +15 -0
- package/dist/cjs/src/utils/priceTickConversions.js +50 -0
- package/dist/cjs/src/utils/priceTickConversions.js.map +1 -0
- package/dist/cjs/src/utils/sqrtPriceMath.d.ts +13 -0
- package/dist/cjs/src/utils/sqrtPriceMath.js +95 -0
- package/dist/cjs/src/utils/sqrtPriceMath.js.map +1 -0
- package/dist/cjs/src/utils/swapMath.d.ts +9 -0
- package/dist/cjs/src/utils/swapMath.js +78 -0
- package/dist/cjs/src/utils/swapMath.js.map +1 -0
- package/dist/cjs/src/utils/tickLibrary.d.ts +14 -0
- package/dist/cjs/src/utils/tickLibrary.js +51 -0
- package/dist/cjs/src/utils/tickLibrary.js.map +1 -0
- package/dist/cjs/src/utils/tickList.d.ts +23 -0
- package/dist/cjs/src/utils/tickList.js +108 -0
- package/dist/cjs/src/utils/tickList.js.map +1 -0
- package/dist/cjs/src/utils/tickMath.d.ts +34 -0
- package/dist/cjs/src/utils/tickMath.js +125 -0
- package/dist/cjs/src/utils/tickMath.js.map +1 -0
- package/dist/cjs/src/utils/v3swap.d.ts +8 -0
- package/dist/cjs/src/utils/v3swap.js +85 -0
- package/dist/cjs/src/utils/v3swap.js.map +1 -0
- package/dist/esm/src/constants.d.ts +23 -0
- package/dist/esm/src/constants.js +40 -0
- package/dist/esm/src/constants.js.map +1 -0
- package/dist/esm/src/entities/index.d.ts +7 -0
- package/dist/esm/src/entities/index.js +8 -0
- package/dist/esm/src/entities/index.js.map +1 -0
- package/dist/esm/src/entities/pool.d.ts +81 -0
- package/dist/esm/src/entities/pool.js +137 -0
- package/dist/esm/src/entities/pool.js.map +1 -0
- package/dist/esm/src/entities/position.d.ts +131 -0
- package/dist/esm/src/entities/position.js +243 -0
- package/dist/esm/src/entities/position.js.map +1 -0
- package/dist/esm/src/entities/route.d.ts +26 -0
- package/dist/esm/src/entities/route.js +70 -0
- package/dist/esm/src/entities/route.js.map +1 -0
- package/dist/esm/src/entities/tick.d.ts +13 -0
- package/dist/esm/src/entities/tick.js +12 -0
- package/dist/esm/src/entities/tick.js.map +1 -0
- package/dist/esm/src/entities/tickDataProvider.d.ts +31 -0
- package/dist/esm/src/entities/tickDataProvider.js +14 -0
- package/dist/esm/src/entities/tickDataProvider.js.map +1 -0
- package/dist/esm/src/entities/tickListDataProvider.d.ts +15 -0
- package/dist/esm/src/entities/tickListDataProvider.js +19 -0
- package/dist/esm/src/entities/tickListDataProvider.js.map +1 -0
- package/dist/esm/src/entities/trade.d.ts +220 -0
- package/dist/esm/src/entities/trade.js +434 -0
- package/dist/esm/src/entities/trade.js.map +1 -0
- package/dist/esm/src/index.d.ts +10 -0
- package/dist/esm/src/index.js +11 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/internalConstants.d.ts +6 -0
- package/dist/esm/src/internalConstants.js +9 -0
- package/dist/esm/src/internalConstants.js.map +1 -0
- package/dist/esm/src/multicall.d.ts +10 -0
- package/dist/esm/src/multicall.js +19 -0
- package/dist/esm/src/multicall.js.map +1 -0
- package/dist/esm/src/nonfungiblePositionManager.d.ts +159 -0
- package/dist/esm/src/nonfungiblePositionManager.js +245 -0
- package/dist/esm/src/nonfungiblePositionManager.js.map +1 -0
- package/dist/esm/src/payments.d.ts +24 -0
- package/dist/esm/src/payments.js +51 -0
- package/dist/esm/src/payments.js.map +1 -0
- package/dist/esm/src/quoter.d.ts +37 -0
- package/dist/esm/src/quoter.js +64 -0
- package/dist/esm/src/quoter.js.map +1 -0
- package/dist/esm/src/selfPermit.d.ts +25 -0
- package/dist/esm/src/selfPermit.js +33 -0
- package/dist/esm/src/selfPermit.js.map +1 -0
- package/dist/esm/src/staker.d.ts +101 -0
- package/dist/esm/src/staker.js +124 -0
- package/dist/esm/src/staker.js.map +1 -0
- package/dist/esm/src/swapRouter.d.ts +51 -0
- package/dist/esm/src/swapRouter.js +140 -0
- package/dist/esm/src/swapRouter.js.map +1 -0
- package/dist/esm/src/utils/calldata.d.ts +20 -0
- package/dist/esm/src/utils/calldata.js +15 -0
- package/dist/esm/src/utils/calldata.js.map +1 -0
- package/dist/esm/src/utils/computePoolAddress.d.ts +20 -0
- package/dist/esm/src/utils/computePoolAddress.js +29 -0
- package/dist/esm/src/utils/computePoolAddress.js.map +1 -0
- package/dist/esm/src/utils/encodeRouteToPath.d.ts +8 -0
- package/dist/esm/src/utils/encodeRouteToPath.js +28 -0
- package/dist/esm/src/utils/encodeRouteToPath.js.map +1 -0
- package/dist/esm/src/utils/encodeSqrtRatioX96.d.ts +9 -0
- package/dist/esm/src/utils/encodeSqrtRatioX96.js +15 -0
- package/dist/esm/src/utils/encodeSqrtRatioX96.js.map +1 -0
- package/dist/esm/src/utils/fullMath.d.ts +8 -0
- package/dist/esm/src/utils/fullMath.js +16 -0
- package/dist/esm/src/utils/fullMath.js.map +1 -0
- package/dist/esm/src/utils/index.d.ts +18 -0
- package/dist/esm/src/utils/index.js +19 -0
- package/dist/esm/src/utils/index.js.map +1 -0
- package/dist/esm/src/utils/isSorted.d.ts +7 -0
- package/dist/esm/src/utils/isSorted.js +15 -0
- package/dist/esm/src/utils/isSorted.js.map +1 -0
- package/dist/esm/src/utils/liquidityMath.d.ts +8 -0
- package/dist/esm/src/utils/liquidityMath.js +17 -0
- package/dist/esm/src/utils/liquidityMath.js.map +1 -0
- package/dist/esm/src/utils/maxLiquidityForAmounts.d.ts +14 -0
- package/dist/esm/src/utils/maxLiquidityForAmounts.js +82 -0
- package/dist/esm/src/utils/maxLiquidityForAmounts.js.map +1 -0
- package/dist/esm/src/utils/mostSignificantBit.d.ts +2 -0
- package/dist/esm/src/utils/mostSignificantBit.js +22 -0
- package/dist/esm/src/utils/mostSignificantBit.js.map +1 -0
- package/dist/esm/src/utils/nearestUsableTick.d.ts +6 -0
- package/dist/esm/src/utils/nearestUsableTick.js +20 -0
- package/dist/esm/src/utils/nearestUsableTick.js.map +1 -0
- package/dist/esm/src/utils/position.d.ts +8 -0
- package/dist/esm/src/utils/position.js +16 -0
- package/dist/esm/src/utils/position.js.map +1 -0
- package/dist/esm/src/utils/priceTickConversions.d.ts +15 -0
- package/dist/esm/src/utils/priceTickConversions.js +44 -0
- package/dist/esm/src/utils/priceTickConversions.js.map +1 -0
- package/dist/esm/src/utils/sqrtPriceMath.d.ts +13 -0
- package/dist/esm/src/utils/sqrtPriceMath.js +90 -0
- package/dist/esm/src/utils/sqrtPriceMath.js.map +1 -0
- package/dist/esm/src/utils/swapMath.d.ts +9 -0
- package/dist/esm/src/utils/swapMath.js +73 -0
- package/dist/esm/src/utils/swapMath.js.map +1 -0
- package/dist/esm/src/utils/tickLibrary.d.ts +14 -0
- package/dist/esm/src/utils/tickLibrary.js +45 -0
- package/dist/esm/src/utils/tickLibrary.js.map +1 -0
- package/dist/esm/src/utils/tickList.d.ts +23 -0
- package/dist/esm/src/utils/tickList.js +103 -0
- package/dist/esm/src/utils/tickList.js.map +1 -0
- package/dist/esm/src/utils/tickMath.d.ts +34 -0
- package/dist/esm/src/utils/tickMath.js +120 -0
- package/dist/esm/src/utils/tickMath.js.map +1 -0
- package/dist/esm/src/utils/v3swap.d.ts +8 -0
- package/dist/esm/src/utils/v3swap.js +80 -0
- package/dist/esm/src/utils/v3swap.js.map +1 -0
- package/dist/types/src/constants.d.ts +23 -0
- package/dist/types/src/entities/index.d.ts +7 -0
- package/dist/types/src/entities/pool.d.ts +81 -0
- package/dist/types/src/entities/position.d.ts +131 -0
- package/dist/types/src/entities/route.d.ts +26 -0
- package/dist/types/src/entities/tick.d.ts +13 -0
- package/dist/types/src/entities/tickDataProvider.d.ts +31 -0
- package/dist/types/src/entities/tickListDataProvider.d.ts +15 -0
- package/dist/types/src/entities/trade.d.ts +220 -0
- package/dist/types/src/index.d.ts +10 -0
- package/dist/types/src/internalConstants.d.ts +6 -0
- package/dist/types/src/multicall.d.ts +10 -0
- package/dist/types/src/nonfungiblePositionManager.d.ts +159 -0
- package/dist/types/src/payments.d.ts +24 -0
- package/dist/types/src/quoter.d.ts +37 -0
- package/dist/types/src/selfPermit.d.ts +25 -0
- package/dist/types/src/staker.d.ts +101 -0
- package/dist/types/src/swapRouter.d.ts +51 -0
- package/dist/types/src/utils/calldata.d.ts +20 -0
- package/dist/types/src/utils/computePoolAddress.d.ts +20 -0
- package/dist/types/src/utils/encodeRouteToPath.d.ts +8 -0
- package/dist/types/src/utils/encodeSqrtRatioX96.d.ts +9 -0
- package/dist/types/src/utils/fullMath.d.ts +8 -0
- package/dist/types/src/utils/index.d.ts +18 -0
- package/dist/types/src/utils/isSorted.d.ts +7 -0
- package/dist/types/src/utils/liquidityMath.d.ts +8 -0
- package/dist/types/src/utils/maxLiquidityForAmounts.d.ts +14 -0
- package/dist/types/src/utils/mostSignificantBit.d.ts +2 -0
- package/dist/types/src/utils/nearestUsableTick.d.ts +6 -0
- package/dist/types/src/utils/position.d.ts +8 -0
- package/dist/types/src/utils/priceTickConversions.d.ts +15 -0
- package/dist/types/src/utils/sqrtPriceMath.d.ts +13 -0
- package/dist/types/src/utils/swapMath.d.ts +9 -0
- package/dist/types/src/utils/tickLibrary.d.ts +14 -0
- package/dist/types/src/utils/tickList.d.ts +23 -0
- package/dist/types/src/utils/tickMath.d.ts +34 -0
- package/dist/types/src/utils/v3swap.d.ts +8 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../../src/entities/trade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './entities';
|
|
2
|
+
export * from './utils';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
export * from './multicall';
|
|
5
|
+
export * from './nonfungiblePositionManager';
|
|
6
|
+
export * from './payments';
|
|
7
|
+
export * from './quoter';
|
|
8
|
+
export * from './selfPermit';
|
|
9
|
+
export * from './staker';
|
|
10
|
+
export * from './swapRouter';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './entities';
|
|
2
|
+
export * from './utils';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
export * from './multicall';
|
|
5
|
+
export * from './nonfungiblePositionManager';
|
|
6
|
+
export * from './payments';
|
|
7
|
+
export * from './quoter';
|
|
8
|
+
export * from './selfPermit';
|
|
9
|
+
export * from './staker';
|
|
10
|
+
export * from './swapRouter';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAEvB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import JSBI from 'jsbi';
|
|
2
|
+
// constants used internally but not expected to be used externally
|
|
3
|
+
export const NEGATIVE_ONE = JSBI.BigInt(-1);
|
|
4
|
+
export const ZERO = JSBI.BigInt(0);
|
|
5
|
+
export const ONE = JSBI.BigInt(1);
|
|
6
|
+
// used in liquidity amount math
|
|
7
|
+
export const Q96 = JSBI.exponentiate(JSBI.BigInt(2), JSBI.BigInt(96));
|
|
8
|
+
export const Q192 = JSBI.exponentiate(Q96, JSBI.BigInt(2));
|
|
9
|
+
//# sourceMappingURL=internalConstants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internalConstants.js","sourceRoot":"","sources":["../../../src/internalConstants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3C,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAEjC,gCAAgC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AACrE,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
export declare abstract class Multicall {
|
|
3
|
+
static INTERFACE: Interface;
|
|
4
|
+
/**
|
|
5
|
+
* Cannot be constructed.
|
|
6
|
+
*/
|
|
7
|
+
private constructor();
|
|
8
|
+
static encodeMulticall(calldatas: string | string[]): string;
|
|
9
|
+
static decodeMulticall(multicall: string): string[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import IMulticall from '@uniswap/v3-periphery/artifacts/contracts/interfaces/IMulticall.sol/IMulticall.json';
|
|
3
|
+
export class Multicall {
|
|
4
|
+
/**
|
|
5
|
+
* Cannot be constructed.
|
|
6
|
+
*/
|
|
7
|
+
constructor() { }
|
|
8
|
+
static encodeMulticall(calldatas) {
|
|
9
|
+
if (!Array.isArray(calldatas)) {
|
|
10
|
+
calldatas = [calldatas];
|
|
11
|
+
}
|
|
12
|
+
return calldatas.length === 1 ? calldatas[0] : Multicall.INTERFACE.encodeFunctionData('multicall', [calldatas]);
|
|
13
|
+
}
|
|
14
|
+
static decodeMulticall(multicall) {
|
|
15
|
+
return Multicall.INTERFACE.decodeFunctionData('multicall', multicall).data;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
Multicall.INTERFACE = new Interface(IMulticall.abi);
|
|
19
|
+
//# sourceMappingURL=multicall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multicall.js","sourceRoot":"","sources":["../../../src/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,UAAU,MAAM,qFAAqF,CAAA;AAE5G,MAAM,OAAgB,SAAS;IAG7B;;OAEG;IACH,gBAAuB,CAAC;IAEjB,MAAM,CAAC,eAAe,CAAC,SAA4B;QACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,SAAS,GAAG,CAAC,SAAS,CAAC,CAAA;SACxB;QAED,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACjH,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,SAAiB;QAC7C,OAAO,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CAAA;IAC5E,CAAC;;AAjBa,mBAAS,GAAc,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { BigintIsh, Percent, CurrencyAmount, Currency, NativeCurrency } from '@centurion_project/sdk-core';
|
|
2
|
+
import { Position } from './entities/position';
|
|
3
|
+
import { MethodParameters } from './utils/calldata';
|
|
4
|
+
import { Interface } from '@ethersproject/abi';
|
|
5
|
+
import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
|
|
6
|
+
import { PermitOptions } from './selfPermit';
|
|
7
|
+
import { Pool } from './entities';
|
|
8
|
+
export interface MintSpecificOptions {
|
|
9
|
+
/**
|
|
10
|
+
* The account that should receive the minted NFT.
|
|
11
|
+
*/
|
|
12
|
+
recipient: string;
|
|
13
|
+
/**
|
|
14
|
+
* Creates pool if not initialized before mint.
|
|
15
|
+
*/
|
|
16
|
+
createPool?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface IncreaseSpecificOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Indicates the ID of the position to increase liquidity for.
|
|
21
|
+
*/
|
|
22
|
+
tokenId: BigintIsh;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Options for producing the calldata to add liquidity.
|
|
26
|
+
*/
|
|
27
|
+
export interface CommonAddLiquidityOptions {
|
|
28
|
+
/**
|
|
29
|
+
* How much the pool price is allowed to move.
|
|
30
|
+
*/
|
|
31
|
+
slippageTolerance: Percent;
|
|
32
|
+
/**
|
|
33
|
+
* When the transaction expires, in epoch seconds.
|
|
34
|
+
*/
|
|
35
|
+
deadline: BigintIsh;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to spend ether. If true, one of the pool tokens must be WETH, by default false
|
|
38
|
+
*/
|
|
39
|
+
useNative?: NativeCurrency;
|
|
40
|
+
/**
|
|
41
|
+
* The optional permit parameters for spending token0
|
|
42
|
+
*/
|
|
43
|
+
token0Permit?: PermitOptions;
|
|
44
|
+
/**
|
|
45
|
+
* The optional permit parameters for spending token1
|
|
46
|
+
*/
|
|
47
|
+
token1Permit?: PermitOptions;
|
|
48
|
+
}
|
|
49
|
+
export type MintOptions = CommonAddLiquidityOptions & MintSpecificOptions;
|
|
50
|
+
export type IncreaseOptions = CommonAddLiquidityOptions & IncreaseSpecificOptions;
|
|
51
|
+
export type AddLiquidityOptions = MintOptions | IncreaseOptions;
|
|
52
|
+
export interface SafeTransferOptions {
|
|
53
|
+
/**
|
|
54
|
+
* The account sending the NFT.
|
|
55
|
+
*/
|
|
56
|
+
sender: string;
|
|
57
|
+
/**
|
|
58
|
+
* The account that should receive the NFT.
|
|
59
|
+
*/
|
|
60
|
+
recipient: string;
|
|
61
|
+
/**
|
|
62
|
+
* The id of the token being sent.
|
|
63
|
+
*/
|
|
64
|
+
tokenId: BigintIsh;
|
|
65
|
+
/**
|
|
66
|
+
* The optional parameter that passes data to the `onERC721Received` call for the staker
|
|
67
|
+
*/
|
|
68
|
+
data?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface CollectOptions {
|
|
71
|
+
/**
|
|
72
|
+
* Indicates the ID of the position to collect for.
|
|
73
|
+
*/
|
|
74
|
+
tokenId: BigintIsh;
|
|
75
|
+
/**
|
|
76
|
+
* Expected value of tokensOwed0, including as-of-yet-unaccounted-for fees/liquidity value to be burned
|
|
77
|
+
*/
|
|
78
|
+
expectedCurrencyOwed0: CurrencyAmount<Currency>;
|
|
79
|
+
/**
|
|
80
|
+
* Expected value of tokensOwed1, including as-of-yet-unaccounted-for fees/liquidity value to be burned
|
|
81
|
+
*/
|
|
82
|
+
expectedCurrencyOwed1: CurrencyAmount<Currency>;
|
|
83
|
+
/**
|
|
84
|
+
* The account that should receive the tokens.
|
|
85
|
+
*/
|
|
86
|
+
recipient: string;
|
|
87
|
+
}
|
|
88
|
+
export interface NFTPermitValues {
|
|
89
|
+
spender: string;
|
|
90
|
+
tokenId: BigintIsh;
|
|
91
|
+
deadline: BigintIsh;
|
|
92
|
+
nonce: BigintIsh;
|
|
93
|
+
}
|
|
94
|
+
export interface NFTPermitData {
|
|
95
|
+
domain: TypedDataDomain;
|
|
96
|
+
types: Record<string, TypedDataField[]>;
|
|
97
|
+
values: NFTPermitValues;
|
|
98
|
+
}
|
|
99
|
+
export interface NFTPermitOptions {
|
|
100
|
+
v: 0 | 1 | 27 | 28;
|
|
101
|
+
r: string;
|
|
102
|
+
s: string;
|
|
103
|
+
deadline: BigintIsh;
|
|
104
|
+
spender: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Options for producing the calldata to exit a position.
|
|
108
|
+
*/
|
|
109
|
+
export interface RemoveLiquidityOptions {
|
|
110
|
+
/**
|
|
111
|
+
* The ID of the token to exit
|
|
112
|
+
*/
|
|
113
|
+
tokenId: BigintIsh;
|
|
114
|
+
/**
|
|
115
|
+
* The percentage of position liquidity to exit.
|
|
116
|
+
*/
|
|
117
|
+
liquidityPercentage: Percent;
|
|
118
|
+
/**
|
|
119
|
+
* How much the pool price is allowed to move.
|
|
120
|
+
*/
|
|
121
|
+
slippageTolerance: Percent;
|
|
122
|
+
/**
|
|
123
|
+
* When the transaction expires, in epoch seconds.
|
|
124
|
+
*/
|
|
125
|
+
deadline: BigintIsh;
|
|
126
|
+
/**
|
|
127
|
+
* Whether the NFT should be burned if the entire position is being exited, by default false.
|
|
128
|
+
*/
|
|
129
|
+
burnToken?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* The optional permit of the token ID being exited, in case the exit transaction is being sent by an account that does not own the NFT
|
|
132
|
+
*/
|
|
133
|
+
permit?: NFTPermitOptions;
|
|
134
|
+
/**
|
|
135
|
+
* Parameters to be passed on to collect
|
|
136
|
+
*/
|
|
137
|
+
collectOptions: Omit<CollectOptions, 'tokenId'>;
|
|
138
|
+
}
|
|
139
|
+
export declare abstract class NonfungiblePositionManager {
|
|
140
|
+
static INTERFACE: Interface;
|
|
141
|
+
/**
|
|
142
|
+
* Cannot be constructed.
|
|
143
|
+
*/
|
|
144
|
+
private constructor();
|
|
145
|
+
private static encodeCreate;
|
|
146
|
+
static createCallParameters(pool: Pool): MethodParameters;
|
|
147
|
+
static addCallParameters(position: Position, options: AddLiquidityOptions): MethodParameters;
|
|
148
|
+
private static encodeCollect;
|
|
149
|
+
static collectCallParameters(options: CollectOptions): MethodParameters;
|
|
150
|
+
/**
|
|
151
|
+
* Produces the calldata for completely or partially exiting a position
|
|
152
|
+
* @param position The position to exit
|
|
153
|
+
* @param options Additional information necessary for generating the calldata
|
|
154
|
+
* @returns The call parameters
|
|
155
|
+
*/
|
|
156
|
+
static removeCallParameters(position: Position, options: RemoveLiquidityOptions): MethodParameters;
|
|
157
|
+
static safeTransferFromParameters(options: SafeTransferOptions): MethodParameters;
|
|
158
|
+
static getPermitData(permit: NFTPermitValues, positionManagerAddress: string, chainId: number): NFTPermitData;
|
|
159
|
+
}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { CurrencyAmount, validateAndParseAddress, } from '@centurion_project/sdk-core';
|
|
2
|
+
import JSBI from 'jsbi';
|
|
3
|
+
import invariant from 'tiny-invariant';
|
|
4
|
+
import { Position } from './entities/position';
|
|
5
|
+
import { ONE, ZERO } from './internalConstants';
|
|
6
|
+
import { toHex } from './utils/calldata';
|
|
7
|
+
import { Interface } from '@ethersproject/abi';
|
|
8
|
+
import INonfungiblePositionManager from '@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json';
|
|
9
|
+
import { SelfPermit } from './selfPermit';
|
|
10
|
+
import { ADDRESS_ZERO } from './constants';
|
|
11
|
+
import { Multicall } from './multicall';
|
|
12
|
+
import { Payments } from './payments';
|
|
13
|
+
const MaxUint128 = toHex(JSBI.subtract(JSBI.exponentiate(JSBI.BigInt(2), JSBI.BigInt(128)), JSBI.BigInt(1)));
|
|
14
|
+
// type guard
|
|
15
|
+
function isMint(options) {
|
|
16
|
+
return Object.keys(options).some((k) => k === 'recipient');
|
|
17
|
+
}
|
|
18
|
+
const NFT_PERMIT_TYPES = {
|
|
19
|
+
Permit: [
|
|
20
|
+
{ name: 'spender', type: 'address' },
|
|
21
|
+
{ name: 'tokenId', type: 'uint256' },
|
|
22
|
+
{ name: 'nonce', type: 'uint256' },
|
|
23
|
+
{ name: 'deadline', type: 'uint256' },
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
export class NonfungiblePositionManager {
|
|
27
|
+
/**
|
|
28
|
+
* Cannot be constructed.
|
|
29
|
+
*/
|
|
30
|
+
constructor() { }
|
|
31
|
+
static encodeCreate(pool) {
|
|
32
|
+
return NonfungiblePositionManager.INTERFACE.encodeFunctionData('createAndInitializePoolIfNecessary', [
|
|
33
|
+
pool.token0.address,
|
|
34
|
+
pool.token1.address,
|
|
35
|
+
pool.fee,
|
|
36
|
+
toHex(pool.sqrtRatioX96),
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
static createCallParameters(pool) {
|
|
40
|
+
return {
|
|
41
|
+
calldata: this.encodeCreate(pool),
|
|
42
|
+
value: toHex(0),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
static addCallParameters(position, options) {
|
|
46
|
+
invariant(JSBI.greaterThan(position.liquidity, ZERO), 'ZERO_LIQUIDITY');
|
|
47
|
+
const calldatas = [];
|
|
48
|
+
// get amounts
|
|
49
|
+
const { amount0: amount0Desired, amount1: amount1Desired } = position.mintAmounts;
|
|
50
|
+
// adjust for slippage
|
|
51
|
+
const minimumAmounts = position.mintAmountsWithSlippage(options.slippageTolerance);
|
|
52
|
+
const amount0Min = toHex(minimumAmounts.amount0);
|
|
53
|
+
const amount1Min = toHex(minimumAmounts.amount1);
|
|
54
|
+
const deadline = toHex(options.deadline);
|
|
55
|
+
// create pool if needed
|
|
56
|
+
if (isMint(options) && options.createPool) {
|
|
57
|
+
calldatas.push(this.encodeCreate(position.pool));
|
|
58
|
+
}
|
|
59
|
+
// permits if necessary
|
|
60
|
+
if (options.token0Permit) {
|
|
61
|
+
calldatas.push(SelfPermit.encodePermit(position.pool.token0, options.token0Permit));
|
|
62
|
+
}
|
|
63
|
+
if (options.token1Permit) {
|
|
64
|
+
calldatas.push(SelfPermit.encodePermit(position.pool.token1, options.token1Permit));
|
|
65
|
+
}
|
|
66
|
+
// mint
|
|
67
|
+
if (isMint(options)) {
|
|
68
|
+
const recipient = validateAndParseAddress(options.recipient);
|
|
69
|
+
calldatas.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData('mint', [
|
|
70
|
+
{
|
|
71
|
+
token0: position.pool.token0.address,
|
|
72
|
+
token1: position.pool.token1.address,
|
|
73
|
+
fee: position.pool.fee,
|
|
74
|
+
tickLower: position.tickLower,
|
|
75
|
+
tickUpper: position.tickUpper,
|
|
76
|
+
amount0Desired: toHex(amount0Desired),
|
|
77
|
+
amount1Desired: toHex(amount1Desired),
|
|
78
|
+
amount0Min,
|
|
79
|
+
amount1Min,
|
|
80
|
+
recipient,
|
|
81
|
+
deadline,
|
|
82
|
+
},
|
|
83
|
+
]));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// increase
|
|
87
|
+
calldatas.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData('increaseLiquidity', [
|
|
88
|
+
{
|
|
89
|
+
tokenId: toHex(options.tokenId),
|
|
90
|
+
amount0Desired: toHex(amount0Desired),
|
|
91
|
+
amount1Desired: toHex(amount1Desired),
|
|
92
|
+
amount0Min,
|
|
93
|
+
amount1Min,
|
|
94
|
+
deadline,
|
|
95
|
+
},
|
|
96
|
+
]));
|
|
97
|
+
}
|
|
98
|
+
let value = toHex(0);
|
|
99
|
+
if (options.useNative) {
|
|
100
|
+
const wrapped = options.useNative.wrapped;
|
|
101
|
+
invariant(position.pool.token0.equals(wrapped) || position.pool.token1.equals(wrapped), 'NO_WETH');
|
|
102
|
+
const wrappedValue = position.pool.token0.equals(wrapped) ? amount0Desired : amount1Desired;
|
|
103
|
+
// we only need to refund if we're actually sending ETH
|
|
104
|
+
if (JSBI.greaterThan(wrappedValue, ZERO)) {
|
|
105
|
+
calldatas.push(Payments.encodeRefundETH());
|
|
106
|
+
}
|
|
107
|
+
value = toHex(wrappedValue);
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
calldata: Multicall.encodeMulticall(calldatas),
|
|
111
|
+
value,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
static encodeCollect(options) {
|
|
115
|
+
const calldatas = [];
|
|
116
|
+
const tokenId = toHex(options.tokenId);
|
|
117
|
+
const involvesETH = options.expectedCurrencyOwed0.currency.isNative || options.expectedCurrencyOwed1.currency.isNative;
|
|
118
|
+
const recipient = validateAndParseAddress(options.recipient);
|
|
119
|
+
// collect
|
|
120
|
+
calldatas.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData('collect', [
|
|
121
|
+
{
|
|
122
|
+
tokenId,
|
|
123
|
+
recipient: involvesETH ? ADDRESS_ZERO : recipient,
|
|
124
|
+
amount0Max: MaxUint128,
|
|
125
|
+
amount1Max: MaxUint128,
|
|
126
|
+
},
|
|
127
|
+
]));
|
|
128
|
+
if (involvesETH) {
|
|
129
|
+
const ethAmount = options.expectedCurrencyOwed0.currency.isNative
|
|
130
|
+
? options.expectedCurrencyOwed0.quotient
|
|
131
|
+
: options.expectedCurrencyOwed1.quotient;
|
|
132
|
+
const token = options.expectedCurrencyOwed0.currency.isNative
|
|
133
|
+
? options.expectedCurrencyOwed1.currency
|
|
134
|
+
: options.expectedCurrencyOwed0.currency;
|
|
135
|
+
const tokenAmount = options.expectedCurrencyOwed0.currency.isNative
|
|
136
|
+
? options.expectedCurrencyOwed1.quotient
|
|
137
|
+
: options.expectedCurrencyOwed0.quotient;
|
|
138
|
+
calldatas.push(Payments.encodeUnwrapWETH9(ethAmount, recipient));
|
|
139
|
+
calldatas.push(Payments.encodeSweepToken(token, tokenAmount, recipient));
|
|
140
|
+
}
|
|
141
|
+
return calldatas;
|
|
142
|
+
}
|
|
143
|
+
static collectCallParameters(options) {
|
|
144
|
+
const calldatas = NonfungiblePositionManager.encodeCollect(options);
|
|
145
|
+
return {
|
|
146
|
+
calldata: Multicall.encodeMulticall(calldatas),
|
|
147
|
+
value: toHex(0),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Produces the calldata for completely or partially exiting a position
|
|
152
|
+
* @param position The position to exit
|
|
153
|
+
* @param options Additional information necessary for generating the calldata
|
|
154
|
+
* @returns The call parameters
|
|
155
|
+
*/
|
|
156
|
+
static removeCallParameters(position, options) {
|
|
157
|
+
const calldatas = [];
|
|
158
|
+
const deadline = toHex(options.deadline);
|
|
159
|
+
const tokenId = toHex(options.tokenId);
|
|
160
|
+
// construct a partial position with a percentage of liquidity
|
|
161
|
+
const partialPosition = new Position({
|
|
162
|
+
pool: position.pool,
|
|
163
|
+
liquidity: options.liquidityPercentage.multiply(position.liquidity).quotient,
|
|
164
|
+
tickLower: position.tickLower,
|
|
165
|
+
tickUpper: position.tickUpper,
|
|
166
|
+
});
|
|
167
|
+
invariant(JSBI.greaterThan(partialPosition.liquidity, ZERO), 'ZERO_LIQUIDITY');
|
|
168
|
+
// slippage-adjusted underlying amounts
|
|
169
|
+
const { amount0: amount0Min, amount1: amount1Min } = partialPosition.burnAmountsWithSlippage(options.slippageTolerance);
|
|
170
|
+
if (options.permit) {
|
|
171
|
+
calldatas.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData('permit', [
|
|
172
|
+
validateAndParseAddress(options.permit.spender),
|
|
173
|
+
tokenId,
|
|
174
|
+
toHex(options.permit.deadline),
|
|
175
|
+
options.permit.v,
|
|
176
|
+
options.permit.r,
|
|
177
|
+
options.permit.s,
|
|
178
|
+
]));
|
|
179
|
+
}
|
|
180
|
+
// remove liquidity
|
|
181
|
+
calldatas.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData('decreaseLiquidity', [
|
|
182
|
+
{
|
|
183
|
+
tokenId,
|
|
184
|
+
liquidity: toHex(partialPosition.liquidity),
|
|
185
|
+
amount0Min: toHex(amount0Min),
|
|
186
|
+
amount1Min: toHex(amount1Min),
|
|
187
|
+
deadline,
|
|
188
|
+
},
|
|
189
|
+
]));
|
|
190
|
+
const { expectedCurrencyOwed0, expectedCurrencyOwed1, ...rest } = options.collectOptions;
|
|
191
|
+
calldatas.push(...NonfungiblePositionManager.encodeCollect({
|
|
192
|
+
tokenId: toHex(options.tokenId),
|
|
193
|
+
// add the underlying value to the expected currency already owed
|
|
194
|
+
expectedCurrencyOwed0: expectedCurrencyOwed0.add(CurrencyAmount.fromRawAmount(expectedCurrencyOwed0.currency, amount0Min)),
|
|
195
|
+
expectedCurrencyOwed1: expectedCurrencyOwed1.add(CurrencyAmount.fromRawAmount(expectedCurrencyOwed1.currency, amount1Min)),
|
|
196
|
+
...rest,
|
|
197
|
+
}));
|
|
198
|
+
if (options.liquidityPercentage.equalTo(ONE)) {
|
|
199
|
+
if (options.burnToken) {
|
|
200
|
+
calldatas.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData('burn', [tokenId]));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
invariant(options.burnToken !== true, 'CANNOT_BURN');
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
calldata: Multicall.encodeMulticall(calldatas),
|
|
208
|
+
value: toHex(0),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
static safeTransferFromParameters(options) {
|
|
212
|
+
const recipient = validateAndParseAddress(options.recipient);
|
|
213
|
+
const sender = validateAndParseAddress(options.sender);
|
|
214
|
+
let calldata;
|
|
215
|
+
if (options.data) {
|
|
216
|
+
calldata = NonfungiblePositionManager.INTERFACE.encodeFunctionData('safeTransferFrom(address,address,uint256,bytes)', [sender, recipient, toHex(options.tokenId), options.data]);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
calldata = NonfungiblePositionManager.INTERFACE.encodeFunctionData('safeTransferFrom(address,address,uint256)', [
|
|
220
|
+
sender,
|
|
221
|
+
recipient,
|
|
222
|
+
toHex(options.tokenId),
|
|
223
|
+
]);
|
|
224
|
+
}
|
|
225
|
+
return {
|
|
226
|
+
calldata: calldata,
|
|
227
|
+
value: toHex(0),
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
// Prepare the params for an EIP712 signTypedData request
|
|
231
|
+
static getPermitData(permit, positionManagerAddress, chainId) {
|
|
232
|
+
return {
|
|
233
|
+
domain: {
|
|
234
|
+
name: 'Uniswap V3 Positions NFT-V1',
|
|
235
|
+
chainId,
|
|
236
|
+
version: '1',
|
|
237
|
+
verifyingContract: positionManagerAddress,
|
|
238
|
+
},
|
|
239
|
+
types: NFT_PERMIT_TYPES,
|
|
240
|
+
values: permit,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
NonfungiblePositionManager.INTERFACE = new Interface(INonfungiblePositionManager.abi);
|
|
245
|
+
//# sourceMappingURL=nonfungiblePositionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonfungiblePositionManager.js","sourceRoot":"","sources":["../../../src/nonfungiblePositionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import JSBI from 'jsbi';
|
|
2
|
+
import { Interface } from '@ethersproject/abi';
|
|
3
|
+
import { Percent, Token } from '@centurion_project/sdk-core';
|
|
4
|
+
export interface FeeOptions {
|
|
5
|
+
/**
|
|
6
|
+
* The percent of the output that will be taken as a fee.
|
|
7
|
+
*/
|
|
8
|
+
fee: Percent;
|
|
9
|
+
/**
|
|
10
|
+
* The recipient of the fee.
|
|
11
|
+
*/
|
|
12
|
+
recipient: string;
|
|
13
|
+
}
|
|
14
|
+
export declare abstract class Payments {
|
|
15
|
+
static INTERFACE: Interface;
|
|
16
|
+
/**
|
|
17
|
+
* Cannot be constructed.
|
|
18
|
+
*/
|
|
19
|
+
private constructor();
|
|
20
|
+
private static encodeFeeBips;
|
|
21
|
+
static encodeUnwrapWETH9(amountMinimum: JSBI, recipient: string, feeOptions?: FeeOptions): string;
|
|
22
|
+
static encodeSweepToken(token: Token, amountMinimum: JSBI, recipient: string, feeOptions?: FeeOptions): string;
|
|
23
|
+
static encodeRefundETH(): string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import IPeripheryPaymentsWithFee from '@uniswap/v3-periphery/artifacts/contracts/interfaces/IPeripheryPaymentsWithFee.sol/IPeripheryPaymentsWithFee.json';
|
|
3
|
+
import { validateAndParseAddress } from '@centurion_project/sdk-core';
|
|
4
|
+
import { toHex } from './utils/calldata';
|
|
5
|
+
export class Payments {
|
|
6
|
+
/**
|
|
7
|
+
* Cannot be constructed.
|
|
8
|
+
*/
|
|
9
|
+
constructor() { }
|
|
10
|
+
static encodeFeeBips(fee) {
|
|
11
|
+
return toHex(fee.multiply(10000).quotient);
|
|
12
|
+
}
|
|
13
|
+
static encodeUnwrapWETH9(amountMinimum, recipient, feeOptions) {
|
|
14
|
+
recipient = validateAndParseAddress(recipient);
|
|
15
|
+
if (!!feeOptions) {
|
|
16
|
+
const feeBips = this.encodeFeeBips(feeOptions.fee);
|
|
17
|
+
const feeRecipient = validateAndParseAddress(feeOptions.recipient);
|
|
18
|
+
return Payments.INTERFACE.encodeFunctionData('unwrapWETH9WithFee', [
|
|
19
|
+
toHex(amountMinimum),
|
|
20
|
+
recipient,
|
|
21
|
+
feeBips,
|
|
22
|
+
feeRecipient,
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return Payments.INTERFACE.encodeFunctionData('unwrapWETH9', [toHex(amountMinimum), recipient]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static encodeSweepToken(token, amountMinimum, recipient, feeOptions) {
|
|
30
|
+
recipient = validateAndParseAddress(recipient);
|
|
31
|
+
if (!!feeOptions) {
|
|
32
|
+
const feeBips = this.encodeFeeBips(feeOptions.fee);
|
|
33
|
+
const feeRecipient = validateAndParseAddress(feeOptions.recipient);
|
|
34
|
+
return Payments.INTERFACE.encodeFunctionData('sweepTokenWithFee', [
|
|
35
|
+
token.address,
|
|
36
|
+
toHex(amountMinimum),
|
|
37
|
+
recipient,
|
|
38
|
+
feeBips,
|
|
39
|
+
feeRecipient,
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return Payments.INTERFACE.encodeFunctionData('sweepToken', [token.address, toHex(amountMinimum), recipient]);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
static encodeRefundETH() {
|
|
47
|
+
return Payments.INTERFACE.encodeFunctionData('refundETH');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
Payments.INTERFACE = new Interface(IPeripheryPaymentsWithFee.abi);
|
|
51
|
+
//# sourceMappingURL=payments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../../src/payments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,yBAAyB,MAAM,mHAAmH,CAAA;AACzJ,OAAO,EAAkB,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAcxC,MAAM,OAAgB,QAAQ;IAG5B;;OAEG;IACH,gBAAuB,CAAC;IAEhB,MAAM,CAAC,aAAa,CAAC,GAAY;QACvC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,aAAmB,EAAE,SAAiB,EAAE,UAAuB;QAC7F,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAA;QAE9C,IAAI,CAAC,CAAC,UAAU,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YAClD,MAAM,YAAY,GAAW,uBAAuB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAE1E,OAAO,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,oBAAoB,EAAE;gBACjE,KAAK,CAAC,aAAa,CAAC;gBACpB,SAAS;gBACT,OAAO;gBACP,YAAY;aACb,CAAC,CAAA;SACH;aAAM;YACL,OAAO,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;SAC/F;IACH,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAC5B,KAAY,EACZ,aAAmB,EACnB,SAAiB,EACjB,UAAuB;QAEvB,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAA;QAE9C,IAAI,CAAC,CAAC,UAAU,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YAClD,MAAM,YAAY,GAAW,uBAAuB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAE1E,OAAO,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;gBAChE,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,aAAa,CAAC;gBACpB,SAAS;gBACT,OAAO;gBACP,YAAY;aACb,CAAC,CAAA;SACH;aAAM;YACL,OAAO,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;SAC7G;IACH,CAAC;IAEM,MAAM,CAAC,eAAe;QAC3B,OAAO,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAC3D,CAAC;;AAvDa,kBAAS,GAAc,IAAI,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { BigintIsh, Currency, CurrencyAmount, TradeType } from '@centurion_project/sdk-core';
|
|
3
|
+
import { MethodParameters } from './utils';
|
|
4
|
+
import { Route } from './entities';
|
|
5
|
+
/**
|
|
6
|
+
* Optional arguments to send to the quoter.
|
|
7
|
+
*/
|
|
8
|
+
export interface QuoteOptions {
|
|
9
|
+
/**
|
|
10
|
+
* The optional price limit for the trade.
|
|
11
|
+
*/
|
|
12
|
+
sqrtPriceLimitX96?: BigintIsh;
|
|
13
|
+
/**
|
|
14
|
+
* The optional quoter interface to use
|
|
15
|
+
*/
|
|
16
|
+
useQuoterV2?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Represents the Uniswap V3 QuoterV1 contract with a method for returning the formatted
|
|
20
|
+
* calldata needed to call the quoter contract.
|
|
21
|
+
*/
|
|
22
|
+
export declare abstract class SwapQuoter {
|
|
23
|
+
static V1INTERFACE: Interface;
|
|
24
|
+
static V2INTERFACE: Interface;
|
|
25
|
+
/**
|
|
26
|
+
* Produces the on-chain method name of the appropriate function within QuoterV2,
|
|
27
|
+
* and the relevant hex encoded parameters.
|
|
28
|
+
* @template TInput The input token, either Ether or an ERC-20
|
|
29
|
+
* @template TOutput The output token, either Ether or an ERC-20
|
|
30
|
+
* @param route The swap route, a list of pools through which a swap can occur
|
|
31
|
+
* @param amount The amount of the quote, either an amount in, or an amount out
|
|
32
|
+
* @param tradeType The trade type, either exact input or exact output
|
|
33
|
+
* @param options The optional params including price limit and Quoter contract switch
|
|
34
|
+
* @returns The formatted calldata
|
|
35
|
+
*/
|
|
36
|
+
static quoteCallParameters<TInput extends Currency, TOutput extends Currency>(route: Route<TInput, TOutput>, amount: CurrencyAmount<TInput | TOutput>, tradeType: TradeType, options?: QuoteOptions): MethodParameters;
|
|
37
|
+
}
|