API Reference¶
- multihash.encode(digest, code, length=None)[source]
Encode a hash digest along with the specified function code
- Parameters:
digest (bytes) – hash digest
code ((int or str)) – hash function code
length (int) – hash digest length
- Returns:
encoded multihash
- Return type:
bytes
- Raises:
TypeError – when the digest is not a bytes object
ValueError – when the digest length is not correct
- multihash.decode(multihash)[source]
Decode a hash from the given multihash
- Parameters:
multihash (bytes) – multihash
- Returns:
decoded
multihash.Multihashobject- Return type:
- Raises:
TypeError – if multihash is not of type bytes
ValueError – if the length of multihash is less than 3 characters
ValueError – if the code is invalid
ValueError – if the length is invalid
ValueError – if the length is not same as the digest
- multihash.is_valid(multihash)[source]
Check if the given buffer is a valid multihash
- Parameters:
multihash (bytes) – input multihash
- Returns:
if the input is a valid multihash or not
- Return type:
bool
- multihash.is_valid_code(code)[source]
Checks whether a multihash code is valid or not
- Parameters:
code (int) – input code
- Returns:
if the code valid or not
- Return type:
bool
- multihash.get_prefix(multihash)[source]
Return the prefix from the multihash
- Parameters:
multihash (bytes) – input multihash
- Returns:
multihash prefix
- Return type:
bytes
- Raises:
ValueError – when the multihash is invalid
- multihash.coerce_code(hash_fn)[source]
Converts a hash function name into its code
If passed a number it will return the number if it’s a valid code
- Parameters:
hash_fn – The input hash function can be - str, the name of the hash function - int, the code of the hash function
- Returns:
hash function code
- Return type:
int
- Raises:
ValueError – if the hash function is not supported
ValueError – if the hash code is not supported
ValueError – if the hash type is not a string or an int
- multihash.is_app_code(code)[source]
Checks whether a code is part of the app range
- Parameters:
code (int) – input code
- Returns:
if code is in the app range or not
- Return type:
bool
- multihash.to_hex_string(multihash)[source]
Convert the given multihash to a hex encoded string
- Parameters:
hash (bytes) – the multihash to be converted to hex string
- Returns:
input multihash in str
- Return type:
str
- Raises:
TypeError, if the multihash has incorrect type
- multihash.from_hex_string(multihash)[source]
Convert the given hex encoded string to a multihash
- Parameters:
multihash (str) – hex multihash encoded string
- Returns:
input multihash in bytes
- Return type:
bytes
- Raises:
TypeError, if the multihash has incorrect type
- multihash.to_b58_string(multihash)[source]
Convert the given multihash to a base58 encoded string
- Parameters:
multihash (bytes) – multihash to base58 encode
- Returns:
base58 encoded multihash string
- Return type:
str
- Raises:
TypeError, if the multihash has incorrect type
- multihash.from_b58_string(multihash)[source]
Convert the given base58 encoded string to a multihash
- Parameters:
multihash (str) – base58 encoded multihash string
- Returns:
decoded multihash
- Return type:
bytes
- Raises:
TypeError, if the multihash has incorrect type
- class multihash.Multihash(code=None, name=None, length=None, digest=None, func=None)[source]
A named tuple representing a multihash function and digest.
This extends the base namedtuple with additional methods for encoding, verification, and compatibility with both py-multihash and pymultihash APIs.