referrerpolicy=no-referrer-when-downgrade

worst_case_weighable_message

Function worst_case_weighable_message 

Source
pub fn worst_case_weighable_message<T: Config>(target_bytes: u32) -> Vec<u8> 
where <T as Config>::RuntimeCall: From<Call<T>>,
Expand description

The worst case for WeightInfo::weigh_message: a Transact carrying batch_call([pallet_xcm.execute(Xcm([])); N]), encoded, of at least target_bytes bytes.

A Transact payload resolving to a local call is decoded eagerly, and weighing it recurses get_dispatch_info() over every batched call, so both costs scale with the number of calls the blob can hold. The worst case therefore spends target_bytes on as many calls as it fits, leaving the inner messages empty.

Empty also keeps the blob decodable: MAX_INSTRUCTIONS_TO_DECODE is one budget shared by every nesting level, so instructions inside a Transact spend the outer allowance.

Keep target_bytes at or below MAX_WEIGHABLE_BLOB_BYTES.