// file: kb_lib/src/lib.rs //! Core library of the `khadhroony-bobobot` workspace. //! //! This crate contains the reusable backend logic shared by the desktop //! application and future clients. #![deny(unreachable_pub)] #![warn(missing_docs)] mod config; mod constants; mod db; mod detect; mod dex; mod dex_decode; mod dex_detect; mod error; mod http_client; mod http_pool; mod json_rpc_ws; mod launch_origin; mod pair_analytic_signal; mod pair_candle_aggregation; mod pair_candle_query; mod pool_origin; mod solana_pubsub_ws; mod token_backfill; mod tracing; mod trade_aggregation; mod tx_model; mod tx_resolution; mod types; mod wallet_holding_observation; mod wallet_observation; mod ws_client; mod ws_hybrid_observation; mod ws_hybrid_runtime; mod ws_hybrid_watch; mod ws_manager; pub use config::KbAppConfig; pub use config::KbConfig; pub use config::KbDataConfig; pub use config::KbDatabaseConfig; pub use config::KbHttpEndpointConfig; pub use config::KbLoggingConfig; pub use config::KbSolanaConfig; pub use config::KbSqliteDatabaseConfig; pub use config::KbWsEndpointConfig; pub use constants::*; pub use db::KbAnalysisSignalDto; pub use db::KbAnalysisSignalEntity; pub use db::KbAnalysisSignalSeverity; pub use db::KbChainInstructionDto; pub use db::KbChainInstructionEntity; pub use db::KbChainSlotDto; pub use db::KbChainSlotEntity; pub use db::KbChainTransactionDto; pub use db::KbChainTransactionEntity; pub use db::KbDatabase; pub use db::KbDatabaseBackend; pub use db::KbDatabaseConnection; pub use db::KbDbMetadataDto; pub use db::KbDbMetadataEntity; pub use db::KbDbRuntimeEventDto; pub use db::KbDbRuntimeEventEntity; pub use db::KbDbRuntimeEventLevel; pub use db::KbDexDecodedEventDto; pub use db::KbDexDecodedEventEntity; pub use db::KbDexDto; pub use db::KbDexEntity; pub use db::KbKnownHttpEndpointDto; pub use db::KbKnownHttpEndpointEntity; pub use db::KbKnownWsEndpointDto; pub use db::KbKnownWsEndpointEntity; pub use db::KbLaunchAttributionDto; pub use db::KbLaunchAttributionEntity; pub use db::KbLaunchSurfaceDto; pub use db::KbLaunchSurfaceEntity; pub use db::KbLaunchSurfaceKeyDto; pub use db::KbLaunchSurfaceKeyEntity; pub use db::KbLiquidityEventDto; pub use db::KbLiquidityEventEntity; pub use db::KbLiquidityEventKind; pub use db::KbObservationSourceKind; pub use db::KbObservedTokenDto; pub use db::KbObservedTokenEntity; pub use db::KbObservedTokenStatus; pub use db::KbOnchainObservationDto; pub use db::KbOnchainObservationEntity; pub use db::KbPairAnalyticSignalDto; pub use db::KbPairAnalyticSignalEntity; pub use db::KbPairCandleDto; pub use db::KbPairCandleEntity; pub use db::KbPairDto; pub use db::KbPairEntity; pub use db::KbPairMetricDto; pub use db::KbPairMetricEntity; pub use db::KbPoolDto; pub use db::KbPoolEntity; pub use db::KbPoolKind; pub use db::KbPoolListingDto; pub use db::KbPoolListingEntity; pub use db::KbPoolOriginDto; pub use db::KbPoolOriginEntity; pub use db::KbPoolStatus; pub use db::KbPoolTokenDto; pub use db::KbPoolTokenEntity; pub use db::KbPoolTokenRole; pub use db::KbSwapDto; pub use db::KbSwapEntity; pub use db::KbSwapTradeSide; pub use db::KbTokenBurnEventDto; pub use db::KbTokenBurnEventEntity; pub use db::KbTokenDto; pub use db::KbTokenEntity; pub use db::KbTokenMintEventDto; pub use db::KbTokenMintEventEntity; pub use db::KbTradeEventDto; pub use db::KbTradeEventEntity; pub use db::KbWalletDto; pub use db::KbWalletEntity; pub use db::KbWalletHoldingDto; pub use db::KbWalletHoldingEntity; pub use db::KbWalletParticipationDto; pub use db::KbWalletParticipationEntity; pub use db::delete_chain_instructions_by_transaction_id; pub use db::get_chain_slot; pub use db::get_chain_transaction_by_signature; pub use db::get_db_metadata; pub use db::get_dex_by_code; pub use db::get_dex_decoded_event_by_key; pub use db::get_known_http_endpoint; pub use db::get_known_ws_endpoint; pub use db::get_launch_attribution_by_decoded_event_id; pub use db::get_launch_surface_by_code; pub use db::get_launch_surface_key_by_match; pub use db::get_observed_token_by_mint; pub use db::get_pair_analytic_signal_by_key; pub use db::get_pair_by_pool_id; pub use db::get_pair_candle_by_key; pub use db::get_pair_metric_by_pair_id; pub use db::get_pool_by_address; pub use db::get_pool_listing_by_pool_id; pub use db::get_pool_origin_by_pool_id; pub use db::get_token_by_mint; pub use db::get_trade_event_by_decoded_event_id; pub use db::get_wallet_by_address; pub use db::get_wallet_holding_by_wallet_and_token; pub use db::get_wallet_participation_by_unique_key; pub use db::insert_analysis_signal; pub use db::insert_chain_instruction; pub use db::insert_db_runtime_event; pub use db::insert_onchain_observation; pub use db::list_chain_instructions_by_transaction_id; pub use db::list_db_metadata; pub use db::list_dex_decoded_events_by_transaction_id; pub use db::list_dexes; pub use db::list_known_http_endpoints; pub use db::list_known_ws_endpoints; pub use db::list_launch_attributions_by_pool_id; pub use db::list_launch_surface_keys_by_surface_id; pub use db::list_launch_surfaces; pub use db::list_observed_tokens; pub use db::list_pair_analytic_signals_by_pair_id; pub use db::list_pair_candles_by_pair_and_timeframe; pub use db::list_pair_metrics; pub use db::list_pairs; pub use db::list_pool_listings; pub use db::list_pool_origins; pub use db::list_pool_tokens_by_pool_id; pub use db::list_pools; pub use db::list_recent_analysis_signals; pub use db::list_recent_chain_slots; pub use db::list_recent_chain_transactions; pub use db::list_recent_db_runtime_events; pub use db::list_recent_liquidity_events; pub use db::list_recent_onchain_observations; pub use db::list_recent_swaps; pub use db::list_recent_token_burn_events; pub use db::list_recent_token_mint_events; pub use db::list_trade_events_by_pair_id; pub use db::list_trade_events_by_transaction_id; pub use db::list_wallet_holdings_by_wallet_id; pub use db::list_wallet_participations_by_pool_id; pub use db::list_wallet_participations_by_wallet_id; pub use db::list_wallets; pub use db::upsert_chain_slot; pub use db::upsert_chain_transaction; pub use db::upsert_db_metadata; pub use db::upsert_dex; pub use db::upsert_dex_decoded_event; pub use db::upsert_known_http_endpoint; pub use db::upsert_known_ws_endpoint; pub use db::upsert_launch_attribution; pub use db::upsert_launch_surface; pub use db::upsert_launch_surface_key; pub use db::upsert_liquidity_event; pub use db::upsert_observed_token; pub use db::upsert_pair; pub use db::upsert_pair_analytic_signal; pub use db::upsert_pair_candle; pub use db::upsert_pair_metric; pub use db::upsert_pool; pub use db::upsert_pool_listing; pub use db::upsert_pool_origin; pub use db::upsert_pool_token; pub use db::upsert_swap; pub use db::upsert_token; pub use db::upsert_token_burn_event; pub use db::upsert_token_mint_event; pub use db::upsert_trade_event; pub use db::upsert_wallet; pub use db::upsert_wallet_holding; pub use db::upsert_wallet_participation; pub use detect::KbDetectionObservationInput; pub use detect::KbDetectionPersistenceService; pub use detect::KbDetectionPoolCandidateInput; pub use detect::KbDetectionPoolCandidateResult; pub use detect::KbDetectionSignalInput; pub use detect::KbDetectionTokenCandidateInput; pub use detect::KbDetectionTokenCandidateResult; pub use detect::KbSolanaWsDetectionOutcome; pub use detect::KbSolanaWsDetectionService; pub use detect::KbWsDetectionNotificationEnvelope; pub use detect::KbWsDetectionRelay; pub use detect::KbWsDetectionRelayStats; pub use dex::KB_DEXLAB_PROGRAM_ID; pub use dex::KB_FLUXBEAM_PROGRAM_ID; pub use dex::KB_METEORA_DAMM_V1_PROGRAM_ID; pub use dex::KB_METEORA_DAMM_V2_PROGRAM_ID; pub use dex::KB_METEORA_DBC_PROGRAM_ID; pub use dex::KB_ORCA_WHIRLPOOLS_PROGRAM_ID; pub use dex::KB_PUMP_FUN_PROGRAM_ID; pub use dex::KB_PUMP_SWAP_PROGRAM_ID; pub use dex::KB_RAYDIUM_AMM_V4_PROGRAM_ID; pub use dex::KbDexlabCreatePoolDecoded; pub use dex::KbDexlabDecodedEvent; pub use dex::KbDexlabDecoder; pub use dex::KbDexlabSwapDecoded; pub use dex::KbFluxbeamCreatePoolDecoded; pub use dex::KbFluxbeamDecodedEvent; pub use dex::KbFluxbeamDecoder; pub use dex::KbFluxbeamSwapDecoded; pub use dex::KbMeteoraDammV1CreatePoolDecoded; pub use dex::KbMeteoraDammV1DecodedEvent; pub use dex::KbMeteoraDammV1Decoder; pub use dex::KbMeteoraDammV1SwapDecoded; pub use dex::KbMeteoraDammV2CreatePoolDecoded; pub use dex::KbMeteoraDammV2DecodedEvent; pub use dex::KbMeteoraDammV2Decoder; pub use dex::KbMeteoraDammV2SwapDecoded; pub use dex::KbMeteoraDbcCreatePoolDecoded; pub use dex::KbMeteoraDbcDecodedEvent; pub use dex::KbMeteoraDbcDecoder; pub use dex::KbMeteoraDbcSwapDecoded; pub use dex::KbOrcaWhirlpoolsCreatePoolDecoded; pub use dex::KbOrcaWhirlpoolsDecodedEvent; pub use dex::KbOrcaWhirlpoolsDecoder; pub use dex::KbOrcaWhirlpoolsSwapDecoded; pub use dex::KbPumpFunCreateV2TokenDecoded; pub use dex::KbPumpFunDecodedEvent; pub use dex::KbPumpFunDecoder; pub use dex::KbPumpSwapDecodedEvent; pub use dex::KbPumpSwapDecoder; pub use dex::KbPumpSwapTradeDecoded; pub use dex::KbRaydiumAmmV4DecodedEvent; pub use dex::KbRaydiumAmmV4Decoder; pub use dex::KbRaydiumAmmV4Initialize2PoolDecoded; pub use dex_decode::KbDexDecodeService; pub use dex_detect::KbDexDetectService; pub use dex_detect::KbDexPoolDetectionResult; pub use error::KbError; pub use http_client::HttpClient; pub use http_client::KbHttpEndpointStatus; pub use http_client::KbHttpMethodClass; pub use http_client::KbJsonRpcHttpErrorObject; pub use http_client::KbJsonRpcHttpErrorResponse; pub use http_client::KbJsonRpcHttpRequest; pub use http_client::KbJsonRpcHttpResponse; pub use http_client::KbJsonRpcHttpSuccessResponse; pub use http_client::parse_kb_json_rpc_http_response_text; pub use http_client::parse_kb_json_rpc_http_response_value; pub use http_pool::HttpEndpointPool; pub use http_pool::KbHttpPoolClientSnapshot; pub use json_rpc_ws::KbJsonRpcWsErrorObject; pub use json_rpc_ws::KbJsonRpcWsErrorResponse; pub use json_rpc_ws::KbJsonRpcWsIncomingMessage; pub use json_rpc_ws::KbJsonRpcWsNotification; pub use json_rpc_ws::KbJsonRpcWsNotificationParams; pub use json_rpc_ws::KbJsonRpcWsRequest; pub use json_rpc_ws::KbJsonRpcWsSuccessResponse; pub use json_rpc_ws::kb_is_probable_json_rpc_object_text; pub use json_rpc_ws::parse_kb_json_rpc_ws_incoming_text; pub use json_rpc_ws::parse_kb_json_rpc_ws_incoming_value; pub use launch_origin::KbLaunchAttributionResult; pub use launch_origin::KbLaunchOriginService; pub use pair_analytic_signal::KbPairAnalyticSignalResult; pub use pair_analytic_signal::KbPairAnalyticSignalService; pub use pair_candle_aggregation::KbPairCandleAggregationResult; pub use pair_candle_aggregation::KbPairCandleAggregationService; pub use pair_candle_query::KbPairCandleQueryService; pub use pool_origin::KbPoolOriginResult; pub use pool_origin::KbPoolOriginService; pub use solana_pubsub_ws::KbSolanaWsTypedNotification; pub use solana_pubsub_ws::parse_kb_solana_ws_typed_notification; pub use solana_pubsub_ws::parse_kb_solana_ws_typed_notification_from_event; pub use token_backfill::KbTokenBackfillResult; pub use token_backfill::KbTokenBackfillService; pub use tracing::KbTracingGuard; pub use tracing::init_tracing; pub use trade_aggregation::KbTradeAggregationResult; pub use trade_aggregation::KbTradeAggregationService; pub use tx_model::KbTransactionModelService; pub use tx_resolution::KbTransactionResolutionOutcome; pub use tx_resolution::KbTransactionResolutionRequest; pub use tx_resolution::KbTransactionResolutionService; pub use tx_resolution::KbWsTransactionResolutionEnvelope; pub use tx_resolution::KbWsTransactionResolutionRelay; pub use tx_resolution::KbWsTransactionResolutionRelayStats; pub use types::KbConnectionState; pub use wallet_holding_observation::KbWalletHoldingObservationResult; pub use wallet_holding_observation::KbWalletHoldingObservationService; pub use wallet_observation::KbWalletObservationResult; pub use wallet_observation::KbWalletObservationService; pub use ws_client::WsClient; pub use ws_client::WsEvent; pub use ws_client::WsOutgoingMessage; pub use ws_client::WsSubscriptionInfo; pub use ws_hybrid_observation::KbWsHybridObservationResult; pub use ws_hybrid_observation::KbWsHybridObservationService; pub use ws_hybrid_runtime::KbWsHybridRuntimeService; pub use ws_hybrid_watch::KbWsHybridWatchService; pub use ws_hybrid_watch::KbWsHybridWatchSnapshot; pub use ws_hybrid_watch::KbWsWatchTarget; pub use ws_hybrid_watch::KbWsWatchTargetKind; pub use ws_manager::WsManagedEndpointSnapshot; pub use ws_manager::WsManager; pub use ws_manager::WsManagerSnapshot;