SmartContractsUtils { public static String generateSmartContractHashState(byte[] byteCode) throws CreditsException { byte[] hashBytes = Md5.encrypt(byteCode); return byteArrayToHex(hashBytes); }  static List<ByteBuffer> getSmartsListFromField(String field); static byte[] generateSmartContractAddress(byte[] deployerAddress, long transactionId, List<ByteCodeObjectData> byteCodeObjects); static void saveSmartInTokenList(ObjectKeeper<ConcurrentHashMap<String, String>> coinsKeeper, String coinName, BigDecimal balance, String smartContractAddress); static int parseNumberOfDuplicateName(int identityPieceIndex, String coinName); static String generateSmartContractHashState(byte[] byteCode);  }
@Test public void generateSmartContractHashStateTest() throws CreditsException { String source = "public class Contract extends com.credits.scapi.v0.SmartContract { public Contract() { total = 0; } }"; String actual = SmartContractsUtils.generateSmartContractHashState(source.getBytes()); assertEquals("F456FD839AE84091678D3C3A79C7C4B3", actual); }