@pulsight-xyz/sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/dist/backtest.d.ts +18 -0
- package/dist/backtest.d.ts.map +1 -0
- package/dist/backtest.js +48 -0
- package/dist/backtest.js.map +1 -0
- package/dist/client.d.ts +34 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +77 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +41 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +96 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/client/client.gen.d.ts +3 -0
- package/dist/generated/client/client.gen.d.ts.map +1 -0
- package/dist/generated/client/client.gen.js +217 -0
- package/dist/generated/client/client.gen.js.map +1 -0
- package/dist/generated/client/index.d.ts +9 -0
- package/dist/generated/client/index.d.ts.map +1 -0
- package/dist/generated/client/index.js +7 -0
- package/dist/generated/client/index.js.map +1 -0
- package/dist/generated/client/types.gen.d.ts +121 -0
- package/dist/generated/client/types.gen.d.ts.map +1 -0
- package/dist/generated/client/types.gen.js +3 -0
- package/dist/generated/client/types.gen.js.map +1 -0
- package/dist/generated/client/utils.gen.d.ts +38 -0
- package/dist/generated/client/utils.gen.d.ts.map +1 -0
- package/dist/generated/client/utils.gen.js +229 -0
- package/dist/generated/client/utils.gen.js.map +1 -0
- package/dist/generated/client.gen.d.ts +13 -0
- package/dist/generated/client.gen.d.ts.map +1 -0
- package/dist/generated/client.gen.js +4 -0
- package/dist/generated/client.gen.js.map +1 -0
- package/dist/generated/core/auth.gen.d.ts +19 -0
- package/dist/generated/core/auth.gen.d.ts.map +1 -0
- package/dist/generated/core/auth.gen.js +15 -0
- package/dist/generated/core/auth.gen.js.map +1 -0
- package/dist/generated/core/bodySerializer.gen.d.ts +26 -0
- package/dist/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/generated/core/bodySerializer.gen.js +58 -0
- package/dist/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/generated/core/params.gen.d.ts +44 -0
- package/dist/generated/core/params.gen.d.ts.map +1 -0
- package/dist/generated/core/params.gen.js +101 -0
- package/dist/generated/core/params.gen.js.map +1 -0
- package/dist/generated/core/pathSerializer.gen.d.ts +34 -0
- package/dist/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/generated/core/pathSerializer.gen.js +107 -0
- package/dist/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/generated/core/queryKeySerializer.gen.js +93 -0
- package/dist/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/generated/core/serverSentEvents.gen.js +133 -0
- package/dist/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/generated/core/types.gen.d.ts +79 -0
- package/dist/generated/core/types.gen.d.ts.map +1 -0
- package/dist/generated/core/types.gen.js +3 -0
- package/dist/generated/core/types.gen.js.map +1 -0
- package/dist/generated/core/utils.gen.d.ts +20 -0
- package/dist/generated/core/utils.gen.d.ts.map +1 -0
- package/dist/generated/core/utils.gen.js +88 -0
- package/dist/generated/core/utils.gen.js.map +1 -0
- package/dist/generated/index.d.ts +3 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +3 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/sdk.gen.d.ts +322 -0
- package/dist/generated/sdk.gen.d.ts.map +1 -0
- package/dist/generated/sdk.gen.js +550 -0
- package/dist/generated/sdk.gen.js.map +1 -0
- package/dist/generated/types.gen.d.ts +3337 -0
- package/dist/generated/types.gen.d.ts.map +1 -0
- package/dist/generated/types.gen.js +3 -0
- package/dist/generated/types.gen.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/package.json +40 -0
- package/src/backtest.ts +72 -0
- package/src/client.ts +98 -0
- package/src/errors.ts +99 -0
- package/src/generated/client/client.gen.ts +277 -0
- package/src/generated/client/index.ts +25 -0
- package/src/generated/client/types.gen.ts +218 -0
- package/src/generated/client/utils.gen.ts +316 -0
- package/src/generated/client.gen.ts +16 -0
- package/src/generated/core/auth.gen.ts +41 -0
- package/src/generated/core/bodySerializer.gen.ts +82 -0
- package/src/generated/core/params.gen.ts +169 -0
- package/src/generated/core/pathSerializer.gen.ts +171 -0
- package/src/generated/core/queryKeySerializer.gen.ts +117 -0
- package/src/generated/core/serverSentEvents.gen.ts +242 -0
- package/src/generated/core/types.gen.ts +104 -0
- package/src/generated/core/utils.gen.ts +140 -0
- package/src/generated/index.ts +4 -0
- package/src/generated/sdk.gen.ts +625 -0
- package/src/generated/types.gen.ts +3730 -0
- package/src/index.ts +29 -0
|
@@ -0,0 +1,3337 @@
|
|
|
1
|
+
export type ClientOptions = {
|
|
2
|
+
baseUrl: `${string}://${string}` | (string & {});
|
|
3
|
+
};
|
|
4
|
+
export type InternalAdaptersPrimaryHttpHandlerDashboardStats = {
|
|
5
|
+
aggregate_sim_pnl_sol?: number;
|
|
6
|
+
backtested_trades?: number;
|
|
7
|
+
best_run?: InternalAdaptersPrimaryHttpHandlerBestRunRef;
|
|
8
|
+
running_backtests?: number;
|
|
9
|
+
strategies_with_runs?: number;
|
|
10
|
+
total_strategies?: number;
|
|
11
|
+
};
|
|
12
|
+
export type InternalAdaptersPrimaryHttpHandlerPaginatedPnls = {
|
|
13
|
+
items?: Array<PulsightInternalCoreDomainTraderPnl>;
|
|
14
|
+
limit?: number;
|
|
15
|
+
offset?: number;
|
|
16
|
+
total?: number;
|
|
17
|
+
};
|
|
18
|
+
export type InternalAdaptersPrimaryHttpHandlerStrategyListItem = {
|
|
19
|
+
record?: PulsightInternalCoreDomainStrategyRecord;
|
|
20
|
+
stats?: InternalAdaptersPrimaryHttpHandlerStrategyStats;
|
|
21
|
+
};
|
|
22
|
+
export type InternalAdaptersPrimaryHttpHandlerStrategyStats = {
|
|
23
|
+
draft?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* EquityPoints is the cumulative-P&L curve across the most
|
|
26
|
+
* recent ≤20 `done` runs, ordered ascending by finished_at.
|
|
27
|
+
* Each element is the running sum of `summary.total_pnl_sol`
|
|
28
|
+
* through that run, so a frontend <polyline> over these points
|
|
29
|
+
* renders the dashboard sparkline directly.
|
|
30
|
+
*/
|
|
31
|
+
equity_points?: Array<number>;
|
|
32
|
+
last_run_at?: string;
|
|
33
|
+
last_run_pnl_sol?: number;
|
|
34
|
+
last_run_status?: string;
|
|
35
|
+
last_run_trades?: number;
|
|
36
|
+
last_run_win_rate_pct?: number;
|
|
37
|
+
total_runs?: number;
|
|
38
|
+
};
|
|
39
|
+
export type InternalAdaptersPrimaryHttpHandlerTraderExportRequest = {
|
|
40
|
+
columns?: Array<string>;
|
|
41
|
+
direction?: string;
|
|
42
|
+
filters?: {
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
};
|
|
45
|
+
format?: string;
|
|
46
|
+
sort_by?: string;
|
|
47
|
+
};
|
|
48
|
+
export type InternalAdaptersPrimaryHttpHandlerApiKeyRenameRequest = {
|
|
49
|
+
name?: string;
|
|
50
|
+
};
|
|
51
|
+
export type InternalAdaptersPrimaryHttpHandlerBacktestSettingsResponse = {
|
|
52
|
+
max_tick_budget?: number;
|
|
53
|
+
};
|
|
54
|
+
export type InternalAdaptersPrimaryHttpHandlerBestRunRef = {
|
|
55
|
+
backtest_id?: string;
|
|
56
|
+
pnl_sol?: number;
|
|
57
|
+
strategy_id?: string;
|
|
58
|
+
strategy_name?: string;
|
|
59
|
+
};
|
|
60
|
+
export type InternalAdaptersPrimaryHttpHandlerErrorResponse = {
|
|
61
|
+
error?: string;
|
|
62
|
+
};
|
|
63
|
+
export type InternalAdaptersPrimaryHttpHandlerServiceLoyaltyRow = {
|
|
64
|
+
share_pct?: number;
|
|
65
|
+
swap_count?: number;
|
|
66
|
+
tip_service?: string;
|
|
67
|
+
tip_sum_lamports?: number;
|
|
68
|
+
};
|
|
69
|
+
export type InternalAdaptersPrimaryHttpHandlerSnapshotResponse = {
|
|
70
|
+
rows?: Array<InternalAdaptersPrimaryHttpHandlerSnapshotRow>;
|
|
71
|
+
window?: string;
|
|
72
|
+
};
|
|
73
|
+
export type InternalAdaptersPrimaryHttpHandlerSnapshotRow = {
|
|
74
|
+
avg_buys_per_token?: number;
|
|
75
|
+
avg_hold_secs?: number;
|
|
76
|
+
avg_reactivity_secs?: number;
|
|
77
|
+
/**
|
|
78
|
+
* lamports
|
|
79
|
+
*/
|
|
80
|
+
avg_rp_30d?: number;
|
|
81
|
+
/**
|
|
82
|
+
* lamports
|
|
83
|
+
*/
|
|
84
|
+
avg_rp_7d?: number;
|
|
85
|
+
avg_sells_per_token?: number;
|
|
86
|
+
holding_pnl_lamports?: number;
|
|
87
|
+
med_buys_per_token?: number;
|
|
88
|
+
med_hold_secs?: number;
|
|
89
|
+
med_reactivity_secs?: number;
|
|
90
|
+
/**
|
|
91
|
+
* lamports
|
|
92
|
+
*/
|
|
93
|
+
med_rp_30d?: number;
|
|
94
|
+
/**
|
|
95
|
+
* lamports
|
|
96
|
+
*/
|
|
97
|
+
med_rp_7d?: number;
|
|
98
|
+
med_sells_per_token?: number;
|
|
99
|
+
oldest_trade_at?: string;
|
|
100
|
+
pnl_distribution?: Array<number>;
|
|
101
|
+
/**
|
|
102
|
+
* lamports per day
|
|
103
|
+
*/
|
|
104
|
+
pnl_sparkline_7d?: Array<number>;
|
|
105
|
+
tags?: Array<string>;
|
|
106
|
+
/**
|
|
107
|
+
* lifetime mints created
|
|
108
|
+
*/
|
|
109
|
+
tokens_created?: number;
|
|
110
|
+
/**
|
|
111
|
+
* subset that graduated
|
|
112
|
+
*/
|
|
113
|
+
tokens_graduated?: number;
|
|
114
|
+
trader?: string;
|
|
115
|
+
};
|
|
116
|
+
export type InternalAdaptersPrimaryHttpHandlerStrategyCreateRequest = {
|
|
117
|
+
/**
|
|
118
|
+
* Config carries the visual node-graph DSL. Tagged `def` on the
|
|
119
|
+
* wire to match the frontend contract (pulsight/new-front/src/
|
|
120
|
+
* api/client.ts sends `{name, description, def}`); the Go field
|
|
121
|
+
* keeps its existing name so callers don't have to churn.
|
|
122
|
+
*/
|
|
123
|
+
def?: PulsightInternalCoreDomainStrategyStrategyDef;
|
|
124
|
+
description?: string;
|
|
125
|
+
name?: string;
|
|
126
|
+
};
|
|
127
|
+
export type InternalAdaptersPrimaryHttpHandlerStrategyUpdateRequest = {
|
|
128
|
+
/**
|
|
129
|
+
* Config carries the visual node-graph DSL. Tagged `def` on the
|
|
130
|
+
* wire to match the frontend contract (pulsight/new-front/src/
|
|
131
|
+
* api/client.ts sends `{name, description, def}`); the Go field
|
|
132
|
+
* keeps its existing name so callers don't have to churn.
|
|
133
|
+
*/
|
|
134
|
+
def?: PulsightInternalCoreDomainStrategyStrategyDef;
|
|
135
|
+
description?: string;
|
|
136
|
+
name?: string;
|
|
137
|
+
};
|
|
138
|
+
export type InternalAdaptersPrimaryHttpHandlerSwapEventRow = {
|
|
139
|
+
amount_in?: number;
|
|
140
|
+
amount_out?: number;
|
|
141
|
+
arb_pnl_lamports?: number;
|
|
142
|
+
dex?: string;
|
|
143
|
+
fee?: number;
|
|
144
|
+
is_arb?: boolean;
|
|
145
|
+
is_buy?: boolean;
|
|
146
|
+
mint?: string;
|
|
147
|
+
pool?: string;
|
|
148
|
+
priority_fee_lamports?: number;
|
|
149
|
+
quote_mint?: string;
|
|
150
|
+
realized_profit?: number;
|
|
151
|
+
signature?: string;
|
|
152
|
+
sold_more_than_bought?: boolean;
|
|
153
|
+
sold_without_buy?: boolean;
|
|
154
|
+
tip_lamports?: number;
|
|
155
|
+
tip_service?: string;
|
|
156
|
+
trader?: string;
|
|
157
|
+
ts?: number;
|
|
158
|
+
/**
|
|
159
|
+
* null — not in Pulsight SwapRow
|
|
160
|
+
*/
|
|
161
|
+
virtual_sol?: number;
|
|
162
|
+
/**
|
|
163
|
+
* null — not in Pulsight SwapRow
|
|
164
|
+
*/
|
|
165
|
+
virtual_token?: string;
|
|
166
|
+
};
|
|
167
|
+
export type InternalAdaptersPrimaryHttpHandlerTokensRow = {
|
|
168
|
+
buy_tx_count?: number;
|
|
169
|
+
cost_basis_lamports?: string;
|
|
170
|
+
first_buy_ts?: string;
|
|
171
|
+
holding_pnl_lamports?: number;
|
|
172
|
+
last_active_ts?: string;
|
|
173
|
+
mint?: string;
|
|
174
|
+
mint_decimals?: number;
|
|
175
|
+
mint_logo_uri?: string;
|
|
176
|
+
mint_name?: string;
|
|
177
|
+
mint_symbol?: string;
|
|
178
|
+
realized_profit?: number;
|
|
179
|
+
sell_tx_count?: number;
|
|
180
|
+
token_balance?: string;
|
|
181
|
+
total_fees?: number;
|
|
182
|
+
total_invested?: number;
|
|
183
|
+
trader?: string;
|
|
184
|
+
updated_at?: string;
|
|
185
|
+
};
|
|
186
|
+
export type InternalAdaptersPrimaryHttpHandlerTraderTipStatsResponse = {
|
|
187
|
+
exec_premium?: number;
|
|
188
|
+
priority_fee_sum?: number;
|
|
189
|
+
swap_count?: number;
|
|
190
|
+
tip_aggression_ratio?: number;
|
|
191
|
+
tip_avg_lamports?: number;
|
|
192
|
+
tip_count?: number;
|
|
193
|
+
tip_sum_lamports?: number;
|
|
194
|
+
trader?: string;
|
|
195
|
+
volume_in_sum?: number;
|
|
196
|
+
window?: string;
|
|
197
|
+
};
|
|
198
|
+
export type PulsightInternalCoreDomainAggregatorBondingCurveState = {
|
|
199
|
+
/**
|
|
200
|
+
* True iff mint_migrations carries any graduation row for this mint.
|
|
201
|
+
*/
|
|
202
|
+
graduated?: boolean;
|
|
203
|
+
/**
|
|
204
|
+
* Destination dex of the graduation; nil when not graduated.
|
|
205
|
+
*/
|
|
206
|
+
graduation_target_dex?: string;
|
|
207
|
+
/**
|
|
208
|
+
* Launchpad slug — pumpfun_amm | raydium_launchpad | meteora_dbc.
|
|
209
|
+
*/
|
|
210
|
+
launchpad?: string;
|
|
211
|
+
/**
|
|
212
|
+
* Curve progress 0..=100. nil for Raydium Launchpad / Meteora DBC
|
|
213
|
+
* (per-pool config not persisted); always set for PumpFun.
|
|
214
|
+
*/
|
|
215
|
+
progress_pct?: number;
|
|
216
|
+
/**
|
|
217
|
+
* Most recent observed virtual_sol (= dex_swaps.quote_reserves)
|
|
218
|
+
* snapshot on the launchpad dex, in lamports. 0 for pre-feature
|
|
219
|
+
* graduations with no curve swap on file.
|
|
220
|
+
*/
|
|
221
|
+
virtual_sol_lamports?: number;
|
|
222
|
+
/**
|
|
223
|
+
* Most recent observed virtual_token (NUMERIC → decimal string for
|
|
224
|
+
* JSON safety). "0" when no curve swap is on file.
|
|
225
|
+
*/
|
|
226
|
+
virtual_token?: string;
|
|
227
|
+
};
|
|
228
|
+
export type PulsightInternalCoreDomainAggregatorCreatedMintRow = {
|
|
229
|
+
decimals?: number;
|
|
230
|
+
/**
|
|
231
|
+
* FirstSeenTS proxies "created at" — the create-tx and first buy land in
|
|
232
|
+
* the same flush window. nil for fixture-only edge cases.
|
|
233
|
+
*/
|
|
234
|
+
first_seen_ts?: string;
|
|
235
|
+
/**
|
|
236
|
+
* Graduated is true iff the mint has any `mint_migrations` row.
|
|
237
|
+
*/
|
|
238
|
+
graduated?: boolean;
|
|
239
|
+
/**
|
|
240
|
+
* GraduationTargetDex is the most-recent migration's to_dex; nil when not
|
|
241
|
+
* graduated.
|
|
242
|
+
*/
|
|
243
|
+
graduation_target_dex?: string;
|
|
244
|
+
logo_uri?: string;
|
|
245
|
+
mint?: string;
|
|
246
|
+
name?: string;
|
|
247
|
+
symbol?: string;
|
|
248
|
+
};
|
|
249
|
+
export type PulsightInternalCoreDomainAggregatorDevHoldings = {
|
|
250
|
+
/**
|
|
251
|
+
* Creator's raw token balance (NUMERIC → decimal string).
|
|
252
|
+
*/
|
|
253
|
+
balance_raw?: string;
|
|
254
|
+
/**
|
|
255
|
+
* Creator wallet (mirrors MintRow.Creator).
|
|
256
|
+
*/
|
|
257
|
+
creator?: string;
|
|
258
|
+
/**
|
|
259
|
+
* Percentage of supply held by the creator, 0..=100.
|
|
260
|
+
*/
|
|
261
|
+
percent_of_supply?: number;
|
|
262
|
+
/**
|
|
263
|
+
* Mint's on-chain total supply (same encoding).
|
|
264
|
+
*/
|
|
265
|
+
supply_raw?: string;
|
|
266
|
+
};
|
|
267
|
+
export type PulsightInternalCoreDomainAggregatorGlobalTipStats = {
|
|
268
|
+
p50_tip_lamports?: number;
|
|
269
|
+
p90_tip_lamports?: number;
|
|
270
|
+
priority_fee_sum?: number;
|
|
271
|
+
swap_count?: number;
|
|
272
|
+
tip_avg_lamports?: number;
|
|
273
|
+
tip_count?: number;
|
|
274
|
+
tip_sum_lamports?: number;
|
|
275
|
+
/**
|
|
276
|
+
* TippedFraction is tip_count / swap_count over the window (0..1).
|
|
277
|
+
*/
|
|
278
|
+
tipped_fraction?: number;
|
|
279
|
+
window?: string;
|
|
280
|
+
};
|
|
281
|
+
export type PulsightInternalCoreDomainAggregatorHeatmapResponse = {
|
|
282
|
+
bucket?: string;
|
|
283
|
+
horizon_hours?: number;
|
|
284
|
+
points?: Array<PulsightInternalCoreDomainAggregatorTipHeatmapPoint>;
|
|
285
|
+
};
|
|
286
|
+
export type PulsightInternalCoreDomainAggregatorJitoEfficiencyRow = {
|
|
287
|
+
efficiency_score?: number;
|
|
288
|
+
tip_swaps?: number;
|
|
289
|
+
total_tip_sum?: number;
|
|
290
|
+
total_volume_in?: number;
|
|
291
|
+
trader?: string;
|
|
292
|
+
};
|
|
293
|
+
export type PulsightInternalCoreDomainAggregatorLpEvent = {
|
|
294
|
+
base_amount?: string;
|
|
295
|
+
base_mint?: string;
|
|
296
|
+
dex?: string;
|
|
297
|
+
ix_index?: number;
|
|
298
|
+
/**
|
|
299
|
+
* LpMint is the LP-token mint; "" when unknown.
|
|
300
|
+
*/
|
|
301
|
+
lp_mint?: string;
|
|
302
|
+
lp_token_amount?: string;
|
|
303
|
+
/**
|
|
304
|
+
* Op ∈ {add, remove, burn}.
|
|
305
|
+
*/
|
|
306
|
+
op?: string;
|
|
307
|
+
pool?: string;
|
|
308
|
+
quote_amount?: string;
|
|
309
|
+
quote_mint?: string;
|
|
310
|
+
signature?: string;
|
|
311
|
+
signer?: string;
|
|
312
|
+
slot?: number;
|
|
313
|
+
timestamp?: string;
|
|
314
|
+
};
|
|
315
|
+
export type PulsightInternalCoreDomainAggregatorMatPoint = {
|
|
316
|
+
bucket_ts?: number;
|
|
317
|
+
ma_1h?: number;
|
|
318
|
+
ma_5m?: number;
|
|
319
|
+
tip_avg?: number;
|
|
320
|
+
};
|
|
321
|
+
export type PulsightInternalCoreDomainAggregatorMevTipSharePoint = {
|
|
322
|
+
bucket_ts?: number;
|
|
323
|
+
share_pct?: number;
|
|
324
|
+
tipped_volume_lamports?: number;
|
|
325
|
+
total_volume_lamports?: number;
|
|
326
|
+
};
|
|
327
|
+
export type PulsightInternalCoreDomainAggregatorMintMarket = {
|
|
328
|
+
dex?: string;
|
|
329
|
+
last_swap_ts?: string;
|
|
330
|
+
pool?: string;
|
|
331
|
+
sol_volume_lamports?: number;
|
|
332
|
+
sol_volume_share?: number;
|
|
333
|
+
swap_count?: number;
|
|
334
|
+
};
|
|
335
|
+
export type PulsightInternalCoreDomainAggregatorMintMigration = {
|
|
336
|
+
destination_pool?: string;
|
|
337
|
+
from_dex?: string;
|
|
338
|
+
mint?: string;
|
|
339
|
+
slot?: number;
|
|
340
|
+
/**
|
|
341
|
+
* Source ∈ {"observed","inferred"} (CHECK constraint).
|
|
342
|
+
*/
|
|
343
|
+
source?: string;
|
|
344
|
+
timestamp?: string;
|
|
345
|
+
to_dex?: string;
|
|
346
|
+
};
|
|
347
|
+
export type PulsightInternalCoreDomainAggregatorMintRow = {
|
|
348
|
+
authorities_observed_at?: string;
|
|
349
|
+
/**
|
|
350
|
+
* ── CA mint-catalog enrichment (ported from mint_catalog.rs::find /
|
|
351
|
+
* list_active). bonding_curve + dev_holdings populate on BOTH
|
|
352
|
+
* /api/mints (list) and /api/mints/:pubkey (detail); supply +
|
|
353
|
+
* authorities populate on the detail path only (nil on list rows).
|
|
354
|
+
* All pointer + omitempty so list rows stay lean. The frontend's
|
|
355
|
+
* CurveBadge/DevPill already render bonding_curve/dev_holdings.
|
|
356
|
+
*/
|
|
357
|
+
bonding_curve?: PulsightInternalCoreDomainAggregatorBondingCurveState;
|
|
358
|
+
/**
|
|
359
|
+
* BuyCount/SellCount: buy- vs sell-side swap counts over the `?hours`
|
|
360
|
+
* activity window (countIf(is_buy)). Populated on the list path; 0 on
|
|
361
|
+
* the detail path.
|
|
362
|
+
*/
|
|
363
|
+
buy_count?: number;
|
|
364
|
+
creator?: string;
|
|
365
|
+
decimals?: number;
|
|
366
|
+
dev_holdings?: PulsightInternalCoreDomainAggregatorDevHoldings;
|
|
367
|
+
fetch_status?: string;
|
|
368
|
+
first_seen_ts?: string;
|
|
369
|
+
freeze_authority?: string;
|
|
370
|
+
/**
|
|
371
|
+
* IsMayhemMode flags a Pump.fun "Mayhem"-mode token (its trades route
|
|
372
|
+
* through the Mayhem custody program). Populated on BOTH list and detail
|
|
373
|
+
* from the mint_mayhem table; omitted when false.
|
|
374
|
+
*/
|
|
375
|
+
is_mayhem_mode?: boolean;
|
|
376
|
+
last_trade_ts?: string;
|
|
377
|
+
logo_uri?: string;
|
|
378
|
+
markets_count?: number;
|
|
379
|
+
/**
|
|
380
|
+
* MetadataURI/FetchStatus are detail-only identity fields the
|
|
381
|
+
* frontend's TokenIdentityCard renders (off-chain JSON link + enrich
|
|
382
|
+
* status). nil on list rows.
|
|
383
|
+
*/
|
|
384
|
+
metadata_uri?: string;
|
|
385
|
+
mint?: string;
|
|
386
|
+
/**
|
|
387
|
+
* MintAuthority/FreezeAuthority: non-nil = active authority pubkey;
|
|
388
|
+
* nil with AuthoritiesObservedAt set = renounced; nil with
|
|
389
|
+
* AuthoritiesObservedAt nil = unknown (not yet observed).
|
|
390
|
+
*/
|
|
391
|
+
mint_authority?: string;
|
|
392
|
+
name?: string;
|
|
393
|
+
sell_count?: number;
|
|
394
|
+
/**
|
|
395
|
+
* Windowed stats bundle keyed by window. Reuses the same
|
|
396
|
+
* MintStatsByWindow struct that GET /api/mints/:pubkey/stats
|
|
397
|
+
* returns so the frontend's ActiveMint.stats path consumes both
|
|
398
|
+
* endpoints identically.
|
|
399
|
+
*
|
|
400
|
+
* /api/mints/:pubkey/stats (FindStatsBundle) populates all four
|
|
401
|
+
* windows in one round-trip.
|
|
402
|
+
*
|
|
403
|
+
* /api/mints (ListActive) currently populates ONLY the active
|
|
404
|
+
* window's bucket — the other three windows in the per-row
|
|
405
|
+
* MintStatsByWindow stay zero-valued. The frontend's
|
|
406
|
+
* `m.stats?.[window]?.…` chain renders `—` on null, so this is
|
|
407
|
+
* safe; an N-row × 4-window fan-out would mean 3× more LATERAL
|
|
408
|
+
* joins per page and the UI only ever shows one window at a time
|
|
409
|
+
* (window switch refetches the page). If a future surface needs
|
|
410
|
+
* all four windows in the list response, extend ListActive to
|
|
411
|
+
* match FindStatsBundle's four-LATERAL pattern.
|
|
412
|
+
*/
|
|
413
|
+
stats?: PulsightInternalCoreDomainAggregatorMintStatsByWindow;
|
|
414
|
+
/**
|
|
415
|
+
* Supply is the on-chain total supply (NUMERIC → decimal string);
|
|
416
|
+
* nil until the enricher has decoded the mint account.
|
|
417
|
+
*/
|
|
418
|
+
supply?: string;
|
|
419
|
+
/**
|
|
420
|
+
* Window-bound activity aggregates over the `?hours` lookback,
|
|
421
|
+
* derived from hourly_mint_trader_activity + hourly_mint_pool_activity.
|
|
422
|
+
* All non-pointer because GROUP BY in the LATERAL produces a row even
|
|
423
|
+
* for zero swaps (we go through the activity gate first, so anything
|
|
424
|
+
* returned has at least one). SwapCount, TraderCount and MarketsCount
|
|
425
|
+
* default to 0 if the LATERAL came up empty; the frontend's `formatNum`
|
|
426
|
+
* renders 0 cleanly.
|
|
427
|
+
*/
|
|
428
|
+
swap_count?: number;
|
|
429
|
+
symbol?: string;
|
|
430
|
+
trader_count?: number;
|
|
431
|
+
};
|
|
432
|
+
export type PulsightInternalCoreDomainAggregatorMintStatsByWindow = {
|
|
433
|
+
'1h'?: PulsightInternalCoreDomainAggregatorMintWindowStats;
|
|
434
|
+
'1m'?: PulsightInternalCoreDomainAggregatorMintWindowStats;
|
|
435
|
+
'24h'?: PulsightInternalCoreDomainAggregatorMintWindowStats;
|
|
436
|
+
'5m'?: PulsightInternalCoreDomainAggregatorMintWindowStats;
|
|
437
|
+
};
|
|
438
|
+
export type PulsightInternalCoreDomainAggregatorMintTraderRow = {
|
|
439
|
+
buy_tx_count?: number;
|
|
440
|
+
cost_basis_lamports?: string;
|
|
441
|
+
first_buy_ts?: string;
|
|
442
|
+
holding_pnl_lamports?: number;
|
|
443
|
+
last_active_ts?: string;
|
|
444
|
+
realized_profit?: number;
|
|
445
|
+
sell_tx_count?: number;
|
|
446
|
+
token_balance?: string;
|
|
447
|
+
total_fees?: number;
|
|
448
|
+
total_invested?: number;
|
|
449
|
+
trader?: string;
|
|
450
|
+
};
|
|
451
|
+
export type PulsightInternalCoreDomainAggregatorMintWindowStats = {
|
|
452
|
+
buy_swap_count?: number;
|
|
453
|
+
/**
|
|
454
|
+
* SOL spent buying, in lamports.
|
|
455
|
+
*/
|
|
456
|
+
buy_volume_sol?: number;
|
|
457
|
+
/**
|
|
458
|
+
* buy_volume_sol - sell_volume_sol, in lamports.
|
|
459
|
+
*/
|
|
460
|
+
net_buy_sol?: number;
|
|
461
|
+
/**
|
|
462
|
+
* Most recent virtual_sol (pool size) observed in the window, in lamports.
|
|
463
|
+
*/
|
|
464
|
+
pool_sol?: number;
|
|
465
|
+
/**
|
|
466
|
+
* (close - open) / open × 100 over the window.
|
|
467
|
+
*/
|
|
468
|
+
price_change_pct?: number;
|
|
469
|
+
sell_swap_count?: number;
|
|
470
|
+
/**
|
|
471
|
+
* SOL received from sells, in lamports.
|
|
472
|
+
*/
|
|
473
|
+
sell_volume_sol?: number;
|
|
474
|
+
swap_count?: number;
|
|
475
|
+
/**
|
|
476
|
+
* Total SOL traded (buy + sell), in lamports.
|
|
477
|
+
*/
|
|
478
|
+
volume_sol?: number;
|
|
479
|
+
};
|
|
480
|
+
export type PulsightInternalCoreDomainAggregatorMintWindowStatsBundle = {
|
|
481
|
+
as_of?: string;
|
|
482
|
+
mint?: string;
|
|
483
|
+
stats?: PulsightInternalCoreDomainAggregatorMintStatsByWindow;
|
|
484
|
+
};
|
|
485
|
+
export type PulsightInternalCoreDomainAggregatorOhlcvCandle = {
|
|
486
|
+
bucket?: string;
|
|
487
|
+
buy_volume_sol?: number;
|
|
488
|
+
c?: number;
|
|
489
|
+
h?: number;
|
|
490
|
+
l?: number;
|
|
491
|
+
mint?: string;
|
|
492
|
+
o?: number;
|
|
493
|
+
pool_sol?: number;
|
|
494
|
+
sell_volume_sol?: number;
|
|
495
|
+
swap_count?: number;
|
|
496
|
+
token_volume?: number;
|
|
497
|
+
};
|
|
498
|
+
export type PulsightInternalCoreDomainAggregatorSafetyEvent = {
|
|
499
|
+
/**
|
|
500
|
+
* AccountTarget is the affected token account; set for freeze/thaw.
|
|
501
|
+
*/
|
|
502
|
+
account_target?: string;
|
|
503
|
+
/**
|
|
504
|
+
* Amount is a decimal token-amount string; set for burn/mint_to.
|
|
505
|
+
*/
|
|
506
|
+
amount?: string;
|
|
507
|
+
/**
|
|
508
|
+
* AuthorityType ∈ {mint, freeze, account_owner, close_account};
|
|
509
|
+
* set only for kind=authority_change.
|
|
510
|
+
*/
|
|
511
|
+
authority_type?: string;
|
|
512
|
+
ix_index?: number;
|
|
513
|
+
/**
|
|
514
|
+
* Kind ∈ {burn, mint_to, freeze, thaw, authority_change}.
|
|
515
|
+
*/
|
|
516
|
+
kind?: string;
|
|
517
|
+
mint?: string;
|
|
518
|
+
/**
|
|
519
|
+
* NewAuthority is the new authority pubkey (nil = revoked / empty);
|
|
520
|
+
* set only for kind=authority_change.
|
|
521
|
+
*/
|
|
522
|
+
new_authority?: string;
|
|
523
|
+
signature?: string;
|
|
524
|
+
signer?: string;
|
|
525
|
+
slot?: number;
|
|
526
|
+
timestamp?: string;
|
|
527
|
+
};
|
|
528
|
+
export type PulsightInternalCoreDomainAggregatorServiceDominanceRow = {
|
|
529
|
+
share_pct?: number;
|
|
530
|
+
tip_service?: string;
|
|
531
|
+
tip_sum_lamports?: number;
|
|
532
|
+
tipped_count?: number;
|
|
533
|
+
};
|
|
534
|
+
export type PulsightInternalCoreDomainAggregatorTimeframe = '1s' | '5s' | '15s' | '30s' | '1m' | '5m' | '15m' | '30m';
|
|
535
|
+
export type PulsightInternalCoreDomainAggregatorTipHeatmapPoint = {
|
|
536
|
+
/**
|
|
537
|
+
* unix epoch seconds at bucket start
|
|
538
|
+
*/
|
|
539
|
+
bucket_ts?: number;
|
|
540
|
+
median_tip_lamports?: number;
|
|
541
|
+
p90_tip_lamports?: number;
|
|
542
|
+
tipped_count?: number;
|
|
543
|
+
};
|
|
544
|
+
export type PulsightInternalCoreDomainAggregatorTipPriorityRatioPoint = {
|
|
545
|
+
bucket_ts?: number;
|
|
546
|
+
priority_fee_sum?: number;
|
|
547
|
+
ratio?: number;
|
|
548
|
+
tip_sum_lamports?: number;
|
|
549
|
+
};
|
|
550
|
+
export type PulsightInternalCoreDomainAggregatorTraderBehavioralStats = {
|
|
551
|
+
active_hours_count?: number;
|
|
552
|
+
avg_buy_count_per_token?: number;
|
|
553
|
+
avg_holding_time_secs?: number;
|
|
554
|
+
avg_reactivity_secs?: number;
|
|
555
|
+
avg_sell_count_per_token?: number;
|
|
556
|
+
median_buy_count_per_token?: number;
|
|
557
|
+
median_holding_time_secs?: number;
|
|
558
|
+
median_reactivity_secs?: number;
|
|
559
|
+
median_sell_count_per_token?: number;
|
|
560
|
+
oldest_trade_at?: string;
|
|
561
|
+
profit_per_trade_lamports?: number;
|
|
562
|
+
pubkey?: string;
|
|
563
|
+
rebalancing_ratio?: number;
|
|
564
|
+
total_volume_lamports?: number;
|
|
565
|
+
window?: PulsightInternalCoreDomainAggregatorWindow;
|
|
566
|
+
};
|
|
567
|
+
export type PulsightInternalCoreDomainAggregatorTraderPeriodStatsRow = {
|
|
568
|
+
/**
|
|
569
|
+
* ArbTxRatio is the fraction (0..1) of the window's swaps that were
|
|
570
|
+
* arbitrage txs (is_arb). 0 when the window has no swaps.
|
|
571
|
+
*/
|
|
572
|
+
arb_tx_ratio?: number;
|
|
573
|
+
buy_amount_lamports?: number;
|
|
574
|
+
buy_sell_ratio?: number;
|
|
575
|
+
/**
|
|
576
|
+
* DidntBuySells / SoldGtBoughtSells count the window's uncovered
|
|
577
|
+
* sells: countIf(sold_without_buy) and countIf(sold_more_than_bought)
|
|
578
|
+
* over `swaps`. Replaces the retired phantom proceeds split (CA
|
|
579
|
+
* migration 000018_remove_phantom_tracking).
|
|
580
|
+
*/
|
|
581
|
+
didnt_buy_sells?: number;
|
|
582
|
+
loss_profit?: number;
|
|
583
|
+
loss_sells?: number;
|
|
584
|
+
realized_profit?: number;
|
|
585
|
+
sell_amount_lamports?: number;
|
|
586
|
+
sold_gt_bought_sells?: number;
|
|
587
|
+
swap_count?: number;
|
|
588
|
+
token_num?: number;
|
|
589
|
+
/**
|
|
590
|
+
* Count fields are int64, not int: periodStatsOne casts them with
|
|
591
|
+
* toInt64() in SQL, and clickhouse-go scans an Int64 column only into
|
|
592
|
+
* *int64 (it rejects *int with code-typed "try using *int64"). JSON
|
|
593
|
+
* serialisation is identical either way.
|
|
594
|
+
*/
|
|
595
|
+
total_buys?: number;
|
|
596
|
+
total_fees?: number;
|
|
597
|
+
total_sells?: number;
|
|
598
|
+
trader?: string;
|
|
599
|
+
win_profit?: number;
|
|
600
|
+
win_sells?: number;
|
|
601
|
+
window_label?: string;
|
|
602
|
+
winrate?: number;
|
|
603
|
+
};
|
|
604
|
+
export type PulsightInternalCoreDomainAggregatorWindow = '1d' | '7d' | '30d' | 'all';
|
|
605
|
+
export type PulsightInternalCoreDomainApikeyKey = {
|
|
606
|
+
created_at?: string;
|
|
607
|
+
expires_at?: string;
|
|
608
|
+
id?: string;
|
|
609
|
+
last_used_at?: string;
|
|
610
|
+
name?: string;
|
|
611
|
+
prefix?: string;
|
|
612
|
+
revoked_at?: string;
|
|
613
|
+
scopes?: Array<PulsightInternalCoreDomainApikeyScope>;
|
|
614
|
+
user_id?: string;
|
|
615
|
+
};
|
|
616
|
+
export type PulsightInternalCoreDomainApikeyScope = 'data:read' | 'backtest:run' | 'strategy:read' | 'strategy:write';
|
|
617
|
+
export type PulsightInternalCoreDomainCreditPool = 'api';
|
|
618
|
+
export type PulsightInternalCoreDomainCreditReason = 'grant' | 'consume' | 'refund' | 'adjust' | 'referral_bonus';
|
|
619
|
+
export type PulsightInternalCoreDomainCreditTransaction = {
|
|
620
|
+
created_at?: string;
|
|
621
|
+
delta?: number;
|
|
622
|
+
id?: string;
|
|
623
|
+
pool?: PulsightInternalCoreDomainCreditPool;
|
|
624
|
+
reason?: PulsightInternalCoreDomainCreditReason;
|
|
625
|
+
ref?: string;
|
|
626
|
+
user_id?: string;
|
|
627
|
+
};
|
|
628
|
+
export type PulsightInternalCoreDomainStrategyComparisonOp = 'gt' | 'gte' | 'lt' | 'lte' | 'eq';
|
|
629
|
+
export type PulsightInternalCoreDomainStrategyEdge = {
|
|
630
|
+
from?: string;
|
|
631
|
+
port?: PulsightInternalCoreDomainStrategyEdgePort;
|
|
632
|
+
to?: string;
|
|
633
|
+
};
|
|
634
|
+
export type PulsightInternalCoreDomainStrategyEdgePort = 'default' | 'cond' | 'then' | 'else';
|
|
635
|
+
export type PulsightInternalCoreDomainStrategyEventKind = 'freeze_renounced' | 'mint_renounced' | 'lp_burned' | 'dev_sold';
|
|
636
|
+
export type PulsightInternalCoreDomainStrategyGlobalConstraints = {
|
|
637
|
+
max_buy_sol?: number;
|
|
638
|
+
/**
|
|
639
|
+
* MaxBuysPerOpenPosition is the max number of buys (initial open + adds)
|
|
640
|
+
* allowed within ONE open position. 0 ⇒ 1 — the historical single-buy-
|
|
641
|
+
* per-position behaviour; read it through EffectiveMaxBuysPerOpenPosition.
|
|
642
|
+
* Raise it above 1 to enable DCA / pyramiding.
|
|
643
|
+
*/
|
|
644
|
+
max_buys_per_open_position?: number;
|
|
645
|
+
max_buys_per_token_per_hour?: number;
|
|
646
|
+
max_buys_per_token_per_minute?: number;
|
|
647
|
+
/**
|
|
648
|
+
* MaxPositionExposureSol caps the cumulative cost basis (SOL spent) of a
|
|
649
|
+
* single open position. 0 ⇒ unlimited. An add that would push the open
|
|
650
|
+
* position's exposure over this cap is skipped.
|
|
651
|
+
*/
|
|
652
|
+
max_position_exposure_sol?: number;
|
|
653
|
+
min_buy_sol?: number;
|
|
654
|
+
};
|
|
655
|
+
export type PulsightInternalCoreDomainStrategyNode = {
|
|
656
|
+
id?: string;
|
|
657
|
+
kind?: PulsightInternalCoreDomainStrategyNodeKind;
|
|
658
|
+
label?: string;
|
|
659
|
+
};
|
|
660
|
+
export type PulsightInternalCoreDomainStrategyNodeKind = {
|
|
661
|
+
[key: string]: unknown;
|
|
662
|
+
};
|
|
663
|
+
export type PulsightInternalCoreDomainStrategyRecord = {
|
|
664
|
+
created_at?: string;
|
|
665
|
+
/**
|
|
666
|
+
* Config is the visual node-graph DSL. JSON-serialised as `def`
|
|
667
|
+
* to match the frontend contract (pulsight/new-front/src/api/
|
|
668
|
+
* types.ts::StrategyRecord.def). The DB column is still `config`
|
|
669
|
+
* — only the wire field name differs. Renaming the Go field would
|
|
670
|
+
* churn the StrategyStore + service signatures without benefit.
|
|
671
|
+
*/
|
|
672
|
+
def?: PulsightInternalCoreDomainStrategyStrategyDef;
|
|
673
|
+
deleted_at?: string;
|
|
674
|
+
description?: string;
|
|
675
|
+
id?: string;
|
|
676
|
+
name?: string;
|
|
677
|
+
updated_at?: string;
|
|
678
|
+
user_id?: string;
|
|
679
|
+
};
|
|
680
|
+
export type PulsightInternalCoreDomainStrategyStrategyDef = {
|
|
681
|
+
constraints?: PulsightInternalCoreDomainStrategyGlobalConstraints;
|
|
682
|
+
entry?: PulsightInternalCoreDomainStrategySubGraph;
|
|
683
|
+
exit?: PulsightInternalCoreDomainStrategySubGraph;
|
|
684
|
+
};
|
|
685
|
+
export type PulsightInternalCoreDomainStrategySubGraph = {
|
|
686
|
+
edges?: Array<PulsightInternalCoreDomainStrategyEdge>;
|
|
687
|
+
nodes?: Array<PulsightInternalCoreDomainStrategyNode>;
|
|
688
|
+
};
|
|
689
|
+
export type PulsightInternalCoreDomainStrategyVenueId = 'solana' | 'hyperliquid' | 'polymarket';
|
|
690
|
+
export type PulsightInternalCoreDomainSubscriptionSubscriptionTier = 'free' | 'tier1' | 'tier2' | 'tier3' | 'enterprise';
|
|
691
|
+
export type PulsightInternalCoreDomainTraderDailyProfit = {
|
|
692
|
+
buy_amount_usd?: number;
|
|
693
|
+
created_at?: string;
|
|
694
|
+
date?: string;
|
|
695
|
+
id?: string;
|
|
696
|
+
loss_profit?: number;
|
|
697
|
+
loss_sells?: number;
|
|
698
|
+
sell_amount_usd?: number;
|
|
699
|
+
total_buys?: number;
|
|
700
|
+
total_profit?: number;
|
|
701
|
+
total_sells?: number;
|
|
702
|
+
trader_id?: string;
|
|
703
|
+
win_profit?: number;
|
|
704
|
+
win_sells?: number;
|
|
705
|
+
};
|
|
706
|
+
export type PulsightInternalCoreDomainTraderFilter = {
|
|
707
|
+
created_at?: string;
|
|
708
|
+
filters?: {
|
|
709
|
+
[key: string]: unknown;
|
|
710
|
+
};
|
|
711
|
+
id?: string;
|
|
712
|
+
is_default?: boolean;
|
|
713
|
+
name?: string;
|
|
714
|
+
updated_at?: string;
|
|
715
|
+
user_id?: string;
|
|
716
|
+
};
|
|
717
|
+
export type PulsightInternalCoreDomainTraderPnl = {
|
|
718
|
+
/**
|
|
719
|
+
* Position
|
|
720
|
+
*/
|
|
721
|
+
balance?: number;
|
|
722
|
+
/**
|
|
723
|
+
* Activity
|
|
724
|
+
*/
|
|
725
|
+
buy_tx_count?: number;
|
|
726
|
+
created_at?: string;
|
|
727
|
+
id?: string;
|
|
728
|
+
last_active_timestamp?: number;
|
|
729
|
+
/**
|
|
730
|
+
* Timing
|
|
731
|
+
*/
|
|
732
|
+
open_timestamp?: number;
|
|
733
|
+
realized_profit?: number;
|
|
734
|
+
sell_tx_count?: number;
|
|
735
|
+
start_holding_at?: number;
|
|
736
|
+
/**
|
|
737
|
+
* Token info
|
|
738
|
+
*/
|
|
739
|
+
token_address?: string;
|
|
740
|
+
token_logo?: string;
|
|
741
|
+
token_name?: string;
|
|
742
|
+
token_price?: number;
|
|
743
|
+
token_symbol?: string;
|
|
744
|
+
total_profit?: number;
|
|
745
|
+
total_profit_pnl?: number;
|
|
746
|
+
trader_id?: string;
|
|
747
|
+
unrealized_profit?: number;
|
|
748
|
+
updated_at?: string;
|
|
749
|
+
usd_value?: number;
|
|
750
|
+
};
|
|
751
|
+
export type PulsightInternalCoreDomainTraderTag = {
|
|
752
|
+
created_at?: string;
|
|
753
|
+
description?: string;
|
|
754
|
+
id?: string;
|
|
755
|
+
name?: string;
|
|
756
|
+
source?: PulsightInternalCoreDomainTraderTagSource;
|
|
757
|
+
};
|
|
758
|
+
export type PulsightInternalCoreDomainTraderTagSource = 'computed' | 'manual' | 'aggregator';
|
|
759
|
+
export type PulsightInternalCoreDomainTraderTrader = {
|
|
760
|
+
active_hours_count?: number;
|
|
761
|
+
arb_tx_ratio_30d?: number;
|
|
762
|
+
arb_tx_ratio_7d?: number;
|
|
763
|
+
avatar?: string;
|
|
764
|
+
/**
|
|
765
|
+
* Per-token buy/sell counts
|
|
766
|
+
*/
|
|
767
|
+
avg_buy_count_per_token?: number;
|
|
768
|
+
/**
|
|
769
|
+
* First-buy reactivity (seconds after token launch)
|
|
770
|
+
*/
|
|
771
|
+
avg_first_buy_reactivity?: number;
|
|
772
|
+
/**
|
|
773
|
+
* Holding time (seconds)
|
|
774
|
+
*/
|
|
775
|
+
avg_holding_time?: number;
|
|
776
|
+
avg_realized_profit_30d?: number;
|
|
777
|
+
/**
|
|
778
|
+
* Realized profit per-mint averages / medians. UNIT: lamports
|
|
779
|
+
* (frontend FormattedSol divides by 1e9 on display).
|
|
780
|
+
*/
|
|
781
|
+
avg_realized_profit_7d?: number;
|
|
782
|
+
avg_sell_count_per_token?: number;
|
|
783
|
+
buy_30d?: number;
|
|
784
|
+
buy_7d?: number;
|
|
785
|
+
buy_sell_ratio_30d?: number;
|
|
786
|
+
/**
|
|
787
|
+
* Computed ratios
|
|
788
|
+
*/
|
|
789
|
+
buy_sell_ratio_7d?: number;
|
|
790
|
+
buy_size_cv?: number;
|
|
791
|
+
/**
|
|
792
|
+
* "sol" | "eth"
|
|
793
|
+
*/
|
|
794
|
+
chain?: string;
|
|
795
|
+
created_at?: string;
|
|
796
|
+
daily_profits?: Array<PulsightInternalCoreDomainTraderDailyProfit>;
|
|
797
|
+
didnt_buy_sells_30d?: number;
|
|
798
|
+
/**
|
|
799
|
+
* Uncovered-sell counters for the window (CA migration 000018):
|
|
800
|
+
* sells with no observed buy of the mint / sells exceeding the
|
|
801
|
+
* observed bought balance.
|
|
802
|
+
*/
|
|
803
|
+
didnt_buy_sells_7d?: number;
|
|
804
|
+
dust_tx_ratio?: number;
|
|
805
|
+
id?: string;
|
|
806
|
+
is_favorite?: boolean;
|
|
807
|
+
/**
|
|
808
|
+
* Activity
|
|
809
|
+
*/
|
|
810
|
+
last_active_timestamp?: number;
|
|
811
|
+
median_buy_count_per_token?: number;
|
|
812
|
+
median_first_buy_reactivity?: number;
|
|
813
|
+
median_holding_time?: number;
|
|
814
|
+
median_realized_profit_30d?: number;
|
|
815
|
+
median_realized_profit_7d?: number;
|
|
816
|
+
median_sell_count_per_token?: number;
|
|
817
|
+
mm_score?: number;
|
|
818
|
+
/**
|
|
819
|
+
* Identifiers / social
|
|
820
|
+
*/
|
|
821
|
+
name?: string;
|
|
822
|
+
oldest_trade_at?: number;
|
|
823
|
+
pnl_0x2x_num_30d?: number;
|
|
824
|
+
/**
|
|
825
|
+
* 0x to 2x
|
|
826
|
+
*/
|
|
827
|
+
pnl_0x2x_num_7d?: number;
|
|
828
|
+
pnl_2x5x_num_30d?: number;
|
|
829
|
+
/**
|
|
830
|
+
* 2x to 5x
|
|
831
|
+
*/
|
|
832
|
+
pnl_2x5x_num_7d?: number;
|
|
833
|
+
pnl_gt5x_num_30d?: number;
|
|
834
|
+
/**
|
|
835
|
+
* > 5x
|
|
836
|
+
*/
|
|
837
|
+
pnl_gt5x_num_7d?: number;
|
|
838
|
+
/**
|
|
839
|
+
* PnL distribution buckets — 30d
|
|
840
|
+
*/
|
|
841
|
+
pnl_lt_nd5_num_30d?: number;
|
|
842
|
+
/**
|
|
843
|
+
* PnL distribution buckets — 7d
|
|
844
|
+
*/
|
|
845
|
+
pnl_lt_nd5_num_7d?: number;
|
|
846
|
+
pnl_nd50x_num_30d?: number;
|
|
847
|
+
/**
|
|
848
|
+
* -5x to 0x
|
|
849
|
+
*/
|
|
850
|
+
pnl_nd50x_num_7d?: number;
|
|
851
|
+
pnls?: Array<PulsightInternalCoreDomainTraderPnl>;
|
|
852
|
+
profit_per_trade?: number;
|
|
853
|
+
realized_profit?: number;
|
|
854
|
+
/**
|
|
855
|
+
* 30-day period
|
|
856
|
+
*/
|
|
857
|
+
realized_profit_30d?: number;
|
|
858
|
+
/**
|
|
859
|
+
* 7-day period. UNIT for realized_profit_*: lamports.
|
|
860
|
+
*/
|
|
861
|
+
realized_profit_7d?: number;
|
|
862
|
+
realized_profit_pnl_30d?: number;
|
|
863
|
+
realized_profit_pnl_7d?: number;
|
|
864
|
+
rebalancing_ratio?: number;
|
|
865
|
+
risk_level?: string;
|
|
866
|
+
/**
|
|
867
|
+
* Risk assessment
|
|
868
|
+
*/
|
|
869
|
+
risk_score?: number;
|
|
870
|
+
sell_30d?: number;
|
|
871
|
+
sell_7d?: number;
|
|
872
|
+
/**
|
|
873
|
+
* Balances. UNIT: lamports (BIGINT, held as *float64 for wire
|
|
874
|
+
* compatibility). The field name says "Sol" for historical reasons;
|
|
875
|
+
* the wire convention is lamports because the frontend's
|
|
876
|
+
* FormattedSol component divides by 1e9 itself.
|
|
877
|
+
*/
|
|
878
|
+
sol_balance?: number;
|
|
879
|
+
sold_gt_bought_sells_30d?: number;
|
|
880
|
+
sold_gt_bought_sells_7d?: number;
|
|
881
|
+
/**
|
|
882
|
+
* Relations (loaded on demand)
|
|
883
|
+
*/
|
|
884
|
+
tags?: Array<PulsightInternalCoreDomainTraderTag>;
|
|
885
|
+
token_num_30d?: number;
|
|
886
|
+
token_num_7d?: number;
|
|
887
|
+
/**
|
|
888
|
+
* Profit stats (all-time). UNIT: lamports (see SolBalance note).
|
|
889
|
+
*/
|
|
890
|
+
total_profit?: number;
|
|
891
|
+
total_profit_30d?: number;
|
|
892
|
+
total_profit_7d?: number;
|
|
893
|
+
total_profit_pnl_30d?: number;
|
|
894
|
+
total_profit_pnl_7d?: number;
|
|
895
|
+
total_value?: number;
|
|
896
|
+
total_volume_usd?: number;
|
|
897
|
+
trade_interval_cv?: number;
|
|
898
|
+
/**
|
|
899
|
+
* Market-maker detection
|
|
900
|
+
*/
|
|
901
|
+
trade_interval_mean?: number;
|
|
902
|
+
twitter_username?: string;
|
|
903
|
+
unrealized_profit?: number;
|
|
904
|
+
unrealized_profit_30d?: number;
|
|
905
|
+
unrealized_profit_7d?: number;
|
|
906
|
+
unrealized_profit_pnl_30d?: number;
|
|
907
|
+
unrealized_profit_pnl_7d?: number;
|
|
908
|
+
updated_at?: string;
|
|
909
|
+
wallet_address?: string;
|
|
910
|
+
winrate_30d?: number;
|
|
911
|
+
winrate_7d?: number;
|
|
912
|
+
};
|
|
913
|
+
export type PulsightInternalCorePortsInputApiKeyCreateRequest = {
|
|
914
|
+
expires_at?: string;
|
|
915
|
+
name?: string;
|
|
916
|
+
scopes?: Array<PulsightInternalCoreDomainApikeyScope>;
|
|
917
|
+
};
|
|
918
|
+
export type PulsightInternalCorePortsInputCreatedApiKey = {
|
|
919
|
+
key?: PulsightInternalCoreDomainApikeyKey;
|
|
920
|
+
plaintext?: string;
|
|
921
|
+
};
|
|
922
|
+
export type PulsightInternalCorePortsInputFilterCreateRequest = {
|
|
923
|
+
filters?: Array<number>;
|
|
924
|
+
is_default?: boolean;
|
|
925
|
+
name?: string;
|
|
926
|
+
};
|
|
927
|
+
export type PulsightInternalCorePortsInputFilterUpdateRequest = {
|
|
928
|
+
filters?: Array<number>;
|
|
929
|
+
is_default?: boolean;
|
|
930
|
+
name?: string;
|
|
931
|
+
};
|
|
932
|
+
export type PulsightInternalCorePortsInputPlanLimitsRead = {
|
|
933
|
+
can_use_tag_event_filters?: boolean;
|
|
934
|
+
can_view_full_data?: boolean;
|
|
935
|
+
max_filters?: number;
|
|
936
|
+
max_webhooks?: number;
|
|
937
|
+
};
|
|
938
|
+
export type PulsightInternalCorePortsInputSubscriptionInfo = {
|
|
939
|
+
expires_at?: string;
|
|
940
|
+
interval?: string;
|
|
941
|
+
is_active?: boolean;
|
|
942
|
+
/**
|
|
943
|
+
* Label/PriceUSD/Interval describe a bespoke ENTERPRISE plan; populated
|
|
944
|
+
* only for an active TierEnterprise user (from their custom entitlement)
|
|
945
|
+
* so the plan page can render the negotiated plan instead of a tier card.
|
|
946
|
+
*/
|
|
947
|
+
label?: string;
|
|
948
|
+
limits?: PulsightInternalCorePortsInputPlanLimitsRead;
|
|
949
|
+
price_usd?: number;
|
|
950
|
+
provider?: string;
|
|
951
|
+
started_at?: string;
|
|
952
|
+
status?: string;
|
|
953
|
+
tier?: PulsightInternalCoreDomainSubscriptionSubscriptionTier;
|
|
954
|
+
usage?: PulsightInternalCorePortsInputUsageCounts;
|
|
955
|
+
};
|
|
956
|
+
export type PulsightInternalCorePortsInputUsageCounts = {
|
|
957
|
+
filters?: number;
|
|
958
|
+
webhooks?: number;
|
|
959
|
+
};
|
|
960
|
+
export type PulsightInternalCorePortsInputUserPoolCredits = {
|
|
961
|
+
/**
|
|
962
|
+
* tier grant per cycle (the limit)
|
|
963
|
+
*/
|
|
964
|
+
allowance?: number;
|
|
965
|
+
/**
|
|
966
|
+
* total remaining = cycle balance + gift
|
|
967
|
+
*/
|
|
968
|
+
balance?: number;
|
|
969
|
+
/**
|
|
970
|
+
* Gifted is the persistent admin-gift reserve still available. It is
|
|
971
|
+
* spent down before the cycle allowance and survives tier changes.
|
|
972
|
+
* Cycle tier balance remaining = Balance − Gifted.
|
|
973
|
+
*/
|
|
974
|
+
gifted?: number;
|
|
975
|
+
period_end?: string;
|
|
976
|
+
period_start?: string;
|
|
977
|
+
pool?: PulsightInternalCoreDomainCreditPool;
|
|
978
|
+
/**
|
|
979
|
+
* Used is the real consumption this cycle (positive), summed from the
|
|
980
|
+
* ledger — not allowance−balance, which breaks once credits are gifted.
|
|
981
|
+
*/
|
|
982
|
+
used?: number;
|
|
983
|
+
};
|
|
984
|
+
export type PulsightInternalCoreUsecasesBacktestBacktestPosition = {
|
|
985
|
+
cost_basis_sol?: number;
|
|
986
|
+
exit_value_sol?: number;
|
|
987
|
+
/**
|
|
988
|
+
* FinalPriceSol is the last candle mid (SOL/token), for reference next to
|
|
989
|
+
* the discounted exit value.
|
|
990
|
+
*/
|
|
991
|
+
final_price_sol?: number;
|
|
992
|
+
mint?: string;
|
|
993
|
+
/**
|
|
994
|
+
* PoolState flags the exit liquidity used to value the position:
|
|
995
|
+
* "ok" (priced into a live pool), "drained" (pool empty → unrealizable,
|
|
996
|
+
* ~total loss), or "unknown" (no pool snapshot → valued at raw mid).
|
|
997
|
+
*/
|
|
998
|
+
pool_state?: string;
|
|
999
|
+
remaining_tokens?: number;
|
|
1000
|
+
unrealized_pnl_sol?: number;
|
|
1001
|
+
};
|
|
1002
|
+
export type PulsightInternalCoreUsecasesBacktestBacktestRecord = {
|
|
1003
|
+
created_at?: string;
|
|
1004
|
+
error?: string;
|
|
1005
|
+
finished_at?: string;
|
|
1006
|
+
id?: string;
|
|
1007
|
+
progress_note?: string;
|
|
1008
|
+
progress_pct?: number;
|
|
1009
|
+
scope?: PulsightInternalCoreUsecasesBacktestTokenScope;
|
|
1010
|
+
started_at?: string;
|
|
1011
|
+
starting_balance_sol?: number;
|
|
1012
|
+
status?: PulsightInternalCoreUsecasesBacktestBacktestStatus;
|
|
1013
|
+
strategy_id?: string;
|
|
1014
|
+
strategy_snapshot?: PulsightInternalCoreDomainStrategyStrategyDef;
|
|
1015
|
+
summary?: PulsightInternalCoreUsecasesBacktestBacktestSummary;
|
|
1016
|
+
target_trader?: string;
|
|
1017
|
+
time_from?: string;
|
|
1018
|
+
time_to?: string;
|
|
1019
|
+
timeframe?: PulsightInternalCoreDomainAggregatorTimeframe;
|
|
1020
|
+
user_id?: string;
|
|
1021
|
+
};
|
|
1022
|
+
export type PulsightInternalCoreUsecasesBacktestBacktestRequest = {
|
|
1023
|
+
scope?: PulsightInternalCoreUsecasesBacktestTokenScope;
|
|
1024
|
+
starting_balance_sol?: number;
|
|
1025
|
+
strategy_id?: string;
|
|
1026
|
+
time_range?: PulsightInternalCoreUsecasesBacktestTimeRange;
|
|
1027
|
+
timeframe?: PulsightInternalCoreDomainAggregatorTimeframe;
|
|
1028
|
+
/**
|
|
1029
|
+
* Venue selects the trading venue / chain for the run. Empty ⇒ solana
|
|
1030
|
+
* (back-compat). The runner gates chain-specific strategy nodes against
|
|
1031
|
+
* the venue's capabilities via StrategyDef.ValidateForVenue.
|
|
1032
|
+
*/
|
|
1033
|
+
venue?: PulsightInternalCoreDomainStrategyVenueId;
|
|
1034
|
+
};
|
|
1035
|
+
export type PulsightInternalCoreUsecasesBacktestBacktestStatus = 'pending' | 'running' | 'done' | 'failed' | 'cancelled';
|
|
1036
|
+
export type PulsightInternalCoreUsecasesBacktestBacktestSummary = {
|
|
1037
|
+
ending_balance_sol?: number;
|
|
1038
|
+
fees_paid_sol?: number;
|
|
1039
|
+
/**
|
|
1040
|
+
* HeldPositions is every mint still open at run end — the bags the
|
|
1041
|
+
* strategy never sold, valued at their liquidity-aware exit (see
|
|
1042
|
+
* BacktestPosition). Their UnrealizedPnlSol sums into UnrealizedPnlSol
|
|
1043
|
+
* above. Empty when the strategy closed everything (all "Sold all").
|
|
1044
|
+
* Additive JSONB field — pre-existing rows decode as nil.
|
|
1045
|
+
*/
|
|
1046
|
+
held_positions?: Array<PulsightInternalCoreUsecasesBacktestBacktestPosition>;
|
|
1047
|
+
losses?: number;
|
|
1048
|
+
max_drawdown_sol?: number;
|
|
1049
|
+
/**
|
|
1050
|
+
* Price-impact rollups, in percent of mid. "Our*" averages over every
|
|
1051
|
+
* simulated trade that had a pool snapshot; "Target*" averages over the
|
|
1052
|
+
* copy trades that mirrored a target swap 1:1 (same timestamp). Zero when
|
|
1053
|
+
* no trade contributed (e.g. an indicator-only strategy, or a run with no
|
|
1054
|
+
* pool data). Additive JSONB fields — pre-existing rows decode as 0.
|
|
1055
|
+
*/
|
|
1056
|
+
our_avg_price_impact_pct?: number;
|
|
1057
|
+
our_median_price_impact_pct?: number;
|
|
1058
|
+
realized_pnl_sol?: number;
|
|
1059
|
+
roi_pct?: number;
|
|
1060
|
+
/**
|
|
1061
|
+
* SimulationAssumptions is free-text notes about which real-world
|
|
1062
|
+
* cost components the simulator did NOT model (route hops, MEV,
|
|
1063
|
+
* partial fills, pre-trade gas estimation, etc.). Rendered
|
|
1064
|
+
* prominently on the result page so users don't read "won 4.2 SOL"
|
|
1065
|
+
* too literally.
|
|
1066
|
+
*/
|
|
1067
|
+
simulation_assumptions?: Array<string>;
|
|
1068
|
+
starting_balance_sol?: number;
|
|
1069
|
+
target_avg_price_impact_pct?: number;
|
|
1070
|
+
target_median_price_impact_pct?: number;
|
|
1071
|
+
tips_paid_sol?: number;
|
|
1072
|
+
total_pnl_sol?: number;
|
|
1073
|
+
trades?: number;
|
|
1074
|
+
unrealized_pnl_sol?: number;
|
|
1075
|
+
wins?: number;
|
|
1076
|
+
};
|
|
1077
|
+
export type PulsightInternalCoreUsecasesBacktestBacktestTrade = {
|
|
1078
|
+
backtest_id?: string;
|
|
1079
|
+
fee_sol?: number;
|
|
1080
|
+
idx?: number;
|
|
1081
|
+
mint?: string;
|
|
1082
|
+
pool_sol_at_trigger?: number;
|
|
1083
|
+
/**
|
|
1084
|
+
* PriceImpactPct is OUR own price impact on this fill, as a percent of the
|
|
1085
|
+
* mid price (size / pool_sol, the constant-product average-fill premium).
|
|
1086
|
+
* Nil when the engine had no pool snapshot at the tick (impact unknown →
|
|
1087
|
+
* pricing degraded to slippage-only). A buy moves price up, a sell down;
|
|
1088
|
+
* the magnitude is recorded either way.
|
|
1089
|
+
*/
|
|
1090
|
+
price_impact_pct?: number;
|
|
1091
|
+
price_per_token?: number;
|
|
1092
|
+
realized_pnl_sol?: number;
|
|
1093
|
+
side?: PulsightInternalCoreUsecasesBacktestSide;
|
|
1094
|
+
sol_amount?: number;
|
|
1095
|
+
source?: PulsightInternalCoreUsecasesBacktestTradeSource;
|
|
1096
|
+
/**
|
|
1097
|
+
* TargetPriceImpactPct is the MIRRORED trader's own price impact on the
|
|
1098
|
+
* swap we copied — set only on copy trades that executed at the same
|
|
1099
|
+
* timestamp as the target (a true 1:1 mirror), where the target's move is
|
|
1100
|
+
* folded into our fill price. Nil for emit trades and delayed copies.
|
|
1101
|
+
*/
|
|
1102
|
+
target_price_impact_pct?: number;
|
|
1103
|
+
tip_sol?: number;
|
|
1104
|
+
token_amount?: number;
|
|
1105
|
+
triggering_swap_sig?: string;
|
|
1106
|
+
ts?: string;
|
|
1107
|
+
};
|
|
1108
|
+
export type PulsightInternalCoreUsecasesBacktestEventPredicate = {
|
|
1109
|
+
event?: PulsightInternalCoreDomainStrategyEventKind;
|
|
1110
|
+
negate?: boolean;
|
|
1111
|
+
};
|
|
1112
|
+
export type PulsightInternalCoreUsecasesBacktestMetricPredicate = {
|
|
1113
|
+
metric?: PulsightInternalCoreUsecasesBacktestSelectionMetric;
|
|
1114
|
+
op?: PulsightInternalCoreDomainStrategyComparisonOp;
|
|
1115
|
+
value?: number;
|
|
1116
|
+
/**
|
|
1117
|
+
* Window — optional trailing window ending at the selection `to`. Ignored
|
|
1118
|
+
* for liquidity_sol (always the latest reserve).
|
|
1119
|
+
*/
|
|
1120
|
+
window?: PulsightInternalCoreUsecasesBacktestSelectionMetricWindow;
|
|
1121
|
+
};
|
|
1122
|
+
export type PulsightInternalCoreUsecasesBacktestPreviewMarker = {
|
|
1123
|
+
pool_sol_at_trigger?: number;
|
|
1124
|
+
/**
|
|
1125
|
+
* Price is the pessimistic execution price (slippage applied) so
|
|
1126
|
+
* the marker lines up with what a real run would have recorded.
|
|
1127
|
+
*/
|
|
1128
|
+
price?: number;
|
|
1129
|
+
side?: PulsightInternalCoreUsecasesBacktestSide;
|
|
1130
|
+
source?: PulsightInternalCoreUsecasesBacktestTradeSource;
|
|
1131
|
+
/**
|
|
1132
|
+
* TS is epoch seconds.
|
|
1133
|
+
*/
|
|
1134
|
+
ts?: number;
|
|
1135
|
+
};
|
|
1136
|
+
export type PulsightInternalCoreUsecasesBacktestPreviewRequest = {
|
|
1137
|
+
def?: PulsightInternalCoreDomainStrategyStrategyDef;
|
|
1138
|
+
mint?: string;
|
|
1139
|
+
time_range?: PulsightInternalCoreUsecasesBacktestTimeRange;
|
|
1140
|
+
timeframe?: PulsightInternalCoreDomainAggregatorTimeframe;
|
|
1141
|
+
};
|
|
1142
|
+
export type PulsightInternalCoreUsecasesBacktestPreviewResponse = {
|
|
1143
|
+
markers?: Array<PulsightInternalCoreUsecasesBacktestPreviewMarker>;
|
|
1144
|
+
simulation_assumptions?: Array<string>;
|
|
1145
|
+
};
|
|
1146
|
+
export type PulsightInternalCoreUsecasesBacktestSelectionFilter = {
|
|
1147
|
+
events?: Array<PulsightInternalCoreUsecasesBacktestEventPredicate>;
|
|
1148
|
+
metrics?: Array<PulsightInternalCoreUsecasesBacktestMetricPredicate>;
|
|
1149
|
+
};
|
|
1150
|
+
export type PulsightInternalCoreUsecasesBacktestSelectionMetric = 'liquidity_sol' | 'volume_sol' | 'price_change_pct' | 'swap_count';
|
|
1151
|
+
export type PulsightInternalCoreUsecasesBacktestSelectionMetricWindow = '5m' | '30m' | '1h' | '6h' | '12h';
|
|
1152
|
+
export type PulsightInternalCoreUsecasesBacktestSide = 'buy' | 'sell';
|
|
1153
|
+
export type PulsightInternalCoreUsecasesBacktestTimeRange = {
|
|
1154
|
+
from?: string;
|
|
1155
|
+
to?: string;
|
|
1156
|
+
};
|
|
1157
|
+
export type PulsightInternalCoreUsecasesBacktestTokenScope = {
|
|
1158
|
+
exclude?: PulsightInternalCoreUsecasesBacktestSelectionFilter;
|
|
1159
|
+
include?: PulsightInternalCoreUsecasesBacktestSelectionFilter;
|
|
1160
|
+
kind?: PulsightInternalCoreUsecasesBacktestTokenScopeKind;
|
|
1161
|
+
/**
|
|
1162
|
+
* MirrorsTraded + TraderTraded + Standalone (cap on selected mints).
|
|
1163
|
+
*/
|
|
1164
|
+
max_mints?: number;
|
|
1165
|
+
/**
|
|
1166
|
+
* SingleMint
|
|
1167
|
+
*/
|
|
1168
|
+
mint?: string;
|
|
1169
|
+
/**
|
|
1170
|
+
* Mints
|
|
1171
|
+
*/
|
|
1172
|
+
mints?: Array<string>;
|
|
1173
|
+
/**
|
|
1174
|
+
* TraderTraded only.
|
|
1175
|
+
*/
|
|
1176
|
+
trader?: string;
|
|
1177
|
+
/**
|
|
1178
|
+
* Standalone only — the point-in-time selection window + the
|
|
1179
|
+
* include / exclude ("unselect") predicate filters.
|
|
1180
|
+
*/
|
|
1181
|
+
window?: PulsightInternalCoreUsecasesBacktestTimeRange;
|
|
1182
|
+
};
|
|
1183
|
+
export type PulsightInternalCoreUsecasesBacktestTokenScopeKind = 'single_mint' | 'mints' | 'mirrors_traded' | 'standalone' | 'trader_traded';
|
|
1184
|
+
export type PulsightInternalCoreUsecasesBacktestTradeSource = 'copy_buy' | 'copy_sell' | 'emit_buy' | 'emit_sell';
|
|
1185
|
+
export type PulsightInternalCoreUsecasesTraderDailyProfitEntry = {
|
|
1186
|
+
date?: string;
|
|
1187
|
+
total_profit?: number;
|
|
1188
|
+
};
|
|
1189
|
+
export type PulsightInternalCoreUsecasesTraderDailyProfitListItem = {
|
|
1190
|
+
buy_amount_usd?: number;
|
|
1191
|
+
created_at?: string;
|
|
1192
|
+
date?: string;
|
|
1193
|
+
id?: string;
|
|
1194
|
+
loss_profit?: number;
|
|
1195
|
+
loss_sells?: number;
|
|
1196
|
+
sell_amount_usd?: number;
|
|
1197
|
+
total_buys?: number;
|
|
1198
|
+
total_profit?: number;
|
|
1199
|
+
total_sells?: number;
|
|
1200
|
+
trader_id?: string;
|
|
1201
|
+
win_profit?: number;
|
|
1202
|
+
win_sells?: number;
|
|
1203
|
+
};
|
|
1204
|
+
export type PulsightInternalCoreUsecasesTraderDailyProfitsResult = {
|
|
1205
|
+
items?: Array<PulsightInternalCoreUsecasesTraderDailyProfitListItem>;
|
|
1206
|
+
limit?: number;
|
|
1207
|
+
offset?: number;
|
|
1208
|
+
total?: number;
|
|
1209
|
+
};
|
|
1210
|
+
export type PulsightInternalCoreUsecasesTraderPnlSeriesPoint = {
|
|
1211
|
+
day?: string;
|
|
1212
|
+
profit?: number;
|
|
1213
|
+
};
|
|
1214
|
+
export type PulsightInternalCoreUsecasesTraderPnlSeriesResult = {
|
|
1215
|
+
points?: Array<PulsightInternalCoreUsecasesTraderPnlSeriesPoint>;
|
|
1216
|
+
window?: string;
|
|
1217
|
+
};
|
|
1218
|
+
export type PulsightInternalCoreUsecasesTraderTraderListItem = {
|
|
1219
|
+
active_hours_count?: number;
|
|
1220
|
+
arb_tx_ratio_30d?: number;
|
|
1221
|
+
arb_tx_ratio_7d?: number;
|
|
1222
|
+
avg_buy_count_per_token?: number;
|
|
1223
|
+
avg_first_buy_reactivity?: number;
|
|
1224
|
+
avg_holding_time?: number;
|
|
1225
|
+
avg_realized_profit_30d?: number;
|
|
1226
|
+
avg_realized_profit_7d?: number;
|
|
1227
|
+
avg_sell_count_per_token?: number;
|
|
1228
|
+
behavioral_30d?: PulsightInternalCoreDomainAggregatorTraderBehavioralStats;
|
|
1229
|
+
/**
|
|
1230
|
+
* Behavioral7d / Behavioral30d are the two rows the
|
|
1231
|
+
* "Behavioural" panel toggles between (7d and 30d are the only
|
|
1232
|
+
* supported windows). nil → panel renders its empty state for that
|
|
1233
|
+
* window.
|
|
1234
|
+
*/
|
|
1235
|
+
behavioral_7d?: PulsightInternalCoreDomainAggregatorTraderBehavioralStats;
|
|
1236
|
+
buy_30d?: number;
|
|
1237
|
+
buy_7d?: number;
|
|
1238
|
+
buy_sell_ratio_30d?: number;
|
|
1239
|
+
buy_sell_ratio_7d?: number;
|
|
1240
|
+
buy_size_cv?: number;
|
|
1241
|
+
chain?: string;
|
|
1242
|
+
created_at?: string;
|
|
1243
|
+
daily_profit_30d?: Array<PulsightInternalCoreUsecasesTraderDailyProfitEntry>;
|
|
1244
|
+
daily_profit_7d?: Array<PulsightInternalCoreUsecasesTraderDailyProfitEntry>;
|
|
1245
|
+
didnt_buy_sells_30d?: number;
|
|
1246
|
+
/**
|
|
1247
|
+
* Uncovered-sell counters (CA migration 000018): sells with no
|
|
1248
|
+
* observed buy of the mint / sells exceeding the observed bought
|
|
1249
|
+
* balance, scoped to the window.
|
|
1250
|
+
*/
|
|
1251
|
+
didnt_buy_sells_7d?: number;
|
|
1252
|
+
dust_tx_ratio?: number;
|
|
1253
|
+
has_avatar?: boolean;
|
|
1254
|
+
/**
|
|
1255
|
+
* HoldingPnlLamports is the wallet's current unrealised PnL across
|
|
1256
|
+
* all open positions, in lamports. Nil when CA has no live price
|
|
1257
|
+
* quote for any of the held mints.
|
|
1258
|
+
*/
|
|
1259
|
+
holding_pnl_lamports?: number;
|
|
1260
|
+
id?: string;
|
|
1261
|
+
is_favorite?: boolean;
|
|
1262
|
+
last_active_timestamp?: number;
|
|
1263
|
+
median_buy_count_per_token?: number;
|
|
1264
|
+
median_first_buy_reactivity?: number;
|
|
1265
|
+
median_holding_time?: number;
|
|
1266
|
+
median_realized_profit_30d?: number;
|
|
1267
|
+
median_realized_profit_7d?: number;
|
|
1268
|
+
median_sell_count_per_token?: number;
|
|
1269
|
+
mm_score?: number;
|
|
1270
|
+
name?: string;
|
|
1271
|
+
oldest_trade_at?: number;
|
|
1272
|
+
/**
|
|
1273
|
+
* Periods is one row per canonical UTC-aligned window (1d, 7d, 30d,
|
|
1274
|
+
* all) from CA's `trader_period_stats_for`. Drives the
|
|
1275
|
+
* "Calendar-based UTC windows" panel on the trader-detail page.
|
|
1276
|
+
*/
|
|
1277
|
+
periods?: Array<PulsightInternalCoreDomainAggregatorTraderPeriodStatsRow>;
|
|
1278
|
+
pnl_0x_2x_num_30d?: number;
|
|
1279
|
+
pnl_0x_2x_num_7d?: number;
|
|
1280
|
+
pnl_2x_5x_num_30d?: number;
|
|
1281
|
+
pnl_2x_5x_num_7d?: number;
|
|
1282
|
+
/**
|
|
1283
|
+
* PnlDistribution is the 5-bucket realised-PnL distribution for
|
|
1284
|
+
* the request window: [<-50%, -50–0%, 0–2×, 2–5×, >5×]. Nil when
|
|
1285
|
+
* the snapshot wasn't inlined.
|
|
1286
|
+
*/
|
|
1287
|
+
pnl_distribution?: Array<number>;
|
|
1288
|
+
pnl_gt_5x_num_30d?: number;
|
|
1289
|
+
pnl_gt_5x_num_7d?: number;
|
|
1290
|
+
pnl_lt_nd5_num_30d?: number;
|
|
1291
|
+
pnl_lt_nd5_num_7d?: number;
|
|
1292
|
+
pnl_nd5_0x_num_30d?: number;
|
|
1293
|
+
pnl_nd5_0x_num_7d?: number;
|
|
1294
|
+
/**
|
|
1295
|
+
* PnlSparkline7d is the 7-day realised-PnL series, oldest first,
|
|
1296
|
+
* expressed in lamports per day on the wire (matches CA's BIGINT
|
|
1297
|
+
* storage and the FormattedSol contract elsewhere). Nil when the
|
|
1298
|
+
* snapshot wasn't inlined.
|
|
1299
|
+
*/
|
|
1300
|
+
pnl_sparkline_7d?: Array<number>;
|
|
1301
|
+
profit_per_trade?: number;
|
|
1302
|
+
realized_profit?: number;
|
|
1303
|
+
realized_profit_30d?: number;
|
|
1304
|
+
realized_profit_7d?: number;
|
|
1305
|
+
realized_profit_pnl_30d?: number;
|
|
1306
|
+
realized_profit_pnl_7d?: number;
|
|
1307
|
+
rebalancing_ratio?: number;
|
|
1308
|
+
risk_level?: string;
|
|
1309
|
+
risk_score?: number;
|
|
1310
|
+
sell_30d?: number;
|
|
1311
|
+
sell_7d?: number;
|
|
1312
|
+
sol_balance?: number;
|
|
1313
|
+
sold_gt_bought_sells_30d?: number;
|
|
1314
|
+
sold_gt_bought_sells_7d?: number;
|
|
1315
|
+
tags?: Array<string>;
|
|
1316
|
+
token_num_30d?: number;
|
|
1317
|
+
token_num_7d?: number;
|
|
1318
|
+
/**
|
|
1319
|
+
* TokensCreated / TokensGraduated are the wallet's lifetime
|
|
1320
|
+
* creator-token counts (distinct mints created, and the subset that
|
|
1321
|
+
* graduated). Inlined from the folded snapshot; nil when the snapshot
|
|
1322
|
+
* wasn't inlined. Mirror the creator_tokens_* leaderboard filters.
|
|
1323
|
+
*/
|
|
1324
|
+
tokens_created?: number;
|
|
1325
|
+
tokens_graduated?: number;
|
|
1326
|
+
total_profit?: number;
|
|
1327
|
+
total_profit_30d?: number;
|
|
1328
|
+
total_profit_7d?: number;
|
|
1329
|
+
total_profit_pnl_30d?: number;
|
|
1330
|
+
total_profit_pnl_7d?: number;
|
|
1331
|
+
total_value?: number;
|
|
1332
|
+
total_volume_usd?: number;
|
|
1333
|
+
trade_interval_cv?: number;
|
|
1334
|
+
trade_interval_mean?: number;
|
|
1335
|
+
twitter_username?: string;
|
|
1336
|
+
unrealized_profit?: number;
|
|
1337
|
+
unrealized_profit_30d?: number;
|
|
1338
|
+
unrealized_profit_7d?: number;
|
|
1339
|
+
unrealized_profit_pnl_30d?: number;
|
|
1340
|
+
unrealized_profit_pnl_7d?: number;
|
|
1341
|
+
updated_at?: string;
|
|
1342
|
+
wallet_address?: string;
|
|
1343
|
+
winrate_30d?: number;
|
|
1344
|
+
winrate_7d?: number;
|
|
1345
|
+
};
|
|
1346
|
+
export type PulsightInternalCoreUsecasesTraderTraderListResult = {
|
|
1347
|
+
items?: Array<PulsightInternalCoreUsecasesTraderTraderListItem>;
|
|
1348
|
+
limit?: number;
|
|
1349
|
+
next_cursor_pubkey?: string;
|
|
1350
|
+
next_cursor_value?: number;
|
|
1351
|
+
offset?: number;
|
|
1352
|
+
total?: number;
|
|
1353
|
+
};
|
|
1354
|
+
export type GetBacktestsData = {
|
|
1355
|
+
body?: never;
|
|
1356
|
+
path?: never;
|
|
1357
|
+
query?: {
|
|
1358
|
+
/**
|
|
1359
|
+
* Strategy ID (when called via /api/backtests)
|
|
1360
|
+
*/
|
|
1361
|
+
strategy_id?: string;
|
|
1362
|
+
};
|
|
1363
|
+
url: '/api/backtests';
|
|
1364
|
+
};
|
|
1365
|
+
export type GetBacktestsErrors = {
|
|
1366
|
+
/**
|
|
1367
|
+
* Bad Request
|
|
1368
|
+
*/
|
|
1369
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1370
|
+
};
|
|
1371
|
+
export type GetBacktestsError = GetBacktestsErrors[keyof GetBacktestsErrors];
|
|
1372
|
+
export type GetBacktestsResponses = {
|
|
1373
|
+
/**
|
|
1374
|
+
* OK
|
|
1375
|
+
*/
|
|
1376
|
+
200: Array<PulsightInternalCoreUsecasesBacktestBacktestRecord>;
|
|
1377
|
+
};
|
|
1378
|
+
export type GetBacktestsResponse = GetBacktestsResponses[keyof GetBacktestsResponses];
|
|
1379
|
+
export type PostBacktestsData = {
|
|
1380
|
+
/**
|
|
1381
|
+
* Backtest request
|
|
1382
|
+
*/
|
|
1383
|
+
body: PulsightInternalCoreUsecasesBacktestBacktestRequest;
|
|
1384
|
+
path?: never;
|
|
1385
|
+
query?: never;
|
|
1386
|
+
url: '/api/backtests';
|
|
1387
|
+
};
|
|
1388
|
+
export type PostBacktestsErrors = {
|
|
1389
|
+
/**
|
|
1390
|
+
* Bad Request
|
|
1391
|
+
*/
|
|
1392
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1393
|
+
/**
|
|
1394
|
+
* Not Found
|
|
1395
|
+
*/
|
|
1396
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1397
|
+
};
|
|
1398
|
+
export type PostBacktestsError = PostBacktestsErrors[keyof PostBacktestsErrors];
|
|
1399
|
+
export type PostBacktestsResponses = {
|
|
1400
|
+
/**
|
|
1401
|
+
* Accepted
|
|
1402
|
+
*/
|
|
1403
|
+
202: PulsightInternalCoreUsecasesBacktestBacktestRecord;
|
|
1404
|
+
};
|
|
1405
|
+
export type PostBacktestsResponse = PostBacktestsResponses[keyof PostBacktestsResponses];
|
|
1406
|
+
export type GetBacktestsLimitsData = {
|
|
1407
|
+
body?: never;
|
|
1408
|
+
path?: never;
|
|
1409
|
+
query?: never;
|
|
1410
|
+
url: '/api/backtests/limits';
|
|
1411
|
+
};
|
|
1412
|
+
export type GetBacktestsLimitsErrors = {
|
|
1413
|
+
/**
|
|
1414
|
+
* Unauthorized
|
|
1415
|
+
*/
|
|
1416
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1417
|
+
};
|
|
1418
|
+
export type GetBacktestsLimitsError = GetBacktestsLimitsErrors[keyof GetBacktestsLimitsErrors];
|
|
1419
|
+
export type GetBacktestsLimitsResponses = {
|
|
1420
|
+
/**
|
|
1421
|
+
* OK
|
|
1422
|
+
*/
|
|
1423
|
+
200: InternalAdaptersPrimaryHttpHandlerBacktestSettingsResponse;
|
|
1424
|
+
};
|
|
1425
|
+
export type GetBacktestsLimitsResponse = GetBacktestsLimitsResponses[keyof GetBacktestsLimitsResponses];
|
|
1426
|
+
export type DeleteBacktestsByIdData = {
|
|
1427
|
+
body?: never;
|
|
1428
|
+
path: {
|
|
1429
|
+
/**
|
|
1430
|
+
* Backtest ID
|
|
1431
|
+
*/
|
|
1432
|
+
id: string;
|
|
1433
|
+
};
|
|
1434
|
+
query?: never;
|
|
1435
|
+
url: '/api/backtests/{id}';
|
|
1436
|
+
};
|
|
1437
|
+
export type DeleteBacktestsByIdResponses = {
|
|
1438
|
+
/**
|
|
1439
|
+
* No Content
|
|
1440
|
+
*/
|
|
1441
|
+
204: void;
|
|
1442
|
+
};
|
|
1443
|
+
export type DeleteBacktestsByIdResponse = DeleteBacktestsByIdResponses[keyof DeleteBacktestsByIdResponses];
|
|
1444
|
+
export type GetBacktestsByIdData = {
|
|
1445
|
+
body?: never;
|
|
1446
|
+
path: {
|
|
1447
|
+
/**
|
|
1448
|
+
* Backtest ID
|
|
1449
|
+
*/
|
|
1450
|
+
id: string;
|
|
1451
|
+
};
|
|
1452
|
+
query?: never;
|
|
1453
|
+
url: '/api/backtests/{id}';
|
|
1454
|
+
};
|
|
1455
|
+
export type GetBacktestsByIdErrors = {
|
|
1456
|
+
/**
|
|
1457
|
+
* Not Found
|
|
1458
|
+
*/
|
|
1459
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1460
|
+
};
|
|
1461
|
+
export type GetBacktestsByIdError = GetBacktestsByIdErrors[keyof GetBacktestsByIdErrors];
|
|
1462
|
+
export type GetBacktestsByIdResponses = {
|
|
1463
|
+
/**
|
|
1464
|
+
* OK
|
|
1465
|
+
*/
|
|
1466
|
+
200: PulsightInternalCoreUsecasesBacktestBacktestRecord;
|
|
1467
|
+
};
|
|
1468
|
+
export type GetBacktestsByIdResponse = GetBacktestsByIdResponses[keyof GetBacktestsByIdResponses];
|
|
1469
|
+
export type GetBacktestsByIdTradesData = {
|
|
1470
|
+
body?: never;
|
|
1471
|
+
path: {
|
|
1472
|
+
/**
|
|
1473
|
+
* Backtest ID
|
|
1474
|
+
*/
|
|
1475
|
+
id: string;
|
|
1476
|
+
};
|
|
1477
|
+
query?: {
|
|
1478
|
+
/**
|
|
1479
|
+
* Page size (default 200, max 2000)
|
|
1480
|
+
*/
|
|
1481
|
+
limit?: number;
|
|
1482
|
+
/**
|
|
1483
|
+
* Page offset (default 0)
|
|
1484
|
+
*/
|
|
1485
|
+
offset?: number;
|
|
1486
|
+
};
|
|
1487
|
+
url: '/api/backtests/{id}/trades';
|
|
1488
|
+
};
|
|
1489
|
+
export type GetBacktestsByIdTradesErrors = {
|
|
1490
|
+
/**
|
|
1491
|
+
* Bad Request
|
|
1492
|
+
*/
|
|
1493
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1494
|
+
};
|
|
1495
|
+
export type GetBacktestsByIdTradesError = GetBacktestsByIdTradesErrors[keyof GetBacktestsByIdTradesErrors];
|
|
1496
|
+
export type GetBacktestsByIdTradesResponses = {
|
|
1497
|
+
/**
|
|
1498
|
+
* OK
|
|
1499
|
+
*/
|
|
1500
|
+
200: Array<PulsightInternalCoreUsecasesBacktestBacktestTrade>;
|
|
1501
|
+
};
|
|
1502
|
+
export type GetBacktestsByIdTradesResponse = GetBacktestsByIdTradesResponses[keyof GetBacktestsByIdTradesResponses];
|
|
1503
|
+
export type GetHealthData = {
|
|
1504
|
+
body?: never;
|
|
1505
|
+
path?: never;
|
|
1506
|
+
query?: never;
|
|
1507
|
+
url: '/api/health';
|
|
1508
|
+
};
|
|
1509
|
+
export type GetHealthErrors = {
|
|
1510
|
+
/**
|
|
1511
|
+
* Service Unavailable
|
|
1512
|
+
*/
|
|
1513
|
+
503: {
|
|
1514
|
+
[key: string]: unknown;
|
|
1515
|
+
};
|
|
1516
|
+
};
|
|
1517
|
+
export type GetHealthError = GetHealthErrors[keyof GetHealthErrors];
|
|
1518
|
+
export type GetHealthResponses = {
|
|
1519
|
+
/**
|
|
1520
|
+
* OK
|
|
1521
|
+
*/
|
|
1522
|
+
200: {
|
|
1523
|
+
[key: string]: unknown;
|
|
1524
|
+
};
|
|
1525
|
+
};
|
|
1526
|
+
export type GetHealthResponse = GetHealthResponses[keyof GetHealthResponses];
|
|
1527
|
+
export type GetMeApiKeysData = {
|
|
1528
|
+
body?: never;
|
|
1529
|
+
path?: never;
|
|
1530
|
+
query?: never;
|
|
1531
|
+
url: '/api/me/api-keys';
|
|
1532
|
+
};
|
|
1533
|
+
export type GetMeApiKeysErrors = {
|
|
1534
|
+
/**
|
|
1535
|
+
* Unauthorized
|
|
1536
|
+
*/
|
|
1537
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1538
|
+
/**
|
|
1539
|
+
* Internal Server Error
|
|
1540
|
+
*/
|
|
1541
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1542
|
+
};
|
|
1543
|
+
export type GetMeApiKeysError = GetMeApiKeysErrors[keyof GetMeApiKeysErrors];
|
|
1544
|
+
export type GetMeApiKeysResponses = {
|
|
1545
|
+
/**
|
|
1546
|
+
* OK
|
|
1547
|
+
*/
|
|
1548
|
+
200: Array<PulsightInternalCoreDomainApikeyKey>;
|
|
1549
|
+
};
|
|
1550
|
+
export type GetMeApiKeysResponse = GetMeApiKeysResponses[keyof GetMeApiKeysResponses];
|
|
1551
|
+
export type PostMeApiKeysData = {
|
|
1552
|
+
/**
|
|
1553
|
+
* Key name, scopes, optional expiry
|
|
1554
|
+
*/
|
|
1555
|
+
body: PulsightInternalCorePortsInputApiKeyCreateRequest;
|
|
1556
|
+
path?: never;
|
|
1557
|
+
query?: never;
|
|
1558
|
+
url: '/api/me/api-keys';
|
|
1559
|
+
};
|
|
1560
|
+
export type PostMeApiKeysErrors = {
|
|
1561
|
+
/**
|
|
1562
|
+
* Bad Request
|
|
1563
|
+
*/
|
|
1564
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1565
|
+
/**
|
|
1566
|
+
* Unauthorized
|
|
1567
|
+
*/
|
|
1568
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1569
|
+
/**
|
|
1570
|
+
* api key limit reached for the tier
|
|
1571
|
+
*/
|
|
1572
|
+
403: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1573
|
+
/**
|
|
1574
|
+
* Internal Server Error
|
|
1575
|
+
*/
|
|
1576
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1577
|
+
};
|
|
1578
|
+
export type PostMeApiKeysError = PostMeApiKeysErrors[keyof PostMeApiKeysErrors];
|
|
1579
|
+
export type PostMeApiKeysResponses = {
|
|
1580
|
+
/**
|
|
1581
|
+
* Created
|
|
1582
|
+
*/
|
|
1583
|
+
201: PulsightInternalCorePortsInputCreatedApiKey;
|
|
1584
|
+
};
|
|
1585
|
+
export type PostMeApiKeysResponse = PostMeApiKeysResponses[keyof PostMeApiKeysResponses];
|
|
1586
|
+
export type DeleteMeApiKeysByIdData = {
|
|
1587
|
+
body?: never;
|
|
1588
|
+
path: {
|
|
1589
|
+
/**
|
|
1590
|
+
* Key ID (UUID)
|
|
1591
|
+
*/
|
|
1592
|
+
id: string;
|
|
1593
|
+
};
|
|
1594
|
+
query?: never;
|
|
1595
|
+
url: '/api/me/api-keys/{id}';
|
|
1596
|
+
};
|
|
1597
|
+
export type DeleteMeApiKeysByIdErrors = {
|
|
1598
|
+
/**
|
|
1599
|
+
* Bad Request
|
|
1600
|
+
*/
|
|
1601
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1602
|
+
/**
|
|
1603
|
+
* Unauthorized
|
|
1604
|
+
*/
|
|
1605
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1606
|
+
/**
|
|
1607
|
+
* Not Found
|
|
1608
|
+
*/
|
|
1609
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1610
|
+
/**
|
|
1611
|
+
* Internal Server Error
|
|
1612
|
+
*/
|
|
1613
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1614
|
+
};
|
|
1615
|
+
export type DeleteMeApiKeysByIdError = DeleteMeApiKeysByIdErrors[keyof DeleteMeApiKeysByIdErrors];
|
|
1616
|
+
export type DeleteMeApiKeysByIdResponses = {
|
|
1617
|
+
/**
|
|
1618
|
+
* No Content
|
|
1619
|
+
*/
|
|
1620
|
+
204: void;
|
|
1621
|
+
};
|
|
1622
|
+
export type DeleteMeApiKeysByIdResponse = DeleteMeApiKeysByIdResponses[keyof DeleteMeApiKeysByIdResponses];
|
|
1623
|
+
export type PatchMeApiKeysByIdData = {
|
|
1624
|
+
/**
|
|
1625
|
+
* New name
|
|
1626
|
+
*/
|
|
1627
|
+
body: InternalAdaptersPrimaryHttpHandlerApiKeyRenameRequest;
|
|
1628
|
+
path: {
|
|
1629
|
+
/**
|
|
1630
|
+
* Key ID (UUID)
|
|
1631
|
+
*/
|
|
1632
|
+
id: string;
|
|
1633
|
+
};
|
|
1634
|
+
query?: never;
|
|
1635
|
+
url: '/api/me/api-keys/{id}';
|
|
1636
|
+
};
|
|
1637
|
+
export type PatchMeApiKeysByIdErrors = {
|
|
1638
|
+
/**
|
|
1639
|
+
* Bad Request
|
|
1640
|
+
*/
|
|
1641
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1642
|
+
/**
|
|
1643
|
+
* Unauthorized
|
|
1644
|
+
*/
|
|
1645
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1646
|
+
/**
|
|
1647
|
+
* Not Found
|
|
1648
|
+
*/
|
|
1649
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1650
|
+
/**
|
|
1651
|
+
* Internal Server Error
|
|
1652
|
+
*/
|
|
1653
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1654
|
+
};
|
|
1655
|
+
export type PatchMeApiKeysByIdError = PatchMeApiKeysByIdErrors[keyof PatchMeApiKeysByIdErrors];
|
|
1656
|
+
export type PatchMeApiKeysByIdResponses = {
|
|
1657
|
+
/**
|
|
1658
|
+
* No Content
|
|
1659
|
+
*/
|
|
1660
|
+
204: void;
|
|
1661
|
+
};
|
|
1662
|
+
export type PatchMeApiKeysByIdResponse = PatchMeApiKeysByIdResponses[keyof PatchMeApiKeysByIdResponses];
|
|
1663
|
+
export type GetMeCreditsData = {
|
|
1664
|
+
body?: never;
|
|
1665
|
+
path?: never;
|
|
1666
|
+
query?: never;
|
|
1667
|
+
url: '/api/me/credits';
|
|
1668
|
+
};
|
|
1669
|
+
export type GetMeCreditsErrors = {
|
|
1670
|
+
/**
|
|
1671
|
+
* Unauthorized
|
|
1672
|
+
*/
|
|
1673
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1674
|
+
/**
|
|
1675
|
+
* Internal Server Error
|
|
1676
|
+
*/
|
|
1677
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1678
|
+
};
|
|
1679
|
+
export type GetMeCreditsError = GetMeCreditsErrors[keyof GetMeCreditsErrors];
|
|
1680
|
+
export type GetMeCreditsResponses = {
|
|
1681
|
+
/**
|
|
1682
|
+
* OK
|
|
1683
|
+
*/
|
|
1684
|
+
200: Array<PulsightInternalCorePortsInputUserPoolCredits>;
|
|
1685
|
+
};
|
|
1686
|
+
export type GetMeCreditsResponse = GetMeCreditsResponses[keyof GetMeCreditsResponses];
|
|
1687
|
+
export type GetMeCreditsLedgerData = {
|
|
1688
|
+
body?: never;
|
|
1689
|
+
path?: never;
|
|
1690
|
+
query?: {
|
|
1691
|
+
/**
|
|
1692
|
+
* Max entries to return (default 50, max 200)
|
|
1693
|
+
*/
|
|
1694
|
+
limit?: number;
|
|
1695
|
+
};
|
|
1696
|
+
url: '/api/me/credits/ledger';
|
|
1697
|
+
};
|
|
1698
|
+
export type GetMeCreditsLedgerErrors = {
|
|
1699
|
+
/**
|
|
1700
|
+
* Unauthorized
|
|
1701
|
+
*/
|
|
1702
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1703
|
+
/**
|
|
1704
|
+
* Internal Server Error
|
|
1705
|
+
*/
|
|
1706
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1707
|
+
};
|
|
1708
|
+
export type GetMeCreditsLedgerError = GetMeCreditsLedgerErrors[keyof GetMeCreditsLedgerErrors];
|
|
1709
|
+
export type GetMeCreditsLedgerResponses = {
|
|
1710
|
+
/**
|
|
1711
|
+
* OK
|
|
1712
|
+
*/
|
|
1713
|
+
200: Array<PulsightInternalCoreDomainCreditTransaction>;
|
|
1714
|
+
};
|
|
1715
|
+
export type GetMeCreditsLedgerResponse = GetMeCreditsLedgerResponses[keyof GetMeCreditsLedgerResponses];
|
|
1716
|
+
export type GetMintsData = {
|
|
1717
|
+
body?: never;
|
|
1718
|
+
path?: never;
|
|
1719
|
+
query: {
|
|
1720
|
+
/**
|
|
1721
|
+
* Window (1m|5m|1h|24h)
|
|
1722
|
+
*/
|
|
1723
|
+
window: string;
|
|
1724
|
+
/**
|
|
1725
|
+
* Mint pubkey prefix or case-insensitive symbol/name substring (lifts the default liquidity floor)
|
|
1726
|
+
*/
|
|
1727
|
+
search?: string;
|
|
1728
|
+
/**
|
|
1729
|
+
* trades|traders|recent|volume (others fall back to swap_count)
|
|
1730
|
+
*/
|
|
1731
|
+
sort?: string;
|
|
1732
|
+
/**
|
|
1733
|
+
* Restrict to mints traded on any of these DEXes (repeatable)
|
|
1734
|
+
*/
|
|
1735
|
+
dex?: Array<string>;
|
|
1736
|
+
/**
|
|
1737
|
+
* Activity-gate lookback hours (1..168, default 24)
|
|
1738
|
+
*/
|
|
1739
|
+
hours?: number;
|
|
1740
|
+
/**
|
|
1741
|
+
* Min window pool quote-reserves (liquidity), WSOL lamports. Omitted ⇒ a default ~1 SOL floor hides dust on untargeted browse; pass 0 to disable, or any value to override.
|
|
1742
|
+
*/
|
|
1743
|
+
min_pool_sol?: number;
|
|
1744
|
+
/**
|
|
1745
|
+
* Max rows (default 50, max 500)
|
|
1746
|
+
*/
|
|
1747
|
+
limit?: number;
|
|
1748
|
+
/**
|
|
1749
|
+
* Pagination offset
|
|
1750
|
+
*/
|
|
1751
|
+
offset?: number;
|
|
1752
|
+
};
|
|
1753
|
+
url: '/api/mints';
|
|
1754
|
+
};
|
|
1755
|
+
export type GetMintsErrors = {
|
|
1756
|
+
/**
|
|
1757
|
+
* Bad Request
|
|
1758
|
+
*/
|
|
1759
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1760
|
+
/**
|
|
1761
|
+
* CREDIT_EXHAUSTED — api credit pool empty (only when credit enforcement is enabled)
|
|
1762
|
+
*/
|
|
1763
|
+
402: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1764
|
+
/**
|
|
1765
|
+
* Internal Server Error
|
|
1766
|
+
*/
|
|
1767
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1768
|
+
};
|
|
1769
|
+
export type GetMintsError = GetMintsErrors[keyof GetMintsErrors];
|
|
1770
|
+
export type GetMintsResponses = {
|
|
1771
|
+
/**
|
|
1772
|
+
* OK
|
|
1773
|
+
*/
|
|
1774
|
+
200: Array<PulsightInternalCoreDomainAggregatorMintRow>;
|
|
1775
|
+
};
|
|
1776
|
+
export type GetMintsResponse = GetMintsResponses[keyof GetMintsResponses];
|
|
1777
|
+
export type GetMintsByPubkeyData = {
|
|
1778
|
+
body?: never;
|
|
1779
|
+
path: {
|
|
1780
|
+
/**
|
|
1781
|
+
* Mint pubkey
|
|
1782
|
+
*/
|
|
1783
|
+
pubkey: string;
|
|
1784
|
+
};
|
|
1785
|
+
query?: never;
|
|
1786
|
+
url: '/api/mints/{pubkey}';
|
|
1787
|
+
};
|
|
1788
|
+
export type GetMintsByPubkeyErrors = {
|
|
1789
|
+
/**
|
|
1790
|
+
* Not Found
|
|
1791
|
+
*/
|
|
1792
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1793
|
+
/**
|
|
1794
|
+
* Internal Server Error
|
|
1795
|
+
*/
|
|
1796
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1797
|
+
};
|
|
1798
|
+
export type GetMintsByPubkeyError = GetMintsByPubkeyErrors[keyof GetMintsByPubkeyErrors];
|
|
1799
|
+
export type GetMintsByPubkeyResponses = {
|
|
1800
|
+
/**
|
|
1801
|
+
* OK
|
|
1802
|
+
*/
|
|
1803
|
+
200: PulsightInternalCoreDomainAggregatorMintRow;
|
|
1804
|
+
};
|
|
1805
|
+
export type GetMintsByPubkeyResponse = GetMintsByPubkeyResponses[keyof GetMintsByPubkeyResponses];
|
|
1806
|
+
export type GetMintsByPubkeyLpEventsData = {
|
|
1807
|
+
body?: never;
|
|
1808
|
+
path: {
|
|
1809
|
+
/**
|
|
1810
|
+
* Mint pubkey
|
|
1811
|
+
*/
|
|
1812
|
+
pubkey: string;
|
|
1813
|
+
};
|
|
1814
|
+
query?: {
|
|
1815
|
+
/**
|
|
1816
|
+
* Filter by op (add|remove|burn)
|
|
1817
|
+
*/
|
|
1818
|
+
op?: string;
|
|
1819
|
+
/**
|
|
1820
|
+
* Max rows (default 50, max 200)
|
|
1821
|
+
*/
|
|
1822
|
+
limit?: number;
|
|
1823
|
+
};
|
|
1824
|
+
url: '/api/mints/{pubkey}/lp-events';
|
|
1825
|
+
};
|
|
1826
|
+
export type GetMintsByPubkeyLpEventsErrors = {
|
|
1827
|
+
/**
|
|
1828
|
+
* Bad Request
|
|
1829
|
+
*/
|
|
1830
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1831
|
+
/**
|
|
1832
|
+
* Internal Server Error
|
|
1833
|
+
*/
|
|
1834
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1835
|
+
};
|
|
1836
|
+
export type GetMintsByPubkeyLpEventsError = GetMintsByPubkeyLpEventsErrors[keyof GetMintsByPubkeyLpEventsErrors];
|
|
1837
|
+
export type GetMintsByPubkeyLpEventsResponses = {
|
|
1838
|
+
/**
|
|
1839
|
+
* OK
|
|
1840
|
+
*/
|
|
1841
|
+
200: Array<PulsightInternalCoreDomainAggregatorLpEvent>;
|
|
1842
|
+
};
|
|
1843
|
+
export type GetMintsByPubkeyLpEventsResponse = GetMintsByPubkeyLpEventsResponses[keyof GetMintsByPubkeyLpEventsResponses];
|
|
1844
|
+
export type GetMintsByPubkeyMarketsData = {
|
|
1845
|
+
body?: never;
|
|
1846
|
+
path: {
|
|
1847
|
+
/**
|
|
1848
|
+
* Mint pubkey
|
|
1849
|
+
*/
|
|
1850
|
+
pubkey: string;
|
|
1851
|
+
};
|
|
1852
|
+
query?: {
|
|
1853
|
+
/**
|
|
1854
|
+
* Window (1m|5m|1h|24h|all, default 24h)
|
|
1855
|
+
*/
|
|
1856
|
+
window?: string;
|
|
1857
|
+
};
|
|
1858
|
+
url: '/api/mints/{pubkey}/markets';
|
|
1859
|
+
};
|
|
1860
|
+
export type GetMintsByPubkeyMarketsErrors = {
|
|
1861
|
+
/**
|
|
1862
|
+
* Bad Request
|
|
1863
|
+
*/
|
|
1864
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1865
|
+
/**
|
|
1866
|
+
* Internal Server Error
|
|
1867
|
+
*/
|
|
1868
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1869
|
+
};
|
|
1870
|
+
export type GetMintsByPubkeyMarketsError = GetMintsByPubkeyMarketsErrors[keyof GetMintsByPubkeyMarketsErrors];
|
|
1871
|
+
export type GetMintsByPubkeyMarketsResponses = {
|
|
1872
|
+
/**
|
|
1873
|
+
* OK
|
|
1874
|
+
*/
|
|
1875
|
+
200: Array<PulsightInternalCoreDomainAggregatorMintMarket>;
|
|
1876
|
+
};
|
|
1877
|
+
export type GetMintsByPubkeyMarketsResponse = GetMintsByPubkeyMarketsResponses[keyof GetMintsByPubkeyMarketsResponses];
|
|
1878
|
+
export type GetMintsByPubkeyMigrationsData = {
|
|
1879
|
+
body?: never;
|
|
1880
|
+
path: {
|
|
1881
|
+
/**
|
|
1882
|
+
* Mint pubkey
|
|
1883
|
+
*/
|
|
1884
|
+
pubkey: string;
|
|
1885
|
+
};
|
|
1886
|
+
query?: never;
|
|
1887
|
+
url: '/api/mints/{pubkey}/migrations';
|
|
1888
|
+
};
|
|
1889
|
+
export type GetMintsByPubkeyMigrationsErrors = {
|
|
1890
|
+
/**
|
|
1891
|
+
* Bad Request
|
|
1892
|
+
*/
|
|
1893
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1894
|
+
/**
|
|
1895
|
+
* Internal Server Error
|
|
1896
|
+
*/
|
|
1897
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1898
|
+
};
|
|
1899
|
+
export type GetMintsByPubkeyMigrationsError = GetMintsByPubkeyMigrationsErrors[keyof GetMintsByPubkeyMigrationsErrors];
|
|
1900
|
+
export type GetMintsByPubkeyMigrationsResponses = {
|
|
1901
|
+
/**
|
|
1902
|
+
* OK
|
|
1903
|
+
*/
|
|
1904
|
+
200: Array<PulsightInternalCoreDomainAggregatorMintMigration>;
|
|
1905
|
+
};
|
|
1906
|
+
export type GetMintsByPubkeyMigrationsResponse = GetMintsByPubkeyMigrationsResponses[keyof GetMintsByPubkeyMigrationsResponses];
|
|
1907
|
+
export type GetMintsByPubkeySafetyEventsData = {
|
|
1908
|
+
body?: never;
|
|
1909
|
+
path: {
|
|
1910
|
+
/**
|
|
1911
|
+
* Mint pubkey
|
|
1912
|
+
*/
|
|
1913
|
+
pubkey: string;
|
|
1914
|
+
};
|
|
1915
|
+
query?: {
|
|
1916
|
+
/**
|
|
1917
|
+
* Filter by kind (burn|mint_to|freeze|thaw|authority_change)
|
|
1918
|
+
*/
|
|
1919
|
+
kind?: string;
|
|
1920
|
+
/**
|
|
1921
|
+
* Max rows (default 50, max 500)
|
|
1922
|
+
*/
|
|
1923
|
+
limit?: number;
|
|
1924
|
+
};
|
|
1925
|
+
url: '/api/mints/{pubkey}/safety-events';
|
|
1926
|
+
};
|
|
1927
|
+
export type GetMintsByPubkeySafetyEventsErrors = {
|
|
1928
|
+
/**
|
|
1929
|
+
* Bad Request
|
|
1930
|
+
*/
|
|
1931
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1932
|
+
/**
|
|
1933
|
+
* Internal Server Error
|
|
1934
|
+
*/
|
|
1935
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1936
|
+
};
|
|
1937
|
+
export type GetMintsByPubkeySafetyEventsError = GetMintsByPubkeySafetyEventsErrors[keyof GetMintsByPubkeySafetyEventsErrors];
|
|
1938
|
+
export type GetMintsByPubkeySafetyEventsResponses = {
|
|
1939
|
+
/**
|
|
1940
|
+
* OK
|
|
1941
|
+
*/
|
|
1942
|
+
200: Array<PulsightInternalCoreDomainAggregatorSafetyEvent>;
|
|
1943
|
+
};
|
|
1944
|
+
export type GetMintsByPubkeySafetyEventsResponse = GetMintsByPubkeySafetyEventsResponses[keyof GetMintsByPubkeySafetyEventsResponses];
|
|
1945
|
+
export type GetMintsByPubkeyStatsData = {
|
|
1946
|
+
body?: never;
|
|
1947
|
+
path: {
|
|
1948
|
+
/**
|
|
1949
|
+
* Mint pubkey
|
|
1950
|
+
*/
|
|
1951
|
+
pubkey: string;
|
|
1952
|
+
};
|
|
1953
|
+
query?: never;
|
|
1954
|
+
url: '/api/mints/{pubkey}/stats';
|
|
1955
|
+
};
|
|
1956
|
+
export type GetMintsByPubkeyStatsErrors = {
|
|
1957
|
+
/**
|
|
1958
|
+
* Not Found
|
|
1959
|
+
*/
|
|
1960
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1961
|
+
/**
|
|
1962
|
+
* Internal Server Error
|
|
1963
|
+
*/
|
|
1964
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
1965
|
+
};
|
|
1966
|
+
export type GetMintsByPubkeyStatsError = GetMintsByPubkeyStatsErrors[keyof GetMintsByPubkeyStatsErrors];
|
|
1967
|
+
export type GetMintsByPubkeyStatsResponses = {
|
|
1968
|
+
/**
|
|
1969
|
+
* OK
|
|
1970
|
+
*/
|
|
1971
|
+
200: PulsightInternalCoreDomainAggregatorMintWindowStatsBundle;
|
|
1972
|
+
};
|
|
1973
|
+
export type GetMintsByPubkeyStatsResponse = GetMintsByPubkeyStatsResponses[keyof GetMintsByPubkeyStatsResponses];
|
|
1974
|
+
export type GetMintsByPubkeyTopHoldersData = {
|
|
1975
|
+
body?: never;
|
|
1976
|
+
path: {
|
|
1977
|
+
/**
|
|
1978
|
+
* Mint pubkey
|
|
1979
|
+
*/
|
|
1980
|
+
pubkey: string;
|
|
1981
|
+
};
|
|
1982
|
+
query?: {
|
|
1983
|
+
/**
|
|
1984
|
+
* Sort key (balance|holding_pnl|recent, default balance)
|
|
1985
|
+
*/
|
|
1986
|
+
sort?: string;
|
|
1987
|
+
/**
|
|
1988
|
+
* Max rows (default 50, max 500)
|
|
1989
|
+
*/
|
|
1990
|
+
limit?: number;
|
|
1991
|
+
/**
|
|
1992
|
+
* Page offset (default 0)
|
|
1993
|
+
*/
|
|
1994
|
+
offset?: number;
|
|
1995
|
+
};
|
|
1996
|
+
url: '/api/mints/{pubkey}/top-holders';
|
|
1997
|
+
};
|
|
1998
|
+
export type GetMintsByPubkeyTopHoldersErrors = {
|
|
1999
|
+
/**
|
|
2000
|
+
* Bad Request
|
|
2001
|
+
*/
|
|
2002
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2003
|
+
/**
|
|
2004
|
+
* Internal Server Error
|
|
2005
|
+
*/
|
|
2006
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2007
|
+
};
|
|
2008
|
+
export type GetMintsByPubkeyTopHoldersError = GetMintsByPubkeyTopHoldersErrors[keyof GetMintsByPubkeyTopHoldersErrors];
|
|
2009
|
+
export type GetMintsByPubkeyTopHoldersResponses = {
|
|
2010
|
+
/**
|
|
2011
|
+
* OK
|
|
2012
|
+
*/
|
|
2013
|
+
200: Array<PulsightInternalCoreDomainAggregatorMintTraderRow>;
|
|
2014
|
+
};
|
|
2015
|
+
export type GetMintsByPubkeyTopHoldersResponse = GetMintsByPubkeyTopHoldersResponses[keyof GetMintsByPubkeyTopHoldersResponses];
|
|
2016
|
+
export type GetMintsByPubkeyTopTradersData = {
|
|
2017
|
+
body?: never;
|
|
2018
|
+
path: {
|
|
2019
|
+
/**
|
|
2020
|
+
* Mint pubkey
|
|
2021
|
+
*/
|
|
2022
|
+
pubkey: string;
|
|
2023
|
+
};
|
|
2024
|
+
query?: {
|
|
2025
|
+
/**
|
|
2026
|
+
* Sort key (pnl|volume|swaps|recent, default pnl)
|
|
2027
|
+
*/
|
|
2028
|
+
sort?: string;
|
|
2029
|
+
/**
|
|
2030
|
+
* Max rows (default 50, max 500)
|
|
2031
|
+
*/
|
|
2032
|
+
limit?: number;
|
|
2033
|
+
/**
|
|
2034
|
+
* Page offset (default 0)
|
|
2035
|
+
*/
|
|
2036
|
+
offset?: number;
|
|
2037
|
+
};
|
|
2038
|
+
url: '/api/mints/{pubkey}/top-traders';
|
|
2039
|
+
};
|
|
2040
|
+
export type GetMintsByPubkeyTopTradersErrors = {
|
|
2041
|
+
/**
|
|
2042
|
+
* Bad Request
|
|
2043
|
+
*/
|
|
2044
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2045
|
+
/**
|
|
2046
|
+
* Internal Server Error
|
|
2047
|
+
*/
|
|
2048
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2049
|
+
};
|
|
2050
|
+
export type GetMintsByPubkeyTopTradersError = GetMintsByPubkeyTopTradersErrors[keyof GetMintsByPubkeyTopTradersErrors];
|
|
2051
|
+
export type GetMintsByPubkeyTopTradersResponses = {
|
|
2052
|
+
/**
|
|
2053
|
+
* OK
|
|
2054
|
+
*/
|
|
2055
|
+
200: Array<PulsightInternalCoreDomainAggregatorMintTraderRow>;
|
|
2056
|
+
};
|
|
2057
|
+
export type GetMintsByPubkeyTopTradersResponse = GetMintsByPubkeyTopTradersResponses[keyof GetMintsByPubkeyTopTradersResponses];
|
|
2058
|
+
export type GetMintsByPubkeyTradersByTraderData = {
|
|
2059
|
+
body?: never;
|
|
2060
|
+
path: {
|
|
2061
|
+
/**
|
|
2062
|
+
* Mint pubkey
|
|
2063
|
+
*/
|
|
2064
|
+
pubkey: string;
|
|
2065
|
+
/**
|
|
2066
|
+
* Trader wallet pubkey
|
|
2067
|
+
*/
|
|
2068
|
+
trader: string;
|
|
2069
|
+
};
|
|
2070
|
+
query?: never;
|
|
2071
|
+
url: '/api/mints/{pubkey}/traders/{trader}';
|
|
2072
|
+
};
|
|
2073
|
+
export type GetMintsByPubkeyTradersByTraderErrors = {
|
|
2074
|
+
/**
|
|
2075
|
+
* Bad Request
|
|
2076
|
+
*/
|
|
2077
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2078
|
+
/**
|
|
2079
|
+
* Not Found
|
|
2080
|
+
*/
|
|
2081
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2082
|
+
/**
|
|
2083
|
+
* Internal Server Error
|
|
2084
|
+
*/
|
|
2085
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2086
|
+
};
|
|
2087
|
+
export type GetMintsByPubkeyTradersByTraderError = GetMintsByPubkeyTradersByTraderErrors[keyof GetMintsByPubkeyTradersByTraderErrors];
|
|
2088
|
+
export type GetMintsByPubkeyTradersByTraderResponses = {
|
|
2089
|
+
/**
|
|
2090
|
+
* OK
|
|
2091
|
+
*/
|
|
2092
|
+
200: PulsightInternalCoreDomainAggregatorMintTraderRow;
|
|
2093
|
+
};
|
|
2094
|
+
export type GetMintsByPubkeyTradersByTraderResponse = GetMintsByPubkeyTradersByTraderResponses[keyof GetMintsByPubkeyTradersByTraderResponses];
|
|
2095
|
+
export type GetOhlcvData = {
|
|
2096
|
+
body?: never;
|
|
2097
|
+
path?: never;
|
|
2098
|
+
query: {
|
|
2099
|
+
/**
|
|
2100
|
+
* Mint pubkey
|
|
2101
|
+
*/
|
|
2102
|
+
mint: string;
|
|
2103
|
+
/**
|
|
2104
|
+
* Timeframe (e.g. 1m, 5m, 1h)
|
|
2105
|
+
*/
|
|
2106
|
+
tf: string;
|
|
2107
|
+
/**
|
|
2108
|
+
* Market (pool pubkey) to chart; defaults to the most active pool
|
|
2109
|
+
*/
|
|
2110
|
+
pool?: string;
|
|
2111
|
+
/**
|
|
2112
|
+
* Price denomination (native|sol|usd; default native)
|
|
2113
|
+
*/
|
|
2114
|
+
quote?: string;
|
|
2115
|
+
/**
|
|
2116
|
+
* Start of window (RFC3339)
|
|
2117
|
+
*/
|
|
2118
|
+
from?: string;
|
|
2119
|
+
/**
|
|
2120
|
+
* End of window (RFC3339, exclusive)
|
|
2121
|
+
*/
|
|
2122
|
+
to?: string;
|
|
2123
|
+
};
|
|
2124
|
+
url: '/api/ohlcv';
|
|
2125
|
+
};
|
|
2126
|
+
export type GetOhlcvErrors = {
|
|
2127
|
+
/**
|
|
2128
|
+
* Bad Request
|
|
2129
|
+
*/
|
|
2130
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2131
|
+
/**
|
|
2132
|
+
* CREDIT_EXHAUSTED — api credit pool empty (only when credit enforcement is enabled)
|
|
2133
|
+
*/
|
|
2134
|
+
402: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2135
|
+
/**
|
|
2136
|
+
* Internal Server Error
|
|
2137
|
+
*/
|
|
2138
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2139
|
+
};
|
|
2140
|
+
export type GetOhlcvError = GetOhlcvErrors[keyof GetOhlcvErrors];
|
|
2141
|
+
export type GetOhlcvResponses = {
|
|
2142
|
+
/**
|
|
2143
|
+
* OK
|
|
2144
|
+
*/
|
|
2145
|
+
200: Array<PulsightInternalCoreDomainAggregatorOhlcvCandle>;
|
|
2146
|
+
};
|
|
2147
|
+
export type GetOhlcvResponse = GetOhlcvResponses[keyof GetOhlcvResponses];
|
|
2148
|
+
export type GetStrategiesData = {
|
|
2149
|
+
body?: never;
|
|
2150
|
+
path?: never;
|
|
2151
|
+
query?: {
|
|
2152
|
+
/**
|
|
2153
|
+
* Max rows (default 200, max 1000)
|
|
2154
|
+
*/
|
|
2155
|
+
limit?: number;
|
|
2156
|
+
/**
|
|
2157
|
+
* Row offset (default 0)
|
|
2158
|
+
*/
|
|
2159
|
+
offset?: number;
|
|
2160
|
+
};
|
|
2161
|
+
url: '/api/strategies';
|
|
2162
|
+
};
|
|
2163
|
+
export type GetStrategiesErrors = {
|
|
2164
|
+
/**
|
|
2165
|
+
* Bad Request
|
|
2166
|
+
*/
|
|
2167
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2168
|
+
/**
|
|
2169
|
+
* Unauthorized
|
|
2170
|
+
*/
|
|
2171
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2172
|
+
};
|
|
2173
|
+
export type GetStrategiesError = GetStrategiesErrors[keyof GetStrategiesErrors];
|
|
2174
|
+
export type GetStrategiesResponses = {
|
|
2175
|
+
/**
|
|
2176
|
+
* OK
|
|
2177
|
+
*/
|
|
2178
|
+
200: Array<PulsightInternalCoreDomainStrategyRecord>;
|
|
2179
|
+
};
|
|
2180
|
+
export type GetStrategiesResponse = GetStrategiesResponses[keyof GetStrategiesResponses];
|
|
2181
|
+
export type PostStrategiesData = {
|
|
2182
|
+
/**
|
|
2183
|
+
* Strategy config
|
|
2184
|
+
*/
|
|
2185
|
+
body: InternalAdaptersPrimaryHttpHandlerStrategyCreateRequest;
|
|
2186
|
+
path?: never;
|
|
2187
|
+
query?: never;
|
|
2188
|
+
url: '/api/strategies';
|
|
2189
|
+
};
|
|
2190
|
+
export type PostStrategiesErrors = {
|
|
2191
|
+
/**
|
|
2192
|
+
* Bad Request
|
|
2193
|
+
*/
|
|
2194
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2195
|
+
};
|
|
2196
|
+
export type PostStrategiesError = PostStrategiesErrors[keyof PostStrategiesErrors];
|
|
2197
|
+
export type PostStrategiesResponses = {
|
|
2198
|
+
/**
|
|
2199
|
+
* Created
|
|
2200
|
+
*/
|
|
2201
|
+
201: PulsightInternalCoreDomainStrategyRecord;
|
|
2202
|
+
};
|
|
2203
|
+
export type PostStrategiesResponse = PostStrategiesResponses[keyof PostStrategiesResponses];
|
|
2204
|
+
export type GetStrategiesDashboardData = {
|
|
2205
|
+
body?: never;
|
|
2206
|
+
path?: never;
|
|
2207
|
+
query?: never;
|
|
2208
|
+
url: '/api/strategies/dashboard';
|
|
2209
|
+
};
|
|
2210
|
+
export type GetStrategiesDashboardErrors = {
|
|
2211
|
+
/**
|
|
2212
|
+
* Unauthorized
|
|
2213
|
+
*/
|
|
2214
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2215
|
+
};
|
|
2216
|
+
export type GetStrategiesDashboardError = GetStrategiesDashboardErrors[keyof GetStrategiesDashboardErrors];
|
|
2217
|
+
export type GetStrategiesDashboardResponses = {
|
|
2218
|
+
/**
|
|
2219
|
+
* OK
|
|
2220
|
+
*/
|
|
2221
|
+
200: InternalAdaptersPrimaryHttpHandlerDashboardStats;
|
|
2222
|
+
};
|
|
2223
|
+
export type GetStrategiesDashboardResponse = GetStrategiesDashboardResponses[keyof GetStrategiesDashboardResponses];
|
|
2224
|
+
export type PostStrategiesPreviewData = {
|
|
2225
|
+
/**
|
|
2226
|
+
* Preview request
|
|
2227
|
+
*/
|
|
2228
|
+
body: PulsightInternalCoreUsecasesBacktestPreviewRequest;
|
|
2229
|
+
path?: never;
|
|
2230
|
+
query?: never;
|
|
2231
|
+
url: '/api/strategies/preview';
|
|
2232
|
+
};
|
|
2233
|
+
export type PostStrategiesPreviewErrors = {
|
|
2234
|
+
/**
|
|
2235
|
+
* Bad Request
|
|
2236
|
+
*/
|
|
2237
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2238
|
+
};
|
|
2239
|
+
export type PostStrategiesPreviewError = PostStrategiesPreviewErrors[keyof PostStrategiesPreviewErrors];
|
|
2240
|
+
export type PostStrategiesPreviewResponses = {
|
|
2241
|
+
/**
|
|
2242
|
+
* OK
|
|
2243
|
+
*/
|
|
2244
|
+
200: PulsightInternalCoreUsecasesBacktestPreviewResponse;
|
|
2245
|
+
};
|
|
2246
|
+
export type PostStrategiesPreviewResponse = PostStrategiesPreviewResponses[keyof PostStrategiesPreviewResponses];
|
|
2247
|
+
export type GetStrategiesWithStatsData = {
|
|
2248
|
+
body?: never;
|
|
2249
|
+
path?: never;
|
|
2250
|
+
query?: {
|
|
2251
|
+
/**
|
|
2252
|
+
* Max rows
|
|
2253
|
+
*/
|
|
2254
|
+
limit?: number;
|
|
2255
|
+
/**
|
|
2256
|
+
* Row offset
|
|
2257
|
+
*/
|
|
2258
|
+
offset?: number;
|
|
2259
|
+
};
|
|
2260
|
+
url: '/api/strategies/with-stats';
|
|
2261
|
+
};
|
|
2262
|
+
export type GetStrategiesWithStatsErrors = {
|
|
2263
|
+
/**
|
|
2264
|
+
* Unauthorized
|
|
2265
|
+
*/
|
|
2266
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2267
|
+
};
|
|
2268
|
+
export type GetStrategiesWithStatsError = GetStrategiesWithStatsErrors[keyof GetStrategiesWithStatsErrors];
|
|
2269
|
+
export type GetStrategiesWithStatsResponses = {
|
|
2270
|
+
/**
|
|
2271
|
+
* OK
|
|
2272
|
+
*/
|
|
2273
|
+
200: Array<InternalAdaptersPrimaryHttpHandlerStrategyListItem>;
|
|
2274
|
+
};
|
|
2275
|
+
export type GetStrategiesWithStatsResponse = GetStrategiesWithStatsResponses[keyof GetStrategiesWithStatsResponses];
|
|
2276
|
+
export type DeleteStrategiesByIdData = {
|
|
2277
|
+
body?: never;
|
|
2278
|
+
path: {
|
|
2279
|
+
/**
|
|
2280
|
+
* Strategy ID
|
|
2281
|
+
*/
|
|
2282
|
+
id: string;
|
|
2283
|
+
};
|
|
2284
|
+
query?: never;
|
|
2285
|
+
url: '/api/strategies/{id}';
|
|
2286
|
+
};
|
|
2287
|
+
export type DeleteStrategiesByIdErrors = {
|
|
2288
|
+
/**
|
|
2289
|
+
* Bad Request
|
|
2290
|
+
*/
|
|
2291
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2292
|
+
};
|
|
2293
|
+
export type DeleteStrategiesByIdError = DeleteStrategiesByIdErrors[keyof DeleteStrategiesByIdErrors];
|
|
2294
|
+
export type DeleteStrategiesByIdResponses = {
|
|
2295
|
+
/**
|
|
2296
|
+
* No Content
|
|
2297
|
+
*/
|
|
2298
|
+
204: void;
|
|
2299
|
+
};
|
|
2300
|
+
export type DeleteStrategiesByIdResponse = DeleteStrategiesByIdResponses[keyof DeleteStrategiesByIdResponses];
|
|
2301
|
+
export type GetStrategiesByIdData = {
|
|
2302
|
+
body?: never;
|
|
2303
|
+
path: {
|
|
2304
|
+
/**
|
|
2305
|
+
* Strategy ID
|
|
2306
|
+
*/
|
|
2307
|
+
id: string;
|
|
2308
|
+
};
|
|
2309
|
+
query?: never;
|
|
2310
|
+
url: '/api/strategies/{id}';
|
|
2311
|
+
};
|
|
2312
|
+
export type GetStrategiesByIdErrors = {
|
|
2313
|
+
/**
|
|
2314
|
+
* Not Found
|
|
2315
|
+
*/
|
|
2316
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2317
|
+
};
|
|
2318
|
+
export type GetStrategiesByIdError = GetStrategiesByIdErrors[keyof GetStrategiesByIdErrors];
|
|
2319
|
+
export type GetStrategiesByIdResponses = {
|
|
2320
|
+
/**
|
|
2321
|
+
* OK
|
|
2322
|
+
*/
|
|
2323
|
+
200: PulsightInternalCoreDomainStrategyRecord;
|
|
2324
|
+
};
|
|
2325
|
+
export type GetStrategiesByIdResponse = GetStrategiesByIdResponses[keyof GetStrategiesByIdResponses];
|
|
2326
|
+
export type PutStrategiesByIdData = {
|
|
2327
|
+
/**
|
|
2328
|
+
* Strategy def
|
|
2329
|
+
*/
|
|
2330
|
+
body: InternalAdaptersPrimaryHttpHandlerStrategyUpdateRequest;
|
|
2331
|
+
path: {
|
|
2332
|
+
/**
|
|
2333
|
+
* Strategy ID
|
|
2334
|
+
*/
|
|
2335
|
+
id: string;
|
|
2336
|
+
};
|
|
2337
|
+
query?: never;
|
|
2338
|
+
url: '/api/strategies/{id}';
|
|
2339
|
+
};
|
|
2340
|
+
export type PutStrategiesByIdErrors = {
|
|
2341
|
+
/**
|
|
2342
|
+
* Bad Request
|
|
2343
|
+
*/
|
|
2344
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2345
|
+
/**
|
|
2346
|
+
* Not Found
|
|
2347
|
+
*/
|
|
2348
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2349
|
+
};
|
|
2350
|
+
export type PutStrategiesByIdError = PutStrategiesByIdErrors[keyof PutStrategiesByIdErrors];
|
|
2351
|
+
export type PutStrategiesByIdResponses = {
|
|
2352
|
+
/**
|
|
2353
|
+
* OK
|
|
2354
|
+
*/
|
|
2355
|
+
200: PulsightInternalCoreDomainStrategyRecord;
|
|
2356
|
+
};
|
|
2357
|
+
export type PutStrategiesByIdResponse = PutStrategiesByIdResponses[keyof PutStrategiesByIdResponses];
|
|
2358
|
+
export type GetSubscriptionsMeData = {
|
|
2359
|
+
body?: never;
|
|
2360
|
+
path?: never;
|
|
2361
|
+
query?: never;
|
|
2362
|
+
url: '/api/subscriptions/me';
|
|
2363
|
+
};
|
|
2364
|
+
export type GetSubscriptionsMeErrors = {
|
|
2365
|
+
/**
|
|
2366
|
+
* Unauthorized
|
|
2367
|
+
*/
|
|
2368
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2369
|
+
/**
|
|
2370
|
+
* Internal Server Error
|
|
2371
|
+
*/
|
|
2372
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2373
|
+
};
|
|
2374
|
+
export type GetSubscriptionsMeError = GetSubscriptionsMeErrors[keyof GetSubscriptionsMeErrors];
|
|
2375
|
+
export type GetSubscriptionsMeResponses = {
|
|
2376
|
+
/**
|
|
2377
|
+
* OK
|
|
2378
|
+
*/
|
|
2379
|
+
200: PulsightInternalCorePortsInputSubscriptionInfo;
|
|
2380
|
+
};
|
|
2381
|
+
export type GetSubscriptionsMeResponse = GetSubscriptionsMeResponses[keyof GetSubscriptionsMeResponses];
|
|
2382
|
+
export type GetSwapsData = {
|
|
2383
|
+
body?: never;
|
|
2384
|
+
path?: never;
|
|
2385
|
+
query?: {
|
|
2386
|
+
/**
|
|
2387
|
+
* Mint pubkey (optional; combinable with trader)
|
|
2388
|
+
*/
|
|
2389
|
+
mint?: string;
|
|
2390
|
+
/**
|
|
2391
|
+
* Trader pubkey; repeatable or comma-separated (optional; combinable with mint)
|
|
2392
|
+
*/
|
|
2393
|
+
trader?: string;
|
|
2394
|
+
/**
|
|
2395
|
+
* Market (pool pubkey) to scope swaps to (optional)
|
|
2396
|
+
*/
|
|
2397
|
+
pool?: string;
|
|
2398
|
+
/**
|
|
2399
|
+
* Start of window (RFC3339)
|
|
2400
|
+
*/
|
|
2401
|
+
from?: string;
|
|
2402
|
+
/**
|
|
2403
|
+
* End of window (RFC3339, exclusive)
|
|
2404
|
+
*/
|
|
2405
|
+
to?: string;
|
|
2406
|
+
/**
|
|
2407
|
+
* Start of window (Unix epoch seconds)
|
|
2408
|
+
*/
|
|
2409
|
+
from_ts?: number;
|
|
2410
|
+
/**
|
|
2411
|
+
* End of window (Unix epoch seconds, exclusive)
|
|
2412
|
+
*/
|
|
2413
|
+
to_ts?: number;
|
|
2414
|
+
/**
|
|
2415
|
+
* Cursor: return the latest swaps strictly before this Unix epoch timestamp (no lower bound)
|
|
2416
|
+
*/
|
|
2417
|
+
before_ts?: number;
|
|
2418
|
+
/**
|
|
2419
|
+
* Max rows (default 100, max 1000)
|
|
2420
|
+
*/
|
|
2421
|
+
limit?: number;
|
|
2422
|
+
};
|
|
2423
|
+
url: '/api/swaps';
|
|
2424
|
+
};
|
|
2425
|
+
export type GetSwapsErrors = {
|
|
2426
|
+
/**
|
|
2427
|
+
* Bad Request
|
|
2428
|
+
*/
|
|
2429
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2430
|
+
/**
|
|
2431
|
+
* CREDIT_EXHAUSTED — api credit pool empty (only when credit enforcement is enabled)
|
|
2432
|
+
*/
|
|
2433
|
+
402: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2434
|
+
/**
|
|
2435
|
+
* Internal Server Error
|
|
2436
|
+
*/
|
|
2437
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2438
|
+
};
|
|
2439
|
+
export type GetSwapsError = GetSwapsErrors[keyof GetSwapsErrors];
|
|
2440
|
+
export type GetSwapsResponses = {
|
|
2441
|
+
/**
|
|
2442
|
+
* OK
|
|
2443
|
+
*/
|
|
2444
|
+
200: Array<InternalAdaptersPrimaryHttpHandlerSwapEventRow>;
|
|
2445
|
+
};
|
|
2446
|
+
export type GetSwapsResponse = GetSwapsResponses[keyof GetSwapsResponses];
|
|
2447
|
+
export type GetTipsGlobalData = {
|
|
2448
|
+
body?: never;
|
|
2449
|
+
path?: never;
|
|
2450
|
+
query?: {
|
|
2451
|
+
/**
|
|
2452
|
+
* Window (30m|1h|12h|1d|7d|30d|all)
|
|
2453
|
+
*/
|
|
2454
|
+
window?: string;
|
|
2455
|
+
};
|
|
2456
|
+
url: '/api/tips/global';
|
|
2457
|
+
};
|
|
2458
|
+
export type GetTipsGlobalErrors = {
|
|
2459
|
+
/**
|
|
2460
|
+
* Bad Request
|
|
2461
|
+
*/
|
|
2462
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2463
|
+
};
|
|
2464
|
+
export type GetTipsGlobalError = GetTipsGlobalErrors[keyof GetTipsGlobalErrors];
|
|
2465
|
+
export type GetTipsGlobalResponses = {
|
|
2466
|
+
/**
|
|
2467
|
+
* OK
|
|
2468
|
+
*/
|
|
2469
|
+
200: PulsightInternalCoreDomainAggregatorGlobalTipStats;
|
|
2470
|
+
};
|
|
2471
|
+
export type GetTipsGlobalResponse = GetTipsGlobalResponses[keyof GetTipsGlobalResponses];
|
|
2472
|
+
export type GetTipsHeatmapData = {
|
|
2473
|
+
body?: never;
|
|
2474
|
+
path?: never;
|
|
2475
|
+
query?: {
|
|
2476
|
+
/**
|
|
2477
|
+
* Bucket (1m|5m|10m)
|
|
2478
|
+
*/
|
|
2479
|
+
bucket?: string;
|
|
2480
|
+
/**
|
|
2481
|
+
* Horizon hours (1..24)
|
|
2482
|
+
*/
|
|
2483
|
+
horizon_hours?: number;
|
|
2484
|
+
};
|
|
2485
|
+
url: '/api/tips/heatmap';
|
|
2486
|
+
};
|
|
2487
|
+
export type GetTipsHeatmapErrors = {
|
|
2488
|
+
/**
|
|
2489
|
+
* Bad Request
|
|
2490
|
+
*/
|
|
2491
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2492
|
+
};
|
|
2493
|
+
export type GetTipsHeatmapError = GetTipsHeatmapErrors[keyof GetTipsHeatmapErrors];
|
|
2494
|
+
export type GetTipsHeatmapResponses = {
|
|
2495
|
+
/**
|
|
2496
|
+
* OK
|
|
2497
|
+
*/
|
|
2498
|
+
200: PulsightInternalCoreDomainAggregatorHeatmapResponse;
|
|
2499
|
+
};
|
|
2500
|
+
export type GetTipsHeatmapResponse = GetTipsHeatmapResponses[keyof GetTipsHeatmapResponses];
|
|
2501
|
+
export type GetTipsLeaderboardJitoEfficiencyData = {
|
|
2502
|
+
body?: never;
|
|
2503
|
+
path?: never;
|
|
2504
|
+
query?: {
|
|
2505
|
+
/**
|
|
2506
|
+
* Window (30m|1h|12h|1d|7d|30d|all)
|
|
2507
|
+
*/
|
|
2508
|
+
window?: string;
|
|
2509
|
+
/**
|
|
2510
|
+
* Row cap (1..200, default 50)
|
|
2511
|
+
*/
|
|
2512
|
+
limit?: number;
|
|
2513
|
+
};
|
|
2514
|
+
url: '/api/tips/leaderboard/jito-efficiency';
|
|
2515
|
+
};
|
|
2516
|
+
export type GetTipsLeaderboardJitoEfficiencyErrors = {
|
|
2517
|
+
/**
|
|
2518
|
+
* Bad Request
|
|
2519
|
+
*/
|
|
2520
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2521
|
+
};
|
|
2522
|
+
export type GetTipsLeaderboardJitoEfficiencyError = GetTipsLeaderboardJitoEfficiencyErrors[keyof GetTipsLeaderboardJitoEfficiencyErrors];
|
|
2523
|
+
export type GetTipsLeaderboardJitoEfficiencyResponses = {
|
|
2524
|
+
/**
|
|
2525
|
+
* OK
|
|
2526
|
+
*/
|
|
2527
|
+
200: Array<PulsightInternalCoreDomainAggregatorJitoEfficiencyRow>;
|
|
2528
|
+
};
|
|
2529
|
+
export type GetTipsLeaderboardJitoEfficiencyResponse = GetTipsLeaderboardJitoEfficiencyResponses[keyof GetTipsLeaderboardJitoEfficiencyResponses];
|
|
2530
|
+
export type GetTipsMatData = {
|
|
2531
|
+
body?: never;
|
|
2532
|
+
path?: never;
|
|
2533
|
+
query?: {
|
|
2534
|
+
/**
|
|
2535
|
+
* Window (30m|1h|12h|1d|7d|30d|all)
|
|
2536
|
+
*/
|
|
2537
|
+
window?: string;
|
|
2538
|
+
};
|
|
2539
|
+
url: '/api/tips/mat';
|
|
2540
|
+
};
|
|
2541
|
+
export type GetTipsMatErrors = {
|
|
2542
|
+
/**
|
|
2543
|
+
* Bad Request
|
|
2544
|
+
*/
|
|
2545
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2546
|
+
};
|
|
2547
|
+
export type GetTipsMatError = GetTipsMatErrors[keyof GetTipsMatErrors];
|
|
2548
|
+
export type GetTipsMatResponses = {
|
|
2549
|
+
/**
|
|
2550
|
+
* OK
|
|
2551
|
+
*/
|
|
2552
|
+
200: Array<PulsightInternalCoreDomainAggregatorMatPoint>;
|
|
2553
|
+
};
|
|
2554
|
+
export type GetTipsMatResponse = GetTipsMatResponses[keyof GetTipsMatResponses];
|
|
2555
|
+
export type GetTipsMevShareData = {
|
|
2556
|
+
body?: never;
|
|
2557
|
+
path?: never;
|
|
2558
|
+
query?: {
|
|
2559
|
+
/**
|
|
2560
|
+
* Window (30m|1h|12h|1d|7d|30d|all)
|
|
2561
|
+
*/
|
|
2562
|
+
window?: string;
|
|
2563
|
+
};
|
|
2564
|
+
url: '/api/tips/mev-share';
|
|
2565
|
+
};
|
|
2566
|
+
export type GetTipsMevShareErrors = {
|
|
2567
|
+
/**
|
|
2568
|
+
* Bad Request
|
|
2569
|
+
*/
|
|
2570
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2571
|
+
};
|
|
2572
|
+
export type GetTipsMevShareError = GetTipsMevShareErrors[keyof GetTipsMevShareErrors];
|
|
2573
|
+
export type GetTipsMevShareResponses = {
|
|
2574
|
+
/**
|
|
2575
|
+
* OK
|
|
2576
|
+
*/
|
|
2577
|
+
200: Array<PulsightInternalCoreDomainAggregatorMevTipSharePoint>;
|
|
2578
|
+
};
|
|
2579
|
+
export type GetTipsMevShareResponse = GetTipsMevShareResponses[keyof GetTipsMevShareResponses];
|
|
2580
|
+
export type GetTipsPriorityRatioData = {
|
|
2581
|
+
body?: never;
|
|
2582
|
+
path?: never;
|
|
2583
|
+
query?: {
|
|
2584
|
+
/**
|
|
2585
|
+
* Window (30m|1h|12h|1d|7d|30d|all)
|
|
2586
|
+
*/
|
|
2587
|
+
window?: string;
|
|
2588
|
+
};
|
|
2589
|
+
url: '/api/tips/priority-ratio';
|
|
2590
|
+
};
|
|
2591
|
+
export type GetTipsPriorityRatioErrors = {
|
|
2592
|
+
/**
|
|
2593
|
+
* Bad Request
|
|
2594
|
+
*/
|
|
2595
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2596
|
+
};
|
|
2597
|
+
export type GetTipsPriorityRatioError = GetTipsPriorityRatioErrors[keyof GetTipsPriorityRatioErrors];
|
|
2598
|
+
export type GetTipsPriorityRatioResponses = {
|
|
2599
|
+
/**
|
|
2600
|
+
* OK
|
|
2601
|
+
*/
|
|
2602
|
+
200: Array<PulsightInternalCoreDomainAggregatorTipPriorityRatioPoint>;
|
|
2603
|
+
};
|
|
2604
|
+
export type GetTipsPriorityRatioResponse = GetTipsPriorityRatioResponses[keyof GetTipsPriorityRatioResponses];
|
|
2605
|
+
export type GetTipsServicesData = {
|
|
2606
|
+
body?: never;
|
|
2607
|
+
path?: never;
|
|
2608
|
+
query?: {
|
|
2609
|
+
/**
|
|
2610
|
+
* Window (30m|1h|12h|1d|7d|30d|all)
|
|
2611
|
+
*/
|
|
2612
|
+
window?: string;
|
|
2613
|
+
};
|
|
2614
|
+
url: '/api/tips/services';
|
|
2615
|
+
};
|
|
2616
|
+
export type GetTipsServicesErrors = {
|
|
2617
|
+
/**
|
|
2618
|
+
* Bad Request
|
|
2619
|
+
*/
|
|
2620
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2621
|
+
};
|
|
2622
|
+
export type GetTipsServicesError = GetTipsServicesErrors[keyof GetTipsServicesErrors];
|
|
2623
|
+
export type GetTipsServicesResponses = {
|
|
2624
|
+
/**
|
|
2625
|
+
* OK
|
|
2626
|
+
*/
|
|
2627
|
+
200: Array<PulsightInternalCoreDomainAggregatorServiceDominanceRow>;
|
|
2628
|
+
};
|
|
2629
|
+
export type GetTipsServicesResponse = GetTipsServicesResponses[keyof GetTipsServicesResponses];
|
|
2630
|
+
export type GetTraderFiltersData = {
|
|
2631
|
+
body?: never;
|
|
2632
|
+
path?: never;
|
|
2633
|
+
query?: never;
|
|
2634
|
+
url: '/api/trader-filters/';
|
|
2635
|
+
};
|
|
2636
|
+
export type GetTraderFiltersErrors = {
|
|
2637
|
+
/**
|
|
2638
|
+
* Unauthorized
|
|
2639
|
+
*/
|
|
2640
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2641
|
+
/**
|
|
2642
|
+
* Internal Server Error
|
|
2643
|
+
*/
|
|
2644
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2645
|
+
};
|
|
2646
|
+
export type GetTraderFiltersError = GetTraderFiltersErrors[keyof GetTraderFiltersErrors];
|
|
2647
|
+
export type GetTraderFiltersResponses = {
|
|
2648
|
+
/**
|
|
2649
|
+
* OK
|
|
2650
|
+
*/
|
|
2651
|
+
200: Array<PulsightInternalCoreDomainTraderFilter>;
|
|
2652
|
+
};
|
|
2653
|
+
export type GetTraderFiltersResponse = GetTraderFiltersResponses[keyof GetTraderFiltersResponses];
|
|
2654
|
+
export type PostTraderFiltersData = {
|
|
2655
|
+
/**
|
|
2656
|
+
* Filter preset details
|
|
2657
|
+
*/
|
|
2658
|
+
body: PulsightInternalCorePortsInputFilterCreateRequest;
|
|
2659
|
+
path?: never;
|
|
2660
|
+
query?: never;
|
|
2661
|
+
url: '/api/trader-filters/';
|
|
2662
|
+
};
|
|
2663
|
+
export type PostTraderFiltersErrors = {
|
|
2664
|
+
/**
|
|
2665
|
+
* Bad Request
|
|
2666
|
+
*/
|
|
2667
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2668
|
+
/**
|
|
2669
|
+
* Unauthorized
|
|
2670
|
+
*/
|
|
2671
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2672
|
+
/**
|
|
2673
|
+
* Forbidden
|
|
2674
|
+
*/
|
|
2675
|
+
403: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2676
|
+
/**
|
|
2677
|
+
* Internal Server Error
|
|
2678
|
+
*/
|
|
2679
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2680
|
+
};
|
|
2681
|
+
export type PostTraderFiltersError = PostTraderFiltersErrors[keyof PostTraderFiltersErrors];
|
|
2682
|
+
export type PostTraderFiltersResponses = {
|
|
2683
|
+
/**
|
|
2684
|
+
* Created
|
|
2685
|
+
*/
|
|
2686
|
+
201: PulsightInternalCoreDomainTraderFilter;
|
|
2687
|
+
};
|
|
2688
|
+
export type PostTraderFiltersResponse = PostTraderFiltersResponses[keyof PostTraderFiltersResponses];
|
|
2689
|
+
export type DeleteTraderFiltersByIdData = {
|
|
2690
|
+
body?: never;
|
|
2691
|
+
path: {
|
|
2692
|
+
/**
|
|
2693
|
+
* Filter preset ID (UUID)
|
|
2694
|
+
*/
|
|
2695
|
+
id: string;
|
|
2696
|
+
};
|
|
2697
|
+
query?: never;
|
|
2698
|
+
url: '/api/trader-filters/{id}';
|
|
2699
|
+
};
|
|
2700
|
+
export type DeleteTraderFiltersByIdErrors = {
|
|
2701
|
+
/**
|
|
2702
|
+
* Bad Request
|
|
2703
|
+
*/
|
|
2704
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2705
|
+
/**
|
|
2706
|
+
* Unauthorized
|
|
2707
|
+
*/
|
|
2708
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2709
|
+
/**
|
|
2710
|
+
* Not Found
|
|
2711
|
+
*/
|
|
2712
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2713
|
+
/**
|
|
2714
|
+
* Internal Server Error
|
|
2715
|
+
*/
|
|
2716
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2717
|
+
};
|
|
2718
|
+
export type DeleteTraderFiltersByIdError = DeleteTraderFiltersByIdErrors[keyof DeleteTraderFiltersByIdErrors];
|
|
2719
|
+
export type DeleteTraderFiltersByIdResponses = {
|
|
2720
|
+
/**
|
|
2721
|
+
* No Content
|
|
2722
|
+
*/
|
|
2723
|
+
204: void;
|
|
2724
|
+
};
|
|
2725
|
+
export type DeleteTraderFiltersByIdResponse = DeleteTraderFiltersByIdResponses[keyof DeleteTraderFiltersByIdResponses];
|
|
2726
|
+
export type GetTraderFiltersByIdData = {
|
|
2727
|
+
body?: never;
|
|
2728
|
+
path: {
|
|
2729
|
+
/**
|
|
2730
|
+
* Filter preset ID (UUID)
|
|
2731
|
+
*/
|
|
2732
|
+
id: string;
|
|
2733
|
+
};
|
|
2734
|
+
query?: never;
|
|
2735
|
+
url: '/api/trader-filters/{id}';
|
|
2736
|
+
};
|
|
2737
|
+
export type GetTraderFiltersByIdErrors = {
|
|
2738
|
+
/**
|
|
2739
|
+
* Bad Request
|
|
2740
|
+
*/
|
|
2741
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2742
|
+
/**
|
|
2743
|
+
* Unauthorized
|
|
2744
|
+
*/
|
|
2745
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2746
|
+
/**
|
|
2747
|
+
* Not Found
|
|
2748
|
+
*/
|
|
2749
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2750
|
+
/**
|
|
2751
|
+
* Internal Server Error
|
|
2752
|
+
*/
|
|
2753
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2754
|
+
};
|
|
2755
|
+
export type GetTraderFiltersByIdError = GetTraderFiltersByIdErrors[keyof GetTraderFiltersByIdErrors];
|
|
2756
|
+
export type GetTraderFiltersByIdResponses = {
|
|
2757
|
+
/**
|
|
2758
|
+
* OK
|
|
2759
|
+
*/
|
|
2760
|
+
200: PulsightInternalCoreDomainTraderFilter;
|
|
2761
|
+
};
|
|
2762
|
+
export type GetTraderFiltersByIdResponse = GetTraderFiltersByIdResponses[keyof GetTraderFiltersByIdResponses];
|
|
2763
|
+
export type PutTraderFiltersByIdData = {
|
|
2764
|
+
/**
|
|
2765
|
+
* Updated filter preset
|
|
2766
|
+
*/
|
|
2767
|
+
body: PulsightInternalCorePortsInputFilterUpdateRequest;
|
|
2768
|
+
path: {
|
|
2769
|
+
/**
|
|
2770
|
+
* Filter preset ID (UUID)
|
|
2771
|
+
*/
|
|
2772
|
+
id: string;
|
|
2773
|
+
};
|
|
2774
|
+
query?: never;
|
|
2775
|
+
url: '/api/trader-filters/{id}';
|
|
2776
|
+
};
|
|
2777
|
+
export type PutTraderFiltersByIdErrors = {
|
|
2778
|
+
/**
|
|
2779
|
+
* Bad Request
|
|
2780
|
+
*/
|
|
2781
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2782
|
+
/**
|
|
2783
|
+
* Unauthorized
|
|
2784
|
+
*/
|
|
2785
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2786
|
+
/**
|
|
2787
|
+
* Not Found
|
|
2788
|
+
*/
|
|
2789
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2790
|
+
/**
|
|
2791
|
+
* Internal Server Error
|
|
2792
|
+
*/
|
|
2793
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2794
|
+
};
|
|
2795
|
+
export type PutTraderFiltersByIdError = PutTraderFiltersByIdErrors[keyof PutTraderFiltersByIdErrors];
|
|
2796
|
+
export type PutTraderFiltersByIdResponses = {
|
|
2797
|
+
/**
|
|
2798
|
+
* OK
|
|
2799
|
+
*/
|
|
2800
|
+
200: PulsightInternalCoreDomainTraderFilter;
|
|
2801
|
+
};
|
|
2802
|
+
export type PutTraderFiltersByIdResponse = PutTraderFiltersByIdResponses[keyof PutTraderFiltersByIdResponses];
|
|
2803
|
+
export type GetTradersData = {
|
|
2804
|
+
body?: never;
|
|
2805
|
+
path?: never;
|
|
2806
|
+
query?: {
|
|
2807
|
+
/**
|
|
2808
|
+
* Limit
|
|
2809
|
+
*/
|
|
2810
|
+
limit?: number;
|
|
2811
|
+
/**
|
|
2812
|
+
* Offset
|
|
2813
|
+
*/
|
|
2814
|
+
offset?: number;
|
|
2815
|
+
/**
|
|
2816
|
+
* Sort By field
|
|
2817
|
+
*/
|
|
2818
|
+
sort_by?: string;
|
|
2819
|
+
/**
|
|
2820
|
+
* Sort Direction
|
|
2821
|
+
*/
|
|
2822
|
+
direction?: string;
|
|
2823
|
+
/**
|
|
2824
|
+
* Restrict to the caller's favorited traders (authenticated only)
|
|
2825
|
+
*/
|
|
2826
|
+
favorites_only?: boolean;
|
|
2827
|
+
};
|
|
2828
|
+
url: '/api/traders';
|
|
2829
|
+
};
|
|
2830
|
+
export type GetTradersErrors = {
|
|
2831
|
+
/**
|
|
2832
|
+
* Bad Request
|
|
2833
|
+
*/
|
|
2834
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2835
|
+
/**
|
|
2836
|
+
* Unauthorized
|
|
2837
|
+
*/
|
|
2838
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2839
|
+
/**
|
|
2840
|
+
* CREDIT_EXHAUSTED — api credit pool empty (only when credit enforcement is enabled)
|
|
2841
|
+
*/
|
|
2842
|
+
402: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2843
|
+
/**
|
|
2844
|
+
* Internal Server Error
|
|
2845
|
+
*/
|
|
2846
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2847
|
+
};
|
|
2848
|
+
export type GetTradersError = GetTradersErrors[keyof GetTradersErrors];
|
|
2849
|
+
export type GetTradersResponses = {
|
|
2850
|
+
/**
|
|
2851
|
+
* OK
|
|
2852
|
+
*/
|
|
2853
|
+
200: PulsightInternalCoreUsecasesTraderTraderListResult;
|
|
2854
|
+
};
|
|
2855
|
+
export type GetTradersResponse = GetTradersResponses[keyof GetTradersResponses];
|
|
2856
|
+
export type GetTradersByIdByTraderIdData = {
|
|
2857
|
+
body?: never;
|
|
2858
|
+
path: {
|
|
2859
|
+
/**
|
|
2860
|
+
* Trader ID
|
|
2861
|
+
*/
|
|
2862
|
+
traderID: string;
|
|
2863
|
+
};
|
|
2864
|
+
query?: never;
|
|
2865
|
+
url: '/api/traders/by-id/{traderID}';
|
|
2866
|
+
};
|
|
2867
|
+
export type GetTradersByIdByTraderIdErrors = {
|
|
2868
|
+
/**
|
|
2869
|
+
* Bad Request
|
|
2870
|
+
*/
|
|
2871
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2872
|
+
/**
|
|
2873
|
+
* Unauthorized
|
|
2874
|
+
*/
|
|
2875
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2876
|
+
/**
|
|
2877
|
+
* Not Found
|
|
2878
|
+
*/
|
|
2879
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2880
|
+
/**
|
|
2881
|
+
* Internal Server Error
|
|
2882
|
+
*/
|
|
2883
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2884
|
+
};
|
|
2885
|
+
export type GetTradersByIdByTraderIdError = GetTradersByIdByTraderIdErrors[keyof GetTradersByIdByTraderIdErrors];
|
|
2886
|
+
export type GetTradersByIdByTraderIdResponses = {
|
|
2887
|
+
/**
|
|
2888
|
+
* OK
|
|
2889
|
+
*/
|
|
2890
|
+
200: PulsightInternalCoreUsecasesTraderTraderListItem;
|
|
2891
|
+
};
|
|
2892
|
+
export type GetTradersByIdByTraderIdResponse = GetTradersByIdByTraderIdResponses[keyof GetTradersByIdByTraderIdResponses];
|
|
2893
|
+
export type GetTradersByWalletByWalletAddressData = {
|
|
2894
|
+
body?: never;
|
|
2895
|
+
path: {
|
|
2896
|
+
/**
|
|
2897
|
+
* Wallet Address
|
|
2898
|
+
*/
|
|
2899
|
+
walletAddress: string;
|
|
2900
|
+
};
|
|
2901
|
+
query?: never;
|
|
2902
|
+
url: '/api/traders/by-wallet/{walletAddress}';
|
|
2903
|
+
};
|
|
2904
|
+
export type GetTradersByWalletByWalletAddressErrors = {
|
|
2905
|
+
/**
|
|
2906
|
+
* Unauthorized
|
|
2907
|
+
*/
|
|
2908
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2909
|
+
/**
|
|
2910
|
+
* Not Found
|
|
2911
|
+
*/
|
|
2912
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2913
|
+
/**
|
|
2914
|
+
* Internal Server Error
|
|
2915
|
+
*/
|
|
2916
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2917
|
+
};
|
|
2918
|
+
export type GetTradersByWalletByWalletAddressError = GetTradersByWalletByWalletAddressErrors[keyof GetTradersByWalletByWalletAddressErrors];
|
|
2919
|
+
export type GetTradersByWalletByWalletAddressResponses = {
|
|
2920
|
+
/**
|
|
2921
|
+
* OK
|
|
2922
|
+
*/
|
|
2923
|
+
200: PulsightInternalCoreUsecasesTraderTraderListItem;
|
|
2924
|
+
};
|
|
2925
|
+
export type GetTradersByWalletByWalletAddressResponse = GetTradersByWalletByWalletAddressResponses[keyof GetTradersByWalletByWalletAddressResponses];
|
|
2926
|
+
export type PostTradersExportData = {
|
|
2927
|
+
/**
|
|
2928
|
+
* Export Filter Details
|
|
2929
|
+
*/
|
|
2930
|
+
body: InternalAdaptersPrimaryHttpHandlerTraderExportRequest;
|
|
2931
|
+
path?: never;
|
|
2932
|
+
query?: never;
|
|
2933
|
+
url: '/api/traders/export';
|
|
2934
|
+
};
|
|
2935
|
+
export type PostTradersExportErrors = {
|
|
2936
|
+
/**
|
|
2937
|
+
* Bad Request
|
|
2938
|
+
*/
|
|
2939
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2940
|
+
/**
|
|
2941
|
+
* Unauthorized
|
|
2942
|
+
*/
|
|
2943
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2944
|
+
/**
|
|
2945
|
+
* CREDIT_EXHAUSTED — api credit pool empty (only when credit enforcement is enabled)
|
|
2946
|
+
*/
|
|
2947
|
+
402: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2948
|
+
/**
|
|
2949
|
+
* Internal Server Error
|
|
2950
|
+
*/
|
|
2951
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2952
|
+
};
|
|
2953
|
+
export type PostTradersExportError = PostTradersExportErrors[keyof PostTradersExportErrors];
|
|
2954
|
+
export type PostTradersExportResponses = {
|
|
2955
|
+
/**
|
|
2956
|
+
* OK
|
|
2957
|
+
*/
|
|
2958
|
+
200: Array<PulsightInternalCoreDomainTraderTrader>;
|
|
2959
|
+
};
|
|
2960
|
+
export type PostTradersExportResponse = PostTradersExportResponses[keyof PostTradersExportResponses];
|
|
2961
|
+
export type GetTradersSearchData = {
|
|
2962
|
+
body?: never;
|
|
2963
|
+
path?: never;
|
|
2964
|
+
query?: {
|
|
2965
|
+
/**
|
|
2966
|
+
* Search query
|
|
2967
|
+
*/
|
|
2968
|
+
q?: string;
|
|
2969
|
+
/**
|
|
2970
|
+
* Blockchain filter — only 'sol' is accepted post roadmap subtask 2.6 (BSC removed). Empty defaults to 'sol'.
|
|
2971
|
+
*/
|
|
2972
|
+
chain?: string;
|
|
2973
|
+
/**
|
|
2974
|
+
* Limit
|
|
2975
|
+
*/
|
|
2976
|
+
limit?: number;
|
|
2977
|
+
};
|
|
2978
|
+
url: '/api/traders/search';
|
|
2979
|
+
};
|
|
2980
|
+
export type GetTradersSearchErrors = {
|
|
2981
|
+
/**
|
|
2982
|
+
* Bad Request
|
|
2983
|
+
*/
|
|
2984
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2985
|
+
/**
|
|
2986
|
+
* Unauthorized
|
|
2987
|
+
*/
|
|
2988
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2989
|
+
/**
|
|
2990
|
+
* Internal Server Error
|
|
2991
|
+
*/
|
|
2992
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
2993
|
+
};
|
|
2994
|
+
export type GetTradersSearchError = GetTradersSearchErrors[keyof GetTradersSearchErrors];
|
|
2995
|
+
export type GetTradersSearchResponses = {
|
|
2996
|
+
/**
|
|
2997
|
+
* OK
|
|
2998
|
+
*/
|
|
2999
|
+
200: Array<PulsightInternalCoreDomainTraderTrader>;
|
|
3000
|
+
};
|
|
3001
|
+
export type GetTradersSearchResponse = GetTradersSearchResponses[keyof GetTradersSearchResponses];
|
|
3002
|
+
export type GetTradersSnapshotData = {
|
|
3003
|
+
body?: never;
|
|
3004
|
+
path?: never;
|
|
3005
|
+
query: {
|
|
3006
|
+
/**
|
|
3007
|
+
* Comma-separated wallet addresses
|
|
3008
|
+
*/
|
|
3009
|
+
traders: string;
|
|
3010
|
+
/**
|
|
3011
|
+
* Window label (7d|30d)
|
|
3012
|
+
*/
|
|
3013
|
+
window?: string;
|
|
3014
|
+
};
|
|
3015
|
+
url: '/api/traders/snapshot';
|
|
3016
|
+
};
|
|
3017
|
+
export type GetTradersSnapshotErrors = {
|
|
3018
|
+
/**
|
|
3019
|
+
* Unauthorized
|
|
3020
|
+
*/
|
|
3021
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3022
|
+
};
|
|
3023
|
+
export type GetTradersSnapshotError = GetTradersSnapshotErrors[keyof GetTradersSnapshotErrors];
|
|
3024
|
+
export type GetTradersSnapshotResponses = {
|
|
3025
|
+
/**
|
|
3026
|
+
* OK
|
|
3027
|
+
*/
|
|
3028
|
+
200: InternalAdaptersPrimaryHttpHandlerSnapshotResponse;
|
|
3029
|
+
};
|
|
3030
|
+
export type GetTradersSnapshotResponse = GetTradersSnapshotResponses[keyof GetTradersSnapshotResponses];
|
|
3031
|
+
export type GetTradersByTraderIdDailyProfitsData = {
|
|
3032
|
+
body?: never;
|
|
3033
|
+
path: {
|
|
3034
|
+
/**
|
|
3035
|
+
* Trader ID
|
|
3036
|
+
*/
|
|
3037
|
+
traderID: string;
|
|
3038
|
+
};
|
|
3039
|
+
query?: {
|
|
3040
|
+
/**
|
|
3041
|
+
* Limit (1..200)
|
|
3042
|
+
*/
|
|
3043
|
+
limit?: number;
|
|
3044
|
+
/**
|
|
3045
|
+
* Offset
|
|
3046
|
+
*/
|
|
3047
|
+
offset?: number;
|
|
3048
|
+
/**
|
|
3049
|
+
* Inclusive lower bound, YYYY-MM-DD
|
|
3050
|
+
*/
|
|
3051
|
+
from_date?: string;
|
|
3052
|
+
/**
|
|
3053
|
+
* Inclusive upper bound, YYYY-MM-DD
|
|
3054
|
+
*/
|
|
3055
|
+
to_date?: string;
|
|
3056
|
+
/**
|
|
3057
|
+
* Sort column
|
|
3058
|
+
*/
|
|
3059
|
+
sort_by?: string;
|
|
3060
|
+
/**
|
|
3061
|
+
* asc | desc
|
|
3062
|
+
*/
|
|
3063
|
+
direction?: string;
|
|
3064
|
+
};
|
|
3065
|
+
url: '/api/traders/{traderID}/daily-profits';
|
|
3066
|
+
};
|
|
3067
|
+
export type GetTradersByTraderIdDailyProfitsErrors = {
|
|
3068
|
+
/**
|
|
3069
|
+
* Bad Request
|
|
3070
|
+
*/
|
|
3071
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3072
|
+
/**
|
|
3073
|
+
* Not Found
|
|
3074
|
+
*/
|
|
3075
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3076
|
+
/**
|
|
3077
|
+
* Internal Server Error
|
|
3078
|
+
*/
|
|
3079
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3080
|
+
};
|
|
3081
|
+
export type GetTradersByTraderIdDailyProfitsError = GetTradersByTraderIdDailyProfitsErrors[keyof GetTradersByTraderIdDailyProfitsErrors];
|
|
3082
|
+
export type GetTradersByTraderIdDailyProfitsResponses = {
|
|
3083
|
+
/**
|
|
3084
|
+
* OK
|
|
3085
|
+
*/
|
|
3086
|
+
200: PulsightInternalCoreUsecasesTraderDailyProfitsResult;
|
|
3087
|
+
};
|
|
3088
|
+
export type GetTradersByTraderIdDailyProfitsResponse = GetTradersByTraderIdDailyProfitsResponses[keyof GetTradersByTraderIdDailyProfitsResponses];
|
|
3089
|
+
export type GetTradersByTraderIdPnlsData = {
|
|
3090
|
+
body?: never;
|
|
3091
|
+
path: {
|
|
3092
|
+
/**
|
|
3093
|
+
* Trader ID
|
|
3094
|
+
*/
|
|
3095
|
+
traderID: string;
|
|
3096
|
+
};
|
|
3097
|
+
query?: {
|
|
3098
|
+
/**
|
|
3099
|
+
* Search by token address or symbol
|
|
3100
|
+
*/
|
|
3101
|
+
token_search?: string;
|
|
3102
|
+
/**
|
|
3103
|
+
* Limit
|
|
3104
|
+
*/
|
|
3105
|
+
limit?: number;
|
|
3106
|
+
/**
|
|
3107
|
+
* Offset
|
|
3108
|
+
*/
|
|
3109
|
+
offset?: number;
|
|
3110
|
+
/**
|
|
3111
|
+
* Sort By field
|
|
3112
|
+
*/
|
|
3113
|
+
sort_by?: string;
|
|
3114
|
+
/**
|
|
3115
|
+
* Sort Direction
|
|
3116
|
+
*/
|
|
3117
|
+
direction?: string;
|
|
3118
|
+
};
|
|
3119
|
+
url: '/api/traders/{traderID}/pnls';
|
|
3120
|
+
};
|
|
3121
|
+
export type GetTradersByTraderIdPnlsErrors = {
|
|
3122
|
+
/**
|
|
3123
|
+
* Bad Request
|
|
3124
|
+
*/
|
|
3125
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3126
|
+
/**
|
|
3127
|
+
* Internal Server Error
|
|
3128
|
+
*/
|
|
3129
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3130
|
+
};
|
|
3131
|
+
export type GetTradersByTraderIdPnlsError = GetTradersByTraderIdPnlsErrors[keyof GetTradersByTraderIdPnlsErrors];
|
|
3132
|
+
export type GetTradersByTraderIdPnlsResponses = {
|
|
3133
|
+
/**
|
|
3134
|
+
* OK
|
|
3135
|
+
*/
|
|
3136
|
+
200: InternalAdaptersPrimaryHttpHandlerPaginatedPnls;
|
|
3137
|
+
};
|
|
3138
|
+
export type GetTradersByTraderIdPnlsResponse = GetTradersByTraderIdPnlsResponses[keyof GetTradersByTraderIdPnlsResponses];
|
|
3139
|
+
export type GetTradersByWalletAddressCreatedTokensData = {
|
|
3140
|
+
body?: never;
|
|
3141
|
+
path: {
|
|
3142
|
+
/**
|
|
3143
|
+
* Wallet Address
|
|
3144
|
+
*/
|
|
3145
|
+
walletAddress: string;
|
|
3146
|
+
};
|
|
3147
|
+
query?: {
|
|
3148
|
+
/**
|
|
3149
|
+
* Max rows (default 100, max 500)
|
|
3150
|
+
*/
|
|
3151
|
+
limit?: number;
|
|
3152
|
+
/**
|
|
3153
|
+
* Page offset
|
|
3154
|
+
*/
|
|
3155
|
+
offset?: number;
|
|
3156
|
+
};
|
|
3157
|
+
url: '/api/traders/{walletAddress}/created-tokens';
|
|
3158
|
+
};
|
|
3159
|
+
export type GetTradersByWalletAddressCreatedTokensErrors = {
|
|
3160
|
+
/**
|
|
3161
|
+
* Unauthorized
|
|
3162
|
+
*/
|
|
3163
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3164
|
+
/**
|
|
3165
|
+
* Internal Server Error
|
|
3166
|
+
*/
|
|
3167
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3168
|
+
};
|
|
3169
|
+
export type GetTradersByWalletAddressCreatedTokensError = GetTradersByWalletAddressCreatedTokensErrors[keyof GetTradersByWalletAddressCreatedTokensErrors];
|
|
3170
|
+
export type GetTradersByWalletAddressCreatedTokensResponses = {
|
|
3171
|
+
/**
|
|
3172
|
+
* OK
|
|
3173
|
+
*/
|
|
3174
|
+
200: Array<PulsightInternalCoreDomainAggregatorCreatedMintRow>;
|
|
3175
|
+
};
|
|
3176
|
+
export type GetTradersByWalletAddressCreatedTokensResponse = GetTradersByWalletAddressCreatedTokensResponses[keyof GetTradersByWalletAddressCreatedTokensResponses];
|
|
3177
|
+
export type GetTradersByWalletAddressPnlSeriesData = {
|
|
3178
|
+
body?: never;
|
|
3179
|
+
path: {
|
|
3180
|
+
/**
|
|
3181
|
+
* Wallet Address
|
|
3182
|
+
*/
|
|
3183
|
+
walletAddress: string;
|
|
3184
|
+
};
|
|
3185
|
+
query?: {
|
|
3186
|
+
/**
|
|
3187
|
+
* Time window
|
|
3188
|
+
*/
|
|
3189
|
+
window?: '1d' | '7d' | '30d' | 'all';
|
|
3190
|
+
};
|
|
3191
|
+
url: '/api/traders/{walletAddress}/pnl-series';
|
|
3192
|
+
};
|
|
3193
|
+
export type GetTradersByWalletAddressPnlSeriesErrors = {
|
|
3194
|
+
/**
|
|
3195
|
+
* Bad Request
|
|
3196
|
+
*/
|
|
3197
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3198
|
+
/**
|
|
3199
|
+
* Unauthorized
|
|
3200
|
+
*/
|
|
3201
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3202
|
+
/**
|
|
3203
|
+
* Internal Server Error
|
|
3204
|
+
*/
|
|
3205
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3206
|
+
};
|
|
3207
|
+
export type GetTradersByWalletAddressPnlSeriesError = GetTradersByWalletAddressPnlSeriesErrors[keyof GetTradersByWalletAddressPnlSeriesErrors];
|
|
3208
|
+
export type GetTradersByWalletAddressPnlSeriesResponses = {
|
|
3209
|
+
/**
|
|
3210
|
+
* OK
|
|
3211
|
+
*/
|
|
3212
|
+
200: PulsightInternalCoreUsecasesTraderPnlSeriesResult;
|
|
3213
|
+
};
|
|
3214
|
+
export type GetTradersByWalletAddressPnlSeriesResponse = GetTradersByWalletAddressPnlSeriesResponses[keyof GetTradersByWalletAddressPnlSeriesResponses];
|
|
3215
|
+
export type GetTradersByWalletAddressTipsData = {
|
|
3216
|
+
body?: never;
|
|
3217
|
+
path: {
|
|
3218
|
+
/**
|
|
3219
|
+
* Wallet address
|
|
3220
|
+
*/
|
|
3221
|
+
walletAddress: string;
|
|
3222
|
+
};
|
|
3223
|
+
query?: {
|
|
3224
|
+
/**
|
|
3225
|
+
* Window (1d|7d|30d|all)
|
|
3226
|
+
*/
|
|
3227
|
+
window?: string;
|
|
3228
|
+
};
|
|
3229
|
+
url: '/api/traders/{walletAddress}/tips';
|
|
3230
|
+
};
|
|
3231
|
+
export type GetTradersByWalletAddressTipsErrors = {
|
|
3232
|
+
/**
|
|
3233
|
+
* Bad Request
|
|
3234
|
+
*/
|
|
3235
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3236
|
+
/**
|
|
3237
|
+
* Unauthorized
|
|
3238
|
+
*/
|
|
3239
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3240
|
+
/**
|
|
3241
|
+
* Not Found
|
|
3242
|
+
*/
|
|
3243
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3244
|
+
/**
|
|
3245
|
+
* Internal Server Error
|
|
3246
|
+
*/
|
|
3247
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3248
|
+
};
|
|
3249
|
+
export type GetTradersByWalletAddressTipsError = GetTradersByWalletAddressTipsErrors[keyof GetTradersByWalletAddressTipsErrors];
|
|
3250
|
+
export type GetTradersByWalletAddressTipsResponses = {
|
|
3251
|
+
/**
|
|
3252
|
+
* OK
|
|
3253
|
+
*/
|
|
3254
|
+
200: InternalAdaptersPrimaryHttpHandlerTraderTipStatsResponse;
|
|
3255
|
+
};
|
|
3256
|
+
export type GetTradersByWalletAddressTipsResponse = GetTradersByWalletAddressTipsResponses[keyof GetTradersByWalletAddressTipsResponses];
|
|
3257
|
+
export type GetTradersByWalletAddressTipsServicesData = {
|
|
3258
|
+
body?: never;
|
|
3259
|
+
path: {
|
|
3260
|
+
/**
|
|
3261
|
+
* Wallet address
|
|
3262
|
+
*/
|
|
3263
|
+
walletAddress: string;
|
|
3264
|
+
};
|
|
3265
|
+
query?: {
|
|
3266
|
+
/**
|
|
3267
|
+
* Window (1d|7d|30d|all)
|
|
3268
|
+
*/
|
|
3269
|
+
window?: string;
|
|
3270
|
+
};
|
|
3271
|
+
url: '/api/traders/{walletAddress}/tips/services';
|
|
3272
|
+
};
|
|
3273
|
+
export type GetTradersByWalletAddressTipsServicesErrors = {
|
|
3274
|
+
/**
|
|
3275
|
+
* Bad Request
|
|
3276
|
+
*/
|
|
3277
|
+
400: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3278
|
+
/**
|
|
3279
|
+
* Unauthorized
|
|
3280
|
+
*/
|
|
3281
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3282
|
+
/**
|
|
3283
|
+
* Internal Server Error
|
|
3284
|
+
*/
|
|
3285
|
+
500: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3286
|
+
};
|
|
3287
|
+
export type GetTradersByWalletAddressTipsServicesError = GetTradersByWalletAddressTipsServicesErrors[keyof GetTradersByWalletAddressTipsServicesErrors];
|
|
3288
|
+
export type GetTradersByWalletAddressTipsServicesResponses = {
|
|
3289
|
+
/**
|
|
3290
|
+
* OK
|
|
3291
|
+
*/
|
|
3292
|
+
200: Array<InternalAdaptersPrimaryHttpHandlerServiceLoyaltyRow>;
|
|
3293
|
+
};
|
|
3294
|
+
export type GetTradersByWalletAddressTipsServicesResponse = GetTradersByWalletAddressTipsServicesResponses[keyof GetTradersByWalletAddressTipsServicesResponses];
|
|
3295
|
+
export type GetTradersByWalletAddressTokensData = {
|
|
3296
|
+
body?: never;
|
|
3297
|
+
path: {
|
|
3298
|
+
/**
|
|
3299
|
+
* Wallet address
|
|
3300
|
+
*/
|
|
3301
|
+
walletAddress: string;
|
|
3302
|
+
};
|
|
3303
|
+
query?: {
|
|
3304
|
+
/**
|
|
3305
|
+
* Sort key (profit|invested|balance|recent)
|
|
3306
|
+
*/
|
|
3307
|
+
sort?: string;
|
|
3308
|
+
/**
|
|
3309
|
+
* Limit
|
|
3310
|
+
*/
|
|
3311
|
+
limit?: number;
|
|
3312
|
+
/**
|
|
3313
|
+
* Offset
|
|
3314
|
+
*/
|
|
3315
|
+
offset?: number;
|
|
3316
|
+
};
|
|
3317
|
+
url: '/api/traders/{walletAddress}/tokens';
|
|
3318
|
+
};
|
|
3319
|
+
export type GetTradersByWalletAddressTokensErrors = {
|
|
3320
|
+
/**
|
|
3321
|
+
* Unauthorized
|
|
3322
|
+
*/
|
|
3323
|
+
401: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3324
|
+
/**
|
|
3325
|
+
* Not Found
|
|
3326
|
+
*/
|
|
3327
|
+
404: InternalAdaptersPrimaryHttpHandlerErrorResponse;
|
|
3328
|
+
};
|
|
3329
|
+
export type GetTradersByWalletAddressTokensError = GetTradersByWalletAddressTokensErrors[keyof GetTradersByWalletAddressTokensErrors];
|
|
3330
|
+
export type GetTradersByWalletAddressTokensResponses = {
|
|
3331
|
+
/**
|
|
3332
|
+
* OK
|
|
3333
|
+
*/
|
|
3334
|
+
200: Array<InternalAdaptersPrimaryHttpHandlerTokensRow>;
|
|
3335
|
+
};
|
|
3336
|
+
export type GetTradersByWalletAddressTokensResponse = GetTradersByWalletAddressTokensResponses[keyof GetTradersByWalletAddressTokensResponses];
|
|
3337
|
+
//# sourceMappingURL=types.gen.d.ts.map
|