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.