require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../pre-transaction/solana.cjs`),n=require(`../../data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.cjs`),r=require(`../utils/solanaMint.utils.cjs`),i=require(`./common.snarkjs.cjs`),a=require(`./generateZkProof.cjs`);require(`../pre-transaction/index.cjs`);const o=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),s=require(`../pre-transaction/getSolanaCalldataHash.cjs`);let c=require(`@solana/web3.js`);var l=async(l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.chainIds.solanaLocalnet,E=!1,D=0n,O=[],k=[])=>{let A=new c.PublicKey(x),j=new c.PublicKey(S),M=p.getShieldedPrivateKey(),N=h.map(e=>r.formatMintAddress(e)),P=N.map(e=>e.mintAccountPart1),F=N.map(e=>e.mintAccountPart2),I=s.getSolanaCalldataHash(C,A,j,w,y,b,O,k),L=`${C.tokenNumber}x${C.nullifierAmount}x${C.outputAmount}`,R=i.calcAmountChanges(g,_),z=await n.hinkalCheckSolanaTokenRegistry(m,new c.PublicKey(u),h,R),{inCommitmentSiblings:B,inCommitmentSiblingSides:V,accessTokenSiblings:H,accessTokenSiblingSides:U,rootHashHinkal:W,rootHashAccessToken:G,inNullifiers:K}=await o.getDataFromWorkers(T,d,f,p,g.map(e=>e.map(e=>e.getConstructableParams())),E,z),q={rootHashHinkal:W,shieldedPrivateKey:M,rootHashAccessToken:G,accessTokenSiblings:H,accessTokenSiblingSides:U,mintAccountPart1:P,mintAccountPart2:F,inAmounts:g.map(e=>e.map(e=>e.amount)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inRandomizations:g.map(e=>e.map(e=>e.randomization)),inNullifiers:K,inCommitmentSiblings:B,inCommitmentSiblingSides:V,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),extraRandomization:v,amountChanges:R,outCommitments:_.map(e=>e.map(e=>e.amount===0n?0n:e.getCommitment())),calldataHash:I,swapperAccountSalt:D},{publicSignals:J,zkCallData:Y}=await a.generateZkProof(T,`basicSolana${L}`,q,l),[X,Z,Q]=Y;return{proofAArr:X.map(BigInt).map(t.encodeToByte32Array).flat(),proofBArr:Z.flat().map(BigInt).map(t.encodeToByte32Array).flat(),proofCArr:Q.map(BigInt).map(t.encodeToByte32Array).flat(),publicInputsArr:J.map(BigInt).map(t.encodeToByte32Array)}};exports.constructSolanaZkProof=l;