跳到主要内容

事件投影

7 个事件域 · 61 个变体 所有事件走外部 tag 包裹:{seq, block_height, envelope_idx, kind: {"Domain": {"Variant": {...}}}} 数值字段经 ADR-0026 投影为 decimal string


1. 事件外壳

所有事件(getBlockEventsgetTx.events、WS 推送、写操作 result.events)走统一外壳:

{
"seq": 3,
"block_height": 12346,
"envelope_idx": 1,
"kind": {
"DomainTag": {
"Variant": { ... }
}
}
}
字段类型说明
sequ64块内单调递增的事件序号
block_heightu64产生该事件的块高
envelope_idxu32产生该事件的 envelope 在块内的下标
kindEventKindexternally-tagged:{"DomainTag": {"Variant": {...}}}

数值字段精度约定:

语境字段精度
价格price/mark_price/limit_price/entry_vwap/bid_price/ask_price/last_price市场 price_decimals
数量qty/size/remaining/volume/old_size/new_size市场 size_decimals
金额notional/fee/pnl/balance/margin/amountSCALE_6

2. Core 域(14 变体)

系统级事件:余额、标记价、拒绝、统计、费率、推荐、返佣、DMS、破产。

变体关键字段说明
BalanceChangedowner, delta(SCALE_6), new_balance(SCALE_6), reason余额变动。逐仓 IM 划转:ImManualAllocate(手动 SetIsolatedMargin 划入,delta 负)· ImAutoAllocate(下单/改单/调杠杆自动补 deficit,delta 负)· ImRelease(手动划出或 flat sweep,delta 正)。与 Exec::IsolatedMarginUpdated 成对
MarkUpdatedmarket_id, mark_price(px), previous_mark_price(px)标记价更新
MarketStatsSnapshotmarket_id, long_size(sz), short_size(sz), net_size(sz), oracle_counter_pnl(SCALE_6)市场统计快照
Rejectedaction_kind, reason: RejectReason交易被拒(含 InsufficientBalance{required,have} 等)
BatchItemRejectedindex(u32), action_kind, reason批量操作子项被拒
RuntimeRejectorder_id?, engine_reason撮合引擎拒收
Bankruptcytarget_owner, market_id, shortfall_amount(SCALE_6), source破产事件
UserFeeRateChangedowner, maker_fee_rate?, taker_fee_rate?用户费率变更
ReferrerRegisteredowner, code推荐码注册
ReferrerBoundowner, code推荐码绑定
InviterKeepRatioChangedowner, old_ratio_bps, new_ratio_bps邀请者自留比例变更
RebatePaidtrader, inviter, referral_code, total_amount(SCALE_6), inviter_share(SCALE_6), invitee_share(SCALE_6)返佣实际分发(与 BalanceChanged{RebateToInviter/RebateToInvitee} 成对)
DeadMansSwitchScheduledowner, trigger_time_ms?DMS 截止设置/清除
DeadMansSwitchTriggeredowner, cancelled(u32)DMS 触发(批量撤单数)

示例:Filled 事件

{
"seq": 3, "block_height": 12346, "envelope_idx": 1,
"kind": {
"Exec": {
"Filled": {
"taker_order_id": 1001, "maker_order_id": 1002, "market_id": 1,
"taker_owner": "0x...", "maker_owner": "0x...",
"price": "97234.50", "qty": "0.50000",
"notional": "48617.250000",
"taker_fee": "24.308625", "maker_fee": "-4.861725",
"aggressor_side": "Bid",
"taker_source_trigger_id": null, "taker_source_tx_hash": "0x…",
"maker_source_trigger_id": null, "maker_source_tx_hash": "0x…"
}
}
}
}

3. Exec 域(17 变体)

撮合执行事件:订单生命周期、成交、持仓变更、保证金、预言机报价。

变体关键字段说明
OrderAcceptedorder_id, owner, market_id, side, limit_price(px), qty(sz), tif订单受理
Filledtaker_order_id, maker_order_id, market_id, price(px), qty(sz), notional(SCALE_6), taker_fee(SCALE_6), maker_fee(SCALE_6), aggressor_side, taker_source_trigger_id?(TriggerOrderId), taker_source_tx_hash?, maker_source_trigger_id?, maker_source_tx_hash?撮合成交(4 个 source 字段标识触发来源:trigger 单触发或入口 tx)
OrderRestingorder_id, owner, market_id, resting{price,qty,remaining,im_reserved,prepaid_maker_fee}订单挂簿(含 in-place 改单后快照)
OrderDoneorder_id, owner, market_id, reason(DoneReason), remaining(sz)订单离簿(含改单撤单 + 重挂前的撤单腿)
PositionUpdatedowner, market_id, old_size(sz), new_size(sz), new_entry_vwap(px), realized_pnl(SCALE_6)持仓更新
PositionFlattenedowner, market_id, old_size(sz)持仓清零
OrderCancelledByPositionFlatorder_id, owner, market_id, remaining(sz)挂单因持仓清零被撤;若为某 OCO 的挂簿限价腿,链会 resolve 该 OCO pair
TriggerCancelledByPositionFlattrigger_id, owner, market_id触发单因持仓清零被撤;若为某 OCO 的触发腿,链会撤 OCO 兄弟腿并 resolve pair
IsolatedMarginUpdatedowner, market_id, new_isolated_margin(SCALE_6)逐仓保证金变更
LeverageUpdatedowner, market_id, leverage(u32)杠杆变更
MarginModeUpdatedowner, market_id, margin_mode保证金模式切换
PositionForceClosedAtMarktarget, market_id, size(sz), mark_price(px), realized_pnl(SCALE_6)按 mark 强制清退(清算 5b / 下市)
OracleQuoteAcceptedmarket_id, quoter, bid_price(px), ask_price(px), mark_price(px), last_price(px), volume(sz), source_ts_ms预言机报价受理(时间单调校验:source_ts_ms >= 上一笔
OracleCounterDepletedmarket_id, required(SCALE_6), available(SCALE_6)OracleCounter 额度耗尽
MarketHaltedQuoteStalemarket_id, last_quote_ts_ms, block_ts_ms块末报价过期自动暂停(halt_reason = QuoteStale;可自动恢复)
MarketResumedAfterQuotemarket_id报价恢复新鲜后自动恢复(报价接受路径或块末检查;管理员 HaltMarket 不会自动恢复)
QuoteRejectStormmarket_id, quoter, streak(u32)连续拒报风暴(批量路径在子项回滚点之后累计,连续 5 次触发;单笔 SubmitOracleQuote 拒绝只发 Core::Rejected,不累计)

4. Oco 域(4 变体)

OCO 组合单机制事件。

变体关键字段说明
OrderCancelledByOcoSiblingorder_id, owner, market_id, remaining(sz), pair_id, winning_legOCO 互斥撤单
TriggerOrderCancelledtrigger_id, market_id, owner, reasonOCO 触发腿撤销
LimitTriggerOrderCancelledtrigger_id, market_id, owner, reasonOCO 限价腿撤销
OcoPairResolvedpair_id, owner, market_id, winner_leg?, reasonOCO 组合单完成。Bracket entry 零成交级联 → reason = PairCancelled;用户 CancelOcoManualCancel

5. Liquidation 域(1 变体)

变体关键字段说明
Liquidatedtarget, market_id, closed_via_book(sz), force_closed_at_mark(sz), total_realized_pnl(SCALE_6), mark_price(px)清算完成

6. Trigger 域(9 变体)

触发单生命周期事件。

变体关键字段说明
TriggerOrderPlacedtrigger_id, market_id, owner, trigger_price(px), trigger_direction, payload{Market|Limit}, expires_at_ms?触发单创建
TriggerOrderAmendedtrigger_id, market_id, owner, trigger_price(px), trigger_direction, payload{Market|Limit}, expires_at_ms?触发单原地修改(改后完整快照)
TriggerOrderCancelledtrigger_id, market_id, owner, reason触发单被撤销
LimitTriggerOrderCancelledtrigger_id, market_id, owner, reason限价触发单被撤销
TriggerOrderExpiredtrigger_id, market_id, owner触发单过期
TriggerActivatedtrigger_id, market_id, owner, mark_price(px), trigger_price(px)触发激活
TriggerFireFailedtrigger_id, market_id, owner, reason: RejectReason触发后业务拒(触发单已消费)
OcoPairPlacedpair_id, owner, market_id, legs, client_pair_id?, parent_order_id?OCO 组合单创建;parent_order_id 仅 Bracket 绑定 entry 时存在
OcoPairResolvedpair_id, owner, market_id, winner_leg?, reasonOCO 组合单完成(Trigger 域事件;bracket 级联另见 Oco 域同名变体)

7. Bridge 域(6 变体)

充提桥接事件。全部金额走 SCALE_6。

变体关键字段说明
DepositRecordedseq, external_ref, tx_hash?, account, amount(SCALE_6)充值登记
DepositCreditedseq, owner, amount(SCALE_6), new_balance(SCALE_6)充值入账
WithdrawRequestedrequest_id, owner, amount(SCALE_6), chain, new_balance(SCALE_6)提现请求
WithdrawSettledrequest_id, owner, amount(SCALE_6), tx_hash提现放款完成
WithdrawRefundedrequest_id, owner, amount(SCALE_6), reason_code(u8), new_balance(SCALE_6)提现退款
SettlementPausedChangedpaused(bool)结算闸门切换

8. Ops 域(11 变体)

管理操作事件。无数值字段,无需 decimal 投影。

变体关键字段说明
AccountRoleChangedtarget, role, granted(bool), new_mask账户角色变更
AgentRegisteredowner, agent_address, role_mask, expires_at_msAgent 注册
AgentRevokedowner, agent_addressAgent 撤销
EmergencyHaltChangedmarket_id, halted(bool)紧急熔断切换
MarketCreatedmarket_id, kind, lifecycle市场创建
MarketLifecycleChangedmarket_id, from, to市场生命周期变更
MarketCancelledmarket_id撤销未激活市场(CancelMarket;与 MarketLifecycleChanged 成对发出)
FeeRecipientChangedmarket_id, old_recipient, new_recipient手续费接收方变更
MarketConfigAmendedmarket_id, max_leverage?, maker_fee_rate?, taker_fee_rate?, margin_table_len?, mark_max_change_bps?市场配置已修改
GlobalRebateRatioChangedold_ratio_bps, new_ratio_bps全局默认返佣比例变更
AccountRebateRatioChangedowner, ratio_bps?邀请者返佣档位设置/清除(null = 回退全局默认)