@lifi/perps-sdk 13.0.0 → 14.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.
Files changed (115) hide show
  1. package/README.md +7 -5
  2. package/dist/cjs/client/PerpsClient.d.ts +5 -1
  3. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  4. package/dist/cjs/client/PerpsClient.js +8 -0
  5. package/dist/cjs/client/PerpsClient.js.map +1 -1
  6. package/dist/cjs/index.d.ts +4 -3
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/index.js +10 -3
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/registry/assetRegistry.d.ts +2 -0
  11. package/dist/cjs/registry/assetRegistry.d.ts.map +1 -1
  12. package/dist/cjs/registry/assetRegistry.js +18 -1
  13. package/dist/cjs/registry/assetRegistry.js.map +1 -1
  14. package/dist/cjs/registry/referenceDataRegistry.d.ts +5 -2
  15. package/dist/cjs/registry/referenceDataRegistry.d.ts.map +1 -1
  16. package/dist/cjs/registry/referenceDataRegistry.js +37 -7
  17. package/dist/cjs/registry/referenceDataRegistry.js.map +1 -1
  18. package/dist/cjs/services/getOrders.d.ts +2 -1
  19. package/dist/cjs/services/getOrders.d.ts.map +1 -1
  20. package/dist/cjs/services/getOrders.js +2 -0
  21. package/dist/cjs/services/getOrders.js.map +1 -1
  22. package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -1
  23. package/dist/cjs/transport/fetchWithRetry.js.map +1 -1
  24. package/dist/cjs/types/provider.d.ts +2 -6
  25. package/dist/cjs/types/provider.d.ts.map +1 -1
  26. package/dist/cjs/utils/orderClassification.d.ts +9 -5
  27. package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
  28. package/dist/cjs/utils/orderClassification.js +19 -0
  29. package/dist/cjs/utils/orderClassification.js.map +1 -1
  30. package/dist/cjs/utils/orderMath.d.ts +2 -2
  31. package/dist/cjs/utils/orderMath.d.ts.map +1 -1
  32. package/dist/cjs/utils/orderMath.js +15 -4
  33. package/dist/cjs/utils/orderMath.js.map +1 -1
  34. package/dist/cjs/utils/warnOnce.d.ts +2 -0
  35. package/dist/cjs/utils/warnOnce.d.ts.map +1 -0
  36. package/dist/cjs/utils/warnOnce.js +22 -0
  37. package/dist/cjs/utils/warnOnce.js.map +1 -0
  38. package/dist/cjs/version.d.ts +1 -1
  39. package/dist/cjs/version.js +1 -1
  40. package/dist/esm/client/PerpsClient.d.ts +7 -1
  41. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  42. package/dist/esm/client/PerpsClient.js +10 -0
  43. package/dist/esm/client/PerpsClient.js.map +1 -1
  44. package/dist/esm/index.d.ts +4 -3
  45. package/dist/esm/index.d.ts.map +1 -1
  46. package/dist/esm/index.js +3 -2
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/registry/assetRegistry.d.ts +5 -8
  49. package/dist/esm/registry/assetRegistry.d.ts.map +1 -1
  50. package/dist/esm/registry/assetRegistry.js +21 -9
  51. package/dist/esm/registry/assetRegistry.js.map +1 -1
  52. package/dist/esm/registry/referenceDataRegistry.d.ts +6 -14
  53. package/dist/esm/registry/referenceDataRegistry.d.ts.map +1 -1
  54. package/dist/esm/registry/referenceDataRegistry.js +38 -19
  55. package/dist/esm/registry/referenceDataRegistry.js.map +1 -1
  56. package/dist/esm/services/getOrders.d.ts +3 -17
  57. package/dist/esm/services/getOrders.d.ts.map +1 -1
  58. package/dist/esm/services/getOrders.js +3 -16
  59. package/dist/esm/services/getOrders.js.map +1 -1
  60. package/dist/esm/transport/fetchWithRetry.d.ts +3 -2
  61. package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -1
  62. package/dist/esm/transport/fetchWithRetry.js +3 -2
  63. package/dist/esm/transport/fetchWithRetry.js.map +1 -1
  64. package/dist/esm/types/api.d.ts +2 -2
  65. package/dist/esm/types/provider.d.ts +2 -16
  66. package/dist/esm/types/provider.d.ts.map +1 -1
  67. package/dist/esm/utils/orderClassification.d.ts +14 -19
  68. package/dist/esm/utils/orderClassification.d.ts.map +1 -1
  69. package/dist/esm/utils/orderClassification.js +21 -15
  70. package/dist/esm/utils/orderClassification.js.map +1 -1
  71. package/dist/esm/utils/orderMath.d.ts +3 -13
  72. package/dist/esm/utils/orderMath.d.ts.map +1 -1
  73. package/dist/esm/utils/orderMath.js +17 -16
  74. package/dist/esm/utils/orderMath.js.map +1 -1
  75. package/dist/esm/utils/warnOnce.d.ts +9 -0
  76. package/dist/esm/utils/warnOnce.d.ts.map +1 -0
  77. package/dist/esm/utils/warnOnce.js +29 -0
  78. package/dist/esm/utils/warnOnce.js.map +1 -0
  79. package/dist/esm/version.d.ts +1 -1
  80. package/dist/esm/version.js +1 -1
  81. package/dist/types/client/PerpsClient.d.ts +7 -1
  82. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  83. package/dist/types/index.d.ts +4 -3
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/types/registry/assetRegistry.d.ts +5 -8
  86. package/dist/types/registry/assetRegistry.d.ts.map +1 -1
  87. package/dist/types/registry/referenceDataRegistry.d.ts +6 -14
  88. package/dist/types/registry/referenceDataRegistry.d.ts.map +1 -1
  89. package/dist/types/services/getOrders.d.ts +3 -17
  90. package/dist/types/services/getOrders.d.ts.map +1 -1
  91. package/dist/types/transport/fetchWithRetry.d.ts +3 -2
  92. package/dist/types/transport/fetchWithRetry.d.ts.map +1 -1
  93. package/dist/types/types/api.d.ts +2 -2
  94. package/dist/types/types/provider.d.ts +2 -16
  95. package/dist/types/types/provider.d.ts.map +1 -1
  96. package/dist/types/utils/orderClassification.d.ts +14 -19
  97. package/dist/types/utils/orderClassification.d.ts.map +1 -1
  98. package/dist/types/utils/orderMath.d.ts +3 -13
  99. package/dist/types/utils/orderMath.d.ts.map +1 -1
  100. package/dist/types/utils/warnOnce.d.ts +9 -0
  101. package/dist/types/utils/warnOnce.d.ts.map +1 -0
  102. package/dist/types/version.d.ts +1 -1
  103. package/package.json +2 -2
  104. package/src/client/PerpsClient.ts +26 -0
  105. package/src/index.ts +6 -2
  106. package/src/registry/assetRegistry.ts +29 -9
  107. package/src/registry/referenceDataRegistry.ts +46 -19
  108. package/src/services/getOrders.ts +5 -17
  109. package/src/transport/fetchWithRetry.ts +3 -2
  110. package/src/types/api.ts +2 -2
  111. package/src/types/provider.ts +2 -21
  112. package/src/utils/orderClassification.ts +37 -19
  113. package/src/utils/orderMath.ts +25 -17
  114. package/src/utils/warnOnce.ts +29 -0
  115. package/src/version.ts +1 -1
@@ -1,16 +1,28 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsError } from '../errors/PerpsError.js';
1
3
  import { buildUrl, request } from '../transport/request.js';
2
4
  import { ReferenceDataRegistry } from './referenceDataRegistry.js';
3
- /**
4
- * Per-provider index over the backend's `/assets` token registry, keyed by
5
- * `Asset.id` — the provider-native asset id (Lighter: the stringified
6
- * `asset_id`, Hyperliquid spot: the venue token index). Obtain via
7
- * {@link getAssetRegistry}.
8
- *
9
- * @public
10
- */
5
+ const addressKey = (address) => /^0x[0-9a-f]{40}$/i.test(address) ? address.toLowerCase() : address;
6
+ /** Provider `/assets` index by native `id` and by L1 contract address. @public */
11
7
  export class AssetRegistry extends ReferenceDataRegistry {
12
8
  constructor(client, provider) {
13
- super(client, provider, 'asset');
9
+ super(client, provider, 'asset', {
10
+ l1Address: (asset) => asset.l1Address === undefined ? undefined : addressKey(asset.l1Address),
11
+ });
12
+ }
13
+ /** Lookup by provider identity; hexadecimal L1 addresses are case-insensitive. */
14
+ get(id, key = 'id') {
15
+ return key === 'id' ? super.get(id) : this.getByIndex(addressKey(id), key);
16
+ }
17
+ /** Resolve registry membership or report a stale or mis-keyed asset registry. */
18
+ require(id, key = 'id') {
19
+ const asset = this.get(id, key);
20
+ if (asset === undefined) {
21
+ const error = new PerpsError(PerpsErrorCode.ValidationError, `[${this.provider}] stale or mis-keyed asset registry: unknown ${key} '${id}'`);
22
+ error.tool = this.provider;
23
+ throw error;
24
+ }
25
+ return asset;
14
26
  }
15
27
  /**
16
28
  * The most recently synced asset list. Empty before the first {@link sync}.
@@ -1 +1 @@
1
- {"version":3,"file":"assetRegistry.js","sourceRoot":"","sources":["../../../src/registry/assetRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE;;;;;;;GAOG;AACH,MAAM,OAAO,aAAc,SAAQ,qBAA4B;IAC7D,YAAY,MAAsB,EAAE,QAAgB;QAClD,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAES,UAAU;QAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE;YAC1D,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAA;QACF,OAAO,OAAO,CAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAC1D,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAC9B,CAAA;IACH,CAAC;IAES,KAAK,CAAC,KAAY;QAC1B,OAAO,KAAK,CAAC,EAAE,CAAA;IACjB,CAAC;CACF;AAED,MAAM,UAAU,GAAG,IAAI,OAAO,EAA8C,CAAA;AAE5E;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,QAAgB;IAEhB,IAAI,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACvC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QACtB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC9C,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"assetRegistry.js","sourceRoot":"","sources":["../../../src/registry/assetRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,16 @@
1
1
  import type { PerpsSDKClient } from '../types/provider.js';
2
- /**
3
- * Per-provider hash index over one of the provider's reference-data lists
4
- * (`/markets`, `/assets`), keyed by the list's own primary key.
5
- *
6
- * NOT a cache: it holds no freshness policy of its own. Every {@link sync}
7
- * refetches through the HTTP layer, whose `cache-control` headers decide
8
- * whether the response comes from disk or the network. A lookup miss warns
9
- * once per id and returns `undefined`; subsequent syncs reconcile the index
10
- * without replaying the warning for an id that remains absent.
11
- *
12
- * @internal
13
- */
2
+ /** Atomic provider reference indexes; HTTP cache headers govern freshness. @internal */
14
3
  export declare abstract class ReferenceDataRegistry<T> {
15
4
  protected readonly client: PerpsSDKClient;
16
5
  readonly provider: string;
17
6
  private readonly kind;
7
+ private readonly secondaryKeys;
18
8
  private index;
9
+ private secondaryIndexes;
19
10
  private current;
20
11
  private inflight;
21
- private warnedIds;
22
- protected constructor(client: PerpsSDKClient, provider: string, kind: string);
12
+ private readonly warnOnce;
13
+ protected constructor(client: PerpsSDKClient, provider: string, kind: string, secondaryKeys?: Readonly<Record<string, (item: T) => string | undefined>>);
23
14
  /** Fetch the provider's full list through the HTTP layer. */
24
15
  protected abstract fetchItems(): Promise<T[]>;
25
16
  /** The item's primary key — what {@link get} is keyed by. */
@@ -34,6 +25,7 @@ export declare abstract class ReferenceDataRegistry<T> {
34
25
  protected get items(): readonly T[];
35
26
  /** O(1) lookup by primary key. A miss warns once per id. */
36
27
  get(id: string): T | undefined;
28
+ protected getByIndex(id: string, key: string): T | undefined;
37
29
  private load;
38
30
  }
39
31
  //# sourceMappingURL=referenceDataRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"referenceDataRegistry.d.ts","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,8BAAsB,qBAAqB,CAAC,CAAC;IAOzC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IARvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,SAAS,CAAoB;IAErC,SAAS,aACY,MAAM,EAAE,cAAc,EAChC,QAAQ,EAAE,MAAM,EACR,IAAI,EAAE,MAAM;IAG/B,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAE7C,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAEzC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IAS7B,0EAA0E;IAC1E,SAAS,KAAK,KAAK,IAAI,SAAS,CAAC,EAAE,CAElC;IAED,4DAA4D;IAC5D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;YAYhB,IAAI;CAMnB"}
1
+ {"version":3,"file":"referenceDataRegistry.d.ts","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,wFAAwF;AACxF,8BAAsB,qBAAqB,CAAC,CAAC;IAQzC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAVhC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,gBAAgB,CAAoC;IAC5D,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAE5C,SAAS,aACY,MAAM,EAAE,cAAc,EAChC,QAAQ,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,QAAQ,CACtC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC,CAC3C;IAGR,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAE7C,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAEzC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IAS7B,0EAA0E;IAC1E,SAAS,KAAK,KAAK,IAAI,SAAS,CAAC,EAAE,CAElC;IAED,4DAA4D;IAC5D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAS9B,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;YAI9C,IAAI;CAoCnB"}
@@ -1,27 +1,22 @@
1
- /**
2
- * Per-provider hash index over one of the provider's reference-data lists
3
- * (`/markets`, `/assets`), keyed by the list's own primary key.
4
- *
5
- * NOT a cache: it holds no freshness policy of its own. Every {@link sync}
6
- * refetches through the HTTP layer, whose `cache-control` headers decide
7
- * whether the response comes from disk or the network. A lookup miss warns
8
- * once per id and returns `undefined`; subsequent syncs reconcile the index
9
- * without replaying the warning for an id that remains absent.
10
- *
11
- * @internal
12
- */
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsError } from '../errors/PerpsError.js';
3
+ import { createWarnOnce } from '../utils/warnOnce.js';
4
+ /** Atomic provider reference indexes; HTTP cache headers govern freshness. @internal */
13
5
  export class ReferenceDataRegistry {
14
6
  client;
15
7
  provider;
16
8
  kind;
9
+ secondaryKeys;
17
10
  index = new Map();
11
+ secondaryIndexes = new Map();
18
12
  current = [];
19
13
  inflight;
20
- warnedIds = new Set();
21
- constructor(client, provider, kind) {
14
+ warnOnce = createWarnOnce();
15
+ constructor(client, provider, kind, secondaryKeys = {}) {
22
16
  this.client = client;
23
17
  this.provider = provider;
24
18
  this.kind = kind;
19
+ this.secondaryKeys = secondaryKeys;
25
20
  }
26
21
  /**
27
22
  * Fetch the list through the HTTP cache and rebuild the index. Concurrent
@@ -46,15 +41,39 @@ export class ReferenceDataRegistry {
46
41
  if (item !== undefined) {
47
42
  return item;
48
43
  }
49
- if (!this.warnedIds.has(id)) {
50
- this.warnedIds.add(id);
51
- console.warn(`[${this.provider}] unknown ${this.kind} id '${id}'`);
52
- }
44
+ this.warnOnce(id, `[${this.provider}] unknown ${this.kind} id '${id}'`);
53
45
  return undefined;
54
46
  }
47
+ getByIndex(id, key) {
48
+ return this.secondaryIndexes.get(key)?.get(id);
49
+ }
55
50
  async load() {
56
51
  const items = await this.fetchItems();
57
- this.index = new Map(items.map((item) => [this.keyOf(item), item]));
52
+ const index = new Map();
53
+ for (const item of items) {
54
+ const key = this.keyOf(item);
55
+ if (index.has(key)) {
56
+ throw new PerpsError(PerpsErrorCode.ValidationError, `[${this.provider}] stale or mis-keyed ${this.kind} registry: duplicate id '${key}'`);
57
+ }
58
+ index.set(key, item);
59
+ }
60
+ const secondaryIndexes = new Map();
61
+ for (const [name, keyOf] of Object.entries(this.secondaryKeys)) {
62
+ const secondary = new Map();
63
+ for (const item of items) {
64
+ const key = keyOf(item);
65
+ if (key === undefined) {
66
+ continue;
67
+ }
68
+ if (secondary.has(key)) {
69
+ throw new PerpsError(PerpsErrorCode.ValidationError, `[${this.provider}] stale or mis-keyed ${this.kind} registry: duplicate ${name} '${key}'`);
70
+ }
71
+ secondary.set(key, item);
72
+ }
73
+ secondaryIndexes.set(name, secondary);
74
+ }
75
+ this.index = index;
76
+ this.secondaryIndexes = secondaryIndexes;
58
77
  this.current = items;
59
78
  return items;
60
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"referenceDataRegistry.js","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,qBAAqB;IAOpB;IACV;IACQ;IARX,KAAK,GAAG,IAAI,GAAG,EAAa,CAAA;IAC5B,OAAO,GAAiB,EAAE,CAAA;IAC1B,QAAQ,CAAmC;IAC3C,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAErC,YACqB,MAAsB,EAChC,QAAgB,EACR,IAAY;QAFV,WAAM,GAAN,MAAM,CAAgB;QAChC,aAAQ,GAAR,QAAQ,CAAQ;QACR,SAAI,GAAJ,IAAI,CAAQ;IAC5B,CAAC;IAQJ;;;;OAIG;IACH,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACvC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;YAC3B,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,0EAA0E;IAC1E,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,4DAA4D;IAC5D,GAAG,CAAC,EAAU;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,aAAa,IAAI,CAAC,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACnE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"referenceDataRegistry.js","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { OrdersResponse } from '@lifi/perps-types';
1
+ import type { OrderStatus, OrdersResponse } from '@lifi/perps-types';
2
2
  import type { Address } from 'viem';
3
3
  import type { SDKRequestOptions } from '../types/config.js';
4
4
  import type { PerpsSDKClient } from '../types/provider.js';
@@ -10,6 +10,7 @@ import type { PerpsSDKClient } from '../types/provider.js';
10
10
  export interface GetOrdersParams {
11
11
  provider: string;
12
12
  address: Address;
13
+ statuses?: OrderStatus[];
13
14
  /** Optional opaque `Market.id` filter, not a display symbol. */
14
15
  marketId?: string;
15
16
  /** Maximum items returned; provider defaults and caps apply. */
@@ -17,21 +18,6 @@ export interface GetOrdersParams {
17
18
  /** Opaque pagination cursor from the previous response. */
18
19
  cursor?: string;
19
20
  }
20
- /**
21
- * Get open orders and trigger orders for an account. Delegates to the
22
- * registered venue plugin (direct-to-venue); requires the provider plugin to be
23
- * registered on the client.
24
- *
25
- * @throws {PerpsError} When the provider plugin is not registered, or on
26
- * backend / network / parsing errors.
27
- * @example
28
- * ```ts
29
- * const { openOrders, triggerOrders } = await getOrders(client, {
30
- * provider: 'hyperliquid',
31
- * address: '0x1234...',
32
- * })
33
- * ```
34
- * @public
35
- */
21
+ /** Read account orders with active lifecycle statuses as the default filter. */
36
22
  export declare function getOrders(client: PerpsSDKClient, params: GetOrdersParams, options?: SDKRequestOptions): Promise<OrdersResponse>;
37
23
  //# sourceMappingURL=getOrders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAUzB"}
1
+ {"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,gFAAgF;AAChF,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAWzB"}
@@ -1,23 +1,10 @@
1
1
  import { requireProvider } from '../client/requireProvider.js';
2
- /**
3
- * Get open orders and trigger orders for an account. Delegates to the
4
- * registered venue plugin (direct-to-venue); requires the provider plugin to be
5
- * registered on the client.
6
- *
7
- * @throws {PerpsError} When the provider plugin is not registered, or on
8
- * backend / network / parsing errors.
9
- * @example
10
- * ```ts
11
- * const { openOrders, triggerOrders } = await getOrders(client, {
12
- * provider: 'hyperliquid',
13
- * address: '0x1234...',
14
- * })
15
- * ```
16
- * @public
17
- */
2
+ import { ACTIVE_ORDER_STATUSES } from '../utils/orderClassification.js';
3
+ /** Read account orders with active lifecycle statuses as the default filter. */
18
4
  export async function getOrders(client, params, options) {
19
5
  return requireProvider(client, params.provider).getOrders({
20
6
  address: params.address,
7
+ statuses: params.statuses ?? [...ACTIVE_ORDER_STATUSES],
21
8
  marketId: params.marketId,
22
9
  limit: params.limit,
23
10
  cursor: params.cursor,
@@ -1 +1 @@
1
- {"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAoB9D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CACvD;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAmBvE,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CACvD;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,qBAAqB,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
@@ -15,9 +15,10 @@ export interface FetchWithRetryOptions {
15
15
  /**
16
16
  * True when `error` is an `AbortSignal` cancellation (the native `fetch` abort
17
17
  * rejection) rather than a genuine network failure. An abort is a deliberate
18
- * caller action, so it is rethrown untouched instead of being retried.
18
+ * caller action, so every transport rethrows it untouched instead of retrying
19
+ * it or wrapping it in a provider error.
19
20
  *
20
- * @internal
21
+ * @public
21
22
  */
22
23
  export declare function isAbortError(error: unknown): boolean;
23
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fetchWithRetry.d.ts","sourceRoot":"","sources":["../../../src/transport/fetchWithRetry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,kBAAkB,CAAA;AAEhF;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,MAAM,EAAE,mBAAmB,CAAA;IAC3B,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,iEAAiE;IACjE,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,QAAQ,CAAC,CA4DnB"}
1
+ {"version":3,"file":"fetchWithRetry.d.ts","sourceRoot":"","sources":["../../../src/transport/fetchWithRetry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,kBAAkB,CAAA;AAEhF;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,MAAM,EAAE,mBAAmB,CAAA;IAC3B,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,iEAAiE;IACjE,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,QAAQ,CAAC,CA4DnB"}
@@ -2,9 +2,10 @@ import { sleep } from '../utils/sleep.js';
2
2
  /**
3
3
  * True when `error` is an `AbortSignal` cancellation (the native `fetch` abort
4
4
  * rejection) rather than a genuine network failure. An abort is a deliberate
5
- * caller action, so it is rethrown untouched instead of being retried.
5
+ * caller action, so every transport rethrows it untouched instead of retrying
6
+ * it or wrapping it in a provider error.
6
7
  *
7
- * @internal
8
+ * @public
8
9
  */
9
10
  export function isAbortError(error) {
10
11
  return error instanceof Error && error.name === 'AbortError';
@@ -1 +1 @@
1
- {"version":3,"file":"fetchWithRetry.js","sourceRoot":"","sources":["../../../src/transport/fetchWithRetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchWithRetry.js","sourceRoot":"","sources":["../../../src/transport/fetchWithRetry.ts"],"names":[],"mappings":"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"}
@@ -145,8 +145,8 @@ export interface PlaceOrderParams {
145
145
  stopLoss?: TriggerOrderInput;
146
146
  }
147
147
  /**
148
- * Parameters for placing trigger-only orders (TP/SL on existing positions).
149
- * Sends a TRIGGER_ONLY order that skips the main order wire.
148
+ * Sends `ActionType.PLACE_TRIGGER_ORDER` with
149
+ * `{ market, side, takeProfit?, stopLoss? }`.
150
150
  *
151
151
  * @public
152
152
  */
@@ -1,4 +1,4 @@
1
- import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, FillsResponse, Market, MarketRef, MarketSettings, Order, OrdersResponse, PerpsMarket, PerpsSigner, PortfolioHistoryRange, PortfolioHistoryResponse, Position, PositionMarginConstraints, PositionsResponse, ProviderAction, Quote, QuoteSide, SignedActionStep, SigningMethod, TradeType, TwapOrder } from '@lifi/perps-types';
1
+ import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, FillsResponse, Market, MarketRef, MarketSettings, Order, OrderStatus, OrdersResponse, PerpsMarket, PerpsSigner, PortfolioHistoryRange, PortfolioHistoryResponse, Position, PositionMarginConstraints, PositionsResponse, ProviderAction, Quote, QuoteSide, SignedActionStep, SigningMethod, TradeType } from '@lifi/perps-types';
2
2
  import type { Address } from 'viem';
3
3
  import type { PerpsBaseConfig, PerpsClientSigner, SDKRequestOptions } from './config.js';
4
4
  import type { DepositFlow } from './deposit.js';
@@ -177,6 +177,7 @@ export interface ProviderGetMarketSettingsParams {
177
177
  */
178
178
  export interface ProviderGetOrdersParams {
179
179
  address: Address;
180
+ statuses?: OrderStatus[];
180
181
  /** Optional opaque `Market.id` filter (not a display symbol). */
181
182
  marketId?: string;
182
183
  /** Maximum items returned; provider defaults and caps apply. */
@@ -184,16 +185,6 @@ export interface ProviderGetOrdersParams {
184
185
  /** Opaque pagination cursor from the previous response. */
185
186
  cursor?: string;
186
187
  }
187
- /**
188
- * Read params for {@link PerpsProvider.getRunningTwaps}.
189
- *
190
- * @public
191
- */
192
- export interface ProviderGetRunningTwapsParams {
193
- address: Address;
194
- /** Optional opaque `Market.id` filter (not a display symbol). */
195
- marketId?: string;
196
- }
197
188
  /**
198
189
  * Read params for {@link PerpsProvider.getOrder}.
199
190
  *
@@ -371,11 +362,6 @@ export interface PerpsProviderPlugin {
371
362
  */
372
363
  getMarketSettings?(params: ProviderGetMarketSettingsParams, options?: SDKRequestOptions): Promise<MarketSettings | undefined>;
373
364
  getOrders(params: ProviderGetOrdersParams, options?: SDKRequestOptions): Promise<OrdersResponse>;
374
- /**
375
- * Fetch the account's currently running TWAP parent orders directly from the
376
- * venue. Child slice orders are excluded.
377
- */
378
- getRunningTwaps?(params: ProviderGetRunningTwapsParams, options?: SDKRequestOptions): Promise<TwapOrder[]>;
379
365
  getOrder(params: ProviderGetOrderParams, options?: SDKRequestOptions): Promise<Order>;
380
366
  getFills(params: ProviderGetFillsParams, options?: SDKRequestOptions): Promise<FillsResponse>;
381
367
  getActivity(params: ProviderGetActivityParams, options?: SDKRequestOptions): Promise<ActivitiesResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,5 @@
1
- /**
2
- * Order classification utilities.
3
- *
4
- * Type guards and classifiers that operate on SDK types to determine
5
- * order categories (TP/SL, open/close). These use the OrderType enum
6
- * for classification — no string matching.
7
- */
8
- import type { OpenOrder } from '@lifi/perps-types';
9
- import { FillClassification, OrderSide, OrderStatus } from '@lifi/perps-types';
1
+ import type { Order, RegularOrder, TriggerOrder, TwapOrder } from '@lifi/perps-types';
2
+ import { FillClassification, OrderSide, OrderStatus, TriggerCondition } from '@lifi/perps-types';
10
3
  /**
11
4
  * Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
12
5
  *
@@ -17,24 +10,26 @@ export { FillClassification };
17
10
  * Check if an open order is a Take Profit trigger order.
18
11
  * @public
19
12
  */
20
- export declare function isTakeProfitOrder(order: Pick<OpenOrder, 'type'>): boolean;
13
+ export declare function isTakeProfitOrder(order: Pick<Order, 'type'>): boolean;
21
14
  /**
22
15
  * Check if an open order is a Stop Loss trigger order.
23
16
  * @public
24
17
  */
25
- export declare function isStopLossOrder(order: Pick<OpenOrder, 'type'>): boolean;
18
+ export declare function isStopLossOrder(order: Pick<Order, 'type'>): boolean;
26
19
  /**
27
20
  * Check if an open order is a TP or SL trigger order.
28
21
  * @public
29
22
  */
30
- export declare function isTpSlOrder(order: Pick<OpenOrder, 'type'>): boolean;
31
- /**
32
- * Order statuses representing an order still resting on the book (visible
33
- * in `openOrders` / `triggerOrders`). Anything not in this set is terminal —
34
- * filled, cancelled, rejected, expired — and should be evicted from the
35
- * cached orders list when seen in a WS update.
36
- * @public
37
- */
23
+ export declare function isTpSlOrder(order: Pick<Order, 'type'>): boolean;
24
+ /** Narrow an order to a price-activated order. */
25
+ export declare function isTriggerOrder(order: Order): order is TriggerOrder;
26
+ /** Narrow an order to a market or limit order. */
27
+ export declare function isRegularOrder(order: Order): order is RegularOrder;
28
+ /** Narrow an order to a time-weighted execution parent. */
29
+ export declare function isTwapOrder(order: Order): order is TwapOrder;
30
+ /** Derive the trigger price relation from the trigger type and execution side. */
31
+ export declare function triggerConditionFor(type: TriggerOrder['type'], side: OrderSide): TriggerCondition;
32
+ /** Lifecycle statuses included in order reads by default. */
38
33
  export declare const ACTIVE_ORDER_STATUSES: ReadonlySet<OrderStatus>;
39
34
  /**
40
35
  * Whether `status` is one of {@link ACTIVE_ORDER_STATUSES}.
@@ -1 +1 @@
1
- {"version":3,"file":"orderClassification.d.ts","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EAEZ,MAAM,mBAAmB,CAAA;AAG1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAY7B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEnE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,WAAW,CAKzD,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAUpB"}
1
+ {"version":3,"file":"orderClassification.d.ts","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EAEX,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAG1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAY7B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAEnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAE/D;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,YAAY,CAElE;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,YAAY,CAElE;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,SAAS,CAE5D;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAC1B,IAAI,EAAE,SAAS,GACd,gBAAgB,CAKlB;AAED,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,WAAW,CAKzD,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAUpB"}
@@ -1,11 +1,4 @@
1
- /**
2
- * Order classification utilities.
3
- *
4
- * Type guards and classifiers that operate on SDK types to determine
5
- * order categories (TP/SL, open/close). These use the OrderType enum
6
- * for classification — no string matching.
7
- */
8
- import { FillClassification, OrderSide, OrderStatus, OrderType, } from '@lifi/perps-types';
1
+ import { FillClassification, OrderSide, OrderStatus, OrderType, TriggerCondition, } from '@lifi/perps-types';
9
2
  import { stringToFloat } from './parse.js';
10
3
  /**
11
4
  * Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
@@ -42,13 +35,26 @@ export function isStopLossOrder(order) {
42
35
  export function isTpSlOrder(order) {
43
36
  return TP_TYPES.has(order.type) || SL_TYPES.has(order.type);
44
37
  }
45
- /**
46
- * Order statuses representing an order still resting on the book (visible
47
- * in `openOrders` / `triggerOrders`). Anything not in this set is terminal —
48
- * filled, cancelled, rejected, expired — and should be evicted from the
49
- * cached orders list when seen in a WS update.
50
- * @public
51
- */
38
+ /** Narrow an order to a price-activated order. */
39
+ export function isTriggerOrder(order) {
40
+ return isTpSlOrder(order);
41
+ }
42
+ /** Narrow an order to a market or limit order. */
43
+ export function isRegularOrder(order) {
44
+ return order.type === OrderType.MARKET || order.type === OrderType.LIMIT;
45
+ }
46
+ /** Narrow an order to a time-weighted execution parent. */
47
+ export function isTwapOrder(order) {
48
+ return order.type === OrderType.TWAP;
49
+ }
50
+ /** Derive the trigger price relation from the trigger type and execution side. */
51
+ export function triggerConditionFor(type, side) {
52
+ const takeProfit = TP_TYPES.has(type);
53
+ return takeProfit === (side === OrderSide.SELL)
54
+ ? TriggerCondition.ABOVE
55
+ : TriggerCondition.BELOW;
56
+ }
57
+ /** Lifecycle statuses included in order reads by default. */
52
58
  export const ACTIVE_ORDER_STATUSES = new Set([
53
59
  OrderStatus.OPEN,
54
60
  OrderStatus.PENDING,
@@ -1 +1 @@
1
- {"version":3,"file":"orderClassification.js","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,kBAAkB;IAC5B,SAAS,CAAC,iBAAiB;CAC5B,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,WAAW;IACrB,SAAS,CAAC,UAAU;CACrB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA8B;IAC9D,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAA8B;IAC5D,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAA8B;IACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA6B,IAAI,GAAG,CAAC;IACrE,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,gBAAgB;IAC5B,WAAW,CAAC,SAAS;CACtB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAe,EACf,WAAsC;IAEtC,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACvE,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO;YACZ,CAAC,CAAC,kBAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAA;IACpC,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,kBAAkB,CAAC,WAAW;QAChC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"orderClassification.js","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,kBAAkB;IAC5B,SAAS,CAAC,iBAAiB;CAC5B,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,WAAW;IACrB,SAAS,CAAC,UAAU;CACrB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B;IACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAA0B;IACpD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;AAC1E,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAA;AACtC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CACjC,IAA0B,EAC1B,IAAe;IAEf,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,UAAU,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,gBAAgB,CAAC,KAAK;QACxB,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAA;AAC5B,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAA6B,IAAI,GAAG,CAAC;IACrE,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,gBAAgB;IAC5B,WAAW,CAAC,SAAS;CACtB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAe,EACf,WAAsC;IAEtC,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACvE,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO;YACZ,CAAC,CAAC,kBAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAA;IACpC,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,kBAAkB,CAAC,WAAW;QAChC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAA;AACrC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type OpenOrder, type Position, type TriggerOrder } from '@lifi/perps-types';
1
+ import { type Position, type RegularOrder, type TriggerOrder } from '@lifi/perps-types';
2
2
  /**
3
3
  * Pick the matching open position for an order's market, if any.
4
4
  *
@@ -31,17 +31,7 @@ export declare function resolveCloseSize(orderSize: number, positionSize: number
31
31
  * `null`.
32
32
  * @public
33
33
  */
34
- export declare function expectedRealizedPnlForOpenOrder(order: OpenOrder, position: Position | undefined): number | null;
35
- /**
36
- * Expected rPnL for a TP/SL trigger order against a matching position.
37
- *
38
- * A trigger order is by construction a closing leg — its direction is the
39
- * opposite of the position's. With no matching position there is nothing to
40
- * close, so rPnL is `null`. The trigger price (always present on the SDK
41
- * `TriggerOrder` shape) is used as the rPnL price; the optional `limitPrice`
42
- * for STOP_LIMIT / TAKE_PROFIT_LIMIT is the post-trigger limit, not the rPnL
43
- * price.
44
- * @public
45
- */
34
+ export declare function expectedRealizedPnlForOpenOrder(order: RegularOrder, position: Position | undefined): number | null;
35
+ /** Project the unfilled closing quantity of an active trigger at its trigger price. */
46
36
  export declare function expectedRealizedPnlForTriggerOrder(order: TriggerOrder, position: Position | undefined): number | null;
47
37
  //# sourceMappingURL=orderMath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderMath.d.ts","sourceRoot":"","sources":["../../../src/utils/orderMath.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,QAAQ,EAEb,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAA;AAG1B;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,QAAQ,GAAG,SAAS,CAEtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAKR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAyCf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CA2Bf"}
1
+ {"version":3,"file":"orderMath.d.ts","sourceRoot":"","sources":["../../../src/utils/orderMath.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAA;AAI1B;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,QAAQ,GAAG,SAAS,CAEtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAKR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAyCf;AAED,uFAAuF;AACvF,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CA2Cf"}