trident_fuzz/
lib.rs

1pub mod accounts_storage;
2pub mod error;
3pub mod fuzz_client_impl;
4pub mod fuzz_stats;
5pub mod traits;
6
7pub mod trident_accounts;
8
9pub mod trident_pubkey;
10
11pub mod types;
12
13pub mod fuzzing {
14    /// solana_sdk
15    pub use solana_sdk;
16    pub use solana_sdk::account::AccountSharedData;
17    pub use solana_sdk::account::ReadableAccount;
18    pub use solana_sdk::account::WritableAccount;
19    pub use solana_sdk::account_info::AccountInfo;
20    pub use solana_sdk::entrypoint::ProcessInstruction;
21    pub use solana_sdk::instruction::AccountMeta;
22    pub use solana_sdk::instruction::Instruction;
23    pub use solana_sdk::native_token::LAMPORTS_PER_SOL;
24    pub use solana_sdk::pubkey;
25    pub use solana_sdk::pubkey::Pubkey;
26    pub use solana_sdk::signer::keypair::Keypair;
27    pub use solana_sdk::signer::Signer;
28    pub use solana_sdk::transaction::Transaction;
29    pub use solana_sdk::transaction::TransactionError;
30
31    /// fuzzing
32    pub use afl::fuzz as fuzz_afl;
33    pub use arbitrary;
34    pub use arbitrary::Arbitrary;
35    pub use honggfuzz::fuzz as fuzz_honggfuzz;
36
37    /// trident traits
38    pub use super::traits::AccountsMethods;
39    pub use super::traits::FuzzClient;
40    pub use super::traits::InstructionGetters;
41    pub use super::traits::InstructionHooks;
42    pub use super::traits::InstructionSetters;
43
44    pub use super::traits::RemainingAccountsMethods;
45    pub use super::traits::TransactionGetters;
46    pub use super::traits::TransactionHooks;
47    pub use super::traits::TransactionMethods;
48    pub use super::traits::TransactionSelector;
49    pub use super::traits::TransactionSetters;
50    /// trident derive
51    pub use trident_derive_accounts::TridentAccounts;
52    pub use trident_derive_flow_executor::flow;
53    pub use trident_derive_flow_executor::flow_executor;
54    pub use trident_derive_flow_executor::flow_ignore;
55    pub use trident_derive_flow_executor::init;
56
57    pub use trident_derive_instruction::TridentInstruction;
58    pub use trident_derive_remaining_accounts::TridentRemainingAccounts;
59    pub use trident_derive_transaction::TridentTransaction;
60    pub use trident_derive_transaction_selector::TransactionSelector;
61    /// trident svm
62    pub use trident_svm::processor;
63
64    /// accounts storages
65    pub use super::accounts_storage::account_storage::AccountsStorage;
66    pub use super::accounts_storage::AccountMetadata;
67    pub use super::accounts_storage::PdaSeeds;
68
69    pub use trident_config::TridentConfig;
70
71    pub use super::error::*;
72    pub use super::fuzz_stats::FuzzingStatistics;
73
74    pub use std::cell::RefCell;
75    pub use std::collections::HashMap;
76    pub use trident_svm::trident_svm::TridentSVM;
77    pub use trident_svm::utils::ProgramEntrypoint;
78
79    /// types
80    pub use crate::types::AccountId;
81    pub use crate::types::FuzzerData;
82
83    /// trident accounts
84    pub use crate::trident_accounts::TridentAccount;
85    pub use crate::trident_pubkey::TridentPubkey;
86
87    pub use borsh::{BorshDeserialize, BorshSerialize};
88
89    pub use arbitrary::Unstructured;
90}