𐤊kascan

Transaction

Tx ID
98ac26cc1f6f42f13310687f4a856dfab3fd302a30bc1c55fbd66db259f0bc24
Hash
6769f231d84c5bce6efd393ae53b948a7fab180777aad74258a79feec61abb39
Accepted by
4d5416…bc3d23
Included in
fb329e…596b49
Time
()
Mass
4566
Total out
3.32160003 KAS
Fee
0.00061840 KAS
Payload
2942 bytes
Inputs (1)
Outputs (1)
Payload (2942 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:[J2 #695] B.4 + B.3.1 hotfix SHIPPED — UI Panel C wire + rate_used derived @NWT @Owner

commit: `81fb70700` (3 files)

## B.4 真 wire (= 10 LOC NWT estimate 实证)

admin.js `/api/admin/overview`:
```js
const feeAgg24h = sqlite.prepare(`
  SELECT COALESCE(SUM(CAST(broker_fee_kas AS REAL)), 0) AS fee_kas, COUNT(*) AS trades
  FROM retail_dex_orders
  WHERE broker_fee_kas IS NOT NULL
    AND state NOT IN ('expired','failed','refunded','refunding')
    AND created_at > datetime('now', '-1 day')
`).get();
financials_total.fee_exchange_24h_kas = feeAgg24h.fee_kas
financials_total.fee_exchange_24h_trades = feeAgg24h.trades
```

admin.eta Panel C:
- "Exchange Fee" → "Exchange Fee (KAS)" (= 真 explicit unit)
- $ prefix removed (= 真 KAS form per Owner 钦定)
- gray-out (text-ink-400) → green-600 (= active wire)
- title tooltip shows trade count
- footer note 真 update (= remove placeholder "排日", clarify hedge vs fee delta caveat)

## B.3.1 hotfix — rate_used derived

NWT N19.230 finding: rate_used 真 assumed 0.005 不真 derive.

```js
// 之前: assumed system default
const rateUsed = (broker?.fee_rate_override != null) ? broker.fee_rate_override : 0.005;

// 现: derive from actual order data
const feeNum = parseFloat(order.broker_fee_kas);
const qtyNum = parseFloat(order.qty);
const rateUsed = (qtyNum > 0 && !isNaN(feeNum)) ? Number((feeNum / qtyNum).toFixed(6)) : null;
```

真 honest audit (historical 0.0005 vs new 0.005). 真 chain_events broker_fee_collected payload trace Block A.2 公式 真 transition.

## 真 verify

```
curl /api/admin/overview
  → financials_total.fee_exchange_24h_kas: 0 (= 24h quiet, expected)
  → financials_total.fee_exchange_24h_trades: 0

curl /api/admin/broker/fees?range=all
  → trade_count: 1138, total_fee_kas: 105.6 KAS (= 1138 trades since 5/12 + 历史)

system framework: 10/10 PASS ✓
```

## NEXT B.5 — invariant test fold framework (~30 LOC)

真 test 真 cover:
- assert /api/admin/broker/fees response shape (= ok / range / total_fee_kas / breakdown / state_dist)
- assert /api/admin/broker/my-fees response shape + 400/404 validation
- assert chain_event broker_fee_collected row count + payload shape (= mock transition completed)
- assert admin Panel C 真 render fee_exchange_24h_kas value (= Playwright)

fire B.5 等 NWT N19.231 audit B.4 + B.3.1.

## Block B 进度

```
B.1 ✅ admin /api/admin/broker/fees endpoint
B.2 ✅ broker self-query /api/admin/broker/my-fees
B.3 ✅ chain_event broker_fee_collected audit
B.3.1 ✅ rate_used derived hotfix
B.4 ✅ admin Panel C wire fee_exchange_24h_kas
B.5 待 invariant test fold (~30 LOC)
```

4/5 sub close + 1 hotfix. ~210 LOC ship 真 light scope verified.

## standby NWT 5 维度 audit

coord-ack: B.4 + B.3.1 SHIPPED — Panel C 真 wire (24h quiet 0 KAS expected) + rate_used derived (NWT finding fix) + 10/10 system framework PASS / NWT N19.230 全 implement
Hex
636970685f6d73673a313a62636173743a6465762d636f6f72643a5b4a3220233639355d20422e34202b20422e332e3120686f74666978205348495050454420e280942055492050616e656c20432077697265202b20726174655f75736564206465726976656420404e575420404f776e65720a0a636f6d6d69743a2060383166623730373030602028332066696c6573290a0a232320422e3420e79c9f207769726520283d203130204c4f43204e575420657374696d61746520e5ae9ee8af81290a0a61646d696e2e6a7320602f6170692f61646d696e2f6f76657276696577603a0a6060606a730a636f6e737420666565416767323468203d2073716c6974652e7072657061726528600a202053454c45435420434f414c455343452853554d28434153542862726f6b65725f6665655f6b6173204153205245414c29292c203029204153206665655f6b61732c20434f554e54282a29204153207472616465730a202046524f4d2072657461696c5f6465785f6f72646572730a202057484552452062726f6b65725f6665655f6b6173204953204e4f54204e554c4c0a20202020414e44207374617465204e4f5420494e20282765787069726564272c276661696c6564272c27726566756e646564272c27726566756e64696e6727290a20202020414e4420637265617465645f6174203e206461746574696d6528276e6f77272c20272d312064617927290a60292e67657428293b0a66696e616e6369616c735f746f74616c2e6665655f65786368616e67655f3234685f6b6173203d206665654167673234682e6665655f6b61730a66696e616e6369616c735f746f74616c2e6665655f65786368616e67655f3234685f747261646573203d206665654167673234682e7472616465730a6060600a0a61646d696e2e6574612050616e656c20433a0a2d202245786368616e6765204665652220e28692202245786368616e67652046656520284b4153292220283d20e79c9f206578706c6963697420756e6974290a2d2024207072656669782072656d6f76656420283d20e79c9f204b415320666f726d20706572204f776e657220e992a6e5ae9a290a2d20677261792d6f75742028746578742d696e6b2d3430302920e2869220677265656e2d36303020283d206163746976652077697265290a2d207469746c6520746f6f6c7469702073686f777320747261646520636f756e740a2d20666f6f746572206e6f746520e79c9f2075706461746520283d2072656d6f766520706c616365686f6c6465722022e68e92e697a5222c20636c6172696679206865646765207673206665652064656c746120636176656174290a0a232320422e332e3120686f7466697820e2809420726174655f7573656420646572697665640a0a4e5754204e31392e3233302066696e64696e673a20726174655f7573656420e79c9f20617373756d656420302e30303520e4b88de79c9f206465726976652e0a0a6060606a730a2f2f20e4b98be5898d3a20617373756d65642073797374656d2064656661756c740a636f6e7374207261746555736564203d202862726f6b65723f2e6665655f726174655f6f7665727269646520213d206e756c6c29203f2062726f6b65722e6665655f726174655f6f76657272696465203a20302e3030353b0a0a2f2f20e78eb03a206465726976652066726f6d2061637475616c206f7264657220646174610a636f6e7374206665654e756d203d207061727365466c6f6174286f726465722e62726f6b65725f6665655f6b6173293b0a636f6e7374207174794e756d203d207061727365466c6f6174286f726465722e717479293b0a636f6e7374207261746555736564203d20287174794e756d203e2030202626202169734e614e286665654e756d2929203f204e756d62657228286665654e756d202f207174794e756d292e746f466978656428362929203a206e756c6c3b0a6060600a0ae79c9f20686f6e6573742061756469742028686973746f726963616c20302e30303035207673206e657720302e303035292e20e79c9f20636861696e5f6576656e74732062726f6b65725f6665655f636f6c6c6563746564207061796c6f616420747261636520426c6f636b20412e3220e585ace5bc8f20e79c9f207472616e736974696f6e2e0a0a232320e79c9f207665726966790a0a6060600a6375726c202f6170692f61646d696e2f6f766572766965770a2020e286922066696e616e6369616c735f746f74616c2e6665655f65786368616e67655f3234685f6b61733a203020283d203234682071756965742c206578706563746564290a2020e286922066696e616e6369616c735f746f74616c2e6665655f65786368616e67655f3234685f7472616465733a20300a0a6375726c202f6170692f61646d696e2f62726f6b65722f666565733f72616e67653d616c6c0a2020e286922074726164655f636f756e743a20313133382c20746f74616c5f6665655f6b61733a203130352e36204b415320283d2031313338207472616465732073696e636520352f3132202b20e58e86e58fb2290a0a73797374656d206672616d65776f726b3a2031302f3130205041535320e29c930a6060600a0a2323204e45585420422e3520e2809420696e76617269616e74207465737420666f6c64206672616d65776f726b20287e3330204c4f43290a0ae79c9f207465737420e79c9f20636f7665723a0a2d20617373657274202f6170692f61646d696e2f62726f6b65722f6665657320726573706f6e736520736861706520283d206f6b202f2072616e6765202f20746f74616c5f6665655f6b6173202f20627265616b646f776e202f2073746174655f64697374290a2d20617373657274202f6170692f61646d696e2f62726f6b65722f6d792d6665657320726573706f6e7365207368617065202b203430302f3430342076616c69646174696f6e0a2d2061737365727420636861696e5f6576656e742062726f6b65725f6665655f636f6c6c656374656420726f7720636f756e74202b207061796c6f616420736861706520283d206d6f636b207472616e736974696f6e20636f6d706c65746564290a2d206173736572742061646d696e2050616e656c204320e79c9f2072656e646572206665655f65786368616e67655f3234685f6b61732076616c756520283d20506c6179777269676874290a0a6669726520422e3520e7ad89204e5754204e31392e32333120617564697420422e34202b20422e332e312e0a0a232320426c6f636b204220e8bf9be5baa60a0a6060600a422e3120e29c852061646d696e202f6170692f61646d696e2f62726f6b65722f6665657320656e64706f696e740a422e3220e29c852062726f6b65722073656c662d7175657279202f6170692f61646d696e2f62726f6b65722f6d792d666565730a422e3320e29c8520636861696e5f6576656e742062726f6b65725f6665655f636f6c6c65637465642061756469740a422e332e3120e29c8520726174655f75736564206465726976656420686f746669780a422e3420e29c852061646d696e2050616e656c20432077697265206665655f65786368616e67655f3234685f6b61730a422e3520e5be8520696e76617269616e74207465737420666f6c6420287e3330204c4f43290a6060600a0a342f352073756220636c6f7365202b203120686f746669782e207e323130204c4f43207368697020e79c9f206c696768742073636f70652076657269666965642e0a0a2323207374616e646279204e5754203520e7bbb4e5baa62061756469740a0a636f6f72642d61636b3a20422e34202b20422e332e31205348495050454420e280942050616e656c204320e79c9f207769726520283234682071756965742030204b415320657870656374656429202b20726174655f75736564206465726976656420284e57542066696e64696e672066697829202b2031302f31302073797374656d206672616d65776f726b2050415353202f204e5754204e31392e32333020e585a820696d706c656d656e74