blockchain

Can hashing be done in compact on the client side using persistentHash?


I'm using Midnight and learning compact. I'm hoping to get some clarification on the persistentHash function (export declare function persistentHash<a>(rt_type: CompactType<a>, value: a): Uint8Array;) , especially for rt_type

Is this possible to do the same hashing in Compact on the client side? Can persistentHash be used to do the same thing?

export enum Role {
    Owner,
    None
};    
const roleHash = persistent_hash<Vector<1, Role>>([Role.Owner]);

Solution

  • gm technicalerror620!

    You need to pass it a CompactTypeVector that you can construct with new CompactTypeVector
    Since you've exported Role, there should be a type definition for it in your compiled contract.

    Check out the docs: https://docs.midnight.network/develop/reference/midnight-api/compact-runtime/classes/CompactTypeVector.