Indexer

Trait Indexer 

Source
pub trait Indexer: Send + Sync {
Show 23 methods // Required methods fn get_compressed_account<'life0, 'async_trait>( &'life0 self, address: [u8; 32], config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn get_compressed_account_by_hash<'life0, 'async_trait>( &'life0 self, hash: [u8; 32], config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_compressed_balance<'life0, 'async_trait>( &'life0 self, address: Option<[u8; 32]>, hash: Option<[u8; 32]>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_compressed_token_account_balance<'life0, 'async_trait>( &'life0 self, address: Option<[u8; 32]>, hash: Option<[u8; 32]>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_compression_signatures_for_account<'life0, 'async_trait>( &'life0 self, hash: [u8; 32], config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Items<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 'life0: 'async_trait, Self: '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 'life0: 'async_trait, Self: '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 'life0: 'async_trait, Self: 'async_trait; fn get_multiple_compressed_accounts<'life0, 'async_trait>( &'life0 self, addresses: Option<Vec<[u8; 32]>>, hashes: Option<Vec<[u8; 32]>>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Items<Option<CompressedAccount>>>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: '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 'life0: 'async_trait, Self: 'async_trait; fn get_validity_proof<'life0, 'async_trait>( &'life0 self, hashes: Vec<[u8; 32]>, new_addresses_with_trees: Vec<AddressWithTree>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<ValidityProofWithContext>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: '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 'life0: 'async_trait, Self: '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 'life0: 'async_trait, Self: '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 'life0: 'async_trait, Self: 'async_trait;
}

Required Methods§

Source

fn get_compressed_account<'life0, 'async_trait>( &'life0 self, address: [u8; 32], config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns the compressed account with the given address or hash.

Source

fn get_compressed_account_by_hash<'life0, 'async_trait>( &'life0 self, hash: [u8; 32], config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Option<CompressedAccount>>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns the compressed account with the given address or hash.

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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the owner’s compressed accounts.

Source

fn get_compressed_balance<'life0, 'async_trait>( &'life0 self, address: Option<[u8; 32]>, hash: Option<[u8; 32]>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns the balance for the compressed account with the given address or hash.

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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the total balance of the owner’s compressed accounts.

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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the owner balances for a given mint in descending order.

Source

fn get_compressed_token_account_balance<'life0, 'async_trait>( &'life0 self, address: Option<[u8; 32]>, hash: Option<[u8; 32]>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<u64>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns the balance for a given token account.

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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the compressed token accounts that are partially or fully delegated to the given delegate.

Source

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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the token balances for a given owner.

Source

fn get_compression_signatures_for_account<'life0, 'async_trait>( &'life0 self, hash: [u8; 32], config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Items<SignatureWithMetadata>>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns the token balances for a given owner.

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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Return the signatures of the transactions that closed or opened a compressed account with the given address.

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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the signatures of the transactions that have modified an owner’s compressed accounts.

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 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the signatures of the transactions that have modified an owner’s compressed token accounts.

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 'life0: 'async_trait, Self: 'async_trait,

Returns an error if the indexer is stale by more than a configurable number of blocks. Otherwise, it returns ok.

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 'life0: 'async_trait, Self: 'async_trait,

Returns the slot of the last block indexed by the indexer.

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 'life0: 'async_trait, Self: 'async_trait,

Returns multiple proofs used by the compression program to verify the accounts’ validity.

Source

fn get_multiple_compressed_accounts<'life0, 'async_trait>( &'life0 self, addresses: Option<Vec<[u8; 32]>>, hashes: Option<Vec<[u8; 32]>>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Items<Option<CompressedAccount>>>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns multiple compressed accounts with the given addresses or hashes.

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 'life0: 'async_trait, Self: 'async_trait,

Returns proofs that the new addresses are not taken already and can be created.

Source

fn get_validity_proof<'life0, 'async_trait>( &'life0 self, hashes: Vec<[u8; 32]>, new_addresses_with_trees: Vec<AddressWithTree>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<ValidityProofWithContext>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns a single ZK Proof used by the compression program to verify that the given accounts are valid and that the new addresses can be created.

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 'life0: 'async_trait, Self: 'async_trait,

Returns queue elements with deduplicated nodes for efficient staging tree construction. Supports output queue, input queue, and address queue.

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 'life0: 'async_trait, Self: 'async_trait,

Returns information about all queues in the system. Includes tree pubkey, queue pubkey, queue type, and queue size for each queue.

Source

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 'life0: 'async_trait, Self: 'async_trait,

Implementors§