clean up TradeOffer#hashCode()