@kapa123456789/sdk 0.0.65 → 0.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  2. package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +35 -2
  3. package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  4. package/common/src/data-structures/Hinkal/hinkalSwap.mjs +49 -9
  5. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  6. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +59 -12
  7. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  8. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +58 -13
  9. package/common/src/error-handling/logger.cjs +1 -1
  10. package/common/src/error-handling/logger.mjs +7 -15
  11. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  12. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +161 -48
  13. package/common/src/functions/snarkjs/generateZkProof.cjs +1 -1
  14. package/common/src/functions/snarkjs/generateZkProof.mjs +6 -1
  15. package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  16. package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +159 -38
  17. package/common/src/webworker/package.json +1 -1
  18. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  19. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  20. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  21. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
  22. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
  23. package/package.json +1 -1
  24. package/react-native/HinkalWebViewWorker.cjs +3 -3
  25. package/react-native/HinkalWebViewWorker.mjs +53 -55
  26. package/react-native/metro-config.js +3 -2
  27. package/react-native/shims/constants.js +7 -0
  28. package/sdk/package.json.cjs +1 -1
  29. package/sdk/package.json.mjs +1 -1
@@ -1 +1 @@
1
- const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/admin.types.cjs`);require(`../../types/index.cjs`);const r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/constructAdminData.cjs`),d=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),m=require(`../../API/admin-calls.cjs`);var h=async(e,t,n,r)=>{let i=await e.getEthereumAddressByChain(t),{patchAccessTokenMerkleTree:a,signatureData:o}=await d.getKycAndSignatureData(e,t,n,r,i);return{signatureData:o,externalActionData:{externalActionId:0n,externalAddress:i,externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0,patchAccessTokenMerkleTree:a}},g=async(e,t,n,r)=>{let a=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},_=async(r,i,a,o=!0,c=!1)=>{let l=s.validateAndGetChainId(i),d=i.map(e=>e.erc20TokenAddress),[{externalActionData:_,contractTransaction:v,contractToApprove:y,patchAccessTokenMerkleTree:b,signatureData:x},{inputUtxosArray:S,outputUtxosArray:C}]=await Promise.all([h(r,l,d,a),g(r,l,d,a)]),w=`swapperM${a.length.toString()}x${S[0].length}x1`,{zkCallData:T,circomData:E,dimData:D}=await f.constructZkProof(r.merkleTreeHinkalByChain[l],r.merkleTreeAccessTokenByChain[l],S,C,r.userKeys,w,_.externalActionId,_.externalAddress,_.externalActionMetadata,r.generateProofRemotely,e.zeroAddress,l,void 0,void 0,void 0,b,void 0,void 0,r.getContractWithFetcher(l,t.ContractType.HinkalHelperContract),x),O=await p.transactCallDirect(r,l,a,i,T,E,D,y,v,o,c);return m.emitTxPublicData(u.constructAdminData(n.AdminTransactionType.Onboarding,l,d,a,await r.getEthereumAddress())),O},v=async(i,c,l,d,g=!0,_=!1)=>{let v=s.validateAndGetChainId(c),y=c.map(e=>e.erc20TokenAddress),[b,x,S]=d.split(`,`);if(!o.isValidPrivateAddress(d))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let C=y.map(e=>[new a.Utxo({amount:0n,erc20TokenAddress:e,shieldedPrivateKey:i.userKeys.getShieldedPrivateKey()}),new a.Utxo({amount:0n,erc20TokenAddress:e,shieldedPrivateKey:i.userKeys.getShieldedPrivateKey()})]),w=`swapperM${l.length.toString()}x${C[0].length}x1`,T=y.map((e,t)=>[new a.Utxo({amount:l[t],erc20TokenAddress:e,randomization:BigInt(b),stealthAddress:x,encryptionKey:S})]),{externalActionData:E,contractTransaction:D,contractToApprove:O,patchAccessTokenMerkleTree:k}=await h(i,v,y,l),{zkCallData:A,circomData:j,dimData:M}=await f.constructZkProof(i.merkleTreeHinkalByChain[v],i.merkleTreeAccessTokenByChain[v],C,T,i.userKeys,w,E.externalActionId,E.externalAddress,E.externalActionMetadata,i.generateProofRemotely,e.zeroAddress,v,void 0,void 0,void 0,k,void 0,void 0,i.getContractWithFetcher(v,t.ContractType.HinkalHelperContract)),N=await p.transactCallDirect(i,v,l,c,A,j,M,O,D,g,_);return m.emitTxPublicData(u.constructAdminData(n.AdminTransactionType.PaymentLink,v,y,l,await i.getEthereumAddress())),N};exports.hinkalDeposit=_,exports.hinkalDepositForOther=v;
1
+ const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/admin.types.cjs`);require(`../../types/index.cjs`);const r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/constructAdminData.cjs`),d=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),m=require(`../../API/admin-calls.cjs`);var h=async(e,t,n,r)=>{let i=await e.getEthereumAddressByChain(t),{patchAccessTokenMerkleTree:a,signatureData:o}=await d.getKycAndSignatureData(e,t,n,r,i);return{signatureData:o,externalActionData:{externalActionId:0n,externalAddress:i,externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0,patchAccessTokenMerkleTree:a}},g=async(e,t,n,r)=>{let a=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},_=async(r,i,a,o=!0,c=!1)=>{console.log(`[hinkalDeposit] start`,{tokenCount:i.length,amountChanges:a,preEstimateGas:o,returnTxData:c});let l=s.validateAndGetChainId(i);console.log(`[hinkalDeposit] chainId`,l);let d=i.map(e=>e.erc20TokenAddress);console.log(`[hinkalDeposit] erc20Addresses`,d),console.log(`[hinkalDeposit] loading transaction parameters and utxos`);let[{externalActionData:_,contractTransaction:v,contractToApprove:y,patchAccessTokenMerkleTree:b,signatureData:x},{inputUtxosArray:S,outputUtxosArray:C}]=await Promise.all([h(r,l,d,a),g(r,l,d,a)]);console.log(`[hinkalDeposit] transaction parameters ready`,{externalActionData:_,hasContractTransaction:!!v,hasContractToApprove:!!y,hasPatchAccessTokenMerkleTree:!!b,hasSignatureData:!!x}),console.log(`[hinkalDeposit] utxos ready`,{inputUtxoGroups:S.length,outputUtxoGroups:C.length,inputUtxoSizes:S.map(e=>e.length),outputUtxoSizes:C.map(e=>e.length)});let w=`swapperM${a.length.toString()}x${S[0].length}x1`;console.log(`[hinkalDeposit] circuitName`,w),console.log(`[hinkalDeposit] constructing zk proof`);let{zkCallData:T,circomData:E,dimData:D}=await f.constructZkProof(r.merkleTreeHinkalByChain[l],r.merkleTreeAccessTokenByChain[l],S,C,r.userKeys,w,_.externalActionId,_.externalAddress,_.externalActionMetadata,r.generateProofRemotely,e.zeroAddress,l,void 0,void 0,void 0,b,void 0,void 0,r.getContractWithFetcher(l,t.ContractType.HinkalHelperContract),x);console.log(`[hinkalDeposit] zk proof ready`,{zkCallDataLength:T?.length,circomDataLength:Array.isArray(E)?E.length:void 0,dimDataLength:Array.isArray(D)?D.length:void 0}),console.log(`[hinkalDeposit] calling transactCallDirect`);let O=await p.transactCallDirect(r,l,a,i,T,E,D,y,v,o,c);console.log(`[hinkalDeposit] transactCallDirect result`,O),console.log(`[hinkalDeposit] constructing admin data`);let k=u.constructAdminData(n.AdminTransactionType.Onboarding,l,d,a,await r.getEthereumAddress());return console.log(`[hinkalDeposit] adminData`,k),console.log(`[hinkalDeposit] emitting public tx data`),m.emitTxPublicData(k),console.log(`[hinkalDeposit] complete`),O},v=async(i,c,l,d,g=!0,_=!1)=>{let v=s.validateAndGetChainId(c),y=c.map(e=>e.erc20TokenAddress),[b,x,S]=d.split(`,`);if(!o.isValidPrivateAddress(d))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let C=y.map(e=>[new a.Utxo({amount:0n,erc20TokenAddress:e,shieldedPrivateKey:i.userKeys.getShieldedPrivateKey()}),new a.Utxo({amount:0n,erc20TokenAddress:e,shieldedPrivateKey:i.userKeys.getShieldedPrivateKey()})]),w=`swapperM${l.length.toString()}x${C[0].length}x1`,T=y.map((e,t)=>[new a.Utxo({amount:l[t],erc20TokenAddress:e,randomization:BigInt(b),stealthAddress:x,encryptionKey:S})]),{externalActionData:E,contractTransaction:D,contractToApprove:O,patchAccessTokenMerkleTree:k}=await h(i,v,y,l),{zkCallData:A,circomData:j,dimData:M}=await f.constructZkProof(i.merkleTreeHinkalByChain[v],i.merkleTreeAccessTokenByChain[v],C,T,i.userKeys,w,E.externalActionId,E.externalAddress,E.externalActionMetadata,i.generateProofRemotely,e.zeroAddress,v,void 0,void 0,void 0,k,void 0,void 0,i.getContractWithFetcher(v,t.ContractType.HinkalHelperContract)),N=await p.transactCallDirect(i,v,l,c,A,j,M,O,D,g,_);return m.emitTxPublicData(u.constructAdminData(n.AdminTransactionType.PaymentLink,v,y,l,await i.getEthereumAddress())),N};exports.hinkalDeposit=_,exports.hinkalDepositForOther=v;
@@ -39,8 +39,41 @@ var h = async (e, t, n, r) => {
39
39
  outputUtxosArray: o
40
40
  };
41
41
  }, _ = async (r, i, a, o = !0, c = !1) => {
42
- let l = s(i), d = i.map((e) => e.erc20TokenAddress), [{ externalActionData: _, contractTransaction: v, contractToApprove: y, patchAccessTokenMerkleTree: b, signatureData: x }, { inputUtxosArray: S, outputUtxosArray: C }] = await Promise.all([h(r, l, d, a), g(r, l, d, a)]), w = `swapperM${a.length.toString()}x${S[0].length}x1`, { zkCallData: T, circomData: E, dimData: D } = await f(r.merkleTreeHinkalByChain[l], r.merkleTreeAccessTokenByChain[l], S, C, r.userKeys, w, _.externalActionId, _.externalAddress, _.externalActionMetadata, r.generateProofRemotely, e, l, void 0, void 0, void 0, b, void 0, void 0, r.getContractWithFetcher(l, t.HinkalHelperContract), x), O = await p(r, l, a, i, T, E, D, y, v, o, c);
43
- return m(u(n.Onboarding, l, d, a, await r.getEthereumAddress())), O;
42
+ console.log("[hinkalDeposit] start", {
43
+ tokenCount: i.length,
44
+ amountChanges: a,
45
+ preEstimateGas: o,
46
+ returnTxData: c
47
+ });
48
+ let l = s(i);
49
+ console.log("[hinkalDeposit] chainId", l);
50
+ let d = i.map((e) => e.erc20TokenAddress);
51
+ console.log("[hinkalDeposit] erc20Addresses", d), console.log("[hinkalDeposit] loading transaction parameters and utxos");
52
+ let [{ externalActionData: _, contractTransaction: v, contractToApprove: y, patchAccessTokenMerkleTree: b, signatureData: x }, { inputUtxosArray: S, outputUtxosArray: C }] = await Promise.all([h(r, l, d, a), g(r, l, d, a)]);
53
+ console.log("[hinkalDeposit] transaction parameters ready", {
54
+ externalActionData: _,
55
+ hasContractTransaction: !!v,
56
+ hasContractToApprove: !!y,
57
+ hasPatchAccessTokenMerkleTree: !!b,
58
+ hasSignatureData: !!x
59
+ }), console.log("[hinkalDeposit] utxos ready", {
60
+ inputUtxoGroups: S.length,
61
+ outputUtxoGroups: C.length,
62
+ inputUtxoSizes: S.map((e) => e.length),
63
+ outputUtxoSizes: C.map((e) => e.length)
64
+ });
65
+ let w = `swapperM${a.length.toString()}x${S[0].length}x1`;
66
+ console.log("[hinkalDeposit] circuitName", w), console.log("[hinkalDeposit] constructing zk proof");
67
+ let { zkCallData: T, circomData: E, dimData: D } = await f(r.merkleTreeHinkalByChain[l], r.merkleTreeAccessTokenByChain[l], S, C, r.userKeys, w, _.externalActionId, _.externalAddress, _.externalActionMetadata, r.generateProofRemotely, e, l, void 0, void 0, void 0, b, void 0, void 0, r.getContractWithFetcher(l, t.HinkalHelperContract), x);
68
+ console.log("[hinkalDeposit] zk proof ready", {
69
+ zkCallDataLength: T?.length,
70
+ circomDataLength: Array.isArray(E) ? E.length : void 0,
71
+ dimDataLength: Array.isArray(D) ? D.length : void 0
72
+ }), console.log("[hinkalDeposit] calling transactCallDirect");
73
+ let O = await p(r, l, a, i, T, E, D, y, v, o, c);
74
+ console.log("[hinkalDeposit] transactCallDirect result", O), console.log("[hinkalDeposit] constructing admin data");
75
+ let k = u(n.Onboarding, l, d, a, await r.getEthereumAddress());
76
+ return console.log("[hinkalDeposit] adminData", k), console.log("[hinkalDeposit] emitting public tx data"), m(k), console.log("[hinkalDeposit] complete"), O;
44
77
  }, v = async (i, c, l, d, g = !0, _ = !1) => {
45
78
  let v = s(c), y = c.map((e) => e.erc20TokenAddress), [b, x, S] = d.split(",");
46
79
  if (!o(d)) throw Error(r.RECIPIENT_FORMAT_INCORRECT);
@@ -1 +1 @@
1
- require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/time.utils.cjs`),r=require(`../../functions/utils/token-check.utils.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),l=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const u=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),d=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),f=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`),p=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var m=async(e,t,r,o)=>{let s=[...await i.addPaddingToUtxos(e,t,r,o)],c=[],l=n.getCurrentTimeInSeconds().toString();for(let t=0;t<r.length;t+=1){let{outputUtxos:n}=a.outputUtxoProcessing(e.userKeys,s[t],o[t],l);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},h=async(n,i,a,h,g,_,v,y)=>{let b=r.validateAndGetChainId(i),x=i.map(e=>e.erc20TokenAddress),S=await n.getEthereumAddressByChain(b),C=v??await s.getFeeStructure(b,_,x,h,void 0,35n);p.mergeWithFeeStructure(b,x,a,C);let w={externalActionId:h,externalAddress:f.getExternalSwapAddress(b,h),externalActionMetadata:g},[T,{patchAccessTokenMerkleTree:E,signatureData:D},{inputUtxosArray:O,outputUtxosArray:k}]=await Promise.all([n.getRandomRelay(b,!0),c.getKycAndSignatureData(n,b,x,a,S),m(n,b,x,a)]);if(!T)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let A=`swapperM${a.length.toString()}x${O[0].length}x1`,j=[!1,!0,!1].slice(0,a.length),[{zkCallData:M,circomData:N,dimData:P},F]=await Promise.all([u.constructZkProof(n.merkleTreeHinkalByChain[b],n.merkleTreeAccessTokenByChain[b],O,k,n.userKeys,A,w.externalActionId,w.externalAddress,w.externalActionMetadata,n.generateProofRemotely,T,b,j,void 0,void 0,E,void 0,C,n.getContractWithFetcher(b,e.ContractType.HinkalHelperContract),D),l.buildCommitmentValidationData(b,n.userKeys,x,O)]);return await d.transactCallRelayer(b,M,P,N,F,void 0,void 0,o.constructAdminData(y,b,x,a,S,i))};exports.hinkalSwap=h;
1
+ require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/time.utils.cjs`),r=require(`../../functions/utils/token-check.utils.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),l=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const u=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),d=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),f=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`),p=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var m=async(e,t,r,o)=>{let s=[...await i.addPaddingToUtxos(e,t,r,o)],c=[],l=n.getCurrentTimeInSeconds().toString();for(let t=0;t<r.length;t+=1){let{outputUtxos:n}=a.outputUtxoProcessing(e.userKeys,s[t],o[t],l);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},h=async(n,i,a,h,g,_,v,y)=>{console.log(`[hinkalSwap] start`,{tokenCount:i.length,deltaAmounts:a,externalActionId:h,data:g,feeToken:_,hasFeeStructureOverride:!!v,action:y});let b=r.validateAndGetChainId(i);console.log(`[hinkalSwap] chainId`,b);let x=i.map(e=>e.erc20TokenAddress);console.log(`[hinkalSwap] erc20Addresses`,x);let S=await n.getEthereumAddressByChain(b);console.log(`[hinkalSwap] ethereumAddress`,S),console.log(`[hinkalSwap] resolving fee structure`);let C=v??await s.getFeeStructure(b,_,x,h,void 0,35n);console.log(`[hinkalSwap] feeStructure`,C),p.mergeWithFeeStructure(b,x,a,C),console.log(`[hinkalSwap] deltaAmounts after fee merge`,a);let w=f.getExternalSwapAddress(b,h);console.log(`[hinkalSwap] externalAddress`,w);let T={externalActionId:h,externalAddress:w,externalActionMetadata:g};console.log(`[hinkalSwap] externalActionData`,T),console.log(`[hinkalSwap] loading relay, kyc data, and utxos`);let[E,{patchAccessTokenMerkleTree:D,signatureData:O},{inputUtxosArray:k,outputUtxosArray:A}]=await Promise.all([n.getRandomRelay(b,!0),c.getKycAndSignatureData(n,b,x,a,S),m(n,b,x,a)]);if(console.log(`[hinkalSwap] relay and proof inputs ready`,{relay:E,hasPatchAccessTokenMerkleTree:!!D,hasSignatureData:!!O,inputUtxoGroups:k.length,outputUtxoGroups:A.length,inputUtxoSizes:k.map(e=>e.length),outputUtxoSizes:A.map(e=>e.length)}),!E)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let j=`swapperM${a.length.toString()}x${k[0].length}x1`;console.log(`[hinkalSwap] circuitName`,j);let M=[!1,!0,!1].slice(0,a.length);console.log(`[hinkalSwap] onChainCreation`,M),console.log(`[hinkalSwap] constructing zk proof and commitment validation data`);let[{zkCallData:N,circomData:P,dimData:F},I]=await Promise.all([u.constructZkProof(n.merkleTreeHinkalByChain[b],n.merkleTreeAccessTokenByChain[b],k,A,n.userKeys,j,T.externalActionId,T.externalAddress,T.externalActionMetadata,n.generateProofRemotely,E,b,M,void 0,void 0,D,void 0,C,n.getContractWithFetcher(b,e.ContractType.HinkalHelperContract),O),l.buildCommitmentValidationData(b,n.userKeys,x,k)]);console.log(`[hinkalSwap] proof data ready`,{zkCallDataLength:N?.length,circomDataLength:Array.isArray(P)?P.length:void 0,dimDataLength:Array.isArray(F)?F.length:void 0,commitmentValidationData:I});let L=o.constructAdminData(y,b,x,a,S,i);console.log(`[hinkalSwap] adminData`,L),console.log(`[hinkalSwap] calling transactCallRelayer`);let R=await d.transactCallRelayer(b,N,F,P,I,void 0,void 0,L);return console.log(`[hinkalSwap] txHash`,R),R};exports.hinkalSwap=h;
@@ -26,24 +26,64 @@ var m = async (e, t, r, o) => {
26
26
  outputUtxosArray: c
27
27
  };
28
28
  }, h = async (n, i, a, h, g, _, v, y) => {
29
- let b = r(i), x = i.map((e) => e.erc20TokenAddress), S = await n.getEthereumAddressByChain(b), C = v ?? await s(b, _, x, h, void 0, 35n);
30
- p(b, x, a, C);
31
- let w = {
29
+ console.log("[hinkalSwap] start", {
30
+ tokenCount: i.length,
31
+ deltaAmounts: a,
32
32
  externalActionId: h,
33
- externalAddress: f(b, h),
33
+ data: g,
34
+ feeToken: _,
35
+ hasFeeStructureOverride: !!v,
36
+ action: y
37
+ });
38
+ let b = r(i);
39
+ console.log("[hinkalSwap] chainId", b);
40
+ let x = i.map((e) => e.erc20TokenAddress);
41
+ console.log("[hinkalSwap] erc20Addresses", x);
42
+ let S = await n.getEthereumAddressByChain(b);
43
+ console.log("[hinkalSwap] ethereumAddress", S), console.log("[hinkalSwap] resolving fee structure");
44
+ let C = v ?? await s(b, _, x, h, void 0, 35n);
45
+ console.log("[hinkalSwap] feeStructure", C), p(b, x, a, C), console.log("[hinkalSwap] deltaAmounts after fee merge", a);
46
+ let w = f(b, h);
47
+ console.log("[hinkalSwap] externalAddress", w);
48
+ let T = {
49
+ externalActionId: h,
50
+ externalAddress: w,
34
51
  externalActionMetadata: g
35
- }, [T, { patchAccessTokenMerkleTree: E, signatureData: D }, { inputUtxosArray: O, outputUtxosArray: k }] = await Promise.all([
52
+ };
53
+ console.log("[hinkalSwap] externalActionData", T), console.log("[hinkalSwap] loading relay, kyc data, and utxos");
54
+ let [E, { patchAccessTokenMerkleTree: D, signatureData: O }, { inputUtxosArray: k, outputUtxosArray: A }] = await Promise.all([
36
55
  n.getRandomRelay(b, !0),
37
56
  c(n, b, x, a, S),
38
57
  m(n, b, x, a)
39
58
  ]);
40
- if (!T) throw Error(t.RELAYER_NOT_AVAILABLE);
41
- let A = `swapperM${a.length.toString()}x${O[0].length}x1`, j = [
59
+ if (console.log("[hinkalSwap] relay and proof inputs ready", {
60
+ relay: E,
61
+ hasPatchAccessTokenMerkleTree: !!D,
62
+ hasSignatureData: !!O,
63
+ inputUtxoGroups: k.length,
64
+ outputUtxoGroups: A.length,
65
+ inputUtxoSizes: k.map((e) => e.length),
66
+ outputUtxoSizes: A.map((e) => e.length)
67
+ }), !E) throw Error(t.RELAYER_NOT_AVAILABLE);
68
+ let j = `swapperM${a.length.toString()}x${k[0].length}x1`;
69
+ console.log("[hinkalSwap] circuitName", j);
70
+ let M = [
42
71
  !1,
43
72
  !0,
44
73
  !1
45
- ].slice(0, a.length), [{ zkCallData: M, circomData: N, dimData: P }, F] = await Promise.all([u(n.merkleTreeHinkalByChain[b], n.merkleTreeAccessTokenByChain[b], O, k, n.userKeys, A, w.externalActionId, w.externalAddress, w.externalActionMetadata, n.generateProofRemotely, T, b, j, void 0, void 0, E, void 0, C, n.getContractWithFetcher(b, e.HinkalHelperContract), D), l(b, n.userKeys, x, O)]);
46
- return await d(b, M, P, N, F, void 0, void 0, o(y, b, x, a, S, i));
74
+ ].slice(0, a.length);
75
+ console.log("[hinkalSwap] onChainCreation", M), console.log("[hinkalSwap] constructing zk proof and commitment validation data");
76
+ let [{ zkCallData: N, circomData: P, dimData: F }, I] = await Promise.all([u(n.merkleTreeHinkalByChain[b], n.merkleTreeAccessTokenByChain[b], k, A, n.userKeys, j, T.externalActionId, T.externalAddress, T.externalActionMetadata, n.generateProofRemotely, E, b, M, void 0, void 0, D, void 0, C, n.getContractWithFetcher(b, e.HinkalHelperContract), O), l(b, n.userKeys, x, k)]);
77
+ console.log("[hinkalSwap] proof data ready", {
78
+ zkCallDataLength: N?.length,
79
+ circomDataLength: Array.isArray(P) ? P.length : void 0,
80
+ dimDataLength: Array.isArray(F) ? F.length : void 0,
81
+ commitmentValidationData: I
82
+ });
83
+ let L = o(y, b, x, a, S, i);
84
+ console.log("[hinkalSwap] adminData", L), console.log("[hinkalSwap] calling transactCallRelayer");
85
+ let R = await d(b, N, F, P, I, void 0, void 0, L);
86
+ return console.log("[hinkalSwap] txHash", R), R;
47
87
  };
48
88
  //#endregion
49
89
  export { h as hinkalSwap };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/utils/fees.utils.cjs`),f=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const _=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r,i,o)=>{let s=[...await l.addPaddingToUtxos(e,t,n,r)],c=[],d=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,s[t],r[t],d,void 0,!0,i,t===0?o:0n);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},x=async(a,l,u,x,S,C,w)=>{let T=c.validateAndGetChainId(l),E=e.isTronLike(T);if(!o.isValidPrivateAddress(x))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let D=s.addressToHexFormat(await a.getEthereumAddressByChain(T)),O=l.map(e=>e.erc20TokenAddress),k=await f.modifyVolatileTokenAmountChanges(T,l,u),A=C??await m.getFeeStructure(T,S,O,r.ExternalActionId.Transact,[],5n);A.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let j=d.calculateTotalFee(-k[0],A),M=-k[0],N={feeToken:A.feeToken,flatFee:j,variableRate:0n};if(y.mergeWithFeeStructure(T,O,k,N),!l[0])throw Error(`Transfer Action: No Token Found`);let[P,{patchAccessTokenMerkleTree:F,signatureData:I},{inputUtxosArray:L,outputUtxosArray:R}]=await Promise.all([a.getRandomRelay(T,!0),h.getKycAndSignatureData(a,T,O,k,D),b(a,T,O,k,x,M)]);if(!P)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let z={externalActionId:0n,externalAddress:P,externalActionMetadata:`0x00`},B=`swapperM${k.length}x${L[0].length}x2`,[{zkCallData:V,circomData:H,dimData:U},W]=await Promise.all([_.constructZkProof(a.merkleTreeHinkalByChain[T],a.merkleTreeAccessTokenByChain[T],L,R,a.userKeys,B,z.externalActionId,z.externalAddress,z.externalActionMetadata,a.generateProofRemotely,P,T,void 0,void 0,void 0,F,void 0,N,a.getContractWithFetcher(T,n.ContractType.HinkalHelperContract),I),g.buildCommitmentValidationData(T,a.userKeys,O,L)]),G=await s.reorderZkCallData(E,V,U,H);return await v.transactCallRelayer(T,V,U,H,W,void 0,void 0,p.constructAdminData(w,T,O,k,D),G)};exports.hinkalTransfer=x;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/utils/fees.utils.cjs`),f=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const _=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r,i,o)=>{let s=[...await l.addPaddingToUtxos(e,t,n,r)],c=[],d=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,s[t],r[t],d,void 0,!0,i,t===0?o:0n);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},x=async(a,l,u,x,S,C,w)=>{console.log(`[hinkalTransfer] start`,{tokenCount:l.length,amountChangesBase:u,recipientAddress:x,feeToken:S,hasFeeStructureOverride:!!C,action:w});let T=c.validateAndGetChainId(l);console.log(`[hinkalTransfer] chainId`,T);let E=e.isTronLike(T);if(console.log(`[hinkalTransfer] isTron`,E),!o.isValidPrivateAddress(x))throw console.log(`[hinkalTransfer] invalid recipientAddress`,x),Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);console.log(`[hinkalTransfer] recipientAddress validated`);let D=s.addressToHexFormat(await a.getEthereumAddressByChain(T));console.log(`[hinkalTransfer] ethereumAddress`,D);let O=l.map(e=>e.erc20TokenAddress);console.log(`[hinkalTransfer] erc20Addresses`,O);let k=await f.modifyVolatileTokenAmountChanges(T,l,u);console.log(`[hinkalTransfer] amountChanges`,k),console.log(`[hinkalTransfer] resolving fee structure`);let A=C??await m.getFeeStructure(T,S,O,r.ExternalActionId.Transact,[],5n);console.log(`[hinkalTransfer] feeStructure initial`,A),A.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE,console.log(`[hinkalTransfer] feeStructure normalized`,A);let j=d.calculateTotalFee(-k[0],A);console.log(`[hinkalTransfer] totalFee`,j);let M=-k[0];console.log(`[hinkalTransfer] recipientAmount`,M);let N={feeToken:A.feeToken,flatFee:j,variableRate:0n};console.log(`[hinkalTransfer] transferFeeStructure`,N),y.mergeWithFeeStructure(T,O,k,N),console.log(`[hinkalTransfer] amountChanges after fee merge`,k);let P=l[0];if(console.log(`[hinkalTransfer] primary token`,P),!P)throw Error(`Transfer Action: No Token Found`);console.log(`[hinkalTransfer] loading relay, kyc data, and utxos`);let[F,{patchAccessTokenMerkleTree:I,signatureData:L},{inputUtxosArray:R,outputUtxosArray:z}]=await Promise.all([a.getRandomRelay(T,!0),h.getKycAndSignatureData(a,T,O,k,D),b(a,T,O,k,x,M)]);if(console.log(`[hinkalTransfer] relay and proof inputs ready`,{relay:F,hasPatchAccessTokenMerkleTree:!!I,hasSignatureData:!!L,inputUtxoGroups:R.length,outputUtxoGroups:z.length,inputUtxoSizes:R.map(e=>e.length),outputUtxoSizes:z.map(e=>e.length)}),!F)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let B={externalActionId:0n,externalAddress:F,externalActionMetadata:`0x00`};console.log(`[hinkalTransfer] externalActionData`,B);let V=`swapperM${k.length}x${R[0].length}x2`;console.log(`[hinkalTransfer] circuitName`,V),console.log(`[hinkalTransfer] constructing zk proof and commitment validation data`);let[{zkCallData:H,circomData:U,dimData:W},G]=await Promise.all([_.constructZkProof(a.merkleTreeHinkalByChain[T],a.merkleTreeAccessTokenByChain[T],R,z,a.userKeys,V,B.externalActionId,B.externalAddress,B.externalActionMetadata,a.generateProofRemotely,F,T,void 0,void 0,void 0,I,void 0,N,a.getContractWithFetcher(T,n.ContractType.HinkalHelperContract),L),g.buildCommitmentValidationData(T,a.userKeys,O,R)]);console.log(`[hinkalTransfer] proof data ready`,{zkCallDataLength:H?.length,circomDataLength:Array.isArray(U)?U.length:void 0,dimDataLength:Array.isArray(W)?W.length:void 0,commitmentValidationData:G});let K=await s.reorderZkCallData(E,H,W,U);console.log(`[hinkalTransfer] tronProofSignature`,K);let q=p.constructAdminData(w,T,O,k,D);console.log(`[hinkalTransfer] adminData`,q),console.log(`[hinkalTransfer] calling transactCallRelayer`);let J=await v.transactCallRelayer(T,H,W,U,G,void 0,void 0,q,K);return console.log(`[hinkalTransfer] txHash`,J),J};exports.hinkalTransfer=x;
@@ -32,28 +32,75 @@ var x = async (e, t, n, r, i, o) => {
32
32
  outputUtxosArray: c
33
33
  };
34
34
  }, S = async (a, u, d, S, C, w, T) => {
35
- let E = l(u), D = e(E);
36
- if (!o(S)) throw Error(i.RECIPIENT_FORMAT_INCORRECT);
37
- let O = s(await a.getEthereumAddressByChain(E)), k = u.map((e) => e.erc20TokenAddress), A = await p(E, u, d), j = w ?? await h(E, C, k, r.Transact, [], 5n);
38
- j.variableRate ||= t;
39
- let M = f(-A[0], j), N = -A[0], P = {
35
+ console.log("[hinkalTransfer] start", {
36
+ tokenCount: u.length,
37
+ amountChangesBase: d,
38
+ recipientAddress: S,
39
+ feeToken: C,
40
+ hasFeeStructureOverride: !!w,
41
+ action: T
42
+ });
43
+ let E = l(u);
44
+ console.log("[hinkalTransfer] chainId", E);
45
+ let D = e(E);
46
+ if (console.log("[hinkalTransfer] isTron", D), !o(S)) throw console.log("[hinkalTransfer] invalid recipientAddress", S), Error(i.RECIPIENT_FORMAT_INCORRECT);
47
+ console.log("[hinkalTransfer] recipientAddress validated");
48
+ let O = s(await a.getEthereumAddressByChain(E));
49
+ console.log("[hinkalTransfer] ethereumAddress", O);
50
+ let k = u.map((e) => e.erc20TokenAddress);
51
+ console.log("[hinkalTransfer] erc20Addresses", k);
52
+ let A = await p(E, u, d);
53
+ console.log("[hinkalTransfer] amountChanges", A), console.log("[hinkalTransfer] resolving fee structure");
54
+ let j = w ?? await h(E, C, k, r.Transact, [], 5n);
55
+ console.log("[hinkalTransfer] feeStructure initial", j), j.variableRate ||= t, console.log("[hinkalTransfer] feeStructure normalized", j);
56
+ let M = f(-A[0], j);
57
+ console.log("[hinkalTransfer] totalFee", M);
58
+ let N = -A[0];
59
+ console.log("[hinkalTransfer] recipientAmount", N);
60
+ let P = {
40
61
  feeToken: j.feeToken,
41
62
  flatFee: M,
42
63
  variableRate: 0n
43
64
  };
44
- if (b(E, k, A, P), !u[0]) throw Error("Transfer Action: No Token Found");
45
- let [F, { patchAccessTokenMerkleTree: I, signatureData: L }, { inputUtxosArray: R, outputUtxosArray: z }] = await Promise.all([
65
+ console.log("[hinkalTransfer] transferFeeStructure", P), b(E, k, A, P), console.log("[hinkalTransfer] amountChanges after fee merge", A);
66
+ let F = u[0];
67
+ if (console.log("[hinkalTransfer] primary token", F), !F) throw Error("Transfer Action: No Token Found");
68
+ console.log("[hinkalTransfer] loading relay, kyc data, and utxos");
69
+ let [I, { patchAccessTokenMerkleTree: L, signatureData: R }, { inputUtxosArray: z, outputUtxosArray: B }] = await Promise.all([
46
70
  a.getRandomRelay(E, !0),
47
71
  g(a, E, k, A, O),
48
72
  x(a, E, k, A, S, N)
49
73
  ]);
50
- if (!F) throw Error(i.RELAYER_NOT_AVAILABLE);
51
- let B = {
74
+ if (console.log("[hinkalTransfer] relay and proof inputs ready", {
75
+ relay: I,
76
+ hasPatchAccessTokenMerkleTree: !!L,
77
+ hasSignatureData: !!R,
78
+ inputUtxoGroups: z.length,
79
+ outputUtxoGroups: B.length,
80
+ inputUtxoSizes: z.map((e) => e.length),
81
+ outputUtxoSizes: B.map((e) => e.length)
82
+ }), !I) throw Error(i.RELAYER_NOT_AVAILABLE);
83
+ let V = {
52
84
  externalActionId: 0n,
53
- externalAddress: F,
85
+ externalAddress: I,
54
86
  externalActionMetadata: "0x00"
55
- }, V = `swapperM${A.length}x${R[0].length}x2`, [{ zkCallData: H, circomData: U, dimData: W }, G] = await Promise.all([v(a.merkleTreeHinkalByChain[E], a.merkleTreeAccessTokenByChain[E], R, z, a.userKeys, V, B.externalActionId, B.externalAddress, B.externalActionMetadata, a.generateProofRemotely, F, E, void 0, void 0, void 0, I, void 0, P, a.getContractWithFetcher(E, n.HinkalHelperContract), L), _(E, a.userKeys, k, R)]), K = await c(D, H, W, U);
56
- return await y(E, H, W, U, G, void 0, void 0, m(T, E, k, A, O), K);
87
+ };
88
+ console.log("[hinkalTransfer] externalActionData", V);
89
+ let H = `swapperM${A.length}x${z[0].length}x2`;
90
+ console.log("[hinkalTransfer] circuitName", H), console.log("[hinkalTransfer] constructing zk proof and commitment validation data");
91
+ let [{ zkCallData: U, circomData: W, dimData: G }, K] = await Promise.all([v(a.merkleTreeHinkalByChain[E], a.merkleTreeAccessTokenByChain[E], z, B, a.userKeys, H, V.externalActionId, V.externalAddress, V.externalActionMetadata, a.generateProofRemotely, I, E, void 0, void 0, void 0, L, void 0, P, a.getContractWithFetcher(E, n.HinkalHelperContract), R), _(E, a.userKeys, k, z)]);
92
+ console.log("[hinkalTransfer] proof data ready", {
93
+ zkCallDataLength: U?.length,
94
+ circomDataLength: Array.isArray(W) ? W.length : void 0,
95
+ dimDataLength: Array.isArray(G) ? G.length : void 0,
96
+ commitmentValidationData: K
97
+ });
98
+ let q = await c(D, U, G, W);
99
+ console.log("[hinkalTransfer] tronProofSignature", q);
100
+ let J = m(T, E, k, A, O);
101
+ console.log("[hinkalTransfer] adminData", J), console.log("[hinkalTransfer] calling transactCallRelayer");
102
+ let Y = await y(E, U, G, W, K, void 0, void 0, J, q);
103
+ return console.log("[hinkalTransfer] txHash", Y), Y;
57
104
  };
58
105
  //#endregion
59
106
  export { S as hinkalTransfer };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/utils/fees.utils.cjs`),d=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),h=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const g=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r)=>{let i=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(a,c,l,x,S,C,w,T)=>{let E=s.validateAndGetChainId(c),D=e.isTronLike(E),O=o.addressToHexFormat(await a.getEthereumAddressByChain(E)),k=c.map(e=>e.erc20TokenAddress),A=await d.modifyVolatileTokenAmountChanges(E,c,l),j;if(!S){let e=w??await p.getFeeStructure(E,C,k,r.ExternalActionId.Transact),t=u.calculateTotalFee(-A[0],e);j={feeToken:e.feeToken,flatFee:t,variableRate:0n},y.mergeWithFeeStructure(E,k,A,j)}let M=c[0];if(!M)throw Error(`Deposit Action: No Token Found`);let N={externalActionId:0n,externalAddress:o.addressToHexFormat(x),externalActionMetadata:`0x00`},[P,{patchAccessTokenMerkleTree:F,signatureData:I},{inputUtxosArray:L,outputUtxosArray:R}]=await Promise.all([a.getRandomRelay(E,!0),m.getKycAndSignatureData(a,E,k,A,O),b(a,E,k,A)]);if(!S&&!P)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let z=`swapperM${A.length.toString()}x${L[0].length}x1`,[{zkCallData:B,circomData:V,dimData:H},U]=await Promise.all([g.constructZkProof(a.merkleTreeHinkalByChain[E],a.merkleTreeAccessTokenByChain[E],L,R,a.userKeys,z,N.externalActionId,N.externalAddress,N.externalActionMetadata,a.generateProofRemotely,S?t.zeroAddress:P,E,void 0,void 0,void 0,F,void 0,j,a.getContractWithFetcher(E,n.ContractType.HinkalHelperContract),I,S?O:void 0),h.buildCommitmentValidationData(E,a.userKeys,k,L)]),W=await o.reorderZkCallData(D,B,H,V);if(S){if(!M)throw Error(`Withdraw Action: No Token Found`);return await _.transactCallDirect(a,E,A[0],M,B,V,H)}return await v.transactCallRelayer(E,B,H,V,U,void 0,void 0,f.constructAdminData(T,E,k,A,O),W)};exports.hinkalWithdraw=x;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/utils/fees.utils.cjs`),d=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),h=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const g=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r)=>{let i=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(a,c,l,x,S,C,w,T)=>{console.log(`[hinkalWithdraw] start`,{tokenCount:c.length,deltaAmountsBase:l,recipientAddress:x,isRelayerOff:S,feeToken:C,hasFeeStructureOverride:!!w,action:T});let E=s.validateAndGetChainId(c);console.log(`[hinkalWithdraw] chainId`,E);let D=e.isTronLike(E);console.log(`[hinkalWithdraw] isTron`,D);let O=o.addressToHexFormat(await a.getEthereumAddressByChain(E));console.log(`[hinkalWithdraw] ethereumAddress`,O);let k=c.map(e=>e.erc20TokenAddress);console.log(`[hinkalWithdraw] erc20Addresses`,k);let A=await d.modifyVolatileTokenAmountChanges(E,c,l);console.log(`[hinkalWithdraw] deltaAmounts`,A);let j;if(console.log(`[hinkalWithdraw] feeStructure initialized as undefined`),!S){console.log(`[hinkalWithdraw] resolving relayer fee structure`);let e=w??await p.getFeeStructure(E,C,k,r.ExternalActionId.Transact);console.log(`[hinkalWithdraw] rawFeeStructure`,e);let t=u.calculateTotalFee(-A[0],e);console.log(`[hinkalWithdraw] totalFee`,t),j={feeToken:e.feeToken,flatFee:t,variableRate:0n},console.log(`[hinkalWithdraw] feeStructure`,j),y.mergeWithFeeStructure(E,k,A,j),console.log(`[hinkalWithdraw] deltaAmounts after fee merge`,A)}let M=c[0];if(console.log(`[hinkalWithdraw] primary token`,M),!M)throw Error(`Deposit Action: No Token Found`);let N={externalActionId:0n,externalAddress:o.addressToHexFormat(x),externalActionMetadata:`0x00`};console.log(`[hinkalWithdraw] externalActionData`,N),console.log(`[hinkalWithdraw] loading relay, kyc data, and utxos`);let[P,{patchAccessTokenMerkleTree:F,signatureData:I},{inputUtxosArray:L,outputUtxosArray:R}]=await Promise.all([a.getRandomRelay(E,!0),m.getKycAndSignatureData(a,E,k,A,O),b(a,E,k,A)]);if(console.log(`[hinkalWithdraw] relay and proof inputs ready`,{relay:P,hasPatchAccessTokenMerkleTree:!!F,hasSignatureData:!!I,inputUtxoGroups:L.length,outputUtxoGroups:R.length,inputUtxoSizes:L.map(e=>e.length),outputUtxoSizes:R.map(e=>e.length)}),!S&&!P)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let z=`swapperM${A.length.toString()}x${L[0].length}x1`;console.log(`[hinkalWithdraw] circuitName`,z),console.log(`[hinkalWithdraw] constructing zk proof and commitment validation data`);let[{zkCallData:B,circomData:V,dimData:H},U]=await Promise.all([g.constructZkProof(a.merkleTreeHinkalByChain[E],a.merkleTreeAccessTokenByChain[E],L,R,a.userKeys,z,N.externalActionId,N.externalAddress,N.externalActionMetadata,a.generateProofRemotely,S?t.zeroAddress:P,E,void 0,void 0,void 0,F,void 0,j,a.getContractWithFetcher(E,n.ContractType.HinkalHelperContract),I,S?O:void 0),h.buildCommitmentValidationData(E,a.userKeys,k,L)]);console.log(`[hinkalWithdraw] proof data ready`,{zkCallDataLength:B?.length,circomDataLength:Array.isArray(V)?V.length:void 0,dimDataLength:Array.isArray(H)?H.length:void 0,commitmentValidationData:U});let W=await o.reorderZkCallData(D,B,H,V);if(console.log(`[hinkalWithdraw] tronProofSignature`,W),S){if(console.log(`[hinkalWithdraw] relayer disabled, using direct transaction path`),!M)throw Error(`Withdraw Action: No Token Found`);let e=await _.transactCallDirect(a,E,A[0],M,B,V,H);return console.log(`[hinkalWithdraw] direct transaction result`,e),e}let G=f.constructAdminData(T,E,k,A,O);console.log(`[hinkalWithdraw] adminData`,G),console.log(`[hinkalWithdraw] calling transactCallRelayer`);let K=await v.transactCallRelayer(E,B,H,V,U,void 0,void 0,G,W);return console.log(`[hinkalWithdraw] txHash`,K),K};exports.hinkalWithdraw=x;
@@ -32,33 +32,78 @@ var x = async (e, t, n, r) => {
32
32
  outputUtxosArray: o
33
33
  };
34
34
  }, S = async (a, l, u, S, C, w, T, E) => {
35
- let D = c(l), O = e(D), k = o(await a.getEthereumAddressByChain(D)), A = l.map((e) => e.erc20TokenAddress), j = await f(D, l, u), M;
36
- if (!C) {
37
- let e = T ?? await m(D, w, A, r.Transact), t = d(-j[0], e);
38
- M = {
35
+ console.log("[hinkalWithdraw] start", {
36
+ tokenCount: l.length,
37
+ deltaAmountsBase: u,
38
+ recipientAddress: S,
39
+ isRelayerOff: C,
40
+ feeToken: w,
41
+ hasFeeStructureOverride: !!T,
42
+ action: E
43
+ });
44
+ let D = c(l);
45
+ console.log("[hinkalWithdraw] chainId", D);
46
+ let O = e(D);
47
+ console.log("[hinkalWithdraw] isTron", O);
48
+ let k = o(await a.getEthereumAddressByChain(D));
49
+ console.log("[hinkalWithdraw] ethereumAddress", k);
50
+ let A = l.map((e) => e.erc20TokenAddress);
51
+ console.log("[hinkalWithdraw] erc20Addresses", A);
52
+ let j = await f(D, l, u);
53
+ console.log("[hinkalWithdraw] deltaAmounts", j);
54
+ let M;
55
+ if (console.log("[hinkalWithdraw] feeStructure initialized as undefined"), !C) {
56
+ console.log("[hinkalWithdraw] resolving relayer fee structure");
57
+ let e = T ?? await m(D, w, A, r.Transact);
58
+ console.log("[hinkalWithdraw] rawFeeStructure", e);
59
+ let t = d(-j[0], e);
60
+ console.log("[hinkalWithdraw] totalFee", t), M = {
39
61
  feeToken: e.feeToken,
40
62
  flatFee: t,
41
63
  variableRate: 0n
42
- }, b(D, A, j, M);
64
+ }, console.log("[hinkalWithdraw] feeStructure", M), b(D, A, j, M), console.log("[hinkalWithdraw] deltaAmounts after fee merge", j);
43
65
  }
44
66
  let N = l[0];
45
- if (!N) throw Error("Deposit Action: No Token Found");
67
+ if (console.log("[hinkalWithdraw] primary token", N), !N) throw Error("Deposit Action: No Token Found");
46
68
  let P = {
47
69
  externalActionId: 0n,
48
70
  externalAddress: o(S),
49
71
  externalActionMetadata: "0x00"
50
- }, [F, { patchAccessTokenMerkleTree: I, signatureData: L }, { inputUtxosArray: R, outputUtxosArray: z }] = await Promise.all([
72
+ };
73
+ console.log("[hinkalWithdraw] externalActionData", P), console.log("[hinkalWithdraw] loading relay, kyc data, and utxos");
74
+ let [F, { patchAccessTokenMerkleTree: I, signatureData: L }, { inputUtxosArray: R, outputUtxosArray: z }] = await Promise.all([
51
75
  a.getRandomRelay(D, !0),
52
76
  h(a, D, A, j, k),
53
77
  x(a, D, A, j)
54
78
  ]);
55
- if (!C && !F) throw Error(i.RELAYER_NOT_AVAILABLE);
56
- let B = `swapperM${j.length.toString()}x${R[0].length}x1`, [{ zkCallData: V, circomData: H, dimData: U }, W] = await Promise.all([_(a.merkleTreeHinkalByChain[D], a.merkleTreeAccessTokenByChain[D], R, z, a.userKeys, B, P.externalActionId, P.externalAddress, P.externalActionMetadata, a.generateProofRemotely, C ? t : F, D, void 0, void 0, void 0, I, void 0, M, a.getContractWithFetcher(D, n.HinkalHelperContract), L, C ? k : void 0), g(D, a.userKeys, A, R)]), G = await s(O, V, U, H);
57
- if (C) {
58
- if (!N) throw Error("Withdraw Action: No Token Found");
59
- return await v(a, D, j[0], N, V, H, U);
79
+ if (console.log("[hinkalWithdraw] relay and proof inputs ready", {
80
+ relay: F,
81
+ hasPatchAccessTokenMerkleTree: !!I,
82
+ hasSignatureData: !!L,
83
+ inputUtxoGroups: R.length,
84
+ outputUtxoGroups: z.length,
85
+ inputUtxoSizes: R.map((e) => e.length),
86
+ outputUtxoSizes: z.map((e) => e.length)
87
+ }), !C && !F) throw Error(i.RELAYER_NOT_AVAILABLE);
88
+ let B = `swapperM${j.length.toString()}x${R[0].length}x1`;
89
+ console.log("[hinkalWithdraw] circuitName", B), console.log("[hinkalWithdraw] constructing zk proof and commitment validation data");
90
+ let [{ zkCallData: V, circomData: H, dimData: U }, W] = await Promise.all([_(a.merkleTreeHinkalByChain[D], a.merkleTreeAccessTokenByChain[D], R, z, a.userKeys, B, P.externalActionId, P.externalAddress, P.externalActionMetadata, a.generateProofRemotely, C ? t : F, D, void 0, void 0, void 0, I, void 0, M, a.getContractWithFetcher(D, n.HinkalHelperContract), L, C ? k : void 0), g(D, a.userKeys, A, R)]);
91
+ console.log("[hinkalWithdraw] proof data ready", {
92
+ zkCallDataLength: V?.length,
93
+ circomDataLength: Array.isArray(H) ? H.length : void 0,
94
+ dimDataLength: Array.isArray(U) ? U.length : void 0,
95
+ commitmentValidationData: W
96
+ });
97
+ let G = await s(O, V, U, H);
98
+ if (console.log("[hinkalWithdraw] tronProofSignature", G), C) {
99
+ if (console.log("[hinkalWithdraw] relayer disabled, using direct transaction path"), !N) throw Error("Withdraw Action: No Token Found");
100
+ let e = await v(a, D, j[0], N, V, H, U);
101
+ return console.log("[hinkalWithdraw] direct transaction result", e), e;
60
102
  }
61
- return await y(D, V, U, H, W, void 0, void 0, p(E, D, A, j, k), G);
103
+ let K = p(E, D, A, j, k);
104
+ console.log("[hinkalWithdraw] adminData", K), console.log("[hinkalWithdraw] calling transactCallRelayer");
105
+ let q = await y(D, V, U, H, W, void 0, void 0, K, G);
106
+ return console.log("[hinkalWithdraw] txHash", q), q;
62
107
  };
63
108
  //#endregion
64
109
  export { S as hinkalWithdraw };
@@ -1 +1 @@
1
- const e=require(`../constants/vite.constants.cjs`),t=require(`./logError.cjs`);var n=class{static log(...t){e.isNotClientProduction&&console.log(...t)}static logObject(t){e.isNotClientProduction&&console.dir(t,{depth:null,colors:!0})}static error(...e){t.logError(e)}};exports.Logger=n;
1
+ const e=require(`./logError.cjs`);var t=class{static log(...e){}static logObject(e){}static error(...t){e.logError(t)}};exports.Logger=t;
@@ -1,19 +1,11 @@
1
- import { isNotClientProduction as e } from "../constants/vite.constants.mjs";
2
- import { logError as t } from "./logError.mjs";
1
+ import { logError as e } from "./logError.mjs";
3
2
  //#region libs/shared/common/src/error-handling/logger.ts
4
- var n = class {
5
- static log(...t) {
6
- e && console.log(...t);
7
- }
8
- static logObject(t) {
9
- e && console.dir(t, {
10
- depth: null,
11
- colors: !0
12
- });
13
- }
14
- static error(...e) {
15
- t(e);
3
+ var t = class {
4
+ static log(...e) {}
5
+ static logObject(e) {}
6
+ static error(...t) {
7
+ e(t);
16
8
  }
17
9
  };
18
10
  //#endregion
19
- export { n as Logger };
11
+ export { t as Logger };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../web3/etherFunctions.cjs`),i=require(`../../data-structures/utxo/Utxo.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`./common.snarkjs.cjs`),s=require(`./generateCircomData.cjs`),c=require(`./generateZkProof.cjs`),l=require(`../utils/fees.utils.cjs`),u=require(`../../data-structures/Hinkal/hinkalCheckTokenRegistry.cjs`),d=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`);var f=async(f,p,m,h,g,_,v,y,b,x,S=t.zeroAddress,C=e.chainIds.localhost,w=m.map(()=>!1),T=m.map(()=>0n),E=void 0,D=!1,O,k=void 0,A,j=t.defaultSignatureData,M)=>{let N=o.calcAmountChanges(m,h),P=m.map(e=>e[0].erc20TokenAddress),F=o.calcEncryptedOutputs(h),I=g.getShieldedPrivateKey(),L=i.Utxo.findCorrectRandomization(r.randomBigInt(31),I),R=e.isTronLike(C)?await u.hinkalCheckTronTokenRegistry(P,o.calcAmountChanges(m,h,!0),C):await u.hinkalCheckTokenRegistry(A??u.createHinkalHelperFromData(C),P,o.calcAmountChanges(m,h,!0)),z=e.isTronLike(C)?D||R:D,{inCommitmentSiblings:B,inCommitmentSiblingSides:V,accessTokenSiblings:H,accessTokenSiblingSides:U,rootHashHinkal:W,rootHashAccessToken:G,inNullifiers:K}=await d.getDataFromWorkers(C,f,p,g,m.map(e=>e.map(e=>e.getConstructableParams())),z,R),q=o.buildOutCommitments(h),J={rootHashHinkal:W,shieldedPrivateKey:I,erc20TokenAddresses:P,inAmounts:m.map(e=>e.map(e=>e.amount.toString())),inTimeStamps:m.map(e=>e.map(e=>e.timeStamp)),inRandomizations:m.map(e=>e.map(e=>e.randomization)),inNullifiers:K,inCommitmentSiblings:B,inCommitmentSiblingSides:V,outAmounts:h.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(h[0][0].timeStamp),outPublicKeys:h.map(e=>e.map(e=>e.getStealthAddress())),extraRandomization:L,amountChanges:N,outCommitments:q,rootHashAccessToken:G,accessTokenSiblings:H,accessTokenSiblingSides:U,calldataHash:0n},Y=m.map(e=>e[0].tokenId??0),X=Y.reduce((e,t)=>e+t,0)>0?Y.length:0;X>0&&(J.tokenIds=Y);let Z=o.calcPublicSignalCount(_,J.erc20TokenAddresses,J.amountChanges,J.inNullifiers,J.outCommitments,X),Q=n.defaultHinkalLogicArgs(N.length,g);J.interactionAddress=Q.interactionAddress,J.externalApprovalAddresses=Q.useApprovalUtxoData?.map(({externalApprovalAddresses:e})=>e),k||=l.generateFeeStructure(T,m.map(e=>e[0].erc20TokenAddress));let $=o.calcAmountChanges(m,h,!0);O||=o.getSlippageValues($),a.Logger.log({publicSignalCount:Z}),J.calldataHash=o.createCallDataHash(Z,S,y,v,b,F,T,E,O,w,Q,k,j,M);let{zkCallData:ee}=await c.generateZkProof(C,_,J,x),te=o.calcStealthAddressStructure(L,I);return{zkCallData:ee,circomData:s.generateCircomData(q,K,W,G,$,P,h,F,Z,v,y,b,S,J.calldataHash,Y,te,w,E,void 0,Q,O,k,j,M),dimData:{tokenNumber:m.length,nullifierAmount:m[0].length,outputAmount:h[0].length},encryptedOutputs:F}};exports.constructZkProof=f;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),ee=require(`../../types/hinkal.types.cjs`),te=require(`../web3/etherFunctions.cjs`),ne=require(`../../data-structures/utxo/Utxo.cjs`),re=require(`../../error-handling/logger.cjs`),n=require(`./common.snarkjs.cjs`),ie=require(`./generateCircomData.cjs`),ae=require(`./generateZkProof.cjs`),oe=require(`../utils/fees.utils.cjs`),r=require(`../../data-structures/Hinkal/hinkalCheckTokenRegistry.cjs`),se=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`);var i=`[constructZkProof]`,a=e=>typeof e==`bigint`?e.toString():e,o=e=>({tokenGroupCount:e.length,groupSizes:e.map(e=>e.length),tokenAddresses:e.map(e=>e[0]?.erc20TokenAddress),amounts:e.map(e=>e.map(e=>e.amount.toString()))}),ce=e=>e?{feeToken:e.feeToken,flatFee:e.flatFee.toString(),variableRate:e.variableRate.toString()}:void 0,s=async(s,le,c,l,u,d,f,p,m,h,g=t.zeroAddress,_=e.chainIds.localhost,v=c.map(()=>!1),y=c.map(()=>0n),b=void 0,x=!1,S,C=void 0,w,T=t.defaultSignatureData,E)=>{console.log(`${i} start`,{chainId:_,verifierName:d,externalActionId:a(f),externalAddress:p,externalActionMetadataLength:m?.length,generateProofRemotely:h,relay:g,patchAccessTokenMerkleTree:x,onChainCreation:v,flatFees:y.map(e=>e.toString()),hasHookData:!!b,hasHinkalHelper:!!w,hasOriginalSender:!!E,inputUtxos:o(c),outputUtxos:o(l)});let D=n.calcAmountChanges(c,l),O=c.map(e=>e[0].erc20TokenAddress),k=n.calcEncryptedOutputs(l);console.log(`${i} derived base values`,{amountChanges:D.map(e=>e.toString()),erc20TokenAddresses:O,encryptedOutputGroupCount:k.length,encryptedOutputSizes:k.map(e=>e.length)});let A=u.getShieldedPrivateKey();console.log(`${i} shielded key ready`,{shieldedPrivateKeyLength:A?.toString()?.length});let j=ne.Utxo.findCorrectRandomization(te.randomBigInt(31),A);console.log(`${i} extra randomization ready`,{extraRandomization:j.toString()});let M=n.calcAmountChanges(c,l,!0);console.log(`${i} token registry check start`,{isTronLike:e.isTronLike(_),erc20TokenAddresses:O,signedAmountChanges:M.map(e=>e.toString())});let N=e.isTronLike(_)?await r.hinkalCheckTronTokenRegistry(O,M,_):await r.hinkalCheckTokenRegistry(w??r.createHinkalHelperFromData(_),O,M);console.log(`${i} token registry check complete`,{kycRequired:N});let P=e.isTronLike(_)?x||N:x;console.log(`${i} effective access token patch flag`,{effectivePatchAccessTokenMerkleTree:P});let F=c.map(e=>e.map(e=>e.getConstructableParams()));console.log(`${i} input utxos serialized`,{serializedGroupCount:F.length,serializedGroupSizes:F.map(e=>e.length)}),console.log(`${i} worker data fetch start`);let{inCommitmentSiblings:I,inCommitmentSiblingSides:L,accessTokenSiblings:R,accessTokenSiblingSides:z,rootHashHinkal:B,rootHashAccessToken:V,inNullifiers:H}=await se.getDataFromWorkers(_,s,le,u,F,P,N);console.log(`${i} worker data fetch complete`,{inNullifierGroupCount:H.length,inNullifierSizes:H.map(e=>e.length),inCommitmentSiblingGroupCount:I.length,inCommitmentSiblingSizes:I.map(e=>e.length),accessTokenSiblingGroupCount:R.length,accessTokenSiblingSizes:R.map(e=>e.length),rootHashHinkal:a(B),rootHashAccessToken:a(V),inCommitmentSiblingSidesGroupCount:L.length,accessTokenSiblingSidesGroupCount:z.length});let U=n.buildOutCommitments(l);console.log(`${i} out commitments built`,{outCommitmentGroupCount:U.length,outCommitmentSizes:U.map(e=>e.length)});let W={rootHashHinkal:B,shieldedPrivateKey:A,erc20TokenAddresses:O,inAmounts:c.map(e=>e.map(e=>e.amount.toString())),inTimeStamps:c.map(e=>e.map(e=>e.timeStamp)),inRandomizations:c.map(e=>e.map(e=>e.randomization)),inNullifiers:H,inCommitmentSiblings:I,inCommitmentSiblingSides:L,outAmounts:l.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(l[0][0].timeStamp),outPublicKeys:l.map(e=>e.map(e=>e.getStealthAddress())),extraRandomization:j,amountChanges:D,outCommitments:U,rootHashAccessToken:V,accessTokenSiblings:R,accessTokenSiblingSides:z,calldataHash:0n};console.log(`${i} proof input prepared`,{inAmountGroupCount:W.inAmounts.length,outAmountGroupCount:W.outAmounts.length,outTimeStamp:W.outTimeStamp.toString(),extraRandomization:W.extraRandomization.toString(),amountChanges:W.amountChanges.map(e=>e.toString())});let G=c.map(e=>e[0].tokenId??0),K=G.reduce((e,t)=>e+t,0)>0?G.length:0;K>0&&(W.tokenIds=G),console.log(`${i} token ids analyzed`,{tokenIds:G,tokenIdsPositive:K});let q=n.calcPublicSignalCount(d,W.erc20TokenAddresses,W.amountChanges,W.inNullifiers,W.outCommitments,K);console.log(`${i} public signal count ready`,{publicSignalCount:q});let J=ee.defaultHinkalLogicArgs(D.length,u);W.interactionAddress=J.interactionAddress,W.externalApprovalAddresses=J.useApprovalUtxoData?.map(({externalApprovalAddresses:e})=>e),console.log(`${i} hinkal logic args ready`,{interactionAddress:J.interactionAddress,externalApprovalAddressesCount:W.externalApprovalAddresses?.length}),C||=(console.log(`${i} generating fee structure`),oe.generateFeeStructure(y,c.map(e=>e[0].erc20TokenAddress))),console.log(`${i} fee structure ready`,ce(C));let Y=M;console.log(`${i} signed amount changes ready`,{amountChangesBased:Y.map(e=>e.toString())}),S||=(console.log(`${i} generating slippage values`),n.getSlippageValues(Y)),console.log(`${i} slippage values ready`,{slippageValues:S.map(e=>e.toString())}),re.Logger.log({publicSignalCount:q}),console.log(`${i} calldata hash start`),W.calldataHash=n.createCallDataHash(q,g,p,f,m,k,y,b,S,v,J,C,T,E),console.log(`${i} calldata hash complete`,{calldataHash:W.calldataHash.toString()}),console.log(`${i} generateZkProof start`);let{zkCallData:X}=await ae.generateZkProof(_,d,W,h);console.log(`${i} generateZkProof complete`,{aLength:X?.[0]?.length,bOuterLength:X?.[1]?.length,bInnerLengths:X?.[1]?.map(e=>e.length),cLength:X?.[2]?.length,inputLength:X?.[3]?.length});let Z=n.calcStealthAddressStructure(j,A);console.log(`${i} stealth address structure ready`,{extraRandomization:a(Z.extraRandomization),stealthAddress:a(Z.stealthAddress)});let Q=ie.generateCircomData(U,H,B,V,Y,O,l,k,q,f,p,m,g,W.calldataHash,G,Z,v,b,void 0,J,S,C,T,E);console.log(`${i} circom data ready`,{tokenCount:Q.erc20TokenAddresses.length,amountChanges:Q.amountChanges.map(e=>e.toString()),inputNullifierGroupCount:Q.inputNullifiers.length,outCommitmentGroupCount:Q.outCommitments.length,encryptedOutputGroupCount:Q.encryptedOutputs.length,rootHashHinkal:a(Q.rootHashHinkal),rootHashAccessToken:a(Q.rootHashAccessToken),relay:Q.relay,externalAddress:Q.externalAddress,externalActionId:a(Q.externalActionId),calldataHash:a(Q.calldataHash)});let $={tokenNumber:c.length,nullifierAmount:c[0].length,outputAmount:l[0].length};return console.log(`${i} dim data ready`,$),console.log(`${i} complete`),{zkCallData:X,circomData:Q,dimData:$,encryptedOutputs:k}};exports.constructZkProof=s;