@liqpro/liq-core

中文文档
0.83.0发布于 2026/11/02TypeScriptES Module零依赖

SDK基础-类型,枚举,EIP-712助手,链配置和Liq永久交换的合约地址。

中文使用文档
文档目录12 节
  1. 概述
  2. 主要出口
  3. 链配置
  4. Контур生产передеплоен (0.67.0)
  5. eip - 712
  6. 类型( src/types/ )
  7. 标记原语( src/primitives.ts )
  8. 价格( src/prices/ )
  9. Скобки позиции - positionBrackets(position, conditional) ( …
  10. Маржа ордера * аккаунта (* 0.67.0)
  11. 安装
  12. 构建

@liq /核心

SDK基础-类型,枚举,EIP-712助手,链配置和Liq永久交换的合约地址。

概述

@liq/core 是所有Liq SDK包共享的零框架基础层。它提供了规范的EIP-712域和订单类型定义、包含每个支持网络的合约地址的链配置、订单/职位/账户的共享TypeScript类型和枚举,以及品牌数字原语(Price, Qty, Usd, Margin)在整个系统中使用。唯一的运行时依赖项是 zod.

主要出口

链配置

  • getChainConfig(chainId) ——返回 ChainConfig (contracts, rpcUrl, subgraphUrl)用于给定链ID
  • getContractAddress(chainId, contract) -单个合同地址的快捷方式
  • ChainConfig -接口 PerpsMarketProxy, SynthetixCoreProxy, PerpsAccountProxy, SpotMarketProxy, OracleManagerProxy, TrustedMulticallForwarder, USDC, sUSDC

支持连锁店: MegaETH Testnet (chainId 6343)

Контур生产передеплоен (0.67.0)

Prod-контур пересобран нуля 2026-10-09 (snx-omnibus-megaeth-production:3-dev): все адресав liqChains[6343].production ,новыевключая PerpsMarketProxy ——это verifyingContract eip - 712。 Подписи ордеров под старым PerpsMarketProxy (0x330E5A38…) на новом контуре невалидны, окна совместимостинет:клиентобязанобновитьсядо0.67.0вместесшлюзом。Id тоже другие: susdcMarketId = 1 (было 3), perpsCoreMarketId = 3 (было 2);в collaterals 生产появился USDm (getCollateral(chain, 'USDm')), как *分期。Старый контур продолжает отвечать на цепи теми же рынками,поэтомуустаревшийадресвыглядитживымиломаетсятолькона«账户不拥有»или несовпадении домена eip-712。

eip - 712

  • EIP712_ORDER_TYPES 用于订单签名的类型数据模式
  • EIP712_DOMAIN_NAME / EIP712_DOMAIN_VERSION - - - - - - "PerpExchange" / "1"
  • buildEip712Domain(chainId, verifyingContract) -构建EIP-712域对象
  • buildLimitOrderMessage(params) -建立一个签名限价订单有效载荷
  • buildMarketOrderMessage(params) -建立一个已签署的市场订单有效载荷
  • buildConditionalOrderMessage(params) -构建一个签名的TP/SL/停止订单负载
  • ORDER_TYPE_INDEX -数字索引映射 OrderType 枚举值

类型(src/types/)

  • OrderType 枚举, MARKET, LIMIT, STOP_MARKET, STOP_LIMIT, TAKE_PROFIT_MARKET, TAKE_PROFIT_LIMIT
  • 订单、位置、帐户、填充、市场和API类型跨SDK包共享

标记原语(src/primitives.ts)

  • Price, Qty, Usd, Margin, Bps ——品牌 bigint 类型(18位小数)
  • 每个品牌:建设者, .parse(str), .fmt(val), .zod 模式, .mul() 算术

价格(src/prices/)

  • REDSTONE_FEEDS - RedStone在MegaETH测试网的推送地址(chainId 6343),按符号键
  • RedStoneFeedSymbol -进料符号类型;的钥匙 REDSTONE_FEEDS
  • REDSTONE_DECIMALS -每个红石饲料的小数(8)
  • isRedStoneFeedSymbol(value) -供料符号的类型保护
  • redstoneFeedAddress(feedId) -输入地址 Market.feedId 符号,或 undefined 当未知

Скобки позиции - positionBrackets(position, conditional) (src/positions/)

С 0.65.0 принимает позицию ({ marketId, size }), не рынок。Скобка - условный减少-只ордер этого рынка TRIGGER_PENDING настороне,закрывающейпозицию(удлинной——出售,укороткой-购买)。Нет позиции - нет скобок。 У каждой скобки size (подписанный размер, модулем effectiveSize = min(size, |position.size|) - столько она закроет:движокурезаетreduce-onlyдопозиции,ипослечастичногозакрытияпоказыватьнадо effectiveSize.

reduceOnlyLegs(position, orders) (src/positions/reduce-only-legs.ts, [0.666.0] - шире positionBrackets:все reduce-onlyордерапозицииназакрывающейстороне(TP / SLв TRIGGER_PENDING,отдыхающие LIMIT / STOP_LIMIT / TAKE_PROFIT_LIMIT в PENDING / PARTIALLY_FILLED), каждого effectiveSize = min(остаток, |position.size|); остаток- remainingSize, если его нет, то |sizeDelta|. Дубльпоid -первоевхождени,есвежийсписокпередают первым。Резервсматченных,нонерассчитанныхордеровнеучитывается。

GatewayOrder.reduceOnly ——с0.65.0втипе。Список ордеров шлюз отдавал r колонкой r раньше;одиночный orders.get(id) - только шлюза 0.65.0。

describeOrderOutcome называет снятие скобки вместе r позицией: position_closed, position_flipped, no_position,иотменуreduce-onlyлимитки,подкоторуюнеосталосьпозиции: reduce_only.

Маржа ордера * аккаунта (* 0.67.0)

validateOrder (src/order/validate.ts) судит доступность по требованию протокола。 Ломающееизменение: из OrderVerdictInput ушли available и marginCost,пришли requiredMargin и free (Margin | undefined)。 requiredMargin ——поле requiredMargin предпросмотра маржи ордера (getOrderMarginPreview в @liq/onchain, useOrderMarginPreview в @liq/react), free - - - - - - free шлюза(client.accounts.getMargin, useAccountMargin)。 Предупреждение exceeds-available-margin - когда оба известны requiredMargin > free;равенство не предупреждает。 Неизвестное- undefined, пока чтение не пришло; Margin(0n) вместо него не подставлять: 0n иотрицательный free - известные значения, они предупреждают。Это предупреждение, не блок: requiredMargin не включает убыток филла ,хужемаркакоторыйворотапротоколасписываютсдоступноймаржи,такчто requiredMargin <= free необходимо, но не достаточно;решаетшлюз。

const verdict = validateOrder({
    markPrice,
    sizeQty,
    minSize,
    leverage,
    maxLeverage,
    requiredMargin: preview?.requiredMargin,
    free: margin === undefined ? undefined : Margin(margin.free),
});

marginUsage({ requiredInitialMargin, available }) (src/margin/usage.ts) - доля начального требования доступной марже填料: getRequiredMargins(accountId)[0] (награда за ликвидацию уже внутри) на ончейн getAvailableMargin (уже за вычетом долга)。Нулевое требование - 0n;положительноепри available <= 0n - - - - - - undefined (подводой)。

marginCost (src/order/math.ts) - - -калькуляторразмерадляслайдераплеча(名义/杠杆),анемаржа; маржа ордера - requiredMargin предпросмотра。 draftLiquidationPrice - - - - - - @deprecated: * * кросс-позициями не сходится;оценка- estimatedLiquidationPrice предпросмотраили accountMargin(...).liquidationPriceFor.

安装

pnpm add @liq/core

构建

moon run liq-core:build    # tsup → dist/

版本与发布记录

@liqpro/liq-core 共发布 53 个版本,首次发布于 2026/06/14;过去 12 个月发布了 53 个版本。

版本发布日期距今
0.83.0latest2026/11/021 天前
0.80.02026/10/295 天前
0.79.02026/10/277 天前
0.78.02026/10/2410 天前
0.77.02026/10/2410 天前
0.74.02026/10/2112 天前

关于 @liqpro/liq-core 的常见问题

@liqpro/liq-core 是什么?

SDK基础-类型,枚举,EIP-712助手,链配置和Liq永久交换的合约地址。

如何安装 @liqpro/liq-core?

在项目目录运行 npm install @liqpro/liq-core,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zod(^4.0.0)、viem(^2.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@liqpro/liq-core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@liqpro/liq-core 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@liqpro/liq-core 可以商用吗?

@liqpro/liq-core 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@liqpro/liq-core 还在维护吗?

最新版本 0.83.0 发布于 2026/11/02(1 天前);至今共发布 53 个版本,其中过去 12 个月发布了 53 个;首次发布于 2026/06/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。