pub struct LightProgramTest {
pub config: ProgramTestConfig,
pub context: LiteSVM,
pub pre_context: Option<LiteSVM>,
pub indexer: Option<TestIndexer>,
pub test_accounts: TestAccounts,
pub payer: Keypair,
pub transaction_counter: usize,
pub auto_mine_cold_state_programs: Vec<Pubkey>,
}Fields§
§config: ProgramTestConfig§context: LiteSVM§pre_context: Option<LiteSVM>§indexer: Option<TestIndexer>§test_accounts: TestAccounts§payer: Keypair§transaction_counter: usize§auto_mine_cold_state_programs: Vec<Pubkey>Implementations§
Source§impl LightProgramTest
impl LightProgramTest
Sourcepub fn get_pre_transaction_account(&self, pubkey: &Pubkey) -> Option<Account>
pub fn get_pre_transaction_account(&self, pubkey: &Pubkey) -> Option<Account>
Creates ProgramTestContext with light protocol and additional programs.
Programs:
- light program
- account_compression program
- light_compressed_token program
- light_system_program program
Light Protocol accounts: 5. creates and initializes governance authority 6. creates and initializes group authority 7. registers the light_system_program program with the group authority 8. initializes Merkle tree owned by Note:
- registers a forester
- advances to the active phase slot 2
- active phase doesn’t end Get an account from the pre-transaction context (before the last transaction)
pub async fn new( config: ProgramTestConfig, ) -> Result<LightProgramTest, RpcError>
pub fn indexer(&self) -> Result<&TestIndexer, RpcError>
pub fn indexer_mut(&mut self) -> Result<&mut TestIndexer, RpcError>
pub fn test_accounts(&self) -> &TestAccounts
Sourcepub fn get_state_merkle_tree_account(&self) -> StateMerkleTreeAccounts
pub fn get_state_merkle_tree_account(&self) -> StateMerkleTreeAccounts
Get account pubkeys of one state Merkle tree.
pub fn get_address_merkle_tree(&self) -> AddressMerkleTreeAccounts
pub async fn add_indexer( &mut self, test_accounts: &TestAccounts, batch_size: Option<usize>, ) -> Result<(), RpcError>
pub fn clone_indexer(&self) -> Result<TestIndexer, RpcError>
Trait Implementations§
Source§impl Debug for LightProgramTest
impl Debug for LightProgramTest
Source§impl Indexer for LightProgramTest
impl Indexer for LightProgramTest
Source§fn get_validity_proof<'life0, 'async_trait>(
&'life0 self,
hashes: Vec<Hash>,
new_addresses_with_trees: Vec<AddressWithTree>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ValidityProofWithContext>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_validity_proof<'life0, 'async_trait>(
&'life0 self,
hashes: Vec<Hash>,
new_addresses_with_trees: Vec<AddressWithTree>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ValidityProofWithContext>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_indexer_slot<'life0, 'async_trait>(
&'life0 self,
config: Option<RetryConfig>,
) -> Pin<Box<dyn Future<Output = Result<u64, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_indexer_slot<'life0, 'async_trait>(
&'life0 self,
config: Option<RetryConfig>,
) -> Pin<Box<dyn Future<Output = Result<u64, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_multiple_compressed_account_proofs<'life0, 'async_trait>(
&'life0 self,
hashes: Vec<[u8; 32]>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<MerkleProof>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_multiple_compressed_account_proofs<'life0, 'async_trait>(
&'life0 self,
hashes: Vec<[u8; 32]>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<MerkleProof>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_compressed_accounts_by_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<GetCompressedAccountsByOwnerConfig>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compressed_accounts_by_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<GetCompressedAccountsByOwnerConfig>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compressed_account<'life0, 'async_trait>(
&'life0 self,
address: Address,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_compressed_account<'life0, 'async_trait>(
&'life0 self,
address: Address,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_compressed_account_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_compressed_account_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_compressed_token_accounts_by_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<GetCompressedTokenAccountsByOwnerOrDelegateOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<CompressedTokenAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compressed_balance<'life0, 'async_trait>(
&'life0 self,
address: Option<Address>,
hash: Option<Hash>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_compressed_balance<'life0, 'async_trait>(
&'life0 self,
address: Option<Address>,
hash: Option<Hash>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_compressed_token_account_balance<'life0, 'async_trait>(
&'life0 self,
address: Option<Address>,
hash: Option<Hash>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_compressed_token_account_balance<'life0, 'async_trait>(
&'life0 self,
address: Option<Address>,
hash: Option<Hash>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_multiple_compressed_accounts<'life0, 'async_trait>(
&'life0 self,
addresses: Option<Vec<Address>>,
hashes: Option<Vec<Hash>>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<Option<CompressedAccount>>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_multiple_compressed_accounts<'life0, 'async_trait>(
&'life0 self,
addresses: Option<Vec<Address>>,
hashes: Option<Vec<Hash>>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<Option<CompressedAccount>>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_compressed_token_balances_by_owner_v2<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<GetCompressedTokenAccountsByOwnerOrDelegateOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<TokenBalance>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compressed_token_balances_by_owner_v2<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<GetCompressedTokenAccountsByOwnerOrDelegateOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<TokenBalance>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compression_signatures_for_account<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_compression_signatures_for_account<'life0, 'async_trait>(
&'life0 self,
hash: Hash,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_multiple_new_address_proofs<'life0, 'async_trait>(
&'life0 self,
merkle_tree_pubkey: [u8; 32],
addresses: Vec<[u8; 32]>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<NewAddressProofWithContext>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_multiple_new_address_proofs<'life0, 'async_trait>(
&'life0 self,
merkle_tree_pubkey: [u8; 32],
addresses: Vec<[u8; 32]>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<NewAddressProofWithContext>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_queue_elements<'life0, 'async_trait>(
&'life0 mut self,
merkle_tree_pubkey: [u8; 32],
options: QueueElementsV2Options,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<QueueElementsResult>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_queue_elements<'life0, 'async_trait>(
&'life0 mut self,
merkle_tree_pubkey: [u8; 32],
options: QueueElementsV2Options,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<QueueElementsResult>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_queue_info<'life0, 'async_trait>(
&'life0 self,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<QueueInfoResult>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_queue_info<'life0, 'async_trait>(
&'life0 self,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<QueueInfoResult>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_subtrees<'life0, 'async_trait>(
&'life0 self,
merkle_tree_pubkey: [u8; 32],
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Items<[u8; 32]>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_compressed_balance_by_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compressed_balance_by_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compressed_mint_token_holders<'life0, 'life1, 'async_trait>(
&'life0 self,
mint: &'life1 Pubkey,
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<OwnerBalance>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compressed_mint_token_holders<'life0, 'life1, 'async_trait>(
&'life0 self,
mint: &'life1 Pubkey,
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<OwnerBalance>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compressed_token_accounts_by_delegate<'life0, 'life1, 'async_trait>(
&'life0 self,
delegate: &'life1 Pubkey,
options: Option<GetCompressedTokenAccountsByOwnerOrDelegateOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<CompressedTokenAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compressed_token_accounts_by_delegate<'life0, 'life1, 'async_trait>(
&'life0 self,
delegate: &'life1 Pubkey,
options: Option<GetCompressedTokenAccountsByOwnerOrDelegateOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<CompressedTokenAccount>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compression_signatures_for_address<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 [u8; 32],
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compression_signatures_for_address<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 [u8; 32],
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compression_signatures_for_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compression_signatures_for_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_compression_signatures_for_token_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_compression_signatures_for_token_owner<'life0, 'life1, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
options: Option<PaginatedOptions>,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<ItemsWithCursor<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_indexer_health<'life0, 'async_trait>(
&'life0 self,
config: Option<RetryConfig>,
) -> Pin<Box<dyn Future<Output = Result<bool, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_indexer_health<'life0, 'async_trait>(
&'life0 self,
config: Option<RetryConfig>,
) -> Pin<Box<dyn Future<Output = Result<bool, IndexerError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl MerkleTreeExt for LightProgramTest
impl MerkleTreeExt for LightProgramTest
fn get_state_merkle_tree_account<'life0, 'async_trait>(
&'life0 mut self,
pubkey: Pubkey,
) -> Pin<Box<dyn Future<Output = Result<ConcurrentMerkleTreeCopy<Poseidon, 26>, MerkleTreeExtError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: Send + 'async_trait,
fn get_address_merkle_tree_account<'life0, 'async_trait>(
&'life0 mut self,
pubkey: Pubkey,
) -> Pin<Box<dyn Future<Output = Result<IndexedMerkleTreeCopy<Poseidon, usize, 26, 16>, MerkleTreeExtError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: Send + 'async_trait,
Source§impl Rpc for LightProgramTest
impl Rpc for LightProgramTest
Source§fn get_latest_active_state_trees<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Vec<TreeInfo>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_latest_active_state_trees<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Vec<TreeInfo>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetch the latest state tree addresses from the cluster.
Source§fn get_state_tree_infos(&self) -> Vec<TreeInfo>
fn get_state_tree_infos(&self) -> Vec<TreeInfo>
Fetch the latest state tree addresses from the cluster.
Source§fn get_random_state_tree_info(&self) -> Result<TreeInfo, RpcError>
fn get_random_state_tree_info(&self) -> Result<TreeInfo, RpcError>
Gets a random active state tree. State trees are cached and have to be fetched or set.
Source§fn get_random_state_tree_info_v1(&self) -> Result<TreeInfo, RpcError>
fn get_random_state_tree_info_v1(&self) -> Result<TreeInfo, RpcError>
Gets a random v1 state tree. State trees are cached and have to be fetched or set.
fn new<'async_trait>(
_config: LightClientConfig,
) -> Pin<Box<dyn Future<Output = Result<Self, RpcError>> + Send + 'async_trait>>where
Self: Sized + 'async_trait,
fn get_payer(&self) -> &Keypair
fn get_url(&self) -> String
fn health<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_program_accounts<'life0, 'life1, 'async_trait>(
&'life0 self,
program_id: &'life1 Pubkey,
) -> Pin<Box<dyn Future<Output = Result<Vec<(Pubkey, Account)>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_program_accounts_with_discriminator<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
program_id: &'life1 Pubkey,
discriminator: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<(Pubkey, Account)>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn confirm_transaction<'life0, 'async_trait>(
&'life0 self,
_transaction: Signature,
) -> Pin<Box<dyn Future<Output = Result<bool, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_account<'life0, 'async_trait>(
&'life0 self,
address: Pubkey,
) -> Pin<Box<dyn Future<Output = Result<Option<Account>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_account<'life0, 'async_trait>(
&'life0 self,
address: Pubkey,
) -> Pin<Box<dyn Future<Output = Result<Option<Account>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_multiple_accounts<'life0, 'life1, 'async_trait>(
&'life0 self,
addresses: &'life1 [Pubkey],
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<Account>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_multiple_accounts<'life0, 'life1, 'async_trait>(
&'life0 self,
addresses: &'life1 [Pubkey],
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<Account>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_minimum_balance_for_rent_exemption<'life0, 'async_trait>(
&'life0 self,
data_len: usize,
) -> Pin<Box<dyn Future<Output = Result<u64, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn airdrop_lamports<'life0, 'life1, 'async_trait>(
&'life0 mut self,
to: &'life1 Pubkey,
lamports: u64,
) -> Pin<Box<dyn Future<Output = Result<Signature, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_balance<'life0, 'life1, 'async_trait>(
&'life0 self,
pubkey: &'life1 Pubkey,
) -> Pin<Box<dyn Future<Output = Result<u64, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_latest_blockhash<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(Hash, u64), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_slot<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_transaction_slot<'life0, 'life1, 'async_trait>(
&'life0 self,
_signature: &'life1 Signature,
) -> Pin<Box<dyn Future<Output = Result<u64, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_signature_statuses<'life0, 'life1, 'async_trait>(
&'life0 self,
_signatures: &'life1 [Signature],
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<TransactionStatus>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
_transaction: &'life1 Transaction,
) -> Pin<Box<dyn Future<Output = Result<Signature, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send_transaction_with_config<'life0, 'life1, 'async_trait>(
&'life0 self,
_transaction: &'life1 Transaction,
_config: RpcSendTransactionConfig,
) -> Pin<Box<dyn Future<Output = Result<Signature, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn process_transaction<'life0, 'async_trait>(
&'life0 mut self,
transaction: Transaction,
) -> Pin<Box<dyn Future<Output = Result<Signature, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn process_transaction_with_context<'life0, 'async_trait>(
&'life0 mut self,
transaction: Transaction,
) -> Pin<Box<dyn Future<Output = Result<(Signature, Slot), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_and_send_transaction_with_event<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait, T>(
&'life0 mut self,
instructions: &'life1 [Instruction],
payer: &'life2 Pubkey,
signers: &'life3 [&'life4 Keypair],
) -> Pin<Box<dyn Future<Output = Result<Option<(T, Signature, u64)>, RpcError>> + Send + 'async_trait>>where
T: BorshDeserialize + Send + Debug + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn create_and_send_transaction_with_batched_event<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
instructions: &'life1 [Instruction],
payer: &'life2 Pubkey,
signers: &'life3 [&'life4 Keypair],
) -> Pin<Box<dyn Future<Output = Result<Option<(Vec<BatchPublicTransactionEvent>, Signature, Slot)>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn create_and_send_transaction_with_public_event<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
instruction: &'life1 [Instruction],
payer: &'life2 Pubkey,
signers: &'life3 [&'life4 Keypair],
) -> Pin<Box<dyn Future<Output = Result<Option<(PublicTransactionEvent, Signature, Slot)>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn indexer(&self) -> Result<&impl Indexer, RpcError>
fn indexer_mut(&mut self) -> Result<&mut impl Indexer, RpcError>
fn get_address_tree_v1(&self) -> TreeInfo
fn get_address_tree_v2(&self) -> TreeInfo
fn create_and_send_versioned_transaction<'a, 'async_trait>(
&'a mut self,
_instructions: &'a [Instruction],
_payer: &'a Pubkey,
_signers: &'a [&'a Keypair],
_address_lookup_tables: &'a [AddressLookupTableAccount],
) -> Pin<Box<dyn Future<Output = Result<Signature, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
Source§fn get_account_interface<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 Pubkey,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<AccountInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_account_interface<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 Pubkey,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<AccountInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_token_account_interface<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 Pubkey,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<TokenAccountInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_token_account_interface<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 Pubkey,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<TokenAccountInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_associated_token_account_interface<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
mint: &'life2 Pubkey,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<TokenAccountInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_associated_token_account_interface<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
owner: &'life1 Pubkey,
mint: &'life2 Pubkey,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<TokenAccountInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_multiple_account_interfaces<'life0, 'life1, 'async_trait>(
&'life0 self,
addresses: Vec<&'life1 Pubkey>,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Vec<Option<AccountInterface>>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_multiple_account_interfaces<'life0, 'life1, 'async_trait>(
&'life0 self,
addresses: Vec<&'life1 Pubkey>,
_config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Vec<Option<AccountInterface>>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_mint_interface<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 Pubkey,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<MintInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_mint_interface<'life0, 'life1, 'async_trait>(
&'life0 self,
address: &'life1 Pubkey,
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Response<Option<MintInterface>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn should_retry(&self, error: &RpcError) -> bool
Source§fn get_anchor_account<'life0, 'life1, 'async_trait, T>(
&'life0 self,
pubkey: &'life1 Pubkey,
) -> Pin<Box<dyn Future<Output = Result<Option<T>, RpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait + BorshDeserialize,
Self: 'async_trait,
fn get_anchor_account<'life0, 'life1, 'async_trait, T>(
&'life0 self,
pubkey: &'life1 Pubkey,
) -> Pin<Box<dyn Future<Output = Result<Option<T>, RpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait + BorshDeserialize,
Self: 'async_trait,
fn create_and_send_transaction<'a, 'async_trait>(
&'a mut self,
instructions: &'a [Instruction],
payer: &'a Pubkey,
signers: &'a [&'a Keypair],
) -> Pin<Box<dyn Future<Output = Result<Signature, RpcError>> + Send + 'async_trait>>where
'a: 'async_trait,
Self: 'async_trait,
Source§fn fetch_accounts<'life0, 'life1, 'async_trait>(
&'life0 self,
accounts: &'life1 [AccountToFetch],
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Vec<AccountInterface>, RpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn fetch_accounts<'life0, 'life1, 'async_trait>(
&'life0 self,
accounts: &'life1 [AccountToFetch],
config: Option<IndexerRpcConfig>,
) -> Pin<Box<dyn Future<Output = Result<Vec<AccountInterface>, RpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
AccountToFetch descriptors. Read moreSource§impl TestRpc for LightProgramTest
impl TestRpc for LightProgramTest
Source§fn warp_slot_forward<'life0, 'async_trait>(
&'life0 mut self,
slot: Slot,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn warp_slot_forward<'life0, 'async_trait>(
&'life0 mut self,
slot: Slot,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Warps current slot forward by slots. Claims and compresses compressible ctoken accounts and program PDAs (auto compress).
fn set_account(&mut self, address: Pubkey, account: Account)
fn warp_to_slot(&mut self, slot: Slot) -> Result<(), RpcError>
Source§fn warp_epoch_forward<'life0, 'async_trait>(
&'life0 mut self,
epochs: u64,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
fn warp_epoch_forward<'life0, 'async_trait>(
&'life0 mut self,
epochs: u64,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for LightProgramTest
impl !RefUnwindSafe for LightProgramTest
impl Send for LightProgramTest
impl Sync for LightProgramTest
impl Unpin for LightProgramTest
impl UnsafeUnpin for LightProgramTest
impl !UnwindSafe for LightProgramTest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.