( parameters: CommitmentToVersionedHashParameters<commitment, to>, )
| 44 | * ``` |
| 45 | */ |
| 46 | export function commitmentToVersionedHash< |
| 47 | const commitment extends Hex | ByteArray, |
| 48 | to extends To = |
| 49 | | (commitment extends Hex ? 'hex' : never) |
| 50 | | (commitment extends ByteArray ? 'bytes' : never), |
| 51 | >( |
| 52 | parameters: CommitmentToVersionedHashParameters<commitment, to>, |
| 53 | ): CommitmentToVersionedHashReturnType<to> { |
| 54 | const { commitment, version = 1 } = parameters |
| 55 | const to = parameters.to ?? (typeof commitment === 'string' ? 'hex' : 'bytes') |
| 56 | |
| 57 | const versionedHash = sha256(commitment, 'bytes') |
| 58 | versionedHash.set([version], 0) |
| 59 | return ( |
| 60 | to === 'bytes' ? versionedHash : bytesToHex(versionedHash) |
| 61 | ) as CommitmentToVersionedHashReturnType<to> |
| 62 | } |
no test coverage detected