@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
52 lines (49 loc) • 1.79 kB
JavaScript
import { post } from '@toruslabs/http-helpers';
import { getAccountLinkingRequestError, AccountLinkingError } from './errors.js';
/**
* Send both identity proofs to the Citadel account-linking endpoint and
* return a normalized result.
*
* Throws AccountLinkingError when the server returns an error or the request itself fails.
*/
async function makeAccountLinkingRequest(authServerUrl, accessToken, payload) {
const url = `${authServerUrl}/v1/link/wallet`;
let result;
try {
result = await post(url, payload, {
headers: {
Authorization: `Bearer ${accessToken}`
}
});
} catch (cause) {
const accountLinkingError = await getAccountLinkingRequestError(cause);
throw accountLinkingError;
}
if (!result.success) {
var _result$message;
const errMessage = (_result$message = result.message) !== null && _result$message !== void 0 ? _result$message : "Failed to link account";
throw AccountLinkingError.requestFailed(errMessage);
}
return result;
}
async function makeAccountUnlinkingRequest(authServerUrl, accessToken, payload) {
const url = `${authServerUrl}/v1/unlink`;
let result;
try {
result = await post(url, payload, {
headers: {
Authorization: `Bearer ${accessToken}`
}
});
} catch (cause) {
const message = cause instanceof Error ? cause.message : String(cause);
throw AccountLinkingError.requestFailed(message, cause);
}
if (!result.success) {
var _result$message2;
const errMessage = (_result$message2 = result.message) !== null && _result$message2 !== void 0 ? _result$message2 : "Failed to unlink account";
throw AccountLinkingError.requestFailed(errMessage);
}
return result;
}
export { makeAccountLinkingRequest, makeAccountUnlinkingRequest };