@lifi/perps-sdk-provider-hyperliquid 0.0.0-preview-7ce3218 → 1.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.
- package/README.md +6 -0
- package/dist/cjs/signers/HyperliquidAgentStore.d.ts.map +1 -1
- package/dist/cjs/signers/HyperliquidAgentStore.js.map +1 -1
- package/dist/esm/signers/HyperliquidAgentStore.d.ts +6 -0
- package/dist/esm/signers/HyperliquidAgentStore.d.ts.map +1 -1
- package/dist/esm/signers/HyperliquidAgentStore.js +6 -0
- package/dist/esm/signers/HyperliquidAgentStore.js.map +1 -1
- package/dist/types/signers/HyperliquidAgentStore.d.ts +6 -0
- package/dist/types/signers/HyperliquidAgentStore.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/signers/HyperliquidAgentStore.ts +6 -0
package/README.md
CHANGED
|
@@ -27,3 +27,9 @@ const client = createPerpsClient({
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
See the [`@lifi/perps-sdk` README](https://www.npmjs.com/package/@lifi/perps-sdk) and the [full documentation](https://public-perps-docs.mintlify.app/) for setup, options, the exported surface, and the agent signing model.
|
|
30
|
+
|
|
31
|
+
## Security: agent key storage
|
|
32
|
+
|
|
33
|
+
The agent keypair is persisted via a `StorageAdapter`, which defaults to browser `localStorage`. The agent private key is therefore readable by any same-origin script — an XSS vulnerability in the host page can exfiltrate it. To harden this, pass a more secure `StorageAdapter` (e.g. one backed by an encrypted or in-memory store) to the `HyperliquidAgentStore` constructor.
|
|
34
|
+
|
|
35
|
+
The blast radius is bounded: the agent key authorizes trading only. Fund withdrawal still requires L1 `APPROVE_AGENT` consent, which the agent key alone cannot grant.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidAgentStore.d.ts","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAoB,MAAM,MAAM,CAAA;AAW/D,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,OAAO,CAAA;IAEhB,UAAU,EAAE,GAAG,CAAA;CAChB;
|
|
1
|
+
{"version":3,"file":"HyperliquidAgentStore.d.ts","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAoB,MAAM,MAAM,CAAA;AAW/D,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,OAAO,CAAA;IAEhB,UAAU,EAAE,GAAG,CAAA;CAChB;AAqCD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAA2C;gBAE5C,OAAO,CAAC,EAAE,cAAc;IAIpC,OAAO,CAAC,UAAU;IAYZ,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+BhD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2BxD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAavC,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgB1E,UAAU,IAAI,IAAI;CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidAgentStore.js","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":";;;AAAA,+CAMwB;AACxB,mDAAkD;AAClD,+BAA+D;AAC/D,4CAAuE;AACvE,kDAA8C;AAE9C,MAAM,cAAc,GAAG,kBAAkB,CAAA;AAczC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAgB,EAAE;IAC5D,IAAI,CAAC,IAAA,YAAK,EAAC,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC;QACH,IAAA,8BAAmB,EAAC,KAAK,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAA6B,EAAE;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAgC,CAAA;IAChE,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,IAAA,gBAAS,EAAC,OAAO,CAAC;QAClB,oBAAoB,CAAC,UAAU,CAAC,CACjC,CAAA;AACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"HyperliquidAgentStore.js","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ export interface HyperliquidAgent {
|
|
|
15
15
|
* Owns the Hyperliquid agent keypair lifecycle: generate, persist, look up,
|
|
16
16
|
* and revoke. Keyed per user L1 address. Persisted via the injected
|
|
17
17
|
* {@link StorageAdapter} (browser `localStorage` by default).
|
|
18
|
+
*
|
|
19
|
+
* @security The default adapter is browser `localStorage`, so the stored agent
|
|
20
|
+
* private key is readable by any same-origin script (e.g. via XSS). Pass a more
|
|
21
|
+
* secure {@link StorageAdapter} to the constructor to harden this. Blast radius
|
|
22
|
+
* is limited to agent trading: fund withdrawal still requires L1 `APPROVE_AGENT`
|
|
23
|
+
* consent that the agent key alone cannot grant.
|
|
18
24
|
*/
|
|
19
25
|
export declare class HyperliquidAgentStore {
|
|
20
26
|
private storage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidAgentStore.d.ts","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAoB,MAAM,MAAM,CAAA;AAM/D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,UAAU,EAAE,GAAG,CAAA;CAChB;AA0BD
|
|
1
|
+
{"version":3,"file":"HyperliquidAgentStore.d.ts","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAoB,MAAM,MAAM,CAAA;AAM/D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,UAAU,EAAE,GAAG,CAAA;CAChB;AA0BD;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAA2C;gBAE5C,OAAO,CAAC,EAAE,cAAc;IAIpC,OAAO,CAAC,UAAU;IAIlB;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0BtD;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0B9D,oDAAoD;IAC9C,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7C;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe1E,mEAAmE;IACnE,UAAU,IAAI,IAAI;CAGnB"}
|
|
@@ -29,6 +29,12 @@ const isHyperliquidAgent = (value) => {
|
|
|
29
29
|
* Owns the Hyperliquid agent keypair lifecycle: generate, persist, look up,
|
|
30
30
|
* and revoke. Keyed per user L1 address. Persisted via the injected
|
|
31
31
|
* {@link StorageAdapter} (browser `localStorage` by default).
|
|
32
|
+
*
|
|
33
|
+
* @security The default adapter is browser `localStorage`, so the stored agent
|
|
34
|
+
* private key is readable by any same-origin script (e.g. via XSS). Pass a more
|
|
35
|
+
* secure {@link StorageAdapter} to the constructor to harden this. Blast radius
|
|
36
|
+
* is limited to agent trading: fund withdrawal still requires L1 `APPROVE_AGENT`
|
|
37
|
+
* consent that the agent key alone cannot grant.
|
|
32
38
|
*/
|
|
33
39
|
export class HyperliquidAgentStore {
|
|
34
40
|
storage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidAgentStore.js","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAA0B,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,cAAc,GAAG,kBAAkB,CAAA;AAczC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAgB,EAAE;IAC5D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC;QACH,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAA6B,EAAE;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAgC,CAAA;IAChE,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,SAAS,CAAC,OAAO,CAAC;QAClB,oBAAoB,CAAC,UAAU,CAAC,CACjC,CAAA;AACH,CAAC,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"HyperliquidAgentStore.js","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ export interface HyperliquidAgent {
|
|
|
15
15
|
* Owns the Hyperliquid agent keypair lifecycle: generate, persist, look up,
|
|
16
16
|
* and revoke. Keyed per user L1 address. Persisted via the injected
|
|
17
17
|
* {@link StorageAdapter} (browser `localStorage` by default).
|
|
18
|
+
*
|
|
19
|
+
* @security The default adapter is browser `localStorage`, so the stored agent
|
|
20
|
+
* private key is readable by any same-origin script (e.g. via XSS). Pass a more
|
|
21
|
+
* secure {@link StorageAdapter} to the constructor to harden this. Blast radius
|
|
22
|
+
* is limited to agent trading: fund withdrawal still requires L1 `APPROVE_AGENT`
|
|
23
|
+
* consent that the agent key alone cannot grant.
|
|
18
24
|
*/
|
|
19
25
|
export declare class HyperliquidAgentStore {
|
|
20
26
|
private storage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidAgentStore.d.ts","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAoB,MAAM,MAAM,CAAA;AAM/D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,UAAU,EAAE,GAAG,CAAA;CAChB;AA0BD
|
|
1
|
+
{"version":3,"file":"HyperliquidAgentStore.d.ts","sourceRoot":"","sources":["../../../src/signers/HyperliquidAgentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAoB,MAAM,MAAM,CAAA;AAM/D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,UAAU,EAAE,GAAG,CAAA;CAChB;AA0BD;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAA2C;gBAE5C,OAAO,CAAC,EAAE,cAAc;IAIpC,OAAO,CAAC,UAAU;IAIlB;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0BtD;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0B9D,oDAAoD;IAC9C,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7C;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe1E,mEAAmE;IACnE,UAAU,IAAI,IAAI;CAGnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-hyperliquid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Hyperliquid provider plugin for @lifi/perps-sdk",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"big.js": "^7.0.1",
|
|
50
|
-
"@lifi/perps-types": "
|
|
50
|
+
"@lifi/perps-types": "1.0.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"viem": "^2.48.8",
|
|
54
|
-
"@lifi/perps-sdk": "
|
|
54
|
+
"@lifi/perps-sdk": "1.0.0"
|
|
55
55
|
},
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public"
|
|
@@ -52,6 +52,12 @@ const isHyperliquidAgent = (value: unknown): value is HyperliquidAgent => {
|
|
|
52
52
|
* Owns the Hyperliquid agent keypair lifecycle: generate, persist, look up,
|
|
53
53
|
* and revoke. Keyed per user L1 address. Persisted via the injected
|
|
54
54
|
* {@link StorageAdapter} (browser `localStorage` by default).
|
|
55
|
+
*
|
|
56
|
+
* @security The default adapter is browser `localStorage`, so the stored agent
|
|
57
|
+
* private key is readable by any same-origin script (e.g. via XSS). Pass a more
|
|
58
|
+
* secure {@link StorageAdapter} to the constructor to harden this. Blast radius
|
|
59
|
+
* is limited to agent trading: fund withdrawal still requires L1 `APPROVE_AGENT`
|
|
60
|
+
* consent that the agent key alone cannot grant.
|
|
55
61
|
*/
|
|
56
62
|
export class HyperliquidAgentStore {
|
|
57
63
|
private storage: StorageAdapter
|