trident_fuzz/
fuzz_client.rs#![allow(dead_code)]
use anchor_lang::prelude::Rent;
use anchor_lang::solana_program::hash::Hash;
use solana_sdk::account::{Account, AccountSharedData};
use solana_sdk::instruction::AccountMeta;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::Keypair;
use solana_sdk::transaction::VersionedTransaction;
use crate::error::*;
pub trait FuzzClient {
fn set_account(&mut self, lamports: u64) -> Keypair;
fn set_account_custom(&mut self, address: &Pubkey, account: &AccountSharedData);
#[allow(clippy::too_many_arguments)]
fn set_token_account(
&mut self,
mint: Pubkey,
owner: Pubkey,
amount: u64,
delegate: Option<Pubkey>,
is_native: Option<u64>,
delegated_amount: u64,
close_authority: Option<Pubkey>,
) -> Pubkey;
fn set_mint_account(
&mut self,
decimals: u8,
owner: &Pubkey,
freeze_authority: Option<Pubkey>,
) -> Pubkey;
fn payer(&self) -> Keypair;
fn get_account(&mut self, key: &Pubkey) -> Result<Option<Account>, FuzzClientError>;
fn get_accounts(
&mut self,
metas: &[AccountMeta],
) -> Result<Vec<Option<Account>>, FuzzClientErrorWithOrigin>;
fn get_last_blockhash(&self) -> Hash;
fn get_rent(&mut self) -> Result<Rent, FuzzClientError>;
fn process_transaction(
&mut self,
transaction: impl Into<VersionedTransaction>,
) -> Result<(), FuzzClientError>;
}