@cubee_ee/sdk 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clients/CubeBackendClient.d.ts +24 -1
- package/dist/clients/CubeBackendClient.d.ts.map +1 -1
- package/dist/clients/CubeBackendClient.js +18 -1
- 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 +36 -0
|
@@ -134,6 +134,10 @@ export interface PlatformStatsResponse {
|
|
|
134
134
|
export interface AdminPoolEntry {
|
|
135
135
|
poolAddress: string;
|
|
136
136
|
poolName: string;
|
|
137
|
+
/** Off-chain: mint shown first in the token list (null = default order). */
|
|
138
|
+
baseAssetMint: string | null;
|
|
139
|
+
/** Off-chain: short pool description. */
|
|
140
|
+
description: string | null;
|
|
137
141
|
tvlUsd: number;
|
|
138
142
|
apy: number;
|
|
139
143
|
volume24h: number;
|
|
@@ -146,6 +150,13 @@ export interface AdminPoolEntry {
|
|
|
146
150
|
imageUrl: string | null;
|
|
147
151
|
}>;
|
|
148
152
|
}
|
|
153
|
+
/** Off-chain, admin-editable pool settings. */
|
|
154
|
+
export interface UpdatePoolSettingsBody {
|
|
155
|
+
/** Mint of the base asset (one of the pool tokens); "" clears it. */
|
|
156
|
+
baseAssetMint?: string;
|
|
157
|
+
/** Short description; "" clears it. */
|
|
158
|
+
description?: string;
|
|
159
|
+
}
|
|
149
160
|
export interface AdminPoolsResponse {
|
|
150
161
|
pools: AdminPoolEntry[];
|
|
151
162
|
}
|
|
@@ -326,7 +337,13 @@ export declare class CubeBackendClient {
|
|
|
326
337
|
type?: "swap" | "add_liquidity" | "remove_liquidity";
|
|
327
338
|
user?: string;
|
|
328
339
|
}): Promise<SdkResult<T>>;
|
|
329
|
-
getSwapRoute(tokenIn: string, tokenOut: string, amountIn: string, decimalsIn?: number, slippageBps?: number
|
|
340
|
+
getSwapRoute(tokenIn: string, tokenOut: string, amountIn: string, decimalsIn?: number, slippageBps?: number,
|
|
341
|
+
/**
|
|
342
|
+
* Restrict the quote to this single pool: no split routing, all
|
|
343
|
+
* estimates (priceImpact against this pool's own spot, fees, XP) are
|
|
344
|
+
* computed as if swapping only through it.
|
|
345
|
+
*/
|
|
346
|
+
pool?: string): Promise<SdkResult<SwapRouteResponse>>;
|
|
330
347
|
getLeaderboard(page?: number, limit?: number): Promise<SdkResult<LeaderboardResponse>>;
|
|
331
348
|
getLeaderboardUser(address: string): Promise<SdkResult<LeaderboardUserStats>>;
|
|
332
349
|
getLeaderboardUserHistory(address: string, page?: number, limit?: number): Promise<SdkResult<XpAccrualHistoryResponse>>;
|
|
@@ -350,6 +367,12 @@ export declare class CubeBackendClient {
|
|
|
350
367
|
* Requires authentication.
|
|
351
368
|
*/
|
|
352
369
|
renamePool(poolAddress: string, name: string): Promise<SdkResult<RenamePoolResponse>>;
|
|
370
|
+
/**
|
|
371
|
+
* Update off-chain pool settings (base asset, description). Only fields
|
|
372
|
+
* present are changed; empty string clears a field. Base asset must be
|
|
373
|
+
* one of the pool tokens. Pool admin only; requires authentication.
|
|
374
|
+
*/
|
|
375
|
+
updatePoolSettings<T>(poolAddress: string, settings: UpdatePoolSettingsBody): Promise<SdkResult<T>>;
|
|
353
376
|
/**
|
|
354
377
|
* Bind the authenticated user as a referral of the given referrer.
|
|
355
378
|
* The code can be a wallet address or a custom referral code.
|
|
@@ -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 ──
|
|
@@ -145,6 +154,14 @@ class CubeBackendClient {
|
|
|
145
154
|
renamePool(poolAddress, name) {
|
|
146
155
|
return this.put(`/api/pools/admin/${encodeURIComponent(poolAddress)}/name`, { name });
|
|
147
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Update off-chain pool settings (base asset, description). Only fields
|
|
159
|
+
* present are changed; empty string clears a field. Base asset must be
|
|
160
|
+
* one of the pool tokens. Pool admin only; requires authentication.
|
|
161
|
+
*/
|
|
162
|
+
updatePoolSettings(poolAddress, settings) {
|
|
163
|
+
return this.put(`/api/pools/admin/${encodeURIComponent(poolAddress)}/settings`, settings);
|
|
164
|
+
}
|
|
148
165
|
// ── Referral ──
|
|
149
166
|
/**
|
|
150
167
|
* Bind the authenticated user as a referral of the given referrer.
|
|
@@ -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":";AAAA;;;;;;;;;;;;;;;GAeG;;;AA0DH,oDAoEC;AAgBD,0CAkCC;AAOD,sCASC;AA9LD,qCAAiC;AAEjC,+DAA+D;AAClD,QAAA,aAAa,GAAG,MAAO,CAAC;AAErC,MAAM,GAAG,GAAG,oBAA0B,CAAC;AACvC,gFAAgF;AAChF,MAAM,sBAAsB,GAAG,EAAE,GAAG,GAAG,CAAC;AAqCxC;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAClC,KAAyB,EACzB,OAAe;IAEf,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,EAAE;YACd,GAAG,EAAE,EAAE;YACP,gBAAgB,EAAE,EAAE;YACpB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjB,kEAAkE;QAClE,2DAA2D;QAC3D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK,CAAC,iBAAiB;YACnC,GAAG,EAAE,EAAE;YACP,gBAAgB,EAAE,EAAE;YACpB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,yDAAyD;IACzD,IAAI,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,oBAAoB,CAAC;IAC/C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,EAAE,CAAC;IAE/B,IAAI,QAAgB,CAAC;IACrB,IAAI,OAAe,CAAC;IACpB,IAAI,eAAuB,CAAC;IAC5B,IAAI,YAAqB,CAAC;IAC1B,IAAI,OAAO,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;QAC3B,QAAQ,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,GAAG,EAAE,CAAC;QACrB,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;QAChC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,cAAc,GAAG,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC;QAC3D,eAAe,GAAG,GAAG,GAAG,cAAc,CAAC;QACvC,IAAI,eAAe,GAAG,EAAE;YAAE,eAAe,GAAG,EAAE,CAAC;QAC/C,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;QACjC,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC;QAC/B,eAAe,GAAG,OAAO,CAAC;QAC1B,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,UAAU,GACd,YAAY,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE;QAC5C,CAAC,CAAC,KAAK,CAAC,cAAc;QACtB,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAE9B,yEAAyE;IACzE,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,qBAAa,CAAC;IAE/C,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC;IACtE,MAAM,gBAAgB,GAAG,YAAY,GAAG,OAAO,CAAC;IAEhD,MAAM,QAAQ,GAAG,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,eAAe,CAC7B,gBAAwB,EACxB,GAAW,EACX,YAAoB,EACpB,WAAmB,EACnB,YAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,EAAE,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACjC,IAAI,GAAG,IAAI,qBAAa;QAAE,OAAO,EAAE,CAAC;IAEpC,IAAI,IAAI,GAAG,CAAC,gBAAgB,GAAG,qBAAa,CAAC,GAAG,GAAG,CAAC;IACpD,IAAI,IAAI,GAAG,qBAAa;QAAE,IAAI,GAAG,qBAAa,CAAC;IAC/C,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC;IAE3B,sDAAsD;IACtD,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,qBAAa,GAAG,GAAG,CAAC,CAAC;IAEzD,qDAAqD;IACrD,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAEjD,2CAA2C;IAC3C,MAAM,SAAS,GAAG,sBAAsB,GAAG,GAAG,CAAC;IAC/C,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;IAClE,IAAI,MAAM,GAAG,GAAG;QAAE,MAAM,GAAG,GAAG,CAAC;IAE/B,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,QAAQ,GAAG,GAAG,CAAC;IAC7B,OAAO,KAAK,GAAG,qBAAa,CAAC,CAAC,CAAC,qBAAa,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,SAAiB,EACjB,WAAmB;IAEnB,IAAI,WAAW,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAC7E,MAAM,GAAG,GAAG,SAAS,GAAG,WAAW,CAAC;IACpC,IAAI,GAAG,GAAG,GAAG,GAAG,qBAAa,GAAG,CAAC,GAAG,GAAG,qBAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,GAAG,GAAG,SAAS;QAAE,GAAG,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,GAAG,GAAG,EAAE,CAAC;AACvC,CAAC"}
|
package/package.json
CHANGED
|
@@ -172,6 +172,10 @@ export interface PlatformStatsResponse {
|
|
|
172
172
|
export interface AdminPoolEntry {
|
|
173
173
|
poolAddress: string;
|
|
174
174
|
poolName: string;
|
|
175
|
+
/** Off-chain: mint shown first in the token list (null = default order). */
|
|
176
|
+
baseAssetMint: string | null;
|
|
177
|
+
/** Off-chain: short pool description. */
|
|
178
|
+
description: string | null;
|
|
175
179
|
tvlUsd: number;
|
|
176
180
|
apy: number;
|
|
177
181
|
volume24h: number;
|
|
@@ -185,6 +189,14 @@ export interface AdminPoolEntry {
|
|
|
185
189
|
}>;
|
|
186
190
|
}
|
|
187
191
|
|
|
192
|
+
/** Off-chain, admin-editable pool settings. */
|
|
193
|
+
export interface UpdatePoolSettingsBody {
|
|
194
|
+
/** Mint of the base asset (one of the pool tokens); "" clears it. */
|
|
195
|
+
baseAssetMint?: string;
|
|
196
|
+
/** Short description; "" clears it. */
|
|
197
|
+
description?: string;
|
|
198
|
+
}
|
|
199
|
+
|
|
188
200
|
export interface AdminPoolsResponse {
|
|
189
201
|
pools: AdminPoolEntry[];
|
|
190
202
|
}
|
|
@@ -452,6 +464,12 @@ export class CubeBackendClient {
|
|
|
452
464
|
amountIn: string,
|
|
453
465
|
decimalsIn: number = 9,
|
|
454
466
|
slippageBps?: number,
|
|
467
|
+
/**
|
|
468
|
+
* Restrict the quote to this single pool: no split routing, all
|
|
469
|
+
* estimates (priceImpact against this pool's own spot, fees, XP) are
|
|
470
|
+
* computed as if swapping only through it.
|
|
471
|
+
*/
|
|
472
|
+
pool?: string,
|
|
455
473
|
): Promise<SdkResult<SwapRouteResponse>> {
|
|
456
474
|
const qs = new URLSearchParams({
|
|
457
475
|
tokenIn,
|
|
@@ -462,6 +480,9 @@ export class CubeBackendClient {
|
|
|
462
480
|
if (slippageBps !== undefined) {
|
|
463
481
|
qs.set('slippageBps', String(slippageBps));
|
|
464
482
|
}
|
|
483
|
+
if (pool !== undefined) {
|
|
484
|
+
qs.set('pool', pool);
|
|
485
|
+
}
|
|
465
486
|
return this.getDataField<SwapRouteResponse>(
|
|
466
487
|
`/api/pools/swap-route?${qs.toString()}`,
|
|
467
488
|
);
|
|
@@ -558,6 +579,21 @@ export class CubeBackendClient {
|
|
|
558
579
|
);
|
|
559
580
|
}
|
|
560
581
|
|
|
582
|
+
/**
|
|
583
|
+
* Update off-chain pool settings (base asset, description). Only fields
|
|
584
|
+
* present are changed; empty string clears a field. Base asset must be
|
|
585
|
+
* one of the pool tokens. Pool admin only; requires authentication.
|
|
586
|
+
*/
|
|
587
|
+
updatePoolSettings<T>(
|
|
588
|
+
poolAddress: string,
|
|
589
|
+
settings: UpdatePoolSettingsBody,
|
|
590
|
+
): Promise<SdkResult<T>> {
|
|
591
|
+
return this.put<T>(
|
|
592
|
+
`/api/pools/admin/${encodeURIComponent(poolAddress)}/settings`,
|
|
593
|
+
settings,
|
|
594
|
+
);
|
|
595
|
+
}
|
|
596
|
+
|
|
561
597
|
// ── Referral ──
|
|
562
598
|
|
|
563
599
|
/**
|