gmsol_chainlink_datastreams/
utils.rs1use anchor_lang::prelude::Pubkey;
2use gmsol_mock_chainlink_verifier::DEFAULT_VERIFIER_ACCOUNT_SEEDS;
3use snap::raw::{Decoder, Encoder};
4
5pub fn find_verifier_account_pda(program_id: &Pubkey) -> Pubkey {
7 Pubkey::find_program_address(&[DEFAULT_VERIFIER_ACCOUNT_SEEDS], program_id).0
8}
9
10pub fn find_config_account_pda(report: &[u8], program_id: &Pubkey) -> Pubkey {
12 Pubkey::find_program_address(&[&report[..32]], program_id).0
13}
14
15pub struct Compressor;
17
18impl Compressor {
19 pub fn compress(data: &[u8]) -> snap::Result<Vec<u8>> {
21 let mut encoder = Encoder::new();
22 encoder.compress_vec(data)
23 }
24
25 pub fn decompress(compressed: &[u8]) -> snap::Result<Vec<u8>> {
27 let mut decoder = Decoder::new();
28 decoder.decompress_vec(compressed)
29 }
30}