@polkadot/util-crypto
Version:
A collection of useful crypto utilities for @polkadot
13 lines (12 loc) • 471 B
JavaScript
import * as sr25519 from '@scure/sr25519';
import { isU8a } from '@polkadot/util';
export function createDeriveFn(derive) {
return (keypair, chainCode) => {
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 };
};
}