@lifi/perps-types 0.0.0-preview-a5f5e3b
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/LICENSE.md +201 -0
- package/README.md +48 -0
- 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/dist/cjs/account.js +3 -0
- package/dist/cjs/account.js.map +1 -0
- package/dist/cjs/action.d.ts +200 -0
- package/dist/cjs/action.d.ts.map +1 -0
- package/dist/cjs/action.js +3 -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 +3 -0
- package/dist/cjs/asset.js.map +1 -0
- package/dist/cjs/enums.d.ts +148 -0
- package/dist/cjs/enums.d.ts.map +1 -0
- package/dist/cjs/enums.js +170 -0
- package/dist/cjs/enums.js.map +1 -0
- package/dist/cjs/errors.d.ts +7 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +3 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.d.ts +15 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +31 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/market.d.ts +69 -0
- 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/package.json +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/dist/cjs/providers.js +3 -0
- package/dist/cjs/providers.js.map +1 -0
- 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/dist/cjs/subscriptions.d.ts +77 -0
- package/dist/cjs/subscriptions.d.ts.map +1 -0
- package/dist/cjs/subscriptions.js +3 -0
- package/dist/cjs/subscriptions.js.map +1 -0
- package/dist/cjs/typedData.d.ts +23 -0
- package/dist/cjs/typedData.d.ts.map +1 -0
- package/dist/cjs/typedData.js +3 -0
- package/dist/cjs/typedData.js.map +1 -0
- 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/dist/esm/account.js +2 -0
- package/dist/esm/account.js.map +1 -0
- package/dist/esm/action.d.ts +248 -0
- 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 +2 -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/dist/esm/enums.js +195 -0
- 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 +2 -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 +102 -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/package.json +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/dist/esm/providers.js +2 -0
- package/dist/esm/providers.js.map +1 -0
- 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/dist/esm/subscriptions.js +2 -0
- package/dist/esm/subscriptions.js.map +1 -0
- package/dist/esm/typedData.d.ts +28 -0
- package/dist/esm/typedData.d.ts.map +1 -0
- package/dist/esm/typedData.js +2 -0
- package/dist/esm/typedData.js.map +1 -0
- 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 +102 -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 +49 -0
- package/src/acceptTerms.ts +53 -0
- package/src/account.ts +277 -0
- package/src/action.ts +292 -0
- package/src/asset.ts +25 -0
- package/src/enums.ts +205 -0
- package/src/errors.ts +8 -0
- package/src/index.ts +23 -0
- package/src/market.ts +132 -0
- package/src/meta.ts +38 -0
- package/src/primitives.ts +5 -0
- package/src/providers.ts +122 -0
- package/src/quote.ts +49 -0
- package/src/subscriptions.ts +118 -0
- package/src/typedData.ts +32 -0
- package/src/vote.ts +79 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Address, Hex } from './primitives.js';
|
|
2
|
+
/** @public */
|
|
3
|
+
export interface TypedDataDomain {
|
|
4
|
+
name?: string;
|
|
5
|
+
version?: string;
|
|
6
|
+
chainId?: number;
|
|
7
|
+
verifyingContract?: Address;
|
|
8
|
+
salt?: Hex;
|
|
9
|
+
}
|
|
10
|
+
/** @public */
|
|
11
|
+
export interface TypedDataParameter {
|
|
12
|
+
name: string;
|
|
13
|
+
type: string;
|
|
14
|
+
}
|
|
15
|
+
/** @public */
|
|
16
|
+
export type PerpsPrimaryType = string;
|
|
17
|
+
/** @public */
|
|
18
|
+
export type PerpsTypedData = {
|
|
19
|
+
domain: TypedDataDomain;
|
|
20
|
+
types: Record<string, readonly TypedDataParameter[]>;
|
|
21
|
+
primaryType: PerpsPrimaryType;
|
|
22
|
+
message: Record<string, any>;
|
|
23
|
+
};
|
|
24
|
+
/** @public */
|
|
25
|
+
export type PerpsSignedTypedData = PerpsTypedData & {
|
|
26
|
+
signature: Hex;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=typedData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../../src/typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEnD,cAAc;AACd,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,cAAc;AACd,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAErC,cAAc;AACd,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;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC7B,CAAA;AAED,cAAc;AACd,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,SAAS,EAAE,GAAG,CAAA;CACf,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Address } from './primitives.js';
|
|
2
|
+
import type { PerpsTypedData, TypedDataParameter } from './typedData.js';
|
|
3
|
+
/**
|
|
4
|
+
* Sentinel sent in the `provider` field for provider-independent actions
|
|
5
|
+
* (e.g. {@link "./enums.js".ActionType.META_VOTE}). The backend dispatches
|
|
6
|
+
* on this value instead of resolving a real provider plugin.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare const META_PROVIDER = "meta";
|
|
10
|
+
/** @public */
|
|
11
|
+
export type MetaProvider = typeof META_PROVIDER;
|
|
12
|
+
/**
|
|
13
|
+
* Vote direction. `up` endorses the subject; `down` opposes it.
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export type VoteDirection = 'up' | 'down';
|
|
17
|
+
/**
|
|
18
|
+
* Discriminates what a vote is about, leaving room for future product-level
|
|
19
|
+
* vote subjects without changing the EIP-712 `primaryType`.
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export type VoteType = 'provider';
|
|
23
|
+
/**
|
|
24
|
+
* Params for an {@link "./enums.js".ActionType.META_VOTE} action.
|
|
25
|
+
*
|
|
26
|
+
* `targetProvider` is the voted-on subject — kept distinct from the transport
|
|
27
|
+
* `provider` field, which carries the {@link META_PROVIDER} sentinel for this
|
|
28
|
+
* provider-independent action.
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
export interface VoteParams {
|
|
32
|
+
/** Key of the inactive provider being voted on (the voted-on subject). */
|
|
33
|
+
targetProvider: string;
|
|
34
|
+
direction: VoteDirection;
|
|
35
|
+
voteType: VoteType;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* EIP-712 message body for a `Vote`. Field order matches {@link voteTypeFields}.
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
export interface VoteMessage {
|
|
42
|
+
/** Key of the inactive provider being voted on. */
|
|
43
|
+
targetProvider: string;
|
|
44
|
+
direction: VoteDirection;
|
|
45
|
+
voteType: VoteType;
|
|
46
|
+
voter: Address;
|
|
47
|
+
/** Unix timestamp in milliseconds. */
|
|
48
|
+
timestamp: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* EIP-712 type member list for the `Vote` primary type. Field order is part of
|
|
52
|
+
* the signed digest and must match the backend's encoder.
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
export declare const voteTypeFields: readonly TypedDataParameter[];
|
|
56
|
+
/**
|
|
57
|
+
* EIP-712 typed data for a vote, as returned by `createAction` and signed
|
|
58
|
+
* client-side. `primaryType` is always `'Vote'`.
|
|
59
|
+
* @public
|
|
60
|
+
*/
|
|
61
|
+
export interface VoteTypedData extends PerpsTypedData {
|
|
62
|
+
primaryType: 'Vote';
|
|
63
|
+
types: {
|
|
64
|
+
Vote: readonly TypedDataParameter[];
|
|
65
|
+
} & PerpsTypedData['types'];
|
|
66
|
+
message: VoteMessage;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=vote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote.d.ts","sourceRoot":"","sources":["../../src/vote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAS,CAAA;AAEnC,cAAc;AACd,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAA;AAE/C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,MAAM,CAAA;AAEzC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAA;AAEjC;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,aAAa,CAAA;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EAMvD,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,kBAAkB,EAAE,CAAA;KAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACxE,OAAO,EAAE,WAAW,CAAA;CACrB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lifi/perps-types",
|
|
3
|
+
"version": "0.0.0-preview-a5f5e3b",
|
|
4
|
+
"description": "Shared types for the LI.FI perps stack",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"lifi",
|
|
7
|
+
"perps",
|
|
8
|
+
"perpetuals",
|
|
9
|
+
"types",
|
|
10
|
+
"defi",
|
|
11
|
+
"trading",
|
|
12
|
+
"cross-chain"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/lifinance/perps-sdk/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/lifinance/perps-sdk.git"
|
|
21
|
+
},
|
|
22
|
+
"license": "Apache-2.0",
|
|
23
|
+
"author": "LI.FI <dev@li.fi>",
|
|
24
|
+
"type": "module",
|
|
25
|
+
"main": "./dist/cjs/index.js",
|
|
26
|
+
"module": "./dist/esm/index.js",
|
|
27
|
+
"types": "./dist/types/index.d.ts",
|
|
28
|
+
"typings": "./dist/types/index.d.ts",
|
|
29
|
+
"sideEffects": false,
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/types/index.d.ts",
|
|
33
|
+
"import": "./dist/esm/index.js",
|
|
34
|
+
"default": "./dist/cjs/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./package.json": "./package.json"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"dist/**",
|
|
40
|
+
"!dist/**/*.tsbuildinfo",
|
|
41
|
+
"src/**/*.ts",
|
|
42
|
+
"!src/**/*.spec.ts",
|
|
43
|
+
"!src/**/*.test.ts",
|
|
44
|
+
"!src/**/*.tsbuildinfo"
|
|
45
|
+
],
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Address } from './primitives.js'
|
|
2
|
+
import type { PerpsTypedData, TypedDataParameter } from './typedData.js'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Params for an {@link "./enums.js".ActionType.META_ACCEPT_TERMS} action.
|
|
6
|
+
*
|
|
7
|
+
* Provider-independent: cast with the {@link "./vote.js".META_PROVIDER}
|
|
8
|
+
* sentinel in the transport `provider` field.
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export interface AcceptTermsParams {
|
|
12
|
+
/** Terms-of-Service version being accepted; backend-owned, relayed verbatim. */
|
|
13
|
+
termsVersion: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* EIP-712 message body for an `AcceptTerms`. Field order matches
|
|
18
|
+
* {@link acceptTermsTypeFields}.
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
export interface AcceptTermsMessage {
|
|
22
|
+
/** Human-readable action, e.g. `"Accept LI.FI Perps Terms of Service v3"`. */
|
|
23
|
+
action: string
|
|
24
|
+
acceptor: Address
|
|
25
|
+
termsVersion: string
|
|
26
|
+
/** Unix timestamp in milliseconds. */
|
|
27
|
+
timestamp: number
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* EIP-712 type member list for the `AcceptTerms` primary type. Field order is
|
|
32
|
+
* part of the signed digest and must match the backend's encoder.
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
export const acceptTermsTypeFields: readonly TypedDataParameter[] = [
|
|
36
|
+
{ name: 'action', type: 'string' },
|
|
37
|
+
{ name: 'acceptor', type: 'address' },
|
|
38
|
+
{ name: 'termsVersion', type: 'string' },
|
|
39
|
+
{ name: 'timestamp', type: 'uint256' },
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* EIP-712 typed data for a terms acceptance, as returned by `createAction` and
|
|
44
|
+
* signed client-side. `primaryType` is always `'AcceptTerms'`.
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
export interface AcceptTermsTypedData extends PerpsTypedData {
|
|
48
|
+
primaryType: 'AcceptTerms'
|
|
49
|
+
types: {
|
|
50
|
+
AcceptTerms: readonly TypedDataParameter[]
|
|
51
|
+
} & PerpsTypedData['types']
|
|
52
|
+
message: AcceptTermsMessage
|
|
53
|
+
}
|
package/src/account.ts
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import type { Asset } from './asset.js'
|
|
2
|
+
import type {
|
|
3
|
+
ActionType,
|
|
4
|
+
ActivityType,
|
|
5
|
+
FillClassification,
|
|
6
|
+
FillStatus,
|
|
7
|
+
LiquidityRole,
|
|
8
|
+
MarginMode,
|
|
9
|
+
OrderSide,
|
|
10
|
+
OrderType,
|
|
11
|
+
PositionSide,
|
|
12
|
+
} from './enums.js'
|
|
13
|
+
import type { MarketDisplay } from './market.js'
|
|
14
|
+
import type { Address } from './primitives.js'
|
|
15
|
+
|
|
16
|
+
/** @public */
|
|
17
|
+
export interface FeeTier {
|
|
18
|
+
maker: string
|
|
19
|
+
taker: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** @public */
|
|
23
|
+
export interface Position {
|
|
24
|
+
market: MarketDisplay
|
|
25
|
+
side: PositionSide
|
|
26
|
+
size: string
|
|
27
|
+
entryPrice: string
|
|
28
|
+
markPrice: string
|
|
29
|
+
liquidationPrice: string
|
|
30
|
+
unrealizedPnl: string
|
|
31
|
+
leverage: number
|
|
32
|
+
marginUsed: string
|
|
33
|
+
marginMode: MarginMode
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** @public */
|
|
37
|
+
export interface OpenOrder {
|
|
38
|
+
orderId: string
|
|
39
|
+
market: MarketDisplay
|
|
40
|
+
side: OrderSide
|
|
41
|
+
type: OrderType
|
|
42
|
+
size: string
|
|
43
|
+
price: string
|
|
44
|
+
filledSize: string
|
|
45
|
+
reduceOnly: boolean
|
|
46
|
+
label?: string
|
|
47
|
+
createdAt: string
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** @public */
|
|
51
|
+
export interface Balance {
|
|
52
|
+
/** Which category/venue this balance sits in — references a {@link ProviderCategory}. */
|
|
53
|
+
categoryId: string
|
|
54
|
+
asset: Asset
|
|
55
|
+
units: string
|
|
56
|
+
/** USD value the SDK fills from the prices map; consumers render with zero math. */
|
|
57
|
+
valueUsd: string
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** @public */
|
|
61
|
+
export interface AccountResponse {
|
|
62
|
+
provider: string
|
|
63
|
+
address: Address
|
|
64
|
+
/** Flat, NON-collateral holdings. */
|
|
65
|
+
balances: Balance[]
|
|
66
|
+
/** SDK-determined collateral subset: spot balances in a category's quote asset. */
|
|
67
|
+
collateralBalances: Balance[]
|
|
68
|
+
marginUsed: string
|
|
69
|
+
unrealizedPnl: string
|
|
70
|
+
feeTier: FeeTier
|
|
71
|
+
config: AccountConfig
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** @public */
|
|
75
|
+
export interface AccountSummary {
|
|
76
|
+
portfolioValue: string
|
|
77
|
+
availableMargin: string
|
|
78
|
+
marginUsed: string
|
|
79
|
+
unrealizedPnl: string
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** @public */
|
|
83
|
+
export interface TriggerOrder {
|
|
84
|
+
orderId: string
|
|
85
|
+
market: MarketDisplay
|
|
86
|
+
type: OrderType
|
|
87
|
+
size: string
|
|
88
|
+
triggerPrice: string
|
|
89
|
+
limitPrice?: string
|
|
90
|
+
label?: string
|
|
91
|
+
createdAt: string
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** @public */
|
|
95
|
+
export interface PositionsResponse {
|
|
96
|
+
provider: string
|
|
97
|
+
positions: Position[]
|
|
98
|
+
pagination: Pagination
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** @public */
|
|
102
|
+
export interface OrdersResponse {
|
|
103
|
+
provider: string
|
|
104
|
+
openOrders: OpenOrder[]
|
|
105
|
+
triggerOrders: TriggerOrder[]
|
|
106
|
+
pagination: Pagination
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** @public */
|
|
110
|
+
export interface Fill {
|
|
111
|
+
id: string
|
|
112
|
+
orderId: string
|
|
113
|
+
market: MarketDisplay
|
|
114
|
+
side: OrderSide
|
|
115
|
+
type: OrderType
|
|
116
|
+
size: string
|
|
117
|
+
price: string
|
|
118
|
+
status: FillStatus
|
|
119
|
+
liquidity: LiquidityRole
|
|
120
|
+
filledSize?: string
|
|
121
|
+
fee?: string
|
|
122
|
+
realizedPnl?: string | null
|
|
123
|
+
startPosition?: string
|
|
124
|
+
classification: FillClassification
|
|
125
|
+
createdAt: string
|
|
126
|
+
// Fully-resolved block-explorer URL for the settling on-chain tx. Absent when
|
|
127
|
+
// the fill has no on-chain settlement tx.
|
|
128
|
+
explorerLink?: string
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** @public */
|
|
132
|
+
export interface Pagination {
|
|
133
|
+
limit: number
|
|
134
|
+
hasMore: boolean
|
|
135
|
+
cursor?: string
|
|
136
|
+
nextUrl?: string
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/** @public */
|
|
140
|
+
export interface FillsResponse {
|
|
141
|
+
provider: string
|
|
142
|
+
items: Fill[]
|
|
143
|
+
pagination: Pagination
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/** @public */
|
|
147
|
+
export interface BaseActivity {
|
|
148
|
+
id: string
|
|
149
|
+
provider: string
|
|
150
|
+
timestamp: string
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** @public */
|
|
154
|
+
export interface DepositActivity extends BaseActivity {
|
|
155
|
+
type: ActivityType.DEPOSIT
|
|
156
|
+
amount: string
|
|
157
|
+
// Fully-resolved block-explorer URL for the on-chain deposit tx.
|
|
158
|
+
explorerLink?: string
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/** @public */
|
|
162
|
+
export interface WithdrawalActivity extends BaseActivity {
|
|
163
|
+
type: ActivityType.WITHDRAWAL
|
|
164
|
+
amount: string
|
|
165
|
+
fee: string
|
|
166
|
+
// Fully-resolved block-explorer URL for the on-chain withdrawal tx.
|
|
167
|
+
explorerLink?: string
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/** @public */
|
|
171
|
+
export interface LiquidatedPosition {
|
|
172
|
+
market: MarketDisplay
|
|
173
|
+
size: string
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** @public */
|
|
177
|
+
export interface LiquidationActivity extends BaseActivity {
|
|
178
|
+
type: ActivityType.LIQUIDATION
|
|
179
|
+
liquidatedNotionalPosition: string
|
|
180
|
+
accountValue: string
|
|
181
|
+
leverageType: string
|
|
182
|
+
liquidatedPositions: LiquidatedPosition[]
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/** @public */
|
|
186
|
+
export interface FundingActivity extends BaseActivity {
|
|
187
|
+
type: ActivityType.FUNDING
|
|
188
|
+
market: MarketDisplay
|
|
189
|
+
amount: string
|
|
190
|
+
positionSize: string
|
|
191
|
+
fundingRate: string
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// At least one of `counterpartyAccountIndex` / `counterpartyAddress` is always
|
|
195
|
+
// present; both may appear together.
|
|
196
|
+
/** @public */
|
|
197
|
+
export type TransferActivity = BaseActivity & {
|
|
198
|
+
type: ActivityType.TRANSFER
|
|
199
|
+
direction: 'IN' | 'OUT'
|
|
200
|
+
asset: string
|
|
201
|
+
amount: string
|
|
202
|
+
meta?: Record<string, unknown>
|
|
203
|
+
// Fully-resolved block-explorer URL for the on-chain transfer tx.
|
|
204
|
+
explorerLink?: string
|
|
205
|
+
} & (
|
|
206
|
+
| { counterpartyAccountIndex: number; counterpartyAddress?: string }
|
|
207
|
+
| { counterpartyAccountIndex?: number; counterpartyAddress: string }
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
/** @public */
|
|
211
|
+
export type ActivityItem =
|
|
212
|
+
| DepositActivity
|
|
213
|
+
| WithdrawalActivity
|
|
214
|
+
| LiquidationActivity
|
|
215
|
+
| FundingActivity
|
|
216
|
+
| TransferActivity
|
|
217
|
+
|
|
218
|
+
/** @public */
|
|
219
|
+
export interface ActivitiesResponse {
|
|
220
|
+
provider: string
|
|
221
|
+
items: ActivityItem[]
|
|
222
|
+
pagination: Pagination
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Account configuration state — typed `AccountResponse.config`.
|
|
226
|
+
|
|
227
|
+
/** @public */
|
|
228
|
+
export type HyperliquidAgent = Record<string, unknown>
|
|
229
|
+
|
|
230
|
+
/** @public */
|
|
231
|
+
export interface HyperliquidBuilderFeeApproval {
|
|
232
|
+
builderAddress: string
|
|
233
|
+
/** Basis points as a string. */
|
|
234
|
+
maxFeeRate: string
|
|
235
|
+
approved: boolean
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/** @public */
|
|
239
|
+
export interface HyperliquidAccountConfig {
|
|
240
|
+
provider: 'hyperliquid'
|
|
241
|
+
/** `null` means abstraction has never been set. */
|
|
242
|
+
abstractionMode: string | null
|
|
243
|
+
agents: HyperliquidAgent[]
|
|
244
|
+
builderFeeApproval?: HyperliquidBuilderFeeApproval
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/** @public */
|
|
248
|
+
export interface LighterAccountConfig {
|
|
249
|
+
provider: 'lighter'
|
|
250
|
+
accountIndex: number
|
|
251
|
+
apiKeyIndex: number
|
|
252
|
+
apiKeyRegistered: boolean
|
|
253
|
+
accountType: number
|
|
254
|
+
readOnlyTokenApproved: boolean
|
|
255
|
+
/** Unix seconds. Present iff `readOnlyTokenApproved === true`. */
|
|
256
|
+
readOnlyTokenExpiry?: number
|
|
257
|
+
/** Present iff `readOnlyTokenApproved === true`. */
|
|
258
|
+
readOnlyTokenScope?: 'single' | 'all'
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** @public */
|
|
262
|
+
export type AccountConfig = HyperliquidAccountConfig | LighterAccountConfig
|
|
263
|
+
|
|
264
|
+
/** @public */
|
|
265
|
+
export interface AccountConfigValue {
|
|
266
|
+
name: string
|
|
267
|
+
/** `null` means no current value — consumers fall back to the descriptor default. */
|
|
268
|
+
value: string | number | boolean | null
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/** @public */
|
|
272
|
+
export interface AccountConfigSetting {
|
|
273
|
+
type: ActionType
|
|
274
|
+
values: AccountConfigValue[]
|
|
275
|
+
/** `undefined` means satisfaction is tracked outside `AccountConfig` (e.g. backend `checkSetup`). */
|
|
276
|
+
satisfied?: boolean
|
|
277
|
+
}
|