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.
Files changed (125) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +263 -0
  3. package/dist/aio/client.d.ts +93 -0
  4. package/dist/aio/client.d.ts.map +1 -0
  5. package/dist/aio/client.js +283 -0
  6. package/dist/aio/client.js.map +1 -0
  7. package/dist/aio/index.d.ts +20 -0
  8. package/dist/aio/index.d.ts.map +1 -0
  9. package/dist/aio/index.js +19 -0
  10. package/dist/aio/index.js.map +1 -0
  11. package/dist/aio/modules/fees.d.ts +19 -0
  12. package/dist/aio/modules/fees.d.ts.map +1 -0
  13. package/dist/aio/modules/fees.js +47 -0
  14. package/dist/aio/modules/fees.js.map +1 -0
  15. package/dist/aio/modules/liquidity.d.ts +47 -0
  16. package/dist/aio/modules/liquidity.d.ts.map +1 -0
  17. package/dist/aio/modules/liquidity.js +115 -0
  18. package/dist/aio/modules/liquidity.js.map +1 -0
  19. package/dist/aio/modules/prices.d.ts +18 -0
  20. package/dist/aio/modules/prices.d.ts.map +1 -0
  21. package/dist/aio/modules/prices.js +48 -0
  22. package/dist/aio/modules/prices.js.map +1 -0
  23. package/dist/aio/modules/swap.d.ts +50 -0
  24. package/dist/aio/modules/swap.d.ts.map +1 -0
  25. package/dist/aio/modules/swap.js +267 -0
  26. package/dist/aio/modules/swap.js.map +1 -0
  27. package/dist/aio/modules/wallet.d.ts +13 -0
  28. package/dist/aio/modules/wallet.d.ts.map +1 -0
  29. package/dist/aio/modules/wallet.js +27 -0
  30. package/dist/aio/modules/wallet.js.map +1 -0
  31. package/dist/aio/token.d.ts +19 -0
  32. package/dist/aio/token.d.ts.map +1 -0
  33. package/dist/aio/token.js +50 -0
  34. package/dist/aio/token.js.map +1 -0
  35. package/dist/client.d.ts +142 -0
  36. package/dist/client.d.ts.map +1 -0
  37. package/dist/client.js +452 -0
  38. package/dist/client.js.map +1 -0
  39. package/dist/constants.d.ts +36 -0
  40. package/dist/constants.d.ts.map +1 -0
  41. package/dist/constants.js +39 -0
  42. package/dist/constants.js.map +1 -0
  43. package/dist/data/deployment.json +1 -0
  44. package/dist/deployment.d.ts +44 -0
  45. package/dist/deployment.d.ts.map +1 -0
  46. package/dist/deployment.js +118 -0
  47. package/dist/deployment.js.map +1 -0
  48. package/dist/errors.d.ts +57 -0
  49. package/dist/errors.d.ts.map +1 -0
  50. package/dist/errors.js +197 -0
  51. package/dist/errors.js.map +1 -0
  52. package/dist/index.d.ts +48 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +47 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/modules/fees.d.ts +32 -0
  57. package/dist/modules/fees.d.ts.map +1 -0
  58. package/dist/modules/fees.js +64 -0
  59. package/dist/modules/fees.js.map +1 -0
  60. package/dist/modules/liquidity.d.ts +134 -0
  61. package/dist/modules/liquidity.d.ts.map +1 -0
  62. package/dist/modules/liquidity.js +277 -0
  63. package/dist/modules/liquidity.js.map +1 -0
  64. package/dist/modules/prices.d.ts +47 -0
  65. package/dist/modules/prices.d.ts.map +1 -0
  66. package/dist/modules/prices.js +85 -0
  67. package/dist/modules/prices.js.map +1 -0
  68. package/dist/modules/swap.d.ts +102 -0
  69. package/dist/modules/swap.d.ts.map +1 -0
  70. package/dist/modules/swap.js +400 -0
  71. package/dist/modules/swap.js.map +1 -0
  72. package/dist/modules/wallet.d.ts +16 -0
  73. package/dist/modules/wallet.d.ts.map +1 -0
  74. package/dist/modules/wallet.js +30 -0
  75. package/dist/modules/wallet.js.map +1 -0
  76. package/dist/permit2.d.ts +97 -0
  77. package/dist/permit2.d.ts.map +1 -0
  78. package/dist/permit2.js +130 -0
  79. package/dist/permit2.js.map +1 -0
  80. package/dist/previews.d.ts +57 -0
  81. package/dist/previews.d.ts.map +1 -0
  82. package/dist/previews.js +69 -0
  83. package/dist/previews.js.map +1 -0
  84. package/dist/safety.d.ts +80 -0
  85. package/dist/safety.d.ts.map +1 -0
  86. package/dist/safety.js +133 -0
  87. package/dist/safety.js.map +1 -0
  88. package/dist/token.d.ts +215 -0
  89. package/dist/token.d.ts.map +1 -0
  90. package/dist/token.js +239 -0
  91. package/dist/token.js.map +1 -0
  92. package/dist/types.d.ts +229 -0
  93. package/dist/types.d.ts.map +1 -0
  94. package/dist/types.js +462 -0
  95. package/dist/types.js.map +1 -0
  96. package/dist/util.d.ts +13 -0
  97. package/dist/util.d.ts.map +1 -0
  98. package/dist/util.js +22 -0
  99. package/dist/util.js.map +1 -0
  100. package/package.json +48 -0
  101. package/src/aio/client.ts +329 -0
  102. package/src/aio/index.ts +20 -0
  103. package/src/aio/modules/fees.ts +60 -0
  104. package/src/aio/modules/liquidity.ts +181 -0
  105. package/src/aio/modules/prices.ts +57 -0
  106. package/src/aio/modules/swap.ts +347 -0
  107. package/src/aio/modules/wallet.ts +34 -0
  108. package/src/aio/token.ts +59 -0
  109. package/src/client.ts +526 -0
  110. package/src/constants.ts +43 -0
  111. package/src/data/deployment.json +1 -0
  112. package/src/deployment.ts +132 -0
  113. package/src/errors.ts +215 -0
  114. package/src/index.ts +90 -0
  115. package/src/modules/fees.ts +78 -0
  116. package/src/modules/liquidity.ts +446 -0
  117. package/src/modules/prices.ts +97 -0
  118. package/src/modules/swap.ts +502 -0
  119. package/src/modules/wallet.ts +37 -0
  120. package/src/permit2.ts +169 -0
  121. package/src/previews.ts +95 -0
  122. package/src/safety.ts +152 -0
  123. package/src/token.ts +254 -0
  124. package/src/types.ts +438 -0
  125. 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":"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"}
@@ -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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"}