Barry Bonds and the San Francisco Giants completed a $15.8 million, one-year contract Monday night after the slugger spent hours at the ballpark being examined by team doctors. A baseball official confirmed the deal, speaking on condition of anonymity because the Giants had not yet announced it.