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<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<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<TokenAccount>>, 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<TokenAccount>>, 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<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_address_queue_with_proofs<'life0, 'life1, 'async_trait>( &'life0 mut self, merkle_tree_pubkey: &'life1 Pubkey, zkp_batch_size: u16, start_offset: Option<u64>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<BatchAddressUpdateIndexerResponse>, IndexerError>> + Send + 'async_trait>> where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait; fn get_queue_elements<'life0, 'async_trait>( &'life0 mut self, merkle_tree_pubkey: [u8; 32], queue_type: QueueType, num_elements: u16, start_offset: Option<u64>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Items<MerkleProofWithContext>>, 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<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<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<TokenAccount>>, 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<TokenAccount>>, 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<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_address_queue_with_proofs<'life0, 'life1, 'async_trait>( &'life0 mut self, merkle_tree_pubkey: &'life1 Pubkey, zkp_batch_size: u16, start_offset: Option<u64>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<BatchAddressUpdateIndexerResponse>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Source

fn get_queue_elements<'life0, 'async_trait>( &'life0 mut self, merkle_tree_pubkey: [u8; 32], queue_type: QueueType, num_elements: u16, start_offset: Option<u64>, config: Option<IndexerRpcConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Items<MerkleProofWithContext>>, IndexerError>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Returns queue elements from the queue with the given merkle tree pubkey. For input queues account compression program does not store queue elements in the account data but only emits these in the public transaction event. The indexer needs the queue elements to create batch update proofs.

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§