Iran promises revenge for top general's killing