@lifi/perps-types 0.1.1-alpha.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.
Files changed (61) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +48 -0
  3. package/package.json +40 -0
  4. package/src/_cjs/account.js +3 -0
  5. package/src/_cjs/account.js.map +1 -0
  6. package/src/_cjs/authorization.js +3 -0
  7. package/src/_cjs/authorization.js.map +1 -0
  8. package/src/_cjs/enums.js +93 -0
  9. package/src/_cjs/enums.js.map +1 -0
  10. package/src/_cjs/errors.js +3 -0
  11. package/src/_cjs/errors.js.map +1 -0
  12. package/src/_cjs/index.js +24 -0
  13. package/src/_cjs/index.js.map +1 -0
  14. package/src/_cjs/market.js +3 -0
  15. package/src/_cjs/market.js.map +1 -0
  16. package/src/_cjs/package.json +1 -0
  17. package/src/_cjs/trading.js +3 -0
  18. package/src/_cjs/trading.js.map +1 -0
  19. package/src/_cjs/typedData.js +3 -0
  20. package/src/_cjs/typedData.js.map +1 -0
  21. package/src/_esm/account.js +2 -0
  22. package/src/_esm/account.js.map +1 -0
  23. package/src/_esm/authorization.js +2 -0
  24. package/src/_esm/authorization.js.map +1 -0
  25. package/src/_esm/enums.js +96 -0
  26. package/src/_esm/enums.js.map +1 -0
  27. package/src/_esm/errors.js +2 -0
  28. package/src/_esm/errors.js.map +1 -0
  29. package/src/_esm/index.js +8 -0
  30. package/src/_esm/index.js.map +1 -0
  31. package/src/_esm/market.js +2 -0
  32. package/src/_esm/market.js.map +1 -0
  33. package/src/_esm/package.json +1 -0
  34. package/src/_esm/trading.js +2 -0
  35. package/src/_esm/trading.js.map +1 -0
  36. package/src/_esm/typedData.js +2 -0
  37. package/src/_esm/typedData.js.map +1 -0
  38. package/src/_types/account.d.ts +75 -0
  39. package/src/_types/account.d.ts.map +1 -0
  40. package/src/_types/authorization.d.ts +39 -0
  41. package/src/_types/authorization.d.ts.map +1 -0
  42. package/src/_types/enums.d.ts +78 -0
  43. package/src/_types/enums.d.ts.map +1 -0
  44. package/src/_types/errors.d.ts +7 -0
  45. package/src/_types/errors.d.ts.map +1 -0
  46. package/src/_types/index.d.ts +8 -0
  47. package/src/_types/index.d.ts.map +1 -0
  48. package/src/_types/market.d.ts +71 -0
  49. package/src/_types/market.d.ts.map +1 -0
  50. package/src/_types/trading.d.ts +82 -0
  51. package/src/_types/trading.d.ts.map +1 -0
  52. package/src/_types/typedData.d.ts +11 -0
  53. package/src/_types/typedData.d.ts.map +1 -0
  54. package/src/account.ts +88 -0
  55. package/src/authorization.ts +46 -0
  56. package/src/enums.ts +99 -0
  57. package/src/errors.ts +7 -0
  58. package/src/index.ts +7 -0
  59. package/src/market.ts +96 -0
  60. package/src/trading.ts +99 -0
  61. package/src/typedData.ts +19 -0
@@ -0,0 +1,75 @@
1
+ import type { Address } from './typedData.js';
2
+ import type { HistoryItemStatus, MarginMode, OrderSide, OrderType, PositionSide } from './enums.js';
3
+ export interface FeeTier {
4
+ maker: string;
5
+ taker: string;
6
+ }
7
+ export interface Position {
8
+ symbol: string;
9
+ assetId: number;
10
+ dex: string;
11
+ side: PositionSide;
12
+ size: string;
13
+ entryPrice: string;
14
+ markPrice: string;
15
+ liquidationPrice: string;
16
+ unrealizedPnl: string;
17
+ leverage: number;
18
+ marginUsed: string;
19
+ marginMode: MarginMode;
20
+ }
21
+ export interface OpenOrder {
22
+ id: string;
23
+ symbol: string;
24
+ assetId: number;
25
+ dex: string;
26
+ side: OrderSide;
27
+ type: OrderType;
28
+ size: string;
29
+ price: string;
30
+ filledSize: string;
31
+ reduceOnly: boolean;
32
+ createdAt: string;
33
+ }
34
+ export interface Balance {
35
+ currency: string;
36
+ amount: string;
37
+ }
38
+ export interface AccountResponse {
39
+ dex: string;
40
+ address: Address;
41
+ balances: Balance[];
42
+ marginUsed: string;
43
+ unrealizedPnl: string;
44
+ feeTier: FeeTier;
45
+ positions: Position[];
46
+ openOrders: OpenOrder[];
47
+ config: Record<string, unknown>;
48
+ }
49
+ export interface HistoryItem {
50
+ id: string;
51
+ symbol: string;
52
+ assetId: number;
53
+ dex: string;
54
+ side: OrderSide;
55
+ type: OrderType;
56
+ size: string;
57
+ price: string;
58
+ status: HistoryItemStatus;
59
+ filledSize?: string;
60
+ fee?: string;
61
+ realizedPnl?: string | null;
62
+ createdAt: string;
63
+ }
64
+ export interface Pagination {
65
+ limit: number;
66
+ hasMore: boolean;
67
+ cursor?: string;
68
+ nextUrl?: string;
69
+ }
70
+ export interface HistoryResponse {
71
+ dex: string;
72
+ items: HistoryItem[];
73
+ pagination: Pagination;
74
+ }
75
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,iBAAiB,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;CACvB"}
@@ -0,0 +1,39 @@
1
+ import type { Address, Hex, PerpsTypedData } from './typedData.js';
2
+ export interface AuthorizationInput {
3
+ key: string;
4
+ params?: Record<string, unknown>;
5
+ }
6
+ export interface CreateAuthorizationRequest {
7
+ dex: string;
8
+ address: Address;
9
+ signerAddress?: Address;
10
+ authorizations: AuthorizationInput[];
11
+ }
12
+ export interface AuthorizationAction {
13
+ action: string;
14
+ description?: string;
15
+ typedData: PerpsTypedData;
16
+ }
17
+ export interface CreateAuthorizationResponse {
18
+ actions: AuthorizationAction[];
19
+ }
20
+ export interface SignedAuthorization {
21
+ action: string;
22
+ typedData: PerpsTypedData;
23
+ signature: Hex;
24
+ }
25
+ export interface AuthorizationsRequest {
26
+ dex: string;
27
+ address: Address;
28
+ signerAddress?: Address;
29
+ actions: SignedAuthorization[];
30
+ }
31
+ export interface AuthorizationResult {
32
+ action: string;
33
+ success: boolean;
34
+ error?: string;
35
+ }
36
+ export interface AuthorizationsResponse {
37
+ results: AuthorizationResult[];
38
+ }
39
+ //# sourceMappingURL=authorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAElE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,kBAAkB,EAAE,CAAA;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,cAAc,CAAA;IACzB,SAAS,EAAE,GAAG,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B"}
@@ -0,0 +1,78 @@
1
+ export declare enum PerpsErrorCode {
2
+ DefaultError = 2000,
3
+ ServerError = 2001,
4
+ ValidationError = 2002,
5
+ TimeoutError = 2003,
6
+ ThirdPartyError = 2004,
7
+ SignatureInvalid = 2010,
8
+ AgentUnauthorized = 2011,
9
+ ExchangeRejected = 2020,
10
+ InsufficientMargin = 2021,
11
+ InsufficientBalance = 2022,
12
+ MarketNotFound = 2023,
13
+ OrderNotFound = 2024,
14
+ PositionNotFound = 2025,
15
+ InvalidNonce = 2040,
16
+ NonceAlreadyUsed = 2041,
17
+ NonceExpired = 2042,
18
+ PayloadMismatch = 2050,
19
+ RouteNotFound = 2060
20
+ }
21
+ export declare enum OrderSide {
22
+ BUY = "BUY",
23
+ SELL = "SELL"
24
+ }
25
+ export declare enum OrderType {
26
+ MARKET = "MARKET",
27
+ LIMIT = "LIMIT"
28
+ }
29
+ export declare enum PositionSide {
30
+ LONG = "LONG",
31
+ SHORT = "SHORT"
32
+ }
33
+ export declare enum MarginMode {
34
+ ISOLATED = "ISOLATED",
35
+ CROSS = "CROSS"
36
+ }
37
+ export declare enum TimeInForce {
38
+ GTC = "GTC",
39
+ IOC = "IOC",
40
+ POST_ONLY = "POST_ONLY",
41
+ GTT = "GTT"
42
+ }
43
+ export declare enum OrderStatus {
44
+ PENDING = "PENDING",
45
+ OPEN = "OPEN",
46
+ PARTIALLY_FILLED = "PARTIALLY_FILLED",
47
+ FILLED = "FILLED",
48
+ CANCELLED = "CANCELLED",
49
+ REJECTED = "REJECTED",
50
+ EXPIRED = "EXPIRED",
51
+ TRIGGERED = "TRIGGERED"
52
+ }
53
+ export declare enum HistoryItemStatus {
54
+ FILLED = "FILLED",
55
+ PARTIALLY_FILLED = "PARTIALLY_FILLED",
56
+ CANCELLED = "CANCELLED",
57
+ REJECTED = "REJECTED"
58
+ }
59
+ export declare enum OrderActionType {
60
+ UPDATE_LEVERAGE = "updateLeverage",
61
+ PLACE_ORDER = "placeOrder",
62
+ PLACE_TRIGGER_ORDER = "placeTriggerOrder",
63
+ CANCEL_ORDER = "cancelOrder"
64
+ }
65
+ export declare enum TriggerCondition {
66
+ ABOVE = "ABOVE",
67
+ BELOW = "BELOW"
68
+ }
69
+ export declare enum TriggerOrderType {
70
+ TAKE_PROFIT = "TAKE_PROFIT",
71
+ STOP_LOSS = "STOP_LOSS"
72
+ }
73
+ export declare enum TriggerOrderStatus {
74
+ WAITING = "WAITING",
75
+ TRIGGERED = "TRIGGERED",
76
+ CANCELLED = "CANCELLED"
77
+ }
78
+ //# sourceMappingURL=enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../enums.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IAExB,YAAY,OAAO;IACnB,WAAW,OAAO;IAClB,eAAe,OAAO;IACtB,YAAY,OAAO;IACnB,eAAe,OAAO;IAGtB,gBAAgB,OAAO;IACvB,iBAAiB,OAAO;IAGxB,gBAAgB,OAAO;IACvB,kBAAkB,OAAO;IACzB,mBAAmB,OAAO;IAC1B,cAAc,OAAO;IACrB,aAAa,OAAO;IACpB,gBAAgB,OAAO;IAGvB,YAAY,OAAO;IACnB,gBAAgB,OAAO;IACvB,YAAY,OAAO;IAGnB,eAAe,OAAO;IAGtB,aAAa,OAAO;CACrB;AAED,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED,oBAAY,SAAS;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,UAAU;IACpB,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,GAAG,QAAQ;CACZ;AAED,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,gBAAgB,qBAAqB;IACrC,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IACvB,QAAQ,aAAa;CACtB;AAED,oBAAY,eAAe;IACzB,eAAe,mBAAmB;IAClC,WAAW,eAAe;IAC1B,mBAAmB,sBAAsB;IACzC,YAAY,gBAAgB;CAC7B;AAED,oBAAY,gBAAgB;IAC1B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,oBAAY,gBAAgB;IAC1B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;CACxB;AAED,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;CACxB"}
@@ -0,0 +1,7 @@
1
+ import type { PerpsErrorCode } from './enums.js';
2
+ export interface PerpsErrorBody {
3
+ code: PerpsErrorCode;
4
+ tool?: string;
5
+ message: string;
6
+ }
7
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,cAAc,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB"}
@@ -0,0 +1,8 @@
1
+ export * from './typedData.js';
2
+ export * from './enums.js';
3
+ export * from './market.js';
4
+ export * from './authorization.js';
5
+ export * from './account.js';
6
+ export * from './trading.js';
7
+ export * from './errors.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,71 @@
1
+ export interface AuthorizationParam {
2
+ name: string;
3
+ type: 'string' | 'number' | 'boolean';
4
+ required: boolean;
5
+ }
6
+ export interface Authorization {
7
+ key: string;
8
+ name: string;
9
+ params?: AuthorizationParam[];
10
+ }
11
+ export interface Dex {
12
+ key: string;
13
+ name: string;
14
+ logoURI: string;
15
+ authorizations: Authorization[];
16
+ extraData?: Record<string, unknown>;
17
+ }
18
+ export interface DexesResponse {
19
+ dexes: Dex[];
20
+ }
21
+ export interface FundingInfo {
22
+ rate: string;
23
+ nextFundingTime: number;
24
+ }
25
+ export interface Market {
26
+ symbol: string;
27
+ name: string;
28
+ logoURI: string;
29
+ assetId: number;
30
+ dex: string;
31
+ szDecimals: number;
32
+ maxLeverage: number;
33
+ onlyIsolated: boolean;
34
+ funding: FundingInfo;
35
+ openInterest?: string;
36
+ volume24h?: string;
37
+ markPrice: string;
38
+ }
39
+ export interface MarketsResponse {
40
+ markets: Market[];
41
+ }
42
+ export interface PricesResponse {
43
+ prices: Record<string, string>;
44
+ }
45
+ export interface Candle {
46
+ t: number;
47
+ o: string;
48
+ h: string;
49
+ l: string;
50
+ c: string;
51
+ v: string;
52
+ }
53
+ export interface OhlcvResponse {
54
+ dex: string;
55
+ symbol: string;
56
+ interval: string;
57
+ candles: Candle[];
58
+ }
59
+ export type OhlcvInterval = '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M';
60
+ export interface OrderbookLevel {
61
+ price: string;
62
+ size: string;
63
+ }
64
+ export interface OrderbookResponse {
65
+ dex: string;
66
+ symbol: string;
67
+ bids: OrderbookLevel[];
68
+ asks: OrderbookLevel[];
69
+ timestamp: number;
70
+ }
71
+ //# sourceMappingURL=market.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../market.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IACrC,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,EAAE,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,WAAW,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAA;AAER,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,82 @@
1
+ import type { Address, Hex, PerpsTypedData } from './typedData.js';
2
+ import type { OrderActionType, OrderSide, OrderStatus, OrderType, TimeInForce, TriggerCondition } from './enums.js';
3
+ export interface TriggerOrderInput {
4
+ triggerPrice: string;
5
+ limitPrice?: string;
6
+ }
7
+ export interface CreateOrderRequest {
8
+ dex: string;
9
+ address: Address;
10
+ signerAddress?: Address;
11
+ clientOrderId?: string;
12
+ symbol: string;
13
+ side: OrderSide;
14
+ type: OrderType;
15
+ size: string;
16
+ price: string;
17
+ leverage?: number;
18
+ reduceOnly?: boolean;
19
+ timeInForce?: TimeInForce;
20
+ expiresAt?: string;
21
+ takeProfit?: TriggerOrderInput;
22
+ stopLoss?: TriggerOrderInput;
23
+ }
24
+ export interface OrderAction {
25
+ action: OrderActionType;
26
+ description?: string;
27
+ typedData: PerpsTypedData;
28
+ }
29
+ export interface CreateOrderResponse {
30
+ actions: OrderAction[];
31
+ }
32
+ export interface CancelOrderRequest {
33
+ dex: string;
34
+ address: Address;
35
+ signerAddress?: Address;
36
+ ids: string[];
37
+ }
38
+ export interface CancelOrderPayloadResponse {
39
+ actions: OrderAction[];
40
+ }
41
+ export interface SignedOrderAction {
42
+ action: OrderActionType;
43
+ typedData: PerpsTypedData;
44
+ signature: Hex;
45
+ }
46
+ export interface SubmitOrderRequest {
47
+ dex: string;
48
+ address: Address;
49
+ signerAddress?: Address;
50
+ actions: SignedOrderAction[];
51
+ }
52
+ export interface OrderActionResult {
53
+ action: OrderActionType;
54
+ success: boolean;
55
+ orderId?: string;
56
+ error?: string;
57
+ }
58
+ export interface SubmitOrderResponse {
59
+ results: OrderActionResult[];
60
+ }
61
+ export interface Order {
62
+ orderId: string;
63
+ clientOrderId?: string;
64
+ symbol: string;
65
+ side: OrderSide;
66
+ type: OrderType;
67
+ price?: string;
68
+ originalSize: string;
69
+ remainingSize: string;
70
+ filledSize: string;
71
+ timeInForce?: TimeInForce;
72
+ expiresAt?: string;
73
+ reduceOnly?: boolean;
74
+ isTrigger?: boolean;
75
+ triggerPrice?: string;
76
+ triggerCondition?: TriggerCondition;
77
+ status: OrderStatus;
78
+ averagePrice?: string;
79
+ createdAt: string;
80
+ updatedAt: string;
81
+ }
82
+ //# sourceMappingURL=trading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trading.d.ts","sourceRoot":"","sources":["../trading.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { TypedData, SignedTypedData } from '@lifi/types';
2
+ import type { Address, Hex, TypedDataDomain, TypedDataParameter } from 'viem';
3
+ export type PerpsTypedDataPrimaryType = 'HyperliquidTransaction:ApproveAgent' | 'HyperliquidTransaction:ApproveBuilderFee' | 'HyperliquidTransaction:UserSetAbstraction' | 'Agent';
4
+ export type PerpsTypedData = Omit<TypedData, 'primaryType'> & {
5
+ primaryType: PerpsTypedDataPrimaryType;
6
+ };
7
+ export type PerpsSignedTypedData = Omit<SignedTypedData, 'primaryType'> & {
8
+ primaryType: PerpsTypedDataPrimaryType;
9
+ };
10
+ export type { Address, Hex, TypedDataDomain, TypedDataParameter };
11
+ //# sourceMappingURL=typedData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAE7E,MAAM,MAAM,yBAAyB,GACjC,qCAAqC,GACrC,0CAA0C,GAC1C,2CAA2C,GAC3C,OAAO,CAAA;AAEX,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG;IAC5D,WAAW,EAAE,yBAAyB,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG;IACxE,WAAW,EAAE,yBAAyB,CAAA;CACvC,CAAA;AAGD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
package/src/account.ts ADDED
@@ -0,0 +1,88 @@
1
+ import type { Address } from './typedData.js'
2
+ import type {
3
+ HistoryItemStatus,
4
+ MarginMode,
5
+ OrderSide,
6
+ OrderType,
7
+ PositionSide,
8
+ } from './enums.js'
9
+
10
+ export interface FeeTier {
11
+ maker: string
12
+ taker: string
13
+ }
14
+
15
+ export interface Position {
16
+ symbol: string
17
+ assetId: number
18
+ dex: string
19
+ side: PositionSide
20
+ size: string
21
+ entryPrice: string
22
+ markPrice: string
23
+ liquidationPrice: string
24
+ unrealizedPnl: string
25
+ leverage: number
26
+ marginUsed: string
27
+ marginMode: MarginMode
28
+ }
29
+
30
+ export interface OpenOrder {
31
+ id: string
32
+ symbol: string
33
+ assetId: number
34
+ dex: string
35
+ side: OrderSide
36
+ type: OrderType
37
+ size: string
38
+ price: string
39
+ filledSize: string
40
+ reduceOnly: boolean
41
+ createdAt: string
42
+ }
43
+
44
+ export interface Balance {
45
+ currency: string
46
+ amount: string
47
+ }
48
+
49
+ export interface AccountResponse {
50
+ dex: string
51
+ address: Address
52
+ balances: Balance[]
53
+ marginUsed: string
54
+ unrealizedPnl: string
55
+ feeTier: FeeTier
56
+ positions: Position[]
57
+ openOrders: OpenOrder[]
58
+ config: Record<string, unknown>
59
+ }
60
+
61
+ export interface HistoryItem {
62
+ id: string
63
+ symbol: string
64
+ assetId: number
65
+ dex: string
66
+ side: OrderSide
67
+ type: OrderType
68
+ size: string
69
+ price: string
70
+ status: HistoryItemStatus
71
+ filledSize?: string
72
+ fee?: string
73
+ realizedPnl?: string | null
74
+ createdAt: string
75
+ }
76
+
77
+ export interface Pagination {
78
+ limit: number
79
+ hasMore: boolean
80
+ cursor?: string
81
+ nextUrl?: string
82
+ }
83
+
84
+ export interface HistoryResponse {
85
+ dex: string
86
+ items: HistoryItem[]
87
+ pagination: Pagination
88
+ }
@@ -0,0 +1,46 @@
1
+ import type { Address, Hex, PerpsTypedData } from './typedData.js'
2
+
3
+ export interface AuthorizationInput {
4
+ key: string
5
+ params?: Record<string, unknown>
6
+ }
7
+
8
+ export interface CreateAuthorizationRequest {
9
+ dex: string
10
+ address: Address
11
+ signerAddress?: Address
12
+ authorizations: AuthorizationInput[]
13
+ }
14
+
15
+ export interface AuthorizationAction {
16
+ action: string
17
+ description?: string
18
+ typedData: PerpsTypedData
19
+ }
20
+
21
+ export interface CreateAuthorizationResponse {
22
+ actions: AuthorizationAction[]
23
+ }
24
+
25
+ export interface SignedAuthorization {
26
+ action: string
27
+ typedData: PerpsTypedData
28
+ signature: Hex
29
+ }
30
+
31
+ export interface AuthorizationsRequest {
32
+ dex: string
33
+ address: Address
34
+ signerAddress?: Address
35
+ actions: SignedAuthorization[]
36
+ }
37
+
38
+ export interface AuthorizationResult {
39
+ action: string
40
+ success: boolean
41
+ error?: string
42
+ }
43
+
44
+ export interface AuthorizationsResponse {
45
+ results: AuthorizationResult[]
46
+ }
package/src/enums.ts ADDED
@@ -0,0 +1,99 @@
1
+ export enum PerpsErrorCode {
2
+ // Base errors (2000-2009)
3
+ DefaultError = 2000,
4
+ ServerError = 2001,
5
+ ValidationError = 2002,
6
+ TimeoutError = 2003,
7
+ ThirdPartyError = 2004,
8
+
9
+ // Auth errors (2010-2019)
10
+ SignatureInvalid = 2010,
11
+ AgentUnauthorized = 2011,
12
+
13
+ // Trading errors (2020-2039)
14
+ ExchangeRejected = 2020,
15
+ InsufficientMargin = 2021,
16
+ InsufficientBalance = 2022,
17
+ MarketNotFound = 2023,
18
+ OrderNotFound = 2024,
19
+ PositionNotFound = 2025,
20
+
21
+ // Nonce errors (2040-2049)
22
+ InvalidNonce = 2040,
23
+ NonceAlreadyUsed = 2041,
24
+ NonceExpired = 2042,
25
+
26
+ // Payload errors (2050-2059)
27
+ PayloadMismatch = 2050,
28
+
29
+ // Routing errors (2060-2069)
30
+ RouteNotFound = 2060,
31
+ }
32
+
33
+ export enum OrderSide {
34
+ BUY = 'BUY',
35
+ SELL = 'SELL',
36
+ }
37
+
38
+ export enum OrderType {
39
+ MARKET = 'MARKET',
40
+ LIMIT = 'LIMIT',
41
+ }
42
+
43
+ export enum PositionSide {
44
+ LONG = 'LONG',
45
+ SHORT = 'SHORT',
46
+ }
47
+
48
+ export enum MarginMode {
49
+ ISOLATED = 'ISOLATED',
50
+ CROSS = 'CROSS',
51
+ }
52
+
53
+ export enum TimeInForce {
54
+ GTC = 'GTC',
55
+ IOC = 'IOC',
56
+ POST_ONLY = 'POST_ONLY',
57
+ GTT = 'GTT',
58
+ }
59
+
60
+ export enum OrderStatus {
61
+ PENDING = 'PENDING',
62
+ OPEN = 'OPEN',
63
+ PARTIALLY_FILLED = 'PARTIALLY_FILLED',
64
+ FILLED = 'FILLED',
65
+ CANCELLED = 'CANCELLED',
66
+ REJECTED = 'REJECTED',
67
+ EXPIRED = 'EXPIRED',
68
+ TRIGGERED = 'TRIGGERED',
69
+ }
70
+
71
+ export enum HistoryItemStatus {
72
+ FILLED = 'FILLED',
73
+ PARTIALLY_FILLED = 'PARTIALLY_FILLED',
74
+ CANCELLED = 'CANCELLED',
75
+ REJECTED = 'REJECTED',
76
+ }
77
+
78
+ export enum OrderActionType {
79
+ UPDATE_LEVERAGE = 'updateLeverage',
80
+ PLACE_ORDER = 'placeOrder',
81
+ PLACE_TRIGGER_ORDER = 'placeTriggerOrder',
82
+ CANCEL_ORDER = 'cancelOrder',
83
+ }
84
+
85
+ export enum TriggerCondition {
86
+ ABOVE = 'ABOVE',
87
+ BELOW = 'BELOW',
88
+ }
89
+
90
+ export enum TriggerOrderType {
91
+ TAKE_PROFIT = 'TAKE_PROFIT',
92
+ STOP_LOSS = 'STOP_LOSS',
93
+ }
94
+
95
+ export enum TriggerOrderStatus {
96
+ WAITING = 'WAITING',
97
+ TRIGGERED = 'TRIGGERED',
98
+ CANCELLED = 'CANCELLED',
99
+ }
package/src/errors.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { PerpsErrorCode } from './enums.js'
2
+
3
+ export interface PerpsErrorBody {
4
+ code: PerpsErrorCode
5
+ tool?: string
6
+ message: string
7
+ }
package/src/index.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './typedData.js'
2
+ export * from './enums.js'
3
+ export * from './market.js'
4
+ export * from './authorization.js'
5
+ export * from './account.js'
6
+ export * from './trading.js'
7
+ export * from './errors.js'