The Escrow contract does not need to store the price.
The Escrow contract constructor gets the agreed price as a parameter. It uses it to check if the contract is sufficiently funded. Also it is stored in an immutable variable and acessible via a view function. However gas can be saved by not storing the price, as it is never used in the contract again (besides view function).
Moreover the actual price is the tokenBalance of the contract, therefore the immutable price variable can be ommited to save gas.
unneccessary immutable variable.
Manual Review
Do not store price in contract.
In getPrice function the tokenBalance can be returned.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.