gluonscan-raydium 0.0.1-beta.10
“Raydium CLMM protocol adapter for gluonscan (Solana on-chain position reads).”
Basename is uppercase README.mdPackage first published within seven days
SHA-25617a26bdeeae9f86a3c48739782ad6ad2159a26053d5ac2a842f41c76ef140a48
MaleculeH₂(Cm₃Db)Md₂(InPa)
Evidence
1:75… der). Account bytes are
2//! built here to match the on-chain `PersonalPositionState` / `PoolState` byte offsets, so decoder
3//! and fixture stay in lockstep with the real layout.
4
5use std::sync::Arc;
6
7use base64::Engine;
8use gluonscan_core::{Chain, Ctx, Detail, Error, Position, Protocol, ProtocolAdapter, Wallet};
9use gluonscan_raydium::RaydiumClmm;
10use gluonscan_solana::{
11 find_program_address, pubkey_bytes, pubkey_str, RAYDIUM_CLMM_PROGRAM, TOKEN_2022_PROGRAM,
12 TOKEN_PROGRAM,
13};
14use gluonscan_testing::{Match, MockChainProvider, MockClock, MockHttp};
15use rust_decimal::Decimal;
16
17const NFT_MINT: &str = "So11111111111111111111111111111111111111112";
18
19fn account_response(by …
20:48… STANDARD.encode(bytes);
21 format!(r#"{{"jsonrpc":"2.0","id":1,"result":{{"value":{{"data":["{b64}","base64"]}}}}}}"#)
22}
23
24fn token_accounts_response(mint: &str) -> String {
25 format!(
26 r#"{{" …
70:2… b[269..273].copy_from_slice(&tick.to_le_bytes());
71 b
72}
73
74#[tokio::test]
75async fn reads_a_clmm_position_from_chain() {
76 let program = pubkey_bytes(RAYDIUM_CLMM_PROGRAM).unwrap();
77 let nft = …
104:6… .on(
105 Match::all([
106 Match::method("getAccountInfo"),
107 Match::body_contains(&pda_str),
108 ]),
109 account_response(&position_account(
110 …
1<p align="center"><a href="https://github.com/ovictormagalhaes/gluonscan"><img src="https://raw.githubusercontent.com/ovictormagalhaes/gluonscan/main/assets/icon.png" width="72" alt="gluonscan" /></a></p>
2
3# gluonscan-raydium
4
5Raydium CLMM protocol adapter for gluonscan (Solana on-chain position reads).
6
7Part of [**gluonscan**](https://crates.io/crates/gluonscan) — a stateless multi-chain *read + normalize* engine for DeFi portfolios. Most users depend on the `gluonscan` facade crate, which re-exports this one; depend on `gluonscan-raydium` directly only to trim your build to a single slice.
8
9## License
10
11Dual-licensed under either [MIT](../../LICENSE-MIT) or [Apache-2.0](../../LICENSE-APACHE), at your option.
No evidence locations were recorded for this file. Raw result