mirror of
https://github.com/pezkuwichain/pezkuwi-common.git
synced 2026-06-17 02:01:02 +00:00
a5542fdd87
- Fixed internal @polkadot references to @pezkuwi - Updated hw-ledger and hw-ledger-transports packages - Updated keyring and networks packages - Version 14.0.7
22 lines
731 B
TypeScript
22 lines
731 B
TypeScript
// Copyright 2017-2025 @pezkuwi/util-crypto authors & contributors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
import type { Keypair } from '../types.js';
|
|
|
|
import * as sr25519 from '@scure/sr25519';
|
|
|
|
import { isU8a } from '@pezkuwi/util';
|
|
|
|
export function createDeriveFn (derive: (pair: Uint8Array, cc: Uint8Array) => Uint8Array): (keypair: Keypair, chainCode: Uint8Array) => Keypair {
|
|
return (keypair: Keypair, chainCode: Uint8Array): Keypair => {
|
|
if (!isU8a(chainCode) || chainCode.length !== 32) {
|
|
throw new Error('Invalid chainCode passed to derive');
|
|
}
|
|
|
|
const secretKey = derive(keypair.secretKey, chainCode);
|
|
const publicKey = sr25519.getPublicKey(secretKey);
|
|
|
|
return { publicKey, secretKey };
|
|
};
|
|
}
|