@liq / onchain
在线帮助Liq永久交换-存款,抵押品,账户,头寸,并通过视频结算。
概述
@liq/onchain 提供了 LiqOnchain 所有链上交互的farade和个人服务类别:存入USDC抵押品,管理SNX账户,读取未平仓头寸,并向Synthetix V3提交结算交易 PerpsMarketProxy. 它还导出规范契约abi。 signOrder (EIP-712)也出口,但只作为 @internal 交通为 @liq/react. 唯一的运行时依赖项是 @liq/core 和 viem.
主要出口
LiqOnchain (外观)
实例化和 OnchainConfig ({ chainId, walletClient, publicClient }). 公开:
| 财产 | 描述 |
|---|---|
.accounts | 创建SNX帐户NFTs,设置book模式 |
.collateral | 读可用+锁定边距 |
.deposit | USDC→sUSDC→修改侧枝流 |
.positions | 阅读PerpsMarketProxy的开放头寸 |
.delegate | 无气继电器读取:代表地址, state(user) |
.settlement | 呼叫 settleBookOrders() |
构建器(独立,不需要钱包)
DepositBuilder/WithdrawBuilder- - - - - -build(): TxPlan返回存款/取款步骤;每一步的forwarderSafeFlag表示它是否可以利用钱包发送者批次executeTypedData(chainId, user, { calls, nonce, deadline })- - -signTypedData中继批的参数claimFaucetCall(faucetAddress, token)-水龙头声称为一体PlanStep(forwarderSafe: false);由该计划使用的任何发件人发送,包括钱包onchain.deposit.repay(debtWei)——作为建造者的收回的腿build()返回一个TxPlan(WithdrawBuilder.afterRepay)tokenTransferPlan(token, amount, recipients)——一个TxPlan一个直接的ERC-20transfer每名收件人(forwarderSafe: false:transfer读取msg.sender);token是{ token, decimals }对一个getCollateral结果已经是,所以地址和它的小数不能漂移
发送计划
构造器只返回A TxPlan (readonly PlanStep[]);将其转换为交易是发送者的工作,在呼叫现场选择:
executePlan(plan, { sender, publicClient })-一组一组地发送计划,等待每个收据,停在第一个没有到达的walletSender(config)-批量一个连续的forwarderSafe一连串的步骤汇成一个TrustedMulticallForwarder.aggregate3调用;有标记的台阶forwarderSafe: false(一个裸露的ERC-20approve)作为自己的事务relaySender(config)-将整个计划作为一个整体发送Delegate7702.execute批量通过无气继电器(ADR-0063)landedOrThrow(outcome, what)-结果作为投掷:返回LandedTx[]当计划落地,抛出PlanRevertedError(或发送方/传输方自己的错误)否则
签署
signOrder 仅作为 @internal 交通为 @liq/react的 useOrderSubmission;它不是一个稳定的API (ADR-0012, 0.62.0更新)。
abi
perpsMarketProxyAbi,perpsAccountProxyAbi,bookOrderModuleAbispotMarketProxyAbi,trustedMulticallForwarderAbi,isolatedMarginManagerAbi,erc20Abi- 遗留的别名:
PERPS_MARKET_PROXY_ABI,ERC20_ABI
甲骨文助手
OnchainMarketsService.getChainlinkFeedAddress(nodeId)-解析价格节点的Chainlink-type (RedStone) feed地址,或者null当节点不是类型3时
链助手
getViemChain(chainId)-返回视频Chain对象来获取给定的链ID
安装
pnpm add @liq/onchain
依赖关系
@liq/core-链配置,合约地址,共享类型viem-链上交互(读写合约,钱包客户端)
构建
moon run liq-onchain:build # tsup → dist/