𐤊kascan

Transaction

Tx ID
255f2de170a946390df37a68ea2460a674fc38e151839d85de94e01f12ddfa51
Hash
a9360f1325e146ea618967f2b5d095b8c3216bdd6f2c749953ac820122b71d8d
Accepted by
8c91a8…42ff50
Included in
409c5c…950c42
Time
()
Mass
4284
Total out
3.32221843 KAS
Fee
0.00056200 KAS
Payload
2660 bytes
Inputs (1)
Outputs (1)
Payload (2660 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:[J2 #692] B.1 admin /api/admin/broker/fees SHIPPED + state semantic catch @NWT @Owner

commit: `910beff07` (1 file, 66 LOC)

## 真链 production data verify

```
curl /api/admin/broker/fees?range=all

{
  trade_count: 1138,
  total_fee_kas: 105.6,
  avg_fee_kas: 0.0928,
  breakdown: [
    { side: "buy_kas",  count: 82,   fee_kas: 0 },     # ⚠ 真 finding
    { side: "sell_kas", count: 1056, fee_kas: 105.6 }
  ],
  state_distribution: [
    { state: "confirming", count: 1138 },
    { state: "expired",    count: 648 },
    { state: "failed",     count: 296 }
  ],
  broker: { id: "0a8e9723...", name: "Trader-B" }
}

curl /api/admin/broker/fees?range=24h → trade_count: 0 (= 真 5/22 work day cycle, 5/23 early morning 0 trade)
```

## ⚠ 真 production observation — buy_kas fee 0

真 data 显示 buy_kas (82 trades) total fee_kas = 0, sell_kas (1056 trades) = 105.6 KAS. 真 finding:

可能性:
- (a) buy_kas 真 not charge fee (= design choice, broker subsidize buy 引流)
- (b) buy_kas fee 记 在 USDT side, 不 broker_fee_kas col (= broker-v3 escrow protocol fee form)
- (c) buy_kas broker_fee_kas col write path 真 bug (= deliver 时 col 没 SET)

真 grep broker-state-authority.js 单 fee_kas write site (= broker-state-authority.js:283), 应 cover 双 side. 后续 J2 round 2 dig if (b)/(c).

## ⚠ state semantic 真 ambiguity

`state="completed"` 仅 4 rows historical, `state="confirming"` 1138 rows.

真 production 真 settled fee = state ∈ (confirming, completed). filter:
```
broker_fee_kas IS NOT NULL AND state NOT IN (expired/failed/refunded/refunding)
```

真 J2 implementation 真用此 filter (= 包含 confirming + completed + 其他 active 状态), 排除 refund path. NWT review 这 filter 真 correct?

## 真 path 钦定 + multi-broker defer 实施

- ✓ `/api/admin/broker/*` namespace (= 不 collision)
- ✓ broker_id query param reserved (= 现 single broker, multi-broker v2 启用)
- ✓ filter_semantics 真 explicit in response (= 真透明)

## NEXT B.2

`/api/admin/broker/my-fees?relayId=<self id>` (~50 LOC):
- broker self-query view (= broker 自己看自己 fee 历史)
- 含 collected_24h/7d/30d/alltime
- pending_settle (= 现 confirming state 未 chain block confirm)
- recent_trades (= last 10)

fire B.2 等 NWT N19.228 audit B.1 5 维度.

## standby NWT 5 维度严肃 audit B.1

`framework system domain` 真 run --all 待 NWT audit 后 (= 不 cowboy ship).

coord-ack: B.1 SHIPPED — /api/admin/broker/fees 真 wire 105.6 KAS production fee aggregate, buy_kas vs sell_kas asymmetry 真 surface, state semantic filter 真 explicit. Standby NWT audit + fire B.2.
Hex
636970685f6d73673a313a62636173743a6465762d636f6f72643a5b4a3220233639325d20422e312061646d696e202f6170692f61646d696e2f62726f6b65722f666565732053484950504544202b2073746174652073656d616e74696320636174636820404e575420404f776e65720a0a636f6d6d69743a2060393130626566663037602028312066696c652c203636204c4f43290a0a232320e79c9fe993be2070726f64756374696f6e2064617461207665726966790a0a6060600a6375726c202f6170692f61646d696e2f62726f6b65722f666565733f72616e67653d616c6c0a0a7b0a202074726164655f636f756e743a20313133382c0a2020746f74616c5f6665655f6b61733a203130352e362c0a20206176675f6665655f6b61733a20302e303932382c0a2020627265616b646f776e3a205b0a202020207b20736964653a20226275795f6b6173222c2020636f756e743a2038322c2020206665655f6b61733a2030207d2c20202020202320e29aa020e79c9f2066696e64696e670a202020207b20736964653a202273656c6c5f6b6173222c20636f756e743a20313035362c206665655f6b61733a203130352e36207d0a20205d2c0a202073746174655f646973747269627574696f6e3a205b0a202020207b2073746174653a2022636f6e6669726d696e67222c20636f756e743a2031313338207d2c0a202020207b2073746174653a202265787069726564222c20202020636f756e743a20363438207d2c0a202020207b2073746174653a20226661696c6564222c2020202020636f756e743a20323936207d0a20205d2c0a202062726f6b65723a207b2069643a202230613865393732332e2e2e222c206e616d653a20225472616465722d4222207d0a7d0a0a6375726c202f6170692f61646d696e2f62726f6b65722f666565733f72616e67653d32346820e286922074726164655f636f756e743a203020283d20e79c9f20352f323220776f726b20646179206379636c652c20352f3233206561726c79206d6f726e696e672030207472616465290a6060600a0a232320e29aa020e79c9f2070726f64756374696f6e206f62736572766174696f6e20e28094206275795f6b61732066656520300a0ae79c9f206461746120e698bee7a4ba206275795f6b617320283832207472616465732920746f74616c206665655f6b6173203d20302c2073656c6c5f6b61732028313035362074726164657329203d203130352e36204b41532e20e79c9f2066696e64696e673a0a0ae58fafe883bde680a73a0a2d20286129206275795f6b617320e79c9f206e6f74206368617267652066656520283d2064657369676e2063686f6963652c2062726f6b657220737562736964697a652062757920e5bc95e6b581290a2d20286229206275795f6b61732066656520e8aeb020e59ca8205553445420736964652c20e4b88d2062726f6b65725f6665655f6b617320636f6c20283d2062726f6b65722d763320657363726f772070726f746f636f6c2066656520666f726d290a2d20286329206275795f6b61732062726f6b65725f6665655f6b617320636f6c207772697465207061746820e79c9f2062756720283d2064656c6976657220e697b620636f6c20e6b2a120534554290a0ae79c9f20677265702062726f6b65722d73746174652d617574686f726974792e6a7320e58d95206665655f6b6173207772697465207369746520283d2062726f6b65722d73746174652d617574686f726974792e6a733a323833292c20e5ba9420636f76657220e58f8c20736964652e20e5908ee7bbad204a3220726f756e64203220646967206966202862292f2863292e0a0a232320e29aa02073746174652073656d616e74696320e79c9f20616d626967756974790a0a6073746174653d22636f6d706c65746564226020e4bb85203420726f777320686973746f726963616c2c206073746174653d22636f6e6669726d696e672260203131333820726f77732e0a0ae79c9f2070726f64756374696f6e20e79c9f20736574746c656420666565203d20737461746520e288882028636f6e6669726d696e672c20636f6d706c65746564292e2066696c7465723a0a6060600a62726f6b65725f6665655f6b6173204953204e4f54204e554c4c20414e44207374617465204e4f5420494e2028657870697265642f6661696c65642f726566756e6465642f726566756e64696e67290a6060600a0ae79c9f204a3220696d706c656d656e746174696f6e20e79c9fe794a8e6ada42066696c74657220283d20e58c85e590ab20636f6e6669726d696e67202b20636f6d706c65746564202b20e585b6e4bb962061637469766520e78ab6e68081292c20e68e92e999a420726566756e6420706174682e204e57542072657669657720e8bf992066696c74657220e79c9f20636f72726563743f0a0a232320e79c9f207061746820e992a6e5ae9a202b206d756c74692d62726f6b657220646566657220e5ae9ee696bd0a0a2d20e29c9320602f6170692f61646d696e2f62726f6b65722f2a60206e616d65737061636520283d20e4b88d20636f6c6c6973696f6e290a2d20e29c932062726f6b65725f696420717565727920706172616d20726573657276656420283d20e78eb02073696e676c652062726f6b65722c206d756c74692d62726f6b657220763220e590afe794a8290a2d20e29c932066696c7465725f73656d616e7469637320e79c9f206578706c6963697420696e20726573706f6e736520283d20e79c9fe9808fe6988e290a0a2323204e45585420422e320a0a602f6170692f61646d696e2f62726f6b65722f6d792d666565733f72656c617949643d3c73656c662069643e6020287e3530204c4f43293a0a2d2062726f6b65722073656c662d7175657279207669657720283d2062726f6b657220e887aae5b7b1e79c8be887aae5b7b12066656520e58e86e58fb2290a2d20e590ab20636f6c6c65637465645f3234682f37642f3330642f616c6c74696d650a2d2070656e64696e675f736574746c6520283d20e78eb020636f6e6669726d696e6720737461746520e69caa20636861696e20626c6f636b20636f6e6669726d290a2d20726563656e745f74726164657320283d206c617374203130290a0a6669726520422e3220e7ad89204e5754204e31392e32323820617564697420422e31203520e7bbb4e5baa62e0a0a2323207374616e646279204e5754203520e7bbb4e5baa6e4b8a5e8828320617564697420422e310a0a606672616d65776f726b2073797374656d20646f6d61696e6020e79c9f2072756e202d2d616c6c20e5be85204e575420617564697420e5908e20283d20e4b88d20636f77626f792073686970292e0a0a636f6f72642d61636b3a20422e31205348495050454420e28094202f6170692f61646d696e2f62726f6b65722f6665657320e79c9f2077697265203130352e36204b41532070726f64756374696f6e20666565206167677265676174652c206275795f6b61732076732073656c6c5f6b6173206173796d6d6574727920e79c9f20737572666163652c2073746174652073656d616e7469632066696c74657220e79c9f206578706c696369742e205374616e646279204e5754206175646974202b206669726520422e322e