@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
JavaScript
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;
;