@flashnet/sdk 0.4.4 → 0.5.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/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/src/api/typed-endpoints.d.ts +70 -0
- package/dist/cjs/src/api/typed-endpoints.d.ts.map +1 -1
- package/dist/cjs/src/api/typed-endpoints.js +106 -11
- package/dist/cjs/src/api/typed-endpoints.js.map +1 -1
- package/dist/cjs/src/client/FlashnetClient.d.ts +181 -1
- package/dist/cjs/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/cjs/src/client/FlashnetClient.js +478 -14
- package/dist/cjs/src/client/FlashnetClient.js.map +1 -1
- package/dist/cjs/src/config/index.js +1 -1
- package/dist/cjs/src/types/errors.js +11 -11
- package/dist/cjs/src/types/index.d.ts +414 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -1
- package/dist/cjs/src/types/index.js +1 -1
- package/dist/cjs/src/utils/index.d.ts +1 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -1
- package/dist/cjs/src/utils/index.js.map +1 -1
- package/dist/cjs/src/utils/intents.d.ts +91 -0
- package/dist/cjs/src/utils/intents.d.ts.map +1 -1
- package/dist/cjs/src/utils/intents.js +117 -0
- package/dist/cjs/src/utils/intents.js.map +1 -1
- package/dist/cjs/src/utils/spark-address.js +2 -2
- package/dist/cjs/src/utils/tick-math.d.ts +240 -0
- package/dist/cjs/src/utils/tick-math.d.ts.map +1 -0
- package/dist/cjs/src/utils/tick-math.js +299 -0
- package/dist/cjs/src/utils/tick-math.js.map +1 -0
- package/dist/cjs/src/utils/tokenAddress.js +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/src/api/typed-endpoints.d.ts +70 -0
- package/dist/esm/src/api/typed-endpoints.d.ts.map +1 -1
- package/dist/esm/src/api/typed-endpoints.js +106 -11
- package/dist/esm/src/api/typed-endpoints.js.map +1 -1
- package/dist/esm/src/client/FlashnetClient.d.ts +181 -1
- package/dist/esm/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/esm/src/client/FlashnetClient.js +479 -15
- package/dist/esm/src/client/FlashnetClient.js.map +1 -1
- package/dist/esm/src/config/index.js +1 -1
- package/dist/esm/src/types/errors.js +11 -11
- package/dist/esm/src/types/index.d.ts +414 -0
- package/dist/esm/src/types/index.d.ts.map +1 -1
- package/dist/esm/src/types/index.js +1 -1
- package/dist/esm/src/utils/index.d.ts +1 -0
- package/dist/esm/src/utils/index.d.ts.map +1 -1
- package/dist/esm/src/utils/index.js.map +1 -1
- package/dist/esm/src/utils/intents.d.ts +91 -0
- package/dist/esm/src/utils/intents.d.ts.map +1 -1
- package/dist/esm/src/utils/intents.js +112 -1
- package/dist/esm/src/utils/intents.js.map +1 -1
- package/dist/esm/src/utils/spark-address.js +2 -2
- package/dist/esm/src/utils/tick-math.d.ts +240 -0
- package/dist/esm/src/utils/tick-math.d.ts.map +1 -0
- package/dist/esm/src/utils/tick-math.js +287 -0
- package/dist/esm/src/utils/tick-math.js.map +1 -0
- package/dist/esm/src/utils/tokenAddress.js +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 Concentrated Liquidity Tick Math Utilities
|
|
3
|
+
*
|
|
4
|
+
* In V3 AMMs, price is represented as ticks where: price = 1.0001^tick
|
|
5
|
+
* Each tick represents a 0.01% (1 basis point) price change.
|
|
6
|
+
*
|
|
7
|
+
* Pool price convention: "amount of asset B per 1 unit of asset A" (in smallest units)
|
|
8
|
+
* For a USDB/BTC pool (A=USDB, B=BTC): price = sats per microUSDB
|
|
9
|
+
*/
|
|
10
|
+
// Constants
|
|
11
|
+
const LOG_BASE = Math.log(1.0001);
|
|
12
|
+
const MIN_TICK = -887272;
|
|
13
|
+
const MAX_TICK = 887272;
|
|
14
|
+
/**
|
|
15
|
+
* Convert a raw pool price to a tick.
|
|
16
|
+
*
|
|
17
|
+
* @param price - Pool price (amount of asset B per unit of asset A in smallest units)
|
|
18
|
+
* @returns The tick value
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // For USDB/BTC pool at ~$90k: price = 0.00111 sats per microUSDB
|
|
22
|
+
* priceToTick(0.00111) // returns approximately -68038
|
|
23
|
+
*/
|
|
24
|
+
function priceToTick(price) {
|
|
25
|
+
const priceNum = typeof price === "string" ? parseFloat(price) : price;
|
|
26
|
+
if (priceNum <= 0) {
|
|
27
|
+
throw new Error("Price must be positive");
|
|
28
|
+
}
|
|
29
|
+
const tick = Math.log(priceNum) / LOG_BASE;
|
|
30
|
+
return Math.round(tick);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Convert a tick to a raw pool price.
|
|
34
|
+
*
|
|
35
|
+
* @param tick - The tick value
|
|
36
|
+
* @returns Pool price as a string (for precision)
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* tickToPrice(-68038) // returns "0.001109..." (sats per microUSDB)
|
|
40
|
+
*/
|
|
41
|
+
function tickToPrice(tick) {
|
|
42
|
+
if (tick < MIN_TICK || tick > MAX_TICK) {
|
|
43
|
+
throw new Error(`Tick must be between ${MIN_TICK} and ${MAX_TICK}`);
|
|
44
|
+
}
|
|
45
|
+
const price = 1.0001 ** tick;
|
|
46
|
+
return price.toString();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Round a tick down to the nearest valid tick (multiple of tick spacing).
|
|
50
|
+
*
|
|
51
|
+
* @param tick - The tick to round
|
|
52
|
+
* @param tickSpacing - The pool's tick spacing (e.g., 60)
|
|
53
|
+
* @returns Rounded tick
|
|
54
|
+
*/
|
|
55
|
+
function roundTickDown(tick, tickSpacing) {
|
|
56
|
+
return Math.floor(tick / tickSpacing) * tickSpacing;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Round a tick up to the nearest valid tick (multiple of tick spacing).
|
|
60
|
+
*
|
|
61
|
+
* @param tick - The tick to round
|
|
62
|
+
* @param tickSpacing - The pool's tick spacing (e.g., 60)
|
|
63
|
+
* @returns Rounded tick
|
|
64
|
+
*/
|
|
65
|
+
function roundTickUp(tick, tickSpacing) {
|
|
66
|
+
return Math.ceil(tick / tickSpacing) * tickSpacing;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Round a tick to the nearest valid tick (multiple of tick spacing).
|
|
70
|
+
*
|
|
71
|
+
* @param tick - The tick to round
|
|
72
|
+
* @param tickSpacing - The pool's tick spacing (e.g., 60)
|
|
73
|
+
* @returns Rounded tick
|
|
74
|
+
*/
|
|
75
|
+
function roundTick(tick, tickSpacing) {
|
|
76
|
+
return Math.round(tick / tickSpacing) * tickSpacing;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Convert a human-readable price to a V3 tick.
|
|
80
|
+
*
|
|
81
|
+
* This is the most user-friendly function for calculating ticks.
|
|
82
|
+
* Express your price as "quote per base" (e.g., "$90,000 per BTC").
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // BTC at $90,000, pool has USDB (6 decimals) as A, BTC (8 decimals) as B
|
|
86
|
+
* humanPriceToTick({
|
|
87
|
+
* humanPrice: 90000,
|
|
88
|
+
* baseDecimals: 8, // BTC
|
|
89
|
+
* quoteDecimals: 6, // USD
|
|
90
|
+
* baseIsAssetA: false, // BTC is asset B (default)
|
|
91
|
+
* tickSpacing: 60
|
|
92
|
+
* }) // returns -68040
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* // Get tick range for $80,000 to $100,000
|
|
96
|
+
* const tickLower = humanPriceToTick({ humanPrice: 100000, baseDecimals: 8, quoteDecimals: 6, tickSpacing: 60 });
|
|
97
|
+
* const tickUpper = humanPriceToTick({ humanPrice: 80000, baseDecimals: 8, quoteDecimals: 6, tickSpacing: 60 });
|
|
98
|
+
* // Note: higher price = lower tick for this pool configuration
|
|
99
|
+
*/
|
|
100
|
+
function humanPriceToTick(options) {
|
|
101
|
+
const { humanPrice, baseDecimals, quoteDecimals, baseIsAssetA = false, tickSpacing, } = options;
|
|
102
|
+
if (humanPrice <= 0) {
|
|
103
|
+
throw new Error("Human price must be positive");
|
|
104
|
+
}
|
|
105
|
+
// Pool price is "amount of B per unit of A" in smallest units
|
|
106
|
+
// Human price is "quote per base"
|
|
107
|
+
// If base is asset B (common case: BTC/USD pool where BTC is B):
|
|
108
|
+
// pool_price = 10^(baseDecimals - quoteDecimals) / humanPrice
|
|
109
|
+
// If base is asset A:
|
|
110
|
+
// pool_price = humanPrice * 10^(quoteDecimals - baseDecimals)
|
|
111
|
+
let poolPrice;
|
|
112
|
+
if (baseIsAssetA) {
|
|
113
|
+
// Base is A, so human price is "B per A" which is the same direction as pool price
|
|
114
|
+
poolPrice = humanPrice * 10 ** (quoteDecimals - baseDecimals);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// Base is B, so human price is "A per B", need to invert
|
|
118
|
+
poolPrice = 10 ** (baseDecimals - quoteDecimals) / humanPrice;
|
|
119
|
+
}
|
|
120
|
+
let tick = priceToTick(poolPrice);
|
|
121
|
+
if (tickSpacing) {
|
|
122
|
+
tick = roundTick(tick, tickSpacing);
|
|
123
|
+
}
|
|
124
|
+
return tick;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Convert a V3 tick to a human-readable price.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // Tick -68040 in a USDB/BTC pool
|
|
131
|
+
* tickToHumanPrice({
|
|
132
|
+
* tick: -68040,
|
|
133
|
+
* baseDecimals: 8, // BTC
|
|
134
|
+
* quoteDecimals: 6, // USD
|
|
135
|
+
* baseIsAssetA: false // BTC is asset B
|
|
136
|
+
* }) // returns approximately 90000 (dollars per BTC)
|
|
137
|
+
*/
|
|
138
|
+
function tickToHumanPrice(options) {
|
|
139
|
+
const { tick, baseDecimals, quoteDecimals, baseIsAssetA = false } = options;
|
|
140
|
+
const poolPrice = parseFloat(tickToPrice(tick));
|
|
141
|
+
// Reverse the conversion from humanPriceToTick
|
|
142
|
+
if (baseIsAssetA) {
|
|
143
|
+
return poolPrice / 10 ** (quoteDecimals - baseDecimals);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
return 10 ** (baseDecimals - quoteDecimals) / poolPrice;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get a tick range from human-readable price bounds.
|
|
151
|
+
*
|
|
152
|
+
* Automatically handles the conversion and ensures tickLower < tickUpper.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* // Get tick range for $80,000 to $100,000 BTC price
|
|
156
|
+
* const range = tickRangeFromPrices({
|
|
157
|
+
* priceLower: 80000,
|
|
158
|
+
* priceUpper: 100000,
|
|
159
|
+
* baseDecimals: 8,
|
|
160
|
+
* quoteDecimals: 6,
|
|
161
|
+
* tickSpacing: 60
|
|
162
|
+
* });
|
|
163
|
+
* // returns { tickLower: -69120, tickUpper: -66840, actualPriceLower: 80180, actualPriceUpper: 99820 }
|
|
164
|
+
*/
|
|
165
|
+
function tickRangeFromPrices(options) {
|
|
166
|
+
const { priceLower, priceUpper, baseDecimals, quoteDecimals, baseIsAssetA = false, tickSpacing, } = options;
|
|
167
|
+
if (priceLower >= priceUpper) {
|
|
168
|
+
throw new Error("priceLower must be less than priceUpper");
|
|
169
|
+
}
|
|
170
|
+
const tick1 = humanPriceToTick({
|
|
171
|
+
humanPrice: priceLower,
|
|
172
|
+
baseDecimals,
|
|
173
|
+
quoteDecimals,
|
|
174
|
+
baseIsAssetA,
|
|
175
|
+
tickSpacing,
|
|
176
|
+
});
|
|
177
|
+
const tick2 = humanPriceToTick({
|
|
178
|
+
humanPrice: priceUpper,
|
|
179
|
+
baseDecimals,
|
|
180
|
+
quoteDecimals,
|
|
181
|
+
baseIsAssetA,
|
|
182
|
+
tickSpacing,
|
|
183
|
+
});
|
|
184
|
+
// Ensure tickLower < tickUpper (tick direction depends on baseIsAssetA)
|
|
185
|
+
const tickLower = Math.min(tick1, tick2);
|
|
186
|
+
const tickUpper = Math.max(tick1, tick2);
|
|
187
|
+
// Calculate actual prices at the rounded ticks
|
|
188
|
+
const actualPriceLower = tickToHumanPrice({
|
|
189
|
+
tick: baseIsAssetA ? tickLower : tickUpper,
|
|
190
|
+
baseDecimals,
|
|
191
|
+
quoteDecimals,
|
|
192
|
+
baseIsAssetA,
|
|
193
|
+
});
|
|
194
|
+
const actualPriceUpper = tickToHumanPrice({
|
|
195
|
+
tick: baseIsAssetA ? tickUpper : tickLower,
|
|
196
|
+
baseDecimals,
|
|
197
|
+
quoteDecimals,
|
|
198
|
+
baseIsAssetA,
|
|
199
|
+
});
|
|
200
|
+
return {
|
|
201
|
+
tickLower,
|
|
202
|
+
tickUpper,
|
|
203
|
+
actualPriceLower,
|
|
204
|
+
actualPriceUpper,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
//
|
|
208
|
+
// Pool Price Calculation from Amount
|
|
209
|
+
//
|
|
210
|
+
/**
|
|
211
|
+
* Calculate the pool price needed for a given position configuration.
|
|
212
|
+
*
|
|
213
|
+
* @param humanPrice - Human-readable price (e.g., 90000 for $90k/BTC)
|
|
214
|
+
* @param baseDecimals - Decimals of base token
|
|
215
|
+
* @param quoteDecimals - Decimals of quote token
|
|
216
|
+
* @param baseIsAssetA - Whether base is asset A (default: false)
|
|
217
|
+
* @returns Pool price string suitable for createConcentratedPool's initialPrice
|
|
218
|
+
*/
|
|
219
|
+
function humanPriceToPoolPrice(humanPrice, baseDecimals, quoteDecimals, baseIsAssetA = false) {
|
|
220
|
+
if (humanPrice <= 0) {
|
|
221
|
+
throw new Error("Human price must be positive");
|
|
222
|
+
}
|
|
223
|
+
let poolPrice;
|
|
224
|
+
if (baseIsAssetA) {
|
|
225
|
+
poolPrice = humanPrice * 10 ** (quoteDecimals - baseDecimals);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
poolPrice = 10 ** (baseDecimals - quoteDecimals) / humanPrice;
|
|
229
|
+
}
|
|
230
|
+
return poolPrice.toPrecision(10);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Convert pool price to human-readable price.
|
|
234
|
+
*
|
|
235
|
+
* @param poolPrice - Pool price (amount of B per unit of A in smallest units)
|
|
236
|
+
* @param baseDecimals - Decimals of base token
|
|
237
|
+
* @param quoteDecimals - Decimals of quote token
|
|
238
|
+
* @param baseIsAssetA - Whether base is asset A (default: false)
|
|
239
|
+
* @returns Human-readable price
|
|
240
|
+
*/
|
|
241
|
+
function poolPriceToHumanPrice(poolPrice, baseDecimals, quoteDecimals, baseIsAssetA = false) {
|
|
242
|
+
const price = typeof poolPrice === "string" ? parseFloat(poolPrice) : poolPrice;
|
|
243
|
+
if (baseIsAssetA) {
|
|
244
|
+
return price / 10 ** (quoteDecimals - baseDecimals);
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
return 10 ** (baseDecimals - quoteDecimals) / price;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
//
|
|
251
|
+
// Convenience exports
|
|
252
|
+
//
|
|
253
|
+
/**
|
|
254
|
+
* V3 tick math utilities namespace for cleaner imports.
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* import { V3TickMath } from "@flashnet/sdk";
|
|
258
|
+
*
|
|
259
|
+
* const tick = V3TickMath.fromHumanPrice({
|
|
260
|
+
* humanPrice: 90000,
|
|
261
|
+
* baseDecimals: 8,
|
|
262
|
+
* quoteDecimals: 6,
|
|
263
|
+
* tickSpacing: 60
|
|
264
|
+
* });
|
|
265
|
+
*/
|
|
266
|
+
const V3TickMath = {
|
|
267
|
+
// Core conversions
|
|
268
|
+
priceToTick,
|
|
269
|
+
tickToPrice,
|
|
270
|
+
// Tick spacing
|
|
271
|
+
roundTickDown,
|
|
272
|
+
roundTickUp,
|
|
273
|
+
roundTick,
|
|
274
|
+
// Human-readable conversions
|
|
275
|
+
fromHumanPrice: humanPriceToTick,
|
|
276
|
+
toHumanPrice: tickToHumanPrice,
|
|
277
|
+
rangeFromPrices: tickRangeFromPrices,
|
|
278
|
+
// Pool price conversions
|
|
279
|
+
humanPriceToPoolPrice,
|
|
280
|
+
poolPriceToHumanPrice,
|
|
281
|
+
// Constants
|
|
282
|
+
MIN_TICK,
|
|
283
|
+
MAX_TICK,
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
export { V3TickMath, humanPriceToPoolPrice, humanPriceToTick, poolPriceToHumanPrice, priceToTick, roundTick, roundTickDown, roundTickUp, tickRangeFromPrices, tickToHumanPrice, tickToPrice };
|
|
287
|
+
//# sourceMappingURL=tick-math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-math.js","sources":["../../../../../../src/utils/tick-math.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ function decodeSparkHumanReadableTokenIdentifier(humanReadableTokenIdentifier, n
|
|
|
60
60
|
throw new Error("Failed to decode Spark human readable token identifier");
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
//
|
|
63
|
+
// BACKWARD COMPATIBILITY LAYER
|
|
64
64
|
/**
|
|
65
65
|
* @deprecated Use SparkHumanReadableTokenIdentifierNetworkPrefix instead
|
|
66
66
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flashnet/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"main": "./dist/cjs/index.js",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"types": "./dist/esm/index.d.ts",
|
|
@@ -54,6 +54,9 @@
|
|
|
54
54
|
"test:cjs": "node tests/test-cjs.cjs",
|
|
55
55
|
"test:bun": "bun tests/test-bun.js",
|
|
56
56
|
"test:modular": "node tests/test-modular.mjs",
|
|
57
|
+
"test:e2e": "npx tsx tests/e2e.ts",
|
|
58
|
+
"test:e2e:v3": "npx tsx tests/e2e-concentrated-liquidity-sdk.ts",
|
|
59
|
+
"test:e2e:all": "npm run test:e2e && npm run test:e2e:v3",
|
|
57
60
|
"lint": "biome check .",
|
|
58
61
|
"lint:fix": "biome check --write .",
|
|
59
62
|
"format": "biome format --write .",
|
|
@@ -62,8 +65,8 @@
|
|
|
62
65
|
},
|
|
63
66
|
"devDependencies": {
|
|
64
67
|
"@biomejs/biome": "2.0.5",
|
|
65
|
-
"@buildonspark/issuer-sdk": "^0.1.
|
|
66
|
-
"@buildonspark/spark-sdk": "^0.5.
|
|
68
|
+
"@buildonspark/issuer-sdk": "^0.1.4",
|
|
69
|
+
"@buildonspark/spark-sdk": "^0.5.4",
|
|
67
70
|
"@rollup/plugin-typescript": "^12.1.4",
|
|
68
71
|
"@types/bun": "latest",
|
|
69
72
|
"@types/jest": "^30.0.0",
|