Skip to content
  • Oliver Tale-Yazdi's avatar
    [FRAME] Warn on unchecked weight witness (#1818) · 64877492
    Oliver Tale-Yazdi authored
    Adds a warning to FRAME pallets when a function argument that starts
    with `_` is used in the weight formula.
    This is in most cases an error since the weight witness needs to be
    checked.
    
    Example:
    
    ```rust
    #[pallet::call_index(0)]
    #[pallet::weight(T::SystemWeightInfo::remark(_remark.len() as u32))]
    pub fn remark(_origin: OriginFor<T>, _remark: Vec<u8>) -> DispatchResultWithPostInfo {
    	Ok(().into())
    }
    ```
    
    Produces this warning:
    
    ```pre
    warning: use of deprecated constant `pallet::warnings::UncheckedWeightWitness_0::_w`: 
                     It is deprecated to not check weight witness data.
                     Please instead ensure that all witness data for weight calculation is checked before usage.
             
                     For more info see:
                         <https://github.com/paritytech/polkadot-sdk/pull/1818>
       --> substrate/frame/system/src/lib.rs:424:40
        |
    424 |         pub fn remark(_origin: OriginFor<T>, _remark: Vec<u8>) -> DispatchResultWithPostInfo {
        |                                              ^^^^^^^
        |
        = note: `#[warn(deprecated)]` on by default
    ```
    
    Can be suppressed like this, since in this case it is legit:
    
    ```rust
    #[pallet::call_index(0)]
    #[pallet::weight(T::SystemWeightInfo::remark(remark.len() as u32))]
    pub fn remark(_origin: OriginFor<T>, remark: Vec<u8>) -> DispatchResultWithPostInfo {
    	let _ = remark; // We dont need to check the weight witness.
    	Ok(().into())
    }
    ```
    
    Changes:
    - Add warning on uncheded weight witness
    - Respect `subkeys` limit in `System::kill_prefix`
    - Fix HRMP pallet and other warnings
    - Update`proc_macro_warning` dependency
    - Delete random folder `substrate/src/src` 🙈
    
     
    - Adding Prdoc
    
    ---------
    
    Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
    Co-authored-by: default avatarjoe petrowski <[email protected]>
    64877492