multiversx_sdk_http/gateway_http_proxy/
http_account.rs1use anyhow::Result;
2use multiversx_sdk::{
3 chain_core::std::Bech32Address,
4 data::{account::Account, esdt::EsdtBalance},
5 gateway::{
6 GetAccountEsdtRolesRequest, GetAccountEsdtTokensRequest, GetAccountRequest,
7 GetAccountStorageRequest,
8 },
9};
10use std::collections::HashMap;
11
12use super::GatewayHttpProxy;
13
14impl GatewayHttpProxy {
15 pub async fn get_account(&self, address: &Bech32Address) -> Result<Account> {
17 self.http_request(GetAccountRequest::new(address)).await
18 }
19
20 pub async fn get_account_esdt_roles(
22 &self,
23 address: &Bech32Address,
24 ) -> Result<HashMap<String, Vec<String>>> {
25 self.http_request(GetAccountEsdtRolesRequest::new(address))
26 .await
27 }
28
29 pub async fn get_account_esdt_tokens(
31 &self,
32 address: &Bech32Address,
33 ) -> Result<HashMap<String, EsdtBalance>> {
34 self.http_request(GetAccountEsdtTokensRequest::new(address))
35 .await
36 }
37
38 pub async fn get_account_storage_keys(
40 &self,
41 address: &Bech32Address,
42 ) -> Result<HashMap<String, String>> {
43 self.http_request(GetAccountStorageRequest::new(address))
44 .await
45 }
46}