@cubee_ee/sdk 0.1.0 → 0.1.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/README.md +20 -0
- package/dist/clients/CubeBackendClient.d.ts +23 -0
- package/dist/clients/CubeBackendClient.d.ts.map +1 -1
- package/dist/clients/CubeBackendClient.js +11 -0
- package/dist/clients/CubeBackendClient.js.map +1 -1
- package/dist/idl/cubic_pool.json +16 -0
- package/dist/idl/index.d.ts +10 -0
- package/dist/idl/index.d.ts.map +1 -1
- package/dist/idl/protocol_admin.json +70 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/clients/CubeBackendClient.ts +47 -0
- package/src/idl/cubic_pool.json +16 -0
- package/src/idl/protocol_admin.json +70 -0
- package/src/index.ts +3 -0
package/README.md
CHANGED
|
@@ -80,6 +80,26 @@ throws for I/O or parse errors.
|
|
|
80
80
|
|
|
81
81
|
**In the frontend:** only UI rendering + state management (zustand / redux) + wallet integration. No raw RPC calls, no borsh, no math.
|
|
82
82
|
|
|
83
|
+
## Token-2022 support
|
|
84
|
+
|
|
85
|
+
Pools may mix the classic SPL Token program and Token-2022. Every
|
|
86
|
+
`PoolTokenInfo` carries a `tokenProgram` field decoded straight from
|
|
87
|
+
the on-chain pool account. The transaction builders
|
|
88
|
+
(`buildSwapTx`, `buildAddLiquidityTx`, `buildRemoveLiquidityTx`,
|
|
89
|
+
`buildSingleTokenDepositTx`) thread `token.tokenProgram` through ATA
|
|
90
|
+
derivation and remaining-accounts assembly, so consumers do not need
|
|
91
|
+
to special-case Token-2022 on the call site.
|
|
92
|
+
|
|
93
|
+
Caveats:
|
|
94
|
+
- The BPT mint is always created under classic SPL Token. Pass
|
|
95
|
+
`bptTokenProgram` only if you need a non-default program for the
|
|
96
|
+
BPT itself.
|
|
97
|
+
- Mints with transfer fees, transfer hooks, or other Token-2022
|
|
98
|
+
extensions that mutate amounts on transfer are not supported by
|
|
99
|
+
the AMM contract — the post-transfer vault balance must equal the
|
|
100
|
+
amount the math computed, otherwise `add_liquidity` and `swap`
|
|
101
|
+
revert with `BalanceMismatch`.
|
|
102
|
+
|
|
83
103
|
## Examples
|
|
84
104
|
|
|
85
105
|
See `examples/*.ts`:
|
|
@@ -17,6 +17,27 @@ export interface StatsSeries {
|
|
|
17
17
|
export interface PriceMap {
|
|
18
18
|
[mint: string]: number;
|
|
19
19
|
}
|
|
20
|
+
export interface LeaderboardEntry {
|
|
21
|
+
address: string;
|
|
22
|
+
points: number;
|
|
23
|
+
place: number;
|
|
24
|
+
}
|
|
25
|
+
export interface LeaderboardResponse {
|
|
26
|
+
total: number;
|
|
27
|
+
page: number;
|
|
28
|
+
limit: number;
|
|
29
|
+
data: LeaderboardEntry[];
|
|
30
|
+
}
|
|
31
|
+
export interface LeaderboardUserStats {
|
|
32
|
+
place: number;
|
|
33
|
+
address: string;
|
|
34
|
+
points: number;
|
|
35
|
+
lastAccrualSwapUsd: number;
|
|
36
|
+
lastAccrualLiqUsd: number;
|
|
37
|
+
lastAccrualAt: string | null;
|
|
38
|
+
cumulativeSwapVolumeUsd: number;
|
|
39
|
+
cumulativeNetLiquidityUsd: number;
|
|
40
|
+
}
|
|
20
41
|
/**
|
|
21
42
|
* REST wrapper around the Cube backend. Every method is a SdkResult; no
|
|
22
43
|
* exceptions escape. If a request fails, the result carries a
|
|
@@ -48,6 +69,8 @@ export declare class CubeBackendClient {
|
|
|
48
69
|
getPoolTxStats<T>(addr: string): Promise<SdkResult<T>>;
|
|
49
70
|
getTransactions<T>(addr: string, limit?: number, offset?: number): Promise<SdkResult<T>>;
|
|
50
71
|
getSwapRoute<T>(tokenIn: string, tokenOut: string, amountIn: string): Promise<SdkResult<T>>;
|
|
72
|
+
getLeaderboard(page?: number, limit?: number): Promise<SdkResult<LeaderboardResponse>>;
|
|
73
|
+
getLeaderboardUser(address: string): Promise<SdkResult<LeaderboardUserStats>>;
|
|
51
74
|
getTokenPrices(mints: string[]): Promise<SdkResult<PriceMap>>;
|
|
52
75
|
getStats(kind: StatsKind, window?: StatsWindow, poolAddr?: string, unit?: "usd" | "token"): Promise<SdkResult<StatsSeries>>;
|
|
53
76
|
/** Generic GET with retry. Callers that need it for other endpoints. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeBackendClient.d.ts","sourceRoot":"","sources":["../../src/clients/CubeBackendClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,SAAS,GACjB,KAAK,GACL,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,aAAa,GACb,SAAS,GACT,eAAe,GACf,aAAa,GACb,KAAK,GACL,KAAK,GACL,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AACD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,MAAM,EAAE,uBAAuB;IAS3C,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAI9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAItD;;;;OAIG;IACH,YAAY,CACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC;QAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAKhF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAIrD,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAInD,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAK7E,gBAAgB,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAI5C,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAIrD,YAAY,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAIxC,YAAY,CAAC,CAAC,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAI1D,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAItD,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAK/F,YAAY,CAAC,CAAC,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"CubeBackendClient.d.ts","sourceRoot":"","sources":["../../src/clients/CubeBackendClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,17 @@ class CubeBackendClient {
|
|
|
65
65
|
const qs = new URLSearchParams({ tokenIn, tokenOut, amountIn });
|
|
66
66
|
return this.getDataField(`/api/swap/route?${qs.toString()}`);
|
|
67
67
|
}
|
|
68
|
+
// ── Leaderboard ──
|
|
69
|
+
getLeaderboard(page = 1, limit = 20) {
|
|
70
|
+
const qs = new URLSearchParams({
|
|
71
|
+
page: String(page),
|
|
72
|
+
limit: String(limit),
|
|
73
|
+
});
|
|
74
|
+
return this.get(`/api/leaderboard?${qs.toString()}`);
|
|
75
|
+
}
|
|
76
|
+
getLeaderboardUser(address) {
|
|
77
|
+
return this.getDataField(`/api/leaderboard/user/${encodeURIComponent(address)}`);
|
|
78
|
+
}
|
|
68
79
|
getTokenPrices(mints) {
|
|
69
80
|
const qs = new URLSearchParams({ mints: mints.join(",") });
|
|
70
81
|
return this.get(`/api/prices?${qs.toString()}`);
|
|
@@ -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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"}
|
package/dist/idl/cubic_pool.json
CHANGED
|
@@ -362,6 +362,17 @@
|
|
|
362
362
|
"writable": true,
|
|
363
363
|
"signer": true
|
|
364
364
|
},
|
|
365
|
+
{
|
|
366
|
+
"name": "protocol_admin_treasury",
|
|
367
|
+
"docs": [
|
|
368
|
+
"`seeds` + `seeds::program` constraint Anchor enforces here is",
|
|
369
|
+
"the entire validation — any account passed in that isn't that",
|
|
370
|
+
"exact PDA fails before the handler runs. The handler then",
|
|
371
|
+
"requires the `protocol_admin` argument to equal this account's",
|
|
372
|
+
"key, so on-chain `config.protocol_admin` can only ever be the",
|
|
373
|
+
"Treasury PDA."
|
|
374
|
+
]
|
|
375
|
+
},
|
|
365
376
|
{
|
|
366
377
|
"name": "payer",
|
|
367
378
|
"docs": [
|
|
@@ -1461,6 +1472,11 @@
|
|
|
1461
1472
|
"code": 6037,
|
|
1462
1473
|
"name": "InvalidPendingAdmin",
|
|
1463
1474
|
"msg": "Pending admin cannot be the zero pubkey"
|
|
1475
|
+
},
|
|
1476
|
+
{
|
|
1477
|
+
"code": 6038,
|
|
1478
|
+
"name": "ProtocolAdminNotTreasury",
|
|
1479
|
+
"msg": "protocol_admin must equal the hardcoded Treasury PDA"
|
|
1464
1480
|
}
|
|
1465
1481
|
],
|
|
1466
1482
|
"types": [
|
package/dist/idl/index.d.ts
CHANGED
|
@@ -44,6 +44,11 @@ export declare const CUBIC_POOL_IDL: {
|
|
|
44
44
|
writable: boolean;
|
|
45
45
|
signer: boolean;
|
|
46
46
|
docs?: undefined;
|
|
47
|
+
} | {
|
|
48
|
+
name: string;
|
|
49
|
+
docs: string[];
|
|
50
|
+
writable?: undefined;
|
|
51
|
+
signer?: undefined;
|
|
47
52
|
} | {
|
|
48
53
|
name: string;
|
|
49
54
|
docs: string[];
|
|
@@ -531,6 +536,11 @@ export declare const IDLS: {
|
|
|
531
536
|
writable: boolean;
|
|
532
537
|
signer: boolean;
|
|
533
538
|
docs?: undefined;
|
|
539
|
+
} | {
|
|
540
|
+
name: string;
|
|
541
|
+
docs: string[];
|
|
542
|
+
writable?: undefined;
|
|
543
|
+
signer?: undefined;
|
|
534
544
|
} | {
|
|
535
545
|
name: string;
|
|
536
546
|
docs: string[];
|
package/dist/idl/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/idl/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/idl/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAe,CAAC;AAC3C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmB,CAAC;AACnD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC;AAElE,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIP,CAAC"}
|
|
@@ -206,6 +206,43 @@
|
|
|
206
206
|
}
|
|
207
207
|
]
|
|
208
208
|
},
|
|
209
|
+
{
|
|
210
|
+
"name": "pool_accept_protocol_admin_transfer",
|
|
211
|
+
"docs": [
|
|
212
|
+
"Step 2 — accept the in-flight `protocol_admin` transfer with the",
|
|
213
|
+
"Treasury PDA as the new admin. Signs the cubic-pool accept CPI",
|
|
214
|
+
"with treasury seeds, so the Treasury PDA itself becomes",
|
|
215
|
+
"`config.protocol_admin`. Required because a PDA cannot sign",
|
|
216
|
+
"cubic-pool's `accept_protocol_admin_transfer` directly."
|
|
217
|
+
],
|
|
218
|
+
"discriminator": [
|
|
219
|
+
34,
|
|
220
|
+
167,
|
|
221
|
+
199,
|
|
222
|
+
116,
|
|
223
|
+
14,
|
|
224
|
+
203,
|
|
225
|
+
208,
|
|
226
|
+
67
|
|
227
|
+
],
|
|
228
|
+
"accounts": [
|
|
229
|
+
{
|
|
230
|
+
"name": "treasury"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"name": "admin",
|
|
234
|
+
"signer": true
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"name": "config",
|
|
238
|
+
"writable": true
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"name": "cubic_pool_program"
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"args": []
|
|
245
|
+
},
|
|
209
246
|
{
|
|
210
247
|
"name": "pool_cancel_protocol_admin_transfer",
|
|
211
248
|
"docs": [
|
|
@@ -978,6 +1015,19 @@
|
|
|
978
1015
|
242
|
|
979
1016
|
]
|
|
980
1017
|
},
|
|
1018
|
+
{
|
|
1019
|
+
"name": "PoolProtocolAdminTransferAccepted",
|
|
1020
|
+
"discriminator": [
|
|
1021
|
+
235,
|
|
1022
|
+
91,
|
|
1023
|
+
63,
|
|
1024
|
+
65,
|
|
1025
|
+
174,
|
|
1026
|
+
42,
|
|
1027
|
+
55,
|
|
1028
|
+
129
|
|
1029
|
+
]
|
|
1030
|
+
},
|
|
981
1031
|
{
|
|
982
1032
|
"name": "PoolProtocolAdminTransferCancelled",
|
|
983
1033
|
"discriminator": [
|
|
@@ -1407,6 +1457,26 @@
|
|
|
1407
1457
|
]
|
|
1408
1458
|
}
|
|
1409
1459
|
},
|
|
1460
|
+
{
|
|
1461
|
+
"name": "PoolProtocolAdminTransferAccepted",
|
|
1462
|
+
"type": {
|
|
1463
|
+
"kind": "struct",
|
|
1464
|
+
"fields": [
|
|
1465
|
+
{
|
|
1466
|
+
"name": "treasury",
|
|
1467
|
+
"type": "pubkey"
|
|
1468
|
+
},
|
|
1469
|
+
{
|
|
1470
|
+
"name": "config",
|
|
1471
|
+
"type": "pubkey"
|
|
1472
|
+
},
|
|
1473
|
+
{
|
|
1474
|
+
"name": "timestamp",
|
|
1475
|
+
"type": "i64"
|
|
1476
|
+
}
|
|
1477
|
+
]
|
|
1478
|
+
}
|
|
1479
|
+
},
|
|
1410
1480
|
{
|
|
1411
1481
|
"name": "PoolProtocolAdminTransferCancelled",
|
|
1412
1482
|
"type": {
|
package/dist/index.d.ts
CHANGED
|
@@ -44,5 +44,5 @@ export type { CubeConfig, CubeConfigOverrides, ProgramIdKind, Network, NetworkPr
|
|
|
44
44
|
export type { SdkResult, SdkError, SdkErrorCode, PoolTokenInfo, PoolInfo, PoolSummary, SwapParams, SwapQuote, AddLiquidityParams, RemoveLiquidityParams, SingleTokenDepositParams, SingleTokenDepositQuote, BuiltTx, DeployPoolParams, CubicPoolEvent, PoolInitializedEvent, SwapEvent, LiquidityAddedEvent, LiquidityRemovedEvent, ProtocolFeesCollectedEvent, PoolEnabledUpdatedEvent, SwapsEnabledUpdatedEvent, SingleTokenDepositEvent, UnknownEvent, } from "./types";
|
|
45
45
|
export type { AllocationResult, } from "./math/singleToken";
|
|
46
46
|
export type { RawPoolAccount, RawMintAccount, } from "./parsers";
|
|
47
|
-
export type { RpcClientParams, CubeBackendClientParams, StatsKind, StatsWindow, StatsSeriesPoint, StatsSeries, PriceMap, CubicPoolClientParams, SingleTokenDepositClientParams, PoolFactoryClientParams, InitializeConfigParams, } from "./clients";
|
|
47
|
+
export type { RpcClientParams, CubeBackendClientParams, StatsKind, StatsWindow, StatsSeriesPoint, StatsSeries, PriceMap, LeaderboardEntry, LeaderboardResponse, LeaderboardUserStats, CubicPoolClientParams, SingleTokenDepositClientParams, PoolFactoryClientParams, InitializeConfigParams, } from "./clients";
|
|
48
48
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AAItB,OAAO,EACL,SAAS,EACT,SAAS,EACT,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EACL,GAAG,EACH,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACL,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,eAAe,EACf,SAAS,GACV,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -36,6 +36,32 @@ export interface PriceMap {
|
|
|
36
36
|
[mint: string]: number;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
// ── Leaderboard types ──
|
|
40
|
+
|
|
41
|
+
export interface LeaderboardEntry {
|
|
42
|
+
address: string;
|
|
43
|
+
points: number;
|
|
44
|
+
place: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface LeaderboardResponse {
|
|
48
|
+
total: number;
|
|
49
|
+
page: number;
|
|
50
|
+
limit: number;
|
|
51
|
+
data: LeaderboardEntry[];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface LeaderboardUserStats {
|
|
55
|
+
place: number;
|
|
56
|
+
address: string;
|
|
57
|
+
points: number;
|
|
58
|
+
lastAccrualSwapUsd: number;
|
|
59
|
+
lastAccrualLiqUsd: number;
|
|
60
|
+
lastAccrualAt: string | null;
|
|
61
|
+
cumulativeSwapVolumeUsd: number;
|
|
62
|
+
cumulativeNetLiquidityUsd: number;
|
|
63
|
+
}
|
|
64
|
+
|
|
39
65
|
/**
|
|
40
66
|
* REST wrapper around the Cube backend. Every method is a SdkResult; no
|
|
41
67
|
* exceptions escape. If a request fails, the result carries a
|
|
@@ -122,6 +148,27 @@ export class CubeBackendClient {
|
|
|
122
148
|
return this.getDataField<T>(`/api/swap/route?${qs.toString()}`);
|
|
123
149
|
}
|
|
124
150
|
|
|
151
|
+
// ── Leaderboard ──
|
|
152
|
+
|
|
153
|
+
getLeaderboard(
|
|
154
|
+
page: number = 1,
|
|
155
|
+
limit: number = 20,
|
|
156
|
+
): Promise<SdkResult<LeaderboardResponse>> {
|
|
157
|
+
const qs = new URLSearchParams({
|
|
158
|
+
page: String(page),
|
|
159
|
+
limit: String(limit),
|
|
160
|
+
});
|
|
161
|
+
return this.get<LeaderboardResponse>(`/api/leaderboard?${qs.toString()}`);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
getLeaderboardUser(
|
|
165
|
+
address: string,
|
|
166
|
+
): Promise<SdkResult<LeaderboardUserStats>> {
|
|
167
|
+
return this.getDataField<LeaderboardUserStats>(
|
|
168
|
+
`/api/leaderboard/user/${encodeURIComponent(address)}`,
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
125
172
|
getTokenPrices(mints: string[]): Promise<SdkResult<PriceMap>> {
|
|
126
173
|
const qs = new URLSearchParams({ mints: mints.join(",") });
|
|
127
174
|
return this.get<PriceMap>(`/api/prices?${qs.toString()}`);
|
package/src/idl/cubic_pool.json
CHANGED
|
@@ -362,6 +362,17 @@
|
|
|
362
362
|
"writable": true,
|
|
363
363
|
"signer": true
|
|
364
364
|
},
|
|
365
|
+
{
|
|
366
|
+
"name": "protocol_admin_treasury",
|
|
367
|
+
"docs": [
|
|
368
|
+
"`seeds` + `seeds::program` constraint Anchor enforces here is",
|
|
369
|
+
"the entire validation — any account passed in that isn't that",
|
|
370
|
+
"exact PDA fails before the handler runs. The handler then",
|
|
371
|
+
"requires the `protocol_admin` argument to equal this account's",
|
|
372
|
+
"key, so on-chain `config.protocol_admin` can only ever be the",
|
|
373
|
+
"Treasury PDA."
|
|
374
|
+
]
|
|
375
|
+
},
|
|
365
376
|
{
|
|
366
377
|
"name": "payer",
|
|
367
378
|
"docs": [
|
|
@@ -1461,6 +1472,11 @@
|
|
|
1461
1472
|
"code": 6037,
|
|
1462
1473
|
"name": "InvalidPendingAdmin",
|
|
1463
1474
|
"msg": "Pending admin cannot be the zero pubkey"
|
|
1475
|
+
},
|
|
1476
|
+
{
|
|
1477
|
+
"code": 6038,
|
|
1478
|
+
"name": "ProtocolAdminNotTreasury",
|
|
1479
|
+
"msg": "protocol_admin must equal the hardcoded Treasury PDA"
|
|
1464
1480
|
}
|
|
1465
1481
|
],
|
|
1466
1482
|
"types": [
|
|
@@ -206,6 +206,43 @@
|
|
|
206
206
|
}
|
|
207
207
|
]
|
|
208
208
|
},
|
|
209
|
+
{
|
|
210
|
+
"name": "pool_accept_protocol_admin_transfer",
|
|
211
|
+
"docs": [
|
|
212
|
+
"Step 2 — accept the in-flight `protocol_admin` transfer with the",
|
|
213
|
+
"Treasury PDA as the new admin. Signs the cubic-pool accept CPI",
|
|
214
|
+
"with treasury seeds, so the Treasury PDA itself becomes",
|
|
215
|
+
"`config.protocol_admin`. Required because a PDA cannot sign",
|
|
216
|
+
"cubic-pool's `accept_protocol_admin_transfer` directly."
|
|
217
|
+
],
|
|
218
|
+
"discriminator": [
|
|
219
|
+
34,
|
|
220
|
+
167,
|
|
221
|
+
199,
|
|
222
|
+
116,
|
|
223
|
+
14,
|
|
224
|
+
203,
|
|
225
|
+
208,
|
|
226
|
+
67
|
|
227
|
+
],
|
|
228
|
+
"accounts": [
|
|
229
|
+
{
|
|
230
|
+
"name": "treasury"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"name": "admin",
|
|
234
|
+
"signer": true
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"name": "config",
|
|
238
|
+
"writable": true
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"name": "cubic_pool_program"
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"args": []
|
|
245
|
+
},
|
|
209
246
|
{
|
|
210
247
|
"name": "pool_cancel_protocol_admin_transfer",
|
|
211
248
|
"docs": [
|
|
@@ -978,6 +1015,19 @@
|
|
|
978
1015
|
242
|
|
979
1016
|
]
|
|
980
1017
|
},
|
|
1018
|
+
{
|
|
1019
|
+
"name": "PoolProtocolAdminTransferAccepted",
|
|
1020
|
+
"discriminator": [
|
|
1021
|
+
235,
|
|
1022
|
+
91,
|
|
1023
|
+
63,
|
|
1024
|
+
65,
|
|
1025
|
+
174,
|
|
1026
|
+
42,
|
|
1027
|
+
55,
|
|
1028
|
+
129
|
|
1029
|
+
]
|
|
1030
|
+
},
|
|
981
1031
|
{
|
|
982
1032
|
"name": "PoolProtocolAdminTransferCancelled",
|
|
983
1033
|
"discriminator": [
|
|
@@ -1407,6 +1457,26 @@
|
|
|
1407
1457
|
]
|
|
1408
1458
|
}
|
|
1409
1459
|
},
|
|
1460
|
+
{
|
|
1461
|
+
"name": "PoolProtocolAdminTransferAccepted",
|
|
1462
|
+
"type": {
|
|
1463
|
+
"kind": "struct",
|
|
1464
|
+
"fields": [
|
|
1465
|
+
{
|
|
1466
|
+
"name": "treasury",
|
|
1467
|
+
"type": "pubkey"
|
|
1468
|
+
},
|
|
1469
|
+
{
|
|
1470
|
+
"name": "config",
|
|
1471
|
+
"type": "pubkey"
|
|
1472
|
+
},
|
|
1473
|
+
{
|
|
1474
|
+
"name": "timestamp",
|
|
1475
|
+
"type": "i64"
|
|
1476
|
+
}
|
|
1477
|
+
]
|
|
1478
|
+
}
|
|
1479
|
+
},
|
|
1410
1480
|
{
|
|
1411
1481
|
"name": "PoolProtocolAdminTransferCancelled",
|
|
1412
1482
|
"type": {
|
package/src/index.ts
CHANGED