fix: if the registry entry hash type is not ed25519, return a new cid with the type set to raw
This commit is contained in:
parent
bef8f1fd8c
commit
517446310d
10
src/cid.ts
10
src/cid.ts
|
@ -1,6 +1,6 @@
|
||||||
import Multibase from "#multibase.js";
|
import Multibase from "#multibase.js";
|
||||||
import { Multihash } from "#multihash.js";
|
import { Multihash } from "#multihash.js";
|
||||||
import { CID_TYPES, REGISTRY_TYPES } from "#constants.js";
|
import { CID_HASH_TYPES, CID_TYPES, REGISTRY_TYPES } from "#constants.js";
|
||||||
import { decodeEndian, encodeEndian } from "#util.js";
|
import { decodeEndian, encodeEndian } from "#util.js";
|
||||||
import { concatBytes, equalBytes } from "@noble/curves/abstract/utils";
|
import { concatBytes, equalBytes } from "@noble/curves/abstract/utils";
|
||||||
import { hexToBytes } from "@noble/hashes/utils";
|
import { hexToBytes } from "@noble/hashes/utils";
|
||||||
|
@ -29,7 +29,13 @@ export default class CID extends Multibase {
|
||||||
|
|
||||||
bytes = bytes.slice(1);
|
bytes = bytes.slice(1);
|
||||||
|
|
||||||
return CID._init(bytes);
|
const cid = CID._init(bytes);
|
||||||
|
|
||||||
|
if (cid.hash.functionType !== CID_HASH_TYPES.ED25519) {
|
||||||
|
return cid.copyWith({ type: CID_TYPES.RAW });
|
||||||
|
}
|
||||||
|
|
||||||
|
return cid;
|
||||||
}
|
}
|
||||||
|
|
||||||
static fromBytes(bytes: Uint8Array): CID {
|
static fromBytes(bytes: Uint8Array): CID {
|
||||||
|
|
Loading…
Reference in New Issue