@lifi/perps-sdk-provider-hyperliquid 18.1.1 → 19.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/dist/cjs/HyperliquidProvider.d.ts.map +1 -1
- package/dist/cjs/HyperliquidProvider.js +22 -5
- package/dist/cjs/HyperliquidProvider.js.map +1 -1
- package/dist/cjs/accountConfig.d.ts +2 -2
- package/dist/cjs/accountConfig.d.ts.map +1 -1
- package/dist/cjs/accountConfig.js +22 -5
- package/dist/cjs/accountConfig.js.map +1 -1
- package/dist/cjs/signers/signActions.d.ts.map +1 -1
- package/dist/cjs/signers/signActions.js +1 -1
- package/dist/cjs/signers/signActions.js.map +1 -1
- package/dist/esm/HyperliquidProvider.d.ts.map +1 -1
- package/dist/esm/HyperliquidProvider.js +29 -8
- package/dist/esm/HyperliquidProvider.js.map +1 -1
- package/dist/esm/accountConfig.d.ts +5 -5
- package/dist/esm/accountConfig.d.ts.map +1 -1
- package/dist/esm/accountConfig.js +32 -11
- package/dist/esm/accountConfig.js.map +1 -1
- package/dist/esm/signers/signActions.d.ts.map +1 -1
- package/dist/esm/signers/signActions.js +1 -1
- package/dist/esm/signers/signActions.js.map +1 -1
- package/dist/types/HyperliquidProvider.d.ts.map +1 -1
- package/dist/types/accountConfig.d.ts +5 -5
- package/dist/types/accountConfig.d.ts.map +1 -1
- package/dist/types/signers/signActions.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/HyperliquidProvider.ts +44 -11
- package/src/accountConfig.ts +38 -14
- package/src/signers/signActions.ts +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AA2BxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAA;AAqBxD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAA;AAa3C,MAAM,WAAW,0BAA0B;IAOzC,MAAM,CAAC,EAAE,MAAM,CAAA;IAMf,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAWD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IAKnE,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAK5C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAK5C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1E;AAuBD,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,0BAA+B,GACvC,wBAAwB,CA0V1B"}
|
|
@@ -80,25 +80,42 @@ function hyperliquidProvider(options = {}) {
|
|
|
80
80
|
};
|
|
81
81
|
return {
|
|
82
82
|
type: constants_js_1.PROVIDER_KEY,
|
|
83
|
-
internalSetupActions: [perps_types_1.ActionType.SET_REFERRAL],
|
|
84
83
|
conditionalSetupActions: [perps_types_1.ActionType.REVOKE_AGENT],
|
|
85
84
|
bind: (client) => contextRef.bind(client),
|
|
86
85
|
getAgentAddress: async (address) => (await agentStore.get(address)).address,
|
|
87
86
|
hasAgent: (address) => agentStore.has(address),
|
|
88
87
|
removeAgent: (address) => agentStore.remove(address),
|
|
89
88
|
importAgent: (address, privateKey) => agentStore.import(address, privateKey),
|
|
90
|
-
resolveActionRequest: async (action, address,
|
|
89
|
+
resolveActionRequest: async (action, address, signer) => {
|
|
91
90
|
if (action === perps_types_1.ActionType.APPROVE_AGENT) {
|
|
92
91
|
const agentAddress = await resolveApproveAgentAddress(address);
|
|
93
92
|
return { params: { agentAddress } };
|
|
94
93
|
}
|
|
95
|
-
if (
|
|
94
|
+
if (action === perps_types_1.ActionType.REVOKE_SESSION_AGENT) {
|
|
95
|
+
try {
|
|
96
|
+
const agent = await agentStore.get(address);
|
|
97
|
+
return { params: { agentAddress: agent.address } };
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
if (error instanceof perps_sdk_1.PerpsError &&
|
|
101
|
+
error.message === perps_sdk_1.PerpsErrorMessage.AgentNotFound) {
|
|
102
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Nothing to revoke for '${action}' on '${constants_js_1.PROVIDER_KEY}': no session agent is stored for ${address}.`);
|
|
103
|
+
}
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (signer === perps_types_1.PerpsSigner.SDK) {
|
|
96
108
|
const agent = await agentStore.get(address);
|
|
97
109
|
return { signerAddress: agent.address };
|
|
98
110
|
}
|
|
99
111
|
return {};
|
|
100
112
|
},
|
|
101
113
|
signActions: (method, steps, address, ctx) => (0, signActions_js_1.hyperliquidSignActions)(agentStore, method, steps, address, ctx),
|
|
114
|
+
onExecuteResults: async (address, results) => {
|
|
115
|
+
if (results.some((result) => result.success && result.action === perps_types_1.ActionType.REVOKE_SESSION_AGENT)) {
|
|
116
|
+
await agentStore.remove(address);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
102
119
|
getAccount: (params, opts) => (0, getAccount_js_1.getAccount)(contextRef.require(), { address: params.address }, opts),
|
|
103
120
|
accountExists: (params, opts) => (0, getAccountExists_js_1.getAccountExists)(contextRef.require(), { address: params.address }, opts),
|
|
104
121
|
getDepositFlow: async () => ({
|
|
@@ -142,12 +159,12 @@ function hyperliquidProvider(options = {}) {
|
|
|
142
159
|
formatOrderSize: (market, size) => (0, orderFormatting_js_1.formatOrderSize)(size, market.szDecimals),
|
|
143
160
|
estimateLiquidationPrice: (market, params) => (0, liquidation_js_1.calculateLiquidationPrice)(params.entryPrice, params.leverage, params.isLong, market.maxLeverage),
|
|
144
161
|
positionRemovableMargin: transferMargin_js_1.positionRemovableMargin,
|
|
145
|
-
projectConfig: (config, setup
|
|
162
|
+
projectConfig: (config, setup) => {
|
|
146
163
|
if (config.provider !== constants_js_1.PROVIDER_KEY) {
|
|
147
164
|
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `hyperliquidProvider.projectConfig received config for provider ` +
|
|
148
165
|
`'${config.provider}'.`);
|
|
149
166
|
}
|
|
150
|
-
return (0, accountConfig_js_1.projectHyperliquidConfigSettings)(config, setup
|
|
167
|
+
return (0, accountConfig_js_1.projectHyperliquidConfigSettings)(config, setup);
|
|
151
168
|
},
|
|
152
169
|
};
|
|
153
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":";;AA4JA,kDA4VC;AAxfD,+CA0BwB;AACxB,mDAyB0B;AAC1B,+BAAwD;AACxD,yDAAqE;AACrE,2DAAuD;AACvD,iDAKuB;AACvB,6CAAoD;AACpD,4DAAqD;AACrD,wEAAiE;AACjE,8DAAuD;AACvD,8EAAuE;AACvE,wDAAiD;AACjD,0EAAmE;AACnE,wDAAiD;AACjD,0DAAmD;AACnD,8EAAuE;AACvE,gEAAyD;AACzD,sFAA+E;AAC/E,iFAG2C;AAC3C,6DAAiE;AAEjE,yDAAkE;AAClE,2DAAkE;AAClE,mEAA8E;AAC9E,iEAAmE;AAyEnE,SAAgB,mBAAmB,CACjC,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,0CAA2B,CAAA;IAC5D,MAAM,UAAU,GAAG,IAAI,gDAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,IAAI,kCAAqB,CAAC,MAAM,CAAC,CAAA;IAEpD,MAAM,cAAc,GAAG,CAAC,KAAc,EAAiB,EAAE,CACvD,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAE5E,MAAM,cAAc,GAAG,CAAC,KAAc,EAAiB,EAAE;QACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;QAChD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,MAAM,yBAAyB,GAAG,KAAK,EACrC,OAAgB,EAChB,iBAA0B,EACR,EAAE;QACpB,IAAI,OAAO,GAAiD,IAAI,CAAA;QAChE,IAAI,CAAC;YACH,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,CAAA;QAChC,CAAC;QAAC,MAAM,CAAC;YAEP,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAW,EAC9B,MAAM,EACN,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,EACtC,IAAA,6BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAC9B,CAAA;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAA;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CACZ,CAAA;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACrD,OAAO,YAAY,KAAK,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5D,CAAC,CAAA;IAED,MAAM,0BAA0B,GAAG,KAAK,EACtC,OAAgB,EACE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAChD,IAAI,CAAC;gBACH,IAAI,MAAM,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjE,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBAChC,OAAO,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;gBACxD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;YACD,OAAO,UAAU,CAAC,OAAO,CAAA;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK,YAAY,sBAAU;gBAC3B,KAAK,CAAC,OAAO,KAAK,6BAAiB,CAAC,aAAa,EACjD,CAAC;gBACD,OAAO,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;YACxD,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,IAAI,EAAE,2BAAY;QAKlB,uBAAuB,EAAE,CAAC,wBAAU,CAAC,YAAY,CAAC;QAElD,IAAI,EAAE,CAAC,MAAsB,EAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAE/D,eAAe,EAAE,KAAK,EAAE,OAAgB,EAAoB,EAAE,CAC5D,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;QAEzC,QAAQ,EAAE,CAAC,OAAgB,EAAoB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;QAEzE,WAAW,EAAE,CAAC,OAAgB,EAAiB,EAAE,CAC/C,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;QAE5B,WAAW,EAAE,CACX,OAAgB,EAChB,UAAe,EACY,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;QAEtE,oBAAoB,EAAE,KAAK,EACzB,MAAkB,EAClB,OAAgB,EAChB,MAAmB,EACgB,EAAE;YAKrC,IAAI,MAAM,KAAK,wBAAU,CAAC,aAAa,EAAE,CAAC;gBACxC,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAA;gBAC9D,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAA;YACrC,CAAC;YAGD,IAAI,MAAM,KAAK,wBAAU,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC3C,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA;gBACpD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IACE,KAAK,YAAY,sBAAU;wBAC3B,KAAK,CAAC,OAAO,KAAK,6BAAiB,CAAC,aAAa,EACjD,CAAC;wBACD,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,0BAA0B,MAAM,SAAS,2BAAY,qCAAqC,OAAO,GAAG,CACrG,CAAA;oBACH,CAAC;oBACD,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;YAKD,IAAI,MAAM,KAAK,yBAAW,CAAC,GAAG,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC3C,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;YACzC,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,WAAW,EAAE,CACX,MAAqB,EACrB,KAAmB,EACnB,OAAgB,EAChB,GAAwB,EACK,EAAE,CAC/B,IAAA,uCAAsB,EAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;QAGjE,gBAAgB,EAAE,KAAK,EACrB,OAAgB,EAChB,OAAuB,EACR,EAAE;YACjB,IACE,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,wBAAU,CAAC,oBAAoB,CACtE,EACD,CAAC;gBACD,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QAED,UAAU,EAAE,CACV,MAAgC,EAChC,IAAwB,EACE,EAAE,CAC5B,IAAA,0BAAU,EAAC,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;QAErE,aAAa,EAAE,CACb,MAAmC,EACnC,IAAwB,EACN,EAAE,CACpB,IAAA,sCAAgB,EAAC,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;QAK3E,cAAc,EAAE,KAAK,IAA0B,EAAE,CAAC,CAAC;YACjD,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,4BAAgB;SAC9B,CAAC;QAEF,uBAAuB,EAAE,CACvB,MAA6C,EAC7C,IAAwB,EACgB,EAAE,CAC1C,IAAA,oDAAuB,EACrB,UAAU,CAAC,OAAO,EAAE,EACpB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAC3B,IAAI,CACL;QAEH,YAAY,EAAE,CACZ,MAAkC,EAClC,IAAwB,EACI,EAAE,CAC9B,IAAA,8BAAY,EACV,UAAU,CAAC,OAAO,EAAE,EACpB;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,EACD,IAAI,CACL;QAEH,iBAAiB,EAAE,CACjB,MAAuC,EACvC,IAAwB,EACa,EAAE,CACvC,IAAA,wCAAiB,EACf,UAAU,CAAC,OAAO,EAAE,EACpB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAClD,IAAI,CACL;QAEH,mBAAmB,EAAE,CACnB,MAAyC,EACzC,IAAwB,EACe,EAAE,CACzC,IAAA,4CAAmB,EACjB,UAAU,CAAC,OAAO,EAAE,EACpB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EACtD,IAAI,CACL;QAEH,SAAS,EAAE,CACT,MAA+B,EAC/B,IAAwB,EACC,EAAE,CAC3B,IAAA,wBAAS,EACP,UAAU,CAAC,OAAO,EAAE,EACpB;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,EACD,IAAI,CACL;QAEH,QAAQ,EAAE,CACR,MAA8B,EAC9B,IAAwB,EACR,EAAE,CAClB,IAAA,sBAAQ,EACN,UAAU,CAAC,OAAO,EAAE,EACpB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAC1C,IAAI,CACL;QAEH,QAAQ,EAAE,CACR,MAA8B,EAC9B,IAAwB,EACA,EAAE,CAC1B,IAAA,sBAAQ,EACN,UAAU,CAAC,OAAO,EAAE,EACpB;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,EACD,IAAI,CACL;QAEH,WAAW,EAAE,CACX,MAAiC,EACjC,IAAwB,EACK,EAAE,CAC/B,IAAA,4BAAW,EACT,UAAU,CAAC,OAAO,EAAE,EACpB;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,EACD,IAAI,CACL;QAEH,mBAAmB,EAAE,CACnB,MAAyC,EACzC,IAAwB,EACW,EAAE,CACrC,IAAA,4CAAmB,EACjB,UAAU,CAAC,OAAO,EAAE,EACpB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAChD,IAAI,CACL;QAEH,QAAQ,EAAE,CACR,MAA8B,EAC9B,IAAwB,EACR,EAAE,CAClB,IAAA,wBAAY,EACV,UAAU,CAAC,OAAO,EAAE,CAAC,MAAM,EAC3B,2BAAY,EACZ,MAAM,EACN,4CAA6B,EAC7B,IAAI,CACL;QAEH,iBAAiB,EAAE,CACjB,OAAwB,EACxB,SAAqB,EACL,EAAE,CAAC,IAAA,qCAAiB,EAAC,OAAO,EAAE,SAAS,CAAC;QAE1D,gBAAgB,EAAE,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE,CAC1D,IAAA,qCAAgB,EACd,KAAK,EACL,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,KAAK,6BAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAC1D;QAEH,eAAe,EAAE,CAAC,MAAc,EAAE,IAAY,EAAU,EAAE,CACxD,IAAA,oCAAe,EAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;QAE1C,wBAAwB,EAAE,CACxB,MAAmB,EACnB,MAAiC,EACb,EAAE,CACtB,IAAA,0CAAyB,EACvB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,CACnB;QAEH,uBAAuB,EAAvB,2CAAuB;QAEvB,aAAa,EAAE,CACb,MAAqB,EACrB,KAAoB,EACI,EAAE;YAC1B,IAAI,MAAM,CAAC,QAAQ,KAAK,2BAAY,EAAE,CAAC;gBACrC,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,iEAAiE;oBAC/D,IAAI,MAAM,CAAC,QAAQ,IAAI,CAC1B,CAAA;YACH,CAAC;YACD,OAAO,IAAA,mDAAgC,EAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACxD,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { AccountConfigSetting, HyperliquidAccountConfig,
|
|
2
|
-
export declare function projectHyperliquidConfigSettings(config: HyperliquidAccountConfig, setup:
|
|
1
|
+
import type { AccountConfigSetting, HyperliquidAccountConfig, SetupAction } from '@lifi/perps-types';
|
|
2
|
+
export declare function projectHyperliquidConfigSettings(config: HyperliquidAccountConfig, setup: SetupAction[]): AccountConfigSetting[];
|
|
3
3
|
//# sourceMappingURL=accountConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAkH1B,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,WAAW,EAAE,GACnB,oBAAoB,EAAE,CAIxB"}
|
|
@@ -3,6 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.projectHyperliquidConfigSettings = projectHyperliquidConfigSettings;
|
|
4
4
|
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
5
5
|
const perps_types_1 = require("@lifi/perps-types");
|
|
6
|
+
const account_js_1 = require("./types/account.js");
|
|
7
|
+
const ABSTRACTION_OFF_VALUES = new Set([
|
|
8
|
+
account_js_1.HlAbstractionMode.DEFAULT,
|
|
9
|
+
account_js_1.HlAbstractionMode.DISABLED,
|
|
10
|
+
]);
|
|
6
11
|
function assertNever(value) {
|
|
7
12
|
throw new Error(`Unreachable: exhaustiveness check failed for value ${JSON.stringify(value)}`);
|
|
8
13
|
}
|
|
@@ -13,11 +18,20 @@ function projectHyperliquidDescriptor(descriptor, config) {
|
|
|
13
18
|
case perps_types_1.ActionType.APPROVE_BUILDER_FEE:
|
|
14
19
|
case perps_types_1.ActionType.SET_REFERRAL:
|
|
15
20
|
return { type: descriptor.type, values: [] };
|
|
16
|
-
case perps_types_1.ActionType.ACCOUNT_MODE:
|
|
21
|
+
case perps_types_1.ActionType.ACCOUNT_MODE: {
|
|
22
|
+
const mode = config.abstractionMode;
|
|
23
|
+
const bound = (descriptor.options ?? []).flatMap((option) => (0, perps_sdk_1.isSetupOptionFor)(option, perps_types_1.ActionType.ACCOUNT_MODE)
|
|
24
|
+
? [option.params.mode]
|
|
25
|
+
: []);
|
|
26
|
+
const matched = mode === null || ABSTRACTION_OFF_VALUES.has(mode)
|
|
27
|
+
? bound.find((value) => ABSTRACTION_OFF_VALUES.has(value))
|
|
28
|
+
: bound.find((value) => value === mode);
|
|
17
29
|
return {
|
|
18
30
|
type: descriptor.type,
|
|
19
|
-
values: [{ name: 'mode', value:
|
|
31
|
+
values: [{ name: 'mode', value: matched ?? mode }],
|
|
32
|
+
satisfied: matched !== undefined,
|
|
20
33
|
};
|
|
34
|
+
}
|
|
21
35
|
case perps_types_1.ActionType.APPROVE_INTEGRATOR:
|
|
22
36
|
case perps_types_1.ActionType.ACCOUNT_TYPE:
|
|
23
37
|
case perps_types_1.ActionType.SEND_ASSET:
|
|
@@ -44,14 +58,17 @@ function projectHyperliquidDescriptor(descriptor, config) {
|
|
|
44
58
|
case perps_types_1.ActionType.META_ONBOARD:
|
|
45
59
|
case perps_types_1.ActionType.META_CREATE_REFERRAL_CODE:
|
|
46
60
|
case perps_types_1.ActionType.SYNC_FEE_ATTRIBUTION:
|
|
61
|
+
case perps_types_1.ActionType.REVOKE_BUILDER_FEE:
|
|
62
|
+
case perps_types_1.ActionType.REVOKE_SESSION_AGENT:
|
|
63
|
+
case perps_types_1.ActionType.REVOKE_INTEGRATOR:
|
|
47
64
|
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Hyperliquid account-config mapper has no projection for ` +
|
|
48
65
|
`descriptor type '${descriptor.type}' — this ActionType is not ` +
|
|
49
|
-
`valid on Provider.setup
|
|
66
|
+
`valid on Provider.setup for Hyperliquid.`);
|
|
50
67
|
default:
|
|
51
68
|
return assertNever(descriptor.type);
|
|
52
69
|
}
|
|
53
70
|
}
|
|
54
|
-
function projectHyperliquidConfigSettings(config, setup
|
|
55
|
-
return
|
|
71
|
+
function projectHyperliquidConfigSettings(config, setup) {
|
|
72
|
+
return setup.map((descriptor) => projectHyperliquidDescriptor(descriptor, config));
|
|
56
73
|
}
|
|
57
74
|
//# sourceMappingURL=accountConfig.js.map
|
|
@@ -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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAYvE,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAYvE,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuB7B"}
|
|
@@ -8,7 +8,7 @@ async function hyperliquidSignActions(agentStore, method, steps, address, ctx) {
|
|
|
8
8
|
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `hyperliquidProvider.signActions: unsupported SigningMethod '${method}'. ` +
|
|
9
9
|
'Hyperliquid only signs EIP712 actions.');
|
|
10
10
|
}
|
|
11
|
-
const sign = ctx?.
|
|
11
|
+
const sign = ctx?.signer === perps_types_1.PerpsSigner.USER
|
|
12
12
|
? await userWalletSigner(ctx)
|
|
13
13
|
: await agentSigner(agentStore, address);
|
|
14
14
|
return Promise.all(steps.map(async (step) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":";;AA0BA,
|
|
1
|
+
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":";;AA0BA,wDA6BC;AAvDD,+CAKwB;AAOxB,mDAA8E;AAcvE,KAAK,UAAU,sBAAsB,CAC1C,UAAiC,EACjC,MAAqB,EACrB,KAAmB,EACnB,OAAgB,EAChB,GAAmC;IAEnC,IAAI,MAAM,KAAK,2BAAa,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,+DAA+D,MAAM,KAAK;YACxE,wCAAwC,CAC3C,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GACR,GAAG,EAAE,MAAM,KAAK,yBAAW,CAAC,IAAI;QAC9B,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC;QAC7B,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAE5C,OAAO,OAAO,CAAC,GAAG,CACf,KAA4B,CAAC,GAAG,CAC/B,KAAK,EAAE,IAAI,EAAmC,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;KAC5B,CAAC,CACH,CACF,CAAA;AACH,CAAC;AAID,KAAK,UAAU,WAAW,CACxB,UAAiC,EACjC,OAAgB;IAEhB,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAa,EAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAuB;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAA;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,qEAAqE;YACnE,kEAAkE;YAClE,8BAA8B,CACjC,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,IAAA,mCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAChD,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AA2BxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAA;AAqBxD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAA;AAQ3C;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnD,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5C;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,0BAA+B,GACvC,wBAAwB,CA0V1B"}
|
|
@@ -100,7 +100,6 @@ export function hyperliquidProvider(options = {}) {
|
|
|
100
100
|
};
|
|
101
101
|
return {
|
|
102
102
|
type: PROVIDER_KEY,
|
|
103
|
-
internalSetupActions: [ActionType.SET_REFERRAL],
|
|
104
103
|
// REVOKE_AGENT stages a step only when every named agent slot is taken,
|
|
105
104
|
// so `checkSetup` omits it from `ProviderSetup.checklist` instead of
|
|
106
105
|
// rendering it as a satisfied step.
|
|
@@ -110,7 +109,7 @@ export function hyperliquidProvider(options = {}) {
|
|
|
110
109
|
hasAgent: (address) => agentStore.has(address),
|
|
111
110
|
removeAgent: (address) => agentStore.remove(address),
|
|
112
111
|
importAgent: (address, privateKey) => agentStore.import(address, privateKey),
|
|
113
|
-
resolveActionRequest: async (action, address,
|
|
112
|
+
resolveActionRequest: async (action, address, signer) => {
|
|
114
113
|
// APPROVE_AGENT is user-signed: the user authorises the agent, so the
|
|
115
114
|
// agent address rides as a param (not signerAddress). The agent is
|
|
116
115
|
// provisioned on first use so its address is known before the backend
|
|
@@ -119,16 +118,38 @@ export function hyperliquidProvider(options = {}) {
|
|
|
119
118
|
const agentAddress = await resolveApproveAgentAddress(address);
|
|
120
119
|
return { params: { agentAddress } };
|
|
121
120
|
}
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
// REVOKE_SESSION_AGENT targets the stored agent by address and never
|
|
122
|
+
// provisions one: with no stored agent there is nothing to revoke.
|
|
123
|
+
if (action === ActionType.REVOKE_SESSION_AGENT) {
|
|
124
|
+
try {
|
|
125
|
+
const agent = await agentStore.get(address);
|
|
126
|
+
return { params: { agentAddress: agent.address } };
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (error instanceof PerpsError &&
|
|
130
|
+
error.message === PerpsErrorMessage.AgentNotFound) {
|
|
131
|
+
throw new PerpsError(PerpsErrorCode.SDKError, `Nothing to revoke for '${action}' on '${PROVIDER_KEY}': no session agent is stored for ${address}.`);
|
|
132
|
+
}
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// SDK-signed actions (trades) carry the agent as the on-wire
|
|
137
|
+
// signerAddress. User-signed actions (builder-fee, account mode,
|
|
138
|
+
// withdrawal) contribute nothing — core submits under the user's own
|
|
139
|
+
// address.
|
|
140
|
+
if (signer === PerpsSigner.SDK) {
|
|
126
141
|
const agent = await agentStore.get(address);
|
|
127
142
|
return { signerAddress: agent.address };
|
|
128
143
|
}
|
|
129
144
|
return {};
|
|
130
145
|
},
|
|
131
146
|
signActions: (method, steps, address, ctx) => hyperliquidSignActions(agentStore, method, steps, address, ctx),
|
|
147
|
+
// A confirmed session-agent revoke leaves the stored key unusable.
|
|
148
|
+
onExecuteResults: async (address, results) => {
|
|
149
|
+
if (results.some((result) => result.success && result.action === ActionType.REVOKE_SESSION_AGENT)) {
|
|
150
|
+
await agentStore.remove(address);
|
|
151
|
+
}
|
|
152
|
+
},
|
|
132
153
|
getAccount: (params, opts) => getAccount(contextRef.require(), { address: params.address }, opts),
|
|
133
154
|
accountExists: (params, opts) => getAccountExists(contextRef.require(), { address: params.address }, opts),
|
|
134
155
|
// Hyperliquid credits the venue account from a deposit of its venue-chain
|
|
@@ -175,12 +196,12 @@ export function hyperliquidProvider(options = {}) {
|
|
|
175
196
|
formatOrderSize: (market, size) => formatOrderSize(size, market.szDecimals),
|
|
176
197
|
estimateLiquidationPrice: (market, params) => calculateLiquidationPrice(params.entryPrice, params.leverage, params.isLong, market.maxLeverage),
|
|
177
198
|
positionRemovableMargin,
|
|
178
|
-
projectConfig: (config, setup
|
|
199
|
+
projectConfig: (config, setup) => {
|
|
179
200
|
if (config.provider !== PROVIDER_KEY) {
|
|
180
201
|
throw new PerpsError(PerpsErrorCode.SDKError, `hyperliquidProvider.projectConfig received config for provider ` +
|
|
181
202
|
`'${config.provider}'.`);
|
|
182
203
|
}
|
|
183
|
-
return projectHyperliquidConfigSettings(config, setup
|
|
204
|
+
return projectHyperliquidConfigSettings(config, setup);
|
|
184
205
|
},
|
|
185
206
|
};
|
|
186
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAEhB,UAAU,EACV,iBAAiB,EAgBjB,YAAY,GAIb,MAAM,iBAAiB,CAAA;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AccountConfigSetting, HyperliquidAccountConfig,
|
|
1
|
+
import type { AccountConfigSetting, HyperliquidAccountConfig, SetupAction } from '@lifi/perps-types';
|
|
2
2
|
/**
|
|
3
|
-
* Project the
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Project the Hyperliquid setup descriptors against the typed
|
|
4
|
+
* `HyperliquidAccountConfig`. Produces exactly one `AccountConfigSetting` per
|
|
5
|
+
* descriptor, in `Provider.setup` order.
|
|
6
6
|
*
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export declare function projectHyperliquidConfigSettings(config: HyperliquidAccountConfig, setup:
|
|
9
|
+
export declare function projectHyperliquidConfigSettings(config: HyperliquidAccountConfig, setup: SetupAction[]): AccountConfigSetting[];
|
|
10
10
|
//# sourceMappingURL=accountConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AA2G1B;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,WAAW,EAAE,GACnB,oBAAoB,EAAE,CAIxB"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { PerpsError } from '@lifi/perps-sdk';
|
|
1
|
+
import { isSetupOptionFor, PerpsError } from '@lifi/perps-sdk';
|
|
2
2
|
import { ActionType, PerpsErrorCode } from '@lifi/perps-types';
|
|
3
|
+
import { HlAbstractionMode } from './types/account.js';
|
|
4
|
+
// `null`, `'default'` and `'disabled'` are the same off state; an option may
|
|
5
|
+
// bind either spelling of it.
|
|
6
|
+
const ABSTRACTION_OFF_VALUES = new Set([
|
|
7
|
+
HlAbstractionMode.DEFAULT,
|
|
8
|
+
HlAbstractionMode.DISABLED,
|
|
9
|
+
]);
|
|
3
10
|
function assertNever(value) {
|
|
4
11
|
throw new Error(`Unreachable: exhaustiveness check failed for value ${JSON.stringify(value)}`);
|
|
5
12
|
}
|
|
@@ -15,11 +22,11 @@ function assertNever(value) {
|
|
|
15
22
|
* | REVOKE_AGENT | [] (no parameters)
|
|
16
23
|
* | APPROVE_BUILDER_FEE | [] (no parameters)
|
|
17
24
|
* | SET_REFERRAL | [] (no parameters)
|
|
18
|
-
* | ACCOUNT_MODE | [{ name: 'mode', value: config.abstractionMode }]
|
|
25
|
+
* | ACCOUNT_MODE | [{ name: 'mode', value: config.abstractionMode }] (off → bound off spelling)
|
|
19
26
|
*
|
|
20
27
|
* The switch is exhaustive over `ActionType` so enum additions force a
|
|
21
28
|
* compile error in the `default` arm. ActionTypes that are not valid on
|
|
22
|
-
* `Provider.setup`
|
|
29
|
+
* `Provider.setup` for Hyperliquid throw at runtime.
|
|
23
30
|
*/
|
|
24
31
|
function projectHyperliquidDescriptor(descriptor, config) {
|
|
25
32
|
switch (descriptor.type) {
|
|
@@ -28,11 +35,22 @@ function projectHyperliquidDescriptor(descriptor, config) {
|
|
|
28
35
|
case ActionType.APPROVE_BUILDER_FEE:
|
|
29
36
|
case ActionType.SET_REFERRAL:
|
|
30
37
|
return { type: descriptor.type, values: [] };
|
|
31
|
-
case ActionType.ACCOUNT_MODE:
|
|
38
|
+
case ActionType.ACCOUNT_MODE: {
|
|
39
|
+
const mode = config.abstractionMode;
|
|
40
|
+
const bound = (descriptor.options ?? []).flatMap((option) => isSetupOptionFor(option, ActionType.ACCOUNT_MODE)
|
|
41
|
+
? [option.params.mode]
|
|
42
|
+
: []);
|
|
43
|
+
// The off state projects as whichever off spelling an option binds, so
|
|
44
|
+
// the value always matches the option it is satisfied by.
|
|
45
|
+
const matched = mode === null || ABSTRACTION_OFF_VALUES.has(mode)
|
|
46
|
+
? bound.find((value) => ABSTRACTION_OFF_VALUES.has(value))
|
|
47
|
+
: bound.find((value) => value === mode);
|
|
32
48
|
return {
|
|
33
49
|
type: descriptor.type,
|
|
34
|
-
values: [{ name: 'mode', value:
|
|
50
|
+
values: [{ name: 'mode', value: matched ?? mode }],
|
|
51
|
+
satisfied: matched !== undefined,
|
|
35
52
|
};
|
|
53
|
+
}
|
|
36
54
|
case ActionType.APPROVE_INTEGRATOR:
|
|
37
55
|
case ActionType.ACCOUNT_TYPE:
|
|
38
56
|
case ActionType.SEND_ASSET:
|
|
@@ -59,21 +77,24 @@ function projectHyperliquidDescriptor(descriptor, config) {
|
|
|
59
77
|
case ActionType.META_ONBOARD:
|
|
60
78
|
case ActionType.META_CREATE_REFERRAL_CODE:
|
|
61
79
|
case ActionType.SYNC_FEE_ATTRIBUTION:
|
|
80
|
+
case ActionType.REVOKE_BUILDER_FEE:
|
|
81
|
+
case ActionType.REVOKE_SESSION_AGENT:
|
|
82
|
+
case ActionType.REVOKE_INTEGRATOR:
|
|
62
83
|
throw new PerpsError(PerpsErrorCode.SDKError, `Hyperliquid account-config mapper has no projection for ` +
|
|
63
84
|
`descriptor type '${descriptor.type}' — this ActionType is not ` +
|
|
64
|
-
`valid on Provider.setup
|
|
85
|
+
`valid on Provider.setup for Hyperliquid.`);
|
|
65
86
|
default:
|
|
66
87
|
return assertNever(descriptor.type);
|
|
67
88
|
}
|
|
68
89
|
}
|
|
69
90
|
/**
|
|
70
|
-
* Project the
|
|
71
|
-
*
|
|
72
|
-
*
|
|
91
|
+
* Project the Hyperliquid setup descriptors against the typed
|
|
92
|
+
* `HyperliquidAccountConfig`. Produces exactly one `AccountConfigSetting` per
|
|
93
|
+
* descriptor, in `Provider.setup` order.
|
|
73
94
|
*
|
|
74
95
|
* @public
|
|
75
96
|
*/
|
|
76
|
-
export function projectHyperliquidConfigSettings(config, setup
|
|
77
|
-
return
|
|
97
|
+
export function projectHyperliquidConfigSettings(config, setup) {
|
|
98
|
+
return setup.map((descriptor) => projectHyperliquidDescriptor(descriptor, config));
|
|
78
99
|
}
|
|
79
100
|
//# sourceMappingURL=accountConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"accountConfig.js","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEvE;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEvE;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuB7B"}
|
|
@@ -15,7 +15,7 @@ export async function hyperliquidSignActions(agentStore, method, steps, address,
|
|
|
15
15
|
throw new PerpsError(PerpsErrorCode.SDKError, `hyperliquidProvider.signActions: unsupported SigningMethod '${method}'. ` +
|
|
16
16
|
'Hyperliquid only signs EIP712 actions.');
|
|
17
17
|
}
|
|
18
|
-
const sign = ctx?.
|
|
18
|
+
const sign = ctx?.signer === PerpsSigner.USER
|
|
19
19
|
? await userWalletSigner(ctx)
|
|
20
20
|
: await agentSigner(agentStore, address);
|
|
21
21
|
return Promise.all(steps.map(async (step) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,aAAa,EACb,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAOxB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAI9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAiC,EACjC,MAAqB,EACrB,KAAmB,EACnB,OAAgB,EAChB,GAAmC;IAEnC,IAAI,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,QAAQ,EACvB,+DAA+D,MAAM,KAAK;YACxE,wCAAwC,CAC3C,CAAA;IACH,CAAC;IAED,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"signActions.js","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,aAAa,EACb,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAOxB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAI9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAiC,EACjC,MAAqB,EACrB,KAAmB,EACnB,OAAgB,EAChB,GAAmC;IAEnC,IAAI,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,QAAQ,EACvB,+DAA+D,MAAM,KAAK;YACxE,wCAAwC,CAC3C,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GACR,GAAG,EAAE,MAAM,KAAK,WAAW,CAAC,IAAI;QAC9B,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC;QAC7B,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAE5C,OAAO,OAAO,CAAC,GAAG,CACf,KAA4B,CAAC,GAAG,CAC/B,KAAK,EAAE,IAAI,EAAmC,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;KAC5B,CAAC,CACH,CACF,CAAA;AACH,CAAC;AAID,KAAK,UAAU,WAAW,CACxB,UAAiC,EACjC,OAAgB;IAEhB,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAuB;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAA;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,QAAQ,EACvB,qEAAqE;YACnE,kEAAkE;YAClE,8BAA8B,CACjC,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAChD,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AA2BxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAA;AAqBxD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAA;AAQ3C;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACnE;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnD,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5C;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,0BAA+B,GACvC,wBAAwB,CA0V1B"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AccountConfigSetting, HyperliquidAccountConfig,
|
|
1
|
+
import type { AccountConfigSetting, HyperliquidAccountConfig, SetupAction } from '@lifi/perps-types';
|
|
2
2
|
/**
|
|
3
|
-
* Project the
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Project the Hyperliquid setup descriptors against the typed
|
|
4
|
+
* `HyperliquidAccountConfig`. Produces exactly one `AccountConfigSetting` per
|
|
5
|
+
* descriptor, in `Provider.setup` order.
|
|
6
6
|
*
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export declare function projectHyperliquidConfigSettings(config: HyperliquidAccountConfig, setup:
|
|
9
|
+
export declare function projectHyperliquidConfigSettings(config: HyperliquidAccountConfig, setup: SetupAction[]): AccountConfigSetting[];
|
|
10
10
|
//# sourceMappingURL=accountConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"accountConfig.d.ts","sourceRoot":"","sources":["../../src/accountConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AA2G1B;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,WAAW,EAAE,GACnB,oBAAoB,EAAE,CAIxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEvE;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"signActions.d.ts","sourceRoot":"","sources":["../../../src/signers/signActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAA+B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEvE;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,EACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuB7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-hyperliquid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.0.0",
|
|
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": "^17.0.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@lifi/perps-sdk": "^
|
|
55
|
+
"@lifi/perps-sdk": "^19.0.0"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
type AccountConfigSetting,
|
|
31
31
|
type AccountResponse,
|
|
32
32
|
type AccountSummary,
|
|
33
|
+
type ActionResult,
|
|
33
34
|
type ActionStep,
|
|
34
35
|
ActionType,
|
|
35
36
|
type ActivitiesResponse,
|
|
@@ -45,8 +46,8 @@ import {
|
|
|
45
46
|
type PortfolioHistoryResponse,
|
|
46
47
|
type Position,
|
|
47
48
|
type PositionsResponse,
|
|
48
|
-
type ProviderAction,
|
|
49
49
|
type Quote,
|
|
50
|
+
type SetupAction,
|
|
50
51
|
type SignedActionStep,
|
|
51
52
|
type SigningMethod,
|
|
52
53
|
} from '@lifi/perps-types'
|
|
@@ -229,8 +230,6 @@ export function hyperliquidProvider(
|
|
|
229
230
|
return {
|
|
230
231
|
type: PROVIDER_KEY,
|
|
231
232
|
|
|
232
|
-
internalSetupActions: [ActionType.SET_REFERRAL],
|
|
233
|
-
|
|
234
233
|
// REVOKE_AGENT stages a step only when every named agent slot is taken,
|
|
235
234
|
// so `checkSetup` omits it from `ProviderSetup.checklist` instead of
|
|
236
235
|
// rendering it as a satisfied step.
|
|
@@ -254,7 +253,7 @@ export function hyperliquidProvider(
|
|
|
254
253
|
resolveActionRequest: async (
|
|
255
254
|
action: ActionType,
|
|
256
255
|
address: Address,
|
|
257
|
-
|
|
256
|
+
signer: PerpsSigner
|
|
258
257
|
): Promise<ActionSignerContribution> => {
|
|
259
258
|
// APPROVE_AGENT is user-signed: the user authorises the agent, so the
|
|
260
259
|
// agent address rides as a param (not signerAddress). The agent is
|
|
@@ -264,10 +263,30 @@ export function hyperliquidProvider(
|
|
|
264
263
|
const agentAddress = await resolveApproveAgentAddress(address)
|
|
265
264
|
return { params: { agentAddress } }
|
|
266
265
|
}
|
|
267
|
-
//
|
|
268
|
-
//
|
|
269
|
-
|
|
270
|
-
|
|
266
|
+
// REVOKE_SESSION_AGENT targets the stored agent by address and never
|
|
267
|
+
// provisions one: with no stored agent there is nothing to revoke.
|
|
268
|
+
if (action === ActionType.REVOKE_SESSION_AGENT) {
|
|
269
|
+
try {
|
|
270
|
+
const agent = await agentStore.get(address)
|
|
271
|
+
return { params: { agentAddress: agent.address } }
|
|
272
|
+
} catch (error) {
|
|
273
|
+
if (
|
|
274
|
+
error instanceof PerpsError &&
|
|
275
|
+
error.message === PerpsErrorMessage.AgentNotFound
|
|
276
|
+
) {
|
|
277
|
+
throw new PerpsError(
|
|
278
|
+
PerpsErrorCode.SDKError,
|
|
279
|
+
`Nothing to revoke for '${action}' on '${PROVIDER_KEY}': no session agent is stored for ${address}.`
|
|
280
|
+
)
|
|
281
|
+
}
|
|
282
|
+
throw error
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
// SDK-signed actions (trades) carry the agent as the on-wire
|
|
286
|
+
// signerAddress. User-signed actions (builder-fee, account mode,
|
|
287
|
+
// withdrawal) contribute nothing — core submits under the user's own
|
|
288
|
+
// address.
|
|
289
|
+
if (signer === PerpsSigner.SDK) {
|
|
271
290
|
const agent = await agentStore.get(address)
|
|
272
291
|
return { signerAddress: agent.address }
|
|
273
292
|
}
|
|
@@ -282,6 +301,21 @@ export function hyperliquidProvider(
|
|
|
282
301
|
): Promise<SignedActionStep[]> =>
|
|
283
302
|
hyperliquidSignActions(agentStore, method, steps, address, ctx),
|
|
284
303
|
|
|
304
|
+
// A confirmed session-agent revoke leaves the stored key unusable.
|
|
305
|
+
onExecuteResults: async (
|
|
306
|
+
address: Address,
|
|
307
|
+
results: ActionResult[]
|
|
308
|
+
): Promise<void> => {
|
|
309
|
+
if (
|
|
310
|
+
results.some(
|
|
311
|
+
(result) =>
|
|
312
|
+
result.success && result.action === ActionType.REVOKE_SESSION_AGENT
|
|
313
|
+
)
|
|
314
|
+
) {
|
|
315
|
+
await agentStore.remove(address)
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
|
|
285
319
|
getAccount: (
|
|
286
320
|
params: ProviderGetAccountParams,
|
|
287
321
|
opts?: SDKRequestOptions
|
|
@@ -456,8 +490,7 @@ export function hyperliquidProvider(
|
|
|
456
490
|
|
|
457
491
|
projectConfig: (
|
|
458
492
|
config: AccountConfig,
|
|
459
|
-
setup:
|
|
460
|
-
options: ProviderAction[]
|
|
493
|
+
setup: SetupAction[]
|
|
461
494
|
): AccountConfigSetting[] => {
|
|
462
495
|
if (config.provider !== PROVIDER_KEY) {
|
|
463
496
|
throw new PerpsError(
|
|
@@ -466,7 +499,7 @@ export function hyperliquidProvider(
|
|
|
466
499
|
`'${config.provider}'.`
|
|
467
500
|
)
|
|
468
501
|
}
|
|
469
|
-
return projectHyperliquidConfigSettings(config, setup
|
|
502
|
+
return projectHyperliquidConfigSettings(config, setup)
|
|
470
503
|
},
|
|
471
504
|
}
|
|
472
505
|
}
|
package/src/accountConfig.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import { PerpsError } from '@lifi/perps-sdk'
|
|
1
|
+
import { isSetupOptionFor, PerpsError } from '@lifi/perps-sdk'
|
|
2
2
|
import type {
|
|
3
3
|
AccountConfigSetting,
|
|
4
4
|
HyperliquidAccountConfig,
|
|
5
|
-
|
|
5
|
+
SetupAction,
|
|
6
6
|
} from '@lifi/perps-types'
|
|
7
7
|
import { ActionType, PerpsErrorCode } from '@lifi/perps-types'
|
|
8
|
+
import { HlAbstractionMode } from './types/account.js'
|
|
9
|
+
|
|
10
|
+
// `null`, `'default'` and `'disabled'` are the same off state; an option may
|
|
11
|
+
// bind either spelling of it.
|
|
12
|
+
const ABSTRACTION_OFF_VALUES: ReadonlySet<string> = new Set([
|
|
13
|
+
HlAbstractionMode.DEFAULT,
|
|
14
|
+
HlAbstractionMode.DISABLED,
|
|
15
|
+
])
|
|
8
16
|
|
|
9
17
|
function assertNever(value: never): never {
|
|
10
18
|
throw new Error(
|
|
@@ -24,14 +32,14 @@ function assertNever(value: never): never {
|
|
|
24
32
|
* | REVOKE_AGENT | [] (no parameters)
|
|
25
33
|
* | APPROVE_BUILDER_FEE | [] (no parameters)
|
|
26
34
|
* | SET_REFERRAL | [] (no parameters)
|
|
27
|
-
* | ACCOUNT_MODE | [{ name: 'mode', value: config.abstractionMode }]
|
|
35
|
+
* | ACCOUNT_MODE | [{ name: 'mode', value: config.abstractionMode }] (off → bound off spelling)
|
|
28
36
|
*
|
|
29
37
|
* The switch is exhaustive over `ActionType` so enum additions force a
|
|
30
38
|
* compile error in the `default` arm. ActionTypes that are not valid on
|
|
31
|
-
* `Provider.setup`
|
|
39
|
+
* `Provider.setup` for Hyperliquid throw at runtime.
|
|
32
40
|
*/
|
|
33
41
|
function projectHyperliquidDescriptor(
|
|
34
|
-
descriptor:
|
|
42
|
+
descriptor: SetupAction,
|
|
35
43
|
config: HyperliquidAccountConfig
|
|
36
44
|
): AccountConfigSetting {
|
|
37
45
|
switch (descriptor.type) {
|
|
@@ -41,11 +49,25 @@ function projectHyperliquidDescriptor(
|
|
|
41
49
|
case ActionType.SET_REFERRAL:
|
|
42
50
|
return { type: descriptor.type, values: [] }
|
|
43
51
|
|
|
44
|
-
case ActionType.ACCOUNT_MODE:
|
|
52
|
+
case ActionType.ACCOUNT_MODE: {
|
|
53
|
+
const mode = config.abstractionMode
|
|
54
|
+
const bound = (descriptor.options ?? []).flatMap((option) =>
|
|
55
|
+
isSetupOptionFor(option, ActionType.ACCOUNT_MODE)
|
|
56
|
+
? [option.params.mode]
|
|
57
|
+
: []
|
|
58
|
+
)
|
|
59
|
+
// The off state projects as whichever off spelling an option binds, so
|
|
60
|
+
// the value always matches the option it is satisfied by.
|
|
61
|
+
const matched =
|
|
62
|
+
mode === null || ABSTRACTION_OFF_VALUES.has(mode)
|
|
63
|
+
? bound.find((value) => ABSTRACTION_OFF_VALUES.has(value))
|
|
64
|
+
: bound.find((value) => value === mode)
|
|
45
65
|
return {
|
|
46
66
|
type: descriptor.type,
|
|
47
|
-
values: [{ name: 'mode', value:
|
|
67
|
+
values: [{ name: 'mode', value: matched ?? mode }],
|
|
68
|
+
satisfied: matched !== undefined,
|
|
48
69
|
}
|
|
70
|
+
}
|
|
49
71
|
|
|
50
72
|
case ActionType.APPROVE_INTEGRATOR:
|
|
51
73
|
case ActionType.ACCOUNT_TYPE:
|
|
@@ -73,11 +95,14 @@ function projectHyperliquidDescriptor(
|
|
|
73
95
|
case ActionType.META_ONBOARD:
|
|
74
96
|
case ActionType.META_CREATE_REFERRAL_CODE:
|
|
75
97
|
case ActionType.SYNC_FEE_ATTRIBUTION:
|
|
98
|
+
case ActionType.REVOKE_BUILDER_FEE:
|
|
99
|
+
case ActionType.REVOKE_SESSION_AGENT:
|
|
100
|
+
case ActionType.REVOKE_INTEGRATOR:
|
|
76
101
|
throw new PerpsError(
|
|
77
102
|
PerpsErrorCode.SDKError,
|
|
78
103
|
`Hyperliquid account-config mapper has no projection for ` +
|
|
79
104
|
`descriptor type '${descriptor.type}' — this ActionType is not ` +
|
|
80
|
-
`valid on Provider.setup
|
|
105
|
+
`valid on Provider.setup for Hyperliquid.`
|
|
81
106
|
)
|
|
82
107
|
|
|
83
108
|
default:
|
|
@@ -86,18 +111,17 @@ function projectHyperliquidDescriptor(
|
|
|
86
111
|
}
|
|
87
112
|
|
|
88
113
|
/**
|
|
89
|
-
* Project the
|
|
90
|
-
*
|
|
91
|
-
*
|
|
114
|
+
* Project the Hyperliquid setup descriptors against the typed
|
|
115
|
+
* `HyperliquidAccountConfig`. Produces exactly one `AccountConfigSetting` per
|
|
116
|
+
* descriptor, in `Provider.setup` order.
|
|
92
117
|
*
|
|
93
118
|
* @public
|
|
94
119
|
*/
|
|
95
120
|
export function projectHyperliquidConfigSettings(
|
|
96
121
|
config: HyperliquidAccountConfig,
|
|
97
|
-
setup:
|
|
98
|
-
options: ProviderAction[]
|
|
122
|
+
setup: SetupAction[]
|
|
99
123
|
): AccountConfigSetting[] {
|
|
100
|
-
return
|
|
124
|
+
return setup.map((descriptor) =>
|
|
101
125
|
projectHyperliquidDescriptor(descriptor, config)
|
|
102
126
|
)
|
|
103
127
|
}
|
|
@@ -39,9 +39,10 @@ export async function hyperliquidSignActions(
|
|
|
39
39
|
)
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
const sign =
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
const sign =
|
|
43
|
+
ctx?.signer === PerpsSigner.USER
|
|
44
|
+
? await userWalletSigner(ctx)
|
|
45
|
+
: await agentSigner(agentStore, address)
|
|
45
46
|
|
|
46
47
|
return Promise.all(
|
|
47
48
|
(steps as Eip712ActionStep[]).map(
|