@cubee_ee/sdk 0.4.0 → 0.5.1
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/clients/CubeBackendClient.d.ts +12 -2
- package/dist/clients/CubeBackendClient.d.ts.map +1 -1
- package/dist/clients/CubeBackendClient.js +12 -2
- package/dist/clients/CubeBackendClient.js.map +1 -1
- package/dist/math/maxSelloff.d.ts +84 -0
- package/dist/math/maxSelloff.d.ts.map +1 -0
- package/dist/math/maxSelloff.js +169 -0
- package/dist/math/maxSelloff.js.map +1 -0
- package/dist/math/selloff.d.ts +89 -0
- package/dist/math/selloff.d.ts.map +1 -0
- package/dist/math/selloff.js +161 -0
- package/dist/math/selloff.js.map +1 -0
- package/package.json +1 -1
- package/src/clients/CubeBackendClient.ts +14 -1
|
@@ -253,7 +253,10 @@ export interface PortfolioPoolEntry {
|
|
|
253
253
|
}>;
|
|
254
254
|
value: number;
|
|
255
255
|
feesEarned: number;
|
|
256
|
+
/** LIVE unrealized IL only (≤ 0); realized part is `ilRealized` */
|
|
256
257
|
il: number;
|
|
258
|
+
/** Result locked in on past withdrawals vs HODL ("Realized PnL" in UI) */
|
|
259
|
+
ilRealized: number;
|
|
257
260
|
netPnl: number;
|
|
258
261
|
apr: number;
|
|
259
262
|
}
|
|
@@ -323,7 +326,13 @@ export declare class CubeBackendClient {
|
|
|
323
326
|
type?: "swap" | "add_liquidity" | "remove_liquidity";
|
|
324
327
|
user?: string;
|
|
325
328
|
}): Promise<SdkResult<T>>;
|
|
326
|
-
getSwapRoute(tokenIn: string, tokenOut: string, amountIn: string, decimalsIn?: number, slippageBps?: number
|
|
329
|
+
getSwapRoute(tokenIn: string, tokenOut: string, amountIn: string, decimalsIn?: number, slippageBps?: number,
|
|
330
|
+
/**
|
|
331
|
+
* Restrict the quote to this single pool: no split routing, all
|
|
332
|
+
* estimates (priceImpact against this pool's own spot, fees, XP) are
|
|
333
|
+
* computed as if swapping only through it.
|
|
334
|
+
*/
|
|
335
|
+
pool?: string): Promise<SdkResult<SwapRouteResponse>>;
|
|
327
336
|
getLeaderboard(page?: number, limit?: number): Promise<SdkResult<LeaderboardResponse>>;
|
|
328
337
|
getLeaderboardUser(address: string): Promise<SdkResult<LeaderboardUserStats>>;
|
|
329
338
|
getLeaderboardUserHistory(address: string, page?: number, limit?: number): Promise<SdkResult<XpAccrualHistoryResponse>>;
|
|
@@ -386,7 +395,8 @@ export declare class CubeBackendClient {
|
|
|
386
395
|
*/
|
|
387
396
|
getPortfolioHistory(range?: "7d" | "30d" | "90d" | "all"): Promise<SdkResult<PortfolioHistoryResponse>>;
|
|
388
397
|
/**
|
|
389
|
-
* Per-pool portfolio metrics (value, fees, IL,
|
|
398
|
+
* Per-pool portfolio metrics (value, fees, unrealized IL, realized
|
|
399
|
+
* IL/PnL, net PnL, APR).
|
|
390
400
|
*/
|
|
391
401
|
getPortfolioPools(): Promise<SdkResult<PortfolioPoolsResponse>>;
|
|
392
402
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeBackendClient.d.ts","sourceRoot":"","sources":["../../src/clients/CubeBackendClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CubeBackendClient.d.ts","sourceRoot":"","sources":["../../src/clients/CubeBackendClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,7 +76,13 @@ class CubeBackendClient {
|
|
|
76
76
|
qs.set("user", options.user);
|
|
77
77
|
return this.getDataField(`/api/pools/${addr}/transactions?${qs.toString()}`);
|
|
78
78
|
}
|
|
79
|
-
getSwapRoute(tokenIn, tokenOut, amountIn, decimalsIn = 9, slippageBps
|
|
79
|
+
getSwapRoute(tokenIn, tokenOut, amountIn, decimalsIn = 9, slippageBps,
|
|
80
|
+
/**
|
|
81
|
+
* Restrict the quote to this single pool: no split routing, all
|
|
82
|
+
* estimates (priceImpact against this pool's own spot, fees, XP) are
|
|
83
|
+
* computed as if swapping only through it.
|
|
84
|
+
*/
|
|
85
|
+
pool) {
|
|
80
86
|
const qs = new URLSearchParams({
|
|
81
87
|
tokenIn,
|
|
82
88
|
tokenOut,
|
|
@@ -86,6 +92,9 @@ class CubeBackendClient {
|
|
|
86
92
|
if (slippageBps !== undefined) {
|
|
87
93
|
qs.set('slippageBps', String(slippageBps));
|
|
88
94
|
}
|
|
95
|
+
if (pool !== undefined) {
|
|
96
|
+
qs.set('pool', pool);
|
|
97
|
+
}
|
|
89
98
|
return this.getDataField(`/api/pools/swap-route?${qs.toString()}`);
|
|
90
99
|
}
|
|
91
100
|
// ── Leaderboard ──
|
|
@@ -199,7 +208,8 @@ class CubeBackendClient {
|
|
|
199
208
|
return this.get(`/api/portfolio/history?range=${range}`);
|
|
200
209
|
}
|
|
201
210
|
/**
|
|
202
|
-
* Per-pool portfolio metrics (value, fees, IL,
|
|
211
|
+
* Per-pool portfolio metrics (value, fees, unrealized IL, realized
|
|
212
|
+
* IL/PnL, net PnL, APR).
|
|
203
213
|
*/
|
|
204
214
|
getPortfolioPools() {
|
|
205
215
|
return this.get("/api/portfolio/pools");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeBackendClient.js","sourceRoot":"","sources":["../../src/clients/CubeBackendClient.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAErD,0CAA0C;
|
|
1
|
+
{"version":3,"file":"CubeBackendClient.js","sourceRoot":"","sources":["../../src/clients/CubeBackendClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sliding-window cumulative-sell rate limiter + variable sell-off surge fee.
|
|
3
|
+
*
|
|
4
|
+
* Port of `contracts/programs/cubic-pool/src/math/max_selloff.rs` and
|
|
5
|
+
* `.../surge_fee.rs`. All arithmetic is bigint (matching the Rust u128
|
|
6
|
+
* intermediates); BN is used only at the SDK boundary.
|
|
7
|
+
*
|
|
8
|
+
* The cap for a window is a percentage of the token's `virtual_balance`
|
|
9
|
+
* captured in a per-window snapshot (NOT the live value), which prevents an
|
|
10
|
+
* in-window base-inflation bypass. See the Rust module for the full rationale.
|
|
11
|
+
*/
|
|
12
|
+
import BN from "bn.js";
|
|
13
|
+
/** A = SURGE_FEE_CONVEXITY_FP (= 4) in 1e18 fixed point. */
|
|
14
|
+
export declare const SURGE_FEE_CONVEXITY: bigint;
|
|
15
|
+
export interface SelloffWindowInputs {
|
|
16
|
+
maxSelloffPct: number;
|
|
17
|
+
periodLength: number;
|
|
18
|
+
previousSelloff: BN;
|
|
19
|
+
currentSelloff: BN;
|
|
20
|
+
windowStartTimestamp: BN;
|
|
21
|
+
selloffVbSnapshot: BN;
|
|
22
|
+
/** Current pre-trade virtual balance of the token. */
|
|
23
|
+
virtualBalance: BN;
|
|
24
|
+
/** Unix seconds. */
|
|
25
|
+
now: number;
|
|
26
|
+
}
|
|
27
|
+
export interface SelloffWindowStatus {
|
|
28
|
+
/** True when the limiter is configured (`maxSelloffPct > 0`). */
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
cap: BN;
|
|
31
|
+
/** Effective decayed usage WITHOUT a hypothetical trade. */
|
|
32
|
+
used: BN;
|
|
33
|
+
/** `max(0, cap - used)`. */
|
|
34
|
+
remaining: BN;
|
|
35
|
+
/** `used/cap` in PERCENT_SCALE units (0..10_000+); 0 when disabled/cap=0. */
|
|
36
|
+
fillPct: number;
|
|
37
|
+
windowStartTimestamp: BN;
|
|
38
|
+
periodLength: number;
|
|
39
|
+
/** Whether the projection at `now` rotated the window vs stored state. */
|
|
40
|
+
rotated: boolean;
|
|
41
|
+
/** Snapshot the cap was resolved against (post-projection). */
|
|
42
|
+
vbSnapshot: BN;
|
|
43
|
+
}
|
|
44
|
+
/** Result of the pure bigint window projection. */
|
|
45
|
+
export interface WindowProjection {
|
|
46
|
+
opened: boolean;
|
|
47
|
+
windowStart: bigint;
|
|
48
|
+
elapsedInWindow: bigint;
|
|
49
|
+
previous: bigint;
|
|
50
|
+
current: bigint;
|
|
51
|
+
vbSnapshot: bigint;
|
|
52
|
+
cap: bigint;
|
|
53
|
+
weightedPrev: bigint;
|
|
54
|
+
/** weightedPrev + current (decayed effective, WITHOUT a hypothetical trade). */
|
|
55
|
+
usedWithoutTrade: bigint;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Pure bigint projection of the sliding window at `now`. Mirrors
|
|
59
|
+
* `check_and_advance`'s rotation + snapshot logic (read-only, no `amount_in`).
|
|
60
|
+
*/
|
|
61
|
+
export declare function projectSelloffWindow(params: {
|
|
62
|
+
maxSelloffPct: number;
|
|
63
|
+
periodLength: number;
|
|
64
|
+
previousSelloff: bigint;
|
|
65
|
+
currentSelloff: bigint;
|
|
66
|
+
windowStartTimestamp: bigint;
|
|
67
|
+
selloffVbSnapshot: bigint;
|
|
68
|
+
virtualBalance: bigint;
|
|
69
|
+
now: number;
|
|
70
|
+
}): WindowProjection;
|
|
71
|
+
/** Read-only status of a token's max-selloff window at `now`. */
|
|
72
|
+
export declare function computeSelloffWindow(inputs: SelloffWindowInputs): SelloffWindowStatus;
|
|
73
|
+
/**
|
|
74
|
+
* Surge-fee percentage (PERCENT_SCALE units, 0..=10_000) for a swap that
|
|
75
|
+
* pushed the input token's window to `effectiveSelloff` against `cap`.
|
|
76
|
+
* Port of `calc_surge_fee_pct`. Returns 0 when disabled or below threshold.
|
|
77
|
+
*/
|
|
78
|
+
export declare function calcSurgeFeePct(effectiveSelloff: bigint, cap: bigint, thresholdPct: number, slopeLowPct: number, slopeHighPct: number): number;
|
|
79
|
+
/**
|
|
80
|
+
* CEIL surge fee on `amountOut`, clamped to `amountOut`.
|
|
81
|
+
* `num = amountOut * surgePct; fee = ceil(num / PERCENT_SCALE)`.
|
|
82
|
+
*/
|
|
83
|
+
export declare function calcSurgeFeeAmount(amountOut: bigint, surgePct: number): bigint;
|
|
84
|
+
//# sourceMappingURL=maxSelloff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maxSelloff.d.ts","sourceRoot":"","sources":["../../src/math/maxSelloff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,OAAO,CAAC;AAKvB,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,QAAW,CAAC;AAI5C,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,EAAE,CAAC;IACpB,cAAc,EAAE,EAAE,CAAC;IACnB,oBAAoB,EAAE,EAAE,CAAC;IACzB,iBAAiB,EAAE,EAAE,CAAC;IACtB,sDAAsD;IACtD,cAAc,EAAE,EAAE,CAAC;IACnB,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,EAAE,CAAC;IACR,4DAA4D;IAC5D,IAAI,EAAE,EAAE,CAAC;IACT,4BAA4B;IAC5B,SAAS,EAAE,EAAE,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,UAAU,EAAE,EAAE,CAAC;CAChB;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,gBAAgB,CA8DnB;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CA0CrF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAmBR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK9E"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sliding-window cumulative-sell rate limiter + variable sell-off surge fee.
|
|
4
|
+
*
|
|
5
|
+
* Port of `contracts/programs/cubic-pool/src/math/max_selloff.rs` and
|
|
6
|
+
* `.../surge_fee.rs`. All arithmetic is bigint (matching the Rust u128
|
|
7
|
+
* intermediates); BN is used only at the SDK boundary.
|
|
8
|
+
*
|
|
9
|
+
* The cap for a window is a percentage of the token's `virtual_balance`
|
|
10
|
+
* captured in a per-window snapshot (NOT the live value), which prevents an
|
|
11
|
+
* in-window base-inflation bypass. See the Rust module for the full rationale.
|
|
12
|
+
*/
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.SURGE_FEE_CONVEXITY = void 0;
|
|
18
|
+
exports.projectSelloffWindow = projectSelloffWindow;
|
|
19
|
+
exports.computeSelloffWindow = computeSelloffWindow;
|
|
20
|
+
exports.calcSurgeFeePct = calcSurgeFeePct;
|
|
21
|
+
exports.calcSurgeFeeAmount = calcSurgeFeeAmount;
|
|
22
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
23
|
+
const config_1 = require("../config");
|
|
24
|
+
const fixedPoint_1 = require("./fixedPoint");
|
|
25
|
+
const logExp_1 = require("./logExp");
|
|
26
|
+
/** A = SURGE_FEE_CONVEXITY_FP (= 4) in 1e18 fixed point. */
|
|
27
|
+
exports.SURGE_FEE_CONVEXITY = 4n * fixedPoint_1.ONE;
|
|
28
|
+
const SCALE = BigInt(config_1.PERCENT_SCALE); // 10_000
|
|
29
|
+
/**
|
|
30
|
+
* Pure bigint projection of the sliding window at `now`. Mirrors
|
|
31
|
+
* `check_and_advance`'s rotation + snapshot logic (read-only, no `amount_in`).
|
|
32
|
+
*/
|
|
33
|
+
function projectSelloffWindow(params) {
|
|
34
|
+
const period = BigInt(params.periodLength);
|
|
35
|
+
const storedWs = params.windowStartTimestamp;
|
|
36
|
+
const nowBI = BigInt(Math.trunc(params.now));
|
|
37
|
+
const rawElapsed = nowBI - storedWs;
|
|
38
|
+
const elapsed = rawElapsed < 0n ? 0n : rawElapsed;
|
|
39
|
+
let prev;
|
|
40
|
+
let cur;
|
|
41
|
+
let ws;
|
|
42
|
+
let eiw;
|
|
43
|
+
let opened;
|
|
44
|
+
if (period > 0n && elapsed >= 2n * period) {
|
|
45
|
+
prev = 0n;
|
|
46
|
+
cur = 0n;
|
|
47
|
+
ws = nowBI;
|
|
48
|
+
eiw = 0n;
|
|
49
|
+
opened = true;
|
|
50
|
+
}
|
|
51
|
+
else if (period > 0n && elapsed >= period) {
|
|
52
|
+
ws = storedWs + period;
|
|
53
|
+
const e = nowBI - ws;
|
|
54
|
+
eiw = e < 0n ? 0n : e;
|
|
55
|
+
prev = params.currentSelloff;
|
|
56
|
+
cur = 0n;
|
|
57
|
+
opened = true;
|
|
58
|
+
}
|
|
59
|
+
else if (period <= 0n) {
|
|
60
|
+
// Degenerate config (should be rejected on-chain); treat as a fresh reset.
|
|
61
|
+
prev = 0n;
|
|
62
|
+
cur = 0n;
|
|
63
|
+
ws = nowBI;
|
|
64
|
+
eiw = 0n;
|
|
65
|
+
opened = true;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
prev = params.previousSelloff;
|
|
69
|
+
cur = params.currentSelloff;
|
|
70
|
+
ws = storedWs;
|
|
71
|
+
eiw = elapsed;
|
|
72
|
+
opened = false;
|
|
73
|
+
}
|
|
74
|
+
const vbSnapshot = opened || params.selloffVbSnapshot === 0n
|
|
75
|
+
? params.virtualBalance
|
|
76
|
+
: params.selloffVbSnapshot;
|
|
77
|
+
const cap = (BigInt(params.maxSelloffPct) * vbSnapshot) / SCALE;
|
|
78
|
+
const weightedPrev = period > 0n ? (prev * (period - eiw)) / period : 0n;
|
|
79
|
+
const usedWithoutTrade = weightedPrev + cur;
|
|
80
|
+
return {
|
|
81
|
+
opened,
|
|
82
|
+
windowStart: ws,
|
|
83
|
+
elapsedInWindow: eiw,
|
|
84
|
+
previous: prev,
|
|
85
|
+
current: cur,
|
|
86
|
+
vbSnapshot,
|
|
87
|
+
cap,
|
|
88
|
+
weightedPrev,
|
|
89
|
+
usedWithoutTrade,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/** Read-only status of a token's max-selloff window at `now`. */
|
|
93
|
+
function computeSelloffWindow(inputs) {
|
|
94
|
+
const enabled = inputs.maxSelloffPct > 0;
|
|
95
|
+
if (!enabled) {
|
|
96
|
+
return {
|
|
97
|
+
enabled: false,
|
|
98
|
+
cap: new bn_js_1.default(0),
|
|
99
|
+
used: new bn_js_1.default(0),
|
|
100
|
+
remaining: new bn_js_1.default(0),
|
|
101
|
+
fillPct: 0,
|
|
102
|
+
windowStartTimestamp: inputs.windowStartTimestamp,
|
|
103
|
+
periodLength: inputs.periodLength,
|
|
104
|
+
rotated: false,
|
|
105
|
+
vbSnapshot: new bn_js_1.default(0),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const proj = projectSelloffWindow({
|
|
109
|
+
maxSelloffPct: inputs.maxSelloffPct,
|
|
110
|
+
periodLength: inputs.periodLength,
|
|
111
|
+
previousSelloff: BigInt(inputs.previousSelloff.toString()),
|
|
112
|
+
currentSelloff: BigInt(inputs.currentSelloff.toString()),
|
|
113
|
+
windowStartTimestamp: BigInt(inputs.windowStartTimestamp.toString()),
|
|
114
|
+
selloffVbSnapshot: BigInt(inputs.selloffVbSnapshot.toString()),
|
|
115
|
+
virtualBalance: BigInt(inputs.virtualBalance.toString()),
|
|
116
|
+
now: inputs.now,
|
|
117
|
+
});
|
|
118
|
+
const used = proj.usedWithoutTrade;
|
|
119
|
+
const remaining = proj.cap > used ? proj.cap - used : 0n;
|
|
120
|
+
const fillPct = proj.cap === 0n ? 0 : Number((used * SCALE) / proj.cap);
|
|
121
|
+
return {
|
|
122
|
+
enabled: true,
|
|
123
|
+
cap: new bn_js_1.default(proj.cap.toString()),
|
|
124
|
+
used: new bn_js_1.default(used.toString()),
|
|
125
|
+
remaining: new bn_js_1.default(remaining.toString()),
|
|
126
|
+
fillPct,
|
|
127
|
+
windowStartTimestamp: new bn_js_1.default(proj.windowStart.toString()),
|
|
128
|
+
periodLength: inputs.periodLength,
|
|
129
|
+
rotated: proj.opened,
|
|
130
|
+
vbSnapshot: new bn_js_1.default(proj.vbSnapshot.toString()),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Surge-fee percentage (PERCENT_SCALE units, 0..=10_000) for a swap that
|
|
135
|
+
* pushed the input token's window to `effectiveSelloff` against `cap`.
|
|
136
|
+
* Port of `calc_surge_fee_pct`. Returns 0 when disabled or below threshold.
|
|
137
|
+
*/
|
|
138
|
+
function calcSurgeFeePct(effectiveSelloff, cap, thresholdPct, slopeLowPct, slopeHighPct) {
|
|
139
|
+
if (cap === 0n || slopeHighPct === 0)
|
|
140
|
+
return 0;
|
|
141
|
+
const thr = BigInt(thresholdPct);
|
|
142
|
+
if (thr >= SCALE)
|
|
143
|
+
return 0;
|
|
144
|
+
const fillRaw = (effectiveSelloff * SCALE) / cap;
|
|
145
|
+
const fill = fillRaw < SCALE ? fillRaw : SCALE;
|
|
146
|
+
if (fill <= thr)
|
|
147
|
+
return 0;
|
|
148
|
+
const t = ((fill - thr) * fixedPoint_1.ONE) / (SCALE - thr);
|
|
149
|
+
const aPowT = (0, logExp_1.powFp)(exports.SURGE_FEE_CONVEXITY, t);
|
|
150
|
+
const factorRaw = ((aPowT - fixedPoint_1.ONE) * fixedPoint_1.ONE) / (exports.SURGE_FEE_CONVEXITY - fixedPoint_1.ONE);
|
|
151
|
+
const factor = factorRaw < fixedPoint_1.ONE ? factorRaw : fixedPoint_1.ONE;
|
|
152
|
+
const span = slopeHighPct > slopeLowPct ? BigInt(slopeHighPct - slopeLowPct) : 0n;
|
|
153
|
+
const prod = span * factor;
|
|
154
|
+
const add = prod / fixedPoint_1.ONE + (prod % fixedPoint_1.ONE !== 0n ? 1n : 0n);
|
|
155
|
+
const surge = BigInt(slopeLowPct) + add;
|
|
156
|
+
return Number(surge < SCALE ? surge : SCALE);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* CEIL surge fee on `amountOut`, clamped to `amountOut`.
|
|
160
|
+
* `num = amountOut * surgePct; fee = ceil(num / PERCENT_SCALE)`.
|
|
161
|
+
*/
|
|
162
|
+
function calcSurgeFeeAmount(amountOut, surgePct) {
|
|
163
|
+
if (surgePct <= 0 || amountOut <= 0n)
|
|
164
|
+
return 0n;
|
|
165
|
+
const num = amountOut * BigInt(surgePct);
|
|
166
|
+
const fee = num / SCALE + (num % SCALE !== 0n ? 1n : 0n);
|
|
167
|
+
return fee < amountOut ? fee : amountOut;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=maxSelloff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maxSelloff.js","sourceRoot":"","sources":["../../src/math/maxSelloff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Off-chain replicas of the cubic-pool v5 sell-off protections:
|
|
3
|
+
*
|
|
4
|
+
* - max-selloff sliding window — `math/max_selloff.rs::check_and_advance`
|
|
5
|
+
* - variable surge-fee curve — `math/surge_fee.rs::calc_surge_fee_pct`
|
|
6
|
+
*
|
|
7
|
+
* Used by routers/quoters to (a) avoid building routes that would revert
|
|
8
|
+
* with `MaxSelloffExceeded` — the window is a HARD cap on how much of a
|
|
9
|
+
* token can be sold into the pool per window — and (b) quote `amount_out`
|
|
10
|
+
* NET of the surge fee, which is the value the contract checks
|
|
11
|
+
* `minimum_amount_out` against.
|
|
12
|
+
*
|
|
13
|
+
* All arithmetic is bigint and mirrors the contract's u128 intermediates
|
|
14
|
+
* and rounding (cap floored, surge fee rounded UP). `powFp` is the same
|
|
15
|
+
* LogExpMath port the pool uses on-chain.
|
|
16
|
+
*/
|
|
17
|
+
/** Scale shared by all `_pct` config fields: 10_000 = 100%. */
|
|
18
|
+
export declare const PERCENT_SCALE = 10000n;
|
|
19
|
+
export interface SelloffWindowInput {
|
|
20
|
+
/** `AssetConfig.max_selloff_pct` (PERCENT_SCALE units). `0` = disabled. */
|
|
21
|
+
maxSelloffPct: number;
|
|
22
|
+
/** `AssetConfig.max_selloff_period_length` (seconds). */
|
|
23
|
+
periodLengthSecs: number;
|
|
24
|
+
/** `AssetDynamics.previous_selloff`. */
|
|
25
|
+
previousSelloff: bigint;
|
|
26
|
+
/** `AssetDynamics.current_selloff`. */
|
|
27
|
+
currentSelloff: bigint;
|
|
28
|
+
/** `AssetDynamics.window_start_timestamp` (unix seconds). */
|
|
29
|
+
windowStartTimestamp: bigint;
|
|
30
|
+
/** `AssetDynamics.selloff_vb_snapshot`. `0` = uninitialised. */
|
|
31
|
+
selloffVbSnapshot: bigint;
|
|
32
|
+
/** The token's CURRENT (pre-swap) `virtual_balance` — becomes the new
|
|
33
|
+
* snapshot if the window (re)opens at `now`. */
|
|
34
|
+
virtualBalance: bigint;
|
|
35
|
+
}
|
|
36
|
+
export interface ResolvedSelloffWindow {
|
|
37
|
+
/** `false` ⇒ no cap configured — unlimited headroom, no surge fee. */
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
/** Snapshot the cap resolves against at `now` (re-baselined on rotation). */
|
|
40
|
+
vbSnapshot: bigint;
|
|
41
|
+
/** Absolute cap: `floor(pct × vbSnapshot / PERCENT_SCALE)`. */
|
|
42
|
+
cap: bigint;
|
|
43
|
+
/**
|
|
44
|
+
* `previous × (period − elapsed) / period + current` after applying any
|
|
45
|
+
* window rotation at `now` — EXCLUDING any new trade amount.
|
|
46
|
+
*/
|
|
47
|
+
effectiveSelloff: bigint;
|
|
48
|
+
/** Max additional `amount_in` the window accepts now (`cap − effective`,
|
|
49
|
+
* clamped ≥ 0). The contract requires `effective + amount_in <= cap`. */
|
|
50
|
+
headroom: bigint;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Resolve a token's sell-off window state at `nowSecs`, WITHOUT mutating
|
|
54
|
+
* anything — the read-only counterpart of the contract's
|
|
55
|
+
* `check_and_advance` (which the real swap will run).
|
|
56
|
+
*
|
|
57
|
+
* Rotation rules (contract-identical):
|
|
58
|
+
* - `elapsed >= 2×period` → both buckets aged out; cleared, re-snapshot.
|
|
59
|
+
* - `elapsed >= period` → `previous = current`, `current = 0`,
|
|
60
|
+
* `window_start += period` (slides one period, not to `now`), re-snapshot.
|
|
61
|
+
* - otherwise → unchanged; reuse stored snapshot (or capture
|
|
62
|
+
* the live vb when the snapshot is still `0` / uninitialised).
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveSelloffWindow(input: SelloffWindowInput, nowSecs: number): ResolvedSelloffWindow;
|
|
65
|
+
/**
|
|
66
|
+
* Surge-fee percentage (PERCENT_SCALE units, `0..=10_000`) for a swap that
|
|
67
|
+
* pushes the input token's window to `effectiveSelloff` (INCLUDING the
|
|
68
|
+
* swap's own `amount_in`) against `cap`.
|
|
69
|
+
*
|
|
70
|
+
* Curve (contract-identical):
|
|
71
|
+
* ```text
|
|
72
|
+
* fee(t) = slope_low + (slope_high − slope_low) × (A^t − 1) / (A − 1)
|
|
73
|
+
* t = (fill − threshold) / (PERCENT_SCALE − threshold) ∈ [0, 1]
|
|
74
|
+
* fill = min(effective × PERCENT_SCALE / cap, PERCENT_SCALE)
|
|
75
|
+
* ```
|
|
76
|
+
* Returns `0` when disabled (`cap == 0`, `slopeHigh == 0`,
|
|
77
|
+
* `threshold >= PERCENT_SCALE`) or fill is at/below the threshold.
|
|
78
|
+
*/
|
|
79
|
+
export declare function calcSurgeFeePct(effectiveSelloff: bigint, cap: bigint, thresholdPct: number, slopeLowPct: number, slopeHighPct: number): bigint;
|
|
80
|
+
/**
|
|
81
|
+
* Split a gross curve output into the surge fee and the NET amount the
|
|
82
|
+
* user receives. Fee rounds UP (protective fee never undercharges) and is
|
|
83
|
+
* capped at `amountOut` — mirrors `instructions/user/swap.rs`.
|
|
84
|
+
*/
|
|
85
|
+
export declare function applySurgeFee(amountOut: bigint, surgeFeePct: bigint): {
|
|
86
|
+
fee: bigint;
|
|
87
|
+
net: bigint;
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=selloff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selloff.d.ts","sourceRoot":"","sources":["../../src/math/selloff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,+DAA+D;AAC/D,eAAO,MAAM,aAAa,SAAU,CAAC;AAMrC,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAC;IAC1B;qDACiD;IACjD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;8EAC0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,GACd,qBAAqB,CAiEvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CA4BR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAM9B"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Off-chain replicas of the cubic-pool v5 sell-off protections:
|
|
4
|
+
*
|
|
5
|
+
* - max-selloff sliding window — `math/max_selloff.rs::check_and_advance`
|
|
6
|
+
* - variable surge-fee curve — `math/surge_fee.rs::calc_surge_fee_pct`
|
|
7
|
+
*
|
|
8
|
+
* Used by routers/quoters to (a) avoid building routes that would revert
|
|
9
|
+
* with `MaxSelloffExceeded` — the window is a HARD cap on how much of a
|
|
10
|
+
* token can be sold into the pool per window — and (b) quote `amount_out`
|
|
11
|
+
* NET of the surge fee, which is the value the contract checks
|
|
12
|
+
* `minimum_amount_out` against.
|
|
13
|
+
*
|
|
14
|
+
* All arithmetic is bigint and mirrors the contract's u128 intermediates
|
|
15
|
+
* and rounding (cap floored, surge fee rounded UP). `powFp` is the same
|
|
16
|
+
* LogExpMath port the pool uses on-chain.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.PERCENT_SCALE = void 0;
|
|
20
|
+
exports.resolveSelloffWindow = resolveSelloffWindow;
|
|
21
|
+
exports.calcSurgeFeePct = calcSurgeFeePct;
|
|
22
|
+
exports.applySurgeFee = applySurgeFee;
|
|
23
|
+
const logExp_1 = require("./logExp");
|
|
24
|
+
/** Scale shared by all `_pct` config fields: 10_000 = 100%. */
|
|
25
|
+
exports.PERCENT_SCALE = 10000n;
|
|
26
|
+
const ONE = 1000000000000000000n;
|
|
27
|
+
/** Convexity base A for the surge curve (contracts: SURGE_FEE_CONVEXITY_FP). */
|
|
28
|
+
const SURGE_FEE_CONVEXITY_FP = 4n * ONE;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve a token's sell-off window state at `nowSecs`, WITHOUT mutating
|
|
31
|
+
* anything — the read-only counterpart of the contract's
|
|
32
|
+
* `check_and_advance` (which the real swap will run).
|
|
33
|
+
*
|
|
34
|
+
* Rotation rules (contract-identical):
|
|
35
|
+
* - `elapsed >= 2×period` → both buckets aged out; cleared, re-snapshot.
|
|
36
|
+
* - `elapsed >= period` → `previous = current`, `current = 0`,
|
|
37
|
+
* `window_start += period` (slides one period, not to `now`), re-snapshot.
|
|
38
|
+
* - otherwise → unchanged; reuse stored snapshot (or capture
|
|
39
|
+
* the live vb when the snapshot is still `0` / uninitialised).
|
|
40
|
+
*/
|
|
41
|
+
function resolveSelloffWindow(input, nowSecs) {
|
|
42
|
+
const pct = BigInt(input.maxSelloffPct);
|
|
43
|
+
if (pct === 0n) {
|
|
44
|
+
return {
|
|
45
|
+
enabled: false,
|
|
46
|
+
vbSnapshot: 0n,
|
|
47
|
+
cap: 0n,
|
|
48
|
+
effectiveSelloff: 0n,
|
|
49
|
+
headroom: 0n,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const period = BigInt(input.periodLengthSecs);
|
|
53
|
+
if (period <= 0n) {
|
|
54
|
+
// Unreachable on-chain (set_max_selloff validates period > 0 when
|
|
55
|
+
// pct > 0); treat defensively as "window accepts nothing".
|
|
56
|
+
return {
|
|
57
|
+
enabled: true,
|
|
58
|
+
vbSnapshot: input.selloffVbSnapshot,
|
|
59
|
+
cap: 0n,
|
|
60
|
+
effectiveSelloff: 0n,
|
|
61
|
+
headroom: 0n,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const now = BigInt(Math.floor(nowSecs));
|
|
65
|
+
// Clock skew clamps to 0 rather than rotating backwards.
|
|
66
|
+
let elapsed = now - input.windowStartTimestamp;
|
|
67
|
+
if (elapsed < 0n)
|
|
68
|
+
elapsed = 0n;
|
|
69
|
+
let previous;
|
|
70
|
+
let current;
|
|
71
|
+
let elapsedInWindow;
|
|
72
|
+
let openedWindow;
|
|
73
|
+
if (elapsed >= 2n * period) {
|
|
74
|
+
previous = 0n;
|
|
75
|
+
current = 0n;
|
|
76
|
+
elapsedInWindow = 0n;
|
|
77
|
+
openedWindow = true;
|
|
78
|
+
}
|
|
79
|
+
else if (elapsed >= period) {
|
|
80
|
+
previous = input.currentSelloff;
|
|
81
|
+
current = 0n;
|
|
82
|
+
const newWindowStart = input.windowStartTimestamp + period;
|
|
83
|
+
elapsedInWindow = now - newWindowStart;
|
|
84
|
+
if (elapsedInWindow < 0n)
|
|
85
|
+
elapsedInWindow = 0n;
|
|
86
|
+
openedWindow = true;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
previous = input.previousSelloff;
|
|
90
|
+
current = input.currentSelloff;
|
|
91
|
+
elapsedInWindow = elapsed;
|
|
92
|
+
openedWindow = false;
|
|
93
|
+
}
|
|
94
|
+
const vbSnapshot = openedWindow || input.selloffVbSnapshot === 0n
|
|
95
|
+
? input.virtualBalance
|
|
96
|
+
: input.selloffVbSnapshot;
|
|
97
|
+
// Cap floored — a user can never sell more than the configured fraction.
|
|
98
|
+
const cap = (pct * vbSnapshot) / exports.PERCENT_SCALE;
|
|
99
|
+
const weightedPrev = (previous * (period - elapsedInWindow)) / period;
|
|
100
|
+
const effectiveSelloff = weightedPrev + current;
|
|
101
|
+
const headroom = cap > effectiveSelloff ? cap - effectiveSelloff : 0n;
|
|
102
|
+
return { enabled: true, vbSnapshot, cap, effectiveSelloff, headroom };
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Surge-fee percentage (PERCENT_SCALE units, `0..=10_000`) for a swap that
|
|
106
|
+
* pushes the input token's window to `effectiveSelloff` (INCLUDING the
|
|
107
|
+
* swap's own `amount_in`) against `cap`.
|
|
108
|
+
*
|
|
109
|
+
* Curve (contract-identical):
|
|
110
|
+
* ```text
|
|
111
|
+
* fee(t) = slope_low + (slope_high − slope_low) × (A^t − 1) / (A − 1)
|
|
112
|
+
* t = (fill − threshold) / (PERCENT_SCALE − threshold) ∈ [0, 1]
|
|
113
|
+
* fill = min(effective × PERCENT_SCALE / cap, PERCENT_SCALE)
|
|
114
|
+
* ```
|
|
115
|
+
* Returns `0` when disabled (`cap == 0`, `slopeHigh == 0`,
|
|
116
|
+
* `threshold >= PERCENT_SCALE`) or fill is at/below the threshold.
|
|
117
|
+
*/
|
|
118
|
+
function calcSurgeFeePct(effectiveSelloff, cap, thresholdPct, slopeLowPct, slopeHighPct) {
|
|
119
|
+
const slopeHigh = BigInt(slopeHighPct);
|
|
120
|
+
if (cap === 0n || slopeHigh === 0n)
|
|
121
|
+
return 0n;
|
|
122
|
+
const thr = BigInt(thresholdPct);
|
|
123
|
+
if (thr >= exports.PERCENT_SCALE)
|
|
124
|
+
return 0n;
|
|
125
|
+
let fill = (effectiveSelloff * exports.PERCENT_SCALE) / cap;
|
|
126
|
+
if (fill > exports.PERCENT_SCALE)
|
|
127
|
+
fill = exports.PERCENT_SCALE;
|
|
128
|
+
if (fill <= thr)
|
|
129
|
+
return 0n;
|
|
130
|
+
// Normalized progress t ∈ (0, 1] in 1e18 fixed point.
|
|
131
|
+
const tFp = ((fill - thr) * ONE) / (exports.PERCENT_SCALE - thr);
|
|
132
|
+
// A^t ∈ [ONE, A·ONE] via the shared LogExpMath port.
|
|
133
|
+
const aPowT = (0, logExp_1.powFp)(SURGE_FEE_CONVEXITY_FP, tFp);
|
|
134
|
+
// factor = (A^t − 1) / (A − 1) ∈ [0, ONE].
|
|
135
|
+
const aMinusOne = SURGE_FEE_CONVEXITY_FP - ONE;
|
|
136
|
+
let factor = ((aPowT > ONE ? aPowT - ONE : 0n) * ONE) / aMinusOne;
|
|
137
|
+
if (factor > ONE)
|
|
138
|
+
factor = ONE;
|
|
139
|
+
// surge = slope_low + span × factor, span portion rounded UP.
|
|
140
|
+
const slopeLow = BigInt(slopeLowPct);
|
|
141
|
+
const span = slopeHigh > slopeLow ? slopeHigh - slopeLow : 0n;
|
|
142
|
+
const prod = span * factor;
|
|
143
|
+
const add = prod / ONE + (prod % ONE !== 0n ? 1n : 0n);
|
|
144
|
+
const surge = slopeLow + add;
|
|
145
|
+
return surge > exports.PERCENT_SCALE ? exports.PERCENT_SCALE : surge;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Split a gross curve output into the surge fee and the NET amount the
|
|
149
|
+
* user receives. Fee rounds UP (protective fee never undercharges) and is
|
|
150
|
+
* capped at `amountOut` — mirrors `instructions/user/swap.rs`.
|
|
151
|
+
*/
|
|
152
|
+
function applySurgeFee(amountOut, surgeFeePct) {
|
|
153
|
+
if (surgeFeePct <= 0n || amountOut <= 0n)
|
|
154
|
+
return { fee: 0n, net: amountOut };
|
|
155
|
+
const num = amountOut * surgeFeePct;
|
|
156
|
+
let fee = num / exports.PERCENT_SCALE + (num % exports.PERCENT_SCALE !== 0n ? 1n : 0n);
|
|
157
|
+
if (fee > amountOut)
|
|
158
|
+
fee = amountOut;
|
|
159
|
+
return { fee, net: amountOut - fee };
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=selloff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selloff.js","sourceRoot":"","sources":["../../src/math/selloff.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -308,7 +308,10 @@ export interface PortfolioPoolEntry {
|
|
|
308
308
|
tokens: Array<{ symbol: string; mint: string }>;
|
|
309
309
|
value: number;
|
|
310
310
|
feesEarned: number;
|
|
311
|
+
/** LIVE unrealized IL only (≤ 0); realized part is `ilRealized` */
|
|
311
312
|
il: number;
|
|
313
|
+
/** Result locked in on past withdrawals vs HODL ("Realized PnL" in UI) */
|
|
314
|
+
ilRealized: number;
|
|
312
315
|
netPnl: number;
|
|
313
316
|
apr: number;
|
|
314
317
|
}
|
|
@@ -449,6 +452,12 @@ export class CubeBackendClient {
|
|
|
449
452
|
amountIn: string,
|
|
450
453
|
decimalsIn: number = 9,
|
|
451
454
|
slippageBps?: number,
|
|
455
|
+
/**
|
|
456
|
+
* Restrict the quote to this single pool: no split routing, all
|
|
457
|
+
* estimates (priceImpact against this pool's own spot, fees, XP) are
|
|
458
|
+
* computed as if swapping only through it.
|
|
459
|
+
*/
|
|
460
|
+
pool?: string,
|
|
452
461
|
): Promise<SdkResult<SwapRouteResponse>> {
|
|
453
462
|
const qs = new URLSearchParams({
|
|
454
463
|
tokenIn,
|
|
@@ -459,6 +468,9 @@ export class CubeBackendClient {
|
|
|
459
468
|
if (slippageBps !== undefined) {
|
|
460
469
|
qs.set('slippageBps', String(slippageBps));
|
|
461
470
|
}
|
|
471
|
+
if (pool !== undefined) {
|
|
472
|
+
qs.set('pool', pool);
|
|
473
|
+
}
|
|
462
474
|
return this.getDataField<SwapRouteResponse>(
|
|
463
475
|
`/api/pools/swap-route?${qs.toString()}`,
|
|
464
476
|
);
|
|
@@ -634,7 +646,8 @@ export class CubeBackendClient {
|
|
|
634
646
|
}
|
|
635
647
|
|
|
636
648
|
/**
|
|
637
|
-
* Per-pool portfolio metrics (value, fees, IL,
|
|
649
|
+
* Per-pool portfolio metrics (value, fees, unrealized IL, realized
|
|
650
|
+
* IL/PnL, net PnL, APR).
|
|
638
651
|
*/
|
|
639
652
|
getPortfolioPools(): Promise<SdkResult<PortfolioPoolsResponse>> {
|
|
640
653
|
return this.get<PortfolioPoolsResponse>("/api/portfolio/pools");
|