@okxweb3/coin-kaia
Version:
An kaia SDK for building Web3 wallets and applications.
68 lines • 2.68 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.decryptKeystoreListSync = exports.decryptKeystoreList = void 0;
const ethers6_1 = require("ethers6");
const lodash_1 = __importDefault(require("lodash"));
const js_ext_core_1 = require("@kaiachain/js-ext-core");
function decryptKIP3(json, password, progressCallback) {
const obj = JSON.parse(json);
const jsonList = (0, js_ext_core_1.splitKeystoreKIP3)(json);
const count = jsonList.length;
const accounts = lodash_1.default.map(jsonList, (json, index) => {
const result = (0, ethers6_1.decryptKeystoreJsonSync)(json, password);
if (progressCallback) {
progressCallback((index + 1) / count);
}
return result;
});
return Promise.resolve({
address: (0, ethers6_1.getAddress)(obj.address),
privateKey: accounts[0].privateKey,
privateKeyList: lodash_1.default.map(accounts, (account) => account.privateKey),
});
}
function decryptKIP3Sync(json, password) {
const obj = JSON.parse(json);
const jsonList = (0, js_ext_core_1.splitKeystoreKIP3)(json);
const accounts = lodash_1.default.map(jsonList, (json) => {
return (0, ethers6_1.decryptKeystoreJsonSync)(json, password);
});
return {
address: (0, ethers6_1.getAddress)(obj.address),
privateKey: accounts[0].privateKey,
privateKeyList: lodash_1.default.map(accounts, (account) => account.privateKey),
};
}
function decryptKeystoreList(json, password, progressCallback) {
if ((0, js_ext_core_1.isKIP3Json)(json)) {
return decryptKIP3(json, password, progressCallback);
}
else {
return (0, ethers6_1.decryptKeystoreJson)(json, password, progressCallback).then((account) => {
return {
address: account.address,
privateKey: account.privateKey,
privateKeyList: [account.privateKey],
};
});
}
}
exports.decryptKeystoreList = decryptKeystoreList;
function decryptKeystoreListSync(json, password) {
if ((0, js_ext_core_1.isKIP3Json)(json)) {
return decryptKIP3Sync(json, password);
}
else {
const account = (0, ethers6_1.decryptKeystoreJsonSync)(json, password);
return {
address: account.address,
privateKey: account.privateKey,
privateKeyList: [account.privateKey],
};
}
}
exports.decryptKeystoreListSync = decryptKeystoreListSync;
//# sourceMappingURL=keystore.js.map