docs: public static byte[] getMerkleRootHash(Queue<byte[]> hashQueue,
  		@NonNull HashAlgorithm algorithm)
  	{
  		while (hashQueue.size() > 1)
  		{
  			byte[] hashValue = ArrayUtils.addAll(hashQueue.poll(), hashQueue.poll());
  			switch (algorithm)
  			{
  				case SHA1 :
  					hashQueue.add(DigestUtils.sha1(hashValue));
  				case SHA256 :
  					hashQueue.add(DigestUtils.sha256(hashValue));
  				case SHA384 :
  					hashQueue.add(DigestUtils.sha384(hashValue));
  				case SHA512 :
  					hashQueue.add(DigestUtils.sha512(hashValue));
  				case SHA_1 :
  					hashQueue.add(DigestUtils.sha1(hashValue));
  				case SHA_256 :
  					hashQueue.add(DigestUtils.sha256(hashValue));
  				case SHA_384 :
  					hashQueue.add(DigestUtils.sha384(hashValue));
  				case SHA_512 :
  					hashQueue.add(DigestUtils.sha512(hashValue));
  				default :
  					hashQueue.add(DigestUtils.sha256(hashValue));
  			}
  		}
  		return hashQueue.poll();
  	}