{"record":{"id":"8ab966a4101d08de","repo":"nautechsystems/nautilus_trader","slug":"rpc-parsing-of-burn-event-is-not-defined-in-this-d","errorCode":null,"errorMessage":"RPC parsing of burn event is not defined in this dex: {}:{}","messagePattern":"RPC parsing of burn event is not defined in this dex: (.+?):(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/blockchain/src/exchanges/extended.rs","lineNumber":492,"sourceCode":"        } else {\n            anyhow::bail!(\n                \"RPC parsing of mint event is not defined in this dex: {}:{}\",\n                self.dex.chain,\n                self.dex.name\n            )\n        }\n    }\n\n    /// Parses a burn event from an RPC log.\n    ///\n    /// # Errors\n    ///\n    /// Returns an error if the DEX does not have an RPC burn event parser defined or if parsing fails.\n    pub fn parse_burn_event_rpc(&self, log: &RpcLog) -> anyhow::Result<BurnEvent> {\n        if let Some(parse_fn) = &self.parse_burn_event_rpc_fn {\n            parse_fn(self.dex.clone(), log)\n        } else {\n            anyhow::bail!(\n                \"RPC parsing of burn event is not defined in this dex: {}:{}\",\n                self.dex.chain,\n                self.dex.name\n            )\n        }\n    }\n\n    /// Parses an initialize event from an RPC log.\n    ///\n    /// # Errors\n    ///\n    /// Returns an error if the DEX does not have an RPC initialize event parser defined or if parsing fails.\n    pub fn parse_initialize_event_rpc(&self, log: &RpcLog) -> anyhow::Result<InitializeEvent> {\n        if let Some(parse_fn) = &self.parse_initialize_event_rpc_fn {\n            parse_fn(self.dex.clone(), log)\n        } else {\n            anyhow::bail!(\n                \"RPC parsing of initialize event is not defined in this dex: {}:{}\",","sourceCodeStart":474,"sourceCodeEnd":510,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/blockchain/src/exchanges/extended.rs#L474-L510","documentation":"Raised by parse_burn_event_rpc when no RPC burn-event parser (parse_burn_event_rpc_fn) is registered on the DEX. Burn events represent liquidity removal; when the parser slot is None the method bails with chain:name. Like the other parser-gap errors, it is a configuration/capability signal rather than malformed input.","triggerScenarios":"Calling dex.parse_burn_event_rpc(&log) on RPC liquidity-removal logs for a DEX that never registered an RPC burn parser.","commonSituations":"RPC-based liquidity tracking on HyperSync-only DEX adapters; incomplete new-DEX registration; forks with divergent Burn event signatures left unimplemented over RPC.","solutions":["Register parse_burn_event_rpc_fn for the DEX at construction time.","Use the DEX's HyperSync burn parser (parse_burn_event_hypersync) when RPC parsing is unsupported.","Filter burn topics away from DEXs lacking RPC support before dispatch.","Confirm the log's emitting contract maps to this DEX."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if !dex_supports(dex, DexEvent::BurnRpc) { return Ok(()); }","typeGuard":"fn has_rpc_burn_parser(dex: &Dex) -> bool { dex.parse_burn_event_rpc_fn.is_some() }","tryCatchPattern":"match dex.parse_burn_event_rpc(&log) {\n    Ok(evt) => handle_burn(evt),\n    Err(e) if e.to_string().contains(\"not defined in this dex\") => tracing::debug!(\"RPC burn parsing unsupported on {}\", dex.name()),\n    Err(e) => return Err(e),\n}","preventionTips":["Register burn parsers alongside mint parsers to keep liquidity tracking symmetric.","Gate RPC subscriptions on each DEX's registered parser set.","Confirm the emitting contract belongs to this DEX before parsing.","Include burn-event coverage in per-DEX integration tests."],"tags":["dex","rpc","event-parsing","liquidity","rust"],"backgroundTag":"unsupported-operation","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"}