add getTokenLargestAccounts rpc method to rust client (#26840)
* add get token largest accounts rpc call to client * split to include with commitment
This commit is contained in:
parent
3b87aa9227
commit
9fb7ec77c8
|
@ -5016,6 +5016,31 @@ impl RpcClient {
|
|||
.await
|
||||
}
|
||||
|
||||
pub async fn get_token_largest_accounts(
|
||||
&self,
|
||||
mint: &Pubkey,
|
||||
) -> ClientResult<Vec<RpcTokenAccountBalance>> {
|
||||
Ok(self
|
||||
.get_token_largest_accounts_with_commitment(mint, self.commitment())
|
||||
.await?
|
||||
.value)
|
||||
}
|
||||
|
||||
pub async fn get_token_largest_accounts_with_commitment(
|
||||
&self,
|
||||
mint: &Pubkey,
|
||||
commitment_config: CommitmentConfig,
|
||||
) -> RpcResult<Vec<RpcTokenAccountBalance>> {
|
||||
self.send(
|
||||
RpcRequest::GetTokenLargestAccounts,
|
||||
json!([
|
||||
mint.to_string(),
|
||||
self.maybe_map_commitment(commitment_config).await?
|
||||
]),
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn get_token_supply(&self, mint: &Pubkey) -> ClientResult<UiTokenAmount> {
|
||||
Ok(self
|
||||
.get_token_supply_with_commitment(mint, self.commitment())
|
||||
|
|
|
@ -3901,6 +3901,24 @@ impl RpcClient {
|
|||
)
|
||||
}
|
||||
|
||||
pub fn get_token_largest_accounts(
|
||||
&self,
|
||||
mint: &Pubkey,
|
||||
) -> ClientResult<Vec<RpcTokenAccountBalance>> {
|
||||
self.invoke((self.rpc_client.as_ref()).get_token_largest_accounts(mint))
|
||||
}
|
||||
|
||||
pub fn get_token_largest_accounts_with_commitment(
|
||||
&self,
|
||||
mint: &Pubkey,
|
||||
commitment_config: CommitmentConfig,
|
||||
) -> RpcResult<Vec<RpcTokenAccountBalance>> {
|
||||
self.invoke(
|
||||
(self.rpc_client.as_ref())
|
||||
.get_token_largest_accounts_with_commitment(mint, commitment_config),
|
||||
)
|
||||
}
|
||||
|
||||
pub fn get_token_supply(&self, mint: &Pubkey) -> ClientResult<UiTokenAmount> {
|
||||
self.invoke((self.rpc_client.as_ref()).get_token_supply(mint))
|
||||
}
|
||||
|
|
|
@ -100,6 +100,7 @@ pub enum RpcRequest {
|
|||
GetTokenAccountBalance,
|
||||
GetTokenAccountsByDelegate,
|
||||
GetTokenAccountsByOwner,
|
||||
GetTokenLargestAccounts,
|
||||
GetTokenSupply,
|
||||
GetTransaction,
|
||||
GetTransactionCount,
|
||||
|
@ -175,6 +176,7 @@ impl fmt::Display for RpcRequest {
|
|||
RpcRequest::GetTokenAccountsByDelegate => "getTokenAccountsByDelegate",
|
||||
RpcRequest::GetTokenAccountsByOwner => "getTokenAccountsByOwner",
|
||||
RpcRequest::GetTokenSupply => "getTokenSupply",
|
||||
RpcRequest::GetTokenLargestAccounts => "getTokenLargestAccounts",
|
||||
RpcRequest::GetTransaction => "getTransaction",
|
||||
RpcRequest::GetTransactionCount => "getTransactionCount",
|
||||
RpcRequest::GetVersion => "getVersion",
|
||||
|
@ -322,6 +324,10 @@ mod tests {
|
|||
let test_request = RpcRequest::SendTransaction;
|
||||
let request = test_request.build_request_json(1, Value::Null);
|
||||
assert_eq!(request["method"], "sendTransaction");
|
||||
|
||||
let test_request = RpcRequest::GetTokenLargestAccounts;
|
||||
let request = test_request.build_request_json(1, Value::Null);
|
||||
assert_eq!(request["method"], "getTokenLargestAccounts");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Reference in New Issue