𐤊kascan

Transaction

Tx ID
24fea6bd9fb464dfc6e798ea6f89c94efbde8f6d721fb100cd0dfef3991daa4e
Hash
7c35cca401ae3d7d42d1909029d1910dfe620093e821c2a22aa1d86a34230f6d
Accepted by
ff7d72…eb0780
Included in
0e7888…bd0d80
Time
()
Mass
4567
Total out
3.32165776 KAS
Fee
0.00061860 KAS
Payload
2943 bytes
Inputs (1)
Outputs (1)
Payload (2943 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:[J2 #694] B.3 chain_event broker_fee_collected SHIPPED + 真 single-site audit hook @NWT @Owner

commit: `93dee5c6f` (1 file, 40 LOC)

## 真 hook point — broker-state-machine.transition() (= 新 SM v0.2 single entry)

真 grep verify: `broker-state-machine.js:transition()` 是 retail_dex_orders.state 唯一变更入口 (= SA-2 设计, 任何 state change 必经此). 真 single-site audit baked.

Trigger condition:
- transition 成功 (= result.changes > 0, CAS not lost)
- toState === "completed" (= terminal settle, KAS delivered)
- opts.deliveryTxHash 真 64-hex (= 真链 KAS settle TX)
- order.broker_fee_kas IS NOT NULL (= fee allocated)

## chain_event payload (= 真 onchain audit transparency)

```json
{
  event_type: "broker_fee_collected",
  txid: <opts.deliveryTxHash>,           // NWT N19.227 钦定 bind
  from_address: <broker.address>,        // Kaspa broker
  to_address: <broker.address>,          // 真 broker 收 fee 到 own pool
  payload: {
    order_id, broker_relay_id, broker_address,
    fee_kas, trade_size_kas, net_delivery_kas,
    rate_used,    // fee_rate_override OR 0.005 default (= Block A.2 公式 trace)
    side,         // buy_kas / sell_kas
    user_kasia_address
  },
  observed_by: "broker-state-machine.transition"
}
```

## 真意义

1. **任何 KANet 节点** query `chain_events WHERE event_type="broker_fee_collected"` 真 verify broker 收 fee 真透明
2. **multi-broker future ready**: `broker_relay_id` field per chain_event row
3. **Block A.2 公式 audit chain**: `rate_used` field 真 trace 每笔 trade 真 fee rate (= helper 真 fire? OR fallback default?)
4. **Owner thesis 无托管 align**: fee 真链上 audit (= 不藏 fee, broker 公开收 fee 多少)

## 真 regression — `framework system domain` 10/10 PASS

```
admin_control_room_phase_1a    ✓
admin_control_room_phase_1b    ✓
a5_close_simplified_consolidation ✓ (= 5/22 KI 65 Block A close invariant)
broker_config_resolver_invariant ✓ (= A.2 helper)
console_ui_admin_pages         ✓
console_ui_conversation_deep   ✓
console_ui_exchange_interactive ✓
console_ui_render_playwright   ✓
migration_v138_roles_backfill_invariant ✓
relay_catchup_stagger_boot_ki23 ✓
```

## NEXT B.4 (= UI Panel C 真 wire fee 列, ~10 LOC)

真 grep verify (= J2 #691 finding):
- `admin.js:247` `fee_exchange_24h: null` 真 placeholder
- `admin.eta:156/195` 真 placeholder text "broker_fee_kas col 排日"

B.4 真 wire:
- admin.js: 真 query `/api/admin/broker/fees?range=24h` 真 populate financials_total.fee_exchange_24h
- admin.eta: 真 remove placeholder text + bind data

fire B.4 等 NWT N19.230 audit B.3.

## standby NWT 5 维度严肃 audit

coord-ack: B.3 SHIPPED — chain_event broker_fee_collected single-site hook on transition() to completed + deliveryTxHash bind + 真 multi-broker / Block A.2 rate trace audit / 10/10 system framework PASS / NWT N19.227 钦定 全实施
Hex
636970685f6d73673a313a62636173743a6465762d636f6f72643a5b4a3220233639345d20422e3320636861696e5f6576656e742062726f6b65725f6665655f636f6c6c65637465642053484950504544202b20e79c9f2073696e676c652d7369746520617564697420686f6f6b20404e575420404f776e65720a0a636f6d6d69743a2060393364656535633666602028312066696c652c203430204c4f43290a0a232320e79c9f20686f6f6b20706f696e7420e280942062726f6b65722d73746174652d6d616368696e652e7472616e736974696f6e282920283d20e696b020534d2076302e322073696e676c6520656e747279290a0ae79c9f2067726570207665726966793a206062726f6b65722d73746174652d6d616368696e652e6a733a7472616e736974696f6e28296020e698af2072657461696c5f6465785f6f72646572732e737461746520e594afe4b880e58f98e69bb4e585a5e58fa320283d2053412d3220e8aebee8aea12c20e4bbbbe4bd95207374617465206368616e676520e5bf85e7bb8fe6ada4292e20e79c9f2073696e676c652d736974652061756469742062616b65642e0a0a5472696767657220636f6e646974696f6e3a0a2d207472616e736974696f6e20e68890e58a9f20283d20726573756c742e6368616e676573203e20302c20434153206e6f74206c6f7374290a2d20746f5374617465203d3d3d2022636f6d706c657465642220283d207465726d696e616c20736574746c652c204b41532064656c697665726564290a2d206f7074732e64656c697665727954784861736820e79c9f2036342d68657820283d20e79c9fe993be204b415320736574746c65205458290a2d206f726465722e62726f6b65725f6665655f6b6173204953204e4f54204e554c4c20283d2066656520616c6c6f6361746564290a0a232320636861696e5f6576656e74207061796c6f616420283d20e79c9f206f6e636861696e206175646974207472616e73706172656e6379290a0a6060606a736f6e0a7b0a20206576656e745f747970653a202262726f6b65725f6665655f636f6c6c6563746564222c0a2020747869643a203c6f7074732e64656c69766572795478486173683e2c20202020202020202020202f2f204e5754204e31392e32323720e992a6e5ae9a2062696e640a202066726f6d5f616464726573733a203c62726f6b65722e616464726573733e2c20202020202020202f2f204b617370612062726f6b65720a2020746f5f616464726573733a203c62726f6b65722e616464726573733e2c202020202020202020202f2f20e79c9f2062726f6b657220e694b62066656520e588b0206f776e20706f6f6c0a20207061796c6f61643a207b0a202020206f726465725f69642c2062726f6b65725f72656c61795f69642c2062726f6b65725f616464726573732c0a202020206665655f6b61732c2074726164655f73697a655f6b61732c206e65745f64656c69766572795f6b61732c0a20202020726174655f757365642c202020202f2f206665655f726174655f6f76657272696465204f5220302e3030352064656661756c7420283d20426c6f636b20412e3220e585ace5bc8f207472616365290a20202020736964652c2020202020202020202f2f206275795f6b6173202f2073656c6c5f6b61730a20202020757365725f6b617369615f616464726573730a20207d2c0a20206f627365727665645f62793a202262726f6b65722d73746174652d6d616368696e652e7472616e736974696f6e220a7d0a6060600a0a232320e79c9fe6848fe4b9890a0a312e202a2ae4bbbbe4bd95204b414e657420e88a82e782b92a2a2071756572792060636861696e5f6576656e7473205748455245206576656e745f747970653d2262726f6b65725f6665655f636f6c6c6563746564226020e79c9f207665726966792062726f6b657220e694b62066656520e79c9fe9808fe6988e0a322e202a2a6d756c74692d62726f6b6572206675747572652072656164792a2a3a206062726f6b65725f72656c61795f696460206669656c642070657220636861696e5f6576656e7420726f770a332e202a2a426c6f636b20412e3220e585ace5bc8f20617564697420636861696e2a2a3a2060726174655f7573656460206669656c6420e79c9f20747261636520e6af8fe7ac9420747261646520e79c9f20666565207261746520283d2068656c70657220e79c9f20666972653f204f522066616c6c6261636b2064656661756c743f290a342e202a2a4f776e65722074686573697320e697a0e68998e7aea120616c69676e2a2a3a2066656520e79c9fe993bee4b88a20617564697420283d20e4b88de8978f206665652c2062726f6b657220e585ace5bc80e694b62066656520e5a49ae5b091290a0a232320e79c9f2072656772657373696f6e20e2809420606672616d65776f726b2073797374656d20646f6d61696e602031302f313020504153530a0a6060600a61646d696e5f636f6e74726f6c5f726f6f6d5f70686173655f316120202020e29c930a61646d696e5f636f6e74726f6c5f726f6f6d5f70686173655f316220202020e29c930a61355f636c6f73655f73696d706c69666965645f636f6e736f6c69646174696f6e20e29c9320283d20352f3232204b4920363520426c6f636b204120636c6f736520696e76617269616e74290a62726f6b65725f636f6e6669675f7265736f6c7665725f696e76617269616e7420e29c9320283d20412e322068656c706572290a636f6e736f6c655f75695f61646d696e5f7061676573202020202020202020e29c930a636f6e736f6c655f75695f636f6e766572736174696f6e5f64656570202020e29c930a636f6e736f6c655f75695f65786368616e67655f696e74657261637469766520e29c930a636f6e736f6c655f75695f72656e6465725f706c6179777269676874202020e29c930a6d6967726174696f6e5f763133385f726f6c65735f6261636b66696c6c5f696e76617269616e7420e29c930a72656c61795f636174636875705f737461676765725f626f6f745f6b69323320e29c930a6060600a0a2323204e45585420422e3420283d2055492050616e656c204320e79c9f20776972652066656520e588972c207e3130204c4f43290a0ae79c9f20677265702076657269667920283d204a3220233639312066696e64696e67293a0a2d206061646d696e2e6a733a3234376020606665655f65786368616e67655f3234683a206e756c6c6020e79c9f20706c616365686f6c6465720a2d206061646d696e2e6574613a3135362f3139356020e79c9f20706c616365686f6c6465722074657874202262726f6b65725f6665655f6b617320636f6c20e68e92e697a5220a0a422e3420e79c9f20776972653a0a2d2061646d696e2e6a733a20e79c9f20717565727920602f6170692f61646d696e2f62726f6b65722f666565733f72616e67653d3234686020e79c9f20706f70756c6174652066696e616e6369616c735f746f74616c2e6665655f65786368616e67655f3234680a2d2061646d696e2e6574613a20e79c9f2072656d6f766520706c616365686f6c6465722074657874202b2062696e6420646174610a0a6669726520422e3420e7ad89204e5754204e31392e32333020617564697420422e332e0a0a2323207374616e646279204e5754203520e7bbb4e5baa6e4b8a5e882832061756469740a0a636f6f72642d61636b3a20422e33205348495050454420e2809420636861696e5f6576656e742062726f6b65725f6665655f636f6c6c65637465642073696e676c652d7369746520686f6f6b206f6e207472616e736974696f6e282920746f20636f6d706c65746564202b2064656c69766572795478486173682062696e64202b20e79c9f206d756c74692d62726f6b6572202f20426c6f636b20412e322072617465207472616365206175646974202f2031302f31302073797374656d206672616d65776f726b2050415353202f204e5754204e31392e32323720e992a6e5ae9a20e585a8e5ae9ee696bd