require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`./etherFunctions.cjs`),r=require(`../pre-transaction/solana.cjs`),i=require(`../../API/callOkxAPI.cjs`);let a=require(`@solana/web3.js`);var o=(e,t,n,r,i=.7)=>({amount:`${n}`,chainIndex:`501`,fromTokenAddress:e.toString(),toTokenAddress:t.toString(),userWalletAddress:r,slippagePercent:`${i}`,directRoute:!0}),s=async(s,c,l,u,d=.5,f,p)=>{if(!t.isSolanaLike(s))throw Error(`OKX is only supported on Solana`);let m=n.randomBigInt(31),h=n.getAmountInWei(c,u),{hinkalAddress:g,originalDeployer:_}=t.networkRegistry[s].contractData;if(!_)throw Error(`No original deployer configured for Solana program`);if(p&&!f)throw Error(`Proxy wallet address is required`);let v=new a.PublicKey(g),y=new a.PublicKey(_),b=p&&f?new a.PublicKey(f):r.getSwapperAccountPublicKeyFromSalt(v,y,m),{okxResponse:x,status:S}=await i.callOkxAPI({quote:o(new a.PublicKey(c.erc20TokenAddress),new a.PublicKey(l.erc20TokenAddress),h,b.toString(),d)});if(S!==`success`)throw Error(`OKX API Fetch Error`);if(x.code!==`0`)throw Error(`OKX API error: ${x.msg}`);return{outSwapAmountValue:BigInt(x.data.routerResult.toTokenAmount),okxDataValue:e.safeJsonStringify({...x,swapperAccountSalt:m.toString()})}};exports.createOKXQuote=o,exports.getOKXPrice=s;