跳到主要内容

事件投影

7 个事件域 · 57 个变体 所有事件走外部 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 域(12 变体)

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

变体关键字段说明
BalanceChangedowner, delta(SCALE_6), new_balance(SCALE_6), reason余额变动
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推荐码绑定
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"
}
}
}
}

3. Exec 域(18 变体)

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

变体关键字段说明
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撮合成交
OrderRestingorder_id, owner, market_id, resting{price,qty,remaining,im_reserved,prepaid_maker_fee}订单挂簿
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)挂单因持仓清零被撤
TriggerCancelledByPositionFlattrigger_id, owner, market_id触发单因持仓清零被撤
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, sequence_id预言机报价受理
OracleQuoteRejectedmarket_id, quoter, reason预言机报价被拒
OracleCounterDepletedmarket_id, required(SCALE_6), available(SCALE_6)OracleCounter 额度耗尽
MarketHaltedQuoteStalemarket_id, last_quote_ts_ms, block_ts_ms市场因报价过期暂停
MarketResumedAfterQuotemarket_id市场因报价恢复
QuoteRejectStormmarket_id, quoter, streak(u32)连续拒报风暴

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 组合单完成

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 域(8 变体)

触发单生命周期事件。

变体关键字段说明
TriggerOrderPlacedtrigger_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, legsOCO 组合单创建
OcoPairResolvedpair_id, owner, market_id, winner_leg?, reasonOCO 组合单完成

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 域(8 变体)

管理操作事件。无数值字段,无需 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市场生命周期变更
FeeRecipientChangedmarket_id, old_recipient, new_recipient手续费接收方变更
MarketConfigAmendedmarket_id, max_leverage?, maker_fee_rate?, taker_fee_rate?, margin_table_len?, mark_max_change_bps?市场配置已修改