Skip to content

Commit e1b2cf8

Browse files
committed
chore: adding result types
1 parent ff6dc5a commit e1b2cf8

22 files changed

+102
-77
lines changed

packages/apps/ability-hyperliquid/src/generated/lit-action.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"ipfsCid": "QmTE5cjdcMp8teZyni4D6SA9LVsSsH2HuKwfwQpUskqG8E"
2+
"ipfsCid": "QmdFLepEXEa4E25yZGbiVdM6UEHoKNxmqt9MefDwy4H3EC"
33
}

packages/apps/ability-hyperliquid/src/lib/ability-checks/deposit.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
import { ethers } from 'ethers';
22
import { ERC20_ABI } from '@lit-protocol/vincent-ability-sdk';
33

4-
import {
5-
ARBITRUM_USDC_ADDRESS_MAINNET,
6-
ARBITRUM_USDC_ADDRESS_TESTNET,
7-
DepositPrechecksResult,
8-
} from '../types';
4+
import { ARBITRUM_USDC_ADDRESS_MAINNET, ARBITRUM_USDC_ADDRESS_TESTNET } from '../types';
5+
6+
export type DepositPrechecksResult = DepositPrechecksResultSuccess | DepositPrechecksResultFailure;
7+
8+
export interface DepositPrechecksResultSuccess {
9+
success: true;
10+
balance: string;
11+
}
12+
13+
export interface DepositPrechecksResultFailure {
14+
success: false;
15+
reason: string;
16+
balance: string;
17+
}
918

1019
export const depositPrechecks = async ({
1120
provider,

packages/apps/ability-hyperliquid/src/lib/ability-helpers/cancel-order/cancel-all-orders.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
11
import * as hyperliquid from '@nktkas/hyperliquid';
22
import { SymbolConverter } from '@nktkas/hyperliquid/utils';
3-
import { CancelRequest, parser } from '@nktkas/hyperliquid/api/exchange';
3+
import { CancelRequest, CancelResponse, parser } from '@nktkas/hyperliquid/api/exchange';
44
import { signL1Action } from '@nktkas/hyperliquid/signing';
5-
import { bigIntReplacer } from '@lit-protocol/vincent-ability-sdk';
65

76
import { LitActionPkpEthersWallet } from '../lit-action-pkp-ethers-wallet';
87

8+
export type CancelAllOrdersResult = CancelAllOrdersResultSuccess | CancelAllOrdersResultFailure;
9+
10+
export interface CancelAllOrdersResultSuccess {
11+
status: 'success';
12+
cancelResult: CancelResponse;
13+
}
14+
15+
export interface CancelAllOrdersResultFailure {
16+
status: 'error';
17+
reason: string;
18+
}
19+
920
/**
1021
* Cancel all open spot orders for a specific symbol
1122
*/
@@ -19,7 +30,7 @@ export async function cancelAllOrdersForSymbol({
1930
pkpPublicKey: string;
2031
symbol: string;
2132
useTestnet?: boolean;
22-
}) {
33+
}): Promise<CancelAllOrdersResult> {
2334
// Get converter for symbol to asset ID
2435
const converter = await SymbolConverter.create({ transport });
2536
const assetId = converter.getAssetId(symbol);
@@ -94,6 +105,6 @@ export async function cancelAllOrdersForSymbol({
94105

95106
return {
96107
status: 'success',
97-
cancelResult: parsedCancelResult.result as Record<string, unknown>,
108+
cancelResult: parsedCancelResult.result as CancelResponse,
98109
};
99110
}

packages/apps/ability-hyperliquid/src/lib/ability-helpers/cancel-order/cancel-order.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as hyperliquid from '@nktkas/hyperliquid';
22
import { SymbolConverter } from '@nktkas/hyperliquid/utils';
3-
import { CancelRequest, parser } from '@nktkas/hyperliquid/api/exchange';
3+
import { CancelRequest, CancelResponse, parser } from '@nktkas/hyperliquid/api/exchange';
44
import { signL1Action } from '@nktkas/hyperliquid/signing';
55
import { bigIntReplacer } from '@lit-protocol/vincent-ability-sdk';
66

@@ -11,6 +11,18 @@ export interface CancelSpotOrderParams {
1111
orderId: number; // Order ID to cancel
1212
}
1313

14+
export type CancelOrderResult = CancelOrderResultSuccess | CancelOrderResultFailure;
15+
16+
export interface CancelOrderResultSuccess {
17+
status: 'success';
18+
cancelResult: CancelResponse;
19+
}
20+
21+
export interface CancelOrderResultFailure {
22+
status: 'error';
23+
reason: string;
24+
}
25+
1426
/**
1527
* Cancel a specific spot order on Hyperliquid
1628
*/
@@ -24,7 +36,7 @@ export async function cancelOrder({
2436
pkpPublicKey: string;
2537
params: CancelSpotOrderParams;
2638
useTestnet?: boolean;
27-
}) {
39+
}): Promise<CancelOrderResult> {
2840
// Get converter for symbol to asset ID
2941
const converter = await SymbolConverter.create({ transport });
3042
const assetId = converter.getAssetId(params.symbol);
@@ -95,6 +107,6 @@ export async function cancelOrder({
95107

96108
return {
97109
status: 'success',
98-
cancelResult: parsedCancelResult.result as Record<string, unknown>,
110+
cancelResult: parsedCancelResult.result as CancelResponse,
99111
};
100112
}

packages/apps/ability-hyperliquid/src/lib/ability-helpers/execute-perp-order.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import * as hyperliquid from '@nktkas/hyperliquid';
22
import { SymbolConverter } from '@nktkas/hyperliquid/utils';
3-
import { OrderRequest, UpdateLeverageRequest, parser } from '@nktkas/hyperliquid/api/exchange';
3+
import {
4+
OrderRequest,
5+
OrderResponse,
6+
UpdateLeverageRequest,
7+
parser,
8+
} from '@nktkas/hyperliquid/api/exchange';
49
import { signL1Action } from '@nktkas/hyperliquid/signing';
510
import { bigIntReplacer } from '@lit-protocol/vincent-ability-sdk';
611

@@ -36,6 +41,18 @@ export interface PerpTradeParams {
3641
};
3742
}
3843

44+
export type PerpOrderResult = PerpOrderResultSuccess | PerpOrderResultFailure;
45+
46+
export interface PerpOrderResultSuccess {
47+
status: 'success';
48+
orderResult: OrderResponse;
49+
}
50+
51+
export interface PerpOrderResultFailure {
52+
status: 'error';
53+
error: string;
54+
}
55+
3956
/**
4057
* Execute a perpetual trade on Hyperliquid
4158
*/
@@ -49,7 +66,7 @@ export async function executePerpOrder({
4966
pkpPublicKey: string;
5067
params: PerpTradeParams;
5168
useTestnet?: boolean;
52-
}) {
69+
}): Promise<PerpOrderResult> {
5370
// Get converter for symbol to asset ID
5471
const converter = await SymbolConverter.create({ transport });
5572
const assetId = converter.getAssetId(params.symbol);
@@ -178,6 +195,6 @@ export async function executePerpOrder({
178195

179196
return {
180197
status: 'success',
181-
orderResult: parsedOrderResult.result as Record<string, unknown>,
198+
orderResult: parsedOrderResult.result as OrderResponse,
182199
};
183200
}

packages/apps/ability-hyperliquid/src/lib/ability-helpers/execute-spot-order.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as hyperliquid from '@nktkas/hyperliquid';
22
import { SymbolConverter } from '@nktkas/hyperliquid/utils';
3-
import { OrderRequest, parser } from '@nktkas/hyperliquid/api/exchange';
3+
import { OrderRequest, OrderResponse, parser } from '@nktkas/hyperliquid/api/exchange';
44
import { signL1Action } from '@nktkas/hyperliquid/signing';
55
import { bigIntReplacer } from '@lit-protocol/vincent-ability-sdk';
66

@@ -22,6 +22,18 @@ export interface SpotTradeParams {
2222
orderType?: { type: 'limit'; tif: TimeInForce } | { type: 'market' };
2323
}
2424

25+
export type SpotOrderResult = SpotOrderResultSuccess | SpotOrderResultFailure;
26+
27+
export interface SpotOrderResultSuccess {
28+
status: 'success';
29+
orderResult: OrderResponse;
30+
}
31+
32+
export interface SpotOrderResultFailure {
33+
status: 'error';
34+
error: string;
35+
}
36+
2537
/**
2638
* Execute a spot trade on Hyperliquid
2739
*/
@@ -35,7 +47,7 @@ export async function executeSpotOrder({
3547
pkpPublicKey: string;
3648
params: SpotTradeParams;
3749
useTestnet?: boolean;
38-
}) {
50+
}): Promise<SpotOrderResult> {
3951
// Get converter for symbol to asset ID
4052
const converter = await SymbolConverter.create({ transport });
4153
const assetId = converter.getAssetId(params.symbol);
@@ -120,6 +132,6 @@ export async function executeSpotOrder({
120132

121133
return {
122134
status: 'success',
123-
orderResult: parsedOrderResult.result as Record<string, unknown>,
135+
orderResult: parsedOrderResult.result as OrderResponse,
124136
};
125137
}

packages/apps/ability-hyperliquid/src/lib/ability-helpers/send-deposit-tx.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,6 @@ import { populateTransaction, sponsoredGasRawTransaction } from '@lit-protocol/v
33

44
import { signTx } from './sign-tx';
55

6-
declare const Lit: {
7-
Actions: {
8-
runOnce: (
9-
params: {
10-
waitForResponse: boolean;
11-
name: string;
12-
},
13-
callback: () => Promise<string>,
14-
) => Promise<string>;
15-
};
16-
};
17-
186
export const sendDepositTx = async ({
197
rpcUrl,
208
chainId,

packages/apps/ability-hyperliquid/src/lib/ability-helpers/sign-tx.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
import { ethers } from 'ethers';
22

3-
declare const Lit: {
4-
Actions: {
5-
signAndCombineEcdsa: (params: {
6-
toSign: Uint8Array;
7-
publicKey: string;
8-
sigName: string;
9-
}) => Promise<string>;
10-
};
11-
};
12-
133
export const signTx = async (
144
pkpPublicKey: string,
155
tx: ethers.UnsignedTransaction,

packages/apps/ability-hyperliquid/src/lib/ability-helpers/transfer-usdc-to.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import * as hyperliquid from '@nktkas/hyperliquid';
22
import {
33
UsdClassTransferRequest,
44
UsdClassTransferTypes,
5+
SuccessResponse,
56
parser,
67
} from '@nktkas/hyperliquid/api/exchange';
78
import { signUserSignedAction } from '@nktkas/hyperliquid/signing';
@@ -10,6 +11,10 @@ import { bigIntReplacer } from '@lit-protocol/vincent-ability-sdk';
1011

1112
import { LitActionPkpEthersWallet } from './lit-action-pkp-ethers-wallet';
1213

14+
export type TransferUsdcResult = {
15+
transferResult: SuccessResponse;
16+
};
17+
1318
/**
1419
* Transfer funds between spot and perpetuals accounts on Hyperliquid
1520
*/
@@ -25,7 +30,7 @@ export async function transferUsdcTo({
2530
amount: string;
2631
to: 'spot' | 'perp';
2732
useTestnet?: boolean;
28-
}) {
33+
}): Promise<TransferUsdcResult> {
2934
if (to !== 'spot' && to !== 'perp') {
3035
throw new Error(
3136
'[transferUsdcTo] Invalid transfer destination. Must be either "spot" or "perp".',
@@ -86,6 +91,6 @@ export async function transferUsdcTo({
8691

8792
const parsedTransferResult = JSON.parse(transferResult);
8893
return {
89-
transferResult: parsedTransferResult.result as Record<string, unknown>,
94+
transferResult: parsedTransferResult.result as SuccessResponse,
9095
};
9196
}

0 commit comments

Comments
 (0)