Congrats, you are the winner of this round!
You answered both questions absolutely correctly!
-
Qxa7 (threatening Qg7#; and, as you wrote, black cannot play Rxa7 because of Rf8#)
-
Black's only but sufficient answer was 1. ... Nf3+; white cannot play 2. Bxf3 or gxf3 because of Rxa7 - and after 2. Rxf3 follows Qe1+ with perpetual check as you pointed out.
RE: Chess problem 46 / Schachaufgabe 46