sally-defi-ts-sdk 0.3.2
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 +263 -0
- package/dist/aio/client.d.ts +93 -0
- package/dist/aio/client.d.ts.map +1 -0
- package/dist/aio/client.js +283 -0
- package/dist/aio/client.js.map +1 -0
- package/dist/aio/index.d.ts +20 -0
- package/dist/aio/index.d.ts.map +1 -0
- package/dist/aio/index.js +19 -0
- package/dist/aio/index.js.map +1 -0
- package/dist/aio/modules/fees.d.ts +19 -0
- package/dist/aio/modules/fees.d.ts.map +1 -0
- package/dist/aio/modules/fees.js +47 -0
- package/dist/aio/modules/fees.js.map +1 -0
- package/dist/aio/modules/liquidity.d.ts +47 -0
- package/dist/aio/modules/liquidity.d.ts.map +1 -0
- package/dist/aio/modules/liquidity.js +115 -0
- package/dist/aio/modules/liquidity.js.map +1 -0
- package/dist/aio/modules/prices.d.ts +18 -0
- package/dist/aio/modules/prices.d.ts.map +1 -0
- package/dist/aio/modules/prices.js +48 -0
- package/dist/aio/modules/prices.js.map +1 -0
- package/dist/aio/modules/swap.d.ts +50 -0
- package/dist/aio/modules/swap.d.ts.map +1 -0
- package/dist/aio/modules/swap.js +267 -0
- package/dist/aio/modules/swap.js.map +1 -0
- package/dist/aio/modules/wallet.d.ts +13 -0
- package/dist/aio/modules/wallet.d.ts.map +1 -0
- package/dist/aio/modules/wallet.js +27 -0
- package/dist/aio/modules/wallet.js.map +1 -0
- package/dist/aio/token.d.ts +19 -0
- package/dist/aio/token.d.ts.map +1 -0
- package/dist/aio/token.js +50 -0
- package/dist/aio/token.js.map +1 -0
- package/dist/client.d.ts +142 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +452 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +36 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +39 -0
- package/dist/constants.js.map +1 -0
- package/dist/data/deployment.json +1 -0
- package/dist/deployment.d.ts +44 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +118 -0
- package/dist/deployment.js.map +1 -0
- package/dist/errors.d.ts +57 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +197 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/fees.d.ts +32 -0
- package/dist/modules/fees.d.ts.map +1 -0
- package/dist/modules/fees.js +64 -0
- package/dist/modules/fees.js.map +1 -0
- package/dist/modules/liquidity.d.ts +134 -0
- package/dist/modules/liquidity.d.ts.map +1 -0
- package/dist/modules/liquidity.js +277 -0
- package/dist/modules/liquidity.js.map +1 -0
- package/dist/modules/prices.d.ts +47 -0
- package/dist/modules/prices.d.ts.map +1 -0
- package/dist/modules/prices.js +85 -0
- package/dist/modules/prices.js.map +1 -0
- package/dist/modules/swap.d.ts +102 -0
- package/dist/modules/swap.d.ts.map +1 -0
- package/dist/modules/swap.js +400 -0
- package/dist/modules/swap.js.map +1 -0
- package/dist/modules/wallet.d.ts +16 -0
- package/dist/modules/wallet.d.ts.map +1 -0
- package/dist/modules/wallet.js +30 -0
- package/dist/modules/wallet.js.map +1 -0
- package/dist/permit2.d.ts +97 -0
- package/dist/permit2.d.ts.map +1 -0
- package/dist/permit2.js +130 -0
- package/dist/permit2.js.map +1 -0
- package/dist/previews.d.ts +57 -0
- package/dist/previews.d.ts.map +1 -0
- package/dist/previews.js +69 -0
- package/dist/previews.js.map +1 -0
- package/dist/safety.d.ts +80 -0
- package/dist/safety.d.ts.map +1 -0
- package/dist/safety.js +133 -0
- package/dist/safety.js.map +1 -0
- package/dist/token.d.ts +215 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +239 -0
- package/dist/token.js.map +1 -0
- package/dist/types.d.ts +229 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +462 -0
- package/dist/types.js.map +1 -0
- package/dist/util.d.ts +13 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +22 -0
- package/dist/util.js.map +1 -0
- package/package.json +48 -0
- package/src/aio/client.ts +329 -0
- package/src/aio/index.ts +20 -0
- package/src/aio/modules/fees.ts +60 -0
- package/src/aio/modules/liquidity.ts +181 -0
- package/src/aio/modules/prices.ts +57 -0
- package/src/aio/modules/swap.ts +347 -0
- package/src/aio/modules/wallet.ts +34 -0
- package/src/aio/token.ts +59 -0
- package/src/client.ts +526 -0
- package/src/constants.ts +43 -0
- package/src/data/deployment.json +1 -0
- package/src/deployment.ts +132 -0
- package/src/errors.ts +215 -0
- package/src/index.ts +90 -0
- package/src/modules/fees.ts +78 -0
- package/src/modules/liquidity.ts +446 -0
- package/src/modules/prices.ts +97 -0
- package/src/modules/swap.ts +502 -0
- package/src/modules/wallet.ts +37 -0
- package/src/permit2.ts +169 -0
- package/src/previews.ts +95 -0
- package/src/safety.ts +152 -0
- package/src/token.ts +254 -0
- package/src/types.ts +438 -0
- package/src/util.ts +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../src/modules/fees.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Liquidity management: add / increase / decrease / remove / lock / harvest,
|
|
3
|
+
* plus position & pool reads (Sidecar views served through the liq proxy).
|
|
4
|
+
*
|
|
5
|
+
* Add-liquidity takes a single struct on-chain; the SDK exposes explicit options
|
|
6
|
+
* with sane defaults (mins = 0, lockDays = 0, referral = zero, deadline auto) and
|
|
7
|
+
* auto-approves the ERC-20 sides to the liq proxy before sending.
|
|
8
|
+
*/
|
|
9
|
+
import type { SallyClient } from "../client.js";
|
|
10
|
+
import { ClaimableFees, Lock, V2PoolState, V2Position, V3PoolState, V3Position, V4PoolState, V4Position } from "../types.js";
|
|
11
|
+
type Tx = Record<string, any>;
|
|
12
|
+
type PoolKey = [string, string, number, number, string];
|
|
13
|
+
export declare class Liquidity {
|
|
14
|
+
private _c;
|
|
15
|
+
private _liq;
|
|
16
|
+
private _side;
|
|
17
|
+
constructor(client: SallyClient);
|
|
18
|
+
private _a;
|
|
19
|
+
deadline(secs?: number): number;
|
|
20
|
+
/**
|
|
21
|
+
* Approve each [token, amount] ERC-20 side to the liq proxy.
|
|
22
|
+
* Returns the native value to attach (sum of any native-token sides).
|
|
23
|
+
*/
|
|
24
|
+
private _approveAndValue;
|
|
25
|
+
addV2(dexId: number, tokenA: string, tokenB: string, amountA: bigint, amountB: bigint, opts?: {
|
|
26
|
+
amountAMin?: bigint;
|
|
27
|
+
amountBMin?: bigint;
|
|
28
|
+
lockDays?: number;
|
|
29
|
+
referral?: string;
|
|
30
|
+
deadline?: number | null;
|
|
31
|
+
approve?: boolean;
|
|
32
|
+
tx?: Tx;
|
|
33
|
+
}): Promise<any>;
|
|
34
|
+
addV3(dexId: number, token0: string, token1: string, fee: number, tickLower: number, tickUpper: number, amount0: bigint, amount1: bigint, opts?: {
|
|
35
|
+
amount0Min?: bigint;
|
|
36
|
+
amount1Min?: bigint;
|
|
37
|
+
lockDays?: number;
|
|
38
|
+
referral?: string;
|
|
39
|
+
deadline?: number | null;
|
|
40
|
+
approve?: boolean;
|
|
41
|
+
tx?: Tx;
|
|
42
|
+
}): Promise<any>;
|
|
43
|
+
/** poolKey = [currency0, currency1, fee, tickSpacing, hooks]. */
|
|
44
|
+
addV4(dexId: number, poolKey: PoolKey, tickLower: number, tickUpper: number, liquidity: bigint, amount0Max: bigint, amount1Max: bigint, amount0: bigint, amount1: bigint, opts?: {
|
|
45
|
+
lockDays?: number;
|
|
46
|
+
referral?: string;
|
|
47
|
+
deadline?: number | null;
|
|
48
|
+
approve?: boolean;
|
|
49
|
+
tx?: Tx;
|
|
50
|
+
}): Promise<any>;
|
|
51
|
+
addSlipstream(dexId: number, token0: string, token1: string, tickSpacing: number, tickLower: number, tickUpper: number, amount0: bigint, amount1: bigint, opts?: {
|
|
52
|
+
amount0Min?: bigint;
|
|
53
|
+
amount1Min?: bigint;
|
|
54
|
+
referral?: string;
|
|
55
|
+
lockDays?: number;
|
|
56
|
+
deadline?: number | null;
|
|
57
|
+
sqrtPriceX96?: bigint;
|
|
58
|
+
approve?: boolean;
|
|
59
|
+
tx?: Tx;
|
|
60
|
+
}): Promise<any>;
|
|
61
|
+
increaseV3(npm: string, tokenId: bigint, amount0: bigint, amount1: bigint, opts?: {
|
|
62
|
+
amount0Min?: bigint;
|
|
63
|
+
amount1Min?: bigint;
|
|
64
|
+
deadline?: number | null;
|
|
65
|
+
referral?: string;
|
|
66
|
+
tx?: Tx;
|
|
67
|
+
}): Promise<any>;
|
|
68
|
+
decreaseV3(npm: string, tokenId: bigint, liquidity: bigint, opts?: {
|
|
69
|
+
amount0Min?: bigint;
|
|
70
|
+
amount1Min?: bigint;
|
|
71
|
+
deadline?: number | null;
|
|
72
|
+
referral?: string;
|
|
73
|
+
tx?: Tx;
|
|
74
|
+
}): Promise<any>;
|
|
75
|
+
increaseV4(npm: string, tokenId: bigint, liquidity: bigint, amount0Max: bigint, amount1Max: bigint, amount0: bigint, amount1: bigint, opts?: {
|
|
76
|
+
deadline?: number | null;
|
|
77
|
+
referral?: string;
|
|
78
|
+
tx?: Tx;
|
|
79
|
+
}): Promise<any>;
|
|
80
|
+
decreaseV4(npm: string, tokenId: bigint, liquidity: bigint, amount0Min: bigint, amount1Min: bigint, opts?: {
|
|
81
|
+
deadline?: number | null;
|
|
82
|
+
referral?: string;
|
|
83
|
+
tx?: Tx;
|
|
84
|
+
}): Promise<any>;
|
|
85
|
+
/** Remove V2 LP. `removeLiquidityV2(dexId, tokenA, tokenB, lpAmount, …)`. */
|
|
86
|
+
removeV2(dexId: number, tokenA: string, tokenB: string, liquidity: bigint, opts?: {
|
|
87
|
+
amountAMin?: bigint;
|
|
88
|
+
amountBMin?: bigint;
|
|
89
|
+
deadline?: number | null;
|
|
90
|
+
referral?: string;
|
|
91
|
+
tx?: Tx;
|
|
92
|
+
}): Promise<any>;
|
|
93
|
+
lockV2(pair: string, amount: bigint, lockDays: number, tx?: Tx): Promise<any>;
|
|
94
|
+
lockV3(npm: string, tokenId: bigint, lockDays: number, tx?: Tx): Promise<any>;
|
|
95
|
+
lockV4(npm: string, tokenId: bigint, lockDays: number, tx?: Tx): Promise<any>;
|
|
96
|
+
unlockV2(lockKey: string, tx?: Tx): Promise<any>;
|
|
97
|
+
unlockV3(npm: string, tokenId: bigint, tx?: Tx): Promise<any>;
|
|
98
|
+
unlockV4(npm: string, tokenId: bigint, tx?: Tx): Promise<any>;
|
|
99
|
+
claimFeesV3(npm: string, tokenId: bigint, recipient?: string | null, tx?: Tx): Promise<any>;
|
|
100
|
+
claimFeesV4(npm: string, tokenId: bigint, recipient?: string | null, tx?: Tx): Promise<any>;
|
|
101
|
+
claimFeesV3Locked(tokenId: bigint, recipient: string, outputToken: string, tx?: Tx): Promise<any>;
|
|
102
|
+
claimFeesV4Locked(npm: string, tokenId: bigint, recipient: string, tx?: Tx): Promise<any>;
|
|
103
|
+
/** Claim fees from many positions at once into one token. `massClaimFees`. */
|
|
104
|
+
massClaimFees(npms: string[], tokenIds: bigint[], outputToken: string, tx?: Tx): Promise<any>;
|
|
105
|
+
harvestOp(op: number, data: string, tx?: Tx): Promise<any>;
|
|
106
|
+
claimBatchFees(tokens: string[], tx?: Tx): Promise<any>;
|
|
107
|
+
claimReferralFees(tokens: string[], tx?: Tx): Promise<any>;
|
|
108
|
+
positionsV2(wallet: string, pairs: string[]): Promise<V2Position[]>;
|
|
109
|
+
positionsV3(wallet: string, start?: number, end?: number): Promise<V3Position[]>;
|
|
110
|
+
positionsV4(wallet: string, start?: number, end?: number): Promise<V4Position[]>;
|
|
111
|
+
poolStateV2(pair: string): Promise<V2PoolState>;
|
|
112
|
+
poolStateV3(pool: string): Promise<V3PoolState>;
|
|
113
|
+
poolStateV4(poolKey: PoolKey): Promise<V4PoolState>;
|
|
114
|
+
locks(wallet: string): Promise<Lock[]>;
|
|
115
|
+
lockKeys(wallet: string): Promise<string[]>;
|
|
116
|
+
claimableFees(npm: string, tokenId: bigint): Promise<ClaimableFees>;
|
|
117
|
+
/** USD value (1e18) of `amount` of `token`. `usdValue`. */
|
|
118
|
+
usdValue(token: string, amount: bigint): Promise<bigint>;
|
|
119
|
+
isPaused(): Promise<boolean>;
|
|
120
|
+
totalLockedLp(pair: string): Promise<bigint>;
|
|
121
|
+
/** Current V2 lock nonce of a wallet (input to {@link removeV2}). */
|
|
122
|
+
v2LockNonce(wallet: string): Promise<bigint>;
|
|
123
|
+
priceOracle(): Promise<string>;
|
|
124
|
+
/** Harvest/op fee split. `getOpFee(amount) -> [fee, net]`. */
|
|
125
|
+
opFee(amount: bigint): Promise<[bigint, bigint]>;
|
|
126
|
+
minLockDays(): Promise<number>;
|
|
127
|
+
maxLocksPerOwner(): Promise<number>;
|
|
128
|
+
dexCount(version: number): Promise<number>;
|
|
129
|
+
dex(version: number, index: number): Promise<any[]>;
|
|
130
|
+
/** All registered DEXes for a version (name, router/factory, …, enabled). */
|
|
131
|
+
dexes(version: number): Promise<any[][]>;
|
|
132
|
+
}
|
|
133
|
+
export {};
|
|
134
|
+
//# sourceMappingURL=liquidity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidity.d.ts","sourceRoot":"","sources":["../../src/modules/liquidity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EACL,aAAa,EACb,IAAI,EACJ,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACX,MAAM,aAAa,CAAC;AAIrB,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9B,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAExD,qBAAa,SAAS;IACpB,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,KAAK,CAAW;gBAEZ,MAAM,EAAE,WAAW;IAS/B,OAAO,CAAC,EAAE;IAIV,QAAQ,CAAC,IAAI,GAAE,MAA8B,GAAG,MAAM;IAItD;;;OAGG;YACW,gBAAgB;IAiBxB,KAAK,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,EAAE,CAAC,EAAE,EAAE,CAAC;KACJ,GACL,OAAO,CAAC,GAAG,CAAC;IAaT,KAAK,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,EAAE,CAAC,EAAE,EAAE,CAAC;KACJ,GACL,OAAO,CAAC,GAAG,CAAC;IAaf,iEAAiE;IAC3D,KAAK,CACT,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,EAAE,CAAC,EAAE,EAAE,CAAC;KACJ,GACL,OAAO,CAAC,GAAG,CAAC;IAcT,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,EAAE,CAAC,EAAE,EAAE,CAAC;KACJ,GACL,OAAO,CAAC,GAAG,CAAC;IAgBT,UAAU,CACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,EAAE,CAAA;KAAO,GAC5G,OAAO,CAAC,GAAG,CAAC;IAQT,UAAU,CACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,EAAE,CAAA;KAAO,GAC5G,OAAO,CAAC,GAAG,CAAC;IAQT,UAAU,CACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,EAAE,CAAA;KAAO,GAClE,OAAO,CAAC,GAAG,CAAC;IAQT,UAAU,CACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,EAAE,CAAA;KAAO,GAClE,OAAO,CAAC,GAAG,CAAC;IAQf,6EAA6E;IACvE,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,EAAE,CAAA;KAAO,GAC5G,OAAO,CAAC,GAAG,CAAC;IAWT,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjF,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAOjE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,IAAW,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAKrG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,IAAW,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAKrG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAQrG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAInG,8EAA8E;IACxE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAQjG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9D,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKnE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKtE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKtE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAKnD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAKtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK3C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzE,2DAA2D;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD,qEAAqE;IAC/D,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC,8DAA8D;IACxD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAKhD,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKnC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAMzD,6EAA6E;IACvE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;CAM/C"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Liquidity management: add / increase / decrease / remove / lock / harvest,
|
|
3
|
+
* plus position & pool reads (Sidecar views served through the liq proxy).
|
|
4
|
+
*
|
|
5
|
+
* Add-liquidity takes a single struct on-chain; the SDK exposes explicit options
|
|
6
|
+
* with sane defaults (mins = 0, lockDays = 0, referral = zero, deadline auto) and
|
|
7
|
+
* auto-approves the ERC-20 sides to the liq proxy before sending.
|
|
8
|
+
*/
|
|
9
|
+
import { getAddress } from "ethers";
|
|
10
|
+
import { ZERO, isNative } from "../token.js";
|
|
11
|
+
import { ClaimableFees, Lock, V2PoolState, V2Position, V3PoolState, V3Position, V4PoolState, V4Position, } from "../types.js";
|
|
12
|
+
const DEFAULT_DEADLINE_SECS = 1200; // 20 min
|
|
13
|
+
export class Liquidity {
|
|
14
|
+
_c;
|
|
15
|
+
_liq;
|
|
16
|
+
_side;
|
|
17
|
+
constructor(client) {
|
|
18
|
+
this._c = client;
|
|
19
|
+
this._liq = client.liquidityContract;
|
|
20
|
+
this._side = client.sidecarContract;
|
|
21
|
+
}
|
|
22
|
+
// ------------------------------------------------------------------ //
|
|
23
|
+
// helpers
|
|
24
|
+
// ------------------------------------------------------------------ //
|
|
25
|
+
_a(x) {
|
|
26
|
+
return getAddress(x);
|
|
27
|
+
}
|
|
28
|
+
deadline(secs = DEFAULT_DEADLINE_SECS) {
|
|
29
|
+
return Math.floor(Date.now() / 1000) + secs;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Approve each [token, amount] ERC-20 side to the liq proxy.
|
|
33
|
+
* Returns the native value to attach (sum of any native-token sides).
|
|
34
|
+
*/
|
|
35
|
+
async _approveAndValue(pairs) {
|
|
36
|
+
const spender = this._c.addresses["liquidity"];
|
|
37
|
+
let value = 0n;
|
|
38
|
+
for (const [token, amount] of pairs) {
|
|
39
|
+
if (amount <= 0n)
|
|
40
|
+
continue;
|
|
41
|
+
if (isNative(token)) {
|
|
42
|
+
value += amount;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
await this._c.token(token).ensureAllowance(spender, amount);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
// ------------------------------------------------------------------ //
|
|
51
|
+
// add liquidity
|
|
52
|
+
// ------------------------------------------------------------------ //
|
|
53
|
+
async addV2(dexId, tokenA, tokenB, amountA, amountB, opts = {}) {
|
|
54
|
+
tokenA = this._a(tokenA);
|
|
55
|
+
tokenB = this._a(tokenB);
|
|
56
|
+
const approve = opts.approve ?? true;
|
|
57
|
+
const value = approve ? await this._approveAndValue([[tokenA, amountA], [tokenB, amountB]]) : 0n;
|
|
58
|
+
const p = [
|
|
59
|
+
dexId, tokenA, tokenB, amountA, amountB,
|
|
60
|
+
opts.amountAMin ?? 0n, opts.amountBMin ?? 0n, opts.lockDays ?? 0, this._a(opts.referral ?? ZERO),
|
|
61
|
+
opts.deadline ?? this.deadline(),
|
|
62
|
+
];
|
|
63
|
+
return this._c.send(this._liq.getFunction("addLiquidityV2"), [p], { value, ...(opts.tx ?? {}) });
|
|
64
|
+
}
|
|
65
|
+
async addV3(dexId, token0, token1, fee, tickLower, tickUpper, amount0, amount1, opts = {}) {
|
|
66
|
+
token0 = this._a(token0);
|
|
67
|
+
token1 = this._a(token1);
|
|
68
|
+
const approve = opts.approve ?? true;
|
|
69
|
+
const value = approve ? await this._approveAndValue([[token0, amount0], [token1, amount1]]) : 0n;
|
|
70
|
+
const p = [
|
|
71
|
+
dexId, token0, token1, fee, tickLower, tickUpper,
|
|
72
|
+
amount0, amount1, opts.amount0Min ?? 0n, opts.amount1Min ?? 0n,
|
|
73
|
+
opts.lockDays ?? 0, this._a(opts.referral ?? ZERO), opts.deadline ?? this.deadline(),
|
|
74
|
+
];
|
|
75
|
+
return this._c.send(this._liq.getFunction("addLiquidityV3"), [p], { value, ...(opts.tx ?? {}) });
|
|
76
|
+
}
|
|
77
|
+
/** poolKey = [currency0, currency1, fee, tickSpacing, hooks]. */
|
|
78
|
+
async addV4(dexId, poolKey, tickLower, tickUpper, liquidity, amount0Max, amount1Max, amount0, amount1, opts = {}) {
|
|
79
|
+
const c0 = this._a(poolKey[0]);
|
|
80
|
+
const c1 = this._a(poolKey[1]);
|
|
81
|
+
const approve = opts.approve ?? true;
|
|
82
|
+
const value = approve ? await this._approveAndValue([[c0, amount0], [c1, amount1]]) : 0n;
|
|
83
|
+
const key = [c0, c1, poolKey[2], poolKey[3], this._a(poolKey[4])];
|
|
84
|
+
const p = [
|
|
85
|
+
dexId, key, tickLower, tickUpper, liquidity,
|
|
86
|
+
amount0Max, amount1Max, amount0, amount1,
|
|
87
|
+
opts.lockDays ?? 0, this._a(opts.referral ?? ZERO), opts.deadline ?? this.deadline(),
|
|
88
|
+
];
|
|
89
|
+
return this._c.send(this._liq.getFunction("addLiquidityV4"), [p], { value, ...(opts.tx ?? {}) });
|
|
90
|
+
}
|
|
91
|
+
async addSlipstream(dexId, token0, token1, tickSpacing, tickLower, tickUpper, amount0, amount1, opts = {}) {
|
|
92
|
+
token0 = this._a(token0);
|
|
93
|
+
token1 = this._a(token1);
|
|
94
|
+
const approve = opts.approve ?? true;
|
|
95
|
+
const value = approve ? await this._approveAndValue([[token0, amount0], [token1, amount1]]) : 0n;
|
|
96
|
+
const p = [
|
|
97
|
+
dexId, token0, token1, tickSpacing, tickLower, tickUpper,
|
|
98
|
+
amount0, amount1, opts.amount0Min ?? 0n, opts.amount1Min ?? 0n, this._a(opts.referral ?? ZERO),
|
|
99
|
+
opts.lockDays ?? 0, opts.deadline ?? this.deadline(), opts.sqrtPriceX96 ?? 0n,
|
|
100
|
+
];
|
|
101
|
+
return this._c.send(this._liq.getFunction("addLiquiditySlipstream"), [p], { value, ...(opts.tx ?? {}) });
|
|
102
|
+
}
|
|
103
|
+
// ------------------------------------------------------------------ //
|
|
104
|
+
// increase / decrease / remove
|
|
105
|
+
// ------------------------------------------------------------------ //
|
|
106
|
+
async increaseV3(npm, tokenId, amount0, amount1, opts = {}) {
|
|
107
|
+
const fn = this._liq.getFunction("increaseLiquidityV3");
|
|
108
|
+
return this._c.send(fn, [
|
|
109
|
+
this._a(npm), tokenId, amount0, amount1, opts.amount0Min ?? 0n, opts.amount1Min ?? 0n,
|
|
110
|
+
opts.deadline ?? this.deadline(), this._a(opts.referral ?? ZERO),
|
|
111
|
+
], opts.tx ?? {});
|
|
112
|
+
}
|
|
113
|
+
async decreaseV3(npm, tokenId, liquidity, opts = {}) {
|
|
114
|
+
const fn = this._liq.getFunction("decreaseLiquidityV3");
|
|
115
|
+
return this._c.send(fn, [
|
|
116
|
+
this._a(npm), tokenId, liquidity, opts.amount0Min ?? 0n, opts.amount1Min ?? 0n,
|
|
117
|
+
opts.deadline ?? this.deadline(), this._a(opts.referral ?? ZERO),
|
|
118
|
+
], opts.tx ?? {});
|
|
119
|
+
}
|
|
120
|
+
async increaseV4(npm, tokenId, liquidity, amount0Max, amount1Max, amount0, amount1, opts = {}) {
|
|
121
|
+
const fn = this._liq.getFunction("increaseLiquidityV4");
|
|
122
|
+
return this._c.send(fn, [
|
|
123
|
+
this._a(npm), tokenId, liquidity, amount0Max, amount1Max, amount0, amount1,
|
|
124
|
+
opts.deadline ?? this.deadline(), this._a(opts.referral ?? ZERO),
|
|
125
|
+
], opts.tx ?? {});
|
|
126
|
+
}
|
|
127
|
+
async decreaseV4(npm, tokenId, liquidity, amount0Min, amount1Min, opts = {}) {
|
|
128
|
+
const fn = this._liq.getFunction("decreaseLiquidityV4");
|
|
129
|
+
return this._c.send(fn, [
|
|
130
|
+
this._a(npm), tokenId, liquidity, amount0Min, amount1Min,
|
|
131
|
+
opts.deadline ?? this.deadline(), this._a(opts.referral ?? ZERO),
|
|
132
|
+
], opts.tx ?? {});
|
|
133
|
+
}
|
|
134
|
+
/** Remove V2 LP. `removeLiquidityV2(dexId, tokenA, tokenB, lpAmount, …)`. */
|
|
135
|
+
async removeV2(dexId, tokenA, tokenB, liquidity, opts = {}) {
|
|
136
|
+
const fn = this._liq.getFunction("removeLiquidityV2");
|
|
137
|
+
return this._c.send(fn, [
|
|
138
|
+
dexId, this._a(tokenA), this._a(tokenB), liquidity,
|
|
139
|
+
opts.amountAMin ?? 0n, opts.amountBMin ?? 0n, opts.deadline ?? this.deadline(), this._a(opts.referral ?? ZERO),
|
|
140
|
+
], opts.tx ?? {});
|
|
141
|
+
}
|
|
142
|
+
// ------------------------------------------------------------------ //
|
|
143
|
+
// locks
|
|
144
|
+
// ------------------------------------------------------------------ //
|
|
145
|
+
async lockV2(pair, amount, lockDays, tx = {}) {
|
|
146
|
+
return this._c.send(this._liq.getFunction("lockV2LP"), [this._a(pair), amount, lockDays], tx);
|
|
147
|
+
}
|
|
148
|
+
async lockV3(npm, tokenId, lockDays, tx = {}) {
|
|
149
|
+
return this._c.send(this._liq.getFunction("lockV3Position"), [this._a(npm), tokenId, lockDays], tx);
|
|
150
|
+
}
|
|
151
|
+
async lockV4(npm, tokenId, lockDays, tx = {}) {
|
|
152
|
+
return this._c.send(this._liq.getFunction("lockV4Position"), [this._a(npm), tokenId, lockDays], tx);
|
|
153
|
+
}
|
|
154
|
+
async unlockV2(lockKey, tx = {}) {
|
|
155
|
+
return this._c.send(this._liq.getFunction("unlockV2"), [lockKey], tx);
|
|
156
|
+
}
|
|
157
|
+
async unlockV3(npm, tokenId, tx = {}) {
|
|
158
|
+
return this._c.send(this._liq.getFunction("unlockV3"), [this._a(npm), tokenId], tx);
|
|
159
|
+
}
|
|
160
|
+
async unlockV4(npm, tokenId, tx = {}) {
|
|
161
|
+
return this._c.send(this._liq.getFunction("unlockV4"), [this._a(npm), tokenId], tx);
|
|
162
|
+
}
|
|
163
|
+
// ------------------------------------------------------------------ //
|
|
164
|
+
// claim fees / harvest
|
|
165
|
+
// ------------------------------------------------------------------ //
|
|
166
|
+
async claimFeesV3(npm, tokenId, recipient = null, tx = {}) {
|
|
167
|
+
recipient = recipient ?? this._c.requireAddress();
|
|
168
|
+
return this._c.send(this._liq.getFunction("claimFeesV3"), [this._a(npm), tokenId, this._a(recipient)], tx);
|
|
169
|
+
}
|
|
170
|
+
async claimFeesV4(npm, tokenId, recipient = null, tx = {}) {
|
|
171
|
+
recipient = recipient ?? this._c.requireAddress();
|
|
172
|
+
return this._c.send(this._liq.getFunction("claimFeesV4"), [this._a(npm), tokenId, this._a(recipient)], tx);
|
|
173
|
+
}
|
|
174
|
+
async claimFeesV3Locked(tokenId, recipient, outputToken, tx = {}) {
|
|
175
|
+
return this._c.send(this._liq.getFunction("claimFeesV3Locked"), [tokenId, this._a(recipient), this._a(outputToken)], tx);
|
|
176
|
+
}
|
|
177
|
+
async claimFeesV4Locked(npm, tokenId, recipient, tx = {}) {
|
|
178
|
+
return this._c.send(this._liq.getFunction("claimFeesV4Locked"), [this._a(npm), tokenId, this._a(recipient)], tx);
|
|
179
|
+
}
|
|
180
|
+
/** Claim fees from many positions at once into one token. `massClaimFees`. */
|
|
181
|
+
async massClaimFees(npms, tokenIds, outputToken, tx = {}) {
|
|
182
|
+
return this._c.send(this._liq.getFunction("massClaimFees"), [npms.map((a) => this._a(a)), tokenIds, this._a(outputToken)], tx);
|
|
183
|
+
}
|
|
184
|
+
async harvestOp(op, data, tx = {}) {
|
|
185
|
+
return this._c.send(this._liq.getFunction("harvestOp"), [op, data], tx);
|
|
186
|
+
}
|
|
187
|
+
async claimBatchFees(tokens, tx = {}) {
|
|
188
|
+
return this._c.send(this._liq.getFunction("claimBatchFees"), [tokens.map((a) => this._a(a))], tx);
|
|
189
|
+
}
|
|
190
|
+
async claimReferralFees(tokens, tx = {}) {
|
|
191
|
+
return this._c.send(this._liq.getFunction("claimReferralFees"), [tokens.map((a) => this._a(a))], tx);
|
|
192
|
+
}
|
|
193
|
+
// ------------------------------------------------------------------ //
|
|
194
|
+
// reads (sidecar via liq proxy)
|
|
195
|
+
// ------------------------------------------------------------------ //
|
|
196
|
+
async positionsV2(wallet, pairs) {
|
|
197
|
+
const r = await this._c.call(this._side.getFunction("getV2Positions"), [this._a(wallet), pairs.map((p) => this._a(p))]);
|
|
198
|
+
return [...r].map((x) => V2Position.fromRaw(x));
|
|
199
|
+
}
|
|
200
|
+
async positionsV3(wallet, start = 0, end = 0) {
|
|
201
|
+
const r = await this._c.call(this._side.getFunction("getV3Positions"), [this._a(wallet), start, end]);
|
|
202
|
+
return [...r].map((x) => V3Position.fromRaw(x));
|
|
203
|
+
}
|
|
204
|
+
async positionsV4(wallet, start = 0, end = 0) {
|
|
205
|
+
const r = await this._c.call(this._side.getFunction("getV4Positions"), [this._a(wallet), start, end]);
|
|
206
|
+
return [...r].map((x) => V4Position.fromRaw(x));
|
|
207
|
+
}
|
|
208
|
+
async poolStateV2(pair) {
|
|
209
|
+
return V2PoolState.fromRaw(await this._c.call(this._side.getFunction("getV2PoolState"), [this._a(pair)]));
|
|
210
|
+
}
|
|
211
|
+
async poolStateV3(pool) {
|
|
212
|
+
return V3PoolState.fromRaw(await this._c.call(this._side.getFunction("getV3PoolState"), [this._a(pool)]));
|
|
213
|
+
}
|
|
214
|
+
async poolStateV4(poolKey) {
|
|
215
|
+
const key = [this._a(poolKey[0]), this._a(poolKey[1]), poolKey[2], poolKey[3], this._a(poolKey[4])];
|
|
216
|
+
return V4PoolState.fromRaw(await this._c.call(this._side.getFunction("getV4PoolState"), [key]));
|
|
217
|
+
}
|
|
218
|
+
async locks(wallet) {
|
|
219
|
+
const r = await this._c.call(this._side.getFunction("getLocks"), [this._a(wallet)]);
|
|
220
|
+
return [...r].map((x) => Lock.fromRaw(x));
|
|
221
|
+
}
|
|
222
|
+
async lockKeys(wallet) {
|
|
223
|
+
const r = await this._c.call(this._liq.getFunction("getLockKeys"), [this._a(wallet)]);
|
|
224
|
+
return [...r].map((x) => String(x));
|
|
225
|
+
}
|
|
226
|
+
async claimableFees(npm, tokenId) {
|
|
227
|
+
return ClaimableFees.fromRaw(await this._c.call(this._side.getFunction("getClaimableFees"), [this._a(npm), tokenId]));
|
|
228
|
+
}
|
|
229
|
+
/** USD value (1e18) of `amount` of `token`. `usdValue`. */
|
|
230
|
+
async usdValue(token, amount) {
|
|
231
|
+
return BigInt(await this._c.call(this._side.getFunction("usdValue"), [this._a(token), amount]));
|
|
232
|
+
}
|
|
233
|
+
// -- state / config reads --------------------------------------------- //
|
|
234
|
+
async isPaused() {
|
|
235
|
+
return Boolean(await this._c.call(this._liq.getFunction("paused"), []));
|
|
236
|
+
}
|
|
237
|
+
async totalLockedLp(pair) {
|
|
238
|
+
return BigInt(await this._c.call(this._liq.getFunction("totalLockedLp"), [this._a(pair)]));
|
|
239
|
+
}
|
|
240
|
+
/** Current V2 lock nonce of a wallet (input to {@link removeV2}). */
|
|
241
|
+
async v2LockNonce(wallet) {
|
|
242
|
+
return BigInt(await this._c.call(this._liq.getFunction("v2LockNonce"), [this._a(wallet)]));
|
|
243
|
+
}
|
|
244
|
+
async priceOracle() {
|
|
245
|
+
return String(await this._c.call(this._liq.getFunction("priceOracle"), []));
|
|
246
|
+
}
|
|
247
|
+
/** Harvest/op fee split. `getOpFee(amount) -> [fee, net]`. */
|
|
248
|
+
async opFee(amount) {
|
|
249
|
+
const r = await this._c.call(this._liq.getFunction("getOpFee"), [amount]);
|
|
250
|
+
return [BigInt(r[0]), BigInt(r[1])];
|
|
251
|
+
}
|
|
252
|
+
async minLockDays() {
|
|
253
|
+
return Number(await this._c.call(this._liq.getFunction("MIN_LOCK_DAYS"), []));
|
|
254
|
+
}
|
|
255
|
+
async maxLocksPerOwner() {
|
|
256
|
+
return Number(await this._c.call(this._liq.getFunction("MAX_LOCKS_PER_OWNER"), []));
|
|
257
|
+
}
|
|
258
|
+
// -- dex registry ------------------------------------------------------ //
|
|
259
|
+
async dexCount(version) {
|
|
260
|
+
const name = { 2: "v2DexCount", 3: "v3DexCount", 4: "v4DexCount" }[version];
|
|
261
|
+
return Number(await this._c.call(this._liq.getFunction(name), []));
|
|
262
|
+
}
|
|
263
|
+
async dex(version, index) {
|
|
264
|
+
const name = { 2: "v2Dexes", 3: "v3Dexes", 4: "v4Dexes" }[version];
|
|
265
|
+
const r = await this._c.call(this._liq.getFunction(name), [index]);
|
|
266
|
+
return [...r];
|
|
267
|
+
}
|
|
268
|
+
/** All registered DEXes for a version (name, router/factory, …, enabled). */
|
|
269
|
+
async dexes(version) {
|
|
270
|
+
const n = await this.dexCount(version);
|
|
271
|
+
const out = [];
|
|
272
|
+
for (let i = 0; i < n; i++)
|
|
273
|
+
out.push(await this.dex(version, i));
|
|
274
|
+
return out;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=liquidity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidity.js","sourceRoot":"","sources":["../../src/modules/liquidity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pricing & token-safety reads (Lens views via the swap proxy).
|
|
3
|
+
*
|
|
4
|
+
* v2.0.2 pricing model:
|
|
5
|
+
*
|
|
6
|
+
* - {@link Prices.usd} — `getUsdPrice` = **spot-mid**, for *display*.
|
|
7
|
+
* - {@link Prices.usdImpact} — `getUsdPriceImpact` = **execution-aware** realised
|
|
8
|
+
* price, for quotes / slippage math.
|
|
9
|
+
* - {@link Prices.spot} — `getSpotPrice(tokenIn, tokenOut)`, raw mid between two tokens.
|
|
10
|
+
*/
|
|
11
|
+
import type { SallyClient } from "../client.js";
|
|
12
|
+
import { PriceResult, TokenInfo } from "../types.js";
|
|
13
|
+
export declare class Prices {
|
|
14
|
+
private _c;
|
|
15
|
+
private _lens;
|
|
16
|
+
constructor(client: SallyClient);
|
|
17
|
+
private _addr;
|
|
18
|
+
/** Spot-mid USD price (1e18) — for display. `getUsdPrice`. */
|
|
19
|
+
usd(token: string): Promise<PriceResult>;
|
|
20
|
+
/** Execution-aware USD price (1e18) — for quotes. `getUsdPriceImpact`. */
|
|
21
|
+
usdImpact(token: string): Promise<PriceResult>;
|
|
22
|
+
/** Price denominated in WETH (1e18). `getWethPrice`. */
|
|
23
|
+
weth(token: string): Promise<PriceResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Raw spot mid-price of `tokenIn` in `tokenOut` (1e18).
|
|
26
|
+
*
|
|
27
|
+
* `getSpotPrice(tokenIn, tokenOut)`.
|
|
28
|
+
*/
|
|
29
|
+
spot(tokenIn: string, tokenOut: string): Promise<bigint>;
|
|
30
|
+
/**
|
|
31
|
+
* Aggregate USD liquidity behind a token (1e18).
|
|
32
|
+
*
|
|
33
|
+
* `version` in {2,3,4} targets a single DEX generation; `null`/`undefined` sums all.
|
|
34
|
+
*/
|
|
35
|
+
usdLiquidity(token: string, version?: number | null): Promise<bigint>;
|
|
36
|
+
/**
|
|
37
|
+
* Honeypot / buy-sell-tax round-trip probe. `getTokenInfos`.
|
|
38
|
+
*
|
|
39
|
+
* The on-chain probe only runs with `tx.origin == 0` and a native probe
|
|
40
|
+
* balance, so this is called with `from = 0x0` and `probeValue` attached —
|
|
41
|
+
* anything else returns all-zero.
|
|
42
|
+
*/
|
|
43
|
+
tokenInfo(token: string, opts?: {
|
|
44
|
+
probeValue?: bigint | null;
|
|
45
|
+
}): Promise<TokenInfo>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=prices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../src/modules/prices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIrD,qBAAa,MAAM;IACjB,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,KAAK,CAAW;gBAEZ,MAAM,EAAE,WAAW;IAK/B,OAAO,CAAC,KAAK;IAKb,8DAA8D;IACxD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK9C,0EAA0E;IACpE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKpD,wDAAwD;IAClD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK/C;;;;OAIG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO9D;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjF;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GAAG,OAAO,CAAC,SAAS,CAAC;CAW9F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pricing & token-safety reads (Lens views via the swap proxy).
|
|
3
|
+
*
|
|
4
|
+
* v2.0.2 pricing model:
|
|
5
|
+
*
|
|
6
|
+
* - {@link Prices.usd} — `getUsdPrice` = **spot-mid**, for *display*.
|
|
7
|
+
* - {@link Prices.usdImpact} — `getUsdPriceImpact` = **execution-aware** realised
|
|
8
|
+
* price, for quotes / slippage math.
|
|
9
|
+
* - {@link Prices.spot} — `getSpotPrice(tokenIn, tokenOut)`, raw mid between two tokens.
|
|
10
|
+
*/
|
|
11
|
+
import { getAddress } from "ethers";
|
|
12
|
+
import { PriceResult, TokenInfo } from "../types.js";
|
|
13
|
+
import { SafetyConfig } from "../safety.js";
|
|
14
|
+
import { ZERO } from "../token.js";
|
|
15
|
+
export class Prices {
|
|
16
|
+
_c;
|
|
17
|
+
_lens;
|
|
18
|
+
constructor(client) {
|
|
19
|
+
this._c = client;
|
|
20
|
+
this._lens = client.lensContract;
|
|
21
|
+
}
|
|
22
|
+
_addr(a) {
|
|
23
|
+
return getAddress(a);
|
|
24
|
+
}
|
|
25
|
+
// -- USD pricing ------------------------------------------------------- //
|
|
26
|
+
/** Spot-mid USD price (1e18) — for display. `getUsdPrice`. */
|
|
27
|
+
async usd(token) {
|
|
28
|
+
const r = await this._c.call(this._lens.getFunction("getUsdPrice"), [this._addr(token)]);
|
|
29
|
+
return PriceResult.fromRaw(r);
|
|
30
|
+
}
|
|
31
|
+
/** Execution-aware USD price (1e18) — for quotes. `getUsdPriceImpact`. */
|
|
32
|
+
async usdImpact(token) {
|
|
33
|
+
const r = await this._c.call(this._lens.getFunction("getUsdPriceImpact"), [this._addr(token)]);
|
|
34
|
+
return PriceResult.fromRaw(r);
|
|
35
|
+
}
|
|
36
|
+
/** Price denominated in WETH (1e18). `getWethPrice`. */
|
|
37
|
+
async weth(token) {
|
|
38
|
+
const r = await this._c.call(this._lens.getFunction("getWethPrice"), [this._addr(token)]);
|
|
39
|
+
return PriceResult.fromRaw(r);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Raw spot mid-price of `tokenIn` in `tokenOut` (1e18).
|
|
43
|
+
*
|
|
44
|
+
* `getSpotPrice(tokenIn, tokenOut)`.
|
|
45
|
+
*/
|
|
46
|
+
async spot(tokenIn, tokenOut) {
|
|
47
|
+
return BigInt(await this._c.call(this._lens.getFunction("getSpotPrice"), [this._addr(tokenIn), this._addr(tokenOut)]));
|
|
48
|
+
}
|
|
49
|
+
// -- USD liquidity ----------------------------------------------------- //
|
|
50
|
+
/**
|
|
51
|
+
* Aggregate USD liquidity behind a token (1e18).
|
|
52
|
+
*
|
|
53
|
+
* `version` in {2,3,4} targets a single DEX generation; `null`/`undefined` sums all.
|
|
54
|
+
*/
|
|
55
|
+
async usdLiquidity(token, version = null) {
|
|
56
|
+
const a = this._addr(token);
|
|
57
|
+
const name = {
|
|
58
|
+
null: "getUsdLiquidity",
|
|
59
|
+
2: "getUsdLiquidityV2",
|
|
60
|
+
3: "getUsdLiquidityV3",
|
|
61
|
+
4: "getUsdLiquidityV4",
|
|
62
|
+
}[version === null ? "null" : version];
|
|
63
|
+
return BigInt(await this._c.call(this._lens.getFunction(name), [a]));
|
|
64
|
+
}
|
|
65
|
+
// -- token safety ------------------------------------------------------ //
|
|
66
|
+
/**
|
|
67
|
+
* Honeypot / buy-sell-tax round-trip probe. `getTokenInfos`.
|
|
68
|
+
*
|
|
69
|
+
* The on-chain probe only runs with `tx.origin == 0` and a native probe
|
|
70
|
+
* balance, so this is called with `from = 0x0` and `probeValue` attached —
|
|
71
|
+
* anything else returns all-zero.
|
|
72
|
+
*/
|
|
73
|
+
async tokenInfo(token, opts = {}) {
|
|
74
|
+
let probeValue = opts.probeValue ?? null;
|
|
75
|
+
if (probeValue === null) {
|
|
76
|
+
probeValue = new SafetyConfig().probeValue;
|
|
77
|
+
}
|
|
78
|
+
const r = await this._lens.getFunction("getTokenInfos").staticCall(this._addr(token), {
|
|
79
|
+
from: ZERO,
|
|
80
|
+
value: probeValue,
|
|
81
|
+
});
|
|
82
|
+
return TokenInfo.fromRaw(r);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=prices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prices.js","sourceRoot":"","sources":["../../src/modules/prices.ts"],"names":[],"mappings":"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"}
|