pub fn calculate_solution_parameters<Balance, BalanceRatio, Rate, Weight, Currency, MaxTranches>(
    epoch_tranches: &EpochExecutionTranches<Balance, BalanceRatio, Weight, Currency, MaxTranches>,
    solution: &[TrancheSolution]
) -> Result<(Balance, Balance, Vec<Perquintill>), DispatchError>
where BalanceRatio: Copy + FixedPointNumber, Balance: Copy + BaseArithmetic + FixedPointOperand + Unsigned + From<u64> + MultiplyRational, Weight: Copy + From<u128>, MaxTranches: Get<u32>,