@yuants/vendor-hyperliquid 0.3.37 → 0.3.38
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/order.js +6 -11
- package/dist/order.js.map +1 -1
- package/lib/order.js +6 -11
- package/lib/order.js.map +1 -1
- package/package.json +1 -1
- package/temp/package-deps.json +4 -4
package/dist/order.js
CHANGED
|
@@ -96,17 +96,12 @@ terminal.server.provideService('SubmitOrder', {
|
|
|
96
96
|
const s = `${order.volume}`;
|
|
97
97
|
const r = order.order_direction === 'CLOSE_LONG' || order.order_direction === 'CLOSE_SHORT';
|
|
98
98
|
// other method
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
: {
|
|
106
|
-
limit: {
|
|
107
|
-
tif: 'Gtc',
|
|
108
|
-
},
|
|
109
|
-
};
|
|
99
|
+
const tif = order.order_type === 'MARKET' ? 'Ioc' : order.order_type === 'MAKER' ? 'Alo' : 'Gtc';
|
|
100
|
+
const t = {
|
|
101
|
+
limit: {
|
|
102
|
+
tif,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
110
105
|
const params = {
|
|
111
106
|
orders: [
|
|
112
107
|
{
|
package/dist/order.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOrder } from '@yuants/data-order';\nimport { Terminal } from '@yuants/protocol';\nimport { formatTime } from '@yuants/utils';\nimport { client } from './api';\n\nconst terminal = Terminal.fromNodeEnv();\n\n/**\n * Round price according to Hyperliquid rules:\n * - Max 5 significant figures\n * - Max decimal places = MAX_DECIMALS - szDecimals (6 for perps, 8 for spot)\n * - Integer prices are always allowed regardless of significant figures\n */\nconst roundPrice = (price: number, instType: 'PERPETUAL' | 'SPOT', szDecimals: number): string => {\n const MAX_DECIMALS = instType === 'PERPETUAL' ? 6 : 8;\n const maxDecimalPlaces = MAX_DECIMALS - szDecimals;\n\n // Convert to string to work with precision\n const priceStr = price.toString();\n\n // Check if it's an integer\n if (Number.isInteger(price)) {\n return priceStr;\n }\n\n // Get significant figures count\n const significantFigures = priceStr.replace(/^0+\\.?0*/, '').replace(/\\./g, '').length;\n\n // If more than 5 significant figures, round to 5\n let roundedPrice = price;\n if (significantFigures > 5) {\n // Find the position of the first non-zero digit\n const firstNonZeroIndex = priceStr.match(/[1-9]/)?.index || 0;\n const decimalIndex = priceStr.indexOf('.');\n\n if (decimalIndex === -1) {\n // Integer case - round to 5 significant figures\n const magnitude = Math.floor(Math.log10(Math.abs(price)));\n const factor = Math.pow(10, magnitude - 4); // 5 significant figures\n roundedPrice = Math.round(price / factor) * factor;\n } else {\n // Decimal case\n const beforeDecimal = priceStr.substring(0, decimalIndex);\n const afterDecimal = priceStr.substring(decimalIndex + 1);\n\n if (beforeDecimal !== '0') {\n // Has integer part\n const integerDigits = beforeDecimal.length;\n const neededDecimalDigits = Math.max(0, 5 - integerDigits);\n roundedPrice = parseFloat(price.toFixed(neededDecimalDigits));\n } else {\n // Pure decimal (0.xxxx)\n const leadingZeros = afterDecimal.match(/^0*/)?.[0].length || 0;\n const precision = leadingZeros + 5;\n roundedPrice = parseFloat(price.toFixed(precision));\n }\n }\n }\n\n // Apply decimal places limit\n const finalPrice = parseFloat(roundedPrice.toFixed(maxDecimalPlaces));\n\n return finalPrice.toString();\n};\n\nterminal.server.provideService<IOrder>(\n 'SubmitOrder',\n {\n required: ['account_id'],\n properties: {\n account_id: { const: `Hyperliquid/${client.public_key}` },\n },\n },\n async (msg) => {\n console.info(formatTime(Date.now()), 'SubmitOrder', JSON.stringify(msg));\n const order = msg.req;\n\n const [instType, symbol] = order.product_id.split('/');\n const baseCurrency = symbol.split('-')[0];\n\n const mapBaseCurrencyToAssetId: Record<string, number> = {};\n const mapBaseCurrencyToSzDecimals: Record<string, number> = {};\n\n if (instType === 'PERPETUAL') {\n const meta = await client.getPerpetualsMetaData();\n for (let i = 0; i < meta.universe.length; i++) {\n const token = meta.universe[i];\n mapBaseCurrencyToAssetId[token.name] = i;\n mapBaseCurrencyToSzDecimals[token.name] = token.szDecimals;\n }\n } else if (instType === 'SPOT') {\n const meta = await client.getSpotMetaData();\n for (const token of meta.tokens) {\n mapBaseCurrencyToAssetId[token.name] = token.index;\n mapBaseCurrencyToSzDecimals[token.name] = token.szDecimals;\n }\n }\n\n const a = mapBaseCurrencyToAssetId[baseCurrency];\n const szDecimals = mapBaseCurrencyToSzDecimals[baseCurrency];\n const b = order.order_direction === 'OPEN_LONG' || order.order_direction === 'CLOSE_SHORT';\n\n let price = `${order.price}`;\n if (order.order_type === 'MARKET') {\n const allMids = await client.getAllMids();\n const midPrice = +allMids[baseCurrency];\n price = `${b ? (1 + 0.05) * midPrice : (1 - 0.05) * midPrice}`;\n }\n price = roundPrice(+price, instType as 'PERPETUAL' | 'SPOT', szDecimals);\n\n const p = `${price}`;\n const s = `${order.volume}`;\n const r = order.order_direction === 'CLOSE_LONG' || order.order_direction === 'CLOSE_SHORT';\n // other method\n const tif = order.order_type === 'MARKET' ? 'Ioc' : order.order_type === 'MAKER' ? 'Alo' : 'Gtc';\n const t = {\n limit: {\n tif,\n },\n };\n const params = {\n orders: [\n {\n a,\n b,\n p,\n s,\n r,\n t,\n },\n ],\n };\n\n const res = await client.placeOrder(params);\n console.info(formatTime(Date.now()), 'SubmitOrder', JSON.stringify(res));\n return {\n res: {\n code: res.status === 'ok' && res.response.data.statuses[0]?.error === undefined ? 0 : 1,\n message: res.status !== 'ok' ? 'API ERROR' : res.response.data.statuses[0]?.error || 'OK',\n },\n };\n },\n);\n"]}
|
package/lib/order.js
CHANGED
|
@@ -98,17 +98,12 @@ terminal.server.provideService('SubmitOrder', {
|
|
|
98
98
|
const s = `${order.volume}`;
|
|
99
99
|
const r = order.order_direction === 'CLOSE_LONG' || order.order_direction === 'CLOSE_SHORT';
|
|
100
100
|
// other method
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
: {
|
|
108
|
-
limit: {
|
|
109
|
-
tif: 'Gtc',
|
|
110
|
-
},
|
|
111
|
-
};
|
|
101
|
+
const tif = order.order_type === 'MARKET' ? 'Ioc' : order.order_type === 'MAKER' ? 'Alo' : 'Gtc';
|
|
102
|
+
const t = {
|
|
103
|
+
limit: {
|
|
104
|
+
tif,
|
|
105
|
+
},
|
|
106
|
+
};
|
|
112
107
|
const params = {
|
|
113
108
|
orders: [
|
|
114
109
|
{
|
package/lib/order.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOrder } from '@yuants/data-order';\nimport { Terminal } from '@yuants/protocol';\nimport { formatTime } from '@yuants/utils';\nimport { client } from './api';\n\nconst terminal = Terminal.fromNodeEnv();\n\n/**\n * Round price according to Hyperliquid rules:\n * - Max 5 significant figures\n * - Max decimal places = MAX_DECIMALS - szDecimals (6 for perps, 8 for spot)\n * - Integer prices are always allowed regardless of significant figures\n */\nconst roundPrice = (price: number, instType: 'PERPETUAL' | 'SPOT', szDecimals: number): string => {\n const MAX_DECIMALS = instType === 'PERPETUAL' ? 6 : 8;\n const maxDecimalPlaces = MAX_DECIMALS - szDecimals;\n\n // Convert to string to work with precision\n const priceStr = price.toString();\n\n // Check if it's an integer\n if (Number.isInteger(price)) {\n return priceStr;\n }\n\n // Get significant figures count\n const significantFigures = priceStr.replace(/^0+\\.?0*/, '').replace(/\\./g, '').length;\n\n // If more than 5 significant figures, round to 5\n let roundedPrice = price;\n if (significantFigures > 5) {\n // Find the position of the first non-zero digit\n const firstNonZeroIndex = priceStr.match(/[1-9]/)?.index || 0;\n const decimalIndex = priceStr.indexOf('.');\n\n if (decimalIndex === -1) {\n // Integer case - round to 5 significant figures\n const magnitude = Math.floor(Math.log10(Math.abs(price)));\n const factor = Math.pow(10, magnitude - 4); // 5 significant figures\n roundedPrice = Math.round(price / factor) * factor;\n } else {\n // Decimal case\n const beforeDecimal = priceStr.substring(0, decimalIndex);\n const afterDecimal = priceStr.substring(decimalIndex + 1);\n\n if (beforeDecimal !== '0') {\n // Has integer part\n const integerDigits = beforeDecimal.length;\n const neededDecimalDigits = Math.max(0, 5 - integerDigits);\n roundedPrice = parseFloat(price.toFixed(neededDecimalDigits));\n } else {\n // Pure decimal (0.xxxx)\n const leadingZeros = afterDecimal.match(/^0*/)?.[0].length || 0;\n const precision = leadingZeros + 5;\n roundedPrice = parseFloat(price.toFixed(precision));\n }\n }\n }\n\n // Apply decimal places limit\n const finalPrice = parseFloat(roundedPrice.toFixed(maxDecimalPlaces));\n\n return finalPrice.toString();\n};\n\nterminal.server.provideService<IOrder>(\n 'SubmitOrder',\n {\n required: ['account_id'],\n properties: {\n account_id: { const: `Hyperliquid/${client.public_key}` },\n },\n },\n async (msg) => {\n console.info(formatTime(Date.now()), 'SubmitOrder', JSON.stringify(msg));\n const order = msg.req;\n\n const [instType, symbol] = order.product_id.split('/');\n const baseCurrency = symbol.split('-')[0];\n\n const mapBaseCurrencyToAssetId: Record<string, number> = {};\n const mapBaseCurrencyToSzDecimals: Record<string, number> = {};\n\n if (instType === 'PERPETUAL') {\n const meta = await client.getPerpetualsMetaData();\n for (let i = 0; i < meta.universe.length; i++) {\n const token = meta.universe[i];\n mapBaseCurrencyToAssetId[token.name] = i;\n mapBaseCurrencyToSzDecimals[token.name] = token.szDecimals;\n }\n } else if (instType === 'SPOT') {\n const meta = await client.getSpotMetaData();\n for (const token of meta.tokens) {\n mapBaseCurrencyToAssetId[token.name] = token.index;\n mapBaseCurrencyToSzDecimals[token.name] = token.szDecimals;\n }\n }\n\n const a = mapBaseCurrencyToAssetId[baseCurrency];\n const szDecimals = mapBaseCurrencyToSzDecimals[baseCurrency];\n const b = order.order_direction === 'OPEN_LONG' || order.order_direction === 'CLOSE_SHORT';\n\n let price = `${order.price}`;\n if (order.order_type === 'MARKET') {\n const allMids = await client.getAllMids();\n const midPrice = +allMids[baseCurrency];\n price = `${b ? (1 + 0.05) * midPrice : (1 - 0.05) * midPrice}`;\n }\n price = roundPrice(+price, instType as 'PERPETUAL' | 'SPOT', szDecimals);\n\n const p = `${price}`;\n const s = `${order.volume}`;\n const r = order.order_direction === 'CLOSE_LONG' || order.order_direction === 'CLOSE_SHORT';\n // other method\n const tif = order.order_type === 'MARKET' ? 'Ioc' : order.order_type === 'MAKER' ? 'Alo' : 'Gtc';\n const t = {\n limit: {\n tif,\n },\n };\n const params = {\n orders: [\n {\n a,\n b,\n p,\n s,\n r,\n t,\n },\n ],\n };\n\n const res = await client.placeOrder(params);\n console.info(formatTime(Date.now()), 'SubmitOrder', JSON.stringify(res));\n return {\n res: {\n code: res.status === 'ok' && res.response.data.statuses[0]?.error === undefined ? 0 : 1,\n message: res.status !== 'ok' ? 'API ERROR' : res.response.data.statuses[0]?.error || 'OK',\n },\n };\n },\n);\n"]}
|
package/package.json
CHANGED
package/temp/package-deps.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
"apps/vendor-hyperliquid/CHANGELOG.json": "
|
|
3
|
-
"apps/vendor-hyperliquid/CHANGELOG.md": "
|
|
2
|
+
"apps/vendor-hyperliquid/CHANGELOG.json": "1e7806c31601589db1b78622ae0273c7f193ddea",
|
|
3
|
+
"apps/vendor-hyperliquid/CHANGELOG.md": "ced7eb2943a51e0d1171ba3c35429945668919eb",
|
|
4
4
|
"apps/vendor-hyperliquid/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
|
|
5
5
|
"apps/vendor-hyperliquid/config/jest.config.json": "4bb17bde3ee911163a3edb36a6eb71491d80b1bd",
|
|
6
6
|
"apps/vendor-hyperliquid/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
|
|
7
7
|
"apps/vendor-hyperliquid/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
|
|
8
8
|
"apps/vendor-hyperliquid/etc/vendor-hyperliquid.api.md": "66675bd88afa1fe945f0d4023984c1c9c3e60a34",
|
|
9
|
-
"apps/vendor-hyperliquid/package.json": "
|
|
9
|
+
"apps/vendor-hyperliquid/package.json": "01651897419ea5131cc46b5a5485e0384bfa2ba5",
|
|
10
10
|
"apps/vendor-hyperliquid/src/api.ts": "041aa6e0e322b7c6ea5c822119c695b05d32295a",
|
|
11
11
|
"apps/vendor-hyperliquid/src/cli.ts": "9bf6b5559a6c6f33da20e74cc6c5d702c60ec891",
|
|
12
12
|
"apps/vendor-hyperliquid/src/index.ts": "3332583b64a96e0a1126b925a8f5a44a86454b90",
|
|
13
13
|
"apps/vendor-hyperliquid/src/interest_rate.ts": "5a4decdc2d18f7d711c5217840d6be9d04d926b2",
|
|
14
14
|
"apps/vendor-hyperliquid/src/ohlc.ts": "b1272944f0ffe8dd77ef9e7e39429efb7d2e5006",
|
|
15
|
-
"apps/vendor-hyperliquid/src/order.ts": "
|
|
15
|
+
"apps/vendor-hyperliquid/src/order.ts": "cddd5a233b5ebb391bad38c48fcefad3a368c226",
|
|
16
16
|
"apps/vendor-hyperliquid/src/product.ts": "1fd2995837e894004d9f8684b7e65cb8e85eaa66",
|
|
17
17
|
"apps/vendor-hyperliquid/src/sign.ts": "94f4e5604a01d197d164b42415b17789ab2b6889",
|
|
18
18
|
"apps/vendor-hyperliquid/tsconfig.json": "81da8f78196974b5d15da0edb6b2d9f48641063c",
|