@lifi/perps-sdk-provider-hyperliquid 0.0.0-preview-e6f120b → 0.0.0-preview-96cc05e
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/dist/cjs/accountConfig.d.ts.map +1 -1
- package/dist/cjs/accountConfig.js +2 -2
- package/dist/cjs/accountConfig.js.map +1 -1
- package/dist/cjs/types/fill.d.ts +2 -0
- package/dist/cjs/types/fill.d.ts.map +1 -1
- package/dist/cjs/utils/mapFill.d.ts.map +1 -1
- package/dist/cjs/utils/mapFill.js +34 -27
- package/dist/cjs/utils/mapFill.js.map +1 -1
- package/dist/esm/accountConfig.d.ts.map +1 -1
- package/dist/esm/accountConfig.js +3 -2
- package/dist/esm/accountConfig.js.map +1 -1
- package/dist/esm/types/fill.d.ts +8 -0
- package/dist/esm/types/fill.d.ts.map +1 -1
- package/dist/esm/utils/mapFill.d.ts.map +1 -1
- package/dist/esm/utils/mapFill.js +39 -31
- package/dist/esm/utils/mapFill.js.map +1 -1
- package/dist/types/accountConfig.d.ts.map +1 -1
- package/dist/types/types/fill.d.ts +8 -0
- package/dist/types/types/fill.d.ts.map +1 -1
- package/dist/types/utils/mapFill.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/accountConfig.ts +3 -2
- package/src/types/fill.ts +8 -0
- package/src/utils/mapFill.ts +42 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAA;AAsF1B,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,cAAc,EAAE,GACxB,oBAAoB,EAAE,CAIxB"}
|
|
@@ -9,6 +9,7 @@ function assertNever(value) {
|
|
|
9
9
|
function projectHyperliquidDescriptor(descriptor, config) {
|
|
10
10
|
switch (descriptor.type) {
|
|
11
11
|
case perps_types_1.ActionType.APPROVE_AGENT:
|
|
12
|
+
case perps_types_1.ActionType.REVOKE_AGENT:
|
|
12
13
|
case perps_types_1.ActionType.APPROVE_BUILDER_FEE:
|
|
13
14
|
case perps_types_1.ActionType.SET_REFERRAL:
|
|
14
15
|
return { type: descriptor.type, values: [] };
|
|
@@ -39,8 +40,7 @@ function projectHyperliquidDescriptor(descriptor, config) {
|
|
|
39
40
|
case perps_types_1.ActionType.ACCEPT_PROVIDER_TERMS:
|
|
40
41
|
case perps_types_1.ActionType.DEPOSIT:
|
|
41
42
|
case perps_types_1.ActionType.META_ACCEPT_TERMS:
|
|
42
|
-
case perps_types_1.ActionType.
|
|
43
|
-
case perps_types_1.ActionType.META_CREATE_REFERRAL_CODE:
|
|
43
|
+
case perps_types_1.ActionType.SYNC_FEE_ATTRIBUTION:
|
|
44
44
|
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Hyperliquid account-config mapper has no projection for ` +
|
|
45
45
|
`descriptor type '${descriptor.type}' — this ActionType is not ` +
|
|
46
46
|
`valid on Provider.setup / Provider.options for Hyperliquid.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":";;AA2FA,4EAQC;AAnGD,+CAA4C;AAM5C,mDAA8D;AAE9D,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAA;AACH,CAAC;AAoBD,SAAS,4BAA4B,CACnC,UAA0B,EAC1B,MAAgC;IAEhC,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,wBAAU,CAAC,aAAa,CAAC;QAC9B,KAAK,wBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,wBAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,wBAAU,CAAC,YAAY;YAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QAE9C,KAAK,wBAAU,CAAC,YAAY;YAC1B,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;aAC1D,CAAA;QAEH,KAAK,wBAAU,CAAC,kBAAkB,CAAC;QACnC,KAAK,wBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,wBAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,wBAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,wBAAU,CAAC,QAAQ,CAAC;QACzB,KAAK,wBAAU,CAAC,WAAW,CAAC;QAC5B,KAAK,wBAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,wBAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,wBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,wBAAU,CAAC,iBAAiB,CAAC;QAClC,KAAK,wBAAU,CAAC,iBAAiB,CAAC;QAClC,KAAK,wBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,wBAAU,CAAC,eAAe,CAAC;QAChC,KAAK,wBAAU,CAAC,sBAAsB,CAAC;QACvC,KAAK,wBAAU,CAAC,uBAAuB,CAAC;QACxC,KAAK,wBAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,wBAAU,CAAC,uBAAuB,CAAC;QACxC,KAAK,wBAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,wBAAU,CAAC,sBAAsB,CAAC;QACvC,KAAK,wBAAU,CAAC,qBAAqB,CAAC;QACtC,KAAK,wBAAU,CAAC,OAAO,CAAC;QACxB,KAAK,wBAAU,CAAC,iBAAiB,CAAC;QAClC,KAAK,wBAAU,CAAC,oBAAoB;YAClC,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,0DAA0D;gBACxD,oBAAoB,UAAU,CAAC,IAAI,6BAA6B;gBAChE,6DAA6D,CAChE,CAAA;QAEH;YACE,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AASD,SAAgB,gCAAgC,CAC9C,MAAgC,EAChC,KAAuB,EACvB,OAAyB;IAEzB,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC/C,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,CACjD,CAAA;AACH,CAAC"}
|
package/dist/cjs/types/fill.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/types/fill.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IAKX,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/types/fill.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IAKX,QAAQ,CAAC,EAAE,MAAM,CAAA;IAMjB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAGD,MAAM,MAAM,WAAW,GAAG,UAAU,EAAE,CAAA;AAGtC,MAAM,MAAM,iBAAiB,GAAG,UAAU,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAOnC,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAOnC,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,IAyCjE,CAAA"}
|
|
@@ -5,32 +5,39 @@ const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
|
5
5
|
Object.defineProperty(exports, "classifyFillFromPosition", { enumerable: true, get: function () { return perps_sdk_1.classifyFillFromPosition; } });
|
|
6
6
|
const perps_types_1 = require("@lifi/perps-types");
|
|
7
7
|
const constants_js_1 = require("../constants.js");
|
|
8
|
-
const mapFill = (fill, market) =>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
?
|
|
31
|
-
:
|
|
32
|
-
:
|
|
33
|
-
|
|
34
|
-
|
|
8
|
+
const mapFill = (fill, market) => {
|
|
9
|
+
const feeAsset = fill.feeToken ?? market.quoteAsset.displaySymbol;
|
|
10
|
+
return {
|
|
11
|
+
...(market.categoryId === constants_js_1.SPOT_MARKET_ID
|
|
12
|
+
? { realizedPnl: fill.closedPnl }
|
|
13
|
+
: { realizedPnl: fill.closedPnl === '0' ? null : fill.closedPnl }),
|
|
14
|
+
id: String(fill.tid),
|
|
15
|
+
orderId: String(fill.oid),
|
|
16
|
+
clientOrderId: fill.cloid,
|
|
17
|
+
market,
|
|
18
|
+
side: fill.side === 'B' ? perps_types_1.OrderSide.BUY : perps_types_1.OrderSide.SELL,
|
|
19
|
+
type: fill.crossed ? undefined : perps_types_1.OrderType.LIMIT,
|
|
20
|
+
size: fill.sz,
|
|
21
|
+
price: fill.px,
|
|
22
|
+
status: perps_types_1.FillStatus.FILLED,
|
|
23
|
+
liquidity: fill.crossed ? perps_types_1.LiquidityRole.TAKER : perps_types_1.LiquidityRole.MAKER,
|
|
24
|
+
filledSize: fill.sz,
|
|
25
|
+
fee: {
|
|
26
|
+
amount: fill.fee,
|
|
27
|
+
asset: feeAsset,
|
|
28
|
+
},
|
|
29
|
+
builderFee: fill.builderFee === undefined
|
|
30
|
+
? undefined
|
|
31
|
+
: { amount: fill.builderFee, asset: feeAsset },
|
|
32
|
+
startPosition: fill.startPosition,
|
|
33
|
+
explorerLink: (0, perps_sdk_1.explorerTxUrl)(perps_sdk_1.ExplorerChainId.HYPERLIQUID, fill.hash),
|
|
34
|
+
classification: market.categoryId === constants_js_1.SPOT_MARKET_ID
|
|
35
|
+
? fill.side === 'B'
|
|
36
|
+
? perps_types_1.FillClassification.SPOT_BUY
|
|
37
|
+
: perps_types_1.FillClassification.SPOT_SELL
|
|
38
|
+
: (0, perps_sdk_1.classifyFillFromPosition)(fill.startPosition, fill.side, fill.sz),
|
|
39
|
+
createdAt: new Date(fill.time).toISOString(),
|
|
40
|
+
};
|
|
41
|
+
};
|
|
35
42
|
exports.mapFill = mapFill;
|
|
36
43
|
//# sourceMappingURL=mapFill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":";;;AAAA,+CAIwB;AAaf,yGAhBP,oCAAwB,OAgBO;AAXjC,mDAM0B;AAC1B,kDAAgD;AAWzC,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,MAAqB,EAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":";;;AAAA,+CAIwB;AAaf,yGAhBP,oCAAwB,OAgBO;AAXjC,mDAM0B;AAC1B,kDAAgD;AAWzC,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,MAAqB,EAAQ,EAAE;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,CAAA;IAEjE,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,6BAAc;YACtC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE;YACjC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,aAAa,EAAE,IAAI,CAAC,KAAK;QACzB,MAAM;QACN,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,uBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAS,CAAC,IAAI;QAKxD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAS,CAAC,KAAK;QAChD,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,KAAK,EAAE,IAAI,CAAC,EAAE;QACd,MAAM,EAAE,wBAAU,CAAC,MAAM;QACzB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,2BAAa,CAAC,KAAK,CAAC,CAAC,CAAC,2BAAa,CAAC,KAAK;QACnE,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,GAAG,EAAE;YACH,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ;SAChB;QACD,UAAU,EACR,IAAI,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;QAClD,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,IAAA,yBAAa,EAAC,2BAAe,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;QACnE,cAAc,EACZ,MAAM,CAAC,UAAU,KAAK,6BAAc;YAClC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG;gBACjB,CAAC,CAAC,gCAAkB,CAAC,QAAQ;gBAC7B,CAAC,CAAC,gCAAkB,CAAC,SAAS;YAChC,CAAC,CAAC,IAAA,oCAAwB,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACtE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;KAC7C,CAAA;AACH,CAAC,CAAA;AAzCY,QAAA,OAAO,WAyCnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAA;AA+E1B;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,cAAc,EAAE,GACxB,oBAAoB,EAAE,CAIxB"}
|
|
@@ -12,6 +12,7 @@ function assertNever(value) {
|
|
|
12
12
|
* | descriptor.type | projected values
|
|
13
13
|
* |-----------------------|----------------------------------------------
|
|
14
14
|
* | APPROVE_AGENT | [] (no parameters)
|
|
15
|
+
* | REVOKE_AGENT | [] (no parameters)
|
|
15
16
|
* | APPROVE_BUILDER_FEE | [] (no parameters)
|
|
16
17
|
* | SET_REFERRAL | [] (no parameters)
|
|
17
18
|
* | ACCOUNT_MODE | [{ name: 'mode', value: config.abstractionMode }]
|
|
@@ -23,6 +24,7 @@ function assertNever(value) {
|
|
|
23
24
|
function projectHyperliquidDescriptor(descriptor, config) {
|
|
24
25
|
switch (descriptor.type) {
|
|
25
26
|
case ActionType.APPROVE_AGENT:
|
|
27
|
+
case ActionType.REVOKE_AGENT:
|
|
26
28
|
case ActionType.APPROVE_BUILDER_FEE:
|
|
27
29
|
case ActionType.SET_REFERRAL:
|
|
28
30
|
return { type: descriptor.type, values: [] };
|
|
@@ -53,8 +55,7 @@ function projectHyperliquidDescriptor(descriptor, config) {
|
|
|
53
55
|
case ActionType.ACCEPT_PROVIDER_TERMS:
|
|
54
56
|
case ActionType.DEPOSIT:
|
|
55
57
|
case ActionType.META_ACCEPT_TERMS:
|
|
56
|
-
case ActionType.
|
|
57
|
-
case ActionType.META_CREATE_REFERRAL_CODE:
|
|
58
|
+
case ActionType.SYNC_FEE_ATTRIBUTION:
|
|
58
59
|
throw new PerpsError(PerpsErrorCode.SDKError, `Hyperliquid account-config mapper has no projection for ` +
|
|
59
60
|
`descriptor type '${descriptor.type}' — this ActionType is not ` +
|
|
60
61
|
`valid on Provider.setup / Provider.options for Hyperliquid.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE9D,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAA;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAM5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE9D,SAAS,WAAW,CAAC,KAAY;IAC/B,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,4BAA4B,CACnC,UAA0B,EAC1B,MAAgC;IAEhC,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,UAAU,CAAC,aAAa,CAAC;QAC9B,KAAK,UAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,UAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,UAAU,CAAC,YAAY;YAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QAE9C,KAAK,UAAU,CAAC,YAAY;YAC1B,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;aAC1D,CAAA;QAEH,KAAK,UAAU,CAAC,kBAAkB,CAAC;QACnC,KAAK,UAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,UAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,UAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,UAAU,CAAC,QAAQ,CAAC;QACzB,KAAK,UAAU,CAAC,WAAW,CAAC;QAC5B,KAAK,UAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,UAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,UAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,UAAU,CAAC,iBAAiB,CAAC;QAClC,KAAK,UAAU,CAAC,iBAAiB,CAAC;QAClC,KAAK,UAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,UAAU,CAAC,eAAe,CAAC;QAChC,KAAK,UAAU,CAAC,sBAAsB,CAAC;QACvC,KAAK,UAAU,CAAC,uBAAuB,CAAC;QACxC,KAAK,UAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,UAAU,CAAC,uBAAuB,CAAC;QACxC,KAAK,UAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,UAAU,CAAC,sBAAsB,CAAC;QACvC,KAAK,UAAU,CAAC,qBAAqB,CAAC;QACtC,KAAK,UAAU,CAAC,OAAO,CAAC;QACxB,KAAK,UAAU,CAAC,iBAAiB,CAAC;QAClC,KAAK,UAAU,CAAC,oBAAoB;YAClC,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,QAAQ,EACvB,0DAA0D;gBACxD,oBAAoB,UAAU,CAAC,IAAI,6BAA6B;gBAChE,6DAA6D,CAChE,CAAA;QAEH;YACE,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAgC,EAChC,KAAuB,EACvB,OAAyB;IAEzB,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC/C,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,CACjD,CAAA;AACH,CAAC"}
|
package/dist/esm/types/fill.d.ts
CHANGED
|
@@ -20,6 +20,14 @@ export type HlUserFill = {
|
|
|
20
20
|
* predating the field, where the fee is in the market's quote asset.
|
|
21
21
|
*/
|
|
22
22
|
feeToken?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Builder portion of `fee`, in `feeToken`'s units. Absent when the venue
|
|
25
|
+
* charged no builder portion on the fill. Hyperliquid omits this field when
|
|
26
|
+
* its value is zero.
|
|
27
|
+
*/
|
|
28
|
+
builderFee?: string;
|
|
29
|
+
/** Client order ID the order carried. Absent when the order carried none. */
|
|
30
|
+
cloid?: string;
|
|
23
31
|
closedPnl: string;
|
|
24
32
|
crossed: boolean;
|
|
25
33
|
time: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/types/fill.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,qEAAqE;AACrE,MAAM,MAAM,WAAW,GAAG,UAAU,EAAE,CAAA;AAEtC,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,UAAU,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/types/fill.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,qEAAqE;AACrE,MAAM,MAAM,WAAW,GAAG,UAAU,EAAE,CAAA;AAEtC,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,UAAU,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,0FAA0F;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,0FAA0F;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,IAyCjE,CAAA"}
|
|
@@ -8,35 +8,43 @@ export { classifyFillFromPosition };
|
|
|
8
8
|
* HL's canonical spot pair 0 is addressed as `PURR/USDC`, not `@0`.
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
|
-
export const mapFill = (fill, market) =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
11
|
+
export const mapFill = (fill, market) => {
|
|
12
|
+
// HL charges the builder portion in the same token as the total fee.
|
|
13
|
+
const feeAsset = fill.feeToken ?? market.quoteAsset.displaySymbol;
|
|
14
|
+
return {
|
|
15
|
+
...(market.categoryId === SPOT_MARKET_ID
|
|
16
|
+
? { realizedPnl: fill.closedPnl }
|
|
17
|
+
: { realizedPnl: fill.closedPnl === '0' ? null : fill.closedPnl }),
|
|
18
|
+
id: String(fill.tid),
|
|
19
|
+
orderId: String(fill.oid),
|
|
20
|
+
clientOrderId: fill.cloid,
|
|
21
|
+
market,
|
|
22
|
+
side: fill.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
|
|
23
|
+
// HL fills don't carry the originating order type. A maker fill (crossed:
|
|
24
|
+
// false) can only come from a resting order, so it's necessarily a limit;
|
|
25
|
+
// a taker fill (crossed: true) may be a market OR an aggressive limit order,
|
|
26
|
+
// which the payload can't distinguish, so the type is left undefined.
|
|
27
|
+
type: fill.crossed ? undefined : OrderType.LIMIT,
|
|
28
|
+
size: fill.sz,
|
|
29
|
+
price: fill.px,
|
|
30
|
+
status: FillStatus.FILLED,
|
|
31
|
+
liquidity: fill.crossed ? LiquidityRole.TAKER : LiquidityRole.MAKER,
|
|
32
|
+
filledSize: fill.sz,
|
|
33
|
+
fee: {
|
|
34
|
+
amount: fill.fee,
|
|
35
|
+
asset: feeAsset,
|
|
36
|
+
},
|
|
37
|
+
builderFee: fill.builderFee === undefined
|
|
38
|
+
? undefined
|
|
39
|
+
: { amount: fill.builderFee, asset: feeAsset },
|
|
40
|
+
startPosition: fill.startPosition,
|
|
41
|
+
explorerLink: explorerTxUrl(ExplorerChainId.HYPERLIQUID, fill.hash),
|
|
42
|
+
classification: market.categoryId === SPOT_MARKET_ID
|
|
43
|
+
? fill.side === 'B'
|
|
44
|
+
? FillClassification.SPOT_BUY
|
|
45
|
+
: FillClassification.SPOT_SELL
|
|
46
|
+
: classifyFillFromPosition(fill.startPosition, fill.side, fill.sz),
|
|
47
|
+
createdAt: new Date(fill.time).toISOString(),
|
|
48
|
+
};
|
|
49
|
+
};
|
|
42
50
|
//# sourceMappingURL=mapFill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD,0FAA0F;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,MAAqB,EAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,aAAa,GACd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD,0FAA0F;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,MAAqB,EAAQ,EAAE;IACvE,qEAAqE;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,CAAA;IAEjE,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc;YACtC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE;YACjC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,aAAa,EAAE,IAAI,CAAC,KAAK;QACzB,MAAM;QACN,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;QACxD,0EAA0E;QAC1E,0EAA0E;QAC1E,6EAA6E;QAC7E,sEAAsE;QACtE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;QAChD,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,KAAK,EAAE,IAAI,CAAC,EAAE;QACd,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK;QACnE,UAAU,EAAE,IAAI,CAAC,EAAE;QACnB,GAAG,EAAE;YACH,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ;SAChB;QACD,UAAU,EACR,IAAI,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;QAClD,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;QACnE,cAAc,EACZ,MAAM,CAAC,UAAU,KAAK,cAAc;YAClC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG;gBACjB,CAAC,CAAC,kBAAkB,CAAC,QAAQ;gBAC7B,CAAC,CAAC,kBAAkB,CAAC,SAAS;YAChC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACtE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;KAC7C,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,cAAc,EACf,MAAM,mBAAmB,CAAA;AA+E1B;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,cAAc,EAAE,GACxB,oBAAoB,EAAE,CAIxB"}
|
|
@@ -20,6 +20,14 @@ export type HlUserFill = {
|
|
|
20
20
|
* predating the field, where the fee is in the market's quote asset.
|
|
21
21
|
*/
|
|
22
22
|
feeToken?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Builder portion of `fee`, in `feeToken`'s units. Absent when the venue
|
|
25
|
+
* charged no builder portion on the fill. Hyperliquid omits this field when
|
|
26
|
+
* its value is zero.
|
|
27
|
+
*/
|
|
28
|
+
builderFee?: string;
|
|
29
|
+
/** Client order ID the order carried. Absent when the order carried none. */
|
|
30
|
+
cloid?: string;
|
|
23
31
|
closedPnl: string;
|
|
24
32
|
crossed: boolean;
|
|
25
33
|
time: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/types/fill.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,qEAAqE;AACrE,MAAM,MAAM,WAAW,GAAG,UAAU,EAAE,CAAA;AAEtC,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,UAAU,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/types/fill.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,qEAAqE;AACrE,MAAM,MAAM,WAAW,GAAG,UAAU,EAAE,CAAA;AAEtC,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,UAAU,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,0FAA0F;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,0FAA0F;AAC1F,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,IAyCjE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-hyperliquid",
|
|
3
|
-
"version": "0.0.0-preview-
|
|
3
|
+
"version": "0.0.0-preview-96cc05e",
|
|
4
4
|
"description": "Hyperliquid provider plugin for @lifi/perps-sdk",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"big.js": "^7.0.1",
|
|
51
51
|
"viem": "^2.55.18",
|
|
52
|
-
"@lifi/perps-types": "^
|
|
52
|
+
"@lifi/perps-types": "^11.2.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@lifi/perps-sdk": "^
|
|
55
|
+
"@lifi/perps-sdk": "^10.0.1"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
package/src/accountConfig.ts
CHANGED
|
@@ -21,6 +21,7 @@ function assertNever(value: never): never {
|
|
|
21
21
|
* | descriptor.type | projected values
|
|
22
22
|
* |-----------------------|----------------------------------------------
|
|
23
23
|
* | APPROVE_AGENT | [] (no parameters)
|
|
24
|
+
* | REVOKE_AGENT | [] (no parameters)
|
|
24
25
|
* | APPROVE_BUILDER_FEE | [] (no parameters)
|
|
25
26
|
* | SET_REFERRAL | [] (no parameters)
|
|
26
27
|
* | ACCOUNT_MODE | [{ name: 'mode', value: config.abstractionMode }]
|
|
@@ -35,6 +36,7 @@ function projectHyperliquidDescriptor(
|
|
|
35
36
|
): AccountConfigSetting {
|
|
36
37
|
switch (descriptor.type) {
|
|
37
38
|
case ActionType.APPROVE_AGENT:
|
|
39
|
+
case ActionType.REVOKE_AGENT:
|
|
38
40
|
case ActionType.APPROVE_BUILDER_FEE:
|
|
39
41
|
case ActionType.SET_REFERRAL:
|
|
40
42
|
return { type: descriptor.type, values: [] }
|
|
@@ -67,8 +69,7 @@ function projectHyperliquidDescriptor(
|
|
|
67
69
|
case ActionType.ACCEPT_PROVIDER_TERMS:
|
|
68
70
|
case ActionType.DEPOSIT:
|
|
69
71
|
case ActionType.META_ACCEPT_TERMS:
|
|
70
|
-
case ActionType.
|
|
71
|
-
case ActionType.META_CREATE_REFERRAL_CODE:
|
|
72
|
+
case ActionType.SYNC_FEE_ATTRIBUTION:
|
|
72
73
|
throw new PerpsError(
|
|
73
74
|
PerpsErrorCode.SDKError,
|
|
74
75
|
`Hyperliquid account-config mapper has no projection for ` +
|
package/src/types/fill.ts
CHANGED
|
@@ -22,6 +22,14 @@ export type HlUserFill = {
|
|
|
22
22
|
* predating the field, where the fee is in the market's quote asset.
|
|
23
23
|
*/
|
|
24
24
|
feeToken?: string
|
|
25
|
+
/**
|
|
26
|
+
* Builder portion of `fee`, in `feeToken`'s units. Absent when the venue
|
|
27
|
+
* charged no builder portion on the fill. Hyperliquid omits this field when
|
|
28
|
+
* its value is zero.
|
|
29
|
+
*/
|
|
30
|
+
builderFee?: string
|
|
31
|
+
/** Client order ID the order carried. Absent when the order carried none. */
|
|
32
|
+
cloid?: string
|
|
25
33
|
closedPnl: string
|
|
26
34
|
crossed: boolean
|
|
27
35
|
time: number
|
package/src/utils/mapFill.ts
CHANGED
|
@@ -22,35 +22,45 @@ export { classifyFillFromPosition }
|
|
|
22
22
|
* HL's canonical spot pair 0 is addressed as `PURR/USDC`, not `@0`.
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
|
-
export const mapFill = (fill: HlUserFill, market: MarketDisplay): Fill =>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
25
|
+
export const mapFill = (fill: HlUserFill, market: MarketDisplay): Fill => {
|
|
26
|
+
// HL charges the builder portion in the same token as the total fee.
|
|
27
|
+
const feeAsset = fill.feeToken ?? market.quoteAsset.displaySymbol
|
|
28
|
+
|
|
29
|
+
return {
|
|
30
|
+
...(market.categoryId === SPOT_MARKET_ID
|
|
31
|
+
? { realizedPnl: fill.closedPnl }
|
|
32
|
+
: { realizedPnl: fill.closedPnl === '0' ? null : fill.closedPnl }),
|
|
33
|
+
id: String(fill.tid),
|
|
34
|
+
orderId: String(fill.oid),
|
|
35
|
+
clientOrderId: fill.cloid,
|
|
36
|
+
market,
|
|
37
|
+
side: fill.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
|
|
38
|
+
// HL fills don't carry the originating order type. A maker fill (crossed:
|
|
39
|
+
// false) can only come from a resting order, so it's necessarily a limit;
|
|
40
|
+
// a taker fill (crossed: true) may be a market OR an aggressive limit order,
|
|
41
|
+
// which the payload can't distinguish, so the type is left undefined.
|
|
42
|
+
type: fill.crossed ? undefined : OrderType.LIMIT,
|
|
43
|
+
size: fill.sz,
|
|
44
|
+
price: fill.px,
|
|
45
|
+
status: FillStatus.FILLED,
|
|
46
|
+
liquidity: fill.crossed ? LiquidityRole.TAKER : LiquidityRole.MAKER,
|
|
47
|
+
filledSize: fill.sz,
|
|
48
|
+
fee: {
|
|
49
|
+
amount: fill.fee,
|
|
50
|
+
asset: feeAsset,
|
|
51
|
+
},
|
|
52
|
+
builderFee:
|
|
53
|
+
fill.builderFee === undefined
|
|
54
|
+
? undefined
|
|
55
|
+
: { amount: fill.builderFee, asset: feeAsset },
|
|
56
|
+
startPosition: fill.startPosition,
|
|
57
|
+
explorerLink: explorerTxUrl(ExplorerChainId.HYPERLIQUID, fill.hash),
|
|
58
|
+
classification:
|
|
59
|
+
market.categoryId === SPOT_MARKET_ID
|
|
60
|
+
? fill.side === 'B'
|
|
61
|
+
? FillClassification.SPOT_BUY
|
|
62
|
+
: FillClassification.SPOT_SELL
|
|
63
|
+
: classifyFillFromPosition(fill.startPosition, fill.side, fill.sz),
|
|
64
|
+
createdAt: new Date(fill.time).toISOString(),
|
|
65
|
+
}
|
|
66
|
+
}
|