Understanding Code Reuse in Smart Contracts | Synapse