Part of #138. Follow-on train (Wave G); builds on the staged cow-venue crate (#235/#236) and the intent core (#137).
Scope. Add the adapter feature slice to crates/cow-venue: the venue-adapter cdylib implementing the #137 VenueAdapter trait / #[nexum::venue] over the venue-adapter world — derive-header, submit (including the requires-signing(unsigned-tx) variant for on-chain settlement), and status polling. Route outbound orderbook calls through typed transport wrappers carrying a per-request timeout — this resolves #41 as adapter transport middleware rather than patching crates/shepherd-cow-host/src/cow_orderbook.rs. appData travels as the 32-byte hash (from #133).
Blocked by: the router-watch bound (the intent-router status-watch eviction issue) before this non-instant venue ships.
Acceptance. Adapter builds to wasm; submit+status conform to the venue-adapter world; a hung endpoint errors within the timeout; unsigned-tx submit routes back through the host guard path. Closes #41 on merge.
Part of #138. Follow-on train (Wave G); builds on the staged cow-venue crate (#235/#236) and the intent core (#137).
Scope. Add the
adapterfeature slice tocrates/cow-venue: the venue-adapter cdylib implementing the #137VenueAdaptertrait /#[nexum::venue]over the venue-adapter world — derive-header, submit (including therequires-signing(unsigned-tx)variant for on-chain settlement), and status polling. Route outbound orderbook calls through typed transport wrappers carrying a per-request timeout — this resolves #41 as adapter transport middleware rather than patchingcrates/shepherd-cow-host/src/cow_orderbook.rs. appData travels as the 32-byte hash (from #133).Blocked by: the router-watch bound (the intent-router status-watch eviction issue) before this non-instant venue ships.
Acceptance. Adapter builds to wasm; submit+status conform to the venue-adapter world; a hung endpoint errors within the timeout; unsigned-tx submit routes back through the host guard path. Closes #41 on merge.