The Justin Upton trade suddenly looks better for the Arizona Diamondbacks.
The D-Backs locked up infielder/outfielder Martin Prado on Thursday, signing him to a four-year contract.
The deal, which was announced by the team, is for $40 million, according to a major-league source.
Prado, 29, was the most significant piece that the Diamondbacks acquired for Upton in a seven-player deal last Thursday.
The Atlanta Braves had offered Prado $6.65 million in arbitration before trading him. Prado had requested $7.05 million.
The new contract settles Prado's final year of arbitration and buys out the first three years of his free agency.
Prado, who will play third base for the D-backs, batted .301 last season with a career-high 42 doubles, 10 homers, 70 RBI and a .796 OPS.
He led the National League with 60-multi-hit games, and is a career .301 hitter with a .780 OPS.