@web3auth/no-modal
Version:
Multi chain wallet aggregator for web3Auth
93 lines (90 loc) • 3.39 kB
JavaScript
import _defineProperty from '@babel/runtime/helpers/defineProperty';
import { Web3AuthError } from '../base/errors/index.js';
class AccountLinkingError extends Web3AuthError {
constructor(code, message, cause) {
super(code, message, cause);
Object.defineProperty(this, "name", {
value: "AccountLinkingError",
configurable: true
});
}
static fromCode(code, extraMessage = "", cause) {
return new AccountLinkingError(code, `${AccountLinkingError.messages[code]}. ${extraMessage}`, cause);
}
static requestFailed(extraMessage = "", cause) {
return AccountLinkingError.fromCode(5401, extraMessage, cause);
}
static serverNotConfigured(extraMessage = "", cause) {
return AccountLinkingError.fromCode(5402, extraMessage, cause);
}
static primaryTokenNotAvailable(extraMessage = "", cause) {
return AccountLinkingError.fromCode(5403, extraMessage, cause);
}
static walletProofFailed(extraMessage = "", cause) {
return AccountLinkingError.fromCode(5404, extraMessage, cause);
}
static unsupportedConnector(extraMessage = "", cause) {
return AccountLinkingError.fromCode(5405, extraMessage, cause);
}
static cannotUnlinkActiveAccount() {
return AccountLinkingError.fromCode(5406);
}
static accountNotLinked(message = "", cause) {
return AccountLinkingError.fromCode(5407, message, cause);
}
static cannotUnlinkPrimaryAccount() {
return AccountLinkingError.fromCode(5408);
}
toString() {
return `[${this.code}] ${this.message}`;
}
}
_defineProperty(AccountLinkingError, "messages", {
5000: "Custom",
5401: "Account linking request failed",
5402: "Citadel server URL is not configured",
5403: "Primary identity token is not available",
5404: "Failed to obtain wallet proof token",
5405: "Connector is not supported for wallet linking",
5406: "Cannot unlink active account",
5407: "Account not linked",
5408: "Cannot unlink primary account"
});
async function getAccountLinkingRequestError(error) {
if (error instanceof AccountLinkingError) {
return error;
}
if (error instanceof Response) {
if (error.status === 409) {
return AccountLinkingError.requestFailed("This wallet address is already registered on this dApp");
}
if (error.json && typeof error.json === "function") {
try {
var _json$message;
const json = await error.json();
return AccountLinkingError.requestFailed((_json$message = json.message) !== null && _json$message !== void 0 ? _json$message : "Failed to link account");
} catch {
// continue
}
}
}
return AccountLinkingError.requestFailed(error instanceof Error ? error.message : JSON.stringify(error), error);
}
function formatAccountLinkingErrorMessage(error, fallbackMessage = "Unknown error during the operation.") {
if (error instanceof AccountLinkingError) {
return error.toString();
}
if (error instanceof Web3AuthError) {
return `[${error.code}] Account linking error: ${error.message || fallbackMessage}`;
}
if (error instanceof Error) {
return `Account linking error: ${error.message || fallbackMessage}`;
}
try {
const stringifiedError = JSON.stringify(error);
return stringifiedError;
} catch {
return fallbackMessage;
}
}
export { AccountLinkingError, formatAccountLinkingErrorMessage, getAccountLinkingRequestError };