UNPKG

@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.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transferOwnership = void 0; const util_1 = require("../../util"); const util_2 = require("../../util"); const transferOwnership = async (address, cid, newOwner, auth_token, resetSharedTo = true) => { if (!(0, util_2.isCidReg)(cid)) { return { isSuccess: false, error: "Invalid CID", }; } try { const nodeIndexSelected = [1, 2, 3, 4, 5]; const nodeUrl = nodeIndexSelected.map((elem) => `/api/transferOwnership/${elem}`); // send encryption key const requestData = async (url) => { try { const response = await (0, util_1.API_NODE_HANDLER)(url, "POST", auth_token, { address, cid, newOwner, resetSharedTo, }); 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); } return { isSuccess: (0, util_2.isEqual)(...data) && data[0]?.message === "success", error: null, }; } catch (err) { return { isSuccess: false, error: err, }; } }; exports.transferOwnership = transferOwnership;