const e=require(`../../constants/chains.constants.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../error-handling/logger.cjs`),r=require(`./create-provider.cjs`),i=require(`../../constants/tx-confirmation.constants.cjs`);require(`../../constants/index.cjs`);var a=`confirmed`,o=async(e,n,a={})=>{let{evmConfirmations:o=1,evmTimeoutMs:s=i.TX_CONFIRMATION_TIMEOUT_EXTENDED}=a,c=n.startsWith(`0x`)?n:`0x${n}`,l=await r.createJsonRpcProvider(e).waitForTransaction(c,o,s);if(!l||l.status!==1)throw Error(t.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED);return l},s=async(t,n,i={})=>{let{solanaCommitment:o=a}=i,{fetchRpcUrl:s}=e.networkRegistry[t];if(!s)throw Error(`RPC URL not found for the specified chain ID`);let c=await r.createCustomSolanaConnection(s,o).confirmTransaction(n,o);if(c.value.err)throw Error(`Transaction failed`);return c},c=async(t,r,i={})=>{try{if(e.isSolanaLike(t)){await s(t,r,i);return}await o(t,r.startsWith(`0x`)?r:`0x${r}`,i)}catch(e){throw n.Logger.error(`waitForTransactionConfirmation failed`,{chainId:t,txHash:r,error:e}),e}};exports.waitForEthereumTransactionConfirmation=o,exports.waitForSolanaTransactionConfirmation=s,exports.waitForTransactionConfirmation=c;