pub trait WeightTrader: Sized {
    fn new() -> Self;
    fn buy_weight(
        &mut self,
        weight: Weight,
        payment: Assets
    ) -> Result<Assets, XcmError>; fn refund_weight(&mut self, _weight: Weight) -> Option<MultiAsset> { ... } }
Expand description

Charge for weight in order to execute XCM.

A WeightTrader may also be put into a tuple, in which case the default behavior of buy_weight and refund_weight would be to attempt to call each tuple element’s own implementation of these two functions, in the order of which they appear in the tuple, returning early when a successful result is returned.

Required Methods§

Create a new trader instance.

Purchase execution weight credit in return for up to a given payment. If less of the payment is required then the surplus is returned. If the payment cannot be used to pay for the weight, then an error is returned.

Provided Methods§

Attempt a refund of weight into some asset. The caller does not guarantee that the weight was purchased using buy_weight.

Default implementation refunds nothing.

Implementations on Foreign Types§

Implementors§