near_api/types/storage.rs
use serde::de::{Deserialize, Deserializer};
// Taken from https://github.com/bos-cli-rs/near-socialdb-client-rs/blob/main/src/lib.rs
#[derive(Debug, Clone, serde::Deserialize)]
pub struct StorageBalance {
#[serde(deserialize_with = "parse_u128_string")]
pub available: u128,
#[serde(deserialize_with = "parse_u128_string")]
pub total: u128,
}
fn parse_u128_string<'de, D>(deserializer: D) -> Result<u128, D::Error>
where
D: Deserializer<'de>,
{
<std::string::String as Deserialize>::deserialize(deserializer)?
.parse::<u128>()
.map_err(serde::de::Error::custom)
}