proto-signing: Add makeCosmoshubPath helper

This commit is contained in:
willclarktech 2021-05-11 12:28:59 +02:00
parent 0dda1b0c4a
commit 857b393eb4
No known key found for this signature in database
GPG Key ID: 551A86E2E398ADF7
3 changed files with 42 additions and 0 deletions

View File

@ -16,6 +16,7 @@ export {
} from "./registry";
export { DirectSecp256k1HdWallet, DirectSecp256k1HdWalletOptions } from "./directsecp256k1hdwallet";
export { DirectSecp256k1Wallet } from "./directsecp256k1wallet";
export { makeCosmoshubPath } from "./paths";
export { decodePubkey, encodePubkey } from "./pubkey";
export {
AccountData,

View File

@ -0,0 +1,26 @@
import { Slip10RawIndex } from "@cosmjs/crypto";
import { makeCosmoshubPath } from "./paths";
describe("paths", () => {
describe("makeCosmoshubPath", () => {
it("works", () => {
// m/44'/118'/0'/0/0
expect(makeCosmoshubPath(0)).toEqual([
Slip10RawIndex.hardened(44),
Slip10RawIndex.hardened(118),
Slip10RawIndex.hardened(0),
Slip10RawIndex.normal(0),
Slip10RawIndex.normal(0),
]);
// m/44'/118'/0'/0/123
expect(makeCosmoshubPath(123)).toEqual([
Slip10RawIndex.hardened(44),
Slip10RawIndex.hardened(118),
Slip10RawIndex.hardened(0),
Slip10RawIndex.normal(0),
Slip10RawIndex.normal(123),
]);
});
});
});

View File

@ -0,0 +1,15 @@
import { HdPath, Slip10RawIndex } from "@cosmjs/crypto";
/**
* The Cosmos Hub derivation path in the form `m/44'/118'/0'/0/a`
* with 0-based account index `a`.
*/
export function makeCosmoshubPath(a: number): HdPath {
return [
Slip10RawIndex.hardened(44),
Slip10RawIndex.hardened(118),
Slip10RawIndex.hardened(0),
Slip10RawIndex.normal(0),
Slip10RawIndex.normal(a),
];
}