@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.
Files changed (170) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +48 -0
  3. package/dist/cjs/acceptTerms.d.ts +20 -0
  4. package/dist/cjs/acceptTerms.d.ts.map +1 -0
  5. package/dist/cjs/acceptTerms.js +10 -0
  6. package/dist/cjs/acceptTerms.js.map +1 -0
  7. package/dist/cjs/account.d.ts +191 -0
  8. package/dist/cjs/account.d.ts.map +1 -0
  9. package/dist/cjs/account.js +3 -0
  10. package/dist/cjs/account.js.map +1 -0
  11. package/dist/cjs/action.d.ts +200 -0
  12. package/dist/cjs/action.d.ts.map +1 -0
  13. package/dist/cjs/action.js +3 -0
  14. package/dist/cjs/action.js.map +1 -0
  15. package/dist/cjs/asset.d.ts +11 -0
  16. package/dist/cjs/asset.d.ts.map +1 -0
  17. package/dist/cjs/asset.js +3 -0
  18. package/dist/cjs/asset.js.map +1 -0
  19. package/dist/cjs/enums.d.ts +148 -0
  20. package/dist/cjs/enums.d.ts.map +1 -0
  21. package/dist/cjs/enums.js +170 -0
  22. package/dist/cjs/enums.js.map +1 -0
  23. package/dist/cjs/errors.d.ts +7 -0
  24. package/dist/cjs/errors.d.ts.map +1 -0
  25. package/dist/cjs/errors.js +3 -0
  26. package/dist/cjs/errors.js.map +1 -0
  27. package/dist/cjs/index.d.ts +15 -0
  28. package/dist/cjs/index.d.ts.map +1 -0
  29. package/dist/cjs/index.js +31 -0
  30. package/dist/cjs/index.js.map +1 -0
  31. package/dist/cjs/market.d.ts +69 -0
  32. package/dist/cjs/market.d.ts.map +1 -0
  33. package/dist/cjs/market.js +3 -0
  34. package/dist/cjs/market.js.map +1 -0
  35. package/dist/cjs/meta.d.ts +17 -0
  36. package/dist/cjs/meta.d.ts.map +1 -0
  37. package/dist/cjs/meta.js +3 -0
  38. package/dist/cjs/meta.js.map +1 -0
  39. package/dist/cjs/package.json +1 -0
  40. package/dist/cjs/primitives.d.ts +3 -0
  41. package/dist/cjs/primitives.d.ts.map +1 -0
  42. package/dist/cjs/primitives.js +3 -0
  43. package/dist/cjs/primitives.js.map +1 -0
  44. package/dist/cjs/providers.d.ts +58 -0
  45. package/dist/cjs/providers.d.ts.map +1 -0
  46. package/dist/cjs/providers.js +3 -0
  47. package/dist/cjs/providers.js.map +1 -0
  48. package/dist/cjs/quote.d.ts +23 -0
  49. package/dist/cjs/quote.d.ts.map +1 -0
  50. package/dist/cjs/quote.js +3 -0
  51. package/dist/cjs/quote.js.map +1 -0
  52. package/dist/cjs/subscriptions.d.ts +77 -0
  53. package/dist/cjs/subscriptions.d.ts.map +1 -0
  54. package/dist/cjs/subscriptions.js +3 -0
  55. package/dist/cjs/subscriptions.js.map +1 -0
  56. package/dist/cjs/typedData.d.ts +23 -0
  57. package/dist/cjs/typedData.d.ts.map +1 -0
  58. package/dist/cjs/typedData.js +3 -0
  59. package/dist/cjs/typedData.js.map +1 -0
  60. package/dist/cjs/vote.d.ts +27 -0
  61. package/dist/cjs/vote.d.ts.map +1 -0
  62. package/dist/cjs/vote.js +12 -0
  63. package/dist/cjs/vote.js.map +1 -0
  64. package/dist/esm/acceptTerms.d.ts +45 -0
  65. package/dist/esm/acceptTerms.d.ts.map +1 -0
  66. package/dist/esm/acceptTerms.js +12 -0
  67. package/dist/esm/acceptTerms.js.map +1 -0
  68. package/dist/esm/account.d.ts +229 -0
  69. package/dist/esm/account.d.ts.map +1 -0
  70. package/dist/esm/account.js +2 -0
  71. package/dist/esm/account.js.map +1 -0
  72. package/dist/esm/action.d.ts +248 -0
  73. package/dist/esm/action.d.ts.map +1 -0
  74. package/dist/esm/action.js +2 -0
  75. package/dist/esm/action.js.map +1 -0
  76. package/dist/esm/asset.d.ts +25 -0
  77. package/dist/esm/asset.d.ts.map +1 -0
  78. package/dist/esm/asset.js +2 -0
  79. package/dist/esm/asset.js.map +1 -0
  80. package/dist/esm/enums.d.ts +171 -0
  81. package/dist/esm/enums.d.ts.map +1 -0
  82. package/dist/esm/enums.js +195 -0
  83. package/dist/esm/enums.js.map +1 -0
  84. package/dist/esm/errors.d.ts +8 -0
  85. package/dist/esm/errors.d.ts.map +1 -0
  86. package/dist/esm/errors.js +2 -0
  87. package/dist/esm/errors.js.map +1 -0
  88. package/dist/esm/index.d.ts +23 -0
  89. package/dist/esm/index.d.ts.map +1 -0
  90. package/dist/esm/index.js +23 -0
  91. package/dist/esm/index.js.map +1 -0
  92. package/dist/esm/market.d.ts +102 -0
  93. package/dist/esm/market.d.ts.map +1 -0
  94. package/dist/esm/market.js +2 -0
  95. package/dist/esm/market.js.map +1 -0
  96. package/dist/esm/meta.d.ts +37 -0
  97. package/dist/esm/meta.d.ts.map +1 -0
  98. package/dist/esm/meta.js +2 -0
  99. package/dist/esm/meta.js.map +1 -0
  100. package/dist/esm/package.json +1 -0
  101. package/dist/esm/primitives.d.ts +5 -0
  102. package/dist/esm/primitives.d.ts.map +1 -0
  103. package/dist/esm/primitives.js +2 -0
  104. package/dist/esm/primitives.js.map +1 -0
  105. package/dist/esm/providers.d.ts +116 -0
  106. package/dist/esm/providers.d.ts.map +1 -0
  107. package/dist/esm/providers.js +2 -0
  108. package/dist/esm/providers.js.map +1 -0
  109. package/dist/esm/quote.d.ts +47 -0
  110. package/dist/esm/quote.d.ts.map +1 -0
  111. package/dist/esm/quote.js +2 -0
  112. package/dist/esm/quote.js.map +1 -0
  113. package/dist/esm/subscriptions.d.ts +115 -0
  114. package/dist/esm/subscriptions.d.ts.map +1 -0
  115. package/dist/esm/subscriptions.js +2 -0
  116. package/dist/esm/subscriptions.js.map +1 -0
  117. package/dist/esm/typedData.d.ts +28 -0
  118. package/dist/esm/typedData.d.ts.map +1 -0
  119. package/dist/esm/typedData.js +2 -0
  120. package/dist/esm/typedData.js.map +1 -0
  121. package/dist/esm/vote.d.ts +68 -0
  122. package/dist/esm/vote.d.ts.map +1 -0
  123. package/dist/esm/vote.js +20 -0
  124. package/dist/esm/vote.js.map +1 -0
  125. package/dist/types/acceptTerms.d.ts +45 -0
  126. package/dist/types/acceptTerms.d.ts.map +1 -0
  127. package/dist/types/account.d.ts +229 -0
  128. package/dist/types/account.d.ts.map +1 -0
  129. package/dist/types/action.d.ts +248 -0
  130. package/dist/types/action.d.ts.map +1 -0
  131. package/dist/types/asset.d.ts +25 -0
  132. package/dist/types/asset.d.ts.map +1 -0
  133. package/dist/types/enums.d.ts +171 -0
  134. package/dist/types/enums.d.ts.map +1 -0
  135. package/dist/types/errors.d.ts +8 -0
  136. package/dist/types/errors.d.ts.map +1 -0
  137. package/dist/types/index.d.ts +23 -0
  138. package/dist/types/index.d.ts.map +1 -0
  139. package/dist/types/market.d.ts +102 -0
  140. package/dist/types/market.d.ts.map +1 -0
  141. package/dist/types/meta.d.ts +37 -0
  142. package/dist/types/meta.d.ts.map +1 -0
  143. package/dist/types/primitives.d.ts +5 -0
  144. package/dist/types/primitives.d.ts.map +1 -0
  145. package/dist/types/providers.d.ts +116 -0
  146. package/dist/types/providers.d.ts.map +1 -0
  147. package/dist/types/quote.d.ts +47 -0
  148. package/dist/types/quote.d.ts.map +1 -0
  149. package/dist/types/subscriptions.d.ts +115 -0
  150. package/dist/types/subscriptions.d.ts.map +1 -0
  151. package/dist/types/typedData.d.ts +28 -0
  152. package/dist/types/typedData.d.ts.map +1 -0
  153. package/dist/types/vote.d.ts +68 -0
  154. package/dist/types/vote.d.ts.map +1 -0
  155. package/package.json +49 -0
  156. package/src/acceptTerms.ts +53 -0
  157. package/src/account.ts +277 -0
  158. package/src/action.ts +292 -0
  159. package/src/asset.ts +25 -0
  160. package/src/enums.ts +205 -0
  161. package/src/errors.ts +8 -0
  162. package/src/index.ts +23 -0
  163. package/src/market.ts +132 -0
  164. package/src/meta.ts +38 -0
  165. package/src/primitives.ts +5 -0
  166. package/src/providers.ts +122 -0
  167. package/src/quote.ts +49 -0
  168. package/src/subscriptions.ts +118 -0
  169. package/src/typedData.ts +32 -0
  170. 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
+ }