const e=require(`../types/transaction.types.cjs`);require(`../types/index.cjs`);const t=require(`./error-codes.constants.cjs`),n=require(`./customErrors/ErrorWithAmount.cjs`),r=require(`./customErrors/FeeOverTransactionValueError.cjs`),i=require(`./types.cjs`),a=require(`./customErrors/customErrors.helpers.cjs`);require(`./customErrors/index.cjs`);const o=require(`./isInsufficientFundsError.cjs`);var s=e=>{if(typeof e==`object`&&e){if(`response`in e&&typeof e.response==`object`&&e.response!==null&&`data`in e.response&&typeof e.response.data==`object`&&e.response.data!==null&&`message`in e.response.data&&typeof e.response.data.message==`string`)return e.response.data.message;if(`data`in e&&typeof e.data==`object`&&e.data!==null&&`message`in e.data&&typeof e.data.message==`string`)return e.data.message;if(`message`in e&&typeof e.message==`string`)return e.message}if(e instanceof Error)return e.message;if(typeof e==`string`)return e},c=e=>{switch(e){case i.ErrorCategory.DEPOSIT:return`Deposit failed`;case i.ErrorCategory.SWAP:return`Swap failed`;case i.ErrorCategory.BRIDGE:return`Bridge failed`;case i.ErrorCategory.WITHDRAW:return`Send failed`;case i.ErrorCategory.Fund:return`Unshield failed`;case i.ErrorCategory.Receive:return`Shield failed`;case i.ErrorCategory.DappTransaction:return`DApp transaction failed`;case i.ErrorCategory.Approve:return`Approval failed`;default:return t.transactionErrorCodes.UNKNOWN}},l=(e,i)=>{if(e instanceof r.FeeOverTransactionValueError)return a.getGenericFeeOverTransactionValueErrorMessage(e,i);if(e instanceof n.ErrorWithAmount){let{amount:t,message:n}=e;return`${n} ${t}`}let l=s(e);if(l&&o.isInsufficientFundsError(l))return t.insufficientResourcesErrorCodes.INSUFFICIENT_FUNDS;if(l){let e=l.toLowerCase(),n=Object.keys(t.transactionErrorCodes).find(n=>e===t.transactionErrorCodes[n].toLowerCase());if(n&&n in t.UserFriendlyErrorCodes)return t.UserFriendlyErrorCodes[n];let r=Object.entries(t.transactionErrorCodes).find(([t,n])=>e.includes(n.toLowerCase()));if(r)return t.UserFriendlyErrorCodes[r[0]]??r[1];if(Object.values(t.DIRECTLY_SHOW_MESSAGE_ERROR_CODES).find(t=>e.includes(t.toLowerCase())))return l}return i?c(i):t.transactionErrorCodes.UNKNOWN},u=(t,n)=>{let r;switch(n){case e.TransactionRequestType.Send:case e.TransactionRequestType.ProxySend:r=i.ErrorCategory.WITHDRAW;break;case e.TransactionRequestType.SwapTokens:case e.TransactionRequestType.ProxySwapTokens:r=i.ErrorCategory.SWAP;break;case e.TransactionRequestType.ReceiveFromShieldedAccount:r=i.ErrorCategory.Receive;break;case e.TransactionRequestType.Fund:r=i.ErrorCategory.Fund;break;case e.TransactionRequestType.PrivateTransactionFromProxy:r=i.ErrorCategory.DappTransaction;break;default:r=void 0;break}return l(t,r)};exports.extractMessage=s,exports.getErrorMessage=l,exports.getErrorMessageFromTransactionRequest=u;