Lighter订单为何取消或多扣费用:核整数输入、执行属性和账户费档
链小知 · 进阶 · 核验 · 依官方文档整理
从原订单/成交材料区分价格精度、IOC/Post-Only/Reduce-Only、自成交取消与Standard/Plus/Premium成本。
开始前准备
- 准备原环境/account index、market index、订单/客户键、base_amount/price及精度材料、类型/执行属性、已提供成交与取消原因、账户费档、实际maker/taker角色和费用。
- 只静读当前官方方法与原记录,不安装SDK、调用API、改tier/key、签名或重发。Get Started示例不代表任意当前主网精度;Contract Specifications仍标测试网络。
1. 核环境、账户和原订单身份
使用API Get Started段对原account_index、market_index、client_order_index和平台order_index逐项核对。client_order_index由用户提供作订单关联;取消/修改例使用order_index,必须有原材料中的对应关系,不把示例1234当每个订单的真实ID。
同L1地址下主/子账户index不同;API key又绑定特定账户并有独立nonce。注册key与读取资料不是同一权限,签名后还要发送才进入流程,而SDK create_order会连发送一起做。原排错材料缺映射或权限结果时,先列缺口,不运行示例。
检查结果:环境、账户、市场、客户键与平台订单键有映射,签名/发送与读取阶段分开。
2. 按原市场精度解码整数价格与数量
Get Started明确base_amount、price为整数,要结合原市场的价格/数量小数位,而非ERC20 decimals。例在数量4位、价格2位前提下,base_amount=100代表0.01单位,price=290000代表2900报价单位;这只是条件算术,不把示例market_index=0推广到当前所有ETH市场。
用原orderBookDetails或当时规格材料核precision,再与界面输入/已提供成交数量比较。官方Contract Specifications开头写Test Network,表中Amount Step/Price Step和Margin比例是不同列;不能拿那张测试表填补本人主网缺少的参数。
检查结果:原整数、精度、数量及报价币种一致,缺主网参数未硬套示例或测试表。
3. 检查类型、有效期与撤单条件
对原Limit/Market和执行属性逐项看:Post-Only在放单时交叉会被取消;IOC不把未立即成交余量挂到book;GTT到期取消;Reduce-Only超过原仓位可部分成交,到零后剩余取消。触发止盈止损看mark price,触发本身不保证全部填单。
再核自成交:默认把resting maker整单取消,incoming仍可继续成交其他对手;原订单显式指定其他模式时不能套默认。若取消与别处成交同时存在,保留原成交明细,不把取消标签解释成这次操作没有任何交易。
检查结果:原类型、期限、reduce-only及自成交属性能解释取消/部分成交,未把触发或撤余量当全额完成。
4. 分清撮合角色、账户费档与延迟
当前Fees分别列Standard、Plus、Premium。Standard maker/taker=0,但taker和cancel/modify延迟300ms;Plus maker/taker=0.5bps,即0.005%;Premium未质押例maker0.0040%/taker0.0280%,taker140ms且post-only放单/取消无额外延迟。按原执行时点费档和实际maker/taker角色核,不能从Limit名字直接判maker。
Premium折扣按同L1地址主/子账户合计质押LIT档,不能仅看一个sub账户或套旧两档说明。请求撤单发出至生效之间若已有成交,先对时间和执行记录;低延迟、0费或已收到哈希都不保证撤单先于撮合完成。
检查结果:原费档、真实撮合角色和时间对应,bps/百分比与账户延迟未混。
5. 检查风险拒绝,并核实际费用单位
官方Matching/Risk检查要求健康账户成交后保持健康,不健康账户应改善健康;不满足可自动取消。Order Margin仅放新Limit检查,不是清算金额。对已有原因核是风险、精度、Post-Only、到期或自成交,不能把所有取消叫手续费问题。
用原逐笔成交金额和计费币种重算对应费:纯例1000报价单位×0.5bps=0.05同单位,并与实际记录比较。Funding是每小时持仓双方支付,零maker/taker也可能发生;LLP清算或公共池Operator收费另核。缺角色、费档或原账单时不承诺多扣/应退款。
检查结果:原取消原因和逐笔实际费用能复核,交易费、Funding、清算及池费用分层。
6. 用成交、仓位与证明阶段完成对照
按同账户/市场整理成交数量、成交价与剩余订单;matching按价时优先、以maker价执行,所以限价只是约束不是所有成交价。将逐笔结果和原Spot余额或Perp仓位变化核对,TAV/PnL变化还包括未实现价格与funding,不能全部当交易费。
Lighter快速撮合/软确认与证明后Ethereum状态更新分开;本教程不猜transaction-status枚举或固定证明等待分钟数。结论说明拒绝/未成交/部分成交/全部成交、费用适用及证据缺口,只有已提供结果足够时才认定那一层完成。
检查结果:原订单、真实成交、余额/仓位、费用与软确认/最终状态有逐层结论,未用预览或哈希冒充执行。
怎样确认完成
- 形成原账户/市场/ID、精度、属性、成交/取消和费用对照,解释实际差异。
- 全documentation,未生成或执行订单,缺实时规格、原账单及最终证明/资金结果时明确未知。
常见错误与边界
- 0.5bps为0.005%,不是0.5%;Standard免maker/taker不等无Funding或出入链费用。
- 客户订单键、平台order_index、account index和API key index不是同一字段;测试网络规格不套主网。