hashes.d.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { Hash256 } from './types/hash-256';
  2. import { BytesList } from './serdes/binary-serializer';
  3. import { Buffer } from 'buffer/';
  4. /**
  5. * Class for hashing with SHA512
  6. * @extends BytesList So SerializedTypes can write bytes to a Sha512Half
  7. */
  8. declare class Sha512Half extends BytesList {
  9. private hash;
  10. /**
  11. * Construct a new Sha512Hash and write bytes this.hash
  12. *
  13. * @param bytes bytes to write to this.hash
  14. * @returns the new Sha512Hash object
  15. */
  16. static put(bytes: Buffer): Sha512Half;
  17. /**
  18. * Write bytes to an existing Sha512Hash
  19. *
  20. * @param bytes bytes to write to object
  21. * @returns the Sha512 object
  22. */
  23. put(bytes: Buffer): Sha512Half;
  24. /**
  25. * Compute SHA512 hash and slice in half
  26. *
  27. * @returns half of a SHA512 hash
  28. */
  29. finish256(): Buffer;
  30. /**
  31. * Constructs a Hash256 from the Sha512Half object
  32. *
  33. * @returns a Hash256 object
  34. */
  35. finish(): Hash256;
  36. }
  37. /**
  38. * compute SHA512 hash of a list of bytes
  39. *
  40. * @param args zero or more arguments to hash
  41. * @returns the sha512half hash of the arguments.
  42. */
  43. declare function sha512Half(...args: Buffer[]): Buffer;
  44. /**
  45. * Construct a transactionID from a Serialized Transaction
  46. *
  47. * @param serialized bytes to hash
  48. * @returns a Hash256 object
  49. */
  50. declare function transactionID(serialized: Buffer): Hash256;
  51. export { Sha512Half, sha512Half, transactionID };