Files
khadhroony-bobobot/kb_lib/src/lib.rs
2026-04-30 12:37:01 +02:00

341 lines
12 KiB
Rust

// 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;