/
ikratkiy
/
Hyperliquid
Обзор
Документация
Войти
/
ikratkiy
/
Hyperliquid
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/shared/hyperliquid/examples.test.ts
79 строк
2 KB
ikratkiy
feat(spot): add fail-closed reconciliation contracts
15 июл 2026, 02:22
15 июл 2026, 02:22
eb972fb
Код
Авторство
О чём код?
import { describe, expect, test } from "vitest"; import { getHyperliquidExample, hyperliquidExamples } from "./examples"; const requiredExamples = [ "allMids", "spotMetaAndAssetCtxs", "l2Book", "recentTrades", "spotClearinghouseState", "userRateLimit", "orderAction", "orderAccepted", "orderRejected", "usdSendAction", "spotSendAction", "withdraw3Action", "transferAccepted", "unitBtcDepositAddress", "unitOperations", "sendToEvmWithDataAction", ] as const; describe("Hyperliquid response examples", () => { test("contains every example required by the playbook tabs", () => { for (const key of requiredExamples) { expect(hyperliquidExamples[key]).toBeTruthy(); expect(hyperliquidExamples[key].label).toBeTruthy(); expect(JSON.parse(hyperliquidExamples[key].json)).toBeDefined(); } }); test("returns examples through a stable lookup helper", () => { expect(getHyperliquidExample("allMids").label).toBe("allMids"); expect(getHyperliquidExample("orderRejected").json).toContain("Order must have minimum value"); }); test("uses the live canonical USDC metadata contract in the spot example", () => { const [metadata] = JSON.parse(getHyperliquidExample("spotMetaAndAssetCtxs").json) as [ { tokens: Array<Record<string, unknown>> }, unknown, ]; const usdc = metadata.tokens.find((token) => token.name === "USDC"); expect(usdc).toMatchObject({ szDecimals: 8, weiDecimals: 8, index: 0, tokenId: "0x6d1e7cde53ba9467b783cb7c530ce054", isCanonical: true, fullName: null, evmContract: { address: "0x6b9e773128f453f5c2c60935ee2de2cbc5390a24", evm_extra_wei_decimals: -2, }, deployerTradingFeeShare: "0.0", }); const ubtc = metadata.tokens.find((token) => token.name === "UBTC"); expect(ubtc).toMatchObject({ tokenId: "0x8f254b963e8468305d409b33aa137c67", evmContract: { address: "0x9fdbda0a5e284c32744d2f17ee5c74b284993463", evm_extra_wei_decimals: -2, }, deployerTradingFeeShare: "1.0", }); }); test("uses c rather than cloid in the order wire contract", () => { const action = JSON.parse(getHyperliquidExample("orderAction").json) as { orders: Array<Record<string, unknown>>; }; expect(action.orders[0]).toMatchObject({ c: "0x00000000000000000000000000000001", }); expect(action.orders[0]).not.toHaveProperty("cloid"); }); });