class Transaction implements Stored {

  public String createTransactionHash(String transactionPayload, final byte[] generationHashBytes) {
    byte[] bytes = ConvertUtils.fromHexToBytes(transactionPayload);
    final byte[] dataBytes = getSignBytes(bytes, generationHashBytes);
    final int sizeOfSignatureAndSignerPublicKey = 96;
    byte[] signingBytes = new byte[dataBytes.length + sizeOfSignatureAndSignerPublicKey];
    System.arraycopy(bytes, 8, signingBytes, 0, sizeOfSignatureAndSignerPublicKey);
    System.arraycopy(
        dataBytes, 0, signingBytes, sizeOfSignatureAndSignerPublicKey, dataBytes.length);
    byte[] result = Hashes.sha3_256(signingBytes);
    return ConvertUtils.toHex(result);
  }

    Transaction(TransactionFactory<?> factory);

}