@lighthouse-web3/kavach
Version:
Encryption SDK: Build your trustless, decentralized and fault resistance Application using distributed key shades with threshold cryptography
58 lines (57 loc) • 1.81 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.shareToAddress = void 0;
const util_1 = require("../../util");
const index_1 = require("../../util/index");
const shareToAddress = async (address, cid, auth_token, shareTo) => {
if (!(0, index_1.isCidReg)(cid)) {
return {
isSuccess: false,
error: "Invalid CID",
};
}
try {
const nodeId = [1, 2, 3, 4, 5];
const nodeUrl = nodeId.map((elem) => `/api/setSharedKey/${elem}`);
// send encryption key
const requestData = async (url) => {
try {
const response = await (0, util_1.API_NODE_HANDLER)(url, "PUT", auth_token, {
address,
cid: cid,
shareTo,
});
return response;
}
catch (error) {
return {
error,
};
}
};
const data = [];
for (const [index, url] of nodeUrl.entries()) {
const response = await requestData(url);
if (response.error) {
return {
isSuccess: false,
error: JSON.parse(response?.error?.message),
};
}
await new Promise((resolve) => setTimeout(resolve, 1000));
data.push(response);
}
const temp = data.map((elem, index) => ({ ...elem, data: null }));
return {
isSuccess: (0, index_1.isEqual)(...temp) && temp[0]?.message === "success",
error: null,
};
}
catch (err) {
return {
isSuccess: false,
error: err,
};
}
};
exports.shareToAddress = shareToAddress;
;