const e=require(`../../API/enclaveUtxoCalls.cjs`),t=require(`../../data-structures/utxo/Utxo.cjs`),n=require(`./encryptInputForEnclave.cjs`),r=require(`../../error-handling/logger.cjs`),i=require(`./serialize-utxos.utils.cjs`);var a=e=>{let n=new Set,r=[];for(let a of e){let e=new t.Utxo(i.deserializeUtxoConstructorParams(a)).getCommitment();n.has(e)||(n.add(e),r.push(a))}return r},o=async(t,r,a,o,s)=>{let{keyCiphertext:c,inputCiphertext:l}=await n.makeEnclaveHandshakeAndEncryptInput({...i.serializeUtxoConstructorParams(a.getConstructableParams()),senderAddress:t,...s?{claimableSignature:s}:{}});await e.storeUtxoEnclaveCall(r,l,c,o)},s=async(t,i,o,s,c)=>{try{let{keyCiphertext:r,inputCiphertext:l}=await n.makeEnclaveHandshakeAndEncryptInput(i),{utxos:u}=await e.getUtxosEnclaveCall(t,l,r,o,s,c);return a(u)}catch{return r.Logger.log(`failed to fetch utxos from gcp`),[]}};exports.getUtxosFromEnclave=s,exports.storeUtxoInEnclave=o;