add_liquidity: TxDescriptor<{
    amount1_desired: bigint;
    amount1_min: bigint;
    amount2_desired: bigint;
    amount2_min: bigint;
    asset1: {
        interior: XcmV3Junctions;
        parents: number;
    };
    asset2: {
        interior: XcmV3Junctions;
        parents: number;
    };
    mint_to: SS58String;
}>

Provide liquidity into the pool of asset1 and asset2. NOTE: an optimal amount of asset1 and asset2 will be calculated and might be different than the provided amount1_desired/amount2_desired thus you should provide the min amount you're happy to provide. Params amount1_min/amount2_min represent that. mint_to will be sent the liquidity tokens that represent this share of the pool.

NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity, batch an atomic call with [Pallet::add_liquidity] and [Pallet::swap_exact_tokens_for_tokens] or [Pallet::swap_tokens_for_exact_tokens] calls to render the liquidity withdrawable and rectify the exchange rate.

Once liquidity is added, someone may successfully call [Pallet::swap_exact_tokens_for_tokens] successfully.