smart contract validation