opentool 0.8.0 → 0.8.3
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 +1 -1
- package/dist/adapters/hyperliquid/index.d.ts +11 -2
- package/dist/adapters/hyperliquid/index.js +110 -8
- package/dist/adapters/hyperliquid/index.js.map +1 -1
- package/dist/cli/index.js +79 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +135 -23
- package/dist/index.js.map +1 -1
- package/dist/wallet/index.js +25 -15
- package/dist/wallet/index.js.map +1 -1
- package/package.json +3 -2
- package/templates/base/README.md +10 -0
- package/templates/base/metadata.ts +12 -0
- package/templates/base/package.json +23 -0
- package/templates/base/tools/aave-stake.ts +96 -0
- package/templates/base/tsconfig.json +14 -0
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ type ExchangeSignature = {
|
|
|
62
62
|
v: 27 | 28;
|
|
63
63
|
};
|
|
64
64
|
type HyperliquidExchangeResponse<T = unknown> = {
|
|
65
|
-
status:
|
|
65
|
+
status: string;
|
|
66
66
|
response?: {
|
|
67
67
|
type: string;
|
|
68
68
|
data?: T;
|
|
@@ -168,7 +168,16 @@ declare class HyperliquidExchangeClient {
|
|
|
168
168
|
token: string;
|
|
169
169
|
amount: string | number | bigint;
|
|
170
170
|
}): Promise<HyperliquidExchangeResponse<unknown>>;
|
|
171
|
+
setPortfolioMargin(params: {
|
|
172
|
+
enabled: boolean;
|
|
173
|
+
user?: `0x${string}`;
|
|
174
|
+
}): Promise<HyperliquidExchangeResponse<unknown>>;
|
|
171
175
|
}
|
|
176
|
+
declare function setHyperliquidPortfolioMargin(options: {
|
|
177
|
+
wallet: WalletFullContext;
|
|
178
|
+
enabled: boolean;
|
|
179
|
+
user?: `0x${string}`;
|
|
180
|
+
} & CommonActionOptions): Promise<HyperliquidExchangeResponse<unknown>>;
|
|
172
181
|
declare function cancelHyperliquidOrders(options: {
|
|
173
182
|
wallet: WalletFullContext;
|
|
174
183
|
cancels: CancelInput[];
|
|
@@ -411,4 +420,4 @@ declare const __hyperliquidInternals: {
|
|
|
411
420
|
splitSignature: typeof splitSignature;
|
|
412
421
|
};
|
|
413
422
|
|
|
414
|
-
export { HyperliquidApiError, type HyperliquidApproveBuilderFeeOptions, type HyperliquidApproveBuilderFeeResponse, HyperliquidBuilderApprovalError, type HyperliquidBuilderApprovalRecordInput, type HyperliquidBuilderFee, type HyperliquidClearinghouseState, type HyperliquidDepositResult, type HyperliquidEnvironment, HyperliquidExchangeClient, type HyperliquidExchangeResponse, type HyperliquidGrouping, HyperliquidGuardError, HyperliquidInfoClient, type HyperliquidOrderIntent, type HyperliquidOrderOptions, type HyperliquidOrderResponse, type HyperliquidOrderStatus, HyperliquidTermsError, type HyperliquidTermsRecordInput, type HyperliquidTriggerOptions, type HyperliquidTriggerType, type HyperliquidWithdrawResult, type NonceSource, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, scheduleHyperliquidCancel, sendHyperliquidSpot, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
423
|
+
export { HyperliquidApiError, type HyperliquidApproveBuilderFeeOptions, type HyperliquidApproveBuilderFeeResponse, HyperliquidBuilderApprovalError, type HyperliquidBuilderApprovalRecordInput, type HyperliquidBuilderFee, type HyperliquidClearinghouseState, type HyperliquidDepositResult, type HyperliquidEnvironment, HyperliquidExchangeClient, type HyperliquidExchangeResponse, type HyperliquidGrouping, HyperliquidGuardError, HyperliquidInfoClient, type HyperliquidOrderIntent, type HyperliquidOrderOptions, type HyperliquidOrderResponse, type HyperliquidOrderStatus, HyperliquidTermsError, type HyperliquidTermsRecordInput, type HyperliquidTriggerOptions, type HyperliquidTriggerType, type HyperliquidWithdrawResult, type NonceSource, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
@@ -307,6 +307,37 @@ async function signApproveBuilderFee(args) {
|
|
|
307
307
|
});
|
|
308
308
|
return splitSignature(signatureHex);
|
|
309
309
|
}
|
|
310
|
+
async function signUserPortfolioMargin(args) {
|
|
311
|
+
const { wallet, action } = args;
|
|
312
|
+
const domain = {
|
|
313
|
+
name: "HyperliquidSignTransaction",
|
|
314
|
+
version: "1",
|
|
315
|
+
chainId: Number.parseInt(action.signatureChainId, 16),
|
|
316
|
+
verifyingContract: ZERO_ADDRESS
|
|
317
|
+
};
|
|
318
|
+
const message = {
|
|
319
|
+
enabled: action.enabled,
|
|
320
|
+
hyperliquidChain: action.hyperliquidChain,
|
|
321
|
+
user: action.user,
|
|
322
|
+
nonce: BigInt(action.nonce)
|
|
323
|
+
};
|
|
324
|
+
const types = {
|
|
325
|
+
"HyperliquidTransaction:UserPortfolioMargin": [
|
|
326
|
+
{ name: "enabled", type: "bool" },
|
|
327
|
+
{ name: "hyperliquidChain", type: "string" },
|
|
328
|
+
{ name: "user", type: "address" },
|
|
329
|
+
{ name: "nonce", type: "uint64" }
|
|
330
|
+
]
|
|
331
|
+
};
|
|
332
|
+
const signatureHex = await wallet.walletClient.signTypedData({
|
|
333
|
+
account: wallet.account,
|
|
334
|
+
domain,
|
|
335
|
+
types,
|
|
336
|
+
primaryType: "HyperliquidTransaction:UserPortfolioMargin",
|
|
337
|
+
message
|
|
338
|
+
});
|
|
339
|
+
return splitSignature(signatureHex);
|
|
340
|
+
}
|
|
310
341
|
function splitSignature(signature) {
|
|
311
342
|
const cleaned = signature.slice(2);
|
|
312
343
|
const rHex = `0x${cleaned.slice(0, 64)}`;
|
|
@@ -507,7 +538,58 @@ var HyperliquidExchangeClient = class {
|
|
|
507
538
|
...params
|
|
508
539
|
});
|
|
509
540
|
}
|
|
541
|
+
setPortfolioMargin(params) {
|
|
542
|
+
const base = {
|
|
543
|
+
wallet: this.wallet,
|
|
544
|
+
enabled: params.enabled,
|
|
545
|
+
environment: this.environment,
|
|
546
|
+
vaultAddress: this.vaultAddress,
|
|
547
|
+
expiresAfter: this.expiresAfter,
|
|
548
|
+
nonceSource: this.nonceSource
|
|
549
|
+
};
|
|
550
|
+
return setHyperliquidPortfolioMargin(
|
|
551
|
+
params.user ? { ...base, user: params.user } : base
|
|
552
|
+
);
|
|
553
|
+
}
|
|
510
554
|
};
|
|
555
|
+
async function setHyperliquidPortfolioMargin(options) {
|
|
556
|
+
const env = options.environment ?? "mainnet";
|
|
557
|
+
if (!options.wallet?.account || !options.wallet.walletClient) {
|
|
558
|
+
throw new Error(
|
|
559
|
+
"Wallet with signing capability is required for portfolio margin."
|
|
560
|
+
);
|
|
561
|
+
}
|
|
562
|
+
const nonce = options.nonce ?? options.walletNonceProvider?.() ?? options.wallet.nonceSource?.() ?? options.nonceSource?.() ?? Date.now();
|
|
563
|
+
const signatureChainId = getSignatureChainId(env);
|
|
564
|
+
const hyperliquidChain = HL_CHAIN_LABEL[env];
|
|
565
|
+
const user = normalizeAddress(
|
|
566
|
+
options.user ?? options.wallet.address
|
|
567
|
+
);
|
|
568
|
+
const action = {
|
|
569
|
+
type: "userPortfolioMargin",
|
|
570
|
+
enabled: Boolean(options.enabled),
|
|
571
|
+
hyperliquidChain,
|
|
572
|
+
signatureChainId,
|
|
573
|
+
user,
|
|
574
|
+
nonce
|
|
575
|
+
};
|
|
576
|
+
const signature = await signUserPortfolioMargin({
|
|
577
|
+
wallet: options.wallet,
|
|
578
|
+
action
|
|
579
|
+
});
|
|
580
|
+
const body = {
|
|
581
|
+
action,
|
|
582
|
+
nonce,
|
|
583
|
+
signature
|
|
584
|
+
};
|
|
585
|
+
if (options.vaultAddress) {
|
|
586
|
+
body.vaultAddress = normalizeAddress(options.vaultAddress);
|
|
587
|
+
}
|
|
588
|
+
if (typeof options.expiresAfter === "number") {
|
|
589
|
+
body.expiresAfter = options.expiresAfter;
|
|
590
|
+
}
|
|
591
|
+
return postExchange(env, body);
|
|
592
|
+
}
|
|
511
593
|
async function cancelHyperliquidOrders(options) {
|
|
512
594
|
options.cancels.forEach((c) => assertSymbol(c.symbol));
|
|
513
595
|
const action = {
|
|
@@ -830,15 +912,35 @@ async function postExchange(env, body) {
|
|
|
830
912
|
headers: { "content-type": "application/json" },
|
|
831
913
|
body: JSON.stringify(body)
|
|
832
914
|
});
|
|
833
|
-
const
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
915
|
+
const text = await response.text().catch(() => "");
|
|
916
|
+
const json = (() => {
|
|
917
|
+
if (!text) return null;
|
|
918
|
+
try {
|
|
919
|
+
return JSON.parse(text);
|
|
920
|
+
} catch {
|
|
921
|
+
return null;
|
|
922
|
+
}
|
|
923
|
+
})();
|
|
924
|
+
if (!response.ok) {
|
|
925
|
+
throw new HyperliquidApiError("Hyperliquid exchange action failed.", {
|
|
926
|
+
status: response.status,
|
|
927
|
+
statusText: response.statusText,
|
|
928
|
+
body: json ?? (text ? text : null)
|
|
929
|
+
});
|
|
930
|
+
}
|
|
931
|
+
if (!json) {
|
|
932
|
+
throw new HyperliquidApiError("Hyperliquid exchange action failed.", {
|
|
933
|
+
status: response.status,
|
|
934
|
+
statusText: response.statusText,
|
|
935
|
+
body: text ? text : null
|
|
936
|
+
});
|
|
839
937
|
}
|
|
840
938
|
if (json.status !== "ok") {
|
|
841
|
-
throw new HyperliquidApiError("Hyperliquid exchange returned error.",
|
|
939
|
+
throw new HyperliquidApiError("Hyperliquid exchange returned error.", {
|
|
940
|
+
status: response.status,
|
|
941
|
+
statusText: response.statusText,
|
|
942
|
+
body: json
|
|
943
|
+
});
|
|
842
944
|
}
|
|
843
945
|
return json;
|
|
844
946
|
}
|
|
@@ -1406,6 +1508,6 @@ var __hyperliquidInternals = {
|
|
|
1406
1508
|
splitSignature
|
|
1407
1509
|
};
|
|
1408
1510
|
|
|
1409
|
-
export { HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, scheduleHyperliquidCancel, sendHyperliquidSpot, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
1511
|
+
export { HyperliquidApiError, HyperliquidBuilderApprovalError, HyperliquidExchangeClient, HyperliquidGuardError, HyperliquidInfoClient, HyperliquidTermsError, __hyperliquidInternals, approveHyperliquidBuilderFee, batchModifyHyperliquidOrders, cancelAllHyperliquidOrders, cancelHyperliquidOrders, cancelHyperliquidOrdersByCloid, cancelHyperliquidTwapOrder, createHyperliquidSubAccount, createMonotonicNonceFactory, depositToHyperliquidBridge, fetchHyperliquidAssetCtxs, fetchHyperliquidClearinghouseState, fetchHyperliquidFrontendOpenOrders, fetchHyperliquidHistoricalOrders, fetchHyperliquidMeta, fetchHyperliquidMetaAndAssetCtxs, fetchHyperliquidOpenOrders, fetchHyperliquidOrderStatus, fetchHyperliquidPreTransferCheck, fetchHyperliquidSpotAssetCtxs, fetchHyperliquidSpotClearinghouseState, fetchHyperliquidSpotMeta, fetchHyperliquidSpotMetaAndAssetCtxs, fetchHyperliquidUserFills, fetchHyperliquidUserFillsByTime, fetchHyperliquidUserRateLimit, getHyperliquidMaxBuilderFee, modifyHyperliquidOrder, placeHyperliquidOrder, placeHyperliquidTwapOrder, recordHyperliquidBuilderApproval, recordHyperliquidTermsAcceptance, reserveHyperliquidRequestWeight, scheduleHyperliquidCancel, sendHyperliquidSpot, setHyperliquidPortfolioMargin, transferHyperliquidSubAccount, updateHyperliquidIsolatedMargin, updateHyperliquidLeverage, withdrawFromHyperliquid };
|
|
1410
1512
|
//# sourceMappingURL=index.js.map
|
|
1411
1513
|
//# sourceMappingURL=index.js.map
|