Skip to content
  • Just van Stam's avatar
    Transactional processing for XCM (#1222) · 50eb12cf
    Just van Stam authored
    
    
    Moved from: https://github.com/paritytech/polkadot/pull/6951
    
    closes https://github.com/paritytech/polkadot-sdk/issues/490
    
    - [x] update cumulus
    
    --- 
    This PR introduces transactional processing of certain xcm instructions.
    For the list of instructions checkout
    https://github.com/paritytech/polkadot-sdk/issues/490. The transactional
    processing is implemented as an xcm-executor config item. The two
    implementations in this PR are `FrameTransactionalProcessor` and `()`.
    The `()` implementation does no transactional processing. Each
    implementation of the `ProcessTransaction` trait has an
    `IS_TRANSACTIONAL` const that tells the XCVM if transactional processing
    is actually implemented. If Transactional processing is implemented,
    changes to touched registers should also be rolled back to prevent
    inconsistencies.
    
    
    Note for reviewers:
    Check out the following safety assumption:
    https://github.com/paritytech/polkadot-sdk/pull/1222/files#diff-4effad7d8c1c9de19fd27e18661cbf2128c8718f3b2420a27d2f816e0749ea53R30
    
    ---------
    
    Co-authored-by: default avatarKeith Yeung <[email protected]>
    Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
    Co-authored-by: command-bot <>
    50eb12cf