{"record":{"id":"f6686e4565be945c","repo":"nautechsystems/nautilus_trader","slug":"hypersync-parsing-of-swap-event-is-not-defined-in","errorCode":null,"errorMessage":"HyperSync parsing of swap event is not defined in this dex: {}:{}","messagePattern":"HyperSync parsing of swap event is not defined in this dex: (.+?):(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/blockchain/src/exchanges/extended.rs","lineNumber":293,"sourceCode":"        } else {\n            anyhow::bail!(\n                \"HyperSync parsing of pool created event is not defined in this dex: {}:{}\",\n                self.dex.chain,\n                self.dex.name,\n            )\n        }\n    }\n\n    /// Parses a swap event from a HyperSync log.\n    ///\n    /// # Errors\n    ///\n    /// Returns an error if the DEX does not have a HyperSync swap event parser defined or if parsing fails.\n    pub fn parse_swap_event_hypersync(&self, log: &HypersyncLog) -> anyhow::Result<SwapEvent> {\n        if let Some(parse_fn) = &self.parse_swap_event_hypersync_fn {\n            parse_fn(self.dex.clone(), log)\n        } else {\n            anyhow::bail!(\n                \"HyperSync parsing of swap event is not defined in this dex: {}:{}\",\n                self.dex.chain,\n                self.dex.name\n            )\n        }\n    }\n\n    /// Parses a mint event from a HyperSync log.\n    ///\n    /// # Errors\n    ///\n    /// Returns an error if the DEX does not have a HyperSync mint event parser defined or if parsing fails.\n    pub fn parse_mint_event_hypersync(&self, log: &HypersyncLog) -> anyhow::Result<MintEvent> {\n        if let Some(parse_fn) = &self.parse_mint_event_hypersync_fn {\n            parse_fn(self.dex.clone(), log)\n        } else {\n            anyhow::bail!(\n                \"HyperSync parsing of mint event is not defined in this dex: {}:{}\",","sourceCodeStart":275,"sourceCodeEnd":311,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/blockchain/src/exchanges/extended.rs#L275-L311","documentation":"DexExtended::parse_swap_event_hypersync dispatches to the per-DEX HyperSync swap parser (parse_swap_event_hypersync_fn) and bails when no swap parser was defined for this DEX. The adapter cannot interpret swap logs via HyperSync for that DEX.","triggerScenarios":"Calling parse_swap_event_hypersync (e.g. from send_dex_event_log while processing HyperSync logs) for a DEX constructed without a swap parser function.","commonSituations":"HyperSync subscription includes swap topics for DEXes that lack a HyperSync swap parser; adapter wiring forgot to set the swap parser; generic log-dispatch code calls all parsers without per-DEX capability checks.","solutions":["Skip swap logs for DEXes without a HyperSync swap parser instead of erroring","Register the swap parser in the DEX adapter constructor if HyperSync swap support is intended","Filter the HyperSync query topics to only include events for DEXes with parsers","Route such DEXes through RPC-based event subscription"],"exampleFix":"// before\nlet swap = dex.parse_swap_event_hypersync(&log)?;\n// after\nmatch dex.swap_event_hypersync_support() {\n    Some(_) => { let swap = dex.parse_swap_event_hypersync(&log)?; ... }\n    None => tracing::debug!(\"swap hypersync parsing unsupported for {}\", dex.dex.name),\n}","handlingStrategy":"try-catch","validationCode":"if dex.parse_swap_event_hypersync_fn.is_none() {\n    tracing::debug!(\"no hypersync swap parser for {}\", dex.dex.name);\n    return Ok(()); // skip log\n}","typeGuard":"fn has_hypersync_swap_parser(dex: &DexExtended) -> bool {\n    dex.parse_swap_event_hypersync_fn.is_some()\n}","tryCatchPattern":"match dex.parse_swap_event_hypersync(&log) {\n    Ok(swap) => handle_swap(swap),\n    Err(e) if e.to_string().contains(\"not defined in this dex\") => {\n        tracing::debug!(\"swap parsing unsupported for {}\", dex.dex.name);\n    }\n    Err(e) => return Err(e),\n}","preventionTips":["Subscribe only to swap topics for DEXes with HyperSync swap parsers","Check capability in send_dex_event_log before dispatching","Wire the swap parser in all adapters intended for HyperSync sync"],"tags":["blockchain","hypersync","dex","swap","unsupported-operation"],"backgroundTag":"method-not-implemented","analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}