Skip to content
  • Muharem Ismailov's avatar
    XCM WeightTrader: Swap Fee Asset for Native Asset (#1845) · 2cb39f8d
    Muharem Ismailov authored
    
    
    Implements an XCM executor `WeightTrader`, facilitating fee payments in
    any asset that can be exchanged for a native asset.
    
    A few constraints need to be observed:
    - `buy_weight` and `refund` operations must be atomic, as another weight
    trader implementation might be attempted in case of failure.
    - swap credit must be utilized since there isn’t an account to which an
    asset of some class can be deposited with a guarantee to meet the
    existential deposit requirement. Also, operating with credits enhances
    the efficiency of the weight trader -
    https://github.com/paritytech/polkadot-sdk/pull/1677
    
    related PRs:
    - (depends) https://github.com/paritytech/polkadot-sdk/pull/2031
    - (depends) https://github.com/paritytech/polkadot-sdk/pull/1677
    - (caused) https://github.com/paritytech/polkadot-sdk/pull/1847
    - (caused) https://github.com/paritytech/polkadot-sdk/pull/1876
    
    // DONE: impl `OnUnbalanced` for a `fungible/s` credit
    // DONE: make the trader free from a concept of a native currency and
    drop few fallible conversions. related issue -
    https://github.com/paritytech/polkadot-sdk/issues/1842
    // DONE: tests
    
    ---------
    
    Co-authored-by: default avatarjoe petrowski <[email protected]>
    Co-authored-by: default avatarLiam Aharon <[email protected]>
    2cb39f8d