@lifi/perps-types 0.2.0-alpha.0 → 1.0.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 +6 -30
- package/dist/cjs/acceptTerms.d.ts +20 -0
- package/dist/cjs/acceptTerms.d.ts.map +1 -0
- package/dist/cjs/acceptTerms.js +10 -0
- package/dist/cjs/acceptTerms.js.map +1 -0
- package/dist/cjs/account.d.ts +191 -0
- package/dist/cjs/account.d.ts.map +1 -0
- package/{src/_esm → dist/cjs}/account.js.map +1 -1
- package/dist/cjs/action.d.ts +200 -0
- package/dist/cjs/action.d.ts.map +1 -0
- package/dist/cjs/action.js.map +1 -0
- package/dist/cjs/asset.d.ts +11 -0
- package/dist/cjs/asset.d.ts.map +1 -0
- package/dist/cjs/asset.js.map +1 -0
- package/{src/_types → dist/cjs}/enums.d.ts +6 -12
- package/dist/cjs/enums.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/enums.js +4 -0
- package/dist/cjs/enums.js.map +1 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js.map +1 -0
- package/{src/_types → dist/cjs}/index.d.ts +11 -5
- package/dist/cjs/index.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/index.js +11 -5
- package/dist/cjs/index.js.map +1 -0
- package/{src/_types/asset.d.ts → dist/cjs/market.d.ts} +33 -25
- package/dist/cjs/market.d.ts.map +1 -0
- package/dist/cjs/market.js +3 -0
- package/dist/cjs/market.js.map +1 -0
- package/dist/cjs/meta.d.ts +17 -0
- package/dist/cjs/meta.d.ts.map +1 -0
- package/dist/cjs/meta.js +3 -0
- package/dist/cjs/meta.js.map +1 -0
- package/dist/cjs/primitives.d.ts +3 -0
- package/dist/cjs/primitives.d.ts.map +1 -0
- package/dist/cjs/primitives.js +3 -0
- package/dist/cjs/primitives.js.map +1 -0
- package/dist/cjs/providers.d.ts +58 -0
- package/dist/cjs/providers.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/providers.js.map +1 -1
- package/dist/cjs/quote.d.ts +23 -0
- package/dist/cjs/quote.d.ts.map +1 -0
- package/dist/cjs/quote.js +3 -0
- package/dist/cjs/quote.js.map +1 -0
- package/{src/_types → dist/cjs}/subscriptions.d.ts +14 -13
- package/dist/cjs/subscriptions.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/subscriptions.js.map +1 -1
- package/dist/cjs/typedData.d.ts +23 -0
- package/dist/cjs/typedData.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/typedData.js.map +1 -1
- package/dist/cjs/vote.d.ts +27 -0
- package/dist/cjs/vote.d.ts.map +1 -0
- package/dist/cjs/vote.js +12 -0
- package/dist/cjs/vote.js.map +1 -0
- package/dist/esm/acceptTerms.d.ts +45 -0
- package/dist/esm/acceptTerms.d.ts.map +1 -0
- package/dist/esm/acceptTerms.js +12 -0
- package/dist/esm/acceptTerms.js.map +1 -0
- package/dist/esm/account.d.ts +229 -0
- package/dist/esm/account.d.ts.map +1 -0
- package/{src/_cjs → dist/esm}/account.js.map +1 -1
- package/{src/_types → dist/esm}/action.d.ts +56 -69
- package/dist/esm/action.d.ts.map +1 -0
- package/dist/esm/action.js +2 -0
- package/dist/esm/action.js.map +1 -0
- package/dist/esm/asset.d.ts +25 -0
- package/dist/esm/asset.d.ts.map +1 -0
- package/dist/esm/asset.js.map +1 -0
- package/dist/esm/enums.d.ts +171 -0
- package/dist/esm/enums.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/enums.js +26 -10
- package/dist/esm/enums.js.map +1 -0
- package/dist/esm/errors.d.ts +8 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/market.d.ts +107 -0
- package/dist/esm/market.d.ts.map +1 -0
- package/dist/esm/market.js +2 -0
- package/dist/esm/market.js.map +1 -0
- package/dist/esm/meta.d.ts +37 -0
- package/dist/esm/meta.d.ts.map +1 -0
- package/dist/esm/meta.js +2 -0
- package/dist/esm/meta.js.map +1 -0
- package/dist/esm/primitives.d.ts +5 -0
- package/dist/esm/primitives.d.ts.map +1 -0
- package/dist/esm/primitives.js +2 -0
- package/dist/esm/primitives.js.map +1 -0
- package/dist/esm/providers.d.ts +116 -0
- package/dist/esm/providers.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/providers.js.map +1 -1
- package/dist/esm/quote.d.ts +47 -0
- package/dist/esm/quote.d.ts.map +1 -0
- package/dist/esm/quote.js +2 -0
- package/dist/esm/quote.js.map +1 -0
- package/dist/esm/subscriptions.d.ts +115 -0
- package/dist/esm/subscriptions.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/subscriptions.js.map +1 -1
- package/dist/esm/typedData.d.ts +28 -0
- package/dist/esm/typedData.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/typedData.js.map +1 -1
- package/dist/esm/vote.d.ts +68 -0
- package/dist/esm/vote.d.ts.map +1 -0
- package/dist/esm/vote.js +20 -0
- package/dist/esm/vote.js.map +1 -0
- package/dist/types/acceptTerms.d.ts +45 -0
- package/dist/types/acceptTerms.d.ts.map +1 -0
- package/dist/types/account.d.ts +229 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/action.d.ts +248 -0
- package/dist/types/action.d.ts.map +1 -0
- package/dist/types/asset.d.ts +25 -0
- package/dist/types/asset.d.ts.map +1 -0
- package/dist/types/enums.d.ts +171 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/market.d.ts +107 -0
- package/dist/types/market.d.ts.map +1 -0
- package/dist/types/meta.d.ts +37 -0
- package/dist/types/meta.d.ts.map +1 -0
- package/dist/types/primitives.d.ts +5 -0
- package/dist/types/primitives.d.ts.map +1 -0
- package/dist/types/providers.d.ts +116 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/quote.d.ts +47 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/subscriptions.d.ts +115 -0
- package/dist/types/subscriptions.d.ts.map +1 -0
- package/dist/types/typedData.d.ts +28 -0
- package/dist/types/typedData.d.ts.map +1 -0
- package/dist/types/vote.d.ts +68 -0
- package/dist/types/vote.d.ts.map +1 -0
- package/package.json +37 -65
- package/src/acceptTerms.ts +53 -0
- package/src/account.ts +74 -111
- package/src/action.ts +64 -96
- package/src/asset.ts +19 -82
- package/src/enums.ts +27 -10
- package/src/errors.ts +1 -0
- package/src/index.ts +20 -5
- package/src/market.ts +137 -0
- package/src/meta.ts +38 -0
- package/src/primitives.ts +5 -0
- package/src/providers.ts +79 -110
- package/src/quote.ts +49 -0
- package/src/subscriptions.ts +62 -18
- package/src/typedData.ts +20 -11
- package/src/vote.ts +79 -0
- package/providers/hyperliquid/package.json +0 -5
- package/providers/lighter/package.json +0 -5
- package/src/_cjs/action.js.map +0 -1
- package/src/_cjs/asset.js.map +0 -1
- package/src/_cjs/enums.js.map +0 -1
- package/src/_cjs/errors.js.map +0 -1
- package/src/_cjs/index.js.map +0 -1
- package/src/_cjs/providers/_shared/fillClassification.js +0 -37
- package/src/_cjs/providers/_shared/fillClassification.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/assetId.js +0 -21
- package/src/_cjs/providers/hyperliquid/assetId.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/index.js +0 -20
- package/src/_cjs/providers/hyperliquid/index.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/_market.js +0 -15
- package/src/_cjs/providers/hyperliquid/mappers/_market.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/activity.js +0 -128
- package/src/_cjs/providers/hyperliquid/mappers/activity.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/asset.js +0 -29
- package/src/_cjs/providers/hyperliquid/mappers/asset.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/fill.js +0 -36
- package/src/_cjs/providers/hyperliquid/mappers/fill.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/index.js +0 -20
- package/src/_cjs/providers/hyperliquid/mappers/index.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/order.js +0 -153
- package/src/_cjs/providers/hyperliquid/mappers/order.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/position.js +0 -32
- package/src/_cjs/providers/hyperliquid/mappers/position.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/shared.js +0 -2
- package/src/_cjs/providers/hyperliquid/mappers/shared.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/types.js +0 -21
- package/src/_cjs/providers/hyperliquid/types.js.map +0 -1
- package/src/_cjs/providers/lighter/apiTypes.js +0 -3
- package/src/_cjs/providers/lighter/apiTypes.js.map +0 -1
- package/src/_cjs/providers/lighter/index.js +0 -20
- package/src/_cjs/providers/lighter/index.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/fill.js +0 -34
- package/src/_cjs/providers/lighter/mappers/fill.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/index.js +0 -13
- package/src/_cjs/providers/lighter/mappers/index.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/order.js +0 -142
- package/src/_cjs/providers/lighter/mappers/order.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/position.js +0 -35
- package/src/_cjs/providers/lighter/mappers/position.js.map +0 -1
- package/src/_cjs/providers/lighter/types.js +0 -23
- package/src/_cjs/providers/lighter/types.js.map +0 -1
- package/src/_esm/action.js +0 -2
- package/src/_esm/action.js.map +0 -1
- package/src/_esm/asset.js.map +0 -1
- package/src/_esm/enums.js.map +0 -1
- package/src/_esm/errors.js.map +0 -1
- package/src/_esm/index.js +0 -9
- package/src/_esm/index.js.map +0 -1
- package/src/_esm/providers/_shared/fillClassification.js +0 -43
- package/src/_esm/providers/_shared/fillClassification.js.map +0 -1
- package/src/_esm/providers/hyperliquid/assetId.js +0 -25
- package/src/_esm/providers/hyperliquid/assetId.js.map +0 -1
- package/src/_esm/providers/hyperliquid/index.js +0 -4
- package/src/_esm/providers/hyperliquid/index.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/_market.js +0 -22
- package/src/_esm/providers/hyperliquid/mappers/_market.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/activity.js +0 -138
- package/src/_esm/providers/hyperliquid/mappers/activity.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/asset.js +0 -25
- package/src/_esm/providers/hyperliquid/mappers/asset.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/fill.js +0 -32
- package/src/_esm/providers/hyperliquid/mappers/fill.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/index.js +0 -6
- package/src/_esm/providers/hyperliquid/mappers/index.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/order.js +0 -151
- package/src/_esm/providers/hyperliquid/mappers/order.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/position.js +0 -28
- package/src/_esm/providers/hyperliquid/mappers/position.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/shared.js +0 -2
- package/src/_esm/providers/hyperliquid/mappers/shared.js.map +0 -1
- package/src/_esm/providers/hyperliquid/types.js +0 -35
- package/src/_esm/providers/hyperliquid/types.js.map +0 -1
- package/src/_esm/providers/lighter/apiTypes.js +0 -5
- package/src/_esm/providers/lighter/apiTypes.js.map +0 -1
- package/src/_esm/providers/lighter/index.js +0 -4
- package/src/_esm/providers/lighter/index.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/fill.js +0 -39
- package/src/_esm/providers/lighter/mappers/fill.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/index.js +0 -4
- package/src/_esm/providers/lighter/mappers/index.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/order.js +0 -162
- package/src/_esm/providers/lighter/mappers/order.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/position.js +0 -38
- package/src/_esm/providers/lighter/mappers/position.js.map +0 -1
- package/src/_esm/providers/lighter/types.js +0 -26
- package/src/_esm/providers/lighter/types.js.map +0 -1
- package/src/_types/account.d.ts +0 -268
- package/src/_types/account.d.ts.map +0 -1
- package/src/_types/action.d.ts.map +0 -1
- package/src/_types/asset.d.ts.map +0 -1
- package/src/_types/enums.d.ts.map +0 -1
- package/src/_types/errors.d.ts.map +0 -1
- package/src/_types/index.d.ts.map +0 -1
- package/src/_types/providers/_shared/fillClassification.d.ts +0 -12
- package/src/_types/providers/_shared/fillClassification.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/assetId.d.ts +0 -14
- package/src/_types/providers/hyperliquid/assetId.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/index.d.ts +0 -4
- package/src/_types/providers/hyperliquid/index.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/_market.d.ts +0 -13
- package/src/_types/providers/hyperliquid/mappers/_market.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/activity.d.ts +0 -13
- package/src/_types/providers/hyperliquid/mappers/activity.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/asset.d.ts +0 -4
- package/src/_types/providers/hyperliquid/mappers/asset.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/fill.d.ts +0 -6
- package/src/_types/providers/hyperliquid/mappers/fill.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/index.d.ts +0 -6
- package/src/_types/providers/hyperliquid/mappers/index.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/order.d.ts +0 -18
- package/src/_types/providers/hyperliquid/mappers/order.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/position.d.ts +0 -4
- package/src/_types/providers/hyperliquid/mappers/position.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/shared.d.ts +0 -1
- package/src/_types/providers/hyperliquid/mappers/shared.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/types.d.ts +0 -289
- package/src/_types/providers/hyperliquid/types.d.ts.map +0 -1
- package/src/_types/providers/lighter/apiTypes.d.ts +0 -76
- package/src/_types/providers/lighter/apiTypes.d.ts.map +0 -1
- package/src/_types/providers/lighter/index.d.ts +0 -4
- package/src/_types/providers/lighter/index.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/fill.d.ts +0 -9
- package/src/_types/providers/lighter/mappers/fill.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/index.d.ts +0 -4
- package/src/_types/providers/lighter/mappers/index.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/order.d.ts +0 -35
- package/src/_types/providers/lighter/mappers/order.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/position.d.ts +0 -8
- package/src/_types/providers/lighter/mappers/position.d.ts.map +0 -1
- package/src/_types/providers/lighter/types.d.ts +0 -90
- package/src/_types/providers/lighter/types.d.ts.map +0 -1
- package/src/_types/providers.d.ts +0 -145
- package/src/_types/providers.d.ts.map +0 -1
- package/src/_types/subscriptions.d.ts.map +0 -1
- package/src/_types/typedData.d.ts +0 -18
- package/src/_types/typedData.d.ts.map +0 -1
- package/src/providers/_shared/fillClassification.ts +0 -50
- package/src/providers/hyperliquid/assetId.ts +0 -32
- package/src/providers/hyperliquid/index.ts +0 -3
- package/src/providers/hyperliquid/mappers/_market.ts +0 -21
- package/src/providers/hyperliquid/mappers/activity.ts +0 -169
- package/src/providers/hyperliquid/mappers/asset.ts +0 -33
- package/src/providers/hyperliquid/mappers/fill.ts +0 -41
- package/src/providers/hyperliquid/mappers/index.ts +0 -11
- package/src/providers/hyperliquid/mappers/order.ts +0 -169
- package/src/providers/hyperliquid/mappers/position.ts +0 -33
- package/src/providers/hyperliquid/mappers/shared.ts +0 -0
- package/src/providers/hyperliquid/types.ts +0 -379
- package/src/providers/lighter/apiTypes.ts +0 -87
- package/src/providers/lighter/index.ts +0 -3
- package/src/providers/lighter/mappers/fill.ts +0 -57
- package/src/providers/lighter/mappers/index.ts +0 -8
- package/src/providers/lighter/mappers/order.ts +0 -184
- package/src/providers/lighter/mappers/position.ts +0 -46
- package/src/providers/lighter/types.ts +0 -111
- /package/{src/_cjs → dist/cjs}/account.js +0 -0
- /package/{src/_cjs → dist/cjs}/action.js +0 -0
- /package/{src/_cjs → dist/cjs}/asset.js +0 -0
- /package/{src/_types → dist/cjs}/errors.d.ts +0 -0
- /package/{src/_cjs → dist/cjs}/errors.js +0 -0
- /package/{src/_cjs → dist/cjs}/package.json +0 -0
- /package/{src/_cjs → dist/cjs}/providers.js +0 -0
- /package/{src/_cjs → dist/cjs}/subscriptions.js +0 -0
- /package/{src/_cjs → dist/cjs}/typedData.js +0 -0
- /package/{src/_esm → dist/esm}/account.js +0 -0
- /package/{src/_esm → dist/esm}/asset.js +0 -0
- /package/{src/_esm → dist/esm}/errors.js +0 -0
- /package/{src/_esm → dist/esm}/package.json +0 -0
- /package/{src/_esm → dist/esm}/providers.js +0 -0
- /package/{src/_esm → dist/esm}/subscriptions.js +0 -0
- /package/{src/_esm → dist/esm}/typedData.js +0 -0
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import type { ActionType, PerpsSigner, SigningMethod } from './enums.js';
|
|
2
|
-
export interface ActionDescriptor {
|
|
3
|
-
type: ActionType;
|
|
4
|
-
signers: PerpsSigner[];
|
|
5
|
-
/**
|
|
6
|
-
* How the SDK must sign this specific action. Most actions match the
|
|
7
|
-
* provider's dominant pattern (Hyperliquid: EIP712, Lighter: WASM_BLOB),
|
|
8
|
-
* but on-chain bridge actions like DEPOSIT are EVM_TX regardless of
|
|
9
|
-
* provider — the SDK dispatches by this field rather than by
|
|
10
|
-
* `Provider.signingMethod`.
|
|
11
|
-
*/
|
|
12
|
-
signingMethod: SigningMethod;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* One selectable value on a `Param` whose `values` are enumerated.
|
|
16
|
-
*
|
|
17
|
-
* `value` is the opaque per-provider identifier the SDK passes back to the
|
|
18
|
-
* backend in the corresponding action params (e.g. the string assigned to
|
|
19
|
-
* `mode` for `ACCOUNT_MODE`, or `tier` for `ACCOUNT_TYPE`).
|
|
20
|
-
* `label` is the user-facing string the widget renders.
|
|
21
|
-
*/
|
|
22
|
-
export interface ParamOption {
|
|
23
|
-
value: string;
|
|
24
|
-
label: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* A single parameter the widget must collect from the user before
|
|
28
|
-
* dispatching an action.
|
|
29
|
-
*
|
|
30
|
-
* `name` is the wire key the widget passes through to `execute()` — for the
|
|
31
|
-
* existing `ACCOUNT_MODE` action that's `'mode'`, for `ACCOUNT_TYPE` it's
|
|
32
|
-
* `'tier'`, etc. The widget builds the action's params object as
|
|
33
|
-
* `{ [param.name]: <selected value> }` straight from the descriptor at
|
|
34
|
-
* dispatch time; there is no per-ActionType translation layer.
|
|
35
|
-
*
|
|
36
|
-
* `type` describes the primitive shape of the value. Currently only
|
|
37
|
-
* `'string'` is admitted — numeric / boolean primitives are deferred until
|
|
38
|
-
* a real descriptor needs them.
|
|
39
|
-
*
|
|
40
|
-
* `values` is present iff the parameter has a fixed enumeration of
|
|
41
|
-
* admissible values (e.g. Hyperliquid abstraction modes, Lighter account
|
|
42
|
-
* tiers). When absent the widget renders a free-form input appropriate to
|
|
43
|
-
* the primitive `type`.
|
|
44
|
-
*
|
|
45
|
-
* `default` flags the suggested choice when `values` is provided. Must be
|
|
46
|
-
* one of the entries in `values` if specified; consumers should fall back
|
|
47
|
-
* to "no selection" when absent and let the user pick.
|
|
48
|
-
*
|
|
49
|
-
* `readOnly: true` means the widget must render the control disabled —
|
|
50
|
-
* typically used when the provider exposes the current value but does not
|
|
51
|
-
* allow the user to change it from this surface (e.g. Lighter account
|
|
52
|
-
* mode, which is set during onboarding and immutable thereafter).
|
|
53
|
-
*/
|
|
54
|
-
export interface Param {
|
|
55
|
-
name: string;
|
|
56
|
-
type: 'string';
|
|
57
|
-
values?: ParamOption[];
|
|
58
|
-
default?: ParamOption;
|
|
59
|
-
readOnly?: boolean;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Self-documenting descriptor for an account-level action the user may
|
|
63
|
-
* (setup) or must (options) interact with. Extends `ActionDescriptor`
|
|
64
|
-
* because each descriptor resolves to exactly one action the SDK
|
|
65
|
-
* dispatches when the user proceeds; the additional fields are the
|
|
66
|
-
* presentation and parameter-collection metadata the widget needs to
|
|
67
|
-
* render the action without hardcoded per-ActionType branches.
|
|
68
|
-
*
|
|
69
|
-
* `params` is the list of parameters the widget must collect from the
|
|
70
|
-
* user (zero-or-more); each entry tells the widget the wire key, the
|
|
71
|
-
* primitive type, optional enumeration of admissible values, and
|
|
72
|
-
* optional default. See `Param` for the field-level semantics.
|
|
73
|
-
*
|
|
74
|
-
* Categorisation of a descriptor as "setup" vs "options" is carried by
|
|
75
|
-
* which array on `Provider` it appears in (`Provider.setup` vs
|
|
76
|
-
* `Provider.options`), NOT by a field on the descriptor — by design.
|
|
77
|
-
* `ProviderSetup` and `ProviderOption` are type aliases for this same
|
|
78
|
-
* shape with no additional fields.
|
|
79
|
-
*/
|
|
80
|
-
export interface ProviderActionDescriptor extends ActionDescriptor {
|
|
81
|
-
/** User-facing row title rendered in the setup / options modal. */
|
|
82
|
-
title: string;
|
|
83
|
-
/** User-facing description rendered in the setup / options modal. */
|
|
84
|
-
description: string;
|
|
85
|
-
/** Parameters the widget must collect before dispatching the action. */
|
|
86
|
-
params: Param[];
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* A descriptor that gates trading: the user MUST satisfy every entry on
|
|
90
|
-
* `Provider.setup` before they can place orders with this provider. The
|
|
91
|
-
* widget renders these in `<SetupModal />`, which auto-pops mid-session
|
|
92
|
-
* whenever setup becomes unsatisfied (e.g. Hyperliquid agent expiry).
|
|
93
|
-
*
|
|
94
|
-
* Type alias for `ProviderActionDescriptor` — no additional fields. The
|
|
95
|
-
* setup-vs-options distinction is the array, not a flag on the item.
|
|
96
|
-
*/
|
|
97
|
-
export type ProviderSetup = ProviderActionDescriptor;
|
|
98
|
-
/**
|
|
99
|
-
* A post-setup descriptor the user MAY interact with to tune provider
|
|
100
|
-
* behaviour (e.g. switching Hyperliquid abstraction modes, switching
|
|
101
|
-
* Lighter account tier). The widget renders these in `<OptionsModal />`
|
|
102
|
-
* behind a cog icon; they never gate trading.
|
|
103
|
-
*
|
|
104
|
-
* Type alias for `ProviderActionDescriptor` — no additional fields. The
|
|
105
|
-
* setup-vs-options distinction is the array, not a flag on the item.
|
|
106
|
-
*/
|
|
107
|
-
export type ProviderOption = ProviderActionDescriptor;
|
|
108
|
-
export interface ProviderMarketInfo {
|
|
109
|
-
id: string;
|
|
110
|
-
quoteAsset: string | null;
|
|
111
|
-
}
|
|
112
|
-
export interface Provider {
|
|
113
|
-
key: string;
|
|
114
|
-
name: string;
|
|
115
|
-
logoURI: string;
|
|
116
|
-
signingMethod: SigningMethod;
|
|
117
|
-
/** When false, the provider is announced but not yet selectable in clients. */
|
|
118
|
-
active: boolean;
|
|
119
|
-
/**
|
|
120
|
-
* Mandatory account-setup descriptors. The user MUST satisfy every
|
|
121
|
-
* entry before trading. The widget renders these in `<SetupModal />`,
|
|
122
|
-
* which auto-pops whenever setup becomes unsatisfied. An empty array
|
|
123
|
-
* is valid and indicates the provider has no setup gates.
|
|
124
|
-
*/
|
|
125
|
-
setup: ProviderSetup[];
|
|
126
|
-
/**
|
|
127
|
-
* Optional post-setup descriptors the user may tune (account mode,
|
|
128
|
-
* fee tier, etc.). Rendered in `<OptionsModal />` behind the cog icon;
|
|
129
|
-
* never gates trading. An empty array is valid.
|
|
130
|
-
*/
|
|
131
|
-
options: ProviderOption[];
|
|
132
|
-
actions: ActionDescriptor[];
|
|
133
|
-
markets: ProviderMarketInfo[];
|
|
134
|
-
wsUrl?: string;
|
|
135
|
-
/**
|
|
136
|
-
* Minimum deposit amount in USD that the provider's deposit path will
|
|
137
|
-
* accept. Absent means no minimum is advertised — clients should not
|
|
138
|
-
* gate the deposit UX on a value they don't have.
|
|
139
|
-
*/
|
|
140
|
-
minDepositUsd?: number;
|
|
141
|
-
}
|
|
142
|
-
export interface ProvidersResponse {
|
|
143
|
-
providers: Provider[];
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAExE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB;;;;;;OAMG;IACH,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAA;AAEpD;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,wBAAwB,CAAA;AAErD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,aAAa,CAAA;IAC5B,+EAA+E;IAC/E,MAAM,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB;;;;OAIG;IACH,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../subscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { Address, Hex, TypedDataDomain, TypedDataParameter } from 'viem';
|
|
2
|
-
import type { HlPrimaryType } from './providers/hyperliquid/types.js';
|
|
3
|
-
/**
|
|
4
|
-
* All known EIP-712 primaryType values across supported providers.
|
|
5
|
-
* Extend this union when adding a new EIP-712 provider.
|
|
6
|
-
*/
|
|
7
|
-
export type PerpsPrimaryType = HlPrimaryType;
|
|
8
|
-
export type PerpsTypedData = {
|
|
9
|
-
domain: TypedDataDomain;
|
|
10
|
-
types: Record<string, readonly TypedDataParameter[]>;
|
|
11
|
-
primaryType: PerpsPrimaryType;
|
|
12
|
-
message: Record<string, any>;
|
|
13
|
-
};
|
|
14
|
-
export type PerpsSignedTypedData = PerpsTypedData & {
|
|
15
|
-
signature: Hex;
|
|
16
|
-
};
|
|
17
|
-
export type { Address, Hex, TypedDataDomain, TypedDataParameter };
|
|
18
|
-
//# sourceMappingURL=typedData.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAErE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAAA;IACpD,WAAW,EAAE,gBAAgB,CAAA;IAE7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,SAAS,EAAE,GAAG,CAAA;CACf,CAAA;AAGD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { FillClassification } from '../../enums.js'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Classify a perpetual fill into the Open/Close/Increase/Reduce/Switch
|
|
5
|
-
* taxonomy from `FillClassification`.
|
|
6
|
-
*
|
|
7
|
-
* @param startPosition Signed position held BEFORE this fill (`> 0` long,
|
|
8
|
-
* `< 0` short, `0` flat).
|
|
9
|
-
* @param side Hyperliquid-style: `'B'` for buy, anything else for sell.
|
|
10
|
-
* @param sz Unsigned fill size, parsed with `parseFloat`.
|
|
11
|
-
*/
|
|
12
|
-
export function classifyFillFromPosition(
|
|
13
|
-
startPosition: string,
|
|
14
|
-
side: string,
|
|
15
|
-
sz: string
|
|
16
|
-
): FillClassification {
|
|
17
|
-
const start = parseFloat(startPosition)
|
|
18
|
-
const delta = side === 'B' ? parseFloat(sz) : -parseFloat(sz)
|
|
19
|
-
const end = start + delta
|
|
20
|
-
|
|
21
|
-
if (start === 0) {
|
|
22
|
-
return end > 0
|
|
23
|
-
? FillClassification.OPENED_LONG
|
|
24
|
-
: FillClassification.OPENED_SHORT
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (start > 0) {
|
|
28
|
-
if (end === 0) {
|
|
29
|
-
return FillClassification.CLOSED_LONG
|
|
30
|
-
}
|
|
31
|
-
if (end < 0) {
|
|
32
|
-
return FillClassification.SWITCHED_SHORT
|
|
33
|
-
}
|
|
34
|
-
if (end > start) {
|
|
35
|
-
return FillClassification.INCREASED_LONG
|
|
36
|
-
}
|
|
37
|
-
return FillClassification.REDUCED_LONG
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (end === 0) {
|
|
41
|
-
return FillClassification.CLOSED_SHORT
|
|
42
|
-
}
|
|
43
|
-
if (end > 0) {
|
|
44
|
-
return FillClassification.SWITCHED_LONG
|
|
45
|
-
}
|
|
46
|
-
if (end < start) {
|
|
47
|
-
return FillClassification.INCREASED_SHORT
|
|
48
|
-
}
|
|
49
|
-
return FillClassification.REDUCED_SHORT
|
|
50
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/** Spot asset IDs use the @pairIndex format (e.g. "@230"). */
|
|
2
|
-
export const assetIsSpot = (assetId: string): boolean => assetId.startsWith('@')
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Calculate the asset ID for a given provider index and asset index.
|
|
6
|
-
*
|
|
7
|
-
* Main provider (provider = ''): assetId = indexInProvider
|
|
8
|
-
* HIP-3 providers (provider = 'xyz'): assetId = 100_000 + perpDexIndex * 10_000 + indexInProvider
|
|
9
|
-
*/
|
|
10
|
-
export const calculateAssetId = (
|
|
11
|
-
providerIndex: number,
|
|
12
|
-
indexInProvider: number
|
|
13
|
-
): number => {
|
|
14
|
-
if (providerIndex === 0) {
|
|
15
|
-
return indexInProvider
|
|
16
|
-
}
|
|
17
|
-
return 100_000 + providerIndex * 10_000 + indexInProvider
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Get the provider index from the given list of provider names.
|
|
22
|
-
*/
|
|
23
|
-
export const getProviderIndex = (
|
|
24
|
-
provider: string,
|
|
25
|
-
providerNames: string[]
|
|
26
|
-
): number => {
|
|
27
|
-
const index = providerNames.indexOf(provider)
|
|
28
|
-
if (index === -1) {
|
|
29
|
-
throw new Error(`Unknown sub-provider: ${provider}`)
|
|
30
|
-
}
|
|
31
|
-
return index
|
|
32
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Derive the `AssetIdentity.market` value (a `/providers.markets[].id`) from
|
|
3
|
-
* a Hyperliquid `assetId`:
|
|
4
|
-
* - `"BTC"` → main USDC perp dex → `"hyperliquid"`
|
|
5
|
-
* - `"xyz:PURR"` → HIP-3 sub-dex → `"xyz"`
|
|
6
|
-
* - `"@142"` → spot pair → `"spot"`
|
|
7
|
-
*
|
|
8
|
-
* Must stay in lockstep with `lifi-perps-backend`'s `toProviderMarketId` /
|
|
9
|
-
* `buildAssetMarketLookup` — they define the same `/providers.markets[].id`
|
|
10
|
-
* taxonomy on the wire.
|
|
11
|
-
*/
|
|
12
|
-
export const deriveMarket = (assetId: string): string => {
|
|
13
|
-
if (assetId.startsWith('@')) {
|
|
14
|
-
return 'spot'
|
|
15
|
-
}
|
|
16
|
-
const colon = assetId.indexOf(':')
|
|
17
|
-
if (colon > 0) {
|
|
18
|
-
return assetId.slice(0, colon)
|
|
19
|
-
}
|
|
20
|
-
return 'hyperliquid'
|
|
21
|
-
}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { ActivityType } from '../../../enums.js'
|
|
2
|
-
import type {
|
|
3
|
-
ActivityItem,
|
|
4
|
-
DepositActivity,
|
|
5
|
-
WithdrawalActivity,
|
|
6
|
-
LiquidationActivity,
|
|
7
|
-
FundingActivity,
|
|
8
|
-
TransferActivity,
|
|
9
|
-
} from '../../../account.js'
|
|
10
|
-
import { isSendAssetDelta, isSpotTransferDelta } from '../types.js'
|
|
11
|
-
import type { HlLedgerUpdate, HlFundingUpdate } from '../types.js'
|
|
12
|
-
import { deriveMarket } from './_market.js'
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Map a Hyperliquid non-funding ledger entry to an ActivityItem.
|
|
16
|
-
*
|
|
17
|
-
* Direction for `spotTransfer` and `sendAsset` is derived from
|
|
18
|
-
* `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
|
|
19
|
-
* Returns null for unsupported delta types and for same-user `sendAsset`
|
|
20
|
-
* dex moves (where `user === destination === queriedAddress`).
|
|
21
|
-
*/
|
|
22
|
-
export const mapLedgerEntry = (
|
|
23
|
-
entry: HlLedgerUpdate,
|
|
24
|
-
providerKey: string,
|
|
25
|
-
queriedAddress: string
|
|
26
|
-
): ActivityItem | null => {
|
|
27
|
-
const { delta } = entry
|
|
28
|
-
const base = {
|
|
29
|
-
id: entry.hash,
|
|
30
|
-
provider: providerKey,
|
|
31
|
-
timestamp: new Date(entry.time).toISOString(),
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Handled before the switch: the catch-all arm of `HlLedgerDelta` is a
|
|
35
|
-
// structural supertype of the concrete delta, so a `switch (delta.type)`
|
|
36
|
-
// cannot narrow off the discriminant. The user-defined type guard does.
|
|
37
|
-
if (isSpotTransferDelta(delta)) {
|
|
38
|
-
const queried = queriedAddress.toLowerCase()
|
|
39
|
-
const sender = delta.user.toLowerCase()
|
|
40
|
-
const recipient = delta.destination.toLowerCase()
|
|
41
|
-
const direction: 'IN' | 'OUT' = queried === sender ? 'OUT' : 'IN'
|
|
42
|
-
const counterpartyAddress = direction === 'OUT' ? recipient : sender
|
|
43
|
-
const meta: Record<string, unknown> = {
|
|
44
|
-
transferType: 'spotTransfer',
|
|
45
|
-
}
|
|
46
|
-
if (delta.usdcValue !== undefined) {
|
|
47
|
-
meta.usdcValue = delta.usdcValue
|
|
48
|
-
}
|
|
49
|
-
if (delta.fee !== undefined) {
|
|
50
|
-
meta.fee = delta.fee
|
|
51
|
-
}
|
|
52
|
-
if (delta.nativeTokenFee !== undefined) {
|
|
53
|
-
meta.nativeTokenFee = delta.nativeTokenFee
|
|
54
|
-
}
|
|
55
|
-
if (delta.nonce !== undefined) {
|
|
56
|
-
meta.nonce = delta.nonce
|
|
57
|
-
}
|
|
58
|
-
return {
|
|
59
|
-
...base,
|
|
60
|
-
type: ActivityType.TRANSFER,
|
|
61
|
-
direction,
|
|
62
|
-
counterpartyAddress,
|
|
63
|
-
asset: delta.token,
|
|
64
|
-
amount: delta.amount,
|
|
65
|
-
meta,
|
|
66
|
-
} satisfies TransferActivity
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// `sendAsset` (wire `type === 'send'`) covers cross-user transfers
|
|
70
|
-
// (modelled as TRANSFER) and same-user dex moves (returned as null —
|
|
71
|
-
// overloading TRANSFER for those would lie about direction). Pre-switch
|
|
72
|
-
// narrowing for the same reason as spotTransfer.
|
|
73
|
-
if (isSendAssetDelta(delta)) {
|
|
74
|
-
const queried = queriedAddress.toLowerCase()
|
|
75
|
-
const sender = delta.user.toLowerCase()
|
|
76
|
-
const recipient = delta.destination.toLowerCase()
|
|
77
|
-
|
|
78
|
-
if (sender === recipient && sender === queried) {
|
|
79
|
-
return null
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const direction: 'IN' | 'OUT' = queried === sender ? 'OUT' : 'IN'
|
|
83
|
-
const counterpartyAddress = direction === 'OUT' ? recipient : sender
|
|
84
|
-
const meta: Record<string, unknown> = {
|
|
85
|
-
transferType: 'sendAsset',
|
|
86
|
-
sourceDex: delta.sourceDex,
|
|
87
|
-
destinationDex: delta.destinationDex,
|
|
88
|
-
usdcValue: delta.usdcValue,
|
|
89
|
-
fee: delta.fee,
|
|
90
|
-
nativeTokenFee: delta.nativeTokenFee,
|
|
91
|
-
feeToken: delta.feeToken,
|
|
92
|
-
nonce: delta.nonce,
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
...base,
|
|
96
|
-
type: ActivityType.TRANSFER,
|
|
97
|
-
direction,
|
|
98
|
-
counterpartyAddress,
|
|
99
|
-
asset: delta.token,
|
|
100
|
-
amount: delta.amount,
|
|
101
|
-
meta,
|
|
102
|
-
} satisfies TransferActivity
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
switch (delta.type) {
|
|
106
|
-
case 'deposit':
|
|
107
|
-
return {
|
|
108
|
-
...base,
|
|
109
|
-
type: ActivityType.DEPOSIT,
|
|
110
|
-
amount: delta.usdc ?? '0',
|
|
111
|
-
} satisfies DepositActivity
|
|
112
|
-
|
|
113
|
-
case 'withdraw':
|
|
114
|
-
return {
|
|
115
|
-
...base,
|
|
116
|
-
type: ActivityType.WITHDRAWAL,
|
|
117
|
-
amount: delta.usdc ?? '0',
|
|
118
|
-
fee: (delta as { fee?: string }).fee ?? '0',
|
|
119
|
-
} satisfies WithdrawalActivity
|
|
120
|
-
|
|
121
|
-
case 'liquidation': {
|
|
122
|
-
const d = delta as unknown as {
|
|
123
|
-
type: string
|
|
124
|
-
liquidatedNtlPos: string
|
|
125
|
-
accountValue: string
|
|
126
|
-
leverageType: string
|
|
127
|
-
liquidatedPositions?: { coin: string; szi: string }[]
|
|
128
|
-
}
|
|
129
|
-
return {
|
|
130
|
-
...base,
|
|
131
|
-
type: ActivityType.LIQUIDATION,
|
|
132
|
-
liquidatedNotionalPosition: d.liquidatedNtlPos,
|
|
133
|
-
accountValue: d.accountValue,
|
|
134
|
-
leverageType: d.leverageType,
|
|
135
|
-
liquidatedPositions: (d.liquidatedPositions ?? []).map((p) => ({
|
|
136
|
-
asset: {
|
|
137
|
-
assetId: p.coin,
|
|
138
|
-
market: deriveMarket(p.coin),
|
|
139
|
-
displaySymbol: p.coin,
|
|
140
|
-
displayQuote: null,
|
|
141
|
-
},
|
|
142
|
-
size: p.szi,
|
|
143
|
-
})),
|
|
144
|
-
} satisfies LiquidationActivity
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
default:
|
|
148
|
-
return null
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export const mapFundingActivity = (
|
|
153
|
-
entry: HlFundingUpdate,
|
|
154
|
-
providerKey: string
|
|
155
|
-
): FundingActivity => ({
|
|
156
|
-
id: entry.hash,
|
|
157
|
-
provider: providerKey,
|
|
158
|
-
timestamp: new Date(entry.time).toISOString(),
|
|
159
|
-
type: ActivityType.FUNDING,
|
|
160
|
-
asset: {
|
|
161
|
-
assetId: entry.delta.coin,
|
|
162
|
-
market: deriveMarket(entry.delta.coin),
|
|
163
|
-
displaySymbol: entry.delta.coin,
|
|
164
|
-
displayQuote: null,
|
|
165
|
-
},
|
|
166
|
-
amount: entry.delta.usdc,
|
|
167
|
-
positionSize: entry.delta.szi,
|
|
168
|
-
fundingRate: entry.delta.fundingRate,
|
|
169
|
-
})
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { Asset } from '../../../asset.js'
|
|
2
|
-
import type { HlAssetCtx, HlUniverseItem } from '../types.js'
|
|
3
|
-
import { deriveMarket } from './_market.js'
|
|
4
|
-
|
|
5
|
-
const NEXT_FUNDING_INTERVAL_MS = 60 * 60 * 1000 // 1 hour
|
|
6
|
-
|
|
7
|
-
export const mapAsset = (
|
|
8
|
-
universe: HlUniverseItem,
|
|
9
|
-
assetCtx: HlAssetCtx
|
|
10
|
-
): Asset => {
|
|
11
|
-
const now = Date.now()
|
|
12
|
-
const nextFundingTime =
|
|
13
|
-
Math.ceil(now / NEXT_FUNDING_INTERVAL_MS) * NEXT_FUNDING_INTERVAL_MS
|
|
14
|
-
|
|
15
|
-
return {
|
|
16
|
-
assetId: universe.name,
|
|
17
|
-
market: deriveMarket(universe.name),
|
|
18
|
-
displaySymbol: universe.name,
|
|
19
|
-
displayQuote: null,
|
|
20
|
-
logoURI: `https://app.hyperliquid.xyz/coins/${universe.name}.svg`,
|
|
21
|
-
szDecimals: universe.szDecimals,
|
|
22
|
-
maxLeverage: universe.maxLeverage,
|
|
23
|
-
onlyIsolated: universe.onlyIsolated === true,
|
|
24
|
-
funding: {
|
|
25
|
-
rate: assetCtx.funding,
|
|
26
|
-
nextFundingTime,
|
|
27
|
-
},
|
|
28
|
-
openInterest: assetCtx.openInterest,
|
|
29
|
-
volume24h: assetCtx.dayNtlVlm,
|
|
30
|
-
prevDayPrice: assetCtx.prevDayPx,
|
|
31
|
-
markPrice: assetCtx.markPx,
|
|
32
|
-
}
|
|
33
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
FillClassification,
|
|
3
|
-
FillStatus,
|
|
4
|
-
LiquidityRole,
|
|
5
|
-
OrderSide,
|
|
6
|
-
OrderType,
|
|
7
|
-
} from '../../../enums.js'
|
|
8
|
-
import type { Fill } from '../../../account.js'
|
|
9
|
-
import type { HlUserFill } from '../types.js'
|
|
10
|
-
import { assetIsSpot } from '../assetId.js'
|
|
11
|
-
import { classifyFillFromPosition } from '../../_shared/fillClassification.js'
|
|
12
|
-
import { deriveMarket } from './_market.js'
|
|
13
|
-
|
|
14
|
-
export { classifyFillFromPosition }
|
|
15
|
-
|
|
16
|
-
export const mapFill = (fill: HlUserFill): Fill => ({
|
|
17
|
-
id: String(fill.tid),
|
|
18
|
-
orderId: String(fill.oid),
|
|
19
|
-
asset: {
|
|
20
|
-
assetId: fill.coin,
|
|
21
|
-
market: deriveMarket(fill.coin),
|
|
22
|
-
displaySymbol: fill.coin,
|
|
23
|
-
displayQuote: null,
|
|
24
|
-
},
|
|
25
|
-
side: fill.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
|
|
26
|
-
type: fill.dir?.includes('Limit') ? OrderType.LIMIT : OrderType.MARKET,
|
|
27
|
-
size: fill.sz,
|
|
28
|
-
price: fill.px,
|
|
29
|
-
status: FillStatus.FILLED,
|
|
30
|
-
liquidity: fill.crossed ? LiquidityRole.TAKER : LiquidityRole.MAKER,
|
|
31
|
-
filledSize: fill.sz,
|
|
32
|
-
fee: fill.fee,
|
|
33
|
-
realizedPnl: fill.closedPnl === '0' ? null : fill.closedPnl,
|
|
34
|
-
startPosition: fill.startPosition,
|
|
35
|
-
classification: assetIsSpot(fill.coin)
|
|
36
|
-
? fill.side === 'B'
|
|
37
|
-
? FillClassification.SPOT_BUY
|
|
38
|
-
: FillClassification.SPOT_SELL
|
|
39
|
-
: classifyFillFromPosition(fill.startPosition, fill.side, fill.sz),
|
|
40
|
-
createdAt: new Date(fill.time).toISOString(),
|
|
41
|
-
})
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { mapAsset } from './asset.js'
|
|
2
|
-
export {
|
|
3
|
-
isTriggerType,
|
|
4
|
-
mapOpenOrder,
|
|
5
|
-
mapOrder,
|
|
6
|
-
mapOrderType,
|
|
7
|
-
mapTriggerOrder,
|
|
8
|
-
} from './order.js'
|
|
9
|
-
export { mapPosition } from './position.js'
|
|
10
|
-
export { classifyFillFromPosition, mapFill } from './fill.js'
|
|
11
|
-
export { mapLedgerEntry, mapFundingActivity } from './activity.js'
|