@kittycorn-labs/v4-sdk 1.1.30 → 2.0.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/README.md +9 -0
- package/dist/{PositionManager.d.ts → cjs/src/PositionManager.d.ts} +169 -169
- package/dist/cjs/src/PositionManager.js +242 -0
- package/dist/cjs/src/PositionManager.js.map +1 -0
- package/dist/cjs/src/abis/IMulticall.json +23 -0
- package/dist/{actionConstants.d.ts → cjs/src/actionConstants.d.ts} +1 -1
- package/dist/cjs/src/actionConstants.js +6 -0
- package/dist/cjs/src/actionConstants.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/index.d.ts +4 -4
- package/dist/cjs/src/entities/index.js +8 -0
- package/dist/cjs/src/entities/index.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/pool.d.ts +103 -103
- package/dist/cjs/src/entities/pool.js +196 -0
- package/dist/cjs/src/entities/pool.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/position.d.ts +144 -144
- package/dist/cjs/src/entities/position.js +273 -0
- package/dist/cjs/src/entities/position.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/route.d.ts +28 -28
- package/dist/cjs/src/entities/route.js +89 -0
- package/dist/cjs/src/entities/route.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/trade.d.ts +220 -220
- package/dist/cjs/src/entities/trade.js +441 -0
- package/dist/cjs/src/entities/trade.js.map +1 -0
- package/dist/{index.d.ts → cjs/src/index.d.ts} +4 -4
- package/dist/cjs/src/index.js +8 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/{internalConstants.d.ts → cjs/src/internalConstants.d.ts} +46 -46
- package/dist/cjs/src/internalConstants.js +69 -0
- package/dist/cjs/src/internalConstants.js.map +1 -0
- package/dist/{multicall.d.ts → cjs/src/multicall.d.ts} +10 -10
- package/dist/cjs/src/multicall.js +26 -0
- package/dist/cjs/src/multicall.js.map +1 -0
- package/dist/cjs/src/tokenize.d.ts +17 -0
- package/dist/cjs/src/tokenize.js +42 -0
- package/dist/cjs/src/tokenize.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/calldata.d.ts +20 -20
- package/dist/cjs/src/utils/calldata.js +20 -0
- package/dist/cjs/src/utils/calldata.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/currencyMap.d.ts +2 -2
- package/dist/cjs/src/utils/currencyMap.js +15 -0
- package/dist/cjs/src/utils/currencyMap.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/encodeRouteToPath.d.ts +10 -10
- package/dist/cjs/src/utils/encodeRouteToPath.js +26 -0
- package/dist/cjs/src/utils/encodeRouteToPath.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/hook.d.ts +45 -45
- package/dist/cjs/src/utils/hook.js +97 -0
- package/dist/cjs/src/utils/hook.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/index.d.ts +11 -11
- package/dist/cjs/src/utils/index.js +15 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/pathCurrency.d.ts +4 -4
- package/dist/cjs/src/utils/pathCurrency.js +27 -0
- package/dist/cjs/src/utils/pathCurrency.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/positionManagerAbi.d.ts +102 -102
- package/dist/cjs/src/utils/positionManagerAbi.js +1318 -0
- package/dist/cjs/src/utils/positionManagerAbi.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/priceTickConversions.d.ts +20 -20
- package/dist/cjs/src/utils/priceTickConversions.js +55 -0
- package/dist/cjs/src/utils/priceTickConversions.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/sortsBefore.d.ts +2 -2
- package/dist/cjs/src/utils/sortsBefore.js +12 -0
- package/dist/cjs/src/utils/sortsBefore.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/v4BaseActionsParser.d.ts +49 -45
- package/dist/cjs/src/utils/v4BaseActionsParser.js +193 -0
- package/dist/cjs/src/utils/v4BaseActionsParser.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/v4Planner.d.ts +71 -55
- package/dist/cjs/src/utils/v4Planner.js +267 -0
- package/dist/cjs/src/utils/v4Planner.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/v4PositionPlanner.d.ts +13 -12
- package/dist/cjs/src/utils/v4PositionPlanner.js +61 -0
- package/dist/cjs/src/utils/v4PositionPlanner.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/src/PositionManager.d.ts +169 -0
- package/dist/esm/src/PositionManager.js +237 -0
- package/dist/esm/src/PositionManager.js.map +1 -0
- package/dist/esm/src/abis/IMulticall.json +23 -0
- package/dist/esm/src/actionConstants.d.ts +1 -0
- package/dist/esm/src/actionConstants.js +3 -0
- package/dist/esm/src/actionConstants.js.map +1 -0
- package/dist/esm/src/entities/index.d.ts +4 -0
- package/dist/esm/src/entities/index.js +5 -0
- package/dist/esm/src/entities/index.js.map +1 -0
- package/dist/esm/src/entities/pool.d.ts +103 -0
- package/dist/esm/src/entities/pool.js +191 -0
- package/dist/esm/src/entities/pool.js.map +1 -0
- package/dist/esm/src/entities/position.d.ts +144 -0
- package/dist/esm/src/entities/position.js +268 -0
- package/dist/esm/src/entities/position.js.map +1 -0
- package/dist/esm/src/entities/route.d.ts +28 -0
- package/dist/esm/src/entities/route.js +84 -0
- package/dist/esm/src/entities/route.js.map +1 -0
- package/dist/esm/src/entities/trade.d.ts +220 -0
- package/dist/esm/src/entities/trade.js +435 -0
- package/dist/esm/src/entities/trade.js.map +1 -0
- package/dist/esm/src/index.d.ts +4 -0
- package/dist/esm/src/index.js +5 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/internalConstants.d.ts +46 -0
- package/dist/esm/src/internalConstants.js +65 -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 +21 -0
- package/dist/esm/src/multicall.js.map +1 -0
- package/dist/esm/src/tokenize.d.ts +17 -0
- package/dist/esm/src/tokenize.js +37 -0
- package/dist/esm/src/tokenize.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/currencyMap.d.ts +2 -0
- package/dist/esm/src/utils/currencyMap.js +11 -0
- package/dist/esm/src/utils/currencyMap.js.map +1 -0
- package/dist/esm/src/utils/encodeRouteToPath.d.ts +10 -0
- package/dist/esm/src/utils/encodeRouteToPath.js +22 -0
- package/dist/esm/src/utils/encodeRouteToPath.js.map +1 -0
- package/dist/esm/src/utils/hook.d.ts +45 -0
- package/dist/esm/src/utils/hook.js +92 -0
- package/dist/esm/src/utils/hook.js.map +1 -0
- package/dist/esm/src/utils/index.d.ts +11 -0
- package/dist/esm/src/utils/index.js +12 -0
- package/dist/esm/src/utils/index.js.map +1 -0
- package/dist/esm/src/utils/pathCurrency.d.ts +4 -0
- package/dist/esm/src/utils/pathCurrency.js +22 -0
- package/dist/esm/src/utils/pathCurrency.js.map +1 -0
- package/dist/esm/src/utils/positionManagerAbi.d.ts +102 -0
- package/dist/esm/src/utils/positionManagerAbi.js +1315 -0
- package/dist/esm/src/utils/positionManagerAbi.js.map +1 -0
- package/dist/esm/src/utils/priceTickConversions.d.ts +20 -0
- package/dist/esm/src/utils/priceTickConversions.js +49 -0
- package/dist/esm/src/utils/priceTickConversions.js.map +1 -0
- package/dist/esm/src/utils/sortsBefore.d.ts +2 -0
- package/dist/esm/src/utils/sortsBefore.js +8 -0
- package/dist/esm/src/utils/sortsBefore.js.map +1 -0
- package/dist/esm/src/utils/v4BaseActionsParser.d.ts +49 -0
- package/dist/esm/src/utils/v4BaseActionsParser.js +189 -0
- package/dist/esm/src/utils/v4BaseActionsParser.js.map +1 -0
- package/dist/esm/src/utils/v4Planner.d.ts +71 -0
- package/dist/esm/src/utils/v4Planner.js +261 -0
- package/dist/esm/src/utils/v4Planner.js.map +1 -0
- package/dist/esm/src/utils/v4PositionPlanner.d.ts +13 -0
- package/dist/esm/src/utils/v4PositionPlanner.js +57 -0
- package/dist/esm/src/utils/v4PositionPlanner.js.map +1 -0
- package/dist/types/src/PositionManager.d.ts +170 -0
- package/dist/types/src/PositionManager.d.ts.map +1 -0
- package/dist/types/src/actionConstants.d.ts +2 -0
- package/dist/types/src/actionConstants.d.ts.map +1 -0
- package/dist/types/src/entities/index.d.ts +5 -0
- package/dist/types/src/entities/index.d.ts.map +1 -0
- package/dist/types/src/entities/pool.d.ts +104 -0
- package/dist/types/src/entities/pool.d.ts.map +1 -0
- package/dist/types/src/entities/position.d.ts +145 -0
- package/dist/types/src/entities/position.d.ts.map +1 -0
- package/dist/types/src/entities/route.d.ts +29 -0
- package/dist/types/src/entities/route.d.ts.map +1 -0
- package/dist/types/src/entities/trade.d.ts +221 -0
- package/dist/types/src/entities/trade.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +5 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/internalConstants.d.ts +47 -0
- package/dist/types/src/internalConstants.d.ts.map +1 -0
- package/dist/types/src/multicall.d.ts +11 -0
- package/dist/types/src/multicall.d.ts.map +1 -0
- package/dist/types/src/tokenize.d.ts +18 -0
- package/dist/types/src/tokenize.d.ts.map +1 -0
- package/dist/types/src/utils/calldata.d.ts +21 -0
- package/dist/types/src/utils/calldata.d.ts.map +1 -0
- package/dist/types/src/utils/currencyMap.d.ts +3 -0
- package/dist/types/src/utils/currencyMap.d.ts.map +1 -0
- package/dist/types/src/utils/encodeRouteToPath.d.ts +11 -0
- package/dist/types/src/utils/encodeRouteToPath.d.ts.map +1 -0
- package/dist/types/src/utils/hook.d.ts +46 -0
- package/dist/types/src/utils/hook.d.ts.map +1 -0
- package/dist/types/src/utils/index.d.ts +12 -0
- package/dist/types/src/utils/index.d.ts.map +1 -0
- package/dist/types/src/utils/pathCurrency.d.ts +5 -0
- package/dist/types/src/utils/pathCurrency.d.ts.map +1 -0
- package/dist/types/src/utils/positionManagerAbi.d.ts +103 -0
- package/dist/types/src/utils/positionManagerAbi.d.ts.map +1 -0
- package/dist/types/src/utils/priceTickConversions.d.ts +21 -0
- package/dist/types/src/utils/priceTickConversions.d.ts.map +1 -0
- package/dist/types/src/utils/sortsBefore.d.ts +3 -0
- package/dist/types/src/utils/sortsBefore.d.ts.map +1 -0
- package/dist/types/src/utils/v4BaseActionsParser.d.ts +50 -0
- package/dist/types/src/utils/v4BaseActionsParser.d.ts.map +1 -0
- package/dist/types/src/utils/v4Planner.d.ts +72 -0
- package/dist/types/src/utils/v4Planner.d.ts.map +1 -0
- package/dist/types/src/utils/v4PositionPlanner.d.ts +14 -0
- package/dist/types/src/utils/v4PositionPlanner.d.ts.map +1 -0
- package/package.json +28 -46
- package/dist/index.js +0 -8
- package/dist/tokenizeAddresses.d.ts +0 -25
- package/dist/v4-sdk.cjs.development.js +0 -3633
- package/dist/v4-sdk.cjs.development.js.map +0 -1
- package/dist/v4-sdk.cjs.production.min.js +0 -2
- package/dist/v4-sdk.cjs.production.min.js.map +0 -1
- package/dist/v4-sdk.esm.js +0 -3597
- package/dist/v4-sdk.esm.js.map +0 -1
|
@@ -1,10 +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(calldataList: string | string[]): string;
|
|
9
|
-
static decodeMulticall(encodedCalldata: string): string[];
|
|
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(calldataList: string | string[]): string;
|
|
9
|
+
static decodeMulticall(encodedCalldata: string): string[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Multicall = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const abi_1 = require("@ethersproject/abi");
|
|
6
|
+
const IMulticall_json_1 = tslib_1.__importDefault(require("./abis/IMulticall.json"));
|
|
7
|
+
class Multicall {
|
|
8
|
+
/**
|
|
9
|
+
* Cannot be constructed.
|
|
10
|
+
*/
|
|
11
|
+
constructor() { }
|
|
12
|
+
static encodeMulticall(calldataList) {
|
|
13
|
+
if (!Array.isArray(calldataList)) {
|
|
14
|
+
calldataList = [calldataList];
|
|
15
|
+
}
|
|
16
|
+
return calldataList.length === 1
|
|
17
|
+
? calldataList[0]
|
|
18
|
+
: Multicall.INTERFACE.encodeFunctionData('multicall', [calldataList]);
|
|
19
|
+
}
|
|
20
|
+
static decodeMulticall(encodedCalldata) {
|
|
21
|
+
return Multicall.INTERFACE.decodeFunctionData('multicall', encodedCalldata)[0];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.Multicall = Multicall;
|
|
25
|
+
Multicall.INTERFACE = new abi_1.Interface(IMulticall_json_1.default.abi);
|
|
26
|
+
//# sourceMappingURL=multicall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multicall.js","sourceRoot":"","sources":["../../../src/multicall.ts"],"names":[],"mappings":";;;;AAAA,4CAA8C;AAC9C,qFAA+C;AAE/C,MAAsB,SAAS;IAG7B;;OAEG;IACH,gBAAuB,CAAC;IAEjB,MAAM,CAAC,eAAe,CAAC,YAA+B;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAChC,YAAY,GAAG,CAAC,YAAY,CAAC,CAAA;SAC9B;QAED,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IACzE,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,eAAuB;QACnD,OAAO,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;IAChF,CAAC;;AApBH,8BAqBC;AApBe,mBAAS,GAAc,IAAI,eAAS,CAAC,yBAAU,CAAC,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ChainId, Currency, Token } from '@kittycorn-labs/sdk-core';
|
|
2
|
+
import { Pool } from './entities/pool';
|
|
3
|
+
/** Current Kittycorn deployment. Legacy rebasing deployments are intentionally unsupported. */
|
|
4
|
+
export declare const KITTYCORN_BASE_SEPOLIA: {
|
|
5
|
+
chainId: ChainId;
|
|
6
|
+
bank: string;
|
|
7
|
+
router: string;
|
|
8
|
+
quoter: string;
|
|
9
|
+
tokens: {
|
|
10
|
+
underlying: Token;
|
|
11
|
+
tokenize: Token;
|
|
12
|
+
}[];
|
|
13
|
+
};
|
|
14
|
+
/** Conversion edges connect actual underlying/share currencies; they are not AMM liquidity. */
|
|
15
|
+
export declare function getTokenizePairs(chainId: number): [Currency, Currency, number, number, string][];
|
|
16
|
+
/** Recognize only registered conversion edges, never arbitrary pools containing a tToken. */
|
|
17
|
+
export declare function isTokenizeConversion(pool: Pool): boolean;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTokenizeConversion = exports.getTokenizePairs = exports.KITTYCORN_BASE_SEPOLIA = void 0;
|
|
4
|
+
const sdk_core_1 = require("@kittycorn-labs/sdk-core");
|
|
5
|
+
/** Current Kittycorn deployment. Legacy rebasing deployments are intentionally unsupported. */
|
|
6
|
+
exports.KITTYCORN_BASE_SEPOLIA = {
|
|
7
|
+
chainId: sdk_core_1.ChainId.BASE_SEPOLIA,
|
|
8
|
+
bank: '0xcc331eC1d6CF4542F9eB988B49249cfa163081dc',
|
|
9
|
+
router: '0x137a906E06EC20808c8F156F9024196427429220',
|
|
10
|
+
quoter: '0x9fEcb19a660d1d6d3aD7a33A7e9BeB01A9EE24aB',
|
|
11
|
+
tokens: [
|
|
12
|
+
{
|
|
13
|
+
underlying: new sdk_core_1.Token(84532, '0xba50Cd2A20f6DA35D788639E581bca8d0B5d4D5f', 6, 'USDC'),
|
|
14
|
+
tokenize: new sdk_core_1.Token(84532, '0x0B4104691a6a006F0134d507aAe6d35854BaD924', 6, 'tUSDC'),
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
underlying: new sdk_core_1.Token(84532, '0x0a215D8ba66387DCA84B284D18c3B4ec3de6E54a', 6, 'USDT'),
|
|
18
|
+
tokenize: new sdk_core_1.Token(84532, '0x94572cD65df8DAa3A8Da96277FfA2a22ee71b5dC', 6, 'tUSDT'),
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
underlying: new sdk_core_1.Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH'),
|
|
22
|
+
tokenize: new sdk_core_1.Token(84532, '0xd09EDDa7a0495eAc6B921fb9408d2Ae55220EbC0', 18, 'tWETH'),
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
/** Conversion edges connect actual underlying/share currencies; they are not AMM liquidity. */
|
|
27
|
+
function getTokenizePairs(chainId) {
|
|
28
|
+
if (chainId !== exports.KITTYCORN_BASE_SEPOLIA.chainId)
|
|
29
|
+
return [];
|
|
30
|
+
const pairs = exports.KITTYCORN_BASE_SEPOLIA.tokens.map((t) => [t.underlying, t.tokenize]);
|
|
31
|
+
return pairs.map(([a, b]) => [a, b, 0, 1, '0x0000000000000000000000000000000000000000']);
|
|
32
|
+
}
|
|
33
|
+
exports.getTokenizePairs = getTokenizePairs;
|
|
34
|
+
/** Recognize only registered conversion edges, never arbitrary pools containing a tToken. */
|
|
35
|
+
function isTokenizeConversion(pool) {
|
|
36
|
+
return getTokenizePairs(pool.chainId).some(([a, b, fee, spacing, hooks]) => pool.fee === fee &&
|
|
37
|
+
pool.tickSpacing === spacing &&
|
|
38
|
+
pool.hooks.toLowerCase() === hooks &&
|
|
39
|
+
((pool.currency0.equals(a) && pool.currency1.equals(b)) || (pool.currency0.equals(b) && pool.currency1.equals(a))));
|
|
40
|
+
}
|
|
41
|
+
exports.isTokenizeConversion = isTokenizeConversion;
|
|
42
|
+
//# sourceMappingURL=tokenize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../../../src/tokenize.ts"],"names":[],"mappings":";;;AAAA,uDAAmE;AAGnE,+FAA+F;AAClF,QAAA,sBAAsB,GAAG;IACpC,OAAO,EAAE,kBAAO,CAAC,YAAY;IAC7B,IAAI,EAAE,4CAA4C;IAClD,MAAM,EAAE,4CAA4C;IACpD,MAAM,EAAE,4CAA4C;IACpD,MAAM,EAAE;QACN;YACE,UAAU,EAAE,IAAI,gBAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,CAAC,EAAE,MAAM,CAAC;YACrF,QAAQ,EAAE,IAAI,gBAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,CAAC,EAAE,OAAO,CAAC;SACrF;QACD;YACE,UAAU,EAAE,IAAI,gBAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,CAAC,EAAE,MAAM,CAAC;YACrF,QAAQ,EAAE,IAAI,gBAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,CAAC,EAAE,OAAO,CAAC;SACrF;QACD;YACE,UAAU,EAAE,IAAI,gBAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,MAAM,CAAC;YACtF,QAAQ,EAAE,IAAI,gBAAK,CAAC,KAAK,EAAE,4CAA4C,EAAE,EAAE,EAAE,OAAO,CAAC;SACtF;KACF;CACF,CAAA;AAED,+FAA+F;AAC/F,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,IAAI,OAAO,KAAK,8BAAsB,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACzD,MAAM,KAAK,GAA2B,8BAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1G,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,4CAA4C,CAAC,CAAC,CAAA;AAC1F,CAAC;AAJD,4CAIC;AAED,6FAA6F;AAC7F,SAAgB,oBAAoB,CAAC,IAAU;IAC7C,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAC9B,IAAI,CAAC,GAAG,KAAK,GAAG;QAChB,IAAI,CAAC,WAAW,KAAK,OAAO;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK;QAClC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACrH,CAAA;AACH,CAAC;AARD,oDAQC"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { BigintIsh } from '@kittycorn-labs/sdk-core';
|
|
2
|
-
/**
|
|
3
|
-
* Generated method parameters for executing a call.
|
|
4
|
-
*/
|
|
5
|
-
export interface MethodParameters {
|
|
6
|
-
/**
|
|
7
|
-
* The hex encoded calldata to perform the given operation
|
|
8
|
-
*/
|
|
9
|
-
calldata: string;
|
|
10
|
-
/**
|
|
11
|
-
* The amount of ether (wei) to send in hex.
|
|
12
|
-
*/
|
|
13
|
-
value: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Converts a big int to a hex string
|
|
17
|
-
* @param bigintIsh
|
|
18
|
-
* @returns The hex encoded calldata
|
|
19
|
-
*/
|
|
20
|
-
export declare function toHex(bigintIsh: BigintIsh): string;
|
|
1
|
+
import { BigintIsh } from '@kittycorn-labs/sdk-core';
|
|
2
|
+
/**
|
|
3
|
+
* Generated method parameters for executing a call.
|
|
4
|
+
*/
|
|
5
|
+
export interface MethodParameters {
|
|
6
|
+
/**
|
|
7
|
+
* The hex encoded calldata to perform the given operation
|
|
8
|
+
*/
|
|
9
|
+
calldata: string;
|
|
10
|
+
/**
|
|
11
|
+
* The amount of ether (wei) to send in hex.
|
|
12
|
+
*/
|
|
13
|
+
value: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Converts a big int to a hex string
|
|
17
|
+
* @param bigintIsh
|
|
18
|
+
* @returns The hex encoded calldata
|
|
19
|
+
*/
|
|
20
|
+
export declare function toHex(bigintIsh: BigintIsh): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toHex = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jsbi_1 = tslib_1.__importDefault(require("jsbi"));
|
|
6
|
+
/**
|
|
7
|
+
* Converts a big int to a hex string
|
|
8
|
+
* @param bigintIsh
|
|
9
|
+
* @returns The hex encoded calldata
|
|
10
|
+
*/
|
|
11
|
+
function toHex(bigintIsh) {
|
|
12
|
+
const bigInt = jsbi_1.default.BigInt(bigintIsh);
|
|
13
|
+
let hex = bigInt.toString(16);
|
|
14
|
+
if (hex.length % 2 !== 0) {
|
|
15
|
+
hex = `0${hex}`;
|
|
16
|
+
}
|
|
17
|
+
return `0x${hex}`;
|
|
18
|
+
}
|
|
19
|
+
exports.toHex = toHex;
|
|
20
|
+
//# sourceMappingURL=calldata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata.js","sourceRoot":"","sources":["../../../../src/utils/calldata.ts"],"names":[],"mappings":";;;;AACA,wDAAuB;AAgBvB;;;;GAIG;AACH,SAAgB,KAAK,CAAC,SAAoB;IACxC,MAAM,MAAM,GAAG,cAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACrC,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC7B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;QACxB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;KAChB;IACD,OAAO,KAAK,GAAG,EAAE,CAAA;AACnB,CAAC;AAPD,sBAOC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Currency } from '@kittycorn-labs/sdk-core';
|
|
2
|
-
export declare function toAddress(currency: Currency): string;
|
|
1
|
+
import { Currency } from '@kittycorn-labs/sdk-core';
|
|
2
|
+
export declare function toAddress(currency: Currency): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toAddress = void 0;
|
|
4
|
+
const internalConstants_1 = require("../internalConstants");
|
|
5
|
+
// Uniswap v4 supports native pools. Those currencies are represented by the zero address.
|
|
6
|
+
// TODO: Figure out if this is how we should be handling weird edge case tokens like CELO/Polygon/etc..
|
|
7
|
+
// Does interface treat those like ERC20 tokens or NATIVE tokens?
|
|
8
|
+
function toAddress(currency) {
|
|
9
|
+
if (currency.isNative)
|
|
10
|
+
return internalConstants_1.ADDRESS_ZERO;
|
|
11
|
+
else
|
|
12
|
+
return currency.wrapped.address;
|
|
13
|
+
}
|
|
14
|
+
exports.toAddress = toAddress;
|
|
15
|
+
//# sourceMappingURL=currencyMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currencyMap.js","sourceRoot":"","sources":["../../../../src/utils/currencyMap.ts"],"names":[],"mappings":";;;AACA,4DAAmD;AAEnD,0FAA0F;AAC1F,uGAAuG;AACvG,iEAAiE;AACjE,SAAgB,SAAS,CAAC,QAAkB;IAC1C,IAAI,QAAQ,CAAC,QAAQ;QAAE,OAAO,gCAAY,CAAA;;QACrC,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAA;AACtC,CAAC;AAHD,8BAGC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Currency } from '@kittycorn-labs/sdk-core';
|
|
2
|
-
import { Route } from '../entities/route';
|
|
3
|
-
export
|
|
4
|
-
intermediateCurrency: string;
|
|
5
|
-
fee: number;
|
|
6
|
-
tickSpacing: number;
|
|
7
|
-
hooks: string;
|
|
8
|
-
hookData: string;
|
|
9
|
-
};
|
|
10
|
-
export declare const encodeRouteToPath: (route: Route<Currency, Currency>, exactOutput?: boolean
|
|
1
|
+
import { Currency } from '@kittycorn-labs/sdk-core';
|
|
2
|
+
import { Route } from '../entities/route';
|
|
3
|
+
export type PathKey = {
|
|
4
|
+
intermediateCurrency: string;
|
|
5
|
+
fee: number;
|
|
6
|
+
tickSpacing: number;
|
|
7
|
+
hooks: string;
|
|
8
|
+
hookData: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const encodeRouteToPath: (route: Route<Currency, Currency>, exactOutput?: boolean) => PathKey[];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeRouteToPath = void 0;
|
|
4
|
+
const internalConstants_1 = require("../internalConstants");
|
|
5
|
+
const encodeRouteToPath = (route, exactOutput) => {
|
|
6
|
+
// create a deep copy of pools so that we don't tamper with pool array on route
|
|
7
|
+
let pools = route.pools.map((p) => p);
|
|
8
|
+
if (exactOutput)
|
|
9
|
+
pools = pools.reverse();
|
|
10
|
+
let startingCurrency = exactOutput ? route.pathOutput : route.pathInput;
|
|
11
|
+
let pathKeys = [];
|
|
12
|
+
for (let pool of pools) {
|
|
13
|
+
const nextCurrency = startingCurrency.equals(pool.currency0) ? pool.currency1 : pool.currency0;
|
|
14
|
+
pathKeys.push({
|
|
15
|
+
intermediateCurrency: nextCurrency.isNative ? internalConstants_1.ADDRESS_ZERO : nextCurrency.address,
|
|
16
|
+
fee: pool.fee,
|
|
17
|
+
tickSpacing: pool.tickSpacing,
|
|
18
|
+
hooks: pool.hooks,
|
|
19
|
+
hookData: '0x',
|
|
20
|
+
});
|
|
21
|
+
startingCurrency = nextCurrency;
|
|
22
|
+
}
|
|
23
|
+
return exactOutput ? pathKeys.reverse() : pathKeys;
|
|
24
|
+
};
|
|
25
|
+
exports.encodeRouteToPath = encodeRouteToPath;
|
|
26
|
+
//# sourceMappingURL=encodeRouteToPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeRouteToPath.js","sourceRoot":"","sources":["../../../../src/utils/encodeRouteToPath.ts"],"names":[],"mappings":";;;AAEA,4DAAmD;AAU5C,MAAM,iBAAiB,GAAG,CAAC,KAAgC,EAAE,WAAqB,EAAa,EAAE;IACtG,+EAA+E;IAC/E,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,WAAW;QAAE,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;IACxC,IAAI,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;IACvE,IAAI,QAAQ,GAAc,EAAE,CAAA;IAE5B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QAE9F,QAAQ,CAAC,IAAI,CAAC;YACZ,oBAAoB,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO;YACjF,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAA;QAEF,gBAAgB,GAAG,YAAY,CAAA;KAChC;IAED,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AACpD,CAAC,CAAA;AAtBY,QAAA,iBAAiB,qBAsB7B"}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
export
|
|
2
|
-
[key in HookOptions]: boolean;
|
|
3
|
-
};
|
|
4
|
-
export declare enum HookOptions {
|
|
5
|
-
AfterRemoveLiquidityReturnsDelta = "afterRemoveLiquidityReturnsDelta",
|
|
6
|
-
AfterAddLiquidityReturnsDelta = "afterAddLiquidityReturnsDelta",
|
|
7
|
-
AfterSwapReturnsDelta = "afterSwapReturnsDelta",
|
|
8
|
-
BeforeSwapReturnsDelta = "beforeSwapReturnsDelta",
|
|
9
|
-
AfterDonate = "afterDonate",
|
|
10
|
-
BeforeDonate = "beforeDonate",
|
|
11
|
-
AfterSwap = "afterSwap",
|
|
12
|
-
BeforeSwap = "beforeSwap",
|
|
13
|
-
AfterRemoveLiquidity = "afterRemoveLiquidity",
|
|
14
|
-
BeforeRemoveLiquidity = "beforeRemoveLiquidity",
|
|
15
|
-
AfterAddLiquidity = "afterAddLiquidity",
|
|
16
|
-
BeforeAddLiquidity = "beforeAddLiquidity",
|
|
17
|
-
AfterInitialize = "afterInitialize",
|
|
18
|
-
BeforeInitialize = "beforeInitialize"
|
|
19
|
-
}
|
|
20
|
-
export declare const hookFlagIndex: {
|
|
21
|
-
afterRemoveLiquidityReturnsDelta: number;
|
|
22
|
-
afterAddLiquidityReturnsDelta: number;
|
|
23
|
-
afterSwapReturnsDelta: number;
|
|
24
|
-
beforeSwapReturnsDelta: number;
|
|
25
|
-
afterDonate: number;
|
|
26
|
-
beforeDonate: number;
|
|
27
|
-
afterSwap: number;
|
|
28
|
-
beforeSwap: number;
|
|
29
|
-
afterRemoveLiquidity: number;
|
|
30
|
-
beforeRemoveLiquidity: number;
|
|
31
|
-
afterAddLiquidity: number;
|
|
32
|
-
beforeAddLiquidity: number;
|
|
33
|
-
afterInitialize: number;
|
|
34
|
-
beforeInitialize: number;
|
|
35
|
-
};
|
|
36
|
-
export declare class Hook {
|
|
37
|
-
static permissions(address: string): HookPermissions;
|
|
38
|
-
static hasPermission(address: string, hookOption: HookOptions): boolean;
|
|
39
|
-
static hasInitializePermissions(address: string): boolean;
|
|
40
|
-
static hasLiquidityPermissions(address: string): boolean;
|
|
41
|
-
static hasSwapPermissions(address: string): boolean;
|
|
42
|
-
static hasDonatePermissions(address: string): boolean;
|
|
43
|
-
private static _hasPermission;
|
|
44
|
-
private static _checkAddress;
|
|
45
|
-
}
|
|
1
|
+
export type HookPermissions = {
|
|
2
|
+
[key in HookOptions]: boolean;
|
|
3
|
+
};
|
|
4
|
+
export declare enum HookOptions {
|
|
5
|
+
AfterRemoveLiquidityReturnsDelta = "afterRemoveLiquidityReturnsDelta",
|
|
6
|
+
AfterAddLiquidityReturnsDelta = "afterAddLiquidityReturnsDelta",
|
|
7
|
+
AfterSwapReturnsDelta = "afterSwapReturnsDelta",
|
|
8
|
+
BeforeSwapReturnsDelta = "beforeSwapReturnsDelta",
|
|
9
|
+
AfterDonate = "afterDonate",
|
|
10
|
+
BeforeDonate = "beforeDonate",
|
|
11
|
+
AfterSwap = "afterSwap",
|
|
12
|
+
BeforeSwap = "beforeSwap",
|
|
13
|
+
AfterRemoveLiquidity = "afterRemoveLiquidity",
|
|
14
|
+
BeforeRemoveLiquidity = "beforeRemoveLiquidity",
|
|
15
|
+
AfterAddLiquidity = "afterAddLiquidity",
|
|
16
|
+
BeforeAddLiquidity = "beforeAddLiquidity",
|
|
17
|
+
AfterInitialize = "afterInitialize",
|
|
18
|
+
BeforeInitialize = "beforeInitialize"
|
|
19
|
+
}
|
|
20
|
+
export declare const hookFlagIndex: {
|
|
21
|
+
afterRemoveLiquidityReturnsDelta: number;
|
|
22
|
+
afterAddLiquidityReturnsDelta: number;
|
|
23
|
+
afterSwapReturnsDelta: number;
|
|
24
|
+
beforeSwapReturnsDelta: number;
|
|
25
|
+
afterDonate: number;
|
|
26
|
+
beforeDonate: number;
|
|
27
|
+
afterSwap: number;
|
|
28
|
+
beforeSwap: number;
|
|
29
|
+
afterRemoveLiquidity: number;
|
|
30
|
+
beforeRemoveLiquidity: number;
|
|
31
|
+
afterAddLiquidity: number;
|
|
32
|
+
beforeAddLiquidity: number;
|
|
33
|
+
afterInitialize: number;
|
|
34
|
+
beforeInitialize: number;
|
|
35
|
+
};
|
|
36
|
+
export declare class Hook {
|
|
37
|
+
static permissions(address: string): HookPermissions;
|
|
38
|
+
static hasPermission(address: string, hookOption: HookOptions): boolean;
|
|
39
|
+
static hasInitializePermissions(address: string): boolean;
|
|
40
|
+
static hasLiquidityPermissions(address: string): boolean;
|
|
41
|
+
static hasSwapPermissions(address: string): boolean;
|
|
42
|
+
static hasDonatePermissions(address: string): boolean;
|
|
43
|
+
private static _hasPermission;
|
|
44
|
+
private static _checkAddress;
|
|
45
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Hook = exports.hookFlagIndex = exports.HookOptions = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
|
|
6
|
+
const address_1 = require("@ethersproject/address");
|
|
7
|
+
var HookOptions;
|
|
8
|
+
(function (HookOptions) {
|
|
9
|
+
HookOptions["AfterRemoveLiquidityReturnsDelta"] = "afterRemoveLiquidityReturnsDelta";
|
|
10
|
+
HookOptions["AfterAddLiquidityReturnsDelta"] = "afterAddLiquidityReturnsDelta";
|
|
11
|
+
HookOptions["AfterSwapReturnsDelta"] = "afterSwapReturnsDelta";
|
|
12
|
+
HookOptions["BeforeSwapReturnsDelta"] = "beforeSwapReturnsDelta";
|
|
13
|
+
HookOptions["AfterDonate"] = "afterDonate";
|
|
14
|
+
HookOptions["BeforeDonate"] = "beforeDonate";
|
|
15
|
+
HookOptions["AfterSwap"] = "afterSwap";
|
|
16
|
+
HookOptions["BeforeSwap"] = "beforeSwap";
|
|
17
|
+
HookOptions["AfterRemoveLiquidity"] = "afterRemoveLiquidity";
|
|
18
|
+
HookOptions["BeforeRemoveLiquidity"] = "beforeRemoveLiquidity";
|
|
19
|
+
HookOptions["AfterAddLiquidity"] = "afterAddLiquidity";
|
|
20
|
+
HookOptions["BeforeAddLiquidity"] = "beforeAddLiquidity";
|
|
21
|
+
HookOptions["AfterInitialize"] = "afterInitialize";
|
|
22
|
+
HookOptions["BeforeInitialize"] = "beforeInitialize";
|
|
23
|
+
})(HookOptions = exports.HookOptions || (exports.HookOptions = {}));
|
|
24
|
+
exports.hookFlagIndex = {
|
|
25
|
+
[HookOptions.AfterRemoveLiquidityReturnsDelta]: 0,
|
|
26
|
+
[HookOptions.AfterAddLiquidityReturnsDelta]: 1,
|
|
27
|
+
[HookOptions.AfterSwapReturnsDelta]: 2,
|
|
28
|
+
[HookOptions.BeforeSwapReturnsDelta]: 3,
|
|
29
|
+
[HookOptions.AfterDonate]: 4,
|
|
30
|
+
[HookOptions.BeforeDonate]: 5,
|
|
31
|
+
[HookOptions.AfterSwap]: 6,
|
|
32
|
+
[HookOptions.BeforeSwap]: 7,
|
|
33
|
+
[HookOptions.AfterRemoveLiquidity]: 8,
|
|
34
|
+
[HookOptions.BeforeRemoveLiquidity]: 9,
|
|
35
|
+
[HookOptions.AfterAddLiquidity]: 10,
|
|
36
|
+
[HookOptions.BeforeAddLiquidity]: 11,
|
|
37
|
+
[HookOptions.AfterInitialize]: 12,
|
|
38
|
+
[HookOptions.BeforeInitialize]: 13,
|
|
39
|
+
};
|
|
40
|
+
class Hook {
|
|
41
|
+
static permissions(address) {
|
|
42
|
+
this._checkAddress(address);
|
|
43
|
+
return {
|
|
44
|
+
beforeInitialize: this._hasPermission(address, HookOptions.BeforeInitialize),
|
|
45
|
+
afterInitialize: this._hasPermission(address, HookOptions.AfterInitialize),
|
|
46
|
+
beforeAddLiquidity: this._hasPermission(address, HookOptions.BeforeAddLiquidity),
|
|
47
|
+
afterAddLiquidity: this._hasPermission(address, HookOptions.AfterAddLiquidity),
|
|
48
|
+
beforeRemoveLiquidity: this._hasPermission(address, HookOptions.BeforeRemoveLiquidity),
|
|
49
|
+
afterRemoveLiquidity: this._hasPermission(address, HookOptions.AfterRemoveLiquidity),
|
|
50
|
+
beforeSwap: this._hasPermission(address, HookOptions.BeforeSwap),
|
|
51
|
+
afterSwap: this._hasPermission(address, HookOptions.AfterSwap),
|
|
52
|
+
beforeDonate: this._hasPermission(address, HookOptions.BeforeDonate),
|
|
53
|
+
afterDonate: this._hasPermission(address, HookOptions.AfterDonate),
|
|
54
|
+
beforeSwapReturnsDelta: this._hasPermission(address, HookOptions.BeforeSwapReturnsDelta),
|
|
55
|
+
afterSwapReturnsDelta: this._hasPermission(address, HookOptions.AfterSwapReturnsDelta),
|
|
56
|
+
afterAddLiquidityReturnsDelta: this._hasPermission(address, HookOptions.AfterAddLiquidityReturnsDelta),
|
|
57
|
+
afterRemoveLiquidityReturnsDelta: this._hasPermission(address, HookOptions.AfterRemoveLiquidityReturnsDelta),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
static hasPermission(address, hookOption) {
|
|
61
|
+
this._checkAddress(address);
|
|
62
|
+
return this._hasPermission(address, hookOption);
|
|
63
|
+
}
|
|
64
|
+
static hasInitializePermissions(address) {
|
|
65
|
+
this._checkAddress(address);
|
|
66
|
+
return (this._hasPermission(address, HookOptions.BeforeInitialize) ||
|
|
67
|
+
Hook._hasPermission(address, HookOptions.AfterInitialize));
|
|
68
|
+
}
|
|
69
|
+
static hasLiquidityPermissions(address) {
|
|
70
|
+
this._checkAddress(address);
|
|
71
|
+
// this implicitly encapsulates liquidity delta permissions
|
|
72
|
+
return (this._hasPermission(address, HookOptions.BeforeAddLiquidity) ||
|
|
73
|
+
Hook._hasPermission(address, HookOptions.AfterAddLiquidity) ||
|
|
74
|
+
Hook._hasPermission(address, HookOptions.BeforeRemoveLiquidity) ||
|
|
75
|
+
Hook._hasPermission(address, HookOptions.AfterRemoveLiquidity));
|
|
76
|
+
}
|
|
77
|
+
static hasSwapPermissions(address) {
|
|
78
|
+
this._checkAddress(address);
|
|
79
|
+
// this implicitly encapsulates swap delta permissions
|
|
80
|
+
return this._hasPermission(address, HookOptions.BeforeSwap) || Hook._hasPermission(address, HookOptions.AfterSwap);
|
|
81
|
+
}
|
|
82
|
+
static hasDonatePermissions(address) {
|
|
83
|
+
this._checkAddress(address);
|
|
84
|
+
return (this._hasPermission(address, HookOptions.BeforeDonate) || Hook._hasPermission(address, HookOptions.AfterDonate));
|
|
85
|
+
}
|
|
86
|
+
static _hasPermission(address, hookOption) {
|
|
87
|
+
// Use only the last 4 bytes (32 bits) to avoid JavaScript precision issues
|
|
88
|
+
// All hook flags are in bits 0-13, which fit comfortably in 32 bits
|
|
89
|
+
const last4Bytes = '0x' + address.slice(-8);
|
|
90
|
+
return !!(parseInt(last4Bytes, 16) & (1 << exports.hookFlagIndex[hookOption]));
|
|
91
|
+
}
|
|
92
|
+
static _checkAddress(address) {
|
|
93
|
+
(0, tiny_invariant_1.default)((0, address_1.isAddress)(address), 'invalid address');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.Hook = Hook;
|
|
97
|
+
//# sourceMappingURL=hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../../src/utils/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from './encodeRouteToPath';
|
|
2
|
-
export * from './v4Planner';
|
|
3
|
-
export * from './v4PositionPlanner';
|
|
4
|
-
export * from './calldata';
|
|
5
|
-
export * from './v4BaseActionsParser';
|
|
6
|
-
export * from './currencyMap';
|
|
7
|
-
export * from './encodeRouteToPath';
|
|
8
|
-
export * from './pathCurrency';
|
|
9
|
-
export * from './priceTickConversions';
|
|
10
|
-
export * from './sortsBefore';
|
|
11
|
-
export * from './hook';
|
|
1
|
+
export * from './encodeRouteToPath';
|
|
2
|
+
export * from './v4Planner';
|
|
3
|
+
export * from './v4PositionPlanner';
|
|
4
|
+
export * from './calldata';
|
|
5
|
+
export * from './v4BaseActionsParser';
|
|
6
|
+
export * from './currencyMap';
|
|
7
|
+
export * from './encodeRouteToPath';
|
|
8
|
+
export * from './pathCurrency';
|
|
9
|
+
export * from './priceTickConversions';
|
|
10
|
+
export * from './sortsBefore';
|
|
11
|
+
export * from './hook';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./encodeRouteToPath"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./v4Planner"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./v4PositionPlanner"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./calldata"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./v4BaseActionsParser"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./currencyMap"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./encodeRouteToPath"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./pathCurrency"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./priceTickConversions"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./sortsBefore"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./hook"), exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,8DAAmC;AACnC,sDAA2B;AAC3B,8DAAmC;AACnC,qDAA0B;AAC1B,gEAAqC;AACrC,wDAA6B;AAC7B,8DAAmC;AACnC,yDAA8B;AAC9B,iEAAsC;AACtC,wDAA6B;AAC7B,iDAAsB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Currency, CurrencyAmount } from '@kittycorn-labs/sdk-core';
|
|
2
|
-
import { Pool } from '../entities/pool';
|
|
3
|
-
export declare function amountWithPathCurrency(amount: CurrencyAmount<Currency>, pool: Pool): CurrencyAmount<Currency>;
|
|
4
|
-
export declare function getPathCurrency(currency: Currency, pool: Pool): Currency;
|
|
1
|
+
import { Currency, CurrencyAmount } from '@kittycorn-labs/sdk-core';
|
|
2
|
+
import { Pool } from '../entities/pool';
|
|
3
|
+
export declare function amountWithPathCurrency(amount: CurrencyAmount<Currency>, pool: Pool): CurrencyAmount<Currency>;
|
|
4
|
+
export declare function getPathCurrency(currency: Currency, pool: Pool): Currency;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPathCurrency = exports.amountWithPathCurrency = void 0;
|
|
4
|
+
const sdk_core_1 = require("@kittycorn-labs/sdk-core");
|
|
5
|
+
function amountWithPathCurrency(amount, pool) {
|
|
6
|
+
return sdk_core_1.CurrencyAmount.fromFractionalAmount(getPathCurrency(amount.currency, pool), amount.numerator, amount.denominator);
|
|
7
|
+
}
|
|
8
|
+
exports.amountWithPathCurrency = amountWithPathCurrency;
|
|
9
|
+
function getPathCurrency(currency, pool) {
|
|
10
|
+
if (pool.involvesCurrency(currency)) {
|
|
11
|
+
return currency;
|
|
12
|
+
}
|
|
13
|
+
else if (pool.involvesCurrency(currency.wrapped)) {
|
|
14
|
+
return currency.wrapped;
|
|
15
|
+
}
|
|
16
|
+
else if (pool.currency0.wrapped.equals(currency)) {
|
|
17
|
+
return pool.currency0;
|
|
18
|
+
}
|
|
19
|
+
else if (pool.currency1.wrapped.equals(currency)) {
|
|
20
|
+
return pool.currency1;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw new Error(`Expected currency ${currency.symbol} to be either ${pool.currency0.symbol} or ${pool.currency1.symbol}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.getPathCurrency = getPathCurrency;
|
|
27
|
+
//# sourceMappingURL=pathCurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathCurrency.js","sourceRoot":"","sources":["../../../../src/utils/pathCurrency.ts"],"names":[],"mappings":";;;AAAA,uDAAmE;AAGnE,SAAgB,sBAAsB,CAAC,MAAgC,EAAE,IAAU;IACjF,OAAO,yBAAc,CAAC,oBAAoB,CACxC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EACtC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,CACnB,CAAA;AACH,CAAC;AAND,wDAMC;AAED,SAAgB,eAAe,CAAC,QAAkB,EAAE,IAAU;IAC5D,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;QACnC,OAAO,QAAQ,CAAA;KAChB;SAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClD,OAAO,QAAQ,CAAC,OAAO,CAAA;KACxB;SAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QAClD,OAAO,IAAI,CAAC,SAAS,CAAA;KACtB;SAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QAClD,OAAO,IAAI,CAAC,SAAS,CAAA;KACtB;SAAM;QACL,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,MAAM,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CACzG,CAAA;KACF;AACH,CAAC;AAdD,0CAcC"}
|