Skip to content

Commit

Permalink
Merge pull request #21 from ChainSafe/cayman/eth2-validator-paths
Browse files Browse the repository at this point in the history
Add eth2ValidatorPaths utility
  • Loading branch information
wemeetagain committed Aug 11, 2020
2 parents fd1ed98 + ced392a commit 482bc69
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,27 @@ export interface IEth2ValidatorKeys {
signing: Buffer;
}

/**
* Return Eth2 validator HD paths
*/
export function eth2ValidatorPaths(validatorIndex: number): {
withdrawal: string;
signing: string;
} {
return {
withdrawal: `m/12381/3600/${validatorIndex}/0`,
signing: `m/12381/3600/${validatorIndex}/0/0`,
};
}

/**
* Derive Eth2 validator secret keys from a single master secret key
* @param masterKey master secret key
*/
export function deriveEth2ValidatorKeys(masterKey: Buffer, validatorIndex: number): IEth2ValidatorKeys {
const paths = eth2ValidatorPaths(validatorIndex);
return {
withdrawal: deriveKeyFromMaster(masterKey, `m/12381/3600/${validatorIndex}/0`),
signing: deriveKeyFromMaster(masterKey, `m/12381/3600/${validatorIndex}/0/0`),
withdrawal: deriveKeyFromMaster(masterKey, paths.withdrawal),
signing: deriveKeyFromMaster(masterKey, paths.signing),
};
}

0 comments on commit 482bc69

Please sign in to comment.