  Smart contract (SC) is an extension of BlockChain technology. Ethereum
BlockChain was the first to incorporate SC and thus started a new era of
crypto-currencies and electronic transactions. Solidity helps to program the
SCs. Still, soon after Solidity's emergence in 2014, Solidity-based SCs
suffered many attacks that deprived the SC account holders of their precious
funds. The main reason for these attacks was the presence of vulnerabilities in
SC. This paper discusses SC vulnerabilities and classifies them according to
the domain knowledge of the faulty operations. This classification is a source
of reminding developers and software engineers that for SC's safety, each SC
requires proper testing with effective tools to catch those classes'
vulnerabilities.
