Reentrancy Attacks in Solidity Smart Contracts