pub fn encode_v4_unsigned<CallData, Info, Resolver>(
pallet_name: &str,
call_name: &str,
call_data: &CallData,
info: &Info,
type_resolver: &Resolver,
) -> Result<Vec<u8>, ExtrinsicEncodeError>where
CallData: EncodeAsFields,
Resolver: TypeResolver<TypeId = Info::TypeId>,
Info: ExtrinsicTypeInfo,Expand description
Encode a V4 unsigned extrinsic (also known as an inherent).
This is the same as encode_v4_unsigned_to, but returns the encoded extrinsic as a Vec<u8>,
rather than accepting a mutable output buffer.
ยงExample
use frame_decode::extrinsics::encode_v4_unsigned;
use frame_metadata::RuntimeMetadata;
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 };
// Encode a call to Timestamp.set with an argument.
// The call_data type must implement `scale_encode::EncodeAsFields`.
let call_data = scale_value::value!({
now: 1234567890u64,
});
let encoded = encode_v4_unsigned(
"Timestamp",
"set",
&call_data,
&metadata,
&metadata.types,
).unwrap();