function verify(Identity memory bidder, Bid memory bid, sigR, sigS, sigV) public pure returns (bool) {
return signer == ecrecover(hashBid(bid), sigV, sigR, sigS);
}
I think this is a typo, param should be signer. (It takes bidder as a param but uses signer)