referrerpolicy=no-referrer-when-downgrade
pallet_asset_conversion

Trait PoolLocator

Source
pub trait PoolLocator<AccountId, AssetKind, PoolId> {
    // Required methods
    fn address(id: &PoolId) -> Result<AccountId, ()>;
    fn pool_id(asset1: &AssetKind, asset2: &AssetKind) -> Result<PoolId, ()>;

    // Provided method
    fn pool_address(
        asset1: &AssetKind,
        asset2: &AssetKind,
    ) -> Result<AccountId, ()> { ... }
}
Expand description

Provides means to resolve the PoolId and AccountId from a pair of assets.

Resulting PoolId remains consistent whether the asset pair is presented as (asset1, asset2) or (asset2, asset1). The derived AccountId may serve as an address for liquidity provider tokens.

Required Methods§

Source

fn address(id: &PoolId) -> Result<AccountId, ()>

Retrieves the account address associated with a valid PoolId.

Source

fn pool_id(asset1: &AssetKind, asset2: &AssetKind) -> Result<PoolId, ()>

Identifies the PoolId for a given pair of assets.

Returns an error if the asset pair isn’t supported.

Provided Methods§

Source

fn pool_address(asset1: &AssetKind, asset2: &AssetKind) -> Result<AccountId, ()>

Retrieves the account address associated with a given asset pair.

Returns an error if the asset pair isn’t supported.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<AccountId, AssetKind, AccountIdConverter> PoolLocator<AccountId, AssetKind, (AssetKind, AssetKind)> for Ascending<AccountId, AssetKind, AccountIdConverter>
where AssetKind: Ord + Clone + Encode, AccountId: Decode, AccountIdConverter: for<'a> TryConvert<&'a (AssetKind, AssetKind), AccountId>,

Source§

impl<First, Second, AccountId, AssetKind> PoolLocator<AccountId, AssetKind, (AssetKind, AssetKind)> for Chain<First, Second>
where First: PoolLocator<AccountId, AssetKind, (AssetKind, AssetKind)>, Second: PoolLocator<AccountId, AssetKind, (AssetKind, AssetKind)>,

Source§

impl<FirstAsset, AccountId, AssetKind, AccountIdConverter> PoolLocator<AccountId, AssetKind, (AssetKind, AssetKind)> for WithFirstAsset<FirstAsset, AccountId, AssetKind, AccountIdConverter>
where AssetKind: Eq + Clone + Encode, AccountId: Decode, FirstAsset: Get<AssetKind>, AccountIdConverter: for<'a> TryConvert<&'a (AssetKind, AssetKind), AccountId>,