AVOIDING COMMON MISTAKES IN SOLIDITY FOR EFFECTIVE BLOCKCHAIN SMART CONTRACT DEVELOPMENT