@lifi/perps-sdk 19.0.0 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -5
- package/dist/cjs/client/PerpsClient.d.ts +1 -1
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +4 -1
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/client/createPerpsClient.d.ts +1 -6
- package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/createPerpsClient.js +1 -14
- package/dist/cjs/client/createPerpsClient.js.map +1 -1
- package/dist/cjs/index.d.ts +6 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +15 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/registry/assetRegistry.d.ts +2 -1
- package/dist/cjs/registry/assetRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/assetRegistry.js +4 -2
- package/dist/cjs/registry/assetRegistry.js.map +1 -1
- package/dist/cjs/registry/marketRegistry.d.ts +2 -1
- package/dist/cjs/registry/marketRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/marketRegistry.js +4 -2
- package/dist/cjs/registry/marketRegistry.js.map +1 -1
- package/dist/cjs/registry/referenceDataRegistry.d.ts +5 -1
- package/dist/cjs/registry/referenceDataRegistry.d.ts.map +1 -1
- package/dist/cjs/registry/referenceDataRegistry.js +65 -5
- package/dist/cjs/registry/referenceDataRegistry.js.map +1 -1
- package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
- package/dist/cjs/services/getOhlcv.js.map +1 -1
- package/dist/cjs/transport/request.d.ts +1 -0
- package/dist/cjs/transport/request.d.ts.map +1 -1
- package/dist/cjs/transport/request.js +6 -2
- package/dist/cjs/transport/request.js.map +1 -1
- package/dist/cjs/types/api.d.ts +3 -4
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/config.d.ts +0 -9
- package/dist/cjs/types/config.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +1 -1
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/types/withdrawal.d.ts +4 -2
- package/dist/cjs/types/withdrawal.d.ts.map +1 -1
- package/dist/cjs/utils/calculations.d.ts.map +1 -1
- package/dist/cjs/utils/calculations.js +107 -38
- package/dist/cjs/utils/calculations.js.map +1 -1
- package/dist/cjs/utils/decimal.d.ts +5 -0
- package/dist/cjs/utils/decimal.d.ts.map +1 -0
- package/dist/cjs/utils/decimal.js +17 -0
- package/dist/cjs/utils/decimal.js.map +1 -0
- package/dist/cjs/utils/math.d.ts +4 -0
- package/dist/cjs/utils/math.d.ts.map +1 -0
- package/dist/cjs/utils/math.js +8 -0
- package/dist/cjs/utils/math.js.map +1 -0
- package/dist/cjs/utils/orderEntry.d.ts +6 -0
- package/dist/cjs/utils/orderEntry.d.ts.map +1 -0
- package/dist/cjs/utils/orderEntry.js +20 -0
- package/dist/cjs/utils/orderEntry.js.map +1 -0
- package/dist/cjs/utils/parse.d.ts +1 -0
- package/dist/cjs/utils/parse.d.ts.map +1 -1
- package/dist/cjs/utils/parse.js +15 -0
- package/dist/cjs/utils/parse.js.map +1 -1
- package/dist/cjs/utils/positionMath.d.ts +5 -0
- package/dist/cjs/utils/positionMath.d.ts.map +1 -1
- package/dist/cjs/utils/positionMath.js +53 -6
- package/dist/cjs/utils/positionMath.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts +0 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/websocket/PerpsWsClient.js +0 -7
- package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
- package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/cjs/websocket/WsProviderBase.js +11 -3
- package/dist/cjs/websocket/WsProviderBase.js.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +8 -7
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +11 -7
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/client/createPerpsClient.d.ts +1 -12
- package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
- package/dist/esm/client/createPerpsClient.js +1 -19
- package/dist/esm/client/createPerpsClient.js.map +1 -1
- package/dist/esm/client/requireProvider.d.ts +1 -1
- package/dist/esm/client/requireProvider.js +1 -1
- package/dist/esm/index.d.ts +6 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/registry/assetRegistry.d.ts +2 -1
- package/dist/esm/registry/assetRegistry.d.ts.map +1 -1
- package/dist/esm/registry/assetRegistry.js +4 -2
- package/dist/esm/registry/assetRegistry.js.map +1 -1
- package/dist/esm/registry/marketRegistry.d.ts +2 -1
- package/dist/esm/registry/marketRegistry.d.ts.map +1 -1
- package/dist/esm/registry/marketRegistry.js +4 -2
- package/dist/esm/registry/marketRegistry.js.map +1 -1
- package/dist/esm/registry/referenceDataRegistry.d.ts +6 -6
- package/dist/esm/registry/referenceDataRegistry.d.ts.map +1 -1
- package/dist/esm/registry/referenceDataRegistry.js +68 -10
- package/dist/esm/registry/referenceDataRegistry.js.map +1 -1
- package/dist/esm/services/getOhlcv.d.ts +1 -0
- package/dist/esm/services/getOhlcv.d.ts.map +1 -1
- package/dist/esm/services/getOhlcv.js.map +1 -1
- package/dist/esm/transport/request.d.ts +2 -0
- package/dist/esm/transport/request.d.ts.map +1 -1
- package/dist/esm/transport/request.js +6 -2
- package/dist/esm/transport/request.js.map +1 -1
- package/dist/esm/types/api.d.ts +8 -22
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/config.d.ts +0 -27
- package/dist/esm/types/config.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +7 -6
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/types/withdrawal.d.ts +24 -15
- package/dist/esm/types/withdrawal.d.ts.map +1 -1
- package/dist/esm/utils/calculations.d.ts +3 -2
- package/dist/esm/utils/calculations.d.ts.map +1 -1
- package/dist/esm/utils/calculations.js +109 -39
- package/dist/esm/utils/calculations.js.map +1 -1
- package/dist/esm/utils/decimal.d.ts +14 -0
- package/dist/esm/utils/decimal.d.ts.map +1 -0
- package/dist/esm/utils/decimal.js +19 -0
- package/dist/esm/utils/decimal.js.map +1 -0
- package/dist/esm/utils/math.d.ts +6 -0
- package/dist/esm/utils/math.d.ts.map +1 -0
- package/dist/esm/utils/math.js +5 -0
- package/dist/esm/utils/math.js.map +1 -0
- package/dist/esm/utils/orderEntry.d.ts +26 -0
- package/dist/esm/utils/orderEntry.d.ts.map +1 -0
- package/dist/esm/utils/orderEntry.js +34 -0
- package/dist/esm/utils/orderEntry.js.map +1 -0
- package/dist/esm/utils/parse.d.ts +7 -0
- package/dist/esm/utils/parse.d.ts.map +1 -1
- package/dist/esm/utils/parse.js +20 -0
- package/dist/esm/utils/parse.js.map +1 -1
- package/dist/esm/utils/positionMath.d.ts +13 -0
- package/dist/esm/utils/positionMath.d.ts.map +1 -1
- package/dist/esm/utils/positionMath.js +60 -6
- package/dist/esm/utils/positionMath.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts +0 -7
- package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/websocket/PerpsWsClient.js +0 -7
- package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
- package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -1
- package/dist/esm/websocket/WsProviderBase.js +11 -3
- package/dist/esm/websocket/WsProviderBase.js.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +8 -7
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/client/createPerpsClient.d.ts +1 -12
- package/dist/types/client/createPerpsClient.d.ts.map +1 -1
- package/dist/types/client/requireProvider.d.ts +1 -1
- package/dist/types/index.d.ts +6 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/registry/assetRegistry.d.ts +2 -1
- package/dist/types/registry/assetRegistry.d.ts.map +1 -1
- package/dist/types/registry/marketRegistry.d.ts +2 -1
- package/dist/types/registry/marketRegistry.d.ts.map +1 -1
- package/dist/types/registry/referenceDataRegistry.d.ts +6 -6
- package/dist/types/registry/referenceDataRegistry.d.ts.map +1 -1
- package/dist/types/services/getOhlcv.d.ts +1 -0
- package/dist/types/services/getOhlcv.d.ts.map +1 -1
- package/dist/types/transport/request.d.ts +2 -0
- package/dist/types/transport/request.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +8 -22
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/config.d.ts +0 -27
- package/dist/types/types/config.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +7 -6
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/types/withdrawal.d.ts +24 -15
- package/dist/types/types/withdrawal.d.ts.map +1 -1
- package/dist/types/utils/calculations.d.ts +3 -2
- package/dist/types/utils/calculations.d.ts.map +1 -1
- package/dist/types/utils/decimal.d.ts +14 -0
- package/dist/types/utils/decimal.d.ts.map +1 -0
- package/dist/types/utils/math.d.ts +6 -0
- package/dist/types/utils/math.d.ts.map +1 -0
- package/dist/types/utils/orderEntry.d.ts +26 -0
- package/dist/types/utils/orderEntry.d.ts.map +1 -0
- package/dist/types/utils/parse.d.ts +7 -0
- package/dist/types/utils/parse.d.ts.map +1 -1
- package/dist/types/utils/positionMath.d.ts +13 -0
- package/dist/types/utils/positionMath.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/websocket/PerpsWsClient.d.ts +0 -7
- package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/types/websocket/WsProviderBase.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +12 -8
- package/src/client/createPerpsClient.ts +4 -32
- package/src/client/requireProvider.ts +1 -1
- package/src/index.ts +10 -4
- package/src/registry/assetRegistry.ts +7 -5
- package/src/registry/marketRegistry.ts +7 -5
- package/src/registry/referenceDataRegistry.ts +89 -11
- package/src/services/getOhlcv.ts +1 -0
- package/src/transport/request.ts +12 -2
- package/src/types/api.ts +8 -26
- package/src/types/config.ts +0 -30
- package/src/types/provider.ts +8 -7
- package/src/types/withdrawal.ts +24 -15
- package/src/utils/calculations.ts +114 -43
- package/src/utils/decimal.ts +21 -0
- package/src/utils/math.ts +7 -0
- package/src/utils/orderEntry.ts +38 -0
- package/src/utils/parse.ts +25 -0
- package/src/utils/positionMath.ts +66 -6
- package/src/version.ts +1 -1
- package/src/websocket/PerpsWsClient.ts +0 -19
- package/src/websocket/WsProviderBase.ts +11 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketRegistry.js","sourceRoot":"","sources":["../../../src/registry/marketRegistry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"marketRegistry.js","sourceRoot":"","sources":["../../../src/registry/marketRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RequestOptions } from '../transport/request.js';
|
|
1
2
|
import type { PerpsSDKClient } from '../types/provider.js';
|
|
2
3
|
export declare abstract class ReferenceDataRegistry<T> {
|
|
3
4
|
protected readonly client: PerpsSDKClient;
|
|
@@ -8,9 +9,12 @@ export declare abstract class ReferenceDataRegistry<T> {
|
|
|
8
9
|
private secondaryIndexes;
|
|
9
10
|
private current;
|
|
10
11
|
private inflight;
|
|
12
|
+
private inflightIdentity;
|
|
13
|
+
private cacheIdentity;
|
|
14
|
+
private freshUntil;
|
|
11
15
|
private readonly warnOnce;
|
|
12
16
|
protected constructor(client: PerpsSDKClient, provider: string, kind: string, secondaryKeys?: Readonly<Record<string, (item: T) => string | undefined>>);
|
|
13
|
-
protected abstract fetchItems(): Promise<T[]>;
|
|
17
|
+
protected abstract fetchItems(onResponse: RequestOptions['onResponse']): Promise<T[]>;
|
|
14
18
|
protected abstract keyOf(item: T): string;
|
|
15
19
|
sync(): Promise<readonly T[]>;
|
|
16
20
|
protected get items(): readonly T[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referenceDataRegistry.d.ts","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"referenceDataRegistry.d.ts","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAkD1D,8BAAsB,qBAAqB,CAAC,CAAC;IAWzC,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;IAbhC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,gBAAgB,CAAoC;IAC5D,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,UAAU,CAAI;IACtB,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;IAIR,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,GACvC,OAAO,CAAC,CAAC,EAAE,CAAC;IAGf,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAGzC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IA4B7B,SAAS,KAAK,KAAK,IAAI,SAAS,CAAC,EAAE,CAElC;IAGD,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;CAgDnB"}
|
|
@@ -4,6 +4,37 @@ exports.ReferenceDataRegistry = void 0;
|
|
|
4
4
|
const perps_types_1 = require("@lifi/perps-types");
|
|
5
5
|
const PerpsError_js_1 = require("../errors/PerpsError.js");
|
|
6
6
|
const warnOnce_js_1 = require("../utils/warnOnce.js");
|
|
7
|
+
function freshUntil(headers, requestStartedAt, responseReceivedAt) {
|
|
8
|
+
const directives = (headers.get('cache-control') ?? '')
|
|
9
|
+
.toLowerCase()
|
|
10
|
+
.split(',')
|
|
11
|
+
.map((directive) => directive.trim());
|
|
12
|
+
if (directives.some((directive) => /^(no-store|no-cache)(?:\s*=|$)/.test(directive)) ||
|
|
13
|
+
headers
|
|
14
|
+
.get('vary')
|
|
15
|
+
?.split(',')
|
|
16
|
+
.some((name) => name.trim() === '*')) {
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
const maxAges = directives.filter((directive) => /^max-age(?:\s*=|$)/.test(directive));
|
|
20
|
+
const maxAge = maxAges.length === 1
|
|
21
|
+
? /^max-age\s*=\s*(?:"(\d+)"|(\d+))$/.exec(maxAges[0])
|
|
22
|
+
: null;
|
|
23
|
+
if (!maxAge) {
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
const age = headers.get('age') ?? '0';
|
|
27
|
+
const date = headers.get('date');
|
|
28
|
+
const dateTime = date === null ? responseReceivedAt : Date.parse(date);
|
|
29
|
+
if (!/^\d+$/.test(age) || !Number.isFinite(dateTime)) {
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
const lifetime = Number(maxAge[1] ?? maxAge[2]) * 1000;
|
|
33
|
+
const currentAge = Math.max(responseReceivedAt - dateTime, Number(age) * 1000 + Math.max(0, responseReceivedAt - requestStartedAt));
|
|
34
|
+
return Number.isFinite(lifetime)
|
|
35
|
+
? responseReceivedAt + lifetime - currentAge
|
|
36
|
+
: 0;
|
|
37
|
+
}
|
|
7
38
|
class ReferenceDataRegistry {
|
|
8
39
|
client;
|
|
9
40
|
provider;
|
|
@@ -13,6 +44,9 @@ class ReferenceDataRegistry {
|
|
|
13
44
|
secondaryIndexes = new Map();
|
|
14
45
|
current = [];
|
|
15
46
|
inflight;
|
|
47
|
+
inflightIdentity;
|
|
48
|
+
cacheIdentity;
|
|
49
|
+
freshUntil = 0;
|
|
16
50
|
warnOnce = (0, warnOnce_js_1.createWarnOnce)();
|
|
17
51
|
constructor(client, provider, kind, secondaryKeys = {}) {
|
|
18
52
|
this.client = client;
|
|
@@ -21,10 +55,27 @@ class ReferenceDataRegistry {
|
|
|
21
55
|
this.secondaryKeys = secondaryKeys;
|
|
22
56
|
}
|
|
23
57
|
sync() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
58
|
+
const { config } = this.client;
|
|
59
|
+
if (config.requestInterceptor || config.fetch) {
|
|
60
|
+
return this.load();
|
|
61
|
+
}
|
|
62
|
+
const identity = JSON.stringify([
|
|
63
|
+
config.apiUrl,
|
|
64
|
+
config.apiKey,
|
|
65
|
+
config.integrator,
|
|
66
|
+
]);
|
|
67
|
+
if (identity === this.cacheIdentity && Date.now() < this.freshUntil) {
|
|
68
|
+
return Promise.resolve(this.current);
|
|
69
|
+
}
|
|
70
|
+
if (!this.inflight || this.inflightIdentity !== identity) {
|
|
71
|
+
const inflight = this.load(identity).finally(() => {
|
|
72
|
+
if (this.inflight === inflight) {
|
|
73
|
+
this.inflight = undefined;
|
|
74
|
+
this.inflightIdentity = undefined;
|
|
75
|
+
}
|
|
27
76
|
});
|
|
77
|
+
this.inflight = inflight;
|
|
78
|
+
this.inflightIdentity = identity;
|
|
28
79
|
}
|
|
29
80
|
return this.inflight;
|
|
30
81
|
}
|
|
@@ -42,8 +93,15 @@ class ReferenceDataRegistry {
|
|
|
42
93
|
getByIndex(id, key) {
|
|
43
94
|
return this.secondaryIndexes.get(key)?.get(id);
|
|
44
95
|
}
|
|
45
|
-
async load() {
|
|
46
|
-
|
|
96
|
+
async load(identity) {
|
|
97
|
+
let expiresAt = 0;
|
|
98
|
+
const items = await this.fetchItems((headers, startedAt, receivedAt) => {
|
|
99
|
+
if (identity !== undefined &&
|
|
100
|
+
typeof process !== 'undefined' &&
|
|
101
|
+
process.versions?.node) {
|
|
102
|
+
expiresAt = freshUntil(headers, startedAt, receivedAt);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
47
105
|
const index = new Map();
|
|
48
106
|
for (const item of items) {
|
|
49
107
|
const key = this.keyOf(item);
|
|
@@ -70,6 +128,8 @@ class ReferenceDataRegistry {
|
|
|
70
128
|
this.index = index;
|
|
71
129
|
this.secondaryIndexes = secondaryIndexes;
|
|
72
130
|
this.current = items;
|
|
131
|
+
this.cacheIdentity = identity;
|
|
132
|
+
this.freshUntil = expiresAt;
|
|
73
133
|
return items;
|
|
74
134
|
}
|
|
75
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referenceDataRegistry.js","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAClD,2DAAoD;
|
|
1
|
+
{"version":3,"file":"referenceDataRegistry.js","sourceRoot":"","sources":["../../../src/registry/referenceDataRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOhlcv.d.ts","sourceRoot":"","sources":["../../../src/services/getOhlcv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAO1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAEhB,QAAQ,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"getOhlcv.d.ts","sourceRoot":"","sources":["../../../src/services/getOhlcv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAO1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAEhB,QAAQ,EAAE,MAAM,CAAA;IAEhB,QAAQ,EAAE,aAAa,CAAA;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAiBD,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAUxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOhlcv.js","sourceRoot":"","sources":["../../../src/services/getOhlcv.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"getOhlcv.js","sourceRoot":"","sources":["../../../src/services/getOhlcv.ts"],"names":[],"mappings":";;AAuCA,4BAcC;AApDD,wDAA2D;AAsCpD,KAAK,UAAU,QAAQ,CAC5B,MAAsB,EACtB,MAAsB,EACtB,OAA2B;IAE3B,MAAM,GAAG,GAAG,IAAA,qBAAQ,EAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,EAAE;QACpD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAA;IACF,OAAO,IAAA,oBAAO,EAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AAChE,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { PerpsBaseConfig, SDKRequestOptions } from '../types/config.js';
|
|
|
2
2
|
import { type RetryPolicy } from './retryPolicy.js';
|
|
3
3
|
export interface RequestOptions extends RequestInit {
|
|
4
4
|
retry?: RetryPolicy | false;
|
|
5
|
+
onResponse?: (headers: Headers, requestStartedAt: number, responseReceivedAt: number) => void;
|
|
5
6
|
}
|
|
6
7
|
export declare function request<T>(config: PerpsBaseConfig, url: string, options?: RequestOptions, sdkOptions?: SDKRequestOptions): Promise<T>;
|
|
7
8
|
export declare function buildUrl(baseUrl: string, params: Record<string, string | number | boolean | undefined>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/transport/request.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAI5E,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAA;AAOzB,MAAM,WAAW,cAAe,SAAQ,WAAW;IAEjD,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/transport/request.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAI5E,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAA;AAOzB,MAAM,WAAW,cAAe,SAAQ,WAAW;IAEjD,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAA;IAE3B,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,KACvB,IAAI,CAAA;CACV;AAQD,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,EAC5B,UAAU,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAgFZ;AAOD,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,MAAM,CAWR"}
|
|
@@ -9,7 +9,7 @@ const errorCodeFromStatus_js_1 = require("./errorCodeFromStatus.js");
|
|
|
9
9
|
const fetchWithRetry_js_1 = require("./fetchWithRetry.js");
|
|
10
10
|
const retryPolicy_js_1 = require("./retryPolicy.js");
|
|
11
11
|
async function request(config, url, options = {}, sdkOptions) {
|
|
12
|
-
const { retry, ...fetchInit } = options;
|
|
12
|
+
const { retry, onResponse, ...fetchInit } = options;
|
|
13
13
|
const policy = retry !== undefined
|
|
14
14
|
? (0, retryPolicy_js_1.resolveRetryPolicy)(retryPolicy_js_1.LIFI_RETRY_DEFAULTS, retry, retryPolicy_js_1.LIFI_REQUEST_KEY)
|
|
15
15
|
: (0, retryPolicy_js_1.resolveRetryPolicy)(retryPolicy_js_1.LIFI_RETRY_DEFAULTS, config.retry, retryPolicy_js_1.LIFI_REQUEST_KEY);
|
|
@@ -33,11 +33,13 @@ async function request(config, url, options = {}, sdkOptions) {
|
|
|
33
33
|
finalOptions = await config.requestInterceptor(url, finalOptions);
|
|
34
34
|
}
|
|
35
35
|
try {
|
|
36
|
+
const requestStartedAt = onResponse ? Date.now() : 0;
|
|
36
37
|
const response = await (0, fetchWithRetry_js_1.fetchWithRetry)(url, finalOptions, {
|
|
37
38
|
policy,
|
|
38
39
|
fetchImpl: config.fetch,
|
|
39
40
|
signal: sdkOptions?.signal ?? finalOptions.signal ?? undefined,
|
|
40
41
|
});
|
|
42
|
+
const responseReceivedAt = onResponse ? Date.now() : 0;
|
|
41
43
|
if (!response.ok) {
|
|
42
44
|
let body;
|
|
43
45
|
try {
|
|
@@ -56,7 +58,9 @@ async function request(config, url, options = {}, sdkOptions) {
|
|
|
56
58
|
error.tool = 'unknown';
|
|
57
59
|
throw error;
|
|
58
60
|
}
|
|
59
|
-
|
|
61
|
+
const data = (await response.json());
|
|
62
|
+
onResponse?.(response.headers, requestStartedAt, responseReceivedAt);
|
|
63
|
+
return data;
|
|
60
64
|
}
|
|
61
65
|
catch (error) {
|
|
62
66
|
if (error instanceof PerpsError_js_1.PerpsError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/transport/request.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/transport/request.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types/api.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { AccountConfigSetting, AccountResponse, CancelTwapOrderParams as ActionCancelTwapOrderParams, CreateReferralCodeParams as ActionCreateReferralCodeParams, ActionParamsMap, PlaceTwapOrderParams as ActionPlaceTwapOrderParams, ActionStep, ExecuteActionResponse, MarginMode, MarketRef, MetaActionType, ModifyOrderInput, OnboardParams, OrderSide, OrderType, PortfolioHistoryRange, SetupAction, SetupOption, SignedActionStep, TimeInForce, TriggerOrderInput, WithdrawalParams } from '@lifi/perps-types';
|
|
2
2
|
import type { Account, Address, WalletClient } from 'viem';
|
|
3
3
|
import type { RetryConfig } from '../transport/retryPolicy.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { RequestInterceptor, SwitchChainHook } from './config.js';
|
|
5
5
|
import type { PerpsProviderPlugin } from './provider.js';
|
|
6
6
|
export interface PerpsConfig {
|
|
7
7
|
integrator?: string;
|
|
8
8
|
apiKey?: string;
|
|
9
9
|
apiUrl?: string;
|
|
10
|
-
disableVersionCheck?: boolean;
|
|
11
10
|
requestInterceptor?: RequestInterceptor;
|
|
12
|
-
providers?: PerpsProviderPlugin[]
|
|
11
|
+
providers?: PerpsProviderPlugin[];
|
|
13
12
|
userWallet?: WalletClient<any, any, Account>;
|
|
14
13
|
retry?: RetryConfig;
|
|
15
14
|
fetch?: typeof fetch;
|
|
@@ -18,7 +17,7 @@ export interface PerpsClientOptions {
|
|
|
18
17
|
integrator?: string;
|
|
19
18
|
apiKey?: string;
|
|
20
19
|
apiUrl?: string;
|
|
21
|
-
providers?: PerpsProviderPlugin[]
|
|
20
|
+
providers?: PerpsProviderPlugin[];
|
|
22
21
|
switchChain?: SwitchChainHook;
|
|
23
22
|
}
|
|
24
23
|
export interface BuildProviderSetupParams {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,qBAAqB,IAAI,2BAA2B,EACpD,wBAAwB,IAAI,8BAA8B,EAC1D,eAAe,EACf,oBAAoB,IAAI,0BAA0B,EAClD,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,6 @@ import type { Account, WalletClient } from 'viem';
|
|
|
2
2
|
import type { RetryConfig } from '../transport/retryPolicy.js';
|
|
3
3
|
export type PerpsClientSigner = WalletClient<any, any, Account>;
|
|
4
4
|
export type SwitchChainHook = (chainId: number) => Promise<PerpsClientSigner | undefined>;
|
|
5
|
-
export interface ProviderConfig {
|
|
6
|
-
markets?: string[];
|
|
7
|
-
}
|
|
8
|
-
export type HyperliquidConfig = ProviderConfig;
|
|
9
|
-
export interface ProviderConfigs {
|
|
10
|
-
[provider: string]: ProviderConfig | undefined;
|
|
11
|
-
}
|
|
12
5
|
export type RequestInterceptor = (url: string, options: RequestInit) => RequestInit | Promise<RequestInit>;
|
|
13
6
|
export interface SDKRequestOptions {
|
|
14
7
|
signal?: AbortSignal;
|
|
@@ -18,9 +11,7 @@ export interface PerpsBaseConfig {
|
|
|
18
11
|
integrator?: string;
|
|
19
12
|
apiKey: string;
|
|
20
13
|
apiUrl: string;
|
|
21
|
-
disableVersionCheck?: boolean;
|
|
22
14
|
requestInterceptor?: RequestInterceptor;
|
|
23
|
-
providers?: ProviderConfigs;
|
|
24
15
|
retry?: RetryConfig;
|
|
25
16
|
fetch?: typeof fetch;
|
|
26
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAQ9D,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAY/D,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAQ9D,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAY/D,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;AAO3C,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,KACjB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAOvC,MAAM,WAAW,iBAAiB;IAEhC,MAAM,CAAC,EAAE,WAAW,CAAA;IAWpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAQD,MAAM,WAAW,eAAe;IAK9B,UAAU,CAAC,EAAE,MAAM,CAAA;IAOnB,MAAM,EAAE,MAAM,CAAA;IAEd,MAAM,EAAE,MAAM,CAAA;IAEd,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IAEvC,KAAK,CAAC,EAAE,WAAW,CAAA;IAEnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB"}
|
|
@@ -109,7 +109,7 @@ export interface PerpsProviderPlugin {
|
|
|
109
109
|
getWithdrawFlow?(params: ProviderGetWithdrawFlowParams, options?: SDKRequestOptions): Promise<WithdrawFlow>;
|
|
110
110
|
getWithdrawableBalances?(params: ProviderGetWithdrawableBalancesParams, options?: SDKRequestOptions): Promise<ProviderWithdrawableBalance[]>;
|
|
111
111
|
getPositions(params: ProviderGetPositionsParams, options?: SDKRequestOptions): Promise<PositionsResponse>;
|
|
112
|
-
getMarketSettings
|
|
112
|
+
getMarketSettings(params: ProviderGetMarketSettingsParams, options?: SDKRequestOptions): Promise<MarketSettings>;
|
|
113
113
|
getAvailableToTrade?(params: ProviderGetAvailableToTradeParams, options?: SDKRequestOptions): Promise<AvailableToTrade | undefined>;
|
|
114
114
|
getOrders(params: ProviderGetOrdersParams, options?: SDKRequestOptions): Promise<OrdersResponse>;
|
|
115
115
|
getOrder(params: ProviderGetOrderParams, options?: SDKRequestOptions): Promise<Order>;
|
|
@@ -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":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,SAAS,EACT,cAAc,EACd,KAAK,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAShF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAEhC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAEvC,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,CAAA;IAEnC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;CACpD;AAUD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IAEf,MAAM,EAAE,WAAW,GAAG,WAAW,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;CACf;AAUD,MAAM,WAAW,kBAAkB;IAEjC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAO9B,MAAM,CAAC,EAAE,WAAW,CAAA;IAWpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAO/D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;CACpD;AAUD,MAAM,WAAW,wBAAwB;IAQvC,aAAa,CAAC,EAAE,OAAO,CAAA;IAMvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AASD,MAAM,WAAW,yBAAyB;IAExC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAEhB,MAAM,EAAE,OAAO,CAAA;CAChB;AAQD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAA;CACjB;AAOD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAA;CACjB;AAOD,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;CACjB;AAOD,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAA;CACjB;AAOD,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,OAAO,CAAA;CACjB;AAOD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAA;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAOD,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAA;IAGhB,MAAM,EAAE,SAAS,CAAA;CAClB;AAOD,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAA;IAEhB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAOD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IAExB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAOD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAEhB,EAAE,EAAE,MAAM,CAAA;CACX;AAOD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAOD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAA;CACtB;AAOD,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,qBAAqB,CAAA;CAC7B;AAQD,MAAM,WAAW,sBAAsB;IAErC,MAAM,EAAE,MAAM,CAAA;IAEd,IAAI,EAAE,SAAS,CAAA;IAEf,IAAI,EAAE,MAAM,CAAA;IAEZ,IAAI,EAAE,SAAS,CAAA;CAChB;AAQD,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AA6BlD,MAAM,WAAW,mBAAmB;IAMlC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAUrB,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IASxD,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IAElC,UAAU,CACR,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAAA;IAS3B,aAAa,CACX,MAAM,EAAE,2BAA2B,EACnC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAA;IAWnB,cAAc,CAAC,CACb,MAAM,EAAE,4BAA4B,EACpC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAA;IAUvB,eAAe,CAAC,CACd,MAAM,EAAE,6BAA6B,EACrC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAA;IAYxB,uBAAuB,CAAC,CACtB,MAAM,EAAE,qCAAqC,EAC7C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAA;IAEzC,YAAY,CACV,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAU7B,iBAAiB,CACf,MAAM,EAAE,+BAA+B,EACvC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAAA;IAU1B,mBAAmB,CAAC,CAClB,MAAM,EAAE,iCAAiC,EACzC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;IAExC,SAAS,CACP,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAAA;IAE1B,QAAQ,CACN,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAAA;IAEjB,QAAQ,CACN,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAAA;IAEzB,WAAW,CACT,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAM9B,mBAAmB,CAAC,CAClB,MAAM,EAAE,iCAAiC,EACzC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,CAAA;IASpC,QAAQ,CACN,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAAA;IAWjB,iBAAiB,CACf,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,cAAc,CAAA;IAcjB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAWvD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAYrD,wBAAwB,CACtB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,yBAAyB,GAChC,MAAM,GAAG,SAAS,CAAA;IAarB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;IAe/D,aAAa,CACX,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,WAAW,EAAE,GACnB,oBAAoB,EAAE,CAAA;IAWzB,kBAAkB,CAAC,CACjB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAkBnC,oBAAoB,CAAC,CACnB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,wBAAwB,CAAC,CAAA;IAmBpC,WAAW,CAAC,CACV,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAO9B,gBAAgB,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAW3E,mBAAmB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACzD;AAYD,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import type { ActionType, Asset } from '@lifi/perps-types';
|
|
1
|
+
import type { ActionType, Asset, WithdrawalRoute } from '@lifi/perps-types';
|
|
2
2
|
import type { Address } from 'viem';
|
|
3
|
-
export type WithdrawalRoute
|
|
3
|
+
export type { WithdrawalRoute };
|
|
4
4
|
export interface ProviderWithdrawableBalance {
|
|
5
5
|
assetId: string;
|
|
6
6
|
route: WithdrawalRoute;
|
|
7
7
|
available: string;
|
|
8
8
|
withdrawalFee?: string;
|
|
9
|
+
isFeeDeducted?: boolean;
|
|
9
10
|
}
|
|
10
11
|
export interface WithdrawableBalance {
|
|
11
12
|
asset: Asset;
|
|
12
13
|
route: WithdrawalRoute;
|
|
13
14
|
available: string;
|
|
14
15
|
withdrawalFee?: string;
|
|
16
|
+
isFeeDeducted?: boolean;
|
|
15
17
|
}
|
|
16
18
|
export interface WithdrawFlowReady {
|
|
17
19
|
kind: 'ready';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/types/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/types/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,YAAY,EAAE,eAAe,EAAE,CAAA;AAQ/B,MAAM,WAAW,2BAA2B;IAE1C,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,eAAe,CAAA;IAEtB,SAAS,EAAE,MAAM,CAAA;IAMjB,aAAa,CAAC,EAAE,MAAM,CAAA;IAMtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AASD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,eAAe,CAAA;IAEtB,SAAS,EAAE,MAAM,CAAA;IAWjB,aAAa,CAAC,EAAE,MAAM,CAAA;IAMtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAOD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB;AASD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAA;IAErB,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAQD,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,yBAAyB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,30 +17,64 @@ exports.walkOrderbook = walkOrderbook;
|
|
|
17
17
|
exports.buildQuote = buildQuote;
|
|
18
18
|
const perps_types_1 = require("@lifi/perps-types");
|
|
19
19
|
const PerpsError_js_1 = require("../errors/PerpsError.js");
|
|
20
|
+
const decimal_js_1 = require("./decimal.js");
|
|
20
21
|
function calculatePositionSize(marginUsd, leverage, price) {
|
|
21
|
-
|
|
22
|
+
if (price === 0) {
|
|
23
|
+
return (marginUsd * leverage) / price;
|
|
24
|
+
}
|
|
25
|
+
if (!(0, decimal_js_1.areFinite)(marginUsd, leverage, price)) {
|
|
26
|
+
return Number.NaN;
|
|
27
|
+
}
|
|
28
|
+
return new decimal_js_1.DivBig(marginUsd).times(leverage).div(price).toNumber();
|
|
22
29
|
}
|
|
23
30
|
function calculateNotionalValue(size, price) {
|
|
24
|
-
|
|
31
|
+
if (!(0, decimal_js_1.areFinite)(size, price)) {
|
|
32
|
+
return Number.NaN;
|
|
33
|
+
}
|
|
34
|
+
return new decimal_js_1.DivBig(size).abs().times(price).toNumber();
|
|
25
35
|
}
|
|
26
36
|
function calculateUnrealizedPnl(entryPrice, currentPrice, size) {
|
|
27
|
-
|
|
37
|
+
if (!(0, decimal_js_1.areFinite)(entryPrice, currentPrice, size)) {
|
|
38
|
+
return Number.NaN;
|
|
39
|
+
}
|
|
40
|
+
return new decimal_js_1.DivBig(currentPrice).minus(entryPrice).times(size).toNumber();
|
|
28
41
|
}
|
|
29
42
|
function calculateRoe(pnl, margin) {
|
|
30
43
|
if (margin === 0) {
|
|
31
44
|
return 0;
|
|
32
45
|
}
|
|
33
|
-
|
|
46
|
+
if (!(0, decimal_js_1.areFinite)(pnl, margin)) {
|
|
47
|
+
return Number.NaN;
|
|
48
|
+
}
|
|
49
|
+
return new decimal_js_1.DivBig(pnl).div(margin).times(100).toNumber();
|
|
34
50
|
}
|
|
35
51
|
function calculateRequiredMargin(notionalValue, leverage) {
|
|
36
|
-
|
|
52
|
+
if (leverage === 0) {
|
|
53
|
+
return notionalValue / leverage;
|
|
54
|
+
}
|
|
55
|
+
if (!(0, decimal_js_1.areFinite)(notionalValue, leverage)) {
|
|
56
|
+
return Number.NaN;
|
|
57
|
+
}
|
|
58
|
+
return new decimal_js_1.DivBig(notionalValue).div(leverage).toNumber();
|
|
37
59
|
}
|
|
38
60
|
function estimateFees(sizeUsd, feeRate) {
|
|
39
|
-
|
|
61
|
+
if (!(0, decimal_js_1.areFinite)(sizeUsd, feeRate)) {
|
|
62
|
+
return Number.NaN;
|
|
63
|
+
}
|
|
64
|
+
return new decimal_js_1.DivBig(sizeUsd).times(feeRate).toNumber();
|
|
40
65
|
}
|
|
41
66
|
function applySlippage(price, slippagePercent, isBuy) {
|
|
42
|
-
|
|
43
|
-
|
|
67
|
+
if (!(0, decimal_js_1.areFinite)(price, slippagePercent)) {
|
|
68
|
+
return Number.NaN;
|
|
69
|
+
}
|
|
70
|
+
const multiplier = new decimal_js_1.DivBig(slippagePercent).div(100).plus(1);
|
|
71
|
+
if (isBuy) {
|
|
72
|
+
return new decimal_js_1.DivBig(price).times(multiplier).toNumber();
|
|
73
|
+
}
|
|
74
|
+
if (multiplier.eq(0)) {
|
|
75
|
+
return price / multiplier.toNumber();
|
|
76
|
+
}
|
|
77
|
+
return new decimal_js_1.DivBig(price).div(multiplier).toNumber();
|
|
44
78
|
}
|
|
45
79
|
function liquidationDistancePercent(params) {
|
|
46
80
|
const { liquidationPrice, currentPrice } = params;
|
|
@@ -54,66 +88,101 @@ function effectiveLeverage(params) {
|
|
|
54
88
|
if (marginUsd === 0) {
|
|
55
89
|
return 0;
|
|
56
90
|
}
|
|
57
|
-
|
|
91
|
+
if (!(0, decimal_js_1.areFinite)(positionValueUsd, marginUsd)) {
|
|
92
|
+
return Number.NaN;
|
|
93
|
+
}
|
|
94
|
+
return new decimal_js_1.DivBig(positionValueUsd).div(marginUsd).toNumber();
|
|
58
95
|
}
|
|
59
96
|
function calculateExpectedPnl(triggerPrice, entryPrice, leverage, isLong, margin) {
|
|
60
97
|
if (!triggerPrice || entryPrice === 0 || margin === 0) {
|
|
61
98
|
return null;
|
|
62
99
|
}
|
|
100
|
+
if (!(0, decimal_js_1.areFinite)(triggerPrice, entryPrice, leverage, margin)) {
|
|
101
|
+
return { amount: Number.NaN, percent: Number.NaN };
|
|
102
|
+
}
|
|
63
103
|
const priceDiff = isLong
|
|
64
|
-
? triggerPrice
|
|
65
|
-
: entryPrice
|
|
66
|
-
const percent = (
|
|
67
|
-
const amount = margin
|
|
68
|
-
return { amount, percent };
|
|
104
|
+
? new decimal_js_1.DivBig(triggerPrice).minus(entryPrice)
|
|
105
|
+
: new decimal_js_1.DivBig(entryPrice).minus(triggerPrice);
|
|
106
|
+
const percent = priceDiff.div(entryPrice).times(leverage).times(100);
|
|
107
|
+
const amount = percent.times(margin).div(100);
|
|
108
|
+
return { amount: amount.toNumber(), percent: percent.toNumber() };
|
|
69
109
|
}
|
|
70
110
|
function priceFromPercent(percent, entryPrice, leverage, isLong) {
|
|
71
111
|
if (entryPrice === 0 || leverage === 0) {
|
|
72
112
|
return 0;
|
|
73
113
|
}
|
|
74
|
-
|
|
75
|
-
|
|
114
|
+
if (!(0, decimal_js_1.areFinite)(percent, entryPrice, leverage)) {
|
|
115
|
+
return Number.NaN;
|
|
116
|
+
}
|
|
117
|
+
const priceDelta = new decimal_js_1.DivBig(percent)
|
|
118
|
+
.times(entryPrice)
|
|
119
|
+
.div(new decimal_js_1.DivBig(leverage).times(100));
|
|
120
|
+
const entry = new decimal_js_1.DivBig(entryPrice);
|
|
121
|
+
return (isLong ? entry.plus(priceDelta) : entry.minus(priceDelta)).toNumber();
|
|
76
122
|
}
|
|
77
123
|
function percentFromPrice(price, entryPrice, leverage, isLong) {
|
|
78
124
|
if (entryPrice === 0 || leverage === 0) {
|
|
79
125
|
return 0;
|
|
80
126
|
}
|
|
81
|
-
|
|
82
|
-
|
|
127
|
+
if (!(0, decimal_js_1.areFinite)(price, entryPrice, leverage)) {
|
|
128
|
+
return Number.NaN;
|
|
129
|
+
}
|
|
130
|
+
const priceDiff = isLong
|
|
131
|
+
? new decimal_js_1.DivBig(price).minus(entryPrice)
|
|
132
|
+
: new decimal_js_1.DivBig(entryPrice).minus(price);
|
|
133
|
+
return priceDiff.div(entryPrice).times(leverage).times(100).toNumber();
|
|
83
134
|
}
|
|
84
135
|
function calculateRealizedPnlPercent(realizedPnl, size, price) {
|
|
85
|
-
|
|
86
|
-
|
|
136
|
+
if (!(0, decimal_js_1.areFinite)(realizedPnl, size, price)) {
|
|
137
|
+
return Number.NaN;
|
|
138
|
+
}
|
|
139
|
+
const positionValue = new decimal_js_1.DivBig(size).abs().times(price);
|
|
140
|
+
if (positionValue.eq(0)) {
|
|
87
141
|
return 0;
|
|
88
142
|
}
|
|
89
|
-
return (realizedPnl
|
|
143
|
+
return new decimal_js_1.DivBig(realizedPnl).div(positionValue).times(100).toNumber();
|
|
90
144
|
}
|
|
91
145
|
function walkOrderbook(levels, sizeUsd) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
146
|
+
if (!Number.isFinite(sizeUsd)) {
|
|
147
|
+
return {
|
|
148
|
+
baseSize: Number.NaN,
|
|
149
|
+
filledNotional: Number.NaN,
|
|
150
|
+
vwap: Number.NaN,
|
|
151
|
+
insufficientLiquidity: true,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
let remaining = new decimal_js_1.DivBig(sizeUsd);
|
|
155
|
+
let baseSize = new decimal_js_1.DivBig(0);
|
|
156
|
+
let filledNotional = new decimal_js_1.DivBig(0);
|
|
95
157
|
for (const level of levels) {
|
|
96
|
-
if (remaining
|
|
158
|
+
if (remaining.lte(0)) {
|
|
97
159
|
break;
|
|
98
160
|
}
|
|
99
|
-
const price =
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
161
|
+
const { price, size } = parseLevel(level);
|
|
162
|
+
const levelNotional = size.times(price);
|
|
163
|
+
const take = remaining.lt(levelNotional) ? remaining : levelNotional;
|
|
164
|
+
if (take.eq(0)) {
|
|
165
|
+
continue;
|
|
103
166
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
baseSize += take / price;
|
|
108
|
-
remaining -= take;
|
|
167
|
+
filledNotional = filledNotional.plus(take);
|
|
168
|
+
baseSize = baseSize.plus(take.div(price));
|
|
169
|
+
remaining = remaining.minus(take);
|
|
109
170
|
}
|
|
110
171
|
return {
|
|
111
|
-
baseSize,
|
|
112
|
-
filledNotional,
|
|
113
|
-
vwap: baseSize
|
|
114
|
-
insufficientLiquidity: remaining
|
|
172
|
+
baseSize: baseSize.toNumber(),
|
|
173
|
+
filledNotional: filledNotional.toNumber(),
|
|
174
|
+
vwap: baseSize.eq(0) ? 0 : filledNotional.div(baseSize).toNumber(),
|
|
175
|
+
insufficientLiquidity: remaining.gt(0),
|
|
115
176
|
};
|
|
116
177
|
}
|
|
178
|
+
function parseLevel(level) {
|
|
179
|
+
try {
|
|
180
|
+
return { price: new decimal_js_1.DivBig(level.price), size: new decimal_js_1.DivBig(level.size) };
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Malformed orderbook level: price='${level.price}', size='${level.size}'`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
117
186
|
function buildQuote(input) {
|
|
118
187
|
const { market, price, side, sizeUsd, feeTier } = input;
|
|
119
188
|
const markPrice = Number.parseFloat(price.markPrice);
|