nautechsystems/nautilus_trader · error

HyperSync parsing of mint event is not defined in this dex:

Error message

HyperSync parsing of mint event is not defined in this dex: {}:{}

What it means

DexExtended::parse_mint_event_hypersync dispatches to the per-DEX HyperSync mint parser (parse_mint_event_hypersync_fn) and bails when no mint parser was defined for this DEX. Mint (liquidity-added) events cannot be interpreted via HyperSync for that DEX.

Source

Thrown at crates/adapters/blockchain/src/exchanges/extended.rs:310

        } else {
            anyhow::bail!(
                "HyperSync parsing of swap event is not defined in this dex: {}:{}",
                self.dex.chain,
                self.dex.name
            )
        }
    }

    /// Parses a mint event from a HyperSync log.
    ///
    /// # Errors
    ///
    /// Returns an error if the DEX does not have a HyperSync mint event parser defined or if parsing fails.
    pub fn parse_mint_event_hypersync(&self, log: &HypersyncLog) -> anyhow::Result<MintEvent> {
        if let Some(parse_fn) = &self.parse_mint_event_hypersync_fn {
            parse_fn(self.dex.clone(), log)
        } else {
            anyhow::bail!(
                "HyperSync parsing of mint event is not defined in this dex: {}:{}",
                self.dex.chain,
                self.dex.name
            )
        }
    }

    /// Parses a burn event from a HyperSync log.
    ///
    /// # Errors
    ///
    /// Returns an error if the DEX does not have a HyperSync burn event parser defined or if parsing fails.
    pub fn parse_burn_event_hypersync(&self, log: &HypersyncLog) -> anyhow::Result<BurnEvent> {
        if let Some(parse_fn) = &self.parse_burn_event_hypersync_fn {
            parse_fn(self.dex.clone(), log)
        } else {
            anyhow::bail!(
                "HyperSync parsing of burn event is not defined in this dex: {}:{}",

View on GitHub (pinned to 18893faf8b)

Solutions

  1. Skip mint logs for DEXes without a HyperSync mint parser instead of erroring
  2. Register the mint parser in the DEX adapter constructor if HyperSync mint support is intended
  3. Limit HyperSync topic subscriptions to supported events per DEX
  4. Use RPC log subscription for DEXes without HyperSync mint parsing

Example fix

// before
let mint = dex.parse_mint_event_hypersync(&log)?;
// after
if let Some(parse) = dex.mint_event_hypersync_parser() {
    let mint = parse(dex.dex.clone(), &log)?;
} else {
    tracing::debug!("mint hypersync parsing unsupported for {}", dex.dex.name);
}
Defensive patterns

Strategy: try-catch

Validate before calling

if dex.parse_mint_event_hypersync_fn.is_none() {
    tracing::debug!("no hypersync mint parser for {}", dex.dex.name);
    return Ok(()); // skip log
}

Type guard

fn has_hypersync_mint_parser(dex: &DexExtended) -> bool {
    dex.parse_mint_event_hypersync_fn.is_some()
}

Try / catch

match dex.parse_mint_event_hypersync(&log) {
    Ok(mint) => handle_mint(mint),
    Err(e) if e.to_string().contains("not defined in this dex") => {
        tracing::debug!("mint parsing unsupported for {}", dex.dex.name);
    }
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: Calling parse_mint_event_hypersync (e.g. from send_dex_event_log while processing HyperSync logs) for a DEX constructed without a mint parser function.

Common situations: HyperSync subscription includes mint topics for DEXes lacking a HyperSync mint parser; adapter wiring omitted the mint parser; a generic log dispatcher calls all event parsers without checking per-DEX support.

Related errors


AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08). Data as JSON: /api/errors/856656c4c37f2460. Report an issue: GitHub.