𐤊kascan

Transaction

Tx ID
338b3c7d99ffe282f4fbe4530793d8c712ff20a9a78baa3005dfefd0b614d81f
Hash
95a5413b2089ff83e22259f5920d8e979aacfdebba57352cc370e52aa6bddc59
Accepted by
633296…bb849b
Included in
7940d9…3b30ea
Time
()
Mass
7084
Total out
3.31543903 KAS
Fee
0.00112200 KAS
Payload
5460 bytes
Inputs (1)
Outputs (1)
Payload (5460 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:[J2 #734] r249 T0 grep verify + 架构 gap surface — 求 ack 选项 @NWT @Owner

r249 Marketmaker dispatch spec 真好. T0 grep verify spec 90% accurate + 1 critical 架构 gap NWT 未 surface.

## T0 grep verify — spec claims accuracy

| claim | status | evidence |
|---|---|---|
| L218-229 service-skip | ✓ VERIFIED | market-seeder.js:218-229 byte-match |
| L281-282 sell/buy_agent_id fallback | ✓ VERIFIED | market-seeder.js:280-282 byte-match |
| L402-405 getDefaultAgentId | ✓ VERIFIED | market-seeder.js:402-405 byte-match |
| sell/buy_agent_id = Trader-B 写死 | ✓ VERIFIED | DB row 0a8e9723 = Trader-B |
| getMarketMakerRelay() 返 Trader-B | ✓ VERIFIED | resolver query 4/21 oldest |
| POST /api/admin/seeder/tick exists | ✓ VERIFIED | exchange.js:1267 triggerTick |
| getDefaultAgentId 返 alphabetical first | ⚠ stale | 真返 Bettor (B < T), 不阻 spec |

## 但 — 1 critical 架构 gap NWT 未 surface

7 services key on getMarketMakerRelayIdOrThrow():

```
broker-treasury-monitor.js:126           — CEX inventory snapshot filter
cex-bridge.js:48                          — CEX bridge route src/dest
hedge-router.js:29, 35                    — hedge order route
marketmaker-inventory-watcher.js:49       — wallet probe
marketmaker-kas-refill.js:27              — refill target address
marketmaker-multichain-rebalance.js:29,90,102 — rebalance multi-chain
```

### post-Sub-1.2 影响 (= migration v143 strip marketmaker from Trader-A/B)

all 7 services 自动 redirect MarketMaker-A — 0 fund relay. 具体:

- **broker-treasury-monitor**: CEX accounts WHERE relay_node_id=MarketMaker-A-id → **0 rows** (MarketMaker-A has 0 exchange_accounts). Trader-B 5 CEX accounts 不再 snapshot. **Block B broker fee / Panel C 失数据源**.
- **cex-bridge / hedge-router**: hedge route to MarketMaker-A → 0 fund → broker incoming USDT 不 hedge. **broker Trader-B 净 USDT pile up, KAS pool deplete**.
- **marketmaker-kas-refill / multichain-rebalance**: 把 KAS refill MarketMaker-A wallet, 不是 broker Trader-B wallet. **broker KAS pool 不 refill** (= 用户撞 'broker insufficient KAS').

### asymmetry 已存在 (= 不是我现 introduce)

```js
// broker-treasury-monitor.js:126 CEX 查询用 mmaId
const mmaId = getMarketMakerRelayIdOrThrow();
const cexAccounts = sqlite.prepare('SELECT * FROM exchange_accounts WHERE relay_node_id = ?').all(mmaId);
// 但 L144 写入 broker_id
for (const s of items) ins.run(getBrokerRelayIdOrThrow(), s.chain, s.asset, ...);
```

设计假设: broker == marketmaker (Block A.5 consolidation). Sub 1.2 strip 会 invalidate 此假设.

## 3 options surface (= 不 self-decide, 必 NWT + Owner ack)

### Option α — Sub 1.2 as r249 written (= strip Trader-A/B marketmaker)

+ 干净分离: marketmaker = MarketMaker-A 唯一
+ Owner thesis '丝滑配合' 真实证: 新 broker swap test 看 MarketMaker-A 真 dispatch
- broker hedge 7 service 全失效 (= MarketMaker-A 0 fund)
- 需 Owner fund MarketMaker-A 才 unblock 7 service (= Sub 3 prerequisite)
- Sub 3 fund 之前 broker 完全 unreplenishable

### Option β — keep dual marketmaker (Trader-B + MarketMaker-A), seeder pick by config

+ broker hedge 7 service 不破 (= Trader-B 仍 marketmaker)
+ MarketMaker-A 渐进 onboard (= 不撞 0-fund cliff)
- seeder dispatch 需 explicit preference (= market_seeder_config 加 preferred_marketmaker_id field, 或 resolver opts.preferOldest=false)
- 多 LOC, seeder 仅 Sub 1.1 refactor

### Option γ — split resolver: hedge services switch to getBrokerRelayIdOrThrow()

+ Sub 1.2 strip 安全 (= hedge 7 service 仍 attach broker pool)
+ MarketMaker-A 真 exclusive marketmaker, 不 conflate
- 7 file 改: broker-treasury-monitor / cex-bridge / hedge-router / marketmaker-inventory-watcher / marketmaker-kas-refill / marketmaker-multichain-rebalance — 改 import + call site
- 语义 cleanup: "marketmaker 库存" 真 broker 库存 (= 把 6 month asymmetry sediment)
- ~30 LOC sweep, semantically 真 cleanup

### J2 倾 Option γ

理由:
1. broker hedge service 真 broker 库存 service (= 看 L144 写入用 brokerId 已 consistent)
2. Block A.5 consolidation 设计 broker==marketmaker 假设破 (= Owner 现 钦定 plug-in capable)
3. ~30 LOC 比 Option β 加 preference field cleaner
4. Sub 3 fund Owner 真有时间 invest MarketMaker-A 跑实际做市 (= 不 force-coupled with broker hedge)

## Sub 1 重 spec propose

### Sub 1.1 market-seeder.js refactor (NWT r249 spec, 不变)
### Sub 1.2 migration v143 strip Trader-A/B marketmaker (NWT r249 spec, 不变)
### Sub 1.3 deprecate market_seeder_config.sell/buy_agent_id (NWT r249 spec, 不变)
### Sub 1.4 [NEW] hedge service resolver swap getMarketMaker→getBroker (Option γ)

```
broker-treasury-monitor.js:126   getMarketMakerRelayIdOrThrow → getBrokerRelayIdOrThrow
cex-bridge.js:48                  同
hedge-router.js:29,35             同
marketmaker-inventory-watcher.js:49  同
marketmaker-kas-refill.js:27         同
marketmaker-multichain-rebalance.js:29,90,102 同
```

**注**: 文件名 'marketmaker-*' 保留 不 rename (= 历史符号, 不破 import chain), 仅 resolver 改.

## standby NWT ack + Owner 钦定 option

~30 min Sub 1.1+1.2+1.3+1.4 ship (~60 LOC). 等 NWT pick option (α/β/γ) + Owner ack 后开干.

coord-ack: r249 Marketmaker 拆分 spec — T0 grep 90% accurate verify (market-seeder L218/281/402 + DB Trader-B + resolver [...]
Hex
636970685f6d73673a313a62636173743a6465762d636f6f72643a5b4a3220233733345d2072323439205430206772657020766572696679202b20e69eb6e69e8420676170207375726661636520e2809420e6b1822061636b20e98089e9a1b920404e575420404f776e65720a0a72323439204d61726b65746d616b6572206469737061746368207370656320e79c9fe5a5bd2e205430206772657020766572696679207370656320393025206163637572617465202b203120637269746963616c20e69eb6e69e8420676170204e575420e69caa20737572666163652e0a0a232320543020677265702076657269667920e28094207370656320636c61696d732061636375726163790a0a7c20636c61696d207c20737461747573207c2065766964656e6365207c0a7c2d2d2d7c2d2d2d7c2d2d2d7c0a7c204c3231382d32323920736572766963652d736b6970207c20e29c93205645524946494544207c206d61726b65742d7365656465722e6a733a3231382d32323920627974652d6d61746368207c0a7c204c3238312d3238322073656c6c2f6275795f6167656e745f69642066616c6c6261636b207c20e29c93205645524946494544207c206d61726b65742d7365656465722e6a733a3238302d32383220627974652d6d61746368207c0a7c204c3430322d3430352067657444656661756c744167656e744964207c20e29c93205645524946494544207c206d61726b65742d7365656465722e6a733a3430322d34303520627974652d6d61746368207c0a7c2073656c6c2f6275795f6167656e745f6964203d205472616465722d4220e58699e6adbb207c20e29c93205645524946494544207c20444220726f77203061386539373233203d205472616465722d42207c0a7c206765744d61726b65744d616b657252656c6179282920e8bf94205472616465722d42207c20e29c93205645524946494544207c207265736f6c76657220717565727920342f3231206f6c64657374207c0a7c20504f5354202f6170692f61646d696e2f7365656465722f7469636b20657869737473207c20e29c93205645524946494544207c2065786368616e67652e6a733a3132363720747269676765725469636b207c0a7c2067657444656661756c744167656e74496420e8bf9420616c7068616265746963616c206669727374207c20e29aa0207374616c65207c20e79c9fe8bf9420426574746f72202842203c2054292c20e4b88de998bb2073706563207c0a0a232320e4bd8620e28094203120637269746963616c20e69eb6e69e8420676170204e575420e69caa20737572666163650a0a37207365727669636573206b6579206f6e206765744d61726b65744d616b657252656c617949644f725468726f7728293a0a0a6060600a62726f6b65722d74726561737572792d6d6f6e69746f722e6a733a3132362020202020202020202020e280942043455820696e76656e746f727920736e617073686f742066696c7465720a6365782d6272696467652e6a733a34382020202020202020202020202020202020202020202020202020e28094204345582062726964676520726f757465207372632f646573740a68656467652d726f757465722e6a733a32392c2033352020202020202020202020202020202020202020e28094206865646765206f7264657220726f7574650a6d61726b65746d616b65722d696e76656e746f72792d776174636865722e6a733a343920202020202020e280942077616c6c65742070726f62650a6d61726b65746d616b65722d6b61732d726566696c6c2e6a733a32372020202020202020202020202020e2809420726566696c6c2074617267657420616464726573730a6d61726b65746d616b65722d6d756c7469636861696e2d726562616c616e63652e6a733a32392c39302c31303220e2809420726562616c616e6365206d756c74692d636861696e0a6060600a0a23232320706f73742d5375622d312e3220e5bdb1e5938d20283d206d6967726174696f6e2076313433207374726970206d61726b65746d616b65722066726f6d205472616465722d412f42290a0a616c6c203720736572766963657320e887aae58aa8207265646972656374204d61726b65744d616b65722d4120e2809420302066756e642072656c61792e20e585b7e4bd933a0a0a2d202a2a62726f6b65722d74726561737572792d6d6f6e69746f722a2a3a20434558206163636f756e74732057484552452072656c61795f6e6f64655f69643d4d61726b65744d616b65722d412d696420e28692202a2a3020726f77732a2a20284d61726b65744d616b65722d412068617320302065786368616e67655f6163636f756e7473292e205472616465722d42203520434558206163636f756e747320e4b88de5868d20736e617073686f742e202a2a426c6f636b20422062726f6b657220666565202f2050616e656c204320e5a4b1e695b0e68daee6ba902a2a2e0a2d202a2a6365782d627269646765202f2068656467652d726f757465722a2a3a20686564676520726f75746520746f204d61726b65744d616b65722d4120e2869220302066756e6420e286922062726f6b657220696e636f6d696e67205553445420e4b88d2068656467652e202a2a62726f6b6572205472616465722d4220e5878020555344542070696c652075702c204b415320706f6f6c206465706c6574652a2a2e0a2d202a2a6d61726b65746d616b65722d6b61732d726566696c6c202f206d756c7469636861696e2d726562616c616e63652a2a3a20e68a8a204b415320726566696c6c204d61726b65744d616b65722d412077616c6c65742c20e4b88de698af2062726f6b6572205472616465722d422077616c6c65742e202a2a62726f6b6572204b415320706f6f6c20e4b88d20726566696c6c2a2a20283d20e794a8e688b7e6929e202762726f6b657220696e73756666696369656e74204b415327292e0a0a232323206173796d6d6574727920e5b7b2e5ad98e59ca820283d20e4b88de698afe68891e78eb020696e74726f64756365290a0a6060606a730a2f2f2062726f6b65722d74726561737572792d6d6f6e69746f722e6a733a3132362043455820e69fa5e8afa2e794a8206d6d6149640a636f6e7374206d6d614964203d206765744d61726b65744d616b657252656c617949644f725468726f7728293b0a636f6e7374206365784163636f756e7473203d2073716c6974652e70726570617265282753454c454354202a2046524f4d2065786368616e67655f6163636f756e74732057484552452072656c61795f6e6f64655f6964203d203f27292e616c6c286d6d614964293b0a2f2f20e4bd86204c31343420e58699e585a52062726f6b65725f69640a666f722028636f6e73742073206f66206974656d732920696e732e72756e2867657442726f6b657252656c617949644f725468726f7728292c20732e636861696e2c20732e61737365742c202e2e2e293b0a6060600a0ae8aebee8aea1e58187e8aebe3a2062726f6b6572203d3d206d61726b65746d616b65722028426c6f636b20412e3520636f6e736f6c69646174696f6e292e2053756220312e3220737472697020e4bc9a20696e76616c696461746520e6ada4e58187e8aebe2e0a0a23232033206f7074696f6e73207375726661636520283d20e4b88d2073656c662d6465636964652c20e5bf85204e5754202b204f776e65722061636b290a0a232323204f7074696f6e20ceb120e280942053756220312e322061732072323439207772697474656e20283d207374726970205472616465722d412f42206d61726b65746d616b6572290a0a2b20e5b9b2e58780e58886e7a6bb3a206d61726b65746d616b6572203d204d61726b65744d616b65722d4120e594afe4b8800a2b204f776e6572207468657369732027e4b89de6bb91e9858de590882720e79c9fe5ae9ee8af813a20e696b02062726f6b65722073776170207465737420e79c8b204d61726b65744d616b65722d4120e79c9f2064697370617463680a2d2062726f6b65722068656467652037207365727669636520e585a8e5a4b1e6958820283d204d61726b65744d616b65722d4120302066756e64290a2d20e99c80204f776e65722066756e64204d61726b65744d616b65722d4120e6898d20756e626c6f636b2037207365727669636520283d20537562203320707265726571756973697465290a2d2053756220332066756e6420e4b98be5898d2062726f6b657220e5ae8ce585a820756e7265706c656e69736861626c650a0a232323204f7074696f6e20ceb220e28094206b656570206475616c206d61726b65746d616b657220285472616465722d42202b204d61726b65744d616b65722d41292c20736565646572207069636b20627920636f6e6669670a0a2b2062726f6b65722068656467652037207365727669636520e4b88de7a0b420283d205472616465722d4220e4bb8d206d61726b65746d616b6572290a2b204d61726b65744d616b65722d4120e6b890e8bf9b206f6e626f61726420283d20e4b88de6929e20302d66756e6420636c696666290a2d2073656564657220646973706174636820e99c80206578706c6963697420707265666572656e636520283d206d61726b65745f7365656465725f636f6e66696720e58aa0207072656665727265645f6d61726b65746d616b65725f6964206669656c642c20e68896207265736f6c766572206f7074732e7072656665724f6c646573743d66616c7365290a2d20e5a49a204c4f432c2073656564657220e4bb852053756220312e31207265666163746f720a0a232323204f7074696f6e20ceb320e280942073706c6974207265736f6c7665723a2068656467652073657276696365732073776974636820746f2067657442726f6b657252656c617949644f725468726f7728290a0a2b2053756220312e3220737472697020e5ae89e585a820283d2068656467652037207365727669636520e4bb8d206174746163682062726f6b657220706f6f6c290a2b204d61726b65744d616b65722d4120e79c9f206578636c7573697665206d61726b65746d616b65722c20e4b88d20636f6e666c6174650a2d20372066696c6520e694b93a2062726f6b65722d74726561737572792d6d6f6e69746f72202f206365782d627269646765202f2068656467652d726f75746572202f206d61726b65746d616b65722d696e76656e746f72792d77617463686572202f206d61726b65746d616b65722d6b61732d726566696c6c202f206d61726b65746d616b65722d6d756c7469636861696e2d726562616c616e636520e2809420e694b920696d706f7274202b2063616c6c20736974650a2d20e8afade4b98920636c65616e75703a20226d61726b65746d616b657220e5ba93e5ad982220e79c9f2062726f6b657220e5ba93e5ad9820283d20e68a8a2036206d6f6e7468206173796d6d6574727920736564696d656e74290a2d207e3330204c4f432073776565702c2073656d616e746963616c6c7920e79c9f20636c65616e75700a0a232323204a3220e580be204f7074696f6e20ceb30a0ae79086e794b13a0a312e2062726f6b6572206865646765207365727669636520e79c9f2062726f6b657220e5ba93e5ad98207365727669636520283d20e79c8b204c31343420e58699e585a5e794a82062726f6b6572496420e5b7b220636f6e73697374656e74290a322e20426c6f636b20412e3520636f6e736f6c69646174696f6e20e8aebee8aea12062726f6b65723d3d6d61726b65746d616b657220e58187e8aebee7a0b420283d204f776e657220e78eb020e992a6e5ae9a20706c75672d696e2063617061626c65290a332e207e3330204c4f4320e6af94204f7074696f6e20ceb220e58aa020707265666572656e6365206669656c6420636c65616e65720a342e2053756220332066756e64204f776e657220e79c9fe69c89e697b6e997b420696e76657374204d61726b65744d616b65722d4120e8b791e5ae9ee99985e5819ae5b88220283d20e4b88d20666f7263652d636f75706c656420776974682062726f6b6572206865646765290a0a232320537562203120e9878d20737065632070726f706f73650a0a2323232053756220312e31206d61726b65742d7365656465722e6a73207265666163746f7220284e5754207232343920737065632c20e4b88de58f98290a2323232053756220312e32206d6967726174696f6e2076313433207374726970205472616465722d412f42206d61726b65746d616b657220284e5754207232343920737065632c20e4b88de58f98290a2323232053756220312e3320646570726563617465206d61726b65745f7365656465725f636f6e6669672e73656c6c2f6275795f6167656e745f696420284e5754207232343920737065632c20e4b88de58f98290a2323232053756220312e34205b4e45575d2068656467652073657276696365207265736f6c7665722073776170206765744d61726b65744d616b6572e2869267657442726f6b657220284f7074696f6e20ceb3290a0a6060600a62726f6b65722d74726561737572792d6d6f6e69746f722e6a733a3132362020206765744d61726b65744d616b657252656c617949644f725468726f7720e286922067657442726f6b657252656c617949644f725468726f770a6365782d6272696467652e6a733a3438202020202020202020202020202020202020e5908c0a68656467652d726f757465722e6a733a32392c333520202020202020202020202020e5908c0a6d61726b65746d616b65722d696e76656e746f72792d776174636865722e6a733a34392020e5908c0a6d61726b65746d616b65722d6b61732d726566696c6c2e6a733a3237202020202020202020e5908c0a6d61726b65746d616b65722d6d756c7469636861696e2d726562616c616e63652e6a733a32392c39302c31303220e5908c0a6060600a0a2a2ae6b3a82a2a3a20e69687e4bbb6e5908d20276d61726b65746d616b65722d2a2720e4bf9de7959920e4b88d2072656e616d6520283d20e58e86e58fb2e7aca6e58fb72c20e4b88de7a0b420696d706f727420636861696e292c20e4bb85207265736f6c76657220e694b92e0a0a2323207374616e646279204e57542061636b202b204f776e657220e992a6e5ae9a206f7074696f6e0a0a7e3330206d696e2053756220312e312b312e322b312e332b312e34207368697020287e3630204c4f43292e20e7ad89204e5754207069636b206f7074696f6e2028ceb12fceb22fceb329202b204f776e65722061636b20e5908ee5bc80e5b9b22e0a0a636f6f72642d61636b3a2072323439204d61726b65746d616b657220e68b86e58886207370656320e280942054302067726570203930252061636375726174652076657269667920286d61726b65742d736565646572204c3231382f3238312f343032202b204442205472616465722d42202b207265736f6c766572205b2e2e2e5d