{"record":{"id":"a60dea968ece951c","repo":"nautechsystems/nautilus_trader","slug":"rpc-parsing-of-pool-created-event-is-not-defined-i","errorCode":null,"errorMessage":"RPC parsing of pool created event is not defined in this dex: {}:{}","messagePattern":"RPC parsing of pool created event is not defined in this dex: (.+?):(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/blockchain/src/exchanges/extended.rs","lineNumber":441,"sourceCode":"        } else {\n            anyhow::bail!(\n                \"HyperSync parsing of CollectProtocol event is not defined in this dex: {}:{}\",\n                self.dex.chain,\n                self.dex.name\n            )\n        }\n    }\n\n    /// Parses a pool creation event from an RPC log.\n    ///\n    /// # Errors\n    ///\n    /// Returns an error if the DEX does not have an RPC pool creation event parser defined or if parsing fails.\n    pub fn parse_pool_created_event_rpc(&self, log: &RpcLog) -> anyhow::Result<PoolCreatedEvent> {\n        if let Some(parse_fn) = &self.parse_pool_created_event_rpc_fn {\n            parse_fn(log)\n        } else {\n            anyhow::bail!(\n                \"RPC 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 an RPC log.\n    ///\n    /// # Errors\n    ///\n    /// Returns an error if the DEX does not have an RPC swap event parser defined or if parsing fails.\n    pub fn parse_swap_event_rpc(&self, log: &RpcLog) -> anyhow::Result<SwapEvent> {\n        if let Some(parse_fn) = &self.parse_swap_event_rpc_fn {\n            parse_fn(self.dex.clone(), log)\n        } else {\n            anyhow::bail!(\n                \"RPC parsing of swap event is not defined in this dex: {}:{}\",","sourceCodeStart":423,"sourceCodeEnd":459,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/blockchain/src/exchanges/extended.rs#L423-L459","documentation":"Raised by parse_pool_created_event_rpc when no RPC parser for PoolCreated events (parse_pool_created_event_rpc_fn) is registered on the DEX. Unlike the HyperSync variants this takes an RpcLog; when the parser slot is None the method bails with chain:name. It means the adapter cannot decode factory pool-creation logs over the RPC transport.","triggerScenarios":"Calling dex.parse_pool_created_event_rpc(&log) with a log fetched via eth_getLogs/RPC subscription for a DEX that never registered an RPC pool-creation parser.","commonSituations":"RPC-based pool discovery on DEXs that only support HyperSync ingestion; new DEX integrations missing the factory-event parser; forks with different factory event signatures where a generic template omitted the RPC parser.","solutions":["Register parse_pool_created_event_rpc_fn for the DEX at construction.","Use the HyperSync ingestion path (parse_initialize_event_hypersync) if the DEX only defines HyperSync parsers.","Filter factory-created topics away from DEXs lacking RPC parser support.","Verify the emitting address is this DEX's factory before parsing."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if !dex_supports(dex, DexEvent::PoolCreatedRpc) { use_hypersync_discovery(dex)?; }","typeGuard":"fn has_rpc_pool_created_parser(dex: &Dex) -> bool { dex.parse_pool_created_event_rpc_fn.is_some() }","tryCatchPattern":"match dex.parse_pool_created_event_rpc(&log) {\n    Ok(evt) => handle_new_pool(evt),\n    Err(e) if e.to_string().contains(\"not defined in this dex\") => tracing::debug!(\"RPC pool-created parsing unsupported; use HyperSync path\"),\n    Err(e) => return Err(e),\n}","preventionTips":["Decide the transport (RPC vs HyperSync) per DEX up front and wire only that transport's parsers.","Route factory logs by emitting address to the correct DEX.","Add registration-time assertions that each DEX supports at least one discovery path.","Test RPC pool discovery for every newly added DEX."],"tags":["dex","rpc","event-parsing","pool-creation","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"}