@syldel/hl-shared-types 0.0.18 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/interfaces/infos/collateral-balance.interfaces.d.ts +60 -0
- package/dist/interfaces/infos/collateral-balance.interfaces.js +2 -0
- package/dist/interfaces/infos/index.d.ts +1 -0
- package/dist/interfaces/infos/index.js +1 -0
- package/dist/interfaces/perp/meta.interfaces.d.ts +23 -0
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DecimalString } from '../common';
|
|
2
|
+
import { AccountAbstractionMode } from './account-abstraction.type';
|
|
3
|
+
/**
|
|
4
|
+
* ============================================================================
|
|
5
|
+
* LE COLLATÉRAL D'UN MARCHÉ : TROIS RÉPONSES, PAS UN NOMBRE
|
|
6
|
+
*
|
|
7
|
+
* Réponse de `GET /hyperliquid/info/collateral-balance` du gateway.
|
|
8
|
+
*
|
|
9
|
+
* Ce type vit ici parce qu'il **traverse** le réseau : le gateway le produit,
|
|
10
|
+
* le bot le consomme. Une copie de chaque côté finirait par diverger, et la
|
|
11
|
+
* divergence porterait sur un chiffre qui dimensionne des ordres.
|
|
12
|
+
*
|
|
13
|
+
* Trois cas, parce que leurs remèdes sont trois : approvisionner le compte,
|
|
14
|
+
* corriger le nom du marché, ou attendre que le registre soit synchronisé.
|
|
15
|
+
* Jusqu'au 2026-10-01 les trois rendaient `'0'`, donc aucun n'était
|
|
16
|
+
* distinguable d'un compte vide — et `'0'` sur un calcul de taille fait
|
|
17
|
+
* dimensionner un ordre sur un capital qui n'a jamais été lu.
|
|
18
|
+
* ============================================================================
|
|
19
|
+
*/
|
|
20
|
+
export type CollateralBalance =
|
|
21
|
+
/** Le solde a été lu. `total` et `used` sont ceux du collatéral nommé. */
|
|
22
|
+
{
|
|
23
|
+
status: 'ok';
|
|
24
|
+
/** Le mode qui a décidé d'où le solde a été lu — spot, ou état perp du dex. */
|
|
25
|
+
mode: AccountAbstractionMode;
|
|
26
|
+
/** Symbole du collatéral, pour l'affichage et les journaux. */
|
|
27
|
+
collateral: string;
|
|
28
|
+
/**
|
|
29
|
+
* Index du token, qui fait autorité pour apparier un solde.
|
|
30
|
+
* `null` quand l'appelant a imposé un symbole plutôt qu'un index.
|
|
31
|
+
*/
|
|
32
|
+
collateralToken: number | null;
|
|
33
|
+
total: DecimalString;
|
|
34
|
+
used: DecimalString;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Le collatéral est identifié, mais le compte ne porte aucune ligne pour lui.
|
|
38
|
+
*
|
|
39
|
+
* ⚠️ Ce n'est **pas** la même chose qu'un solde nul. Hyperliquid n'énumère
|
|
40
|
+
* que les actifs que le compte a touchés : une absence vaut probablement
|
|
41
|
+
* zéro, mais « probablement » ne se présente pas comme un solde.
|
|
42
|
+
*/
|
|
43
|
+
| {
|
|
44
|
+
status: 'no-balance-entry';
|
|
45
|
+
mode: AccountAbstractionMode;
|
|
46
|
+
collateral: string;
|
|
47
|
+
collateralToken: number | null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Le catalogue ne dit pas dans quoi ce marché se règle — nom inconnu, ou
|
|
51
|
+
* registre pas encore synchronisé.
|
|
52
|
+
*
|
|
53
|
+
* Aucune valeur de repli n'est fournie, et c'est le point : la table en dur
|
|
54
|
+
* que ce contrat remplace répondait « USDC » à cette question.
|
|
55
|
+
*/
|
|
56
|
+
| {
|
|
57
|
+
status: 'unknown-collateral';
|
|
58
|
+
mode: AccountAbstractionMode;
|
|
59
|
+
asset: string;
|
|
60
|
+
};
|
|
@@ -19,3 +19,4 @@ __exportStar(require("./portfolio.interfaces"), exports);
|
|
|
19
19
|
__exportStar(require("./l2Book.interfaces"), exports);
|
|
20
20
|
__exportStar(require("./active-asset.interfaces"), exports);
|
|
21
21
|
__exportStar(require("./account-abstraction.type"), exports);
|
|
22
|
+
__exportStar(require("./collateral-balance.interfaces"), exports);
|
|
@@ -46,6 +46,29 @@ export interface HLPerpMeta {
|
|
|
46
46
|
universe: HLPerpMarketInfo[];
|
|
47
47
|
/** Margin configuration tables. */
|
|
48
48
|
marginTables: HLPerpMarginTableEntry[];
|
|
49
|
+
/**
|
|
50
|
+
* Index du token qui sert de collatéral à **tout** ce dex — `0` pour USDC.
|
|
51
|
+
*
|
|
52
|
+
* C'est la correspondance dex → collatéral que l'exchange publie, et la seule
|
|
53
|
+
* qui ne vieillit pas. Les trois dépôts en tenaient jusqu'ici une copie en
|
|
54
|
+
* dur (`cash → USDT`, `hyna → USDE`, sinon USDC) : elle était **juste** quand
|
|
55
|
+
* elle a été écrite — les marchés Dreamcash s'appelaient bien `TSLA-USDT` et
|
|
56
|
+
* la marge HyENA était rendue en USDE — mais ces deux dex ont été éteints en
|
|
57
|
+
* juin et août 2026, et elle ne couvrait de toute façon que 2 des 10 dex
|
|
58
|
+
* déployés. Relevé le 2026-09-30 : les quatre dex vivants (`xyz`, `para`,
|
|
59
|
+
* `mkts`, `io`) rendent tous `collateralToken: 0`.
|
|
60
|
+
*
|
|
61
|
+
* Un `index`, et non un symbole : c'est ce que fait le calcul officiel du
|
|
62
|
+
* ratio de compte unifié, qui apparie ensuite `spotBalances[].token`. Deux
|
|
63
|
+
* tokens peuvent porter le même nom ; aucun ne partage un index. Le symbole
|
|
64
|
+
* se retrouve dans `spotMeta.tokens[].name`, pour l'affichage seulement.
|
|
65
|
+
*
|
|
66
|
+
* ⚠️ Optionnel, bien que l'API le rende sur tous les dex mesurés — y compris
|
|
67
|
+
* le principal : la doc de `meta` ne le montre pas dans son exemple (celle de
|
|
68
|
+
* `metaAndAssetCtxs`, si). Une réponse qui ne le porterait pas doit se
|
|
69
|
+
* traiter comme une absence de réponse, jamais comme « USDC par défaut ».
|
|
70
|
+
*/
|
|
71
|
+
collateralToken?: number;
|
|
49
72
|
}
|
|
50
73
|
/**
|
|
51
74
|
* Market metadata including its index in the universe list.
|