@kapa123456789/sdk 0.0.66 → 0.0.68

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.
@@ -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(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/web3/etherFunctions.cjs`),a=require(`../../functions/utils/caseInsensitive.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../functions/utils/getContractAddress.cjs`),c=require(`../../functions/utils/tron.utils.cjs`),l=require(`../../error-handling/logger.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../externalABIs/index.cjs`),m=require(`../../functions/utils/tx-confirmation.utils.cjs`),h=require(`../../functions/utils/tronSimulation.utils.cjs`),g=require(`../../functions/web3/functionCalls/constructBatchCall.cjs`),_=require(`../../functions/web3/functionCalls/waitForErc20Approvals.cjs`),v=require(`../../API/admin-calls.cjs`);var y=(e,t)=>{let n=[],r=0;for(let i=0;i<e.length;i+=1){let a=!1;for(let o=0;o<r;o+=1)if(u.isSameERC20Token(n[o].token,e[i])){n[o].balance+=t[i],a=!0;break}a||(n[r]={token:e[i],balance:t[i]},r+=1)}return n},b=async(e,r,i,o)=>{for(let s=0;s<o.length;s+=1)a.caseInsensitiveEqual(o[s].token.erc20TokenAddress,t.zeroAddress)||await m.waitForEthereumTransactionConfirmation(r,(await e.getContractWithSigner(r,n.ContractType.ERC20Contract,o[s].token.erc20TokenAddress).approve(i,o[s].balance)).hash)},x=async(e,n,r,i)=>{let a=Array.from(i.entries());for(let i=0;i<a.length;i+=1){let[o,s]=a[i],c=await e.contract(p.ERC20ABI,o).allowance(n,r).call({from:n});if(BigInt(String(c))<s){let{transaction:i}=await e.transactionBuilder.triggerSmartContract(o,`approve(address,uint256)`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[{type:`address`,value:r},{type:`uint256`,value:s.toString()}],n),a=await e.trx.sign(i),c=await e.trx.sendRawTransaction(a);if(!c.result){let e=c.code??`UNKNOWN`,t=c.message?Buffer.from(c.message,`hex`).toString():`no message`;throw Error(`Tron token approval failed: ${e} - ${t}`)}}}},S=e=>{let t=new Set;e.forEach(({extraRandomization:e,stealthAddress:n})=>{let r=`${e.toString()}:${n.toString()}`;if(t.has(r))throw Error(`Duplicate randomization and stealth address pair detected in stealthAddressStructures`);t.add(r)})},C=async(n,i,o,s,u)=>{let d=n.getTronWeb(),{hinkalAddress:f}=e.networkRegistry[i].contractData,p=c.evmHexToTronBase58Address(f),m=await n.getEthereumAddressByChain(i),g=o.map(e=>e.erc20TokenAddress),v=o.map(()=>0n),y=0n,b=new Map;for(let e=0;e<o.length;e+=1){let n=c.evmHexToTronBase58Address(o[e].erc20TokenAddress);if(a.caseInsensitiveEqual(o[e].erc20TokenAddress,t.zeroAddress))y+=s[e];else{let t=b.get(n)??0n;b.set(n,t+s[e])}}await x(d,m,p,b),await _.waitForTronErc20Approvals(d,m,p,Array.from(b.entries()).map(([e,t])=>({tokenAddress:e,requiredAmount:t})));let S=u.map(e=>({extraRandomization:e.extraRandomization.toString(),stealthAddress:e.stealthAddress.toString(),H0:e.H0.toString(),H1:e.H1.toString()}));if(await h.simulateTronTransaction(i,p,`prooflessDeposit`,e.networkRegistry[i].contractData.hinkalABI,[g,s.map(String),v.map(String),u.map(e=>[e.extraRandomization.toString(),e.stealthAddress.toString(),e.H0.toString(),e.H1.toString()])],m,y>0n?y:void 0),y>0n){let n=BigInt(await d.trx.getBalance(m)),a=BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN);try{let{hinkalABI:t}=e.networkRegistry[i].contractData;if(!t)throw Error(`Hinkal ABI not found`);a=await c.estimateTronFeeSunWithPadding(d,i,p,m,c.createTronCallData(t,`prooflessDeposit`,[g,s.map(String),v.map(String),u.map(e=>[e.extraRandomization.toString(),e.stealthAddress.toString(),e.H0.toString(),e.H1.toString()])]),y)}catch(e){l.Logger.error(`Error estimating Tron prooflessDeposit fee`,e)}if(n<y+a)throw Error(r.insufficientResourcesErrorCodes.INSUFFICIENT_TRON_BALANCE_FOR_FEE)}let{transaction:C}=await d.transactionBuilder.triggerSmartContract(p,`prooflessDeposit(address[],uint256[],uint256[],(uint256,uint256,uint256,uint256)[])`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:y>0n?Number(y):0},[{type:`address[]`,value:g},{type:`uint256[]`,value:s.map(String)},{type:`uint256[]`,value:v.map(String)},{type:`tuple(uint256,uint256,uint256,uint256)[]`,value:S.map(e=>[e.extraRandomization,e.stealthAddress,e.H0,e.H1])}],m),w=await d.trx.sign(C),T=await d.trx.sendRawTransaction(w);if(!T.result)throw l.Logger.error(`Tron prooflessDeposit broadcast failed`,T),Error(`Tron prooflessDeposit broadcast failed`);let E=typeof T==`string`?T:T?.txid??T?.transaction?.txID;if(!E)throw Error(`Tron prooflessDeposit failed (missing txid)`);return E},w=async(r,c,l,p,m)=>{let h=u.validateAndGetChainId(c),x=e.isTronLike(h),w=await r.getEthereumAddressByChain(h),T=r.userKeys.getShieldedPrivateKey(),E=p??c.map(()=>d.calcStealthAddressStructure(o.Utxo.findCorrectRandomization(i.randomBigInt(31),T),T));if(E.length!==c.length)throw Error(`Stealth address structures length must be equal to erc20 tokens length`);S(E);let D;if(x)D=await C(r,h,c,l,E);else{let e=r.getContractWithSigner(h,n.ContractType.HinkalContract),i=r.getProviderAdapter(h),o=y(c,l),u=c.reduce((e,n,r)=>a.caseInsensitiveEqual(n.erc20TokenAddress,t.zeroAddress)?e+l[r]:e,0n),d=o.filter(({token:e,balance:n})=>!a.caseInsensitiveEqual(e.erc20TokenAddress,t.zeroAddress)&&n>0n),f;if(d.length>0&&await i.supportsBatchCall?.(h)&&i.sendBatchCallsTransaction){let t=g.buildApproveAndProoflessDepositCalls(d.map(({token:e})=>e.erc20TokenAddress),d.map(({balance:e})=>e),s.getContractAddress(e),e,c.map(({erc20TokenAddress:e})=>e),l,c.map(()=>0n),E,u);f=await i.sendBatchCallsTransaction(h,t)}else{await b(r,h,s.getContractAddress(e),o);let t=await r.getEthereumAddressByChain(h),n=o.map(({token:e,balance:t})=>({tokenAddress:e.erc20TokenAddress,requiredAmount:t}));await _.waitForErc20Approvals(r,h,t,s.getContractAddress(e),n),f=await e.prooflessDeposit(c.map(({erc20TokenAddress:e})=>e),l,c.map(()=>0n),E,{value:u>0n?u:void 0})}D=f.hash}return v.emitTxPublicData(f.constructAdminData(m,h,c.map(({erc20TokenAddress:e})=>e),l,w)),D};exports.hinkalProoflessDeposit=w;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/web3/etherFunctions.cjs`),a=require(`../../functions/utils/caseInsensitive.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../functions/utils/getContractAddress.cjs`),c=require(`../../functions/utils/tron.utils.cjs`),l=require(`../../error-handling/logger.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../externalABIs/index.cjs`),m=require(`../../functions/utils/tx-confirmation.utils.cjs`),h=require(`../../functions/utils/tronSimulation.utils.cjs`),g=require(`../../functions/web3/functionCalls/waitForErc20Approvals.cjs`),_=require(`../../API/admin-calls.cjs`),v=require(`../../functions/web3/functionCalls/constructBatchCall.cjs`);var y=(e,t)=>{let n=[],r=0;for(let i=0;i<e.length;i+=1){let a=!1;for(let o=0;o<r;o+=1)if(u.isSameERC20Token(n[o].token,e[i])){n[o].balance+=t[i],a=!0;break}a||(n[r]={token:e[i],balance:t[i]},r+=1)}return n},b=async(e,r,i,o)=>{for(let s=0;s<o.length;s+=1)a.caseInsensitiveEqual(o[s].token.erc20TokenAddress,t.zeroAddress)||await m.waitForEthereumTransactionConfirmation(r,(await e.getContractWithSigner(r,n.ContractType.ERC20Contract,o[s].token.erc20TokenAddress).approve(i,o[s].balance)).hash)},x=async(e,n,r,i)=>{let a=Array.from(i.entries());for(let i=0;i<a.length;i+=1){let[o,s]=a[i],c=await e.contract(p.ERC20ABI,o).allowance(n,r).call({from:n});if(BigInt(String(c))<s){let{transaction:i}=await e.transactionBuilder.triggerSmartContract(o,`approve(address,uint256)`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[{type:`address`,value:r},{type:`uint256`,value:s.toString()}],n),a=await e.trx.sign(i),c=await e.trx.sendRawTransaction(a);if(!c.result){let e=c.code??`UNKNOWN`,t=c.message?Buffer.from(c.message,`hex`).toString():`no message`;throw Error(`Tron token approval failed: ${e} - ${t}`)}}}},S=e=>{let t=new Set;e.forEach(({extraRandomization:e,stealthAddress:n})=>{let r=`${e.toString()}:${n.toString()}`;if(t.has(r))throw Error(`Duplicate randomization and stealth address pair detected in stealthAddressStructures`);t.add(r)})},C=async(n,i,o,s,u)=>{let d=n.getTronWeb(),{hinkalAddress:f}=e.networkRegistry[i].contractData,p=c.evmHexToTronBase58Address(f),m=await n.getEthereumAddressByChain(i),_=o.map(e=>e.erc20TokenAddress),v=o.map(()=>0n),y=0n,b=new Map;for(let e=0;e<o.length;e+=1){let n=c.evmHexToTronBase58Address(o[e].erc20TokenAddress);if(a.caseInsensitiveEqual(o[e].erc20TokenAddress,t.zeroAddress))y+=s[e];else{let t=b.get(n)??0n;b.set(n,t+s[e])}}await x(d,m,p,b),await g.waitForTronErc20Approvals(d,m,p,Array.from(b.entries()).map(([e,t])=>({tokenAddress:e,requiredAmount:t})));let S=u.map(e=>({extraRandomization:e.extraRandomization.toString(),stealthAddress:e.stealthAddress.toString(),H0:e.H0.toString(),H1:e.H1.toString()}));if(await h.simulateTronTransaction(i,p,`prooflessDeposit`,e.networkRegistry[i].contractData.hinkalABI,[_,s.map(String),v.map(String),u.map(e=>[e.extraRandomization.toString(),e.stealthAddress.toString(),e.H0.toString(),e.H1.toString()])],m,y>0n?y:void 0),y>0n){let n=BigInt(await d.trx.getBalance(m)),a=BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN);try{let{hinkalABI:t}=e.networkRegistry[i].contractData;if(!t)throw Error(`Hinkal ABI not found`);a=await c.estimateTronFeeSunWithPadding(d,i,p,m,c.createTronCallData(t,`prooflessDeposit`,[_,s.map(String),v.map(String),u.map(e=>[e.extraRandomization.toString(),e.stealthAddress.toString(),e.H0.toString(),e.H1.toString()])]),y)}catch(e){l.Logger.error(`Error estimating Tron prooflessDeposit fee`,e)}if(n<y+a)throw Error(r.insufficientResourcesErrorCodes.INSUFFICIENT_TRON_BALANCE_FOR_FEE)}let{transaction:C}=await d.transactionBuilder.triggerSmartContract(p,`prooflessDeposit(address[],uint256[],uint256[],(uint256,uint256,uint256,uint256)[])`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:y>0n?Number(y):0},[{type:`address[]`,value:_},{type:`uint256[]`,value:s.map(String)},{type:`uint256[]`,value:v.map(String)},{type:`tuple(uint256,uint256,uint256,uint256)[]`,value:S.map(e=>[e.extraRandomization,e.stealthAddress,e.H0,e.H1])}],m),w=await d.trx.sign(C),T=await d.trx.sendRawTransaction(w);if(!T.result)throw l.Logger.error(`Tron prooflessDeposit broadcast failed`,T),Error(`Tron prooflessDeposit broadcast failed`);let E=typeof T==`string`?T:T?.txid??T?.transaction?.txID;if(!E)throw Error(`Tron prooflessDeposit failed (missing txid)`);return E},w=async(r,c,l,p,m)=>{let h=u.validateAndGetChainId(c),x=e.isTronLike(h),w=await r.getEthereumAddressByChain(h),T=r.userKeys.getShieldedPrivateKey(),E=p??c.map(()=>d.calcStealthAddressStructure(o.Utxo.findCorrectRandomization(i.randomBigInt(31),T),T));if(E.length!==c.length)throw Error(`Stealth address structures length must be equal to erc20 tokens length`);S(E);let D;if(x)D=await C(r,h,c,l,E);else{let e=r.getContractWithSigner(h,n.ContractType.HinkalContract),i=r.getProviderAdapter(h),o=y(c,l),u=c.reduce((e,n,r)=>a.caseInsensitiveEqual(n.erc20TokenAddress,t.zeroAddress)?e+l[r]:e,0n),d=o.filter(({token:e,balance:n})=>!a.caseInsensitiveEqual(e.erc20TokenAddress,t.zeroAddress)&&n>0n),f;if(d.length>0&&await i.supportsBatchCall?.(h)&&i.sendBatchCallsTransaction){let t=v.buildApproveAndProoflessDepositCalls(d.map(({token:e})=>e.erc20TokenAddress),d.map(({balance:e})=>e),s.getContractAddress(e),e,c.map(({erc20TokenAddress:e})=>e),l,c.map(()=>0n),E,u);f=await i.sendBatchCallsTransaction(h,t)}else{await b(r,h,s.getContractAddress(e),o);let t=await r.getEthereumAddressByChain(h),n=o.map(({token:e,balance:t})=>({tokenAddress:e.erc20TokenAddress,requiredAmount:t}));await g.waitForErc20Approvals(r,h,t,s.getContractAddress(e),n),f=await e.prooflessDeposit(c.map(({erc20TokenAddress:e})=>e),l,c.map(()=>0n),E,{value:u>0n?u:void 0})}D=f.hash}return _.emitTxPublicData(f.constructAdminData(m,h,c.map(({erc20TokenAddress:e})=>e),l,w)),D};exports.hinkalProoflessDeposit=w;
@@ -14,9 +14,9 @@ import { constructAdminData as _ } from "../../functions/pre-transaction/constru
14
14
  import { ERC20ABI as v } from "../../externalABIs/index.mjs";
15
15
  import { waitForEthereumTransactionConfirmation as y } from "../../functions/utils/tx-confirmation.utils.mjs";
16
16
  import { simulateTronTransaction as b } from "../../functions/utils/tronSimulation.utils.mjs";
17
- import { buildApproveAndProoflessDepositCalls as x } from "../../functions/web3/functionCalls/constructBatchCall.mjs";
18
- import { waitForErc20Approvals as S, waitForTronErc20Approvals as C } from "../../functions/web3/functionCalls/waitForErc20Approvals.mjs";
19
- import { emitTxPublicData as w } from "../../API/admin-calls.mjs";
17
+ import { waitForErc20Approvals as x, waitForTronErc20Approvals as S } from "../../functions/web3/functionCalls/waitForErc20Approvals.mjs";
18
+ import { emitTxPublicData as C } from "../../API/admin-calls.mjs";
19
+ import { buildApproveAndProoflessDepositCalls as w } from "../../functions/web3/functionCalls/constructBatchCall.mjs";
20
20
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalProoflessDeposit.ts
21
21
  var T = (e, t) => {
22
22
  let n = [], r = 0;
@@ -60,16 +60,16 @@ var T = (e, t) => {
60
60
  t.add(r);
61
61
  });
62
62
  }, k = async (e, i, o, c, l) => {
63
- let m = e.getTronWeb(), { hinkalAddress: h } = t[i].contractData, g = f(h), _ = await e.getEthereumAddressByChain(i), v = o.map((e) => e.erc20TokenAddress), y = o.map(() => 0n), x = 0n, S = /* @__PURE__ */ new Map();
63
+ let m = e.getTronWeb(), { hinkalAddress: h } = t[i].contractData, g = f(h), _ = await e.getEthereumAddressByChain(i), v = o.map((e) => e.erc20TokenAddress), y = o.map(() => 0n), x = 0n, C = /* @__PURE__ */ new Map();
64
64
  for (let e = 0; e < o.length; e += 1) {
65
65
  let t = f(o[e].erc20TokenAddress);
66
66
  if (s(o[e].erc20TokenAddress, r)) x += c[e];
67
67
  else {
68
- let n = S.get(t) ?? 0n;
69
- S.set(t, n + c[e]);
68
+ let n = C.get(t) ?? 0n;
69
+ C.set(t, n + c[e]);
70
70
  }
71
71
  }
72
- await D(m, _, g, S), await C(m, _, g, Array.from(S.entries()).map(([e, t]) => ({
72
+ await D(m, _, g, C), await S(m, _, g, Array.from(C.entries()).map(([e, t]) => ({
73
73
  tokenAddress: e,
74
74
  requiredAmount: t
75
75
  })));
@@ -149,7 +149,7 @@ var T = (e, t) => {
149
149
  else {
150
150
  let e = t.getContractWithSigner(f, i.HinkalContract), o = t.getProviderAdapter(f), c = T(n, a), u = n.reduce((e, t, n) => s(t.erc20TokenAddress, r) ? e + a[n] : e, 0n), d = c.filter(({ token: e, balance: t }) => !s(e.erc20TokenAddress, r) && t > 0n), p;
151
151
  if (d.length > 0 && await o.supportsBatchCall?.(f) && o.sendBatchCallsTransaction) {
152
- let t = x(d.map(({ token: e }) => e.erc20TokenAddress), d.map(({ balance: e }) => e), l(e), e, n.map(({ erc20TokenAddress: e }) => e), a, n.map(() => 0n), y, u);
152
+ let t = w(d.map(({ token: e }) => e.erc20TokenAddress), d.map(({ balance: e }) => e), l(e), e, n.map(({ erc20TokenAddress: e }) => e), a, n.map(() => 0n), y, u);
153
153
  p = await o.sendBatchCallsTransaction(f, t);
154
154
  } else {
155
155
  await E(t, f, l(e), c);
@@ -157,11 +157,11 @@ var T = (e, t) => {
157
157
  tokenAddress: e.erc20TokenAddress,
158
158
  requiredAmount: t
159
159
  }));
160
- await S(t, f, r, l(e), i), p = await e.prooflessDeposit(n.map(({ erc20TokenAddress: e }) => e), a, n.map(() => 0n), y, { value: u > 0n ? u : void 0 });
160
+ await x(t, f, r, l(e), i), p = await e.prooflessDeposit(n.map(({ erc20TokenAddress: e }) => e), a, n.map(() => 0n), y, { value: u > 0n ? u : void 0 });
161
161
  }
162
162
  b = p.hash;
163
163
  }
164
- return w(_(d, f, n.map(({ erc20TokenAddress: e }) => e), a, m)), b;
164
+ return C(_(d, f, n.map(({ erc20TokenAddress: e }) => e), a, m)), b;
165
165
  };
166
166
  //#endregion
167
167
  export { A as hinkalProoflessDeposit };
@@ -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;
@@ -1,54 +1,167 @@
1
1
  import { chainIds as e, isTronLike as t } from "../../constants/chains.constants.mjs";
2
- import { defaultSignatureData as n, zeroAddress as r } from "../../constants/protocol.constants.mjs";
3
- import { defaultHinkalLogicArgs as ee } from "../../types/hinkal.types.mjs";
4
- import { randomBigInt as te } from "../web3/etherFunctions.mjs";
5
- import { Utxo as ne } from "../../data-structures/utxo/Utxo.mjs";
6
- import { Logger as re } from "../../error-handling/logger.mjs";
7
- import { buildOutCommitments as ie, calcAmountChanges as i, calcEncryptedOutputs as a, calcPublicSignalCount as o, calcStealthAddressStructure as s, createCallDataHash as ae, getSlippageValues as c } from "./common.snarkjs.mjs";
8
- import { generateCircomData as oe } from "./generateCircomData.mjs";
9
- import { generateZkProof as se } from "./generateZkProof.mjs";
10
- import { generateFeeStructure as ce } from "../utils/fees.utils.mjs";
11
- import { createHinkalHelperFromData as l, hinkalCheckTokenRegistry as u, hinkalCheckTronTokenRegistry as le } from "../../data-structures/Hinkal/hinkalCheckTokenRegistry.mjs";
12
- import { getDataFromWorkers as d } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
2
+ import { defaultSignatureData as ee, zeroAddress as te } from "../../constants/protocol.constants.mjs";
3
+ import { defaultHinkalLogicArgs as ne } from "../../types/hinkal.types.mjs";
4
+ import { randomBigInt as re } from "../web3/etherFunctions.mjs";
5
+ import { Utxo as ie } from "../../data-structures/utxo/Utxo.mjs";
6
+ import { Logger as ae } from "../../error-handling/logger.mjs";
7
+ import { buildOutCommitments as oe, calcAmountChanges as n, calcEncryptedOutputs as se, calcPublicSignalCount as ce, calcStealthAddressStructure as le, createCallDataHash as ue, getSlippageValues as de } from "./common.snarkjs.mjs";
8
+ import { generateCircomData as fe } from "./generateCircomData.mjs";
9
+ import { generateZkProof as r } from "./generateZkProof.mjs";
10
+ import { generateFeeStructure as pe } from "../utils/fees.utils.mjs";
11
+ import { createHinkalHelperFromData as me, hinkalCheckTokenRegistry as he, hinkalCheckTronTokenRegistry as ge } from "../../data-structures/Hinkal/hinkalCheckTokenRegistry.mjs";
12
+ import { getDataFromWorkers as _e } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
13
13
  //#region libs/shared/common/src/functions/snarkjs/constructGeneralZkProof.ts
14
- var f = async (f, p, m, h, g, _, v, y, b, x, S = r, C = e.localhost, w = m.map(() => !1), T = m.map(() => 0n), E = void 0, D = !1, O, k = void 0, A, j = n, M) => {
15
- let N = i(m, h), P = m.map((e) => e[0].erc20TokenAddress), F = a(h), I = g.getShieldedPrivateKey(), L = ne.findCorrectRandomization(te(31), I), R = t(C) ? await le(P, i(m, h, !0), C) : await u(A ?? l(C), P, i(m, h, !0)), z = t(C) ? D || R : D, { inCommitmentSiblings: B, inCommitmentSiblingSides: V, accessTokenSiblings: H, accessTokenSiblingSides: U, rootHashHinkal: W, rootHashAccessToken: G, inNullifiers: K } = await d(C, f, p, g, m.map((e) => e.map((e) => e.getConstructableParams())), z, R), q = ie(h), J = {
16
- rootHashHinkal: W,
17
- shieldedPrivateKey: I,
18
- erc20TokenAddresses: P,
19
- inAmounts: m.map((e) => e.map((e) => e.amount.toString())),
20
- inTimeStamps: m.map((e) => e.map((e) => e.timeStamp)),
21
- inRandomizations: m.map((e) => e.map((e) => e.randomization)),
22
- inNullifiers: K,
23
- inCommitmentSiblings: B,
24
- inCommitmentSiblingSides: V,
25
- outAmounts: h.map((e) => e.map((e) => e.amount.toString())),
26
- outTimeStamp: BigInt(h[0][0].timeStamp),
27
- outPublicKeys: h.map((e) => e.map((e) => e.getStealthAddress())),
28
- extraRandomization: L,
29
- amountChanges: N,
30
- outCommitments: q,
31
- rootHashAccessToken: G,
32
- accessTokenSiblings: H,
33
- accessTokenSiblingSides: U,
14
+ var i = "[constructZkProof]", a = (e) => typeof e == "bigint" ? e.toString() : e, o = (e) => ({
15
+ tokenGroupCount: e.length,
16
+ groupSizes: e.map((e) => e.length),
17
+ tokenAddresses: e.map((e) => e[0]?.erc20TokenAddress),
18
+ amounts: e.map((e) => e.map((e) => e.amount.toString()))
19
+ }), ve = (e) => e ? {
20
+ feeToken: e.feeToken,
21
+ flatFee: e.flatFee.toString(),
22
+ variableRate: e.variableRate.toString()
23
+ } : void 0, s = async (s, ye, c, l, u, d, f, p, m, h, g = te, _ = e.localhost, v = c.map(() => !1), y = c.map(() => 0n), b = void 0, x = !1, S, C = void 0, w, T = ee, E) => {
24
+ console.log(`${i} start`, {
25
+ chainId: _,
26
+ verifierName: d,
27
+ externalActionId: a(f),
28
+ externalAddress: p,
29
+ externalActionMetadataLength: m?.length,
30
+ generateProofRemotely: h,
31
+ relay: g,
32
+ patchAccessTokenMerkleTree: x,
33
+ onChainCreation: v,
34
+ flatFees: y.map((e) => e.toString()),
35
+ hasHookData: !!b,
36
+ hasHinkalHelper: !!w,
37
+ hasOriginalSender: !!E,
38
+ inputUtxos: o(c),
39
+ outputUtxos: o(l)
40
+ });
41
+ let D = n(c, l), O = c.map((e) => e[0].erc20TokenAddress), k = se(l);
42
+ console.log(`${i} derived base values`, {
43
+ amountChanges: D.map((e) => e.toString()),
44
+ erc20TokenAddresses: O,
45
+ encryptedOutputGroupCount: k.length,
46
+ encryptedOutputSizes: k.map((e) => e.length)
47
+ });
48
+ let A = u.getShieldedPrivateKey();
49
+ console.log(`${i} shielded key ready`, { shieldedPrivateKeyLength: A?.toString()?.length });
50
+ let j = ie.findCorrectRandomization(re(31), A);
51
+ console.log(`${i} extra randomization ready`, { extraRandomization: j.toString() });
52
+ let M = n(c, l, !0);
53
+ console.log(`${i} token registry check start`, {
54
+ isTronLike: t(_),
55
+ erc20TokenAddresses: O,
56
+ signedAmountChanges: M.map((e) => e.toString())
57
+ });
58
+ let N = t(_) ? await ge(O, M, _) : await he(w ?? me(_), O, M);
59
+ console.log(`${i} token registry check complete`, { kycRequired: N });
60
+ let P = t(_) ? x || N : x;
61
+ console.log(`${i} effective access token patch flag`, { effectivePatchAccessTokenMerkleTree: P });
62
+ let F = c.map((e) => e.map((e) => e.getConstructableParams()));
63
+ console.log(`${i} input utxos serialized`, {
64
+ serializedGroupCount: F.length,
65
+ serializedGroupSizes: F.map((e) => e.length)
66
+ }), console.log(`${i} worker data fetch start`);
67
+ let { inCommitmentSiblings: I, inCommitmentSiblingSides: L, accessTokenSiblings: R, accessTokenSiblingSides: z, rootHashHinkal: B, rootHashAccessToken: V, inNullifiers: H } = await _e(_, s, ye, u, F, P, N);
68
+ console.log(`${i} worker data fetch complete`, {
69
+ inNullifierGroupCount: H.length,
70
+ inNullifierSizes: H.map((e) => e.length),
71
+ inCommitmentSiblingGroupCount: I.length,
72
+ inCommitmentSiblingSizes: I.map((e) => e.length),
73
+ accessTokenSiblingGroupCount: R.length,
74
+ accessTokenSiblingSizes: R.map((e) => e.length),
75
+ rootHashHinkal: a(B),
76
+ rootHashAccessToken: a(V),
77
+ inCommitmentSiblingSidesGroupCount: L.length,
78
+ accessTokenSiblingSidesGroupCount: z.length
79
+ });
80
+ let U = oe(l);
81
+ console.log(`${i} out commitments built`, {
82
+ outCommitmentGroupCount: U.length,
83
+ outCommitmentSizes: U.map((e) => e.length)
84
+ });
85
+ let W = {
86
+ rootHashHinkal: B,
87
+ shieldedPrivateKey: A,
88
+ erc20TokenAddresses: O,
89
+ inAmounts: c.map((e) => e.map((e) => e.amount.toString())),
90
+ inTimeStamps: c.map((e) => e.map((e) => e.timeStamp)),
91
+ inRandomizations: c.map((e) => e.map((e) => e.randomization)),
92
+ inNullifiers: H,
93
+ inCommitmentSiblings: I,
94
+ inCommitmentSiblingSides: L,
95
+ outAmounts: l.map((e) => e.map((e) => e.amount.toString())),
96
+ outTimeStamp: BigInt(l[0][0].timeStamp),
97
+ outPublicKeys: l.map((e) => e.map((e) => e.getStealthAddress())),
98
+ extraRandomization: j,
99
+ amountChanges: D,
100
+ outCommitments: U,
101
+ rootHashAccessToken: V,
102
+ accessTokenSiblings: R,
103
+ accessTokenSiblingSides: z,
34
104
  calldataHash: 0n
35
- }, Y = m.map((e) => e[0].tokenId ?? 0), X = Y.reduce((e, t) => e + t, 0) > 0 ? Y.length : 0;
36
- X > 0 && (J.tokenIds = Y);
37
- let Z = o(_, J.erc20TokenAddresses, J.amountChanges, J.inNullifiers, J.outCommitments, X), Q = ee(N.length, g);
38
- J.interactionAddress = Q.interactionAddress, J.externalApprovalAddresses = Q.useApprovalUtxoData?.map(({ externalApprovalAddresses: e }) => e), k ||= ce(T, m.map((e) => e[0].erc20TokenAddress));
39
- let $ = i(m, h, !0);
40
- O ||= c($), re.log({ publicSignalCount: Z }), J.calldataHash = ae(Z, S, y, v, b, F, T, E, O, w, Q, k, j, M);
41
- let { zkCallData: ue } = await se(C, _, J, x), de = s(L, I);
42
- return {
43
- zkCallData: ue,
44
- circomData: oe(q, K, W, G, $, P, h, F, Z, v, y, b, S, J.calldataHash, Y, de, w, E, void 0, Q, O, k, j, M),
45
- dimData: {
46
- tokenNumber: m.length,
47
- nullifierAmount: m[0].length,
48
- outputAmount: h[0].length
49
- },
50
- encryptedOutputs: F
105
+ };
106
+ console.log(`${i} proof input prepared`, {
107
+ inAmountGroupCount: W.inAmounts.length,
108
+ outAmountGroupCount: W.outAmounts.length,
109
+ outTimeStamp: W.outTimeStamp.toString(),
110
+ extraRandomization: W.extraRandomization.toString(),
111
+ amountChanges: W.amountChanges.map((e) => e.toString())
112
+ });
113
+ let G = c.map((e) => e[0].tokenId ?? 0), K = G.reduce((e, t) => e + t, 0) > 0 ? G.length : 0;
114
+ K > 0 && (W.tokenIds = G), console.log(`${i} token ids analyzed`, {
115
+ tokenIds: G,
116
+ tokenIdsPositive: K
117
+ });
118
+ let q = ce(d, W.erc20TokenAddresses, W.amountChanges, W.inNullifiers, W.outCommitments, K);
119
+ console.log(`${i} public signal count ready`, { publicSignalCount: q });
120
+ let J = ne(D.length, u);
121
+ W.interactionAddress = J.interactionAddress, W.externalApprovalAddresses = J.useApprovalUtxoData?.map(({ externalApprovalAddresses: e }) => e), console.log(`${i} hinkal logic args ready`, {
122
+ interactionAddress: J.interactionAddress,
123
+ externalApprovalAddressesCount: W.externalApprovalAddresses?.length
124
+ }), C ||= (console.log(`${i} generating fee structure`), pe(y, c.map((e) => e[0].erc20TokenAddress))), console.log(`${i} fee structure ready`, ve(C));
125
+ let Y = M;
126
+ console.log(`${i} signed amount changes ready`, { amountChangesBased: Y.map((e) => e.toString()) }), S ||= (console.log(`${i} generating slippage values`), de(Y)), console.log(`${i} slippage values ready`, { slippageValues: S.map((e) => e.toString()) }), ae.log({ publicSignalCount: q }), console.log(`${i} calldata hash start`), W.calldataHash = ue(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`);
127
+ let { zkCallData: X } = await r(_, d, W, h);
128
+ console.log(`${i} generateZkProof complete`, {
129
+ aLength: X?.[0]?.length,
130
+ bOuterLength: X?.[1]?.length,
131
+ bInnerLengths: X?.[1]?.map((e) => e.length),
132
+ cLength: X?.[2]?.length,
133
+ inputLength: X?.[3]?.length
134
+ });
135
+ let Z = le(j, A);
136
+ console.log(`${i} stealth address structure ready`, {
137
+ extraRandomization: a(Z.extraRandomization),
138
+ stealthAddress: a(Z.stealthAddress)
139
+ });
140
+ let Q = fe(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);
141
+ console.log(`${i} circom data ready`, {
142
+ tokenCount: Q.erc20TokenAddresses.length,
143
+ amountChanges: Q.amountChanges.map((e) => e.toString()),
144
+ inputNullifierGroupCount: Q.inputNullifiers.length,
145
+ outCommitmentGroupCount: Q.outCommitments.length,
146
+ encryptedOutputGroupCount: Q.encryptedOutputs.length,
147
+ rootHashHinkal: a(Q.rootHashHinkal),
148
+ rootHashAccessToken: a(Q.rootHashAccessToken),
149
+ relay: Q.relay,
150
+ externalAddress: Q.externalAddress,
151
+ externalActionId: a(Q.externalActionId),
152
+ calldataHash: a(Q.calldataHash)
153
+ });
154
+ let $ = {
155
+ tokenNumber: c.length,
156
+ nullifierAmount: c[0].length,
157
+ outputAmount: l[0].length
158
+ };
159
+ return console.log(`${i} dim data ready`, $), console.log(`${i} complete`), {
160
+ zkCallData: X,
161
+ circomData: Q,
162
+ dimData: $,
163
+ encryptedOutputs: k
51
164
  };
52
165
  };
53
166
  //#endregion
54
- export { f as constructZkProof };
167
+ export { s as constructZkProof };
@@ -1 +1 @@
1
- const e=require(`../../error-handling/logger.cjs`),t=require(`./generateZkProofEnclave.cjs`),n=require(`./generateZkProofSelf.cjs`);var r=async(r,i,a,o)=>{if(o)try{return await t.generateZkProofEnclave(r,i,a)}catch(t){e.Logger.error(`enclave proof error`,t)}return n.generateZkProofSelf(r,i,a)};exports.generateZkProof=r;
1
+ const e=require(`../../error-handling/logger.cjs`),t=require(`./generateZkProofEnclave.cjs`),n=require(`./generateZkProofSelf.cjs`);var r=async(r,i,a,o)=>{if(console.log(`generateZkProof`,{chainId:r,verifierName:i,input:a,remotely:o}),o)try{return await t.generateZkProofEnclave(r,i,a)}catch(t){e.Logger.error(`enclave proof error`,t)}return n.generateZkProofSelf(r,i,a)};exports.generateZkProof=r;
@@ -3,7 +3,12 @@ import { generateZkProofEnclave as t } from "./generateZkProofEnclave.mjs";
3
3
  import { generateZkProofSelf as n } from "./generateZkProofSelf.mjs";
4
4
  //#region libs/shared/common/src/functions/snarkjs/generateZkProof.ts
5
5
  var r = async (r, i, a, o) => {
6
- if (o) try {
6
+ if (console.log("generateZkProof", {
7
+ chainId: r,
8
+ verifierName: i,
9
+ input: a,
10
+ remotely: o
11
+ }), o) try {
7
12
  return await t(r, i, a);
8
13
  } catch (t) {
9
14
  e.error("enclave proof error", t);
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/getContractAddress.cjs`),t=require(`../../../externalABIs/index.cjs`);let n=require(`ethers`);var r=(e,r)=>new n.ethers.Interface(t.ERC20ABI).encodeFunctionData(`approve`,[e,r]),i=(e,t,n,r)=>r.encodeFunctionData(`transact`,[e[0],e[1],e[2],t,n]),a=(e,t,n,r,i)=>i.encodeFunctionData(`prooflessDeposit`,[e,t,n,r]),o=(e,t,i,a,o,s)=>{let c=[];for(let a=0;a<e.length;a+=1){let o=e[a],s=t[a];o!==n.ethers.ZeroAddress&&s>0n&&c.push({to:o,value:`0x0`,data:r(i,s)})}return c.push({to:a,value:s>0n?`0x${s.toString(16)}`:`0x0`,data:o}),c},s=(t,a,o,s,c,l,u,d)=>{let f=[];for(let e=0;e<t.length;e+=1){let i=t[e],s=a[e];i!==n.ethers.ZeroAddress&&s>0n&&f.push({to:i,value:`0x0`,data:r(o,s)})}return f.push({to:e.getContractAddress(s),value:d>0n?`0x${d.toString(16)}`:`0x0`,data:i(c,l,u,s.interface)}),f},c=(t,n,r,i,s,c,l,u,d)=>{let f=a(s,c,l,u,i.interface);return o(t,n,r,e.getContractAddress(i),f,d)};exports.buildApproveAndProoflessDepositCalls=c,exports.buildApproveAndTransactCalls=s;
1
+ require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../utils/getContractAddress.cjs`),t=require(`../../../externalABIs/index.cjs`);let n=require(`ethers`);var r=(e,r)=>new n.ethers.Interface(t.ERC20ABI).encodeFunctionData(`approve`,[e,r]),i=(e,t,n,r,i)=>i.encodeFunctionData(`prooflessDeposit`,[e,t,n,r]),a=(e,t,i,a,o,s)=>{let c=[];for(let a=0;a<e.length;a+=1){let o=e[a],s=t[a];o!==n.ethers.ZeroAddress&&s>0n&&c.push({to:o,value:`0x0`,data:r(i,s)})}return c.push({to:a,value:s>0n?`0x${s.toString(16)}`:`0x0`,data:o}),c},o=(t,n,r,o,s,c,l,u,d)=>{let f=i(s,c,l,u,o.interface);return a(t,n,r,e.getContractAddress(o),f,d)};exports.buildApproveAndProoflessDepositCalls=o;
@@ -2,18 +2,12 @@ import { getContractAddress as e } from "../../utils/getContractAddress.mjs";
2
2
  import { ERC20ABI as t } from "../../../externalABIs/index.mjs";
3
3
  import { ethers as n } from "ethers";
4
4
  //#region libs/shared/common/src/functions/web3/functionCalls/constructBatchCall.ts
5
- var r = (e, r) => new n.Interface(t).encodeFunctionData("approve", [e, r]), i = (e, t, n, r) => r.encodeFunctionData("transact", [
6
- e[0],
7
- e[1],
8
- e[2],
9
- t,
10
- n
11
- ]), a = (e, t, n, r, i) => i.encodeFunctionData("prooflessDeposit", [
5
+ var r = (e, r) => new n.Interface(t).encodeFunctionData("approve", [e, r]), i = (e, t, n, r, i) => i.encodeFunctionData("prooflessDeposit", [
12
6
  e,
13
7
  t,
14
8
  n,
15
9
  r
16
- ]), o = (e, t, i, a, o, s) => {
10
+ ]), a = (e, t, i, a, o, s) => {
17
11
  let c = [];
18
12
  for (let a = 0; a < e.length; a += 1) {
19
13
  let o = e[a], s = t[a];
@@ -28,24 +22,9 @@ var r = (e, r) => new n.Interface(t).encodeFunctionData("approve", [e, r]), i =
28
22
  value: s > 0n ? `0x${s.toString(16)}` : "0x0",
29
23
  data: o
30
24
  }), c;
31
- }, s = (t, a, o, s, c, l, u, d) => {
32
- let f = [];
33
- for (let e = 0; e < t.length; e += 1) {
34
- let i = t[e], s = a[e];
35
- i !== n.ZeroAddress && s > 0n && f.push({
36
- to: i,
37
- value: "0x0",
38
- data: r(o, s)
39
- });
40
- }
41
- return f.push({
42
- to: e(s),
43
- value: d > 0n ? `0x${d.toString(16)}` : "0x0",
44
- data: i(c, l, u, s.interface)
45
- }), f;
46
- }, c = (t, n, r, i, s, c, l, u, d) => {
47
- let f = a(s, c, l, u, i.interface);
48
- return o(t, n, r, e(i), f, d);
25
+ }, o = (t, n, r, o, s, c, l, u, d) => {
26
+ let f = i(s, c, l, u, o.interface);
27
+ return a(t, n, r, e(o), f, d);
49
28
  };
50
29
  //#endregion
51
- export { c as buildApproveAndProoflessDepositCalls, s as buildApproveAndTransactCalls };
30
+ export { o as buildApproveAndProoflessDepositCalls };
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../../types/ethereum-network.types.cjs`),n=require(`../../utils/time.utils.cjs`),r=require(`../../utils/getContractAddress.cjs`),i=require(`./recoverTransactionFromError.cjs`),a=require(`./approveTokensToHinkal.cjs`),o=require(`./constructBatchCall.cjs`),s=require(`./waitForErc20Approvals.cjs`);let c=require(`ethers`);var l=async(l,u,d,f,p,m,h,g,_,v=!0,y=!1)=>{let b=Array.isArray(d)?d:[d],x=Array.isArray(f)?f:[f];if(b.length!==x.length)throw Error(`token and amount length mismatch`);let S=l.getContractWithSigner(u,t.ContractType.HinkalContract),C=await l.getEthereumAddressByChain(u),w=g??S,T=_??S,E=`transact`,D=x.findIndex(({erc20TokenAddress:t})=>t===e.zeroAddress),O=x.some(({erc20TokenAddress:t})=>t!==e.zeroAddress),k=D===-1?0n:b[D],A=l.getProviderAdapter(u),j=await A.supportsBatchCall?.(u);if(!y&&O&&j&&A.sendBatchCallsTransaction){let e=o.buildApproveAndTransactCalls(x.map(e=>e.erc20TokenAddress),b,r.getContractAddress(w),T,p,h,m,k);return await A.sendBatchCallsTransaction(u,e)}if(!y&&(await a.approveTokensToHinkal(l,u,w,x,b),O)){let e=x.map(({erc20TokenAddress:e},t)=>({tokenAddress:e,requiredAmount:b[t]}));await s.waitForErc20Approvals(l,u,C,r.getContractAddress(w),e)}let M={value:k>0n?BigInt(k).toString():void 0,gasLimit:void 0},N,P=[p[0],p[1],p[2],h,m,{...M,from:C}],{runner:F}=T;if(!(F instanceof c.ethers.AbstractSigner))throw Error(`expected signer`);if(v)try{N=Number(await T[E].estimateGas(...P))}catch(e){console.log(`hinkalDeposit: gas estimation error`,{err:e})}let I=N&&N>=0?Math.ceil(N*12/10):void 0;I&&(P[5].gasLimit=I),await n.waitLittle();let L;try{L=y?await T[E].populateTransaction(...P):await T[E](...P)}catch(e){if(!e?.transactionHash)throw e;let t=await i.recoverTransactionFromError(F.provider,e.transactionHash);if(!t)throw e;L=t}return L};exports.transactCallDirect=l;
1
+ require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../../types/ethereum-network.types.cjs`),n=require(`../../utils/time.utils.cjs`),r=require(`../../utils/getContractAddress.cjs`),i=require(`./recoverTransactionFromError.cjs`),a=require(`./approveTokensToHinkal.cjs`),o=require(`./waitForErc20Approvals.cjs`);let s=require(`ethers`);var c=`[transactCallDirect]`,l=e=>typeof e==`bigint`?e.toString():void 0,u=e=>({aLength:e?.[0]?.length,bOuterLength:e?.[1]?.length,bInnerLengths:e?.[1]?.map(e=>e.length),cLength:e?.[2]?.length,inputLength:e?.[3]?.length}),d=e=>({tokenCount:e.erc20TokenAddresses?.length,tokenAddresses:e.erc20TokenAddresses,amountChanges:e.amountChanges?.map(e=>e.toString()),inputNullifierGroupCount:e.inputNullifiers?.length,inputNullifierSizes:e.inputNullifiers?.map(e=>e.length),outCommitmentGroupCount:e.outCommitments?.length,outCommitmentSizes:e.outCommitments?.map(e=>e.length),encryptedOutputGroupCount:e.encryptedOutputs?.length,encryptedOutputSizes:e.encryptedOutputs?.map(e=>e.length),rootHashHinkal:l(e.rootHashHinkal),rootHashAccessToken:l(e.rootHashAccessToken),relay:e.relay,externalAddress:e.externalAddress,externalActionId:l(e.externalActionId),calldataHash:l(e.calldataHash),publicSignalCount:e.publicSignalCount,originalSender:e.originalSender}),f=e=>({hash:`hash`in e?e.hash:void 0,to:e.to,from:e.from,nonce:e.nonce,value:typeof e.value==`bigint`?e.value.toString():e.value,gasLimit:typeof e.gasLimit==`bigint`?e.gasLimit.toString():e.gasLimit,dataLength:typeof e.data==`string`?e.data.length:void 0}),p=async(l,p,m,h,g,_,v,y,b,x=!0,S=!1)=>{console.log(`${c} start`,{chainId:p,preEstimateGas:x,returnTxData:S,amountIsArray:Array.isArray(m),tokenIsArray:Array.isArray(h),zkCallData:u(g),dimData:v,circomData:d(_)});let C=Array.isArray(m)?m:[m],w=Array.isArray(h)?h:[h];if(console.log(`${c} normalized inputs`,{amounts:C.map(e=>e.toString()),tokenAddresses:w.map(({erc20TokenAddress:e})=>e),tokenSymbols:w.map(({symbol:e})=>e)}),C.length!==w.length)throw Error(`token and amount length mismatch`);console.log(`${c} fetching signer contract`);let T=l.getContractWithSigner(p,t.ContractType.HinkalContract);console.log(`${c} signer contract ready`,{hinkalContractAddress:r.getContractAddress(T)}),console.log(`${c} fetching ethereum address`);let E=await l.getEthereumAddressByChain(p);console.log(`${c} ethereum address ready`,{ethereumAddress:E});let D=y??T,O=b??T;console.log(`${c} contracts resolved`,{approvalContractAddress:r.getContractAddress(D),transactionContractAddress:r.getContractAddress(O),usedCustomApprovalContract:!!y,usedCustomTransactionContract:!!b});let k=`transact`,A=w.findIndex(({erc20TokenAddress:t})=>t===e.zeroAddress),j=w.some(({erc20TokenAddress:t})=>t!==e.zeroAddress),M=A===-1?0n:C[A];console.log(`${c} token analysis`,{ethIndex:A,needsApproval:j,ethAmount:M.toString()}),console.log(`${c} fetching provider adapter`);let N=l.getProviderAdapter(p);if(console.log(`${c} provider adapter ready`,{providerAdapterType:N?.constructor?.name}),console.log(`${c} checking batch support`),!S&&(console.log(`${c} approving tokens start`),await a.approveTokensToHinkal(l,p,D,w,C),console.log(`${c} approving tokens complete`),j)){let e=w.map(({erc20TokenAddress:e},t)=>({tokenAddress:e,requiredAmount:C[t]}));console.log(`${c} waiting for approvals start`,{ownerAddress:E,spenderAddress:r.getContractAddress(D),requirements:e.map(({tokenAddress:e,requiredAmount:t})=>({tokenAddress:e,requiredAmount:t.toString()}))}),await o.waitForErc20Approvals(l,p,E,r.getContractAddress(D),e),console.log(`${c} waiting for approvals complete`)}let P={value:M>0n?BigInt(M).toString():void 0,gasLimit:void 0};console.log(`${c} overrides prepared`,P);let F,I=[g[0],g[1],g[2],v,_,{...P,from:E}];console.log(`${c} call data prepared`,{method:k,dimData:v,transactionContractAddress:r.getContractAddress(O),from:E,value:P.value,zkCallData:u(g)});let{runner:L}=O;if(console.log(`${c} runner resolved`,{runnerType:L?.constructor?.name,hasProvider:!!L?.provider}),!(L instanceof s.ethers.AbstractSigner))throw console.log(`${c} runner is not a signer`,{runnerType:L?.constructor?.name}),Error(`expected signer`);if(x){console.log(`${c} estimateGas start`);try{F=Number(await O[k].estimateGas(...I)),console.log(`${c} estimateGas success`,{gasCosts:F})}catch(e){console.log(`${c} estimateGas error`,{message:e?.message,code:e?.code,shortMessage:e?.shortMessage,reason:e?.reason,data:e?.data,error:e})}}else console.log(`${c} estimateGas skipped`);let R=F&&F>=0?Math.ceil(F*12/10):void 0;R&&(I[5].gasLimit=R),console.log(`${c} gas configuration final`,{gasCosts:F,extendedGasCosts:R,finalOverrides:I[5]}),console.log(`${c} waitLittle start`),await n.waitLittle(),console.log(`${c} waitLittle complete`);let z;try{S?(console.log(`${c} populateTransaction start`),z=await O[k].populateTransaction(...I),console.log(`${c} populateTransaction success`,f(z))):(console.log(`${c} contract call start`),z=await O[k](...I),console.log(`${c} contract call success`,f(z)))}catch(e){if(console.log(`${c} contract call error`,{message:e?.message,code:e?.code,shortMessage:e?.shortMessage,reason:e?.reason,transactionHash:e?.transactionHash,data:e?.data,error:e}),!e?.transactionHash)throw e;console.log(`${c} recoverTransactionFromError start`,{transactionHash:e.transactionHash});let t=await i.recoverTransactionFromError(L.provider,e.transactionHash);if(!t)throw console.log(`${c} recoverTransactionFromError failed`),e;console.log(`${c} recoverTransactionFromError success`,f(t)),z=t}return console.log(`${c} complete`,f(z)),z};exports.transactCallDirect=p;
@@ -4,57 +4,160 @@ import { waitLittle as n } from "../../utils/time.utils.mjs";
4
4
  import { getContractAddress as r } from "../../utils/getContractAddress.mjs";
5
5
  import { recoverTransactionFromError as i } from "./recoverTransactionFromError.mjs";
6
6
  import { approveTokensToHinkal as a } from "./approveTokensToHinkal.mjs";
7
- import { buildApproveAndTransactCalls as o } from "./constructBatchCall.mjs";
8
- import { waitForErc20Approvals as s } from "./waitForErc20Approvals.mjs";
9
- import { ethers as c } from "ethers";
7
+ import { waitForErc20Approvals as o } from "./waitForErc20Approvals.mjs";
8
+ import { ethers as s } from "ethers";
10
9
  //#region libs/shared/common/src/functions/web3/functionCalls/transactCallDirect.ts
11
- var l = async (l, u, d, f, p, m, h, g, _, v = !0, y = !1) => {
12
- let b = Array.isArray(d) ? d : [d], x = Array.isArray(f) ? f : [f];
13
- if (b.length !== x.length) throw Error("token and amount length mismatch");
14
- let S = l.getContractWithSigner(u, t.HinkalContract), C = await l.getEthereumAddressByChain(u), w = g ?? S, T = _ ?? S, E = "transact", D = x.findIndex(({ erc20TokenAddress: t }) => t === e), O = x.some(({ erc20TokenAddress: t }) => t !== e), k = D === -1 ? 0n : b[D], A = l.getProviderAdapter(u), j = await A.supportsBatchCall?.(u);
15
- if (!y && O && j && A.sendBatchCallsTransaction) {
16
- let e = o(x.map((e) => e.erc20TokenAddress), b, r(w), T, p, h, m, k);
17
- return await A.sendBatchCallsTransaction(u, e);
18
- }
19
- if (!y && (await a(l, u, w, x, b), O)) {
20
- let e = x.map(({ erc20TokenAddress: e }, t) => ({
10
+ var c = "[transactCallDirect]", l = (e) => typeof e == "bigint" ? e.toString() : void 0, u = (e) => ({
11
+ aLength: e?.[0]?.length,
12
+ bOuterLength: e?.[1]?.length,
13
+ bInnerLengths: e?.[1]?.map((e) => e.length),
14
+ cLength: e?.[2]?.length,
15
+ inputLength: e?.[3]?.length
16
+ }), d = (e) => ({
17
+ tokenCount: e.erc20TokenAddresses?.length,
18
+ tokenAddresses: e.erc20TokenAddresses,
19
+ amountChanges: e.amountChanges?.map((e) => e.toString()),
20
+ inputNullifierGroupCount: e.inputNullifiers?.length,
21
+ inputNullifierSizes: e.inputNullifiers?.map((e) => e.length),
22
+ outCommitmentGroupCount: e.outCommitments?.length,
23
+ outCommitmentSizes: e.outCommitments?.map((e) => e.length),
24
+ encryptedOutputGroupCount: e.encryptedOutputs?.length,
25
+ encryptedOutputSizes: e.encryptedOutputs?.map((e) => e.length),
26
+ rootHashHinkal: l(e.rootHashHinkal),
27
+ rootHashAccessToken: l(e.rootHashAccessToken),
28
+ relay: e.relay,
29
+ externalAddress: e.externalAddress,
30
+ externalActionId: l(e.externalActionId),
31
+ calldataHash: l(e.calldataHash),
32
+ publicSignalCount: e.publicSignalCount,
33
+ originalSender: e.originalSender
34
+ }), f = (e) => ({
35
+ hash: "hash" in e ? e.hash : void 0,
36
+ to: e.to,
37
+ from: e.from,
38
+ nonce: e.nonce,
39
+ value: typeof e.value == "bigint" ? e.value.toString() : e.value,
40
+ gasLimit: typeof e.gasLimit == "bigint" ? e.gasLimit.toString() : e.gasLimit,
41
+ dataLength: typeof e.data == "string" ? e.data.length : void 0
42
+ }), p = async (l, p, m, h, g, _, v, y, b, x = !0, S = !1) => {
43
+ console.log(`${c} start`, {
44
+ chainId: p,
45
+ preEstimateGas: x,
46
+ returnTxData: S,
47
+ amountIsArray: Array.isArray(m),
48
+ tokenIsArray: Array.isArray(h),
49
+ zkCallData: u(g),
50
+ dimData: v,
51
+ circomData: d(_)
52
+ });
53
+ let C = Array.isArray(m) ? m : [m], w = Array.isArray(h) ? h : [h];
54
+ if (console.log(`${c} normalized inputs`, {
55
+ amounts: C.map((e) => e.toString()),
56
+ tokenAddresses: w.map(({ erc20TokenAddress: e }) => e),
57
+ tokenSymbols: w.map(({ symbol: e }) => e)
58
+ }), C.length !== w.length) throw Error("token and amount length mismatch");
59
+ console.log(`${c} fetching signer contract`);
60
+ let T = l.getContractWithSigner(p, t.HinkalContract);
61
+ console.log(`${c} signer contract ready`, { hinkalContractAddress: r(T) }), console.log(`${c} fetching ethereum address`);
62
+ let E = await l.getEthereumAddressByChain(p);
63
+ console.log(`${c} ethereum address ready`, { ethereumAddress: E });
64
+ let D = y ?? T, O = b ?? T;
65
+ console.log(`${c} contracts resolved`, {
66
+ approvalContractAddress: r(D),
67
+ transactionContractAddress: r(O),
68
+ usedCustomApprovalContract: !!y,
69
+ usedCustomTransactionContract: !!b
70
+ });
71
+ let k = "transact", A = w.findIndex(({ erc20TokenAddress: t }) => t === e), j = w.some(({ erc20TokenAddress: t }) => t !== e), M = A === -1 ? 0n : C[A];
72
+ console.log(`${c} token analysis`, {
73
+ ethIndex: A,
74
+ needsApproval: j,
75
+ ethAmount: M.toString()
76
+ }), console.log(`${c} fetching provider adapter`);
77
+ let N = l.getProviderAdapter(p);
78
+ if (console.log(`${c} provider adapter ready`, { providerAdapterType: N?.constructor?.name }), console.log(`${c} checking batch support`), !S && (console.log(`${c} approving tokens start`), await a(l, p, D, w, C), console.log(`${c} approving tokens complete`), j)) {
79
+ let e = w.map(({ erc20TokenAddress: e }, t) => ({
21
80
  tokenAddress: e,
22
- requiredAmount: b[t]
81
+ requiredAmount: C[t]
23
82
  }));
24
- await s(l, u, C, r(w), e);
83
+ console.log(`${c} waiting for approvals start`, {
84
+ ownerAddress: E,
85
+ spenderAddress: r(D),
86
+ requirements: e.map(({ tokenAddress: e, requiredAmount: t }) => ({
87
+ tokenAddress: e,
88
+ requiredAmount: t.toString()
89
+ }))
90
+ }), await o(l, p, E, r(D), e), console.log(`${c} waiting for approvals complete`);
25
91
  }
26
- let M = {
27
- value: k > 0n ? BigInt(k).toString() : void 0,
92
+ let P = {
93
+ value: M > 0n ? BigInt(M).toString() : void 0,
28
94
  gasLimit: void 0
29
- }, N, P = [
30
- p[0],
31
- p[1],
32
- p[2],
33
- h,
34
- m,
95
+ };
96
+ console.log(`${c} overrides prepared`, P);
97
+ let F, I = [
98
+ g[0],
99
+ g[1],
100
+ g[2],
101
+ v,
102
+ _,
35
103
  {
36
- ...M,
37
- from: C
104
+ ...P,
105
+ from: E
38
106
  }
39
- ], { runner: F } = T;
40
- if (!(F instanceof c.AbstractSigner)) throw Error("expected signer");
41
- if (v) try {
42
- N = Number(await T[E].estimateGas(...P));
43
- } catch (e) {
44
- console.log("hinkalDeposit: gas estimation error", { err: e });
45
- }
46
- let I = N && N >= 0 ? Math.ceil(N * 12 / 10) : void 0;
47
- I && (P[5].gasLimit = I), await n();
48
- let L;
107
+ ];
108
+ console.log(`${c} call data prepared`, {
109
+ method: k,
110
+ dimData: v,
111
+ transactionContractAddress: r(O),
112
+ from: E,
113
+ value: P.value,
114
+ zkCallData: u(g)
115
+ });
116
+ let { runner: L } = O;
117
+ if (console.log(`${c} runner resolved`, {
118
+ runnerType: L?.constructor?.name,
119
+ hasProvider: !!L?.provider
120
+ }), !(L instanceof s.AbstractSigner)) throw console.log(`${c} runner is not a signer`, { runnerType: L?.constructor?.name }), Error("expected signer");
121
+ if (x) {
122
+ console.log(`${c} estimateGas start`);
123
+ try {
124
+ F = Number(await O[k].estimateGas(...I)), console.log(`${c} estimateGas success`, { gasCosts: F });
125
+ } catch (e) {
126
+ console.log(`${c} estimateGas error`, {
127
+ message: e?.message,
128
+ code: e?.code,
129
+ shortMessage: e?.shortMessage,
130
+ reason: e?.reason,
131
+ data: e?.data,
132
+ error: e
133
+ });
134
+ }
135
+ } else console.log(`${c} estimateGas skipped`);
136
+ let R = F && F >= 0 ? Math.ceil(F * 12 / 10) : void 0;
137
+ R && (I[5].gasLimit = R), console.log(`${c} gas configuration final`, {
138
+ gasCosts: F,
139
+ extendedGasCosts: R,
140
+ finalOverrides: I[5]
141
+ }), console.log(`${c} waitLittle start`), await n(), console.log(`${c} waitLittle complete`);
142
+ let z;
49
143
  try {
50
- L = y ? await T[E].populateTransaction(...P) : await T[E](...P);
144
+ S ? (console.log(`${c} populateTransaction start`), z = await O[k].populateTransaction(...I), console.log(`${c} populateTransaction success`, f(z))) : (console.log(`${c} contract call start`), z = await O[k](...I), console.log(`${c} contract call success`, f(z)));
51
145
  } catch (e) {
52
- if (!e?.transactionHash) throw e;
53
- let t = await i(F.provider, e.transactionHash);
54
- if (!t) throw e;
55
- L = t;
146
+ if (console.log(`${c} contract call error`, {
147
+ message: e?.message,
148
+ code: e?.code,
149
+ shortMessage: e?.shortMessage,
150
+ reason: e?.reason,
151
+ transactionHash: e?.transactionHash,
152
+ data: e?.data,
153
+ error: e
154
+ }), !e?.transactionHash) throw e;
155
+ console.log(`${c} recoverTransactionFromError start`, { transactionHash: e.transactionHash });
156
+ let t = await i(L.provider, e.transactionHash);
157
+ if (!t) throw console.log(`${c} recoverTransactionFromError failed`), e;
158
+ console.log(`${c} recoverTransactionFromError success`, f(t)), z = t;
56
159
  }
57
- return L;
160
+ return console.log(`${c} complete`, f(z)), z;
58
161
  };
59
162
  //#endregion
60
- export { l as transactCallDirect };
163
+ export { p as transactCallDirect };
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/chains.constants.cjs`),t=require(`../types/eip5792.types.cjs`),n=require(`../error-handling/error-codes.constants.cjs`),r=require(`../error-handling/logger.cjs`),i=require(`../functions/utils/create-provider.cjs`),a=require(`../functions/web3/getContractMetadata.cjs`);let o=require(`ethers`),s=require(`wagmi`),c=require(`wagmi/actions`);var l=class{connector;chainId;originalProvider;fetchProviders={};signer;chainEventListener;config;unsubscribeFns=[];constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{if(e.isSolanaLike(t))return;let{fetchRpcUrl:n}=e.networkRegistry[t];if(!n)throw Error(`No Fetch RPC URL In Provider Adapter`);this.fetchProviders[t]=n.includes(`wss`)?new o.ethers.WebSocketProvider(n):i.createJsonRpcProvider(t)})}initConnector(e){this.connector=e}initConfig(e){this.config=e}async init(e){if(!this.connector)throw Error(`No Connector In Provider Adapter`);if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`);let t=await this.connector.getProvider();this.originalProvider=new o.ethers.BrowserProvider(t);let n=(await this.connector.getAccounts())?.[0];if(!n){this.chainEventListener&&this.chainEventListener.onChainChanged();return}this.signer=await this.walletClientToSigner({transport:t,account:n},this.chainId)}async disconnectFromConnector(){if(!this.config)throw Error(`No Config In Provider Adapter`);this.release(),await(0,c.disconnect)(this.config)}async connectToConnector(e){if(!this.config)throw Error(`No Config In Provider Adapter`);if(e.id===`walletConnect`)try{await(0,c.reconnect)(this.config,{connectors:[e]}),await(0,c.disconnect)(this.config)}catch{}try{return(await(0,c.connect)(this.config,{connector:e})).chainId}catch(t){if(t instanceof s.ConnectorAlreadyConnectedError)return e.getChainId();let r=n.transactionErrorCodes.CONNECTION_FAILED;throw t?.code===4001&&(r=n.UserFriendlyErrorCodes.YOU_CANCELED_REQUEST),Error(r)}}getChainId(){return this.chainId}async waitForTransaction(e,t,r){if((await this.fetchProviders[e]?.waitForTransaction(t,r))?.status)return!0;throw Error(n.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.config)throw Error(`No Config In Provider Adapter`);let t=await(0,c.signMessage)(this.config,{message:e});if(!t)throw Error(n.transactionErrorCodes.SIGNING_FAILED);if(t.includes(`error`))throw Error(n.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return t}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(e){if(!this.config)throw Error(`No Config In Provider Adapter`);return(0,c.switchChain)(this.config,{chainId:e.chainId})}async getAddress(){if(!this.config)throw Error(`No Config In Provider Adapter`);let{address:e}=(0,c.getAccount)(this.config);if(!e)throw Error(`IllegalState`);return o.ethers.getAddress(e)}setChainEventListener(e){if(!this.config)throw Error(`No Config In Provider Adapter`);this.chainEventListener=e,this.chainEventListener&&(this.unsubscribeFns.push((0,c.watchAccount)(this.config,{onChange:({address:e},{address:t})=>{this.chainEventListener&&e!==t&&this.chainEventListener.onAccountChanged()}})),this.unsubscribeFns.push((0,c.watchChainId)(this.config,{onChange:e=>{this.chainEventListener&&this.chainEventListener.onChainChanged(e)}})))}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.unsubscribeFns.forEach(e=>e()),this.unsubscribeFns=[]}getContract(e,t,n=void 0,r){return a.getContract(t,e,n,r)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){let r=this.fetchProviders[e];if(!r)throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,r)}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(e){return await this.connectToConnector(e)}isPermitterAvailable(){if(!this.chainId)throw Error(`Illegal state: no chainId`);return!!e.networkRegistry[this.chainId]?.contractData?.permitterAddress}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}async walletClientToSigner(e,t){let{account:n,transport:r}=e;return new o.ethers.BrowserProvider(r).getSigner(n)}async supportsBatchCall(e){if(!this.originalProvider)return!1;try{let t=await this.getAddress(),n=`0x${e.toString(16)}`,r=await this.originalProvider.send(`wallet_getCapabilities`,[t,[n]]),i=r?.[n]||r?.[`0x0`];if(!i?.atomic)return!1;let a=typeof i.atomic==`string`?i.atomic:i.atomic?.status;return a===`supported`||a===`ready`}catch{return!1}}async waitForBatchTransactionStatus(e){if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);for(let n=0;n<60;n+=1){await new Promise(e=>{setTimeout(()=>e(),1e3)});try{let n=await this.originalProvider.send(`wallet_getCallsStatus`,[e]);if(n.status===t.CallsStatus.Confirmed&&n.receipts?.[0]?.transactionHash)return n.receipts[0].transactionHash;if(n.status===t.CallsStatus.OffchainFailure||n.status===t.CallsStatus.ChainFailure||n.status===t.CallsStatus.PartialFailure)break}catch(e){r.Logger.log(`waitForBatchTransactionStatus:`,e)}}throw Error(`Batch transaction timed out or failed`)}async sendBatchCallsTransaction(e,t){if(!this.fetchProviders[e])throw Error(`WagmiProviderAdapter: fetchProvider not initialized`);if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);let n=await this.getAddress(),r={version:`2.0.0`,chainId:`0x${e.toString(16)}`,from:n,atomicRequired:!0,calls:t},i=await this.originalProvider.send(`wallet_sendCalls`,[r]),a=i?.id||i;if(!a||typeof a!=`string`)throw Error(`Invalid batch ID received from wallet_sendCalls`);let o=await this.waitForBatchTransactionStatus(a),s=await this.fetchProviders[e].getTransaction(o);if(!s)throw Error(`Transaction not found`);return s}},u=new l,d=()=>new l;exports.default=d,exports.wagmiProviderAdapter=u;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/chains.constants.cjs`),t=require(`../types/eip5792.types.cjs`),n=require(`../error-handling/error-codes.constants.cjs`),r=require(`../error-handling/logger.cjs`),i=require(`../functions/utils/create-provider.cjs`),a=require(`../functions/web3/getContractMetadata.cjs`);let o=require(`ethers`),s=require(`wagmi`),c=require(`wagmi/actions`);var l=class{connector;chainId;originalProvider;fetchProviders={};signer;chainEventListener;config;unsubscribeFns=[];constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{if(e.isSolanaLike(t))return;let{fetchRpcUrl:n}=e.networkRegistry[t];if(!n)throw Error(`No Fetch RPC URL In Provider Adapter`);this.fetchProviders[t]=n.includes(`wss`)?new o.ethers.WebSocketProvider(n):i.createJsonRpcProvider(t)})}initConnector(e){this.connector=e}initConfig(e){this.config=e}async init(e){if(!this.connector)throw Error(`No Connector In Provider Adapter`);if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`);let t=await this.connector.getProvider();this.originalProvider=new o.ethers.BrowserProvider(t);let n=(await this.connector.getAccounts())?.[0];if(!n){this.chainEventListener&&this.chainEventListener.onChainChanged();return}this.signer=await this.walletClientToSigner({transport:t,account:n},this.chainId)}async disconnectFromConnector(){if(!this.config)throw Error(`No Config In Provider Adapter`);this.release(),await(0,c.disconnect)(this.config)}async connectToConnector(e){if(!this.config)throw Error(`No Config In Provider Adapter`);if(e.id===`walletConnect`)try{await(0,c.reconnect)(this.config,{connectors:[e]}),await(0,c.disconnect)(this.config)}catch{}try{return(await(0,c.connect)(this.config,{connector:e})).chainId}catch(t){if(t instanceof s.ConnectorAlreadyConnectedError)return e.getChainId();let r=n.transactionErrorCodes.CONNECTION_FAILED;throw t?.code===4001&&(r=n.UserFriendlyErrorCodes.YOU_CANCELED_REQUEST),Error(r)}}getChainId(){return this.chainId}async waitForTransaction(e,t,r){if((await this.fetchProviders[e]?.waitForTransaction(t,r))?.status)return!0;throw Error(n.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.config)throw Error(`No Config In Provider Adapter`);let t=await(0,c.signMessage)(this.config,{message:e});if(!t)throw Error(n.transactionErrorCodes.SIGNING_FAILED);if(t.includes(`error`))throw Error(n.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return t}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(e){if(!this.config)throw Error(`No Config In Provider Adapter`);return(0,c.switchChain)(this.config,{chainId:e.chainId})}async getAddress(){if(!this.config)throw Error(`No Config In Provider Adapter`);let{address:e}=(0,c.getAccount)(this.config);if(!e)throw Error(`IllegalState`);return o.ethers.getAddress(e)}setChainEventListener(e){if(!this.config)throw Error(`No Config In Provider Adapter`);this.chainEventListener=e,this.chainEventListener&&(this.unsubscribeFns.push((0,c.watchAccount)(this.config,{onChange:({address:e},{address:t})=>{this.chainEventListener&&e!==t&&this.chainEventListener.onAccountChanged()}})),this.unsubscribeFns.push((0,c.watchChainId)(this.config,{onChange:e=>{this.chainEventListener&&this.chainEventListener.onChainChanged(e)}})))}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.unsubscribeFns.forEach(e=>e()),this.unsubscribeFns=[]}getContract(e,t,n=void 0,r){return a.getContract(t,e,n,r)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){let r=this.fetchProviders[e];if(!r)throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,r)}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(e){return await this.connectToConnector(e)}isPermitterAvailable(){if(!this.chainId)throw Error(`Illegal state: no chainId`);return!!e.networkRegistry[this.chainId]?.contractData?.permitterAddress}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}async walletClientToSigner(e,t){let{account:n,transport:r}=e;return new o.ethers.BrowserProvider(r).getSigner(n)}async supportsBatchCall(e){let t=`[WagmiProviderAdapter.supportsBatchCall]`;if(r.Logger.log(`${t} start`,{chainId:e,hasOriginalProvider:!!this.originalProvider,adapterChainId:this.chainId}),!this.originalProvider)return r.Logger.log(`${t} no original provider`),!1;try{r.Logger.log(`${t} resolving user address`);let n=await this.getAddress();r.Logger.log(`${t} user address resolved`,{userAddress:n});let i=`0x${e.toString(16)}`;r.Logger.log(`${t} chain id hex`,{chainIdHex:i}),r.Logger.log(`${t} wallet_getCapabilities start`);let a=await this.originalProvider.send(`wallet_getCapabilities`,[n,[i]]);r.Logger.log(`${t} wallet_getCapabilities success`,{capabilityKeys:a?Object.keys(a):void 0,capabilities:a});let o=a?.[i]||a?.[`0x0`];if(r.Logger.log(`${t} chain capabilities resolved`,{chainCapabilities:o}),!o?.atomic)return r.Logger.log(`${t} atomic capability missing or falsy`),!1;let s=typeof o.atomic==`string`?o.atomic:o.atomic?.status;r.Logger.log(`${t} atomic capability parsed`,{atomicValue:s});let c=s===`supported`||s===`ready`;return r.Logger.log(`${t} complete`,{isSupported:c}),c}catch(e){return r.Logger.log(`${t} error`,{message:e?.message,code:e?.code,shortMessage:e?.shortMessage,data:e?.data,error:e}),!1}}async waitForBatchTransactionStatus(e){if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);for(let n=0;n<60;n+=1){await new Promise(e=>{setTimeout(()=>e(),1e3)});try{let n=await this.originalProvider.send(`wallet_getCallsStatus`,[e]);if(n.status===t.CallsStatus.Confirmed&&n.receipts?.[0]?.transactionHash)return n.receipts[0].transactionHash;if(n.status===t.CallsStatus.OffchainFailure||n.status===t.CallsStatus.ChainFailure||n.status===t.CallsStatus.PartialFailure)break}catch(e){r.Logger.log(`waitForBatchTransactionStatus:`,e)}}throw Error(`Batch transaction timed out or failed`)}async sendBatchCallsTransaction(e,t){if(!this.fetchProviders[e])throw Error(`WagmiProviderAdapter: fetchProvider not initialized`);if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);let n=await this.getAddress(),r={version:`2.0.0`,chainId:`0x${e.toString(16)}`,from:n,atomicRequired:!0,calls:t},i=await this.originalProvider.send(`wallet_sendCalls`,[r]),a=i?.id||i;if(!a||typeof a!=`string`)throw Error(`Invalid batch ID received from wallet_sendCalls`);let o=await this.waitForBatchTransactionStatus(a),s=await this.fetchProviders[e].getTransaction(o);if(!s)throw Error(`Transaction not found`);return s}},u=new l,d=()=>new l;exports.default=d,exports.wagmiProviderAdapter=u;
@@ -143,14 +143,37 @@ var y = class {
143
143
  return new l.BrowserProvider(r).getSigner(n);
144
144
  }
145
145
  async supportsBatchCall(e) {
146
- if (!this.originalProvider) return !1;
146
+ let t = "[WagmiProviderAdapter.supportsBatchCall]";
147
+ if (o.log(`${t} start`, {
148
+ chainId: e,
149
+ hasOriginalProvider: !!this.originalProvider,
150
+ adapterChainId: this.chainId
151
+ }), !this.originalProvider) return o.log(`${t} no original provider`), !1;
147
152
  try {
148
- let t = await this.getAddress(), n = `0x${e.toString(16)}`, r = await this.originalProvider.send("wallet_getCapabilities", [t, [n]]), i = r?.[n] || r?.["0x0"];
149
- if (!i?.atomic) return !1;
150
- let a = typeof i.atomic == "string" ? i.atomic : i.atomic?.status;
151
- return a === "supported" || a === "ready";
152
- } catch {
153
- return !1;
153
+ o.log(`${t} resolving user address`);
154
+ let n = await this.getAddress();
155
+ o.log(`${t} user address resolved`, { userAddress: n });
156
+ let r = `0x${e.toString(16)}`;
157
+ o.log(`${t} chain id hex`, { chainIdHex: r }), o.log(`${t} wallet_getCapabilities start`);
158
+ let i = await this.originalProvider.send("wallet_getCapabilities", [n, [r]]);
159
+ o.log(`${t} wallet_getCapabilities success`, {
160
+ capabilityKeys: i ? Object.keys(i) : void 0,
161
+ capabilities: i
162
+ });
163
+ let a = i?.[r] || i?.["0x0"];
164
+ if (o.log(`${t} chain capabilities resolved`, { chainCapabilities: a }), !a?.atomic) return o.log(`${t} atomic capability missing or falsy`), !1;
165
+ let s = typeof a.atomic == "string" ? a.atomic : a.atomic?.status;
166
+ o.log(`${t} atomic capability parsed`, { atomicValue: s });
167
+ let c = s === "supported" || s === "ready";
168
+ return o.log(`${t} complete`, { isSupported: c }), c;
169
+ } catch (e) {
170
+ return o.log(`${t} error`, {
171
+ message: e?.message,
172
+ code: e?.code,
173
+ shortMessage: e?.shortMessage,
174
+ data: e?.data,
175
+ error: e
176
+ }), !1;
154
177
  }
155
178
  }
156
179
  async waitForBatchTransactionStatus(e) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kapa123456789/sdk",
3
- "version": "0.0.66",
3
+ "version": "0.0.68",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -1 +1 @@
1
- var e=``+(typeof document>`u`?require(`url`).pathToFileURL(__dirname+`/../../../../assets/utxoWorkerLauncher-DCxQ7eXx.js`).href:new URL(`../../../../assets/utxoWorkerLauncher-DCxQ7eXx.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href);exports.default=e;
1
+ var e=``+(typeof document>`u`?require(`url`).pathToFileURL(__dirname+`/../../../../assets/utxoWorkerLauncher-CDD8QoFQ.js`).href:new URL(`../../../../assets/utxoWorkerLauncher-CDD8QoFQ.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href);exports.default=e;
@@ -1,4 +1,4 @@
1
1
  //#region libs/shared/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url
2
- var e = "" + new URL("../../../../assets/utxoWorkerLauncher-DCxQ7eXx.js", import.meta.url).href;
2
+ var e = "" + new URL("../../../../assets/utxoWorkerLauncher-CDD8QoFQ.js", import.meta.url).href;
3
3
  //#endregion
4
4
  export { e as default };
@@ -1 +1 @@
1
- const e=require(`./workerProxy-Cr4zT_SW.js`),t=require(`./logError-DlIdq8zv.js`);let n=require(`worker_threads`),r=require(`buffer`);var i=new Uint8Array(32),a=[`then`],o={},s=new WeakMap;function c(e){return s.get(e)}function l(e,t){s.set(e,t)}function u(e,t){let n=Error(`deferred error during ABI decoding triggered accessing ${e}`);throw n.error=t,n}function d(e,t,n){return e.indexOf(null)>=0?t.map((e,t)=>e instanceof f?d(c(e),e,n):e):e.reduce((e,r,i)=>{let a=t.getValue(r);return r in e||(n&&a instanceof f&&(a=d(c(a),a,n)),e[r]=a),e},{})}var f=class e extends Array{#e;constructor(...e){let n=e[0],r=e[1],i=(e[2]||[]).slice(),s=!0;n!==o&&(r=e,i=[],s=!1),super(r.length),r.forEach((e,t)=>{this[t]=e});let d=i.reduce((e,t)=>(typeof t==`string`&&e.set(t,(e.get(t)||0)+1),e),new Map);if(l(this,Object.freeze(r.map((e,t)=>{let n=i[t];return n!=null&&d.get(n)===1?n:null}))),this.#e=[],this.#e??this.#e,!s)return;Object.freeze(this);let f=new Proxy(this,{get:(e,n,r)=>{if(typeof n==`string`){if(n.match(/^[0-9]+$/)){let r=t.v(n,`%index`);if(r<0||r>=this.length)throw RangeError(`out of result range`);let i=e[r];return i instanceof Error&&u(`index ${r}`,i),i}if(a.indexOf(n)>=0)return Reflect.get(e,n,r);let i=e[n];if(i instanceof Function)return function(...t){return i.apply(this===r?e:this,t)};if(!(n in e))return e.getValue.apply(this===r?e:this,[n])}return Reflect.get(e,n,r)}});return l(f,c(this)),f}toArray(t){let n=[];return this.forEach((r,i)=>{r instanceof Error&&u(`index ${i}`,r),t&&r instanceof e&&(r=r.toArray(t)),n.push(r)}),n}toObject(e){let n=c(this);return n.reduce((r,i,a)=>(t.k(i!=null,`value at index ${a} unnamed`,`UNSUPPORTED_OPERATION`,{operation:`toObject()`}),d(n,this,e)),{})}slice(t,n){t??=0,t<0&&(t+=this.length,t<0&&(t=0)),n??=this.length,n<0&&(n+=this.length,n<0&&(n=0)),n>this.length&&(n=this.length);let r=c(this),i=[],a=[];for(let e=t;e<n;e++)i.push(this[e]),a.push(r[e]);return new e(o,i,a)}filter(t,n){let r=c(this),i=[],a=[];for(let e=0;e<this.length;e++){let o=this[e];o instanceof Error&&u(`index ${e}`,o),t.call(n,o,e,this)&&(i.push(o),a.push(r[e]))}return new e(o,i,a)}map(e,t){let n=[];for(let r=0;r<this.length;r++){let i=this[r];i instanceof Error&&u(`index ${r}`,i),n.push(e.call(t,i,r,this))}return n}getValue(e){let t=c(this).indexOf(e);if(t===-1)return;let n=this[t];return n instanceof Error&&u(`property ${JSON.stringify(e)}`,n.error),n}static fromItems(t,n){return new e(o,t,n)}};function p(e){let n=t.b(e);return t.k(n.length<=32,`value out-of-bounds`,`BUFFER_OVERRUN`,{buffer:n,length:32,offset:n.length}),n.length!==32&&(n=t.D(t.T([i.slice(n.length%32),n]))),n}var m=class{name;type;localName;dynamic;constructor(e,n,r,i){t.F(this,{name:e,type:n,localName:r,dynamic:i},{name:`string`,type:`string`,localName:`string`,dynamic:`boolean`})}_throwError(e,n){t.A(!1,e,this.localName,n)}},h=class{#e;#t;constructor(){this.#e=[],this.#t=0}get data(){return t.T(this.#e)}get length(){return this.#t}#n(e){return this.#e.push(e),this.#t+=e.length,e.length}appendWriter(e){return this.#n(t.D(e.data))}writeBytes(e){let n=t.D(e),r=n.length%32;return r&&(n=t.D(t.T([n,i.slice(r)]))),this.#n(n)}writeValue(e){return this.#n(p(e))}writeUpdatableValue(){let e=this.#e.length;return this.#e.push(i),this.#t+=32,t=>{this.#e[e]=p(t)}}},g=class e{allowLoose;#e;#t;#n;#r;#i;constructor(e,n,r){t.F(this,{allowLoose:!!n}),this.#e=t.D(e),this.#n=0,this.#r=null,this.#i=r??1024,this.#t=0}get data(){return t.O(this.#e)}get dataLength(){return this.#e.length}get consumed(){return this.#t}get bytes(){return new Uint8Array(this.#e)}#a(e){if(this.#r)return this.#r.#a(e);this.#n+=e,t.k(this.#i<1||this.#n<=this.#i*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#i} ( see: https:/\/github.com/ethers-io/ethers.js/issues/4537 )`,`BUFFER_OVERRUN`,{buffer:t.D(this.#e),offset:this.#t,length:e,info:{bytesRead:this.#n,dataLength:this.dataLength}})}#o(e,n,r){let i=Math.ceil(n/32)*32;return this.#t+i>this.#e.length&&(this.allowLoose&&r&&this.#t+n<=this.#e.length?i=n:t.k(!1,`data out-of-bounds`,`BUFFER_OVERRUN`,{buffer:t.D(this.#e),length:this.#e.length,offset:this.#t+i})),this.#e.slice(this.#t,this.#t+i)}subReader(t){let n=new e(this.#e.slice(this.#t+t),this.allowLoose,this.#i);return n.#r=this,n}readBytes(e,t){let n=this.#o(0,e,!!t);return this.#a(e),this.#t+=n.length,n.slice(0,e)}readValue(){return t.S(this.readBytes(32))}readIndex(){return t.C(this.readBytes(32))}},_={};function v(e,t){let n=!1;return t<0&&(n=!0,t*=-1),new x(_,`${n?``:`u`}int${t}`,e,{signed:n,width:t})}function y(e,t){return new x(_,`bytes${t||``}`,e,{size:t})}var b=Symbol.for(`_ethers_typed`),x=class e{type;value;#e;_typedSymbol;constructor(e,n,r,i){i??=null,t.M(_,e,`Typed`),t.F(this,{_typedSymbol:b,type:n,value:r}),this.#e=i,this.format()}format(){if(this.type===`array`||this.type===`dynamicArray`)throw Error(``);return this.type===`tuple`?`tuple(${this.value.map(e=>e.format()).join(`,`)})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith(`bytes`)}isString(){return this.type===`string`}get tupleName(){if(this.type!==`tuple`)throw TypeError(`not a tuple`);return this.#e}get arrayLength(){if(this.type!==`array`)throw TypeError(`not an array`);return this.#e===!0?-1:this.#e===!1?this.value.length:null}static from(t,n){return new e(_,t,n)}static uint8(e){return v(e,8)}static uint16(e){return v(e,16)}static uint24(e){return v(e,24)}static uint32(e){return v(e,32)}static uint40(e){return v(e,40)}static uint48(e){return v(e,48)}static uint56(e){return v(e,56)}static uint64(e){return v(e,64)}static uint72(e){return v(e,72)}static uint80(e){return v(e,80)}static uint88(e){return v(e,88)}static uint96(e){return v(e,96)}static uint104(e){return v(e,104)}static uint112(e){return v(e,112)}static uint120(e){return v(e,120)}static uint128(e){return v(e,128)}static uint136(e){return v(e,136)}static uint144(e){return v(e,144)}static uint152(e){return v(e,152)}static uint160(e){return v(e,160)}static uint168(e){return v(e,168)}static uint176(e){return v(e,176)}static uint184(e){return v(e,184)}static uint192(e){return v(e,192)}static uint200(e){return v(e,200)}static uint208(e){return v(e,208)}static uint216(e){return v(e,216)}static uint224(e){return v(e,224)}static uint232(e){return v(e,232)}static uint240(e){return v(e,240)}static uint248(e){return v(e,248)}static uint256(e){return v(e,256)}static uint(e){return v(e,256)}static int8(e){return v(e,-8)}static int16(e){return v(e,-16)}static int24(e){return v(e,-24)}static int32(e){return v(e,-32)}static int40(e){return v(e,-40)}static int48(e){return v(e,-48)}static int56(e){return v(e,-56)}static int64(e){return v(e,-64)}static int72(e){return v(e,-72)}static int80(e){return v(e,-80)}static int88(e){return v(e,-88)}static int96(e){return v(e,-96)}static int104(e){return v(e,-104)}static int112(e){return v(e,-112)}static int120(e){return v(e,-120)}static int128(e){return v(e,-128)}static int136(e){return v(e,-136)}static int144(e){return v(e,-144)}static int152(e){return v(e,-152)}static int160(e){return v(e,-160)}static int168(e){return v(e,-168)}static int176(e){return v(e,-176)}static int184(e){return v(e,-184)}static int192(e){return v(e,-192)}static int200(e){return v(e,-200)}static int208(e){return v(e,-208)}static int216(e){return v(e,-216)}static int224(e){return v(e,-224)}static int232(e){return v(e,-232)}static int240(e){return v(e,-240)}static int248(e){return v(e,-248)}static int256(e){return v(e,-256)}static int(e){return v(e,-256)}static bytes1(e){return y(e,1)}static bytes2(e){return y(e,2)}static bytes3(e){return y(e,3)}static bytes4(e){return y(e,4)}static bytes5(e){return y(e,5)}static bytes6(e){return y(e,6)}static bytes7(e){return y(e,7)}static bytes8(e){return y(e,8)}static bytes9(e){return y(e,9)}static bytes10(e){return y(e,10)}static bytes11(e){return y(e,11)}static bytes12(e){return y(e,12)}static bytes13(e){return y(e,13)}static bytes14(e){return y(e,14)}static bytes15(e){return y(e,15)}static bytes16(e){return y(e,16)}static bytes17(e){return y(e,17)}static bytes18(e){return y(e,18)}static bytes19(e){return y(e,19)}static bytes20(e){return y(e,20)}static bytes21(e){return y(e,21)}static bytes22(e){return y(e,22)}static bytes23(e){return y(e,23)}static bytes24(e){return y(e,24)}static bytes25(e){return y(e,25)}static bytes26(e){return y(e,26)}static bytes27(e){return y(e,27)}static bytes28(e){return y(e,28)}static bytes29(e){return y(e,29)}static bytes30(e){return y(e,30)}static bytes31(e){return y(e,31)}static bytes32(e){return y(e,32)}static address(t){return new e(_,`address`,t)}static bool(t){return new e(_,`bool`,!!t)}static bytes(t){return new e(_,`bytes`,t)}static string(t){return new e(_,`string`,t)}static array(e,t){throw Error(`not implemented yet`)}static tuple(e,t){throw Error(`not implemented yet`)}static overrides(t){return new e(_,`overrides`,Object.assign({},t))}static isTyped(e){return e&&typeof e==`object`&&`_typedSymbol`in e&&e._typedSymbol===b}static dereference(t,n){if(e.isTyped(t)){if(t.type!==n)throw Error(`invalid type: expecetd ${n}, got ${t.type}`);return t.value}return t}},ee=class extends m{constructor(e){super(`address`,`address`,e,!1)}defaultValue(){return`0x0000000000000000000000000000000000000000`}encode(e,n){let r=x.dereference(n,`string`);try{r=t.p(r)}catch(e){return this._throwError(e.message,n)}return e.writeValue(r)}decode(e){return t.p(t.x(e.readValue(),20))}},te=class extends m{coder;constructor(e){super(e.name,e.type,`_`,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};function S(e,n,r){let i=[];if(Array.isArray(r))i=r;else if(r&&typeof r==`object`){let e={};i=n.map(n=>{let i=n.localName;return t.k(i,`cannot encode object for signature with missing names`,`INVALID_ARGUMENT`,{argument:`values`,info:{coder:n},value:r}),t.k(!e[i],`cannot encode object for signature with duplicate names`,`INVALID_ARGUMENT`,{argument:`values`,info:{coder:n},value:r}),e[i]=!0,r[i]})}else t.A(!1,`invalid tuple value`,`tuple`,r);t.A(n.length===i.length,`types/value length mismatch`,`tuple`,r);let a=new h,o=new h,s=[];n.forEach((e,t)=>{let n=i[t];if(e.dynamic){let t=o.length;e.encode(o,n);let r=a.writeUpdatableValue();s.push(e=>{r(e+t)})}else e.encode(a,n)}),s.forEach(e=>{e(a.length)});let c=e.appendWriter(a);return c+=e.appendWriter(o),c}function C(e,n){let r=[],i=[],a=e.subReader(0);return n.forEach(n=>{let o=null;if(n.dynamic){let r=e.readIndex(),i=a.subReader(r);try{o=n.decode(i)}catch(e){if(t.N(e,`BUFFER_OVERRUN`))throw e;o=e,o.baseType=n.name,o.name=n.localName,o.type=n.type}}else try{o=n.decode(e)}catch(e){if(t.N(e,`BUFFER_OVERRUN`))throw e;o=e,o.baseType=n.name,o.name=n.localName,o.type=n.type}if(o==null)throw Error(`investigate`);r.push(o),i.push(n.localName||null)}),f.fromItems(r,i)}var ne=class extends m{coder;length;constructor(e,n,r){let i=e.type+`[`+(n>=0?n:``)+`]`,a=n===-1||e.dynamic;super(`array`,i,r,a),t.F(this,{coder:e,length:n})}defaultValue(){let e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,n){let r=x.dereference(n,`array`);Array.isArray(r)||this._throwError(`expected array value`,r);let i=this.length;i===-1&&(i=r.length,e.writeValue(r.length)),t.j(r.length,i,`coder array`+(this.localName?` `+this.localName:``));let a=[];for(let e=0;e<r.length;e++)a.push(this.coder);return S(e,a,r)}decode(e){let n=this.length;n===-1&&(n=e.readIndex(),t.k(n*32<=e.dataLength,`insufficient data length`,`BUFFER_OVERRUN`,{buffer:e.bytes,offset:n*32,length:e.dataLength}));let r=[];for(let e=0;e<n;e++)r.push(new te(this.coder));return C(e,r)}},re=class extends m{constructor(e){super(`bool`,`bool`,e,!1)}defaultValue(){return!1}encode(e,t){let n=x.dereference(t,`bool`);return e.writeValue(+!!n)}decode(e){return!!e.readValue()}},w=class extends m{constructor(e,t){super(e,e,t,!0)}defaultValue(){return`0x`}encode(e,n){n=t.D(n);let r=e.writeValue(n.length);return r+=e.writeBytes(n),r}decode(e){return e.readBytes(e.readIndex(),!0)}},ie=class extends w{constructor(e){super(`bytes`,e)}decode(e){return t.O(super.decode(e))}},T=class extends m{size;constructor(e,n){let r=`bytes`+String(e);super(r,r,n,!1),t.F(this,{size:e},{size:`number`})}defaultValue(){return`0x0000000000000000000000000000000000000000000000000000000000000000`.substring(0,2+this.size*2)}encode(e,n){let r=t.D(x.dereference(n,this.type));return r.length!==this.size&&this._throwError(`incorrect data length`,n),e.writeBytes(r)}decode(e){return t.O(e.readBytes(this.size))}},E=new Uint8Array([]),D=class extends m{constructor(e){super(`null`,``,e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError(`not null`,t),e.writeBytes(E)}decode(e){return e.readBytes(0),null}},ae=BigInt(0),oe=BigInt(1),se=BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`),ce=class extends m{size;signed;constructor(e,n,r){let i=(n?`int`:`uint`)+e*8;super(i,i,r,!1),t.F(this,{size:e,signed:n},{size:`number`,signed:`boolean`})}defaultValue(){return 0}encode(e,n){let r=t._(x.dereference(n,this.type)),i=t.y(se,256);if(this.signed){let e=t.y(i,this.size*8-1);(r>e||r<-(e+oe))&&this._throwError(`value out-of-bounds`,n),r=t.w(r,256)}else (r<ae||r>t.y(i,this.size*8))&&this._throwError(`value out-of-bounds`,n);return e.writeValue(r)}decode(e){let n=t.y(e.readValue(),this.size*8);return this.signed&&(n=t.g(n,this.size*8)),n}},le=class extends w{constructor(e){super(`string`,e)}defaultValue(){return``}encode(e,n){return super.encode(e,t.m(x.dereference(n,`string`)))}decode(e){return t.h(super.decode(e))}},O=class extends m{coders;constructor(e,n){let r=!1,i=[];e.forEach(e=>{e.dynamic&&(r=!0),i.push(e.type)});let a=`tuple(`+i.join(`,`)+`)`;super(`tuple`,a,n,r),t.F(this,{coders:Object.freeze(e.slice())})}defaultValue(){let e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});let t=this.coders.reduce((e,t)=>{let n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});return this.coders.forEach((n,r)=>{let i=n.localName;!i||t[i]!==1||(i===`length`&&(i=`_length`),e[i]??(e[i]=e[r]))}),Object.freeze(e)}encode(e,t){let n=x.dereference(t,`tuple`);return S(e,this.coders,n)}decode(e){return C(e,this.coders)}};function k(e){let t=new Set;return e.forEach(e=>t.add(e)),Object.freeze(t)}k(`external public payable override`.split(` `));var A=`constant external internal payable private public pure view override`;k(A.split(` `));var j=`constructor error event fallback function receive struct`;k(j.split(` `));var M=`calldata memory storage payable indexed`,ue=k(M.split(` `)),de=k([j,M,`tuple returns`,A].join(` `).split(` `)),fe={"(":`OPEN_PAREN`,")":`CLOSE_PAREN`,"[":`OPEN_BRACKET`,"]":`CLOSE_BRACKET`,",":`COMMA`,"@":`AT`},pe=RegExp(`^(\\s*)`),me=RegExp(`^([0-9]+)`),N=RegExp(`^([a-zA-Z$_][a-zA-Z0-9$_]*)`),P=RegExp(`^([a-zA-Z$_][a-zA-Z0-9$_]*)$`),F=RegExp(`^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$`),I=class e{#e;#t;get offset(){return this.#e}get length(){return this.#t.length-this.#e}constructor(e){this.#e=0,this.#t=e.slice()}clone(){return new e(this.#t)}reset(){this.#e=0}#n(t=0,n=0){return new e(this.#t.slice(t,n).map(e=>Object.freeze(Object.assign({},e,{match:e.match-t,linkBack:e.linkBack-t,linkNext:e.linkNext-t}))))}popKeyword(e){let t=this.peek();if(t.type!==`KEYWORD`||!e.has(t.text))throw Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e){let t=this.peek();throw Error(`expected ${e}; got ${t.type} ${JSON.stringify(t.text)}`)}return this.pop().text}popParen(){let e=this.peek();if(e.type!==`OPEN_PAREN`)throw Error(`bad start`);let t=this.#n(this.#e+1,e.match+1);return this.#e=e.match+1,t}popParams(){let e=this.peek();if(e.type!==`OPEN_PAREN`)throw Error(`bad start`);let t=[];for(;this.#e<e.match-1;){let e=this.peek().linkNext;t.push(this.#n(this.#e+1,e)),this.#e=e}return this.#e=e.match+1,t}peek(){if(this.#e>=this.#t.length)throw Error(`out-of-bounds`);return this.#t[this.#e]}peekKeyword(e){let t=this.peekType(`KEYWORD`);return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;let t=this.peek();return t.type===e?t.text:null}pop(){let e=this.peek();return this.#e++,e}toString(){let e=[];for(let t=this.#e;t<this.#t.length;t++){let n=this.#t[t];e.push(`${n.type}:${n.text}`)}return`<TokenString ${e.join(` `)}>`}};function L(e){let n=[],r=t=>{let n=o<e.length?JSON.stringify(e[o]):`$EOI`;throw Error(`invalid token ${n} at ${o}: ${t}`)},i=[],a=[],o=0;for(;o<e.length;){let s=e.substring(o),c=s.match(pe);c&&(o+=c[1].length,s=e.substring(o));let l={depth:i.length,linkBack:-1,linkNext:-1,match:-1,type:``,text:``,offset:o,value:-1};n.push(l);let u=fe[s[0]]||``;if(u){if(l.type=u,l.text=s[0],o++,u===`OPEN_PAREN`)i.push(n.length-1),a.push(n.length-1);else if(u==`CLOSE_PAREN`)i.length===0&&r(`no matching open bracket`),l.match=i.pop(),n[l.match].match=n.length-1,l.depth--,l.linkBack=a.pop(),n[l.linkBack].linkNext=n.length-1;else if(u===`COMMA`)l.linkBack=a.pop(),n[l.linkBack].linkNext=n.length-1,a.push(n.length-1);else if(u===`OPEN_BRACKET`)l.type=`BRACKET`;else if(u===`CLOSE_BRACKET`){let e=n.pop().text;if(n.length>0&&n[n.length-1].type===`NUMBER`){let r=n.pop().text;e=r+e,n[n.length-1].value=t.v(r)}if(n.length===0||n[n.length-1].type!==`BRACKET`)throw Error(`missing opening bracket`);n[n.length-1].text+=e}continue}if(c=s.match(N),c){if(l.text=c[1],o+=l.text.length,de.has(l.text)){l.type=`KEYWORD`;continue}if(l.text.match(F)){l.type=`TYPE`;continue}l.type=`ID`;continue}if(c=s.match(me),c){l.text=c[1],l.type=`NUMBER`,o+=l.text.length;continue}throw Error(`unexpected token ${JSON.stringify(s[0])} at position ${o}`)}return new I(n.map(e=>Object.freeze(e)))}function R(e,t){let n=new Set;for(;;){let r=e.peekType(`KEYWORD`);if(r==null||t&&!t.has(r))break;if(e.pop(),n.has(r))throw Error(`duplicate keywords: ${JSON.stringify(r)}`);n.add(r)}return Object.freeze(n)}var z=new RegExp(/^(.*)\[([0-9]*)\]$/);function B(e){let n=e.match(F);if(t.A(n,`invalid type`,`type`,e),e===`uint`)return`uint256`;if(e===`int`)return`int256`;if(n[2]){let r=parseInt(n[2]);t.A(r!==0&&r<=32,`invalid bytes length`,`type`,e)}else if(n[3]){let r=parseInt(n[3]);t.A(r!==0&&r<=256&&r%8==0,`invalid numeric width`,`type`,e)}return e}var V={},H=Symbol.for(`_ethers_internal`),U=`_ParamTypeInternal`,W=class e{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(e,n,r,i,a,o,s,c){if(t.M(e,V,`ParamType`),Object.defineProperty(this,H,{value:U}),o&&=Object.freeze(o.slice()),i===`array`){if(s==null||c==null)throw Error(``)}else if(s!=null||c!=null)throw Error(``);if(i===`tuple`){if(o==null)throw Error(``)}else if(o!=null)throw Error(``);t.F(this,{name:n,type:r,baseType:i,indexed:a,components:o,arrayLength:s,arrayChildren:c})}format(e){if(e??=`sighash`,e===`json`){let t=this.name||``;if(this.isArray()){let e=JSON.parse(this.arrayChildren.format(`json`));return e.name=t,e.type+=`[${this.arrayLength<0?``:String(this.arrayLength)}]`,JSON.stringify(e)}let n={type:this.baseType===`tuple`?`tuple`:this.type,name:t};return typeof this.indexed==`boolean`&&(n.indexed=this.indexed),this.isTuple()&&(n.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(n)}let t=``;return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?``:String(this.arrayLength)}]`):this.isTuple()?t+=`(`+this.components.map(t=>t.format(e)).join(e===`full`?`, `:`,`)+`)`:t+=this.type,e!==`sighash`&&(this.indexed===!0&&(t+=` indexed`),e===`full`&&this.name&&(t+=` `+this.name)),t}isArray(){return this.baseType===`array`}isTuple(){return this.baseType===`tuple`}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw Error(`invalid array value`);if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw Error(`array is wrong length`);let n=this;return e.map(e=>n.arrayChildren.walk(e,t))}if(this.isTuple()){if(!Array.isArray(e))throw Error(`invalid tuple value`);if(e.length!==this.components.length)throw Error(`array is wrong length`);let n=this;return e.map((e,r)=>n.components[r].walk(e,t))}return t(this.type,e)}#e(e,t,n,r){if(this.isArray()){if(!Array.isArray(t))throw Error(`invalid array value`);if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw Error(`array is wrong length`);let i=this.arrayChildren,a=t.slice();a.forEach((t,r)=>{i.#e(e,t,n,e=>{a[r]=e})}),r(a);return}if(this.isTuple()){let i=this.components,a;if(Array.isArray(t))a=t.slice();else{if(typeof t!=`object`||!t)throw Error(`invalid tuple value`);a=i.map(e=>{if(!e.name)throw Error(`cannot use object value with unnamed components`);if(!(e.name in t))throw Error(`missing value for component ${e.name}`);return t[e.name]})}if(a.length!==this.components.length)throw Error(`array is wrong length`);a.forEach((t,r)=>{i[r].#e(e,t,n,e=>{a[r]=e})}),r(a);return}let i=n(this.type,t);i.then?e.push((async function(){r(await i)})()):r(i)}async walkAsync(e,t){let n=[],r=[e];return this.#e(n,e,t,e=>{r[0]=e}),n.length&&await Promise.all(n),r[0]}static from(n,r){if(e.isParamType(n))return n;if(typeof n==`string`)try{return e.from(L(n),r)}catch{t.A(!1,`invalid param type`,`obj`,n)}else if(n instanceof I){let t=``,i=``,a=null;R(n,k([`tuple`])).has(`tuple`)||n.peekType(`OPEN_PAREN`)?(i=`tuple`,a=n.popParams().map(t=>e.from(t)),t=`tuple(${a.map(e=>e.format()).join(`,`)})`):(t=B(n.popType(`TYPE`)),i=t);let o=null,s=null;for(;n.length&&n.peekType(`BRACKET`);){let r=n.pop();o=new e(V,``,t,i,null,a,s,o),s=r.value,t+=r.text,i=`array`,a=null}let c=null;if(R(n,ue).has(`indexed`)){if(!r)throw Error(``);c=!0}let l=n.peekType(`ID`)?n.pop().text:``;if(n.length)throw Error(`leftover tokens`);return new e(V,l,t,i,c,a,s,o)}let i=n.name;t.A(!i||typeof i==`string`&&i.match(P),`invalid name`,`obj.name`,i);let a=n.indexed;a!=null&&(t.A(r,`parameter cannot be indexed`,`obj.indexed`,n.indexed),a=!!a);let o=n.type,s=o.match(z);if(s){let t=parseInt(s[2]||`-1`),r=e.from({type:s[1],components:n.components});return new e(V,i||``,o,`array`,a,null,t,r)}if(o===`tuple`||o.startsWith(`tuple(`)||o.startsWith(`(`)){let t=n.components==null?null:n.components.map(t=>e.from(t));return new e(V,i||``,o,`tuple`,a,t,null,null)}return o=B(n.type),new e(V,i||``,o,o,a,null,null,null)}static isParamType(e){return e&&e[H]===U}},G=new Map;G.set(0,`GENERIC_PANIC`),G.set(1,`ASSERT_FALSE`),G.set(17,`OVERFLOW`),G.set(18,`DIVIDE_BY_ZERO`),G.set(33,`ENUM_RANGE_ERROR`),G.set(34,`BAD_STORAGE_DATA`),G.set(49,`STACK_UNDERFLOW`),G.set(50,`ARRAY_RANGE_ERROR`),G.set(65,`OUT_OF_MEMORY`),G.set(81,`UNINITIALIZED_FUNCTION_CALL`);var he=new RegExp(/^bytes([0-9]*)$/),ge=new RegExp(/^(u?int)([0-9]*)$/),K=null,q=1024;function _e(e,n,r,i){let a=`missing revert data`,o=null,s=null;if(r){a=`execution reverted`;let e=t.E(r);if(r=t.O(r),e.length===0)a+=` (no data present; likely require(false) occurred`,o=`require(false)`;else if(e.length%32!=4)a+=` (could not decode reason; invalid data length)`;else if(t.O(e.slice(0,4))===`0x08c379a0`)try{o=i.decode([`string`],e.slice(4))[0],s={signature:`Error(string)`,name:`Error`,args:[o]},a+=`: ${JSON.stringify(o)}`}catch{a+=` (could not decode reason; invalid string data)`}else if(t.O(e.slice(0,4))===`0x4e487b71`)try{let t=Number(i.decode([`uint256`],e.slice(4))[0]);s={signature:`Panic(uint256)`,name:`Panic`,args:[t]},o=`Panic due to ${G.get(t)||`UNKNOWN`}(${t})`,a+=`: ${o}`}catch{a+=` (could not decode panic code)`}else a+=` (unknown custom error)`}let c={to:n.to?t.p(n.to):null,data:n.data||`0x`};return n.from&&(c.from=t.p(n.from)),t.P(a,`CALL_EXCEPTION`,{action:e,data:r,reason:o,transaction:c,invocation:null,revert:s})}var J=class e{#e(e){if(e.isArray())return new ne(this.#e(e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new O(e.components.map(e=>this.#e(e)),e.name);switch(e.baseType){case`address`:return new ee(e.name);case`bool`:return new re(e.name);case`string`:return new le(e.name);case`bytes`:return new ie(e.name);case``:return new D(e.name)}let n=e.type.match(ge);if(n){let r=parseInt(n[2]||`256`);return t.A(r!==0&&r<=256&&r%8==0,`invalid `+n[1]+` bit length`,`param`,e),new ce(r/8,n[1]===`int`,e.name)}if(n=e.type.match(he),n){let r=parseInt(n[1]);return t.A(r!==0&&r<=32,`invalid bytes length`,`param`,e),new T(r,e.name)}t.A(!1,`invalid type`,`type`,e.type)}getDefaultValue(e){return new O(e.map(e=>this.#e(W.from(e))),`_`).defaultValue()}encode(e,n){t.j(n.length,e.length,`types/values length mismatch`);let r=new O(e.map(e=>this.#e(W.from(e))),`_`),i=new h;return r.encode(i,n),i.data}decode(e,t,n){return new O(e.map(e=>this.#e(W.from(e))),`_`).decode(new g(t,n,q))}static _setDefaultMaxInflation(e){t.A(typeof e==`number`&&Number.isInteger(e),`invalid defaultMaxInflation factor`,`value`,e),q=e}static defaultAbiCoder(){return K??=new e,K}static getBuiltinCallException(t,n,r){return _e(t,n,r,e.defaultAbiCoder())}},ve=e.S(e._()),ye=`solana-on-chain-utxo:`,be=8,xe=e=>e.startsWith(ye),Y=e=>{if(!xe(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=J.defaultAbiCoder().decode([`bytes32[8]`],e.slice(21)),r=n;if(!Array.isArray(r)||r.length!==be)throw Error(`Malformed encoded Solana UTXO payload`);let[i,a,o,s,c,l,u,d]=r,f=BigInt(i),p=BigInt(s),m=t.x(BigInt(c)),h=BigInt(l),g=BigInt(u),_=BigInt(d).toString(),v=Array.from(t.E(a)),y=Array.from(t.E(o)),b=new t.l(Uint8Array.from([...v.slice(16),...y.slice(16)])).toBase58();return{amount:f,erc20TokenAddress:t.f(BigInt(a),BigInt(o)),mintAddress:b,randomization:p,stealthAddress:m,H0:h,H1:g,timeStamp:_}},X=e=>{let n=J.defaultAbiCoder().decode([`uint256`,`address`,`tuple(uint256, uint256, uint256, uint256)`,`uint256`,`uint256`],e);return{amount:BigInt(n[0]),erc20TokenAddress:n[1],randomization:BigInt(n[2][0]),stealthAddress:t.x(BigInt(n[2][1])),H0:BigInt(n[2][2]),H1:BigInt(n[2][3]),timeStamp:BigInt(n[3]).toString(),tokenId:Number(n[4])}},Se=(t,n,r)=>{if(e.r(r)){let{amount:e,erc20TokenAddress:r,mintAddress:i,randomization:a,stealthAddress:o,timeStamp:s}=Y(t);return{amount:e,erc20TokenAddress:r,mintAddress:i,timeStamp:s,tokenId:0,randomization:a,shieldedPrivateKey:n,stealthAddress:o}}let{amount:i,erc20TokenAddress:a,timeStamp:o,tokenId:s,randomization:c,stealthAddress:l}=X(t);return{amount:i,erc20TokenAddress:a,timeStamp:o,tokenId:s,randomization:c,shieldedPrivateKey:n,stealthAddress:l}},Z=(n,r,i)=>{let{randomization:a,H0:o,H1:s}=e.r(i)?Y(n):X(n),c=t.a.checkSignature(a,o,s,r);if(!c)throw Error(`UTXO doesn't belong to user`);return c},Ce=class{static log(...t){e.a&&console.log(...t)}static logObject(t){e.a&&console.dir(t,{depth:null,colors:!0})}static error(...e){t.t(e)}},Q=function(e){return e[e.BATCH_FILTER_UTXOS_WITH_NULLIFIER=0]=`BATCH_FILTER_UTXOS_WITH_NULLIFIER`,e[e.BUILD_UTXOS=1]=`BUILD_UTXOS`,e[e.DECIPHER_OUTPUTS=2]=`DECIPHER_OUTPUTS`,e}({}),$=new e.t,we=async({data:e})=>{let{utxos:n,nullifiers:r}=e,i=n.filter(e=>{let n=new t.i(e);return!r.has(n.getNullifier())});$.postMessageToMainThread({utxoConstructors:i,stealthPairCache:t.s.serialize(),stealthAddressCache:t.o.serialize()})},Te=async({data:e})=>{let n=new t.a(e.signature),r=n.getShieldedPrivateKey(),i=e.encryptedOutputs.map(i=>{try{let a=i.isPositive?t.r(Buffer.from(i.value.slice(2),`hex`),n):Se(i.value,r,e.chainId);return a.isBlocked=i.isBlocked,a}catch{return}}).filter(e=>e!==void 0&&e.amount!==0n);$.postMessageToMainThread(i)},Ee=async({data:e})=>{let n=new t.a(e.signature),r=[],{encryptedOutputs:i}=e,{lastOutput:a}=e,o=n.getShieldedPrivateKey();for(let s=0;s<i.length;s+=1){let c=i[s];if(a=c.value,c.isPositive)try{let e=t.n(Buffer.from(a.slice(2),`hex`),n);if(e.isBlocked=c.isBlocked,!e.erc20TokenAddress||!e.amount||!e.stealthAddress)throw Error(`bruh`);r.push(c)}catch{}else try{Z(a,o,e.chainId)&&r.push(c)}catch{}}$.postMessageToMainThread({additionalEncryptedOutputs:r,lastOutput:a})},De=async e=>{try{await t.u();let{type:n}=e.payload;switch(n){case Q.BATCH_FILTER_UTXOS_WITH_NULLIFIER:await we(e.payload);return;case Q.BUILD_UTXOS:await Te(e.payload);return;case Q.DECIPHER_OUTPUTS:await Ee(e.payload);return;default:throw Error(`Unknown worker message type ${n}`)}}catch(e){Ce.error(`utxo worker message failed`,e),$.postErrorToMainThread(e)}};globalThis.process=ve.default,globalThis.Buffer=r.Buffer,n.parentPort.on(`message`,async e=>{await De(e)});
1
+ const e=require(`./workerProxy-Cr4zT_SW.js`),t=require(`./logError-DlIdq8zv.js`);let n=require(`worker_threads`),r=require(`buffer`);var i=new Uint8Array(32),a=[`then`],o={},s=new WeakMap;function c(e){return s.get(e)}function l(e,t){s.set(e,t)}function u(e,t){let n=Error(`deferred error during ABI decoding triggered accessing ${e}`);throw n.error=t,n}function d(e,t,n){return e.indexOf(null)>=0?t.map((e,t)=>e instanceof f?d(c(e),e,n):e):e.reduce((e,r,i)=>{let a=t.getValue(r);return r in e||(n&&a instanceof f&&(a=d(c(a),a,n)),e[r]=a),e},{})}var f=class e extends Array{#e;constructor(...e){let n=e[0],r=e[1],i=(e[2]||[]).slice(),s=!0;n!==o&&(r=e,i=[],s=!1),super(r.length),r.forEach((e,t)=>{this[t]=e});let d=i.reduce((e,t)=>(typeof t==`string`&&e.set(t,(e.get(t)||0)+1),e),new Map);if(l(this,Object.freeze(r.map((e,t)=>{let n=i[t];return n!=null&&d.get(n)===1?n:null}))),this.#e=[],this.#e??this.#e,!s)return;Object.freeze(this);let f=new Proxy(this,{get:(e,n,r)=>{if(typeof n==`string`){if(n.match(/^[0-9]+$/)){let r=t.v(n,`%index`);if(r<0||r>=this.length)throw RangeError(`out of result range`);let i=e[r];return i instanceof Error&&u(`index ${r}`,i),i}if(a.indexOf(n)>=0)return Reflect.get(e,n,r);let i=e[n];if(i instanceof Function)return function(...t){return i.apply(this===r?e:this,t)};if(!(n in e))return e.getValue.apply(this===r?e:this,[n])}return Reflect.get(e,n,r)}});return l(f,c(this)),f}toArray(t){let n=[];return this.forEach((r,i)=>{r instanceof Error&&u(`index ${i}`,r),t&&r instanceof e&&(r=r.toArray(t)),n.push(r)}),n}toObject(e){let n=c(this);return n.reduce((r,i,a)=>(t.k(i!=null,`value at index ${a} unnamed`,`UNSUPPORTED_OPERATION`,{operation:`toObject()`}),d(n,this,e)),{})}slice(t,n){t??=0,t<0&&(t+=this.length,t<0&&(t=0)),n??=this.length,n<0&&(n+=this.length,n<0&&(n=0)),n>this.length&&(n=this.length);let r=c(this),i=[],a=[];for(let e=t;e<n;e++)i.push(this[e]),a.push(r[e]);return new e(o,i,a)}filter(t,n){let r=c(this),i=[],a=[];for(let e=0;e<this.length;e++){let o=this[e];o instanceof Error&&u(`index ${e}`,o),t.call(n,o,e,this)&&(i.push(o),a.push(r[e]))}return new e(o,i,a)}map(e,t){let n=[];for(let r=0;r<this.length;r++){let i=this[r];i instanceof Error&&u(`index ${r}`,i),n.push(e.call(t,i,r,this))}return n}getValue(e){let t=c(this).indexOf(e);if(t===-1)return;let n=this[t];return n instanceof Error&&u(`property ${JSON.stringify(e)}`,n.error),n}static fromItems(t,n){return new e(o,t,n)}};function p(e){let n=t.b(e);return t.k(n.length<=32,`value out-of-bounds`,`BUFFER_OVERRUN`,{buffer:n,length:32,offset:n.length}),n.length!==32&&(n=t.D(t.T([i.slice(n.length%32),n]))),n}var m=class{name;type;localName;dynamic;constructor(e,n,r,i){t.F(this,{name:e,type:n,localName:r,dynamic:i},{name:`string`,type:`string`,localName:`string`,dynamic:`boolean`})}_throwError(e,n){t.A(!1,e,this.localName,n)}},h=class{#e;#t;constructor(){this.#e=[],this.#t=0}get data(){return t.T(this.#e)}get length(){return this.#t}#n(e){return this.#e.push(e),this.#t+=e.length,e.length}appendWriter(e){return this.#n(t.D(e.data))}writeBytes(e){let n=t.D(e),r=n.length%32;return r&&(n=t.D(t.T([n,i.slice(r)]))),this.#n(n)}writeValue(e){return this.#n(p(e))}writeUpdatableValue(){let e=this.#e.length;return this.#e.push(i),this.#t+=32,t=>{this.#e[e]=p(t)}}},g=class e{allowLoose;#e;#t;#n;#r;#i;constructor(e,n,r){t.F(this,{allowLoose:!!n}),this.#e=t.D(e),this.#n=0,this.#r=null,this.#i=r??1024,this.#t=0}get data(){return t.O(this.#e)}get dataLength(){return this.#e.length}get consumed(){return this.#t}get bytes(){return new Uint8Array(this.#e)}#a(e){if(this.#r)return this.#r.#a(e);this.#n+=e,t.k(this.#i<1||this.#n<=this.#i*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#i} ( see: https:/\/github.com/ethers-io/ethers.js/issues/4537 )`,`BUFFER_OVERRUN`,{buffer:t.D(this.#e),offset:this.#t,length:e,info:{bytesRead:this.#n,dataLength:this.dataLength}})}#o(e,n,r){let i=Math.ceil(n/32)*32;return this.#t+i>this.#e.length&&(this.allowLoose&&r&&this.#t+n<=this.#e.length?i=n:t.k(!1,`data out-of-bounds`,`BUFFER_OVERRUN`,{buffer:t.D(this.#e),length:this.#e.length,offset:this.#t+i})),this.#e.slice(this.#t,this.#t+i)}subReader(t){let n=new e(this.#e.slice(this.#t+t),this.allowLoose,this.#i);return n.#r=this,n}readBytes(e,t){let n=this.#o(0,e,!!t);return this.#a(e),this.#t+=n.length,n.slice(0,e)}readValue(){return t.S(this.readBytes(32))}readIndex(){return t.C(this.readBytes(32))}},_={};function v(e,t){let n=!1;return t<0&&(n=!0,t*=-1),new x(_,`${n?``:`u`}int${t}`,e,{signed:n,width:t})}function y(e,t){return new x(_,`bytes${t||``}`,e,{size:t})}var b=Symbol.for(`_ethers_typed`),x=class e{type;value;#e;_typedSymbol;constructor(e,n,r,i){i??=null,t.M(_,e,`Typed`),t.F(this,{_typedSymbol:b,type:n,value:r}),this.#e=i,this.format()}format(){if(this.type===`array`||this.type===`dynamicArray`)throw Error(``);return this.type===`tuple`?`tuple(${this.value.map(e=>e.format()).join(`,`)})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith(`bytes`)}isString(){return this.type===`string`}get tupleName(){if(this.type!==`tuple`)throw TypeError(`not a tuple`);return this.#e}get arrayLength(){if(this.type!==`array`)throw TypeError(`not an array`);return this.#e===!0?-1:this.#e===!1?this.value.length:null}static from(t,n){return new e(_,t,n)}static uint8(e){return v(e,8)}static uint16(e){return v(e,16)}static uint24(e){return v(e,24)}static uint32(e){return v(e,32)}static uint40(e){return v(e,40)}static uint48(e){return v(e,48)}static uint56(e){return v(e,56)}static uint64(e){return v(e,64)}static uint72(e){return v(e,72)}static uint80(e){return v(e,80)}static uint88(e){return v(e,88)}static uint96(e){return v(e,96)}static uint104(e){return v(e,104)}static uint112(e){return v(e,112)}static uint120(e){return v(e,120)}static uint128(e){return v(e,128)}static uint136(e){return v(e,136)}static uint144(e){return v(e,144)}static uint152(e){return v(e,152)}static uint160(e){return v(e,160)}static uint168(e){return v(e,168)}static uint176(e){return v(e,176)}static uint184(e){return v(e,184)}static uint192(e){return v(e,192)}static uint200(e){return v(e,200)}static uint208(e){return v(e,208)}static uint216(e){return v(e,216)}static uint224(e){return v(e,224)}static uint232(e){return v(e,232)}static uint240(e){return v(e,240)}static uint248(e){return v(e,248)}static uint256(e){return v(e,256)}static uint(e){return v(e,256)}static int8(e){return v(e,-8)}static int16(e){return v(e,-16)}static int24(e){return v(e,-24)}static int32(e){return v(e,-32)}static int40(e){return v(e,-40)}static int48(e){return v(e,-48)}static int56(e){return v(e,-56)}static int64(e){return v(e,-64)}static int72(e){return v(e,-72)}static int80(e){return v(e,-80)}static int88(e){return v(e,-88)}static int96(e){return v(e,-96)}static int104(e){return v(e,-104)}static int112(e){return v(e,-112)}static int120(e){return v(e,-120)}static int128(e){return v(e,-128)}static int136(e){return v(e,-136)}static int144(e){return v(e,-144)}static int152(e){return v(e,-152)}static int160(e){return v(e,-160)}static int168(e){return v(e,-168)}static int176(e){return v(e,-176)}static int184(e){return v(e,-184)}static int192(e){return v(e,-192)}static int200(e){return v(e,-200)}static int208(e){return v(e,-208)}static int216(e){return v(e,-216)}static int224(e){return v(e,-224)}static int232(e){return v(e,-232)}static int240(e){return v(e,-240)}static int248(e){return v(e,-248)}static int256(e){return v(e,-256)}static int(e){return v(e,-256)}static bytes1(e){return y(e,1)}static bytes2(e){return y(e,2)}static bytes3(e){return y(e,3)}static bytes4(e){return y(e,4)}static bytes5(e){return y(e,5)}static bytes6(e){return y(e,6)}static bytes7(e){return y(e,7)}static bytes8(e){return y(e,8)}static bytes9(e){return y(e,9)}static bytes10(e){return y(e,10)}static bytes11(e){return y(e,11)}static bytes12(e){return y(e,12)}static bytes13(e){return y(e,13)}static bytes14(e){return y(e,14)}static bytes15(e){return y(e,15)}static bytes16(e){return y(e,16)}static bytes17(e){return y(e,17)}static bytes18(e){return y(e,18)}static bytes19(e){return y(e,19)}static bytes20(e){return y(e,20)}static bytes21(e){return y(e,21)}static bytes22(e){return y(e,22)}static bytes23(e){return y(e,23)}static bytes24(e){return y(e,24)}static bytes25(e){return y(e,25)}static bytes26(e){return y(e,26)}static bytes27(e){return y(e,27)}static bytes28(e){return y(e,28)}static bytes29(e){return y(e,29)}static bytes30(e){return y(e,30)}static bytes31(e){return y(e,31)}static bytes32(e){return y(e,32)}static address(t){return new e(_,`address`,t)}static bool(t){return new e(_,`bool`,!!t)}static bytes(t){return new e(_,`bytes`,t)}static string(t){return new e(_,`string`,t)}static array(e,t){throw Error(`not implemented yet`)}static tuple(e,t){throw Error(`not implemented yet`)}static overrides(t){return new e(_,`overrides`,Object.assign({},t))}static isTyped(e){return e&&typeof e==`object`&&`_typedSymbol`in e&&e._typedSymbol===b}static dereference(t,n){if(e.isTyped(t)){if(t.type!==n)throw Error(`invalid type: expecetd ${n}, got ${t.type}`);return t.value}return t}},ee=class extends m{constructor(e){super(`address`,`address`,e,!1)}defaultValue(){return`0x0000000000000000000000000000000000000000`}encode(e,n){let r=x.dereference(n,`string`);try{r=t.p(r)}catch(e){return this._throwError(e.message,n)}return e.writeValue(r)}decode(e){return t.p(t.x(e.readValue(),20))}},te=class extends m{coder;constructor(e){super(e.name,e.type,`_`,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};function S(e,n,r){let i=[];if(Array.isArray(r))i=r;else if(r&&typeof r==`object`){let e={};i=n.map(n=>{let i=n.localName;return t.k(i,`cannot encode object for signature with missing names`,`INVALID_ARGUMENT`,{argument:`values`,info:{coder:n},value:r}),t.k(!e[i],`cannot encode object for signature with duplicate names`,`INVALID_ARGUMENT`,{argument:`values`,info:{coder:n},value:r}),e[i]=!0,r[i]})}else t.A(!1,`invalid tuple value`,`tuple`,r);t.A(n.length===i.length,`types/value length mismatch`,`tuple`,r);let a=new h,o=new h,s=[];n.forEach((e,t)=>{let n=i[t];if(e.dynamic){let t=o.length;e.encode(o,n);let r=a.writeUpdatableValue();s.push(e=>{r(e+t)})}else e.encode(a,n)}),s.forEach(e=>{e(a.length)});let c=e.appendWriter(a);return c+=e.appendWriter(o),c}function C(e,n){let r=[],i=[],a=e.subReader(0);return n.forEach(n=>{let o=null;if(n.dynamic){let r=e.readIndex(),i=a.subReader(r);try{o=n.decode(i)}catch(e){if(t.N(e,`BUFFER_OVERRUN`))throw e;o=e,o.baseType=n.name,o.name=n.localName,o.type=n.type}}else try{o=n.decode(e)}catch(e){if(t.N(e,`BUFFER_OVERRUN`))throw e;o=e,o.baseType=n.name,o.name=n.localName,o.type=n.type}if(o==null)throw Error(`investigate`);r.push(o),i.push(n.localName||null)}),f.fromItems(r,i)}var ne=class extends m{coder;length;constructor(e,n,r){let i=e.type+`[`+(n>=0?n:``)+`]`,a=n===-1||e.dynamic;super(`array`,i,r,a),t.F(this,{coder:e,length:n})}defaultValue(){let e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,n){let r=x.dereference(n,`array`);Array.isArray(r)||this._throwError(`expected array value`,r);let i=this.length;i===-1&&(i=r.length,e.writeValue(r.length)),t.j(r.length,i,`coder array`+(this.localName?` `+this.localName:``));let a=[];for(let e=0;e<r.length;e++)a.push(this.coder);return S(e,a,r)}decode(e){let n=this.length;n===-1&&(n=e.readIndex(),t.k(n*32<=e.dataLength,`insufficient data length`,`BUFFER_OVERRUN`,{buffer:e.bytes,offset:n*32,length:e.dataLength}));let r=[];for(let e=0;e<n;e++)r.push(new te(this.coder));return C(e,r)}},re=class extends m{constructor(e){super(`bool`,`bool`,e,!1)}defaultValue(){return!1}encode(e,t){let n=x.dereference(t,`bool`);return e.writeValue(+!!n)}decode(e){return!!e.readValue()}},w=class extends m{constructor(e,t){super(e,e,t,!0)}defaultValue(){return`0x`}encode(e,n){n=t.D(n);let r=e.writeValue(n.length);return r+=e.writeBytes(n),r}decode(e){return e.readBytes(e.readIndex(),!0)}},ie=class extends w{constructor(e){super(`bytes`,e)}decode(e){return t.O(super.decode(e))}},T=class extends m{size;constructor(e,n){let r=`bytes`+String(e);super(r,r,n,!1),t.F(this,{size:e},{size:`number`})}defaultValue(){return`0x0000000000000000000000000000000000000000000000000000000000000000`.substring(0,2+this.size*2)}encode(e,n){let r=t.D(x.dereference(n,this.type));return r.length!==this.size&&this._throwError(`incorrect data length`,n),e.writeBytes(r)}decode(e){return t.O(e.readBytes(this.size))}},E=new Uint8Array([]),D=class extends m{constructor(e){super(`null`,``,e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError(`not null`,t),e.writeBytes(E)}decode(e){return e.readBytes(0),null}},ae=BigInt(0),oe=BigInt(1),se=BigInt(`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`),ce=class extends m{size;signed;constructor(e,n,r){let i=(n?`int`:`uint`)+e*8;super(i,i,r,!1),t.F(this,{size:e,signed:n},{size:`number`,signed:`boolean`})}defaultValue(){return 0}encode(e,n){let r=t._(x.dereference(n,this.type)),i=t.y(se,256);if(this.signed){let e=t.y(i,this.size*8-1);(r>e||r<-(e+oe))&&this._throwError(`value out-of-bounds`,n),r=t.w(r,256)}else (r<ae||r>t.y(i,this.size*8))&&this._throwError(`value out-of-bounds`,n);return e.writeValue(r)}decode(e){let n=t.y(e.readValue(),this.size*8);return this.signed&&(n=t.g(n,this.size*8)),n}},le=class extends w{constructor(e){super(`string`,e)}defaultValue(){return``}encode(e,n){return super.encode(e,t.m(x.dereference(n,`string`)))}decode(e){return t.h(super.decode(e))}},O=class extends m{coders;constructor(e,n){let r=!1,i=[];e.forEach(e=>{e.dynamic&&(r=!0),i.push(e.type)});let a=`tuple(`+i.join(`,`)+`)`;super(`tuple`,a,n,r),t.F(this,{coders:Object.freeze(e.slice())})}defaultValue(){let e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});let t=this.coders.reduce((e,t)=>{let n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e},{});return this.coders.forEach((n,r)=>{let i=n.localName;!i||t[i]!==1||(i===`length`&&(i=`_length`),e[i]??(e[i]=e[r]))}),Object.freeze(e)}encode(e,t){let n=x.dereference(t,`tuple`);return S(e,this.coders,n)}decode(e){return C(e,this.coders)}};function k(e){let t=new Set;return e.forEach(e=>t.add(e)),Object.freeze(t)}k(`external public payable override`.split(` `));var A=`constant external internal payable private public pure view override`;k(A.split(` `));var j=`constructor error event fallback function receive struct`;k(j.split(` `));var M=`calldata memory storage payable indexed`,ue=k(M.split(` `)),de=k([j,M,`tuple returns`,A].join(` `).split(` `)),fe={"(":`OPEN_PAREN`,")":`CLOSE_PAREN`,"[":`OPEN_BRACKET`,"]":`CLOSE_BRACKET`,",":`COMMA`,"@":`AT`},pe=RegExp(`^(\\s*)`),me=RegExp(`^([0-9]+)`),N=RegExp(`^([a-zA-Z$_][a-zA-Z0-9$_]*)`),P=RegExp(`^([a-zA-Z$_][a-zA-Z0-9$_]*)$`),F=RegExp(`^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$`),I=class e{#e;#t;get offset(){return this.#e}get length(){return this.#t.length-this.#e}constructor(e){this.#e=0,this.#t=e.slice()}clone(){return new e(this.#t)}reset(){this.#e=0}#n(t=0,n=0){return new e(this.#t.slice(t,n).map(e=>Object.freeze(Object.assign({},e,{match:e.match-t,linkBack:e.linkBack-t,linkNext:e.linkNext-t}))))}popKeyword(e){let t=this.peek();if(t.type!==`KEYWORD`||!e.has(t.text))throw Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e){let t=this.peek();throw Error(`expected ${e}; got ${t.type} ${JSON.stringify(t.text)}`)}return this.pop().text}popParen(){let e=this.peek();if(e.type!==`OPEN_PAREN`)throw Error(`bad start`);let t=this.#n(this.#e+1,e.match+1);return this.#e=e.match+1,t}popParams(){let e=this.peek();if(e.type!==`OPEN_PAREN`)throw Error(`bad start`);let t=[];for(;this.#e<e.match-1;){let e=this.peek().linkNext;t.push(this.#n(this.#e+1,e)),this.#e=e}return this.#e=e.match+1,t}peek(){if(this.#e>=this.#t.length)throw Error(`out-of-bounds`);return this.#t[this.#e]}peekKeyword(e){let t=this.peekType(`KEYWORD`);return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;let t=this.peek();return t.type===e?t.text:null}pop(){let e=this.peek();return this.#e++,e}toString(){let e=[];for(let t=this.#e;t<this.#t.length;t++){let n=this.#t[t];e.push(`${n.type}:${n.text}`)}return`<TokenString ${e.join(` `)}>`}};function L(e){let n=[],r=t=>{let n=o<e.length?JSON.stringify(e[o]):`$EOI`;throw Error(`invalid token ${n} at ${o}: ${t}`)},i=[],a=[],o=0;for(;o<e.length;){let s=e.substring(o),c=s.match(pe);c&&(o+=c[1].length,s=e.substring(o));let l={depth:i.length,linkBack:-1,linkNext:-1,match:-1,type:``,text:``,offset:o,value:-1};n.push(l);let u=fe[s[0]]||``;if(u){if(l.type=u,l.text=s[0],o++,u===`OPEN_PAREN`)i.push(n.length-1),a.push(n.length-1);else if(u==`CLOSE_PAREN`)i.length===0&&r(`no matching open bracket`),l.match=i.pop(),n[l.match].match=n.length-1,l.depth--,l.linkBack=a.pop(),n[l.linkBack].linkNext=n.length-1;else if(u===`COMMA`)l.linkBack=a.pop(),n[l.linkBack].linkNext=n.length-1,a.push(n.length-1);else if(u===`OPEN_BRACKET`)l.type=`BRACKET`;else if(u===`CLOSE_BRACKET`){let e=n.pop().text;if(n.length>0&&n[n.length-1].type===`NUMBER`){let r=n.pop().text;e=r+e,n[n.length-1].value=t.v(r)}if(n.length===0||n[n.length-1].type!==`BRACKET`)throw Error(`missing opening bracket`);n[n.length-1].text+=e}continue}if(c=s.match(N),c){if(l.text=c[1],o+=l.text.length,de.has(l.text)){l.type=`KEYWORD`;continue}if(l.text.match(F)){l.type=`TYPE`;continue}l.type=`ID`;continue}if(c=s.match(me),c){l.text=c[1],l.type=`NUMBER`,o+=l.text.length;continue}throw Error(`unexpected token ${JSON.stringify(s[0])} at position ${o}`)}return new I(n.map(e=>Object.freeze(e)))}function R(e,t){let n=new Set;for(;;){let r=e.peekType(`KEYWORD`);if(r==null||t&&!t.has(r))break;if(e.pop(),n.has(r))throw Error(`duplicate keywords: ${JSON.stringify(r)}`);n.add(r)}return Object.freeze(n)}var z=new RegExp(/^(.*)\[([0-9]*)\]$/);function B(e){let n=e.match(F);if(t.A(n,`invalid type`,`type`,e),e===`uint`)return`uint256`;if(e===`int`)return`int256`;if(n[2]){let r=parseInt(n[2]);t.A(r!==0&&r<=32,`invalid bytes length`,`type`,e)}else if(n[3]){let r=parseInt(n[3]);t.A(r!==0&&r<=256&&r%8==0,`invalid numeric width`,`type`,e)}return e}var V={},H=Symbol.for(`_ethers_internal`),U=`_ParamTypeInternal`,W=class e{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(e,n,r,i,a,o,s,c){if(t.M(e,V,`ParamType`),Object.defineProperty(this,H,{value:U}),o&&=Object.freeze(o.slice()),i===`array`){if(s==null||c==null)throw Error(``)}else if(s!=null||c!=null)throw Error(``);if(i===`tuple`){if(o==null)throw Error(``)}else if(o!=null)throw Error(``);t.F(this,{name:n,type:r,baseType:i,indexed:a,components:o,arrayLength:s,arrayChildren:c})}format(e){if(e??=`sighash`,e===`json`){let t=this.name||``;if(this.isArray()){let e=JSON.parse(this.arrayChildren.format(`json`));return e.name=t,e.type+=`[${this.arrayLength<0?``:String(this.arrayLength)}]`,JSON.stringify(e)}let n={type:this.baseType===`tuple`?`tuple`:this.type,name:t};return typeof this.indexed==`boolean`&&(n.indexed=this.indexed),this.isTuple()&&(n.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(n)}let t=``;return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?``:String(this.arrayLength)}]`):this.isTuple()?t+=`(`+this.components.map(t=>t.format(e)).join(e===`full`?`, `:`,`)+`)`:t+=this.type,e!==`sighash`&&(this.indexed===!0&&(t+=` indexed`),e===`full`&&this.name&&(t+=` `+this.name)),t}isArray(){return this.baseType===`array`}isTuple(){return this.baseType===`tuple`}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw Error(`invalid array value`);if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw Error(`array is wrong length`);let n=this;return e.map(e=>n.arrayChildren.walk(e,t))}if(this.isTuple()){if(!Array.isArray(e))throw Error(`invalid tuple value`);if(e.length!==this.components.length)throw Error(`array is wrong length`);let n=this;return e.map((e,r)=>n.components[r].walk(e,t))}return t(this.type,e)}#e(e,t,n,r){if(this.isArray()){if(!Array.isArray(t))throw Error(`invalid array value`);if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw Error(`array is wrong length`);let i=this.arrayChildren,a=t.slice();a.forEach((t,r)=>{i.#e(e,t,n,e=>{a[r]=e})}),r(a);return}if(this.isTuple()){let i=this.components,a;if(Array.isArray(t))a=t.slice();else{if(typeof t!=`object`||!t)throw Error(`invalid tuple value`);a=i.map(e=>{if(!e.name)throw Error(`cannot use object value with unnamed components`);if(!(e.name in t))throw Error(`missing value for component ${e.name}`);return t[e.name]})}if(a.length!==this.components.length)throw Error(`array is wrong length`);a.forEach((t,r)=>{i[r].#e(e,t,n,e=>{a[r]=e})}),r(a);return}let i=n(this.type,t);i.then?e.push((async function(){r(await i)})()):r(i)}async walkAsync(e,t){let n=[],r=[e];return this.#e(n,e,t,e=>{r[0]=e}),n.length&&await Promise.all(n),r[0]}static from(n,r){if(e.isParamType(n))return n;if(typeof n==`string`)try{return e.from(L(n),r)}catch{t.A(!1,`invalid param type`,`obj`,n)}else if(n instanceof I){let t=``,i=``,a=null;R(n,k([`tuple`])).has(`tuple`)||n.peekType(`OPEN_PAREN`)?(i=`tuple`,a=n.popParams().map(t=>e.from(t)),t=`tuple(${a.map(e=>e.format()).join(`,`)})`):(t=B(n.popType(`TYPE`)),i=t);let o=null,s=null;for(;n.length&&n.peekType(`BRACKET`);){let r=n.pop();o=new e(V,``,t,i,null,a,s,o),s=r.value,t+=r.text,i=`array`,a=null}let c=null;if(R(n,ue).has(`indexed`)){if(!r)throw Error(``);c=!0}let l=n.peekType(`ID`)?n.pop().text:``;if(n.length)throw Error(`leftover tokens`);return new e(V,l,t,i,c,a,s,o)}let i=n.name;t.A(!i||typeof i==`string`&&i.match(P),`invalid name`,`obj.name`,i);let a=n.indexed;a!=null&&(t.A(r,`parameter cannot be indexed`,`obj.indexed`,n.indexed),a=!!a);let o=n.type,s=o.match(z);if(s){let t=parseInt(s[2]||`-1`),r=e.from({type:s[1],components:n.components});return new e(V,i||``,o,`array`,a,null,t,r)}if(o===`tuple`||o.startsWith(`tuple(`)||o.startsWith(`(`)){let t=n.components==null?null:n.components.map(t=>e.from(t));return new e(V,i||``,o,`tuple`,a,t,null,null)}return o=B(n.type),new e(V,i||``,o,o,a,null,null,null)}static isParamType(e){return e&&e[H]===U}},G=new Map;G.set(0,`GENERIC_PANIC`),G.set(1,`ASSERT_FALSE`),G.set(17,`OVERFLOW`),G.set(18,`DIVIDE_BY_ZERO`),G.set(33,`ENUM_RANGE_ERROR`),G.set(34,`BAD_STORAGE_DATA`),G.set(49,`STACK_UNDERFLOW`),G.set(50,`ARRAY_RANGE_ERROR`),G.set(65,`OUT_OF_MEMORY`),G.set(81,`UNINITIALIZED_FUNCTION_CALL`);var he=new RegExp(/^bytes([0-9]*)$/),ge=new RegExp(/^(u?int)([0-9]*)$/),K=null,q=1024;function _e(e,n,r,i){let a=`missing revert data`,o=null,s=null;if(r){a=`execution reverted`;let e=t.E(r);if(r=t.O(r),e.length===0)a+=` (no data present; likely require(false) occurred`,o=`require(false)`;else if(e.length%32!=4)a+=` (could not decode reason; invalid data length)`;else if(t.O(e.slice(0,4))===`0x08c379a0`)try{o=i.decode([`string`],e.slice(4))[0],s={signature:`Error(string)`,name:`Error`,args:[o]},a+=`: ${JSON.stringify(o)}`}catch{a+=` (could not decode reason; invalid string data)`}else if(t.O(e.slice(0,4))===`0x4e487b71`)try{let t=Number(i.decode([`uint256`],e.slice(4))[0]);s={signature:`Panic(uint256)`,name:`Panic`,args:[t]},o=`Panic due to ${G.get(t)||`UNKNOWN`}(${t})`,a+=`: ${o}`}catch{a+=` (could not decode panic code)`}else a+=` (unknown custom error)`}let c={to:n.to?t.p(n.to):null,data:n.data||`0x`};return n.from&&(c.from=t.p(n.from)),t.P(a,`CALL_EXCEPTION`,{action:e,data:r,reason:o,transaction:c,invocation:null,revert:s})}var J=class e{#e(e){if(e.isArray())return new ne(this.#e(e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new O(e.components.map(e=>this.#e(e)),e.name);switch(e.baseType){case`address`:return new ee(e.name);case`bool`:return new re(e.name);case`string`:return new le(e.name);case`bytes`:return new ie(e.name);case``:return new D(e.name)}let n=e.type.match(ge);if(n){let r=parseInt(n[2]||`256`);return t.A(r!==0&&r<=256&&r%8==0,`invalid `+n[1]+` bit length`,`param`,e),new ce(r/8,n[1]===`int`,e.name)}if(n=e.type.match(he),n){let r=parseInt(n[1]);return t.A(r!==0&&r<=32,`invalid bytes length`,`param`,e),new T(r,e.name)}t.A(!1,`invalid type`,`type`,e.type)}getDefaultValue(e){return new O(e.map(e=>this.#e(W.from(e))),`_`).defaultValue()}encode(e,n){t.j(n.length,e.length,`types/values length mismatch`);let r=new O(e.map(e=>this.#e(W.from(e))),`_`),i=new h;return r.encode(i,n),i.data}decode(e,t,n){return new O(e.map(e=>this.#e(W.from(e))),`_`).decode(new g(t,n,q))}static _setDefaultMaxInflation(e){t.A(typeof e==`number`&&Number.isInteger(e),`invalid defaultMaxInflation factor`,`value`,e),q=e}static defaultAbiCoder(){return K??=new e,K}static getBuiltinCallException(t,n,r){return _e(t,n,r,e.defaultAbiCoder())}},ve=e.S(e._()),ye=`solana-on-chain-utxo:`,be=8,xe=e=>e.startsWith(ye),Y=e=>{if(!xe(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=J.defaultAbiCoder().decode([`bytes32[8]`],e.slice(21)),r=n;if(!Array.isArray(r)||r.length!==be)throw Error(`Malformed encoded Solana UTXO payload`);let[i,a,o,s,c,l,u,d]=r,f=BigInt(i),p=BigInt(s),m=t.x(BigInt(c)),h=BigInt(l),g=BigInt(u),_=BigInt(d).toString(),v=Array.from(t.E(a)),y=Array.from(t.E(o)),b=new t.l(Uint8Array.from([...v.slice(16),...y.slice(16)])).toBase58();return{amount:f,erc20TokenAddress:t.f(BigInt(a),BigInt(o)),mintAddress:b,randomization:p,stealthAddress:m,H0:h,H1:g,timeStamp:_}},X=e=>{let n=J.defaultAbiCoder().decode([`uint256`,`address`,`tuple(uint256, uint256, uint256, uint256)`,`uint256`,`uint256`],e);return{amount:BigInt(n[0]),erc20TokenAddress:n[1],randomization:BigInt(n[2][0]),stealthAddress:t.x(BigInt(n[2][1])),H0:BigInt(n[2][2]),H1:BigInt(n[2][3]),timeStamp:BigInt(n[3]).toString(),tokenId:Number(n[4])}},Se=(t,n,r)=>{if(e.r(r)){let{amount:e,erc20TokenAddress:r,mintAddress:i,randomization:a,stealthAddress:o,timeStamp:s}=Y(t);return{amount:e,erc20TokenAddress:r,mintAddress:i,timeStamp:s,tokenId:0,randomization:a,shieldedPrivateKey:n,stealthAddress:o}}let{amount:i,erc20TokenAddress:a,timeStamp:o,tokenId:s,randomization:c,stealthAddress:l}=X(t);return{amount:i,erc20TokenAddress:a,timeStamp:o,tokenId:s,randomization:c,shieldedPrivateKey:n,stealthAddress:l}},Z=(n,r,i)=>{let{randomization:a,H0:o,H1:s}=e.r(i)?Y(n):X(n),c=t.a.checkSignature(a,o,s,r);if(!c)throw Error(`UTXO doesn't belong to user`);return c},Ce=class{static log(...e){}static logObject(e){}static error(...e){t.t(e)}},Q=function(e){return e[e.BATCH_FILTER_UTXOS_WITH_NULLIFIER=0]=`BATCH_FILTER_UTXOS_WITH_NULLIFIER`,e[e.BUILD_UTXOS=1]=`BUILD_UTXOS`,e[e.DECIPHER_OUTPUTS=2]=`DECIPHER_OUTPUTS`,e}({}),$=new e.t,we=async({data:e})=>{let{utxos:n,nullifiers:r}=e,i=n.filter(e=>{let n=new t.i(e);return!r.has(n.getNullifier())});$.postMessageToMainThread({utxoConstructors:i,stealthPairCache:t.s.serialize(),stealthAddressCache:t.o.serialize()})},Te=async({data:e})=>{let n=new t.a(e.signature),r=n.getShieldedPrivateKey(),i=e.encryptedOutputs.map(i=>{try{let a=i.isPositive?t.r(Buffer.from(i.value.slice(2),`hex`),n):Se(i.value,r,e.chainId);return a.isBlocked=i.isBlocked,a}catch{return}}).filter(e=>e!==void 0&&e.amount!==0n);$.postMessageToMainThread(i)},Ee=async({data:e})=>{let n=new t.a(e.signature),r=[],{encryptedOutputs:i}=e,{lastOutput:a}=e,o=n.getShieldedPrivateKey();for(let s=0;s<i.length;s+=1){let c=i[s];if(a=c.value,c.isPositive)try{let e=t.n(Buffer.from(a.slice(2),`hex`),n);if(e.isBlocked=c.isBlocked,!e.erc20TokenAddress||!e.amount||!e.stealthAddress)throw Error(`bruh`);r.push(c)}catch{}else try{Z(a,o,e.chainId)&&r.push(c)}catch{}}$.postMessageToMainThread({additionalEncryptedOutputs:r,lastOutput:a})},De=async e=>{try{await t.u();let{type:n}=e.payload;switch(n){case Q.BATCH_FILTER_UTXOS_WITH_NULLIFIER:await we(e.payload);return;case Q.BUILD_UTXOS:await Te(e.payload);return;case Q.DECIPHER_OUTPUTS:await Ee(e.payload);return;default:throw Error(`Unknown worker message type ${n}`)}}catch(e){Ce.error(`utxo worker message failed`,e),$.postErrorToMainThread(e)}};globalThis.process=ve.default,globalThis.Buffer=r.Buffer,n.parentPort.on(`message`,async e=>{await De(e)});
@@ -14,8 +14,8 @@
14
14
  var e = /* @__PURE__ */ ((r) => (r.ZKProof = "ZKProof", r.SnarkJS = "SnarkJS", r.UTXO = "UTXO", r))(e || {});
15
15
 
16
16
  const n = async () => ({
17
- [e.ZKProof]: await getWorkerURL(domain + '/0.0.66/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.0.66/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.0.66/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.0.68/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.0.68/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.0.68/' + 'utxoWorkerLauncher.js'),
20
20
  });
21
21
  exports.getWorkerViteURL = n;
@@ -14,8 +14,8 @@
14
14
  var e = /* @__PURE__ */ ((r) => (r.ZKProof = "ZKProof", r.SnarkJS = "SnarkJS", r.UTXO = "UTXO", r))(e || {});
15
15
 
16
16
  const n = async () => ({
17
- [e.ZKProof]: await getWorkerURL(domain + '/0.0.66/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.0.66/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.0.66/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.0.68/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.0.68/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.0.68/' + 'utxoWorkerLauncher.js'),
20
20
  });
21
21
  export { n as getWorkerViteURL };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kapa123456789/sdk",
3
- "version": "0.0.66",
3
+ "version": "0.0.68",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -1 +1 @@
1
- var e={name:`@kapa123456789/sdk`,version:`0.0.65`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,main:`./index.cjs`,"react-native":`./index.cjs`,import:`./index.mjs`,default:`./index.cjs`},"./providers/WagmiProviderAdapter":{types:`./providers/WagmiProviderAdapter.d.ts`,"react-native":`./providers/WagmiProviderAdapter.cjs`,import:`./providers/WagmiProviderAdapter.mjs`,default:`./providers/WagmiProviderAdapter.cjs`},"./providers/EthersProviderAdapter":{types:`./providers/EthersProviderAdapter.d.ts`,"react-native":`./providers/EthersProviderAdapter.cjs`,import:`./providers/EthersProviderAdapter.mjs`,default:`./providers/EthersProviderAdapter.cjs`},"./providers/TronProviderAdapter":{types:`./providers/TronProviderAdapter.d.ts`,"react-native":`./providers/TronProviderAdapter.cjs`,import:`./providers/TronProviderAdapter.mjs`,default:`./providers/TronProviderAdapter.cjs`},"./providers/SolanaProviderAdapter":{types:`./providers/SolanaProviderAdapter.d.ts`,"react-native":`./providers/SolanaProviderAdapter.cjs`,import:`./providers/SolanaProviderAdapter.mjs`,default:`./providers/SolanaProviderAdapter.cjs`},"./providers/prepareEthersHinkal":{types:`./providers/prepareEthersHinkal.d.ts`,"react-native":`./providers/prepareEthersHinkal.cjs`,import:`./providers/prepareEthersHinkal.mjs`,default:`./providers/prepareEthersHinkal.cjs`},"./providers/prepareWagmiHinkal":{types:`./providers/prepareWagmiHinkal.d.ts`,"react-native":`./providers/prepareWagmiHinkal.cjs`,import:`./providers/prepareWagmiHinkal.mjs`,default:`./providers/prepareWagmiHinkal.cjs`},"./providers/prepareTronHinkal":{types:`./providers/prepareTronHinkal.d.ts`,"react-native":`./providers/prepareTronHinkal.cjs`,import:`./providers/prepareTronHinkal.mjs`,default:`./providers/prepareTronHinkal.cjs`},"./providers/prepareSolanaHinkal":{types:`./providers/prepareSolanaHinkal.d.ts`,"react-native":`./providers/prepareSolanaHinkal.cjs`,import:`./providers/prepareSolanaHinkal.mjs`,default:`./providers/prepareSolanaHinkal.cjs`},"./react-native/HinkalWebViewWorker":{types:`./react-native/HinkalWebViewWorker.d.ts`,"react-native":`./react-native/HinkalWebViewWorker.cjs`,import:`./react-native/HinkalWebViewWorker.mjs`,default:`./react-native/HinkalWebViewWorker.cjs`},"./react-native/metro-config":`./react-native/metro-config.js`,"./react-native/shims/*":`./react-native/shims/*`},types:`./index.d.ts`,scripts:{prebuild:`nx prebuild:workers`,build:`nx build`,lint:`nx lint`,test:`nx test`},devDependencies:{nx:`22.6.4`,vite:`^8.0.4`,"vite-plugin-dts":`^4.5.4`,"vite-tsconfig-paths":`^6.1.1`},dependencies:{"@coral-xyz/anchor":`^0.31.0`,"@solana/spl-token":`^0.4.14`,"@solana/web3.js":`^1.98.4`,"@solana/wallet-adapter-react":`^0.15.39`,axios:`^1.6.8`,"async-mutex":`^0.4.0`,bs58:`^6.0.0`,buffer:`6.0.3`,"circomlibjs-hinkal-fork":`^0.0.3`,dotenv:`^16.4.5`,ethers:`^6.15.0`,"idb-keyval":`6.2.1`,multiformats:`^13.4.2`,snarkjs:`0.7.5`,"libsodium-wrappers":`^0.8.2`,lodash:`^4.17.21`,tweetnacl:`^1.0.3`,process:`0.11.10`,"ua-parser-js":`^1.0.37`,uuid:`^9.0.1`,"node-forge":`^1.3.1`,tronweb:`^6.2.0`},peerDependencies:{wagmi:`2.13.3`,"@walletconnect/utils":`^2.17.2`,react:`*`,"react-native":`*`,"react-native-webview":`*`},peerDependenciesMeta:{wagmi:{optional:!0},"@walletconnect/utils":{optional:!0},react:{optional:!0},"react-native":{optional:!0},"react-native-webview":{optional:!0}}};exports.default=e;
1
+ var e={name:`@kapa123456789/sdk`,version:`0.0.67`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,main:`./index.cjs`,"react-native":`./index.cjs`,import:`./index.mjs`,default:`./index.cjs`},"./providers/WagmiProviderAdapter":{types:`./providers/WagmiProviderAdapter.d.ts`,"react-native":`./providers/WagmiProviderAdapter.cjs`,import:`./providers/WagmiProviderAdapter.mjs`,default:`./providers/WagmiProviderAdapter.cjs`},"./providers/EthersProviderAdapter":{types:`./providers/EthersProviderAdapter.d.ts`,"react-native":`./providers/EthersProviderAdapter.cjs`,import:`./providers/EthersProviderAdapter.mjs`,default:`./providers/EthersProviderAdapter.cjs`},"./providers/TronProviderAdapter":{types:`./providers/TronProviderAdapter.d.ts`,"react-native":`./providers/TronProviderAdapter.cjs`,import:`./providers/TronProviderAdapter.mjs`,default:`./providers/TronProviderAdapter.cjs`},"./providers/SolanaProviderAdapter":{types:`./providers/SolanaProviderAdapter.d.ts`,"react-native":`./providers/SolanaProviderAdapter.cjs`,import:`./providers/SolanaProviderAdapter.mjs`,default:`./providers/SolanaProviderAdapter.cjs`},"./providers/prepareEthersHinkal":{types:`./providers/prepareEthersHinkal.d.ts`,"react-native":`./providers/prepareEthersHinkal.cjs`,import:`./providers/prepareEthersHinkal.mjs`,default:`./providers/prepareEthersHinkal.cjs`},"./providers/prepareWagmiHinkal":{types:`./providers/prepareWagmiHinkal.d.ts`,"react-native":`./providers/prepareWagmiHinkal.cjs`,import:`./providers/prepareWagmiHinkal.mjs`,default:`./providers/prepareWagmiHinkal.cjs`},"./providers/prepareTronHinkal":{types:`./providers/prepareTronHinkal.d.ts`,"react-native":`./providers/prepareTronHinkal.cjs`,import:`./providers/prepareTronHinkal.mjs`,default:`./providers/prepareTronHinkal.cjs`},"./providers/prepareSolanaHinkal":{types:`./providers/prepareSolanaHinkal.d.ts`,"react-native":`./providers/prepareSolanaHinkal.cjs`,import:`./providers/prepareSolanaHinkal.mjs`,default:`./providers/prepareSolanaHinkal.cjs`},"./react-native/HinkalWebViewWorker":{types:`./react-native/HinkalWebViewWorker.d.ts`,"react-native":`./react-native/HinkalWebViewWorker.cjs`,import:`./react-native/HinkalWebViewWorker.mjs`,default:`./react-native/HinkalWebViewWorker.cjs`},"./react-native/metro-config":`./react-native/metro-config.js`,"./react-native/shims/*":`./react-native/shims/*`},types:`./index.d.ts`,scripts:{prebuild:`nx prebuild:workers`,build:`nx build`,lint:`nx lint`,test:`nx test`},devDependencies:{nx:`22.6.4`,vite:`^8.0.4`,"vite-plugin-dts":`^4.5.4`,"vite-tsconfig-paths":`^6.1.1`},dependencies:{"@coral-xyz/anchor":`^0.31.0`,"@solana/spl-token":`^0.4.14`,"@solana/web3.js":`^1.98.4`,"@solana/wallet-adapter-react":`^0.15.39`,axios:`^1.6.8`,"async-mutex":`^0.4.0`,bs58:`^6.0.0`,buffer:`6.0.3`,"circomlibjs-hinkal-fork":`^0.0.3`,dotenv:`^16.4.5`,ethers:`^6.15.0`,"idb-keyval":`6.2.1`,multiformats:`^13.4.2`,snarkjs:`0.7.5`,"libsodium-wrappers":`^0.8.2`,lodash:`^4.17.21`,tweetnacl:`^1.0.3`,process:`0.11.10`,"ua-parser-js":`^1.0.37`,uuid:`^9.0.1`,"node-forge":`^1.3.1`,tronweb:`^6.2.0`},peerDependencies:{wagmi:`2.13.3`,"@walletconnect/utils":`^2.17.2`,react:`*`,"react-native":`*`,"react-native-webview":`*`},peerDependenciesMeta:{wagmi:{optional:!0},"@walletconnect/utils":{optional:!0},react:{optional:!0},"react-native":{optional:!0},"react-native-webview":{optional:!0}}};exports.default=e;
@@ -1,6 +1,6 @@
1
1
  var e = {
2
2
  name: "@kapa123456789/sdk",
3
- version: "0.0.65",
3
+ version: "0.0.67",
4
4
  homepage: "hinkal.io",
5
5
  author: { name: "Hinkal Protocol" },
6
6
  keywords: [