decode_constant_with_info

Function decode_constant_with_info 

Source
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>>
where V: Visitor, V::Error: Debug,
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}");