From 923f2456d99b1ae32b7e08eceadb541d5cd38014 Mon Sep 17 00:00:00 2001 From: Prasanna Gautam Date: Wed, 13 May 2026 19:26:39 +0000 Subject: [PATCH] fix(solana): use BTreeMap in exponent_finance and kamino_limit configs PR #288 forbade std::collections::HashMap/HashSet via clippy disallowed-types and converted the existing preset configs to BTreeMap, but missed the two presets that landed during the same review window: - exponent_finance (PR #275, merged 2026-05-12 22:00 UTC) - kamino_limit (PR #284, merged 2026-05-11 14:50 UTC) Both still constructed HashMap and passed it where SolanaIntegrationConfigData now expects BTreeMap, so `cargo build -p visualsign-solana` fails on post-#288 main. Verified locally: `cargo build -p visualsign-solana` and `cargo clippy -p visualsign-solana --all-targets -- -D warnings` are clean; `cargo fmt --check` passes. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/presets/exponent_finance/config.rs | 6 +++--- .../visualsign-solana/src/presets/kamino_limit/config.rs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/chain_parsers/visualsign-solana/src/presets/exponent_finance/config.rs b/src/chain_parsers/visualsign-solana/src/presets/exponent_finance/config.rs index 41971c48..9021283a 100644 --- a/src/chain_parsers/visualsign-solana/src/presets/exponent_finance/config.rs +++ b/src/chain_parsers/visualsign-solana/src/presets/exponent_finance/config.rs @@ -1,6 +1,6 @@ use super::EXPONENT_FINANCE_PROGRAM_ID; use crate::core::{SolanaIntegrationConfig, SolanaIntegrationConfigData}; -use std::collections::HashMap; +use std::collections::BTreeMap; pub struct ExponentFinanceConfig; @@ -12,8 +12,8 @@ impl SolanaIntegrationConfig for ExponentFinanceConfig { fn data(&self) -> &SolanaIntegrationConfigData { static DATA: std::sync::OnceLock = std::sync::OnceLock::new(); DATA.get_or_init(|| { - let mut programs = HashMap::new(); - let mut instructions = HashMap::new(); + let mut programs = BTreeMap::new(); + let mut instructions = BTreeMap::new(); instructions.insert("*", vec!["*"]); programs.insert(EXPONENT_FINANCE_PROGRAM_ID, instructions); SolanaIntegrationConfigData { programs } diff --git a/src/chain_parsers/visualsign-solana/src/presets/kamino_limit/config.rs b/src/chain_parsers/visualsign-solana/src/presets/kamino_limit/config.rs index 9c34c2ce..194efb79 100644 --- a/src/chain_parsers/visualsign-solana/src/presets/kamino_limit/config.rs +++ b/src/chain_parsers/visualsign-solana/src/presets/kamino_limit/config.rs @@ -1,6 +1,6 @@ use super::KAMINO_LIMIT_PROGRAM_ID; use crate::core::{SolanaIntegrationConfig, SolanaIntegrationConfigData}; -use std::collections::HashMap; +use std::collections::BTreeMap; pub struct KaminoLimitConfig; @@ -12,8 +12,8 @@ impl SolanaIntegrationConfig for KaminoLimitConfig { fn data(&self) -> &SolanaIntegrationConfigData { static DATA: std::sync::OnceLock = std::sync::OnceLock::new(); DATA.get_or_init(|| { - let mut programs = HashMap::new(); - let mut instructions = HashMap::new(); + let mut programs = BTreeMap::new(); + let mut instructions = BTreeMap::new(); instructions.insert("*", vec!["*"]); programs.insert(KAMINO_LIMIT_PROGRAM_ID, instructions); SolanaIntegrationConfigData { programs }