I looked it up. This is a false dichotomy. You said "Either it's inherently wrong for gays to get married or marriage is nothing but a contract". This is false. There are plenty of other possibilities.
For the sake of shortness, let's divide your statements into letters. The thing about gay marriage being morally wrong is A, the thing about marriage being just a contract is B.
Now, you say there are only two choices:
1: A is false and B is true
2: B is false and A is true
There are actually four choices that are immediately apparent:
1: A is false and B is true
2: B is false and A is true
3. A and B are both true
4. A and B are both false
However, there are actually even more choices, if you want to get more complex. The following are based on the assumption that A is false because I don't want to type more than 4 possibilities
1. A is false and B is true. A is false because homosexual marriage does not meet the qualifications of a morally wrong action.
2. A is false and B is true. A is false because morality does not exist outside the heads of human beings.
3. Both A and B are false. A is false because homosexual marriage does not meet the qualifications of a morally wrong action.
4. Both A and B are false. A is false because morality does not exist outside the heads of human beings.
Furthermore, there are actually very, very many more options including this one:
5. Both A and B are neither false nor true. This is because reality, logic, physics, and everything else are just illusions and homosexuals, morality, marriage, and contracts are not actually things that exist.
I personally believe 4 from the first list, 3 from the second list, and neither from your false dichotomy. 5 is pretty damn cool though.