• Bastian Köcher's avatar
    Make sure pallet versions are set at genesis (#7451) · e1b56f8d
    Bastian Köcher authored
    
    
    * Make sure pallet versions are set at genesis
    
    This pr ensures that pallet versions are also set at genesis. It does
    this by hooking into the runtime `GenesisConfig` which means that it
    will only work when the storage is setup using this genesis config. So,
    the version will not be set in pallet local tests. However, I think this
    isn't such a problem. The genesis config will call `on_genesis` on all
    pallets. This function comes from the new trait `OnGenesis`. Currently
    the user is not able to provide any custom implementation of this trait.
    
    Besides that it also implements `Clone` and `Copy` for the pallet
    version struct.
    
    This pr also moves the macro for generating the runtime genesis config
    to `frame-support` as most of the other FRAME related macros.
    
    * Reduce line width
    
    * Update frame/support/src/traits.rs
    
    Co-authored-by: default avatarAlexander Popiak <[email protected]>
    
    Co-authored-by: default avatarAlexander Popiak <[email protected]>
    e1b56f8d