@syldel/hl-shared-types 0.0.25 → 0.0.27
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.
|
@@ -4,12 +4,21 @@ import { AccountAbstractionMode } from './account-abstraction.type';
|
|
|
4
4
|
* ============================================================================
|
|
5
5
|
* LE COLLATÉRAL D'UN MARCHÉ : TROIS RÉPONSES, PAS UN NOMBRE
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Ce que le **service** du gateway calcule pour un marché donné
|
|
8
|
+
* (`getCollateralBalance(asset)`). La **route**
|
|
9
|
+
* `GET /hyperliquid/info/collateral-balance` répond autre chose :
|
|
10
|
+
* `CollateralBalanceResponse`, plus bas, qui y ajoute `asset`.
|
|
8
11
|
*
|
|
9
12
|
* Ce type vit ici parce qu'il **traverse** le réseau : le gateway le produit,
|
|
10
13
|
* le bot le consomme. Une copie de chaque côté finirait par diverger, et la
|
|
11
14
|
* divergence porterait sur un chiffre qui dimensionne des ordres.
|
|
12
15
|
*
|
|
16
|
+
* Aucun des quatre cas ne porte `asset` : l'appelant l'a passé en paramètre et
|
|
17
|
+
* le connaît. Jusqu'au 2026-10-19 deux d'entre eux le rendaient, les deux autres
|
|
18
|
+
* non, et la route l'ajoutait de toute façon : trois sources pour une valeur
|
|
19
|
+
* que personne n'avait besoin de relire dans le résultat, et un faux gateway
|
|
20
|
+
* qui l'avait omis faute d'un type de réponse à compiler contre.
|
|
21
|
+
*
|
|
13
22
|
* Trois cas, parce que leurs remèdes sont trois : approvisionner le compte,
|
|
14
23
|
* corriger le nom du marché, ou attendre que le registre soit synchronisé.
|
|
15
24
|
* Jusqu'au 2026-10-01 les trois rendaient `'0'`, donc aucun n'était
|
|
@@ -56,7 +65,6 @@ export type CollateralBalance =
|
|
|
56
65
|
| {
|
|
57
66
|
status: 'unknown-collateral';
|
|
58
67
|
mode: AccountAbstractionMode;
|
|
59
|
-
asset: string;
|
|
60
68
|
}
|
|
61
69
|
/**
|
|
62
70
|
* Le compte est dans un mode dont ce gateway ne sait pas lire le collatéral.
|
|
@@ -80,5 +88,25 @@ export type CollateralBalance =
|
|
|
80
88
|
| {
|
|
81
89
|
status: 'unsupported-mode';
|
|
82
90
|
mode: AccountAbstractionMode;
|
|
83
|
-
asset: string;
|
|
84
91
|
};
|
|
92
|
+
/**
|
|
93
|
+
* Ce que la **route** `GET /hyperliquid/info/collateral-balance` répond : le
|
|
94
|
+
* résultat du service, précédé de `asset`, le marché interrogé (`?asset=`).
|
|
95
|
+
*
|
|
96
|
+
* Le contrôleur du gateway fait `{ asset, ...balance }` quel que soit le
|
|
97
|
+
* statut. Mesuré sur un `ok` le 2026-10-18 (quatre lectures de la capture réelle
|
|
98
|
+
* du bot, ETH, compte unifié) : `asset` y est la première clé. Pour les trois
|
|
99
|
+
* autres statuts, c'est une lecture du contrôleur, pas une mesure.
|
|
100
|
+
*
|
|
101
|
+
* Ce type est celui qu'un client HTTP et un double de la route (le faux gateway
|
|
102
|
+
* du bot) doivent viser : un écart de forme avec la route devient une erreur de
|
|
103
|
+
* compilation, et non une divergence découverte en réel. Un code qui n'a besoin
|
|
104
|
+
* que du résultat garde `CollateralBalance`, dont celui-ci est un sous-type.
|
|
105
|
+
*
|
|
106
|
+
* ⚠️ `asset` est la valeur brute de `?asset=` : tant que le gateway ne refuse pas
|
|
107
|
+
* une requête sans ce paramètre, il manque de la réponse dans ce cas (la clé est
|
|
108
|
+
* omise par JSON) et ce type est alors faux. Les clients le fournissent toujours.
|
|
109
|
+
*/
|
|
110
|
+
export type CollateralBalanceResponse = {
|
|
111
|
+
asset: string;
|
|
112
|
+
} & CollateralBalance;
|
|
@@ -104,7 +104,17 @@ export interface HlUserFees {
|
|
|
104
104
|
* dans ce commentaire plutôt que dans un type qui ne le dirait pas.
|
|
105
105
|
*/
|
|
106
106
|
trial: unknown;
|
|
107
|
-
|
|
107
|
+
/**
|
|
108
|
+
* ⚠️ **La documentation appelle ce champ `feeTrialReward` ; le serveur envoie
|
|
109
|
+
* `feeTrialEscrow`.** Relevé le 2026-10-12 sur une vraie réponse de
|
|
110
|
+
* `GET /hyperliquid/info/user-fees` — c'est le nom servi qui fait foi, et le
|
|
111
|
+
* type écrit d'après la documentation était faux sur ce point.
|
|
112
|
+
*
|
|
113
|
+
* Aucun code ne le lit, donc rien n'a cassé : c'est précisément le genre
|
|
114
|
+
* d'écart qu'un type recopié d'une page de documentation porte en silence
|
|
115
|
+
* jusqu'à ce qu'on regarde la réponse.
|
|
116
|
+
*/
|
|
117
|
+
feeTrialEscrow: DecimalString;
|
|
108
118
|
/** `null` quand il n'y en a pas de prévu. */
|
|
109
119
|
nextTrialAvailableTimestamp: number | null;
|
|
110
120
|
/** Absent quand le compte ne stake pas depuis un autre compte. */
|