0.1.0
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# file: kb_decoder_clmm_pancake_swap/Cargo.toml
|
||||
# version: 2
|
||||
|
||||
[package]
|
||||
name = "kb_decoder_clmm_pancake_swap"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
publish.workspace = true
|
||||
|
||||
[dependencies]
|
||||
kb_core = { path = "../kb_core" }
|
||||
kb_decoder_api = { path = "../kb_decoder_api" }
|
||||
kb_model = { path = "../kb_model" }
|
||||
kb_program_ids = { path = "../kb_program_ids" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
@@ -0,0 +1,14 @@
|
||||
<!-- file: kb_decoder_clmm_pancake_swap/README.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# kb_decoder_clmm_pancake_swap
|
||||
|
||||
Ce crate réserve la surface de décodage `clmm_pancake_swap`. Aucun `program_id` local n'est encore fixé dans ce squelette.
|
||||
|
||||
## Rôle dans l'écosystème
|
||||
|
||||
Ce module transforme les observations Solana liées à `clmm_pancake_swap` en événements protocolaires normalisés. Il ne doit pas accéder directement à PostgreSQL, au RPC, au wallet, à Tauri ou aux matérialisateurs.
|
||||
|
||||
## État initial
|
||||
|
||||
Le crate est créé comme point d'ancrage. Le décodage effectif, les discriminants, les IDL et les tests de couverture seront ajoutés dans des deltas dédiés.
|
||||
@@ -0,0 +1,7 @@
|
||||
// file: kb_decoder_clmm_pancake_swap/src/constants.rs
|
||||
// version: 2
|
||||
|
||||
//! Local constants for the `kb_decoder_clmm_pancake_swap` crate. Program identifiers live in `kb_program_ids`.
|
||||
|
||||
/// Canonical tracing target for this crate.
|
||||
pub(crate) const TRACING_TARGET: &str = "kb_decoder_clmm_pancake_swap";
|
||||
@@ -0,0 +1,41 @@
|
||||
// file: kb_decoder_clmm_pancake_swap/src/decoder.rs
|
||||
// version: 5
|
||||
|
||||
//! Decoder scaffold for the `kb_decoder_clmm_pancake_swap` crate.
|
||||
|
||||
/// Initial decoder implementation placeholder.
|
||||
#[derive(Clone, Debug, Default)]
|
||||
pub struct ClmmPancakeSwapDecoder;
|
||||
|
||||
impl kb_decoder_api::ProtocolDecoder for crate::ClmmPancakeSwapDecoder {
|
||||
fn decoder_name(&self) -> &'static str {
|
||||
return "kb_decoder_clmm_pancake_swap";
|
||||
}
|
||||
|
||||
fn decoder_version(&self) -> &'static str {
|
||||
return env!("CARGO_PKG_VERSION");
|
||||
}
|
||||
|
||||
fn program_ids(&self) -> &'static [&'static str] {
|
||||
return &[kb_program_ids::CLMM_PANCAKE_SWAP_PROGRAM_ID];
|
||||
}
|
||||
|
||||
fn supports_observation(
|
||||
&self,
|
||||
observation: &kb_model::ProgramObservation,
|
||||
) -> kb_decoder_api::DecoderSupport {
|
||||
return if self.handles_program_id(&observation.program_id) {
|
||||
kb_decoder_api::DecoderSupport::Maybe
|
||||
} else {
|
||||
kb_decoder_api::DecoderSupport::No
|
||||
};
|
||||
}
|
||||
|
||||
fn decode_observation(
|
||||
&self,
|
||||
_observation: &kb_model::ProgramObservation,
|
||||
) -> kb_core::Result<std::vec::Vec<kb_model::DecodedProtocolEvent>> {
|
||||
let _target = crate::TRACING_TARGET;
|
||||
return std::result::Result::Ok(std::vec::Vec::new());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// file: kb_decoder_clmm_pancake_swap/src/lib.rs
|
||||
// version: 2
|
||||
|
||||
//! Decoder crate for `clmm_pancake_swap`.
|
||||
#![warn(missing_docs)]
|
||||
#![deny(unreachable_pub)]
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
mod constants;
|
||||
mod decoder;
|
||||
|
||||
/// Canonical tracing target for this crate.
|
||||
pub(crate) use crate::constants::TRACING_TARGET;
|
||||
|
||||
/// Exposes the decoder type implemented by this crate.
|
||||
pub use crate::decoder::ClmmPancakeSwapDecoder;
|
||||
Reference in New Issue
Block a user