@exponent-labs/market-three-math 0.9.18 → 0.9.19
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/build/addLiquidity.js +5 -5
- package/build/addLiquidity.js.map +1 -1
- package/build/existingPositionEqualization.js +3 -15
- package/build/existingPositionEqualization.js.map +1 -1
- package/build/swapV2.js +115 -132
- package/build/swapV2.js.map +1 -1
- package/build/tickTree.d.ts +4 -0
- package/build/tickTree.js +95 -0
- package/build/tickTree.js.map +1 -0
- package/build/utils.js +5 -22
- package/build/utils.js.map +1 -1
- package/build/utilsV2.js +3 -2
- package/build/utilsV2.js.map +1 -1
- package/build/withdrawLiquidity.js +3 -15
- package/build/withdrawLiquidity.js.map +1 -1
- package/build/ytTrades.js +3 -3
- package/build/ytTrades.js.map +1 -1
- package/package.json +2 -2
- package/src/addLiquidity.ts +5 -6
- package/src/existingPositionEqualization.test.ts +12 -0
- package/src/existingPositionEqualization.ts +4 -17
- package/src/swapV2.ts +187 -155
- package/src/tickTree.ts +119 -0
- package/src/utils.ts +6 -28
- package/src/utilsV2.ts +4 -2
- package/src/withdrawLiquidity.test.ts +19 -0
- package/src/withdrawLiquidity.ts +4 -17
- package/src/ytTrades.ts +3 -3
package/build/utils.js
CHANGED
|
@@ -17,6 +17,7 @@ exports.convertApyBpToApy = convertApyBpToApy;
|
|
|
17
17
|
exports.bigIntMax = bigIntMax;
|
|
18
18
|
exports.bigIntMin = bigIntMin;
|
|
19
19
|
exports.calcPtPriceInAsset = calcPtPriceInAsset;
|
|
20
|
+
const tickTree_1 = require("./tickTree");
|
|
20
21
|
const SECONDS_PER_YEAR = 365 * 24 * 60 * 60;
|
|
21
22
|
// const BASE_POINTS = 10000
|
|
22
23
|
/**
|
|
@@ -116,7 +117,7 @@ function getActiveLiquidity(ticks, tickIndex) {
|
|
|
116
117
|
function getSuccessorTickKey(ticks, currentTickKey) {
|
|
117
118
|
let minKey = null;
|
|
118
119
|
for (const tick of ticks.ticksTree) {
|
|
119
|
-
if (tick.apyBasePoints > currentTickKey) {
|
|
120
|
+
if ((0, tickTree_1.isLiveTick)(tick) && tick.apyBasePoints > currentTickKey) {
|
|
120
121
|
if (minKey === null || tick.apyBasePoints < minKey) {
|
|
121
122
|
minKey = tick.apyBasePoints;
|
|
122
123
|
}
|
|
@@ -129,32 +130,14 @@ function getSuccessorTickKey(ticks, currentTickKey) {
|
|
|
129
130
|
* This is almost equivalent to the Rust successor_idx method
|
|
130
131
|
*/
|
|
131
132
|
function getSuccessorTickIdxByIdx(ticks, tickIdx) {
|
|
132
|
-
|
|
133
|
-
const tick = ticks.ticksTree.at(tickIdx - 1) ?? null;
|
|
134
|
-
if (!tick)
|
|
135
|
-
return null;
|
|
136
|
-
// Find ticks with apyBasePoints greater than tickIdx
|
|
137
|
-
const successorTicks = ticks.ticksTree
|
|
138
|
-
.filter((t) => t.apyBasePoints > tick.apyBasePoints)
|
|
139
|
-
.sort((a, b) => a.apyBasePoints - b.apyBasePoints);
|
|
140
|
-
const successorTick = successorTicks.at(0) ?? null;
|
|
141
|
-
return !!successorTick ? ticks.ticksTree.indexOf(successorTick) + 1 : null;
|
|
133
|
+
return (0, tickTree_1.successorTickIdx)(ticks, tickIdx);
|
|
142
134
|
}
|
|
143
135
|
/**
|
|
144
136
|
* Find the predecessor tick by index in the tick tree
|
|
145
137
|
* This is the inverse of getSuccessorTickIdxByIdx - finds the tick with the largest apyBasePoints that is still less than the current tick
|
|
146
138
|
*/
|
|
147
139
|
function getPredecessorTickIdxByIdx(ticks, tickIdx) {
|
|
148
|
-
|
|
149
|
-
const tick = ticks.ticksTree.at(tickIdx - 1) ?? null;
|
|
150
|
-
if (!tick)
|
|
151
|
-
return null;
|
|
152
|
-
// Find ticks with apyBasePoints less than current tick
|
|
153
|
-
const predecessorTicks = ticks.ticksTree
|
|
154
|
-
.filter((t) => t.apyBasePoints < tick.apyBasePoints)
|
|
155
|
-
.sort((a, b) => b.apyBasePoints - a.apyBasePoints); // Sort descending to get the largest that's still less
|
|
156
|
-
const predecessorTick = predecessorTicks.at(0) ?? null;
|
|
157
|
-
return !!predecessorTick ? ticks.ticksTree.indexOf(predecessorTick) + 1 : null;
|
|
140
|
+
return (0, tickTree_1.predecessorTickIdx)(ticks, tickIdx);
|
|
158
141
|
}
|
|
159
142
|
/**
|
|
160
143
|
* Find the predecessor tick (next tick to the left)
|
|
@@ -166,7 +149,7 @@ function getPredecessorTickIdxByIdx(ticks, tickIdx) {
|
|
|
166
149
|
function getPredecessorTickKey(ticks, currentTickKey) {
|
|
167
150
|
let maxKey = null;
|
|
168
151
|
for (const tick of ticks.ticksTree) {
|
|
169
|
-
if (tick.apyBasePoints < currentTickKey) {
|
|
152
|
+
if ((0, tickTree_1.isLiveTick)(tick) && tick.apyBasePoints < currentTickKey) {
|
|
170
153
|
if (maxKey === null || tick.apyBasePoints > maxKey) {
|
|
171
154
|
maxKey = tick.apyBasePoints;
|
|
172
155
|
}
|
package/build/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/build/utilsV2.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.TicksWrapper = exports.EffSnap = void 0;
|
|
|
4
4
|
exports.normalizedTimeRemaining = normalizedTimeRemaining;
|
|
5
5
|
exports.calculateFeeRate = calculateFeeRate;
|
|
6
6
|
exports.getFeeFromAmount = getFeeFromAmount;
|
|
7
|
+
const tickTree_1 = require("./tickTree");
|
|
7
8
|
const SECONDS_PER_YEAR = 365 * 24 * 60 * 60;
|
|
8
9
|
const TICK_KEY_BASE_POINTS = 1_000_000;
|
|
9
10
|
const PRECISE_NUMBER_DENOM = 1000000000000000000n;
|
|
@@ -65,7 +66,7 @@ class TicksWrapper {
|
|
|
65
66
|
this.market = ticks.market;
|
|
66
67
|
// Build map from apyBasePoints -> Tick
|
|
67
68
|
for (const tick of this.baseTicksTree) {
|
|
68
|
-
if (
|
|
69
|
+
if ((0, tickTree_1.isLiveTick)(tick)) {
|
|
69
70
|
this.ticksByKey.set(tick.apyBasePoints, tick);
|
|
70
71
|
}
|
|
71
72
|
}
|
|
@@ -79,7 +80,7 @@ class TicksWrapper {
|
|
|
79
80
|
// In Rust, currentTick is stored as 1-based index into the ticks tree
|
|
80
81
|
// We need to find the corresponding key (apyBasePoints)
|
|
81
82
|
const currentTickFromArray = this.baseTicksTree[ticks.currentTick - 1];
|
|
82
|
-
if (
|
|
83
|
+
if ((0, tickTree_1.isLiveTick)(currentTickFromArray)) {
|
|
83
84
|
this.currentTickKey = currentTickFromArray.apyBasePoints;
|
|
84
85
|
}
|
|
85
86
|
else {
|
package/build/utilsV2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilsV2.js","sourceRoot":"","sources":["../src/utilsV2.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utilsV2.js","sourceRoot":"","sources":["../src/utilsV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPtAndSyOnWithdrawLiquidity = getPtAndSyOnWithdrawLiquidity;
|
|
4
|
+
const tickTree_1 = require("./tickTree");
|
|
4
5
|
const PRECISE_NUMBER_DENOM = 1000000000000n;
|
|
5
6
|
const SENTINEL_TICK_INDEX = 0xffffffff;
|
|
6
7
|
const invariantError = (message) => new Error(`WithdrawLiquidityInvariantViolated: ${message}`);
|
|
7
8
|
const getTickByIndex = (ticks, tickIdx) => {
|
|
8
9
|
const tick = ticks.ticksTree[tickIdx - 1];
|
|
9
|
-
if (!
|
|
10
|
+
if (!(0, tickTree_1.isLiveTick)(tick)) {
|
|
10
11
|
throw invariantError(`missing tick at index ${tickIdx}`);
|
|
11
12
|
}
|
|
12
13
|
return tick;
|
|
13
14
|
};
|
|
14
15
|
const getTickKey = (ticks, tickIdx) => getTickByIndex(ticks, tickIdx).apyBasePoints;
|
|
15
|
-
const successorIdx = (ticks, tickIdx) =>
|
|
16
|
-
const tickKey = getTickKey(ticks, tickIdx);
|
|
17
|
-
let best = null;
|
|
18
|
-
for (let index = 0; index < ticks.ticksTree.length; index++) {
|
|
19
|
-
const key = ticks.ticksTree[index].apyBasePoints;
|
|
20
|
-
if (key <= tickKey) {
|
|
21
|
-
continue;
|
|
22
|
-
}
|
|
23
|
-
if (!best || key < best.key) {
|
|
24
|
-
best = { tickIdx: index + 1, key };
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return best?.tickIdx ?? null;
|
|
28
|
-
};
|
|
16
|
+
const successorIdx = (ticks, tickIdx) => (0, tickTree_1.successorTickIdx)(ticks, tickIdx);
|
|
29
17
|
const splitSuccessorForEpoch = (ticks, leftIdx, rightIdx, splitEpoch) => {
|
|
30
18
|
let cursor = successorIdx(ticks, leftIdx);
|
|
31
19
|
while (cursor != null && cursor !== SENTINEL_TICK_INDEX && cursor !== rightIdx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdrawLiquidity.js","sourceRoot":"","sources":["../src/withdrawLiquidity.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"withdrawLiquidity.js","sourceRoot":"","sources":["../src/withdrawLiquidity.ts"],"names":[],"mappings":"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"}
|
package/build/ytTrades.js
CHANGED
|
@@ -284,9 +284,9 @@ function simulateSellYt(marketState, args) {
|
|
|
284
284
|
if (syFromMerge <= 0) {
|
|
285
285
|
throw new Error(`Trade too small: merging ${ytIn} YT yields 0 SY`);
|
|
286
286
|
}
|
|
287
|
-
// On-chain
|
|
288
|
-
const ptNeeded = ytIn
|
|
289
|
-
// Match on-chain SellYt exactly: TradePtExactOut with pt_target = yt_in
|
|
287
|
+
// On-chain SellYt forwards yt_in directly as the exact-out PT target.
|
|
288
|
+
const ptNeeded = ytIn;
|
|
289
|
+
// Match on-chain SellYt exactly: TradePtExactOut with pt_target = yt_in and SY budget = syFromMerge
|
|
290
290
|
const swapResult = (0, swapV2_1.simulateSwapExactOut)(marketState, {
|
|
291
291
|
direction: types_1.SwapDirection.SyToPt,
|
|
292
292
|
amountOut: ptNeeded,
|
package/build/ytTrades.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ytTrades.js","sourceRoot":"","sources":["../src/ytTrades.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ytTrades.js","sourceRoot":"","sources":["../src/ytTrades.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exponent-labs/market-three-math",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.19",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"types": "build/index.d.ts",
|
|
6
6
|
"license": "AGPL-3.0",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"test:live": "ts-node examples/test-live-market.ts"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@exponent-labs/exponent-fetcher": "0.9.
|
|
13
|
+
"@exponent-labs/exponent-fetcher": "0.9.19",
|
|
14
14
|
"@solana/web3.js": "^1.95.8"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
package/src/addLiquidity.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
SwapDirection,
|
|
15
15
|
} from "./types"
|
|
16
16
|
import { EffSnap, TicksWrapper, normalizedTimeRemaining } from "./utilsV2"
|
|
17
|
+
import { isLiveTick } from "./tickTree"
|
|
17
18
|
|
|
18
19
|
const TICK_KEY_BASE_POINTS = 1_000_000
|
|
19
20
|
// Keep this in sync with exponent_clmm's add_liquidity helper so off-chain
|
|
@@ -638,8 +639,7 @@ export function simulateAddLiquidity(marketState: MarketThreeState, args: AddLiq
|
|
|
638
639
|
)
|
|
639
640
|
|
|
640
641
|
const currentTickNode = ticks.ticksTree[ticks.currentTick - 1]
|
|
641
|
-
const currentTickKey =
|
|
642
|
-
currentTickNode && currentTickNode.apyBasePoints > 0 ? currentTickNode.apyBasePoints : args.lowerTick
|
|
642
|
+
const currentTickKey = isLiveTick(currentTickNode) ? currentTickNode.apyBasePoints : args.lowerTick
|
|
643
643
|
const splitTickKey =
|
|
644
644
|
currentSpot <= lowerPrice ? args.lowerTick : currentSpot >= upperPrice ? args.upperTick : currentTickKey
|
|
645
645
|
const { sySpent: syNeededWithCrossing, ptSpent: ptNeededWithCrossing } = simulateAccruePrincipalForDeposit({
|
|
@@ -1033,8 +1033,7 @@ export function simulateSwapAndSupply(
|
|
|
1033
1033
|
maxPt: MOCK_AMOUNT,
|
|
1034
1034
|
syExchangeRate,
|
|
1035
1035
|
})
|
|
1036
|
-
// Wrapper flow still executes
|
|
1037
|
-
// (effective exact-out target becomes 2 due +2 safety margin).
|
|
1036
|
+
// Wrapper flow still executes the exact-out CPI with the selected external_pt_to_buy target.
|
|
1038
1037
|
let externalPtToBuy = 0
|
|
1039
1038
|
if (syBudget > 0 && mockNeeds.ptSpent > 0) {
|
|
1040
1039
|
if (mockNeeds.sySpent > 0) {
|
|
@@ -1353,7 +1352,7 @@ function simulateBuyPtExactOutWrapper(
|
|
|
1353
1352
|
} {
|
|
1354
1353
|
const maxSyBudget = Math.max(0, Math.floor(syBudget))
|
|
1355
1354
|
const exactOutSyConstraint = maxSyBudget + Math.max(0, Math.floor(exactOutEstimateSlack))
|
|
1356
|
-
const effectivePtOutTarget = Math.max(0, Math.floor(ptConstraint))
|
|
1355
|
+
const effectivePtOutTarget = Math.max(0, Math.floor(ptConstraint))
|
|
1357
1356
|
|
|
1358
1357
|
if (maxSyBudget === 0) {
|
|
1359
1358
|
return {
|
|
@@ -1373,7 +1372,7 @@ function simulateBuyPtExactOutWrapper(
|
|
|
1373
1372
|
})
|
|
1374
1373
|
}
|
|
1375
1374
|
|
|
1376
|
-
// WrapperProvideLiquidityBase
|
|
1375
|
+
// WrapperProvideLiquidityBase forwards external_pt_to_buy directly to exact-out.
|
|
1377
1376
|
// Do not fallback to lower exact-out targets here, otherwise client simulation can
|
|
1378
1377
|
// accept candidates that deterministically fail on-chain with InsufficientBudgetSY.
|
|
1379
1378
|
let bestQuote: ReturnType<typeof tryExactOut>
|
|
@@ -107,6 +107,18 @@ describe("existing position equalization", () => {
|
|
|
107
107
|
])
|
|
108
108
|
})
|
|
109
109
|
|
|
110
|
+
it("accepts live tick zero in crossing equalization ranges", () => {
|
|
111
|
+
const ticks = makeTicks()
|
|
112
|
+
ticks.ticksTree[0].apyBasePoints = 0
|
|
113
|
+
ticks.ticksTree[0].impliedRate = 1
|
|
114
|
+
ticks.ticksTree[0].liquidityGross = 1n
|
|
115
|
+
|
|
116
|
+
const equalization = computeExistingPositionEqualization(ticks, makePosition())
|
|
117
|
+
|
|
118
|
+
expect(equalization.sySpent).toBe(700n)
|
|
119
|
+
expect(equalization.ptSpent).toBe(500n)
|
|
120
|
+
})
|
|
121
|
+
|
|
110
122
|
it("rejects overfilled crossing positions instead of producing remove plans", () => {
|
|
111
123
|
const position = makePosition()
|
|
112
124
|
position.lpBalance = 90n
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { LpPositionCLMM, Tick, Ticks } from "@exponent-labs/exponent-fetcher"
|
|
2
2
|
|
|
3
|
+
import { isLiveTick, successorTickIdx } from "./tickTree"
|
|
4
|
+
|
|
3
5
|
const SENTINEL_TICK_INDEX = 0xffffffff
|
|
4
6
|
const PRECISE_NUMBER_DENOM = 1_000_000_000_000n
|
|
5
7
|
const U64_MAX = (1n << 64n) - 1n
|
|
@@ -80,7 +82,7 @@ const fastMulRatioRaw = (rawPreciseNumber: bigint, numerator: bigint, denominato
|
|
|
80
82
|
|
|
81
83
|
const getTickByIndex = (ticks: Ticks, tickIdx: number): Tick => {
|
|
82
84
|
const tick = ticks.ticksTree[tickIdx - 1]
|
|
83
|
-
if (!tick
|
|
85
|
+
if (!isLiveTick(tick)) {
|
|
84
86
|
throw invariantError(`missing tick at index ${tickIdx}`)
|
|
85
87
|
}
|
|
86
88
|
|
|
@@ -89,22 +91,7 @@ const getTickByIndex = (ticks: Ticks, tickIdx: number): Tick => {
|
|
|
89
91
|
|
|
90
92
|
const getTickKey = (ticks: Ticks, tickIdx: number) => getTickByIndex(ticks, tickIdx).apyBasePoints
|
|
91
93
|
|
|
92
|
-
const successorIdx = (ticks: Ticks, tickIdx: number): number | null =>
|
|
93
|
-
const tickKey = getTickKey(ticks, tickIdx)
|
|
94
|
-
let best: { tickIdx: number; key: number } | null = null
|
|
95
|
-
|
|
96
|
-
for (let index = 0; index < ticks.ticksTree.length; index++) {
|
|
97
|
-
const key = ticks.ticksTree[index].apyBasePoints
|
|
98
|
-
if (key <= tickKey) {
|
|
99
|
-
continue
|
|
100
|
-
}
|
|
101
|
-
if (!best || key < best.key) {
|
|
102
|
-
best = { tickIdx: index + 1, key }
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return best?.tickIdx ?? null
|
|
107
|
-
}
|
|
94
|
+
const successorIdx = (ticks: Ticks, tickIdx: number): number | null => successorTickIdx(ticks, tickIdx)
|
|
108
95
|
|
|
109
96
|
const isCrossingSplitActive = (position: LpPositionCLMM) =>
|
|
110
97
|
position.crossingSplit.crossLeftIdx !== SENTINEL_TICK_INDEX &&
|