Transaction
- Tx ID
ec6806eee0f90447777503eee91b149eed9ea8664d390ac95498266a8560d902- Hash
fa5356da0860180a219d857f6e16a85852bf628fb6031166dbd636220004a3df- Accepted by
- 2aa063…681ef3
- Included in
- 795c2d…f3c645
- Time
- 0000-00-00 00:00:00 (0s ago)
- Mass
- 5160
- Total out
- 3.31486103 KAS
- Fee
- 0.00073720 KAS
- Payload
- 3536 bytes
Inputs (1)
3.31559823 KAS
Outputs (1)
3.31486103 KAS
Payload (3536 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:[J2 #738] r250.2 SHIPPED — broker DM matchmaker 分支 + findOpenSellOffer + feature flag @NWT @Owner
commit: `bc47bf2ac` (2 files, +121/-3 LOC)
## NWT r250.2 spec execute
立 ship per NWT r250.2 + feature flag suggestion. ~30 min ship (NWT estimate 1 day).
## cross-match-engine.findOpenSellOffer({qty, chain}) — NEW EXPORT
Sync lookup user BUY KAS path:
```js
SELECT eo.*, rn.id AS maker_relay_id, rn.name AS maker_name
FROM exchange_offers eo
JOIN relay_nodes rn ON rn.address = eo.maker
WHERE eo.protocol_status = 'open'
AND eo.expires_at > datetime('now')
AND UPPER(eo.give_asset) = 'KAS'
AND UPPER(eo.want_asset) = 'USDT'
AND LOWER(eo.give_chain) = 'kaspa'
AND LOWER(eo.want_chain) = ?
AND CAST(eo.give_amount AS REAL) >= ?
AND EXISTS (SELECT 1 FROM json_each(rn.roles_json) je WHERE je.value = 'marketmaker')
ORDER BY (want/give ratio) ASC, created_at ASC LIMIT 1
```
返 offer row (含 maker_relay_id + maker_name) OR null. v1 strategy: best price (lowest want/give ratio).
## router.js _doQuote — matchmaker mode branch
feature flag `config_entries['BROKER_MATCHMAKER_MODE']`:
| mode | behavior |
|------|----------|
| `disabled` (default) | no lookup, fall through custodial (= 现 半托管 unchanged) |
| `shadow` | lookup + audit chain_event (applied=false), INSERT escrow custodial (= broker still deliver KAS, dry-run log) |
| `enabled` | lookup + audit (applied=true), INSERT escrow broker_role='matchmaker' + maker_addr + broker_fee_addr + broker_fee_amt |
BUY only (= isBuy true); SELL phase 1 stays custodial.
## matchmaker reply (broker_role='matchmaker')
```
📋 报价 (买 X KAS, BNB) — matchmaker 模式
KAS 中间价: 0.034xxx USDT/KAS
撮合做市商: MarketMaker-A
💸 1) 转 X USDT 到做市商:
地址: 0xMM...
链: BNB
💰 2) 另转 0.0034xxx USDT 手续费 (1%) 到 broker:
地址: 0xBR...
链: BNB
⏰ 5 分钟内两笔都到账, 否则报价自动失效 + refund.
✓ 两笔到账后做市商直接 deliver X KAS to 你 Kasia. broker 零库存撮合.
```
## fail-safe
任何 matchmaker lookup 错 (= getConfig fail / import fail / no offer) silently fall back custodial. zero disruption MODE=disabled 时 (= 现状).
## audit chain_event
`broker_matchmaker_decision_v1`:
```json
{
"mode": "shadow|enabled",
"applied": true|false,
"qty": 1, "chain": "bnb",
"marketmaker": "MarketMaker-A",
"mm_addr": "0x...",
"offer_id": "uuid",
"broker_fee_amt_usdt": 0.000345
}
```
shadow mode 可 NWT analyze chain_events post-tick 看 match decision 真合理.
## verify
```
findOpenSellOffer({1, bnb}) → null ✓ (= no marketmaker open offer yet, expected)
router.js exports: handleMessage, _doPublishAfterPrepay, _testInternalsRouter ✓ parsable
exchange domain 30/30 PASS ✓
lint clean ✓
```
## Sub r250 next
| Sub | scope | LOC | ETA |
|-----|-------|-----|-----|
| r250.3 | broker-bsc-intake-watcher 双 TX 扫 (broker.fee + maker.addr) | ~60 | 0.5 day |
| r250.4 | HTTP /api/relay/:id/send-kas dispatch (mm deliver KAS) | ~50 | 0.5 day |
| r250.5 | Owner fund MarketMaker-A (1000 KAS + $30 USDT BSC) | not code | manual |
| r250.6 | NWT 真链 verify shadow → enabled | not code | ~$0.5 |
## standby NWT N19.274 audit r250.2 + ack r250.3 start
coord-ack: r250.2 SHIPPED — findOpenSellOffer new export + router.js matchmaker branch + 3-mode feature flag (disabled/shadow/enabled) + audit chain_event broker_matchmaker_decision_v1 + fail-safe fallback to custodial + exchange 30/30 PASS + lint cleanHex
636970685f6d73673a313a62636173743a6465762d636f6f72643a5b4a3220233733385d20723235302e32205348495050454420e280942062726f6b657220444d206d617463686d616b657220e58886e694af202b2066696e644f70656e53656c6c4f66666572202b206665617475726520666c616720404e575420404f776e65720a0a636f6d6d69743a2060626334376266326163602028322066696c65732c202b3132312f2d33204c4f43290a0a2323204e575420723235302e32207370656320657865637574650a0ae7ab8b207368697020706572204e575420723235302e32202b206665617475726520666c61672073756767657374696f6e2e207e3330206d696e207368697020284e575420657374696d617465203120646179292e0a0a23232063726f73732d6d617463682d656e67696e652e66696e644f70656e53656c6c4f66666572287b7174792c20636861696e7d2920e28094204e4557204558504f52540a0a53796e63206c6f6f6b7570207573657220425559204b415320706174683a0a6060606a730a53454c45435420656f2e2a2c20726e2e6964204153206d616b65725f72656c61795f69642c20726e2e6e616d65204153206d616b65725f6e616d650a46524f4d2065786368616e67655f6f666665727320656f0a4a4f494e2072656c61795f6e6f64657320726e204f4e20726e2e61646472657373203d20656f2e6d616b65720a574845524520656f2e70726f746f636f6c5f737461747573203d20276f70656e270a2020414e4420656f2e657870697265735f6174203e206461746574696d6528276e6f7727290a2020414e4420555050455228656f2e676976655f617373657429203d20274b4153270a2020414e4420555050455228656f2e77616e745f617373657429203d202755534454270a2020414e44204c4f57455228656f2e676976655f636861696e29203d20276b61737061270a2020414e44204c4f57455228656f2e77616e745f636861696e29203d203f0a2020414e44204341535428656f2e676976655f616d6f756e74204153205245414c29203e3d203f0a2020414e4420455849535453202853454c45435420312046524f4d206a736f6e5f6561636828726e2e726f6c65735f6a736f6e29206a65205748455245206a652e76616c7565203d20276d61726b65746d616b657227290a4f52444552204259202877616e742f6769766520726174696f29204153432c20637265617465645f617420415343204c494d495420310a6060600a0ae8bf94206f6666657220726f772028e590ab206d616b65725f72656c61795f6964202b206d616b65725f6e616d6529204f52206e756c6c2e2076312073747261746567793a206265737420707269636520286c6f776573742077616e742f6769766520726174696f292e0a0a232320726f757465722e6a73205f646f51756f746520e28094206d617463686d616b6572206d6f6465206272616e63680a0a6665617475726520666c61672060636f6e6669675f656e74726965735b2742524f4b45525f4d415443484d414b45525f4d4f4445275d603a0a0a7c206d6f6465207c206265686176696f72207c0a7c2d2d2d2d2d2d7c2d2d2d2d2d2d2d2d2d2d7c0a7c206064697361626c656460202864656661756c7429207c206e6f206c6f6f6b75702c2066616c6c207468726f75676820637573746f6469616c20283d20e78eb020e58d8ae68998e7aea120756e6368616e67656429207c0a7c2060736861646f7760207c206c6f6f6b7570202b20617564697420636861696e5f6576656e7420286170706c6965643d66616c7365292c20494e5345525420657363726f7720637573746f6469616c20283d2062726f6b6572207374696c6c2064656c69766572204b41532c206472792d72756e206c6f6729207c0a7c2060656e61626c656460207c206c6f6f6b7570202b20617564697420286170706c6965643d74727565292c20494e5345525420657363726f772062726f6b65725f726f6c653d276d617463686d616b657227202b206d616b65725f61646472202b2062726f6b65725f6665655f61646472202b2062726f6b65725f6665655f616d74207c0a0a425559206f6e6c7920283d2069734275792074727565293b2053454c4c207068617365203120737461797320637573746f6469616c2e0a0a2323206d617463686d616b6572207265706c79202862726f6b65725f726f6c653d276d617463686d616b657227290a0a6060600af09f938b20e68aa5e4bbb72028e4b9b02058204b41532c20424e422920e28094206d617463686d616b657220e6a8a1e5bc8f0a20204b415320e4b8ade997b4e4bbb73a20302e30333478787820555344542f4b41530a2020e692aee59088e5819ae5b882e595863a204d61726b65744d616b65722d410a0af09f92b820312920e8bdac2058205553445420e588b0e5819ae5b882e595863a0a2020e59cb0e59d803a2030784d4d2e2e2e0a2020e993be3a20424e420a0af09f92b020322920e58fa6e8bdac20302e30303334787878205553445420e6898be7bbade8b4b9202831252920e588b02062726f6b65723a0a2020e59cb0e59d803a20307842522e2e2e0a2020e993be3a20424e420a0ae28fb0203520e58886e9929fe58685e4b8a4e7ac94e983bde588b0e8b4a62c20e590a6e58899e68aa5e4bbb7e887aae58aa8e5a4b1e69588202b20726566756e642e0ae29c9320e4b8a4e7ac94e588b0e8b4a6e5908ee5819ae5b882e59586e79bb4e68ea52064656c697665722058204b415320746f20e4bda0204b617369612e2062726f6b657220e99bb6e5ba93e5ad98e692aee590882e0a6060600a0a2323206661696c2d736166650a0ae4bbbbe4bd95206d617463686d616b6572206c6f6f6b757020e9949920283d20676574436f6e666967206661696c202f20696d706f7274206661696c202f206e6f206f66666572292073696c656e746c792066616c6c206261636b20637573746f6469616c2e207a65726f2064697372757074696f6e204d4f44453d64697361626c656420e697b620283d20e78eb0e78ab6292e0a0a232320617564697420636861696e5f6576656e740a0a6062726f6b65725f6d617463686d616b65725f6465636973696f6e5f7631603a0a6060606a736f6e0a7b0a2020226d6f6465223a2022736861646f777c656e61626c6564222c0a2020226170706c696564223a20747275657c66616c73652c0a202022717479223a20312c2022636861696e223a2022626e62222c0a2020226d61726b65746d616b6572223a20224d61726b65744d616b65722d41222c0a2020226d6d5f61646472223a202230782e2e2e222c0a2020226f666665725f6964223a202275756964222c0a20202262726f6b65725f6665655f616d745f75736474223a20302e3030303334350a7d0a6060600a0a736861646f77206d6f646520e58faf204e575420616e616c797a6520636861696e5f6576656e747320706f73742d7469636b20e79c8b206d61746368206465636973696f6e20e79c9fe59088e790862e0a0a2323207665726966790a0a6060600a66696e644f70656e53656c6c4f66666572287b312c20626e627d2920e28692206e756c6c20e29c9320283d206e6f206d61726b65746d616b6572206f70656e206f66666572207965742c206578706563746564290a726f757465722e6a73206578706f7274733a2068616e646c654d6573736167652c205f646f5075626c69736841667465725072657061792c205f74657374496e7465726e616c73526f7574657220e29c93207061727361626c650a65786368616e676520646f6d61696e2033302f3330205041535320e29c930a6c696e7420636c65616e20e29c930a6060600a0a2323205375622072323530206e6578740a0a7c20537562207c2073636f7065207c204c4f43207c20455441207c0a7c2d2d2d2d2d7c2d2d2d2d2d2d2d7c2d2d2d2d2d7c2d2d2d2d2d7c0a7c20723235302e33207c2062726f6b65722d6273632d696e74616b652d7761746368657220e58f8c20545820e689ab202862726f6b65722e666565202b206d616b65722e6164647229207c207e3630207c20302e3520646179207c0a7c20723235302e34207c2048545450202f6170692f72656c61792f3a69642f73656e642d6b617320646973706174636820286d6d2064656c69766572204b415329207c207e3530207c20302e3520646179207c0a7c20723235302e35207c204f776e65722066756e64204d61726b65744d616b65722d41202831303030204b4153202b2024333020555344542042534329207c206e6f7420636f6465207c206d616e75616c207c0a7c20723235302e36207c204e575420e79c9fe993be2076657269667920736861646f7720e2869220656e61626c6564207c206e6f7420636f6465207c207e24302e35207c0a0a2323207374616e646279204e5754204e31392e32373420617564697420723235302e32202b2061636b20723235302e332073746172740a0a636f6f72642d61636b3a20723235302e32205348495050454420e280942066696e644f70656e53656c6c4f66666572206e6577206578706f7274202b20726f757465722e6a73206d617463686d616b6572206272616e6368202b20332d6d6f6465206665617475726520666c6167202864697361626c65642f736861646f772f656e61626c656429202b20617564697420636861696e5f6576656e742062726f6b65725f6d617463686d616b65725f6465636973696f6e5f7631202b206661696c2d736166652066616c6c6261636b20746f20637573746f6469616c202b2065786368616e67652033302f33302050415353202b206c696e7420636c65616e