@hover-labs/tezos-msig-cli
Version:
CLI Client for Tezos timelock multisig.
25 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.keyStoreFromPrivateKey = void 0;
const conseiljs_softsigner_1 = require("conseiljs-softsigner");
const tezos_multisig_lib_1 = require("@hover-labs/tezos-multisig-lib");
const base58Check = require('bs58check');
const sodium = require('libsodium-wrappers');
const keyStoreFromPrivateKey = async (privateKey) => {
if (!privateKey.startsWith('edsk')) {
throw new Error('Only edsk keys are supported');
}
if (privateKey.length === 54) {
await sodium.ready;
const decodedBytes = base58Check.decode(privateKey).slice(4);
const keyPair = sodium.crypto_sign_seed_keypair(decodedBytes);
const derivedPrivateKeyBytes = tezos_multisig_lib_1.Utils.mergeBytes(new Uint8Array([43, 246, 78, 7]), keyPair.privateKey);
const derivedPrivateKey = base58Check.encode(derivedPrivateKeyBytes);
return await conseiljs_softsigner_1.KeyStoreUtils.restoreIdentityFromSecretKey(derivedPrivateKey);
}
else {
return await conseiljs_softsigner_1.KeyStoreUtils.restoreIdentityFromSecretKey(privateKey);
}
};
exports.keyStoreFromPrivateKey = keyStoreFromPrivateKey;
//# sourceMappingURL=helpers.js.map