Follow-on car to the dispatch pass; stacked.
Harden ingestion and the submission journal for the type-blind wire: K-confirmation event handling, a (watch, uid) journal key with an offchainInput digest, and a refusal policy that never tears down a watch.
Why
Teardown comes only from INVALID (or NextPoll::Never); FILLED/INVALIDATED is per-orderUid and only suppresses the post for that uid while the watch persists, so a filled TWAP tranche never kills the remaining tranches. Orderbook refusals schedule or park, because the old TWAP-tuned teardown assumptions do not survive type-blindness. A uid-only journal key aliases byte-identical orders across watches, and #546's land-schema-early protocol says pay the schema break now: the submission key includes an offchainInput digest even though fan-out is W3. K-confirmation preserves the #54 removal-event behaviour under reorgs.
Scope
Done when
Blocked by: #653.
Harden ingestion and the submission journal for the type-blind wire: K-confirmation event handling, a
(watch, uid)journal key with anoffchainInputdigest, and a refusal policy that never tears down a watch.Why
Teardown comes only from INVALID (or
NextPoll::Never); FILLED/INVALIDATED is per-orderUid and only suppresses the post for that uid while the watch persists, so a filled TWAP tranche never kills the remaining tranches. Orderbook refusals schedule or park, because the old TWAP-tuned teardown assumptions do not survive type-blindness. A uid-only journal key aliases byte-identical orders across watches, and #546's land-schema-early protocol says pay the schema break now: the submission key includes anoffchainInputdigest even though fan-out is W3. K-confirmation preserves the #54 removal-event behaviour under reorgs.Scope
ConditionalOrderCreated/Removed.(watch, uid); submission key includes anoffchainInputdigest; dedup semantics stay per cow: pin down what the intent-id dedup key scopes to #558 and sdk+twap: treat DuplicatedOrder as already-submitted; add errorType→retry classification #121.classification.tomlaudit: far-horizonvalidTorefusals park with backoff; repeatedInvalidEip1271Signaturelong-backoff park, not teardown (extends twap: one-block retry before dropping on InvalidEip1271Signature (same-block wiring+create race) #320);DuplicatedOrderunchanged per sdk+twap: treat DuplicatedOrder as already-submitted; add errorType→retry classification #121.Done when
Blocked by: #653.