Skip to main content
Test environment for FHE programs.
use privora_sdk_testing::prelude::*;

let mut env = FheTestEnv::new();

Constructor

new

pub fn new() -> Self
Create with default configuration.

builder

pub fn builder() -> FheTestEnvBuilder
Create with custom configuration.

Fields

svm

pub svm: LiteSVM
The LiteSVM instance.

client_key

pub client_key: ClientKey
TFHE client key for encryption/decryption.

server_key

pub server_key: ServerKey
TFHE server key.

Methods

deploy_program

pub fn deploy_program(&mut self, program_id: Pubkey, program_bytes: &[u8])

create_funded_keypair

pub fn create_funded_keypair(&mut self) -> Keypair
Creates keypair with 10 SOL.

airdrop

pub fn airdrop(&mut self, pubkey: &Pubkey, lamports: u64)

latest_blockhash

pub fn latest_blockhash(&self) -> Hash

minimum_balance_for_rent_exemption

pub fn minimum_balance_for_rent_exemption(&self, data_len: usize) -> u64

sync_data_store_to_syscalls

pub fn sync_data_store_to_syscalls(&self)
Call before sending transaction.

sync_data_store_from_syscalls

pub fn sync_data_store_from_syscalls(&mut self)
Call after transaction.

Encryption Helpers

encrypt_and_submit_u8

pub fn encrypt_and_submit_u8(&mut self, value: u8) -> [u8; 32]

encrypt_and_submit_u32

pub fn encrypt_and_submit_u32(&mut self, value: u32) -> [u8; 32]

encrypt_and_submit_u64

pub fn encrypt_and_submit_u64(&mut self, value: u64) -> [u8; 32]

Decryption Helpers

fetch_and_decrypt_u8

pub fn fetch_and_decrypt_u8(&self, hash: &[u8; 32]) -> u8

fetch_and_decrypt_u32

pub fn fetch_and_decrypt_u32(&self, hash: &[u8; 32]) -> u32

fetch_and_decrypt_u64

pub fn fetch_and_decrypt_u64(&self, hash: &[u8; 32]) -> u64

Assertion Helpers

assert_encrypted_eq_u8

pub fn assert_encrypted_eq_u8(&self, hash: &[u8; 32], expected: u8)

assert_encrypted_eq_u32

pub fn assert_encrypted_eq_u32(&self, hash: &[u8; 32], expected: u32)

assert_encrypted_eq_u64

pub fn assert_encrypted_eq_u64(&self, hash: &[u8; 32], expected: u64)

assert_encrypted_true

pub fn assert_encrypted_true(&self, hash: &[u8; 32])

assert_encrypted_false

pub fn assert_encrypted_false(&self, hash: &[u8; 32])

Data Store

submit_data

pub fn submit_data(&mut self, data: Vec<u8>) -> [u8; 32]

get_data

pub fn get_data(&self, hash: &[u8; 32]) -> Option<Vec<u8>>