pub fn decode_constant_with_info<'info, 'resolver, V>(
info: &ConstantInfo<'info, <V::TypeResolver as TypeResolver>::TypeId>,
type_resolver: &'resolver V::TypeResolver,
visitor: V,
) -> Result<V::Value<'info, 'resolver>, ConstantDecodeError<<V::TypeResolver as TypeResolver>::TypeId>>Expand description
Decode a constant given the ConstantInfo and a resolver to resolve the constant type.
ยงExample
use frame_decode::constants::{ConstantTypeInfo, decode_constant_with_info};
use frame_metadata::RuntimeMetadata;
use scale_value::scale::ValueVisitor;
use parity_scale_codec::Decode;
let metadata_bytes = std::fs::read("artifacts/metadata_10000000_9180.scale").unwrap();
let RuntimeMetadata::V14(metadata) = RuntimeMetadata::decode(&mut &*metadata_bytes).unwrap() else { return };
let ed_info = metadata.constant_info("Balances", "ExistentialDeposit").unwrap();
let ed = decode_constant_with_info(
&ed_info,
&metadata.types,
ValueVisitor::new()
).unwrap();
println!("{ed}");