Formal Methods for the Verification of Smart Contracts: A Review | Synapse