Skip to content

Commit

Permalink
Use raw balance value if tokenDecimals property is missing (paritytec…
Browse files Browse the repository at this point in the history
…h#1299)

* use raw balance value if tokenDecimals property is missing

* fmt
  • Loading branch information
svyatonik authored and serban300 committed Apr 9, 2024
1 parent 0b50ccb commit 39f9b29
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions bridges/relays/lib-substrate-relay/src/messages_metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,9 +202,20 @@ where
return Ok(metrics)
}

let token_decimals = client.token_decimals().await?.ok_or_else(|| {
SubstrateError::Custom(format!("Missing token decimals from {} system properties", C::NAME))
})?;
// if `tokenDecimals` is missing from system properties, we'll be using
let token_decimals = client
.token_decimals()
.await?
.map(|token_decimals| {
log::info!(target: "bridge", "Read `tokenDecimals` for {}: {}", C::NAME, token_decimals);
token_decimals
})
.unwrap_or_else(|| {
// turns out it is normal not to have this property - e.g. when polkadot binary is
// started using `polkadot-local` chain. Let's use minimal nominal here
log::info!(target: "bridge", "Using default (zero) `tokenDecimals` value for {}", C::NAME);
0
});
let token_decimals = u32::try_from(token_decimals).map_err(|e| {
anyhow::format_err!(
"Token decimals value ({}) of {} doesn't fit into u32: {:?}",
Expand Down

0 comments on commit 39f9b29

Please sign in to comment.