@fabric-es/operator
Version:
Network operator
68 lines • 2.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.enrollAdmin = void 0;
const util_1 = __importDefault(require("util"));
const types_1 = require("./types");
const utils_1 = require("./utils");
const enrollAdmin = async (option) => {
const logger = utils_1.getLogger({ name: '[operator] enrollAdmin.js' });
const { enrollmentID, enrollmentSecret, mspId, caName, connectionProfile, wallet } = option;
Object.entries(option).forEach(([key, value]) => {
if (value === undefined) {
logger.error(`${key} is missing`);
throw new Error(`${key} is missing`);
}
});
logger.debug(`enrollmentID: ${enrollmentID}`);
logger.debug(`mspId: ${mspId}`);
logger.debug(`caName: ${caName}`);
logger.debug(`connectionProfile: ${connectionProfile}`);
let caService;
try {
caService = await utils_1.getFabricCaService(connectionProfile, caName);
}
catch (e) {
logger.error(util_1.default.format('fail to newFabricCAServices: %j', e));
throw new Error(e);
}
const walletEntry = await wallet.get(enrollmentID);
if (!!walletEntry)
return {
status: types_1.SUCCESS,
message: `${types_1.IDENTITY_ALREADY_EXIST}: "${enrollmentID}"`,
};
let identity;
try {
const enrollment = await caService.enroll({ enrollmentID, enrollmentSecret });
identity = {
type: 'X.509',
mspId,
credentials: {
certificate: enrollment.certificate,
privateKey: enrollment.key.toBytes(),
},
};
}
catch (e) {
logger.error(util_1.default.format('fail to enroll %s, %j', enrollmentID, e));
throw new Error(e);
}
logger.info(`${mspId} enrolls ${enrollmentID}`);
try {
await wallet.put(enrollmentID, identity);
}
catch (e) {
logger.error(util_1.default.format('fail to import into wallet %s, %j', enrollmentID, e));
throw new Error(e);
}
logger.info(`Import identity into wallet: ${enrollmentID}`);
return {
status: types_1.SUCCESS,
message: 'Successfully enroll admin and import into the wallet',
};
};
exports.enrollAdmin = enrollAdmin;
//# sourceMappingURL=enrollAdmin.js.map