Skip to content
  • Tsvetomir Dimitrov's avatar
    Migrate parachain swaps to Coretime (#3714) · 90234543
    Tsvetomir Dimitrov authored
    This PR notifies broker pallet for any parachain slot swaps performed on
    the relay chain. This is achieved by registering an `OnSwap` for the the
    `coretime` pallet. The hook sends XCM message to the broker chain and
    invokes a new extrinsic `swap_leases` which updates `Leases` storage
    item (which keeps the legacy parachain leases).
    
    I made two assumptions in this PR:
    1.
    [`Leases`](https://github.com/paritytech/polkadot-sdk/blob/4987d798/substrate/frame/broker/src/lib.rs#L120)
    in `broker` pallet and
    [`Leases`](https://github.com/paritytech/polkadot-sdk/blob/4987d798
    
    /polkadot/runtime/common/src/slots/mod.rs#L118)
    in `slots` pallet are in sync.
    2. `swap_leases` extrinsic from `broker` pallet can be triggered only by
    root or by the XCM message from the relay chain. If not - the extrinsic
    will generate an error and do nothing.
    
    As a side effect from the changes `OnSwap` trait is moved from
    runtime/common/traits.rs to runtime/parachains. Otherwise it is not
    accessible from `broker` pallet.
    
    Closes https://github.com/paritytech/polkadot-sdk/issues/3552
    
    TODOs:
    
    - [x] Weights
    - [x] Tests
    
    ---------
    
    Co-authored-by: command-bot <>
    Co-authored-by: default avatareskimor <[email protected]>
    Co-authored-by: default avatarBastian Köcher <[email protected]>
    90234543