UNPKG

lighthouse-encryption-sdk-browser

Version:

Encryption SDK: Build your trustless, decentralized and fault resistance Application using distributed key shades with threshold cryptography

70 lines (69 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.saveShards = void 0; const util_1 = require("../../util"); const util_2 = require("../../util"); const saveShards = async (address, cid, auth_token, keyShards, shareTo = []) => { if (!(0, util_2.isCidReg)(cid)) { return { isSuccess: false, error: "Invalid CID", }; } if (!Array.isArray(keyShards) || keyShards.length != 5) { return { isSuccess: false, error: "keyShards must be an array of 5 objects", }; } try { const nodeId = [1, 2, 3, 4, 5]; const nodeUrl = nodeId.map((elem) => `/api/setSharedKey/${elem}`); const requestData = async (url, index) => { try { const response = await (0, util_1.API_NODE_HANDLER)(url, "POST", auth_token, shareTo.length > 0 ? { address, cid, payload: keyShards[index], sharedTo: shareTo, } : { address, cid, payload: keyShards[index], }); return response; } catch (error) { return { error, }; } }; const data = []; for (const [index, url] of nodeUrl.entries()) { const response = await requestData(url, index); 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, util_2.isEqual)(...temp) && data[0]?.message === "success", error: null, }; } catch (err) { return { isSuccess: false, error: err, }; } }; exports.saveShards = saveShards;