@kapa123456789/sdk 0.0.66 → 0.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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(`../../../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(`./constructBatchCall.cjs`),s=require(`./waitForErc20Approvals.cjs`);let c=require(`ethers`);var l=`[transactCallDirect]`,u=e=>typeof e==`bigint`?e.toString():void 0,d=e=>({aLength:e?.[0]?.length,bOuterLength:e?.[1]?.length,bInnerLengths:e?.[1]?.map(e=>e.length),cLength:e?.[2]?.length,inputLength:e?.[3]?.length}),f=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:u(e.rootHashHinkal),rootHashAccessToken:u(e.rootHashAccessToken),relay:e.relay,externalAddress:e.externalAddress,externalActionId:u(e.externalActionId),calldataHash:u(e.calldataHash),publicSignalCount:e.publicSignalCount,originalSender:e.originalSender}),p=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}),m=async(u,m,h,g,_,v,y,b,x,S=!0,C=!1)=>{console.log(`${l} start`,{chainId:m,preEstimateGas:S,returnTxData:C,amountIsArray:Array.isArray(h),tokenIsArray:Array.isArray(g),zkCallData:d(_),dimData:y,circomData:f(v)});let w=Array.isArray(h)?h:[h],T=Array.isArray(g)?g:[g];if(console.log(`${l} normalized inputs`,{amounts:w.map(e=>e.toString()),tokenAddresses:T.map(({erc20TokenAddress:e})=>e),tokenSymbols:T.map(({symbol:e})=>e)}),w.length!==T.length)throw Error(`token and amount length mismatch`);console.log(`${l} fetching signer contract`);let E=u.getContractWithSigner(m,t.ContractType.HinkalContract);console.log(`${l} signer contract ready`,{hinkalContractAddress:r.getContractAddress(E)}),console.log(`${l} fetching ethereum address`);let D=await u.getEthereumAddressByChain(m);console.log(`${l} ethereum address ready`,{ethereumAddress:D});let O=b??E,k=x??E;console.log(`${l} contracts resolved`,{approvalContractAddress:r.getContractAddress(O),transactionContractAddress:r.getContractAddress(k),usedCustomApprovalContract:!!b,usedCustomTransactionContract:!!x});let A=`transact`,j=T.findIndex(({erc20TokenAddress:t})=>t===e.zeroAddress),M=T.some(({erc20TokenAddress:t})=>t!==e.zeroAddress),N=j===-1?0n:w[j];console.log(`${l} token analysis`,{ethIndex:j,needsApproval:M,ethAmount:N.toString()}),console.log(`${l} fetching provider adapter`);let P=u.getProviderAdapter(m);console.log(`${l} provider adapter ready`,{providerAdapterType:P?.constructor?.name}),console.log(`${l} checking batch support`);let F=await P.supportsBatchCall?.(m);if(console.log(`${l} batch support resolved`,{supportsBatchCall:F,hasSendBatchCallsTransaction:!!P.sendBatchCallsTransaction}),!C&&M&&F&&P.sendBatchCallsTransaction){console.log(`${l} entering batch call path`);let e=T.map(e=>e.erc20TokenAddress),t=o.buildApproveAndTransactCalls(e,w,r.getContractAddress(O),k,_,y,v,N);console.log(`${l} batch calls built`,{batchCallCount:t.length,tokenAddresses:e,approvalContractAddress:r.getContractAddress(O),transactionContractAddress:r.getContractAddress(k)}),console.log(`${l} sending batch calls transaction`);let n=await P.sendBatchCallsTransaction(m,t);return console.log(`${l} batch calls transaction sent`,p(n)),n}if(!C&&(console.log(`${l} approving tokens start`),await a.approveTokensToHinkal(u,m,O,T,w),console.log(`${l} approving tokens complete`),M)){let e=T.map(({erc20TokenAddress:e},t)=>({tokenAddress:e,requiredAmount:w[t]}));console.log(`${l} waiting for approvals start`,{ownerAddress:D,spenderAddress:r.getContractAddress(O),requirements:e.map(({tokenAddress:e,requiredAmount:t})=>({tokenAddress:e,requiredAmount:t.toString()}))}),await s.waitForErc20Approvals(u,m,D,r.getContractAddress(O),e),console.log(`${l} waiting for approvals complete`)}let I={value:N>0n?BigInt(N).toString():void 0,gasLimit:void 0};console.log(`${l} overrides prepared`,I);let L,R=[_[0],_[1],_[2],y,v,{...I,from:D}];console.log(`${l} call data prepared`,{method:A,dimData:y,transactionContractAddress:r.getContractAddress(k),from:D,value:I.value,zkCallData:d(_)});let{runner:z}=k;if(console.log(`${l} runner resolved`,{runnerType:z?.constructor?.name,hasProvider:!!z?.provider}),!(z instanceof c.ethers.AbstractSigner))throw console.log(`${l} runner is not a signer`,{runnerType:z?.constructor?.name}),Error(`expected signer`);if(S){console.log(`${l} estimateGas start`);try{L=Number(await k[A].estimateGas(...R)),console.log(`${l} estimateGas success`,{gasCosts:L})}catch(e){console.log(`${l} estimateGas error`,{message:e?.message,code:e?.code,shortMessage:e?.shortMessage,reason:e?.reason,data:e?.data,error:e})}}else console.log(`${l} estimateGas skipped`);let B=L&&L>=0?Math.ceil(L*12/10):void 0;B&&(R[5].gasLimit=B),console.log(`${l} gas configuration final`,{gasCosts:L,extendedGasCosts:B,finalOverrides:R[5]}),console.log(`${l} waitLittle start`),await n.waitLittle(),console.log(`${l} waitLittle complete`);let V;try{C?(console.log(`${l} populateTransaction start`),V=await k[A].populateTransaction(...R),console.log(`${l} populateTransaction success`,p(V))):(console.log(`${l} contract call start`),V=await k[A](...R),console.log(`${l} contract call success`,p(V)))}catch(e){if(console.log(`${l} 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(`${l} recoverTransactionFromError start`,{transactionHash:e.transactionHash});let t=await i.recoverTransactionFromError(z.provider,e.transactionHash);if(!t)throw console.log(`${l} recoverTransactionFromError failed`),e;console.log(`${l} recoverTransactionFromError success`,p(t)),V=t}return console.log(`${l} complete`,p(V)),V};exports.transactCallDirect=m;
@@ -8,53 +8,174 @@ import { buildApproveAndTransactCalls as o } from "./constructBatchCall.mjs";
8
8
  import { waitForErc20Approvals as s } from "./waitForErc20Approvals.mjs";
9
9
  import { ethers as c } from "ethers";
10
10
  //#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);
11
+ var l = "[transactCallDirect]", u = (e) => typeof e == "bigint" ? e.toString() : void 0, d = (e) => ({
12
+ aLength: e?.[0]?.length,
13
+ bOuterLength: e?.[1]?.length,
14
+ bInnerLengths: e?.[1]?.map((e) => e.length),
15
+ cLength: e?.[2]?.length,
16
+ inputLength: e?.[3]?.length
17
+ }), f = (e) => ({
18
+ tokenCount: e.erc20TokenAddresses?.length,
19
+ tokenAddresses: e.erc20TokenAddresses,
20
+ amountChanges: e.amountChanges?.map((e) => e.toString()),
21
+ inputNullifierGroupCount: e.inputNullifiers?.length,
22
+ inputNullifierSizes: e.inputNullifiers?.map((e) => e.length),
23
+ outCommitmentGroupCount: e.outCommitments?.length,
24
+ outCommitmentSizes: e.outCommitments?.map((e) => e.length),
25
+ encryptedOutputGroupCount: e.encryptedOutputs?.length,
26
+ encryptedOutputSizes: e.encryptedOutputs?.map((e) => e.length),
27
+ rootHashHinkal: u(e.rootHashHinkal),
28
+ rootHashAccessToken: u(e.rootHashAccessToken),
29
+ relay: e.relay,
30
+ externalAddress: e.externalAddress,
31
+ externalActionId: u(e.externalActionId),
32
+ calldataHash: u(e.calldataHash),
33
+ publicSignalCount: e.publicSignalCount,
34
+ originalSender: e.originalSender
35
+ }), p = (e) => ({
36
+ hash: "hash" in e ? e.hash : void 0,
37
+ to: e.to,
38
+ from: e.from,
39
+ nonce: e.nonce,
40
+ value: typeof e.value == "bigint" ? e.value.toString() : e.value,
41
+ gasLimit: typeof e.gasLimit == "bigint" ? e.gasLimit.toString() : e.gasLimit,
42
+ dataLength: typeof e.data == "string" ? e.data.length : void 0
43
+ }), m = async (u, m, h, g, _, v, y, b, x, S = !0, C = !1) => {
44
+ console.log(`${l} start`, {
45
+ chainId: m,
46
+ preEstimateGas: S,
47
+ returnTxData: C,
48
+ amountIsArray: Array.isArray(h),
49
+ tokenIsArray: Array.isArray(g),
50
+ zkCallData: d(_),
51
+ dimData: y,
52
+ circomData: f(v)
53
+ });
54
+ let w = Array.isArray(h) ? h : [h], T = Array.isArray(g) ? g : [g];
55
+ if (console.log(`${l} normalized inputs`, {
56
+ amounts: w.map((e) => e.toString()),
57
+ tokenAddresses: T.map(({ erc20TokenAddress: e }) => e),
58
+ tokenSymbols: T.map(({ symbol: e }) => e)
59
+ }), w.length !== T.length) throw Error("token and amount length mismatch");
60
+ console.log(`${l} fetching signer contract`);
61
+ let E = u.getContractWithSigner(m, t.HinkalContract);
62
+ console.log(`${l} signer contract ready`, { hinkalContractAddress: r(E) }), console.log(`${l} fetching ethereum address`);
63
+ let D = await u.getEthereumAddressByChain(m);
64
+ console.log(`${l} ethereum address ready`, { ethereumAddress: D });
65
+ let O = b ?? E, k = x ?? E;
66
+ console.log(`${l} contracts resolved`, {
67
+ approvalContractAddress: r(O),
68
+ transactionContractAddress: r(k),
69
+ usedCustomApprovalContract: !!b,
70
+ usedCustomTransactionContract: !!x
71
+ });
72
+ let A = "transact", j = T.findIndex(({ erc20TokenAddress: t }) => t === e), M = T.some(({ erc20TokenAddress: t }) => t !== e), N = j === -1 ? 0n : w[j];
73
+ console.log(`${l} token analysis`, {
74
+ ethIndex: j,
75
+ needsApproval: M,
76
+ ethAmount: N.toString()
77
+ }), console.log(`${l} fetching provider adapter`);
78
+ let P = u.getProviderAdapter(m);
79
+ console.log(`${l} provider adapter ready`, { providerAdapterType: P?.constructor?.name }), console.log(`${l} checking batch support`);
80
+ let F = await P.supportsBatchCall?.(m);
81
+ if (console.log(`${l} batch support resolved`, {
82
+ supportsBatchCall: F,
83
+ hasSendBatchCallsTransaction: !!P.sendBatchCallsTransaction
84
+ }), !C && M && F && P.sendBatchCallsTransaction) {
85
+ console.log(`${l} entering batch call path`);
86
+ let e = T.map((e) => e.erc20TokenAddress), t = o(e, w, r(O), k, _, y, v, N);
87
+ console.log(`${l} batch calls built`, {
88
+ batchCallCount: t.length,
89
+ tokenAddresses: e,
90
+ approvalContractAddress: r(O),
91
+ transactionContractAddress: r(k)
92
+ }), console.log(`${l} sending batch calls transaction`);
93
+ let n = await P.sendBatchCallsTransaction(m, t);
94
+ return console.log(`${l} batch calls transaction sent`, p(n)), n;
18
95
  }
19
- if (!y && (await a(l, u, w, x, b), O)) {
20
- let e = x.map(({ erc20TokenAddress: e }, t) => ({
96
+ if (!C && (console.log(`${l} approving tokens start`), await a(u, m, O, T, w), console.log(`${l} approving tokens complete`), M)) {
97
+ let e = T.map(({ erc20TokenAddress: e }, t) => ({
21
98
  tokenAddress: e,
22
- requiredAmount: b[t]
99
+ requiredAmount: w[t]
23
100
  }));
24
- await s(l, u, C, r(w), e);
101
+ console.log(`${l} waiting for approvals start`, {
102
+ ownerAddress: D,
103
+ spenderAddress: r(O),
104
+ requirements: e.map(({ tokenAddress: e, requiredAmount: t }) => ({
105
+ tokenAddress: e,
106
+ requiredAmount: t.toString()
107
+ }))
108
+ }), await s(u, m, D, r(O), e), console.log(`${l} waiting for approvals complete`);
25
109
  }
26
- let M = {
27
- value: k > 0n ? BigInt(k).toString() : void 0,
110
+ let I = {
111
+ value: N > 0n ? BigInt(N).toString() : void 0,
28
112
  gasLimit: void 0
29
- }, N, P = [
30
- p[0],
31
- p[1],
32
- p[2],
33
- h,
34
- m,
113
+ };
114
+ console.log(`${l} overrides prepared`, I);
115
+ let L, R = [
116
+ _[0],
117
+ _[1],
118
+ _[2],
119
+ y,
120
+ v,
35
121
  {
36
- ...M,
37
- from: C
122
+ ...I,
123
+ from: D
38
124
  }
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;
125
+ ];
126
+ console.log(`${l} call data prepared`, {
127
+ method: A,
128
+ dimData: y,
129
+ transactionContractAddress: r(k),
130
+ from: D,
131
+ value: I.value,
132
+ zkCallData: d(_)
133
+ });
134
+ let { runner: z } = k;
135
+ if (console.log(`${l} runner resolved`, {
136
+ runnerType: z?.constructor?.name,
137
+ hasProvider: !!z?.provider
138
+ }), !(z instanceof c.AbstractSigner)) throw console.log(`${l} runner is not a signer`, { runnerType: z?.constructor?.name }), Error("expected signer");
139
+ if (S) {
140
+ console.log(`${l} estimateGas start`);
141
+ try {
142
+ L = Number(await k[A].estimateGas(...R)), console.log(`${l} estimateGas success`, { gasCosts: L });
143
+ } catch (e) {
144
+ console.log(`${l} estimateGas error`, {
145
+ message: e?.message,
146
+ code: e?.code,
147
+ shortMessage: e?.shortMessage,
148
+ reason: e?.reason,
149
+ data: e?.data,
150
+ error: e
151
+ });
152
+ }
153
+ } else console.log(`${l} estimateGas skipped`);
154
+ let B = L && L >= 0 ? Math.ceil(L * 12 / 10) : void 0;
155
+ B && (R[5].gasLimit = B), console.log(`${l} gas configuration final`, {
156
+ gasCosts: L,
157
+ extendedGasCosts: B,
158
+ finalOverrides: R[5]
159
+ }), console.log(`${l} waitLittle start`), await n(), console.log(`${l} waitLittle complete`);
160
+ let V;
49
161
  try {
50
- L = y ? await T[E].populateTransaction(...P) : await T[E](...P);
162
+ C ? (console.log(`${l} populateTransaction start`), V = await k[A].populateTransaction(...R), console.log(`${l} populateTransaction success`, p(V))) : (console.log(`${l} contract call start`), V = await k[A](...R), console.log(`${l} contract call success`, p(V)));
51
163
  } 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;
164
+ if (console.log(`${l} contract call error`, {
165
+ message: e?.message,
166
+ code: e?.code,
167
+ shortMessage: e?.shortMessage,
168
+ reason: e?.reason,
169
+ transactionHash: e?.transactionHash,
170
+ data: e?.data,
171
+ error: e
172
+ }), !e?.transactionHash) throw e;
173
+ console.log(`${l} recoverTransactionFromError start`, { transactionHash: e.transactionHash });
174
+ let t = await i(z.provider, e.transactionHash);
175
+ if (!t) throw console.log(`${l} recoverTransactionFromError failed`), e;
176
+ console.log(`${l} recoverTransactionFromError success`, p(t)), V = t;
56
177
  }
57
- return L;
178
+ return console.log(`${l} complete`, p(V)), V;
58
179
  };
59
180
  //#endregion
60
- export { l as transactCallDirect };
181
+ export { m as transactCallDirect };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kapa123456789/sdk",
3
- "version": "0.0.66",
3
+ "version": "0.0.67",
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.67/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.0.67/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.0.67/' + '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.67/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.0.67/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.0.67/' + '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.67",
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.66`,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.66",
4
4
  homepage: "hinkal.io",
5
5
  author: { name: "Hinkal Protocol" },
6
6
  keywords: [