@gurge/sdk 0.3.29 → 0.3.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../types/external-action.types.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/utils/hinkalTiming.utils.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const m=require(`../../functions/utils/fees.utils.cjs`),h=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),g=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),_=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),v=require(`../../functions/web3/functionCalls/transactCallDirectTron.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r)=>{let a=l.createRnDeltaTiming(`withdraw.utxoPrep`),o=[...await c.addPaddingToUtxos(e,t,n,r)];a.log(`padding-done`,{inputCounts:o.map(e=>e.length)});let s=[],d=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,o[t],r[t],d);s.push(n)}return a.log(`outputUtxos-done`,{outputCounts:s.map(e=>e.length)}),{inputUtxosArray:o,outputUtxosArray:s}},x=async(i,c,u,x,S,C,w,T)=>{let E=s.validateAndGetChainId(c),D=e.isTronLike(E),O=o.addressToHexFormat(await i.getEthereumAddressByChain(E)),k=c.map(e=>e.erc20TokenAddress),A=await d.modifyVolatileTokenAmountChanges(E,c,u),j=c[0];if(!j)throw Error(`Deposit Action: No Token Found`);let M;if(!S){let e=w??await p.getFeeStructure(E,C,k,a.ExternalActionId.Transact);M=await m.calculateModifiedFeeStructure(E,j,-A[0],e),await y.mergeWithFeeStructure(E,k,A,M)}let N={externalActionId:0n,externalAddress:o.addressToHexFormat(x),externalActionMetadata:`0x00`},[P,{inputUtxosArray:F,outputUtxosArray:I}]=await Promise.all([i.getRandomRelay(E,!0),b(i,E,k,A)]);if(!S&&!P)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let L=l.createRnDeltaTiming(`withdraw.constructZkProof`),{zkCallData:R,circomData:z,dimData:B,commitmentValidationData:V}=await h.constructZkProof(i.merkleTreeHinkalByChain[E],F,I,i.userKeys,N.externalActionId,N.externalAddress,N.externalActionMetadata,i.generateProofRemotely,M??n.zeroFeeStructure,S?t.zeroAddress:P,E,void 0,void 0,S?O:void 0);L.log(`done`);let H=D&&S?void 0:await o.reorderZkCallData(D,R,B,z);if(S){if(!j)throw Error(`Withdraw Action: No Token Found`);return D?await v.transactCallDirectTron(i,E,A[0],j,R,z,B):await g.transactCallDirect(i,E,A[0],j,R,z,B)}let U=f.constructAdminData(T,E,k,A,O),W=l.createRnDeltaTiming(`withdraw.relayer`),G=await _.transactCallRelayer(E,R,B,z,V,void 0,void 0,U,H);return W.log(`done`,{txHash:G}),G};exports.hinkalWithdraw=x;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../types/external-action.types.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const p=require(`../../functions/utils/fees.utils.cjs`),m=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),h=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),_=require(`../../functions/web3/functionCalls/transactCallDirectTron.cjs`),v=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var y=async(e,t,n,r)=>{let a=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},b=async(i,c,l,b,x,S,C,w)=>{let T=s.validateAndGetChainId(c),E=e.isTronLike(T),D=o.addressToHexFormat(await i.getEthereumAddressByChain(T)),O=c.map(e=>e.erc20TokenAddress),k=await u.modifyVolatileTokenAmountChanges(T,c,l),A=c[0];if(!A)throw Error(`Deposit Action: No Token Found`);let j;if(!x){let e=C??await f.getFeeStructure(T,S,O,a.ExternalActionId.Transact);j=await p.calculateModifiedFeeStructure(T,A,-k[0],e),await v.mergeWithFeeStructure(T,O,k,j)}let M={externalActionId:0n,externalAddress:o.addressToHexFormat(b),externalActionMetadata:`0x00`},[N,{inputUtxosArray:P,outputUtxosArray:F}]=await Promise.all([i.getRandomRelay(T,!0),y(i,T,O,k)]);if(!x&&!N)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let{zkCallData:I,circomData:L,dimData:R,commitmentValidationData:z}=await m.constructZkProof(i.merkleTreeHinkalByChain[T],P,F,i.userKeys,M.externalActionId,M.externalAddress,M.externalActionMetadata,i.generateProofRemotely,j??n.zeroFeeStructure,x?t.zeroAddress:N,T,void 0,void 0,x?D:void 0),B=E&&x?void 0:await o.reorderZkCallData(E,I,R,L);if(x){if(!A)throw Error(`Withdraw Action: No Token Found`);return E?await _.transactCallDirectTron(i,T,k[0],A,I,L,R):await h.transactCallDirect(i,T,k[0],A,I,L,R)}return await g.transactCallRelayer(T,I,R,L,z,void 0,void 0,d.constructAdminData(w,T,O,k,D),B)};exports.hinkalWithdraw=b;
@@ -7,54 +7,48 @@ import { ExternalActionId as a } from "../../types/external-action.types.mjs";
7
7
  import { addressToHexFormat as o, reorderZkCallData as s } from "../../functions/utils/tron.utils.mjs";
8
8
  import { validateAndGetChainId as c } from "../../functions/utils/token-check.utils.mjs";
9
9
  import { addPaddingToUtxos as l } from "../../functions/web3/events/getShieldedBalance.mjs";
10
- import { createRnDeltaTiming as u } from "../../functions/utils/hinkalTiming.utils.mjs";
11
- import { outputUtxoProcessing as d } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
12
- import { modifyVolatileTokenAmountChanges as f } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
13
- import { constructAdminData as p } from "../../functions/pre-transaction/constructAdminData.mjs";
14
- import { getFeeStructure as m } from "../../functions/pre-transaction/getFeeStructure.mjs";
10
+ import { outputUtxoProcessing as u } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
11
+ import { modifyVolatileTokenAmountChanges as d } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
12
+ import { constructAdminData as f } from "../../functions/pre-transaction/constructAdminData.mjs";
13
+ import { getFeeStructure as p } from "../../functions/pre-transaction/getFeeStructure.mjs";
15
14
  import "../../functions/pre-transaction/index.mjs";
16
- import { calculateModifiedFeeStructure as h } from "../../functions/utils/fees.utils.mjs";
17
- import { constructZkProof as g } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
18
- import { transactCallDirect as _ } from "../../functions/web3/functionCalls/transactCallDirect.mjs";
19
- import { transactCallRelayer as v } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
20
- import { transactCallDirectTron as y } from "../../functions/web3/functionCalls/transactCallDirectTron.mjs";
21
- import { mergeWithFeeStructure as b } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
15
+ import { calculateModifiedFeeStructure as m } from "../../functions/utils/fees.utils.mjs";
16
+ import { constructZkProof as h } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
17
+ import { transactCallDirect as g } from "../../functions/web3/functionCalls/transactCallDirect.mjs";
18
+ import { transactCallRelayer as _ } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
19
+ import { transactCallDirectTron as v } from "../../functions/web3/functionCalls/transactCallDirectTron.mjs";
20
+ import { mergeWithFeeStructure as y } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
22
21
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalWithdraw.ts
23
- var x = async (e, t, n, r) => {
24
- let a = u("withdraw.utxoPrep"), o = [...await l(e, t, n, r)];
25
- a.log("padding-done", { inputCounts: o.map((e) => e.length) });
26
- let s = [], c = i().toString();
22
+ var b = async (e, t, n, r) => {
23
+ let a = [...await l(e, t, n, r)], o = [], s = i().toString();
27
24
  for (let t = 0; t < n.length; t += 1) {
28
- let { outputUtxos: n } = d(e.userKeys, o[t], r[t], c);
29
- s.push(n);
25
+ let { outputUtxos: n } = u(e.userKeys, a[t], r[t], s);
26
+ o.push(n);
30
27
  }
31
- return a.log("outputUtxos-done", { outputCounts: s.map((e) => e.length) }), {
32
- inputUtxosArray: o,
33
- outputUtxosArray: s
28
+ return {
29
+ inputUtxosArray: a,
30
+ outputUtxosArray: o
34
31
  };
35
- }, S = async (i, l, d, S, C, w, T, E) => {
36
- let D = c(l), O = e(D), k = o(await i.getEthereumAddressByChain(D)), A = l.map((e) => e.erc20TokenAddress), j = await f(D, l, d), M = l[0];
37
- if (!M) throw Error("Deposit Action: No Token Found");
38
- let N;
39
- if (!C) {
40
- let e = T ?? await m(D, w, A, a.Transact);
41
- N = await h(D, M, -j[0], e), await b(D, A, j, N);
32
+ }, x = async (i, l, u, x, S, C, w, T) => {
33
+ let E = c(l), D = e(E), O = o(await i.getEthereumAddressByChain(E)), k = l.map((e) => e.erc20TokenAddress), A = await d(E, l, u), j = l[0];
34
+ if (!j) throw Error("Deposit Action: No Token Found");
35
+ let M;
36
+ if (!S) {
37
+ let e = w ?? await p(E, C, k, a.Transact);
38
+ M = await m(E, j, -A[0], e), await y(E, k, A, M);
42
39
  }
43
- let P = {
40
+ let N = {
44
41
  externalActionId: 0n,
45
- externalAddress: o(S),
42
+ externalAddress: o(x),
46
43
  externalActionMetadata: "0x00"
47
- }, [F, { inputUtxosArray: I, outputUtxosArray: L }] = await Promise.all([i.getRandomRelay(D, !0), x(i, D, A, j)]);
48
- if (!C && !F) throw Error(r.RELAYER_NOT_AVAILABLE);
49
- let R = u("withdraw.constructZkProof"), { zkCallData: z, circomData: B, dimData: V, commitmentValidationData: H } = await g(i.merkleTreeHinkalByChain[D], I, L, i.userKeys, P.externalActionId, P.externalAddress, P.externalActionMetadata, i.generateProofRemotely, N ?? n, C ? t : F, D, void 0, void 0, C ? k : void 0);
50
- R.log("done");
51
- let U = O && C ? void 0 : await s(O, z, V, B);
52
- if (C) {
53
- if (!M) throw Error("Withdraw Action: No Token Found");
54
- return O ? await y(i, D, j[0], M, z, B, V) : await _(i, D, j[0], M, z, B, V);
44
+ }, [P, { inputUtxosArray: F, outputUtxosArray: I }] = await Promise.all([i.getRandomRelay(E, !0), b(i, E, k, A)]);
45
+ if (!S && !P) throw Error(r.RELAYER_NOT_AVAILABLE);
46
+ let { zkCallData: L, circomData: R, dimData: z, commitmentValidationData: B } = await h(i.merkleTreeHinkalByChain[E], F, I, i.userKeys, N.externalActionId, N.externalAddress, N.externalActionMetadata, i.generateProofRemotely, M ?? n, S ? t : P, E, void 0, void 0, S ? O : void 0), V = D && S ? void 0 : await s(D, L, z, R);
47
+ if (S) {
48
+ if (!j) throw Error("Withdraw Action: No Token Found");
49
+ return D ? await v(i, E, A[0], j, L, R, z) : await g(i, E, A[0], j, L, R, z);
55
50
  }
56
- let W = p(E, D, A, j, k), G = u("withdraw.relayer"), K = await v(D, z, V, B, H, void 0, void 0, W, U);
57
- return G.log("done", { txHash: K }), K;
51
+ return await _(E, L, z, R, B, void 0, void 0, f(T, E, k, A, O), V);
58
52
  };
59
53
  //#endregion
60
- export { S as hinkalWithdraw };
54
+ export { x as hinkalWithdraw };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../utils/solanaMint.utils.cjs`),r=require(`../utils/hinkalTiming.utils.cjs`),i=require(`../snarkjs/common.snarkjs.cjs`),a=require(`../../webworker/worker.registry.cjs`),o=require(`../../webworker/performTaskWithWorker.cjs`),s=require(`../../webworker/zkProofWorker/zkProofWorker.types.cjs`);var c=async(c,l,u,d)=>{if(i.hasOnlyZeroAmounts(d))return;let f=e.isSolanaLike(c),p=d.map(e=>e.map(e=>e.amount.toString())),m=d.map(e=>e.map(e=>e.timeStamp)),h=d.map(e=>e.map(e=>i.getUtxoCircuitInRandomization(e))),g=d.map(e=>e.map(e=>e.getConstructableParams())),_=d.map(e=>e.map(e=>e.amount===0n?`0`:BigInt(e.getCommitment()).toString())),v=await o.performTaskWithWorker({type:a.WorkerVariant.ZKProof,payload:{type:s.ZKProofWorkerActionType.BUILD_IN_NULLIFIERS,data:{inputUtxosSerialized:g}}}),y=l.getShieldedPrivateKey(),b=l.getSpendingKeyPair().pubSpendingBJJPoint,x=f?u.map(e=>{let{compressedAddress:t}=n.formatMintAddress(e);return BigInt(t).toString()}):u.map(e=>BigInt(e).toString()),S=r.createRnDeltaTiming(`withdraw.stealthValidation`),C=0;d.forEach((e,n)=>{e.forEach((e,r)=>{C+=1;let i=e.getStealthAddress(),a=e.spendingPublicKey??b,o=e.isNewStyle&&e.H0?t.UserKeys.getStealthAddressNewStyle(e.H0,y,a):t.UserKeys.getStealthAddress(BigInt(e.randomization),y);if(BigInt(i).toString()!==BigInt(o).toString())throw Error(`Commitment validation stealth mismatch at tokenIdx=${n}, utxoIdx=${r}`)})}),S.log(`done`,{stealthChecks:C});let w={nullifyingPrivateKey:y,spendingPublicKey:b,erc20TokenAddresses:x,inAmounts:p,inRandomizations:h,inH0Ax:d.map(e=>e.map(e=>i.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:d.map(e=>e.map(e=>i.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:d.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:m,inCommitments:_,inNullifiers:v};if(!(!u.length||!d[0]?.length))return{tokenAddresses:x,inAmounts:p,inTimeStamps:m,inRandomizations:h,inCommitments:_,inNullifiers:v,verifierName:`commitmentCalculator${u.length}x${d[0].length}`,commitmentInput:w}},l=(e,t)=>{if(!(!e||!t))return{tokenAddresses:e.tokenAddresses,inAmounts:e.inAmounts,inTimeStamps:e.inTimeStamps,inRandomizations:e.inRandomizations,inCommitments:e.inCommitments,inNullifiers:e.inNullifiers,proof:{a:t.zkCallData[0],b:t.zkCallData[1],c:t.zkCallData[2]}}};exports.buildCommitmentValidationData=c,exports.buildCommitmentValidationDataFromProof=l;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../utils/solanaMint.utils.cjs`),r=require(`../snarkjs/common.snarkjs.cjs`),i=require(`../../webworker/worker.registry.cjs`),a=require(`../../webworker/performTaskWithWorker.cjs`),o=require(`../../webworker/zkProofWorker/zkProofWorker.types.cjs`);var s=async(s,c,l,u)=>{if(r.hasOnlyZeroAmounts(u))return;let d=e.isSolanaLike(s),f=u.map(e=>e.map(e=>e.amount.toString())),p=u.map(e=>e.map(e=>e.timeStamp)),m=u.map(e=>e.map(e=>r.getUtxoCircuitInRandomization(e))),h=u.map(e=>e.map(e=>e.getConstructableParams())),g=u.map(e=>e.map(e=>e.amount===0n?`0`:BigInt(e.getCommitment()).toString())),_=await a.performTaskWithWorker({type:i.WorkerVariant.ZKProof,payload:{type:o.ZKProofWorkerActionType.BUILD_IN_NULLIFIERS,data:{inputUtxosSerialized:h}}}),v=c.getShieldedPrivateKey(),y=c.getSpendingKeyPair().pubSpendingBJJPoint,b=d?l.map(e=>{let{compressedAddress:t}=n.formatMintAddress(e);return BigInt(t).toString()}):l.map(e=>BigInt(e).toString());u.forEach((e,n)=>{e.forEach((e,r)=>{let i=e.getStealthAddress(),a=e.spendingPublicKey??y,o=e.isNewStyle&&e.H0?t.UserKeys.getStealthAddressNewStyle(e.H0,v,a):t.UserKeys.getStealthAddress(BigInt(e.randomization),v);if(BigInt(i).toString()!==BigInt(o).toString())throw Error(`Commitment validation stealth mismatch at tokenIdx=${n}, utxoIdx=${r}`)})});let x={nullifyingPrivateKey:v,spendingPublicKey:y,erc20TokenAddresses:b,inAmounts:f,inRandomizations:m,inH0Ax:u.map(e=>e.map(e=>r.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:u.map(e=>e.map(e=>r.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:u.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:p,inCommitments:g,inNullifiers:_};if(!(!l.length||!u[0]?.length))return{tokenAddresses:b,inAmounts:f,inTimeStamps:p,inRandomizations:m,inCommitments:g,inNullifiers:_,verifierName:`commitmentCalculator${l.length}x${u[0].length}`,commitmentInput:x}},c=(e,t)=>{if(!(!e||!t))return{tokenAddresses:e.tokenAddresses,inAmounts:e.inAmounts,inTimeStamps:e.inTimeStamps,inRandomizations:e.inRandomizations,inCommitments:e.inCommitments,inNullifiers:e.inNullifiers,proof:{a:t.zkCallData[0],b:t.zkCallData[1],c:t.zkCallData[2]}}};exports.buildCommitmentValidationData=s,exports.buildCommitmentValidationDataFromProof=c;
@@ -1,55 +1,53 @@
1
1
  import { isSolanaLike as e } from "../../constants/chains.constants.mjs";
2
2
  import { UserKeys as t } from "../../data-structures/crypto-keys/keys.mjs";
3
3
  import { formatMintAddress as n } from "../utils/solanaMint.utils.mjs";
4
- import { createRnDeltaTiming as r } from "../utils/hinkalTiming.utils.mjs";
5
- import { getUtxoCircuitH0Coords as i, getUtxoCircuitInRandomization as a, hasOnlyZeroAmounts as o } from "../snarkjs/common.snarkjs.mjs";
6
- import { WorkerVariant as s } from "../../webworker/worker.registry.mjs";
7
- import { performTaskWithWorker as c } from "../../webworker/performTaskWithWorker.mjs";
8
- import { ZKProofWorkerActionType as l } from "../../webworker/zkProofWorker/zkProofWorker.types.mjs";
4
+ import { getUtxoCircuitH0Coords as r, getUtxoCircuitInRandomization as i, hasOnlyZeroAmounts as a } from "../snarkjs/common.snarkjs.mjs";
5
+ import { WorkerVariant as o } from "../../webworker/worker.registry.mjs";
6
+ import { performTaskWithWorker as s } from "../../webworker/performTaskWithWorker.mjs";
7
+ import { ZKProofWorkerActionType as c } from "../../webworker/zkProofWorker/zkProofWorker.types.mjs";
9
8
  //#region libs/shared/common/src/functions/pre-transaction/buildCommitmentValidationData.ts
10
- var u = async (u, d, f, p) => {
11
- if (o(p)) return;
12
- let m = e(u), h = p.map((e) => e.map((e) => e.amount.toString())), g = p.map((e) => e.map((e) => e.timeStamp)), _ = p.map((e) => e.map((e) => a(e))), v = p.map((e) => e.map((e) => e.getConstructableParams())), y = p.map((e) => e.map((e) => e.amount === 0n ? "0" : BigInt(e.getCommitment()).toString())), b = await c({
13
- type: s.ZKProof,
9
+ var l = async (l, u, d, f) => {
10
+ if (a(f)) return;
11
+ let p = e(l), m = f.map((e) => e.map((e) => e.amount.toString())), h = f.map((e) => e.map((e) => e.timeStamp)), g = f.map((e) => e.map((e) => i(e))), _ = f.map((e) => e.map((e) => e.getConstructableParams())), v = f.map((e) => e.map((e) => e.amount === 0n ? "0" : BigInt(e.getCommitment()).toString())), y = await s({
12
+ type: o.ZKProof,
14
13
  payload: {
15
- type: l.BUILD_IN_NULLIFIERS,
16
- data: { inputUtxosSerialized: v }
14
+ type: c.BUILD_IN_NULLIFIERS,
15
+ data: { inputUtxosSerialized: _ }
17
16
  }
18
- }), x = d.getShieldedPrivateKey(), S = d.getSpendingKeyPair().pubSpendingBJJPoint, C = m ? f.map((e) => {
17
+ }), b = u.getShieldedPrivateKey(), x = u.getSpendingKeyPair().pubSpendingBJJPoint, S = p ? d.map((e) => {
19
18
  let { compressedAddress: t } = n(e);
20
19
  return BigInt(t).toString();
21
- }) : f.map((e) => BigInt(e).toString()), w = r("withdraw.stealthValidation"), T = 0;
22
- p.forEach((e, n) => {
20
+ }) : d.map((e) => BigInt(e).toString());
21
+ f.forEach((e, n) => {
23
22
  e.forEach((e, r) => {
24
- T += 1;
25
- let i = e.getStealthAddress(), a = e.spendingPublicKey ?? S, o = e.isNewStyle && e.H0 ? t.getStealthAddressNewStyle(e.H0, x, a) : t.getStealthAddress(BigInt(e.randomization), x);
23
+ let i = e.getStealthAddress(), a = e.spendingPublicKey ?? x, o = e.isNewStyle && e.H0 ? t.getStealthAddressNewStyle(e.H0, b, a) : t.getStealthAddress(BigInt(e.randomization), b);
26
24
  if (BigInt(i).toString() !== BigInt(o).toString()) throw Error(`Commitment validation stealth mismatch at tokenIdx=${n}, utxoIdx=${r}`);
27
25
  });
28
- }), w.log("done", { stealthChecks: T });
29
- let E = {
30
- nullifyingPrivateKey: x,
31
- spendingPublicKey: S,
32
- erc20TokenAddresses: C,
33
- inAmounts: h,
34
- inRandomizations: _,
35
- inH0Ax: p.map((e) => e.map((e) => i(e)[0].toString())),
36
- inH0Ay: p.map((e) => e.map((e) => i(e)[1].toString())),
37
- isNewStyle: p.map((e) => e.map((e) => !!e.isNewStyle)),
38
- inTimeStamps: g,
39
- inCommitments: y,
40
- inNullifiers: b
26
+ });
27
+ let C = {
28
+ nullifyingPrivateKey: b,
29
+ spendingPublicKey: x,
30
+ erc20TokenAddresses: S,
31
+ inAmounts: m,
32
+ inRandomizations: g,
33
+ inH0Ax: f.map((e) => e.map((e) => r(e)[0].toString())),
34
+ inH0Ay: f.map((e) => e.map((e) => r(e)[1].toString())),
35
+ isNewStyle: f.map((e) => e.map((e) => !!e.isNewStyle)),
36
+ inTimeStamps: h,
37
+ inCommitments: v,
38
+ inNullifiers: y
41
39
  };
42
- if (!(!f.length || !p[0]?.length)) return {
43
- tokenAddresses: C,
44
- inAmounts: h,
45
- inTimeStamps: g,
46
- inRandomizations: _,
47
- inCommitments: y,
48
- inNullifiers: b,
49
- verifierName: `commitmentCalculator${f.length}x${p[0].length}`,
50
- commitmentInput: E
40
+ if (!(!d.length || !f[0]?.length)) return {
41
+ tokenAddresses: S,
42
+ inAmounts: m,
43
+ inTimeStamps: h,
44
+ inRandomizations: g,
45
+ inCommitments: v,
46
+ inNullifiers: y,
47
+ verifierName: `commitmentCalculator${d.length}x${f[0].length}`,
48
+ commitmentInput: C
51
49
  };
52
- }, d = (e, t) => {
50
+ }, u = (e, t) => {
53
51
  if (!(!e || !t)) return {
54
52
  tokenAddresses: e.tokenAddresses,
55
53
  inAmounts: e.inAmounts,
@@ -65,4 +63,4 @@ var u = async (u, d, f, p) => {
65
63
  };
66
64
  };
67
65
  //#endregion
68
- export { u as buildCommitmentValidationData, d as buildCommitmentValidationDataFromProof };
66
+ export { l as buildCommitmentValidationData, u as buildCommitmentValidationDataFromProof };
@@ -1 +1 @@
1
- const e=require(`../utils/amounts.utils.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../data-structures/utxo/Utxo.cjs`),r=require(`../utils/hinkalTiming.utils.cjs`);var i=(i,a,o,s,c=!0,l,u)=>{let d=e.countTotalAmountInUtxos(a),{erc20TokenAddress:f,mintAddress:p}=a[0];if(c&&o<0n&&d+o<0n)throw Error(t.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let m=r.createRnDeltaTiming(`withdraw.outputUtxo`),h=[new n.Utxo({amount:e.bigintMax(d+o,0n),erc20TokenAddress:f,mintAddress:p,nullifyingKey:i.getShieldedPrivateKey(),timeStamp:s,spendingPublicKey:i.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0})];if(m.log(`newUtxo-change`),l!==void 0&&u!==void 0){let[e,t,r,,i]=l.split(`,`);h.push(new n.Utxo({amount:u,erc20TokenAddress:f,mintAddress:p,H0:[BigInt(t),BigInt(r)],stealthAddress:e,encryptionKey:i,timeStamp:s,isNewStyle:!0}))}return{outputUtxos:h}};exports.outputUtxoProcessing=i;
1
+ const e=require(`../utils/amounts.utils.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../data-structures/utxo/Utxo.cjs`);var r=(r,i,a,o,s=!0,c,l)=>{let u=e.countTotalAmountInUtxos(i),{erc20TokenAddress:d,mintAddress:f}=i[0];if(s&&a<0n&&u+a<0n)throw Error(t.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let p=[new n.Utxo({amount:e.bigintMax(u+a,0n),erc20TokenAddress:d,mintAddress:f,nullifyingKey:r.getShieldedPrivateKey(),timeStamp:o,spendingPublicKey:r.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0})];if(c!==void 0&&l!==void 0){let[e,t,r,,i]=c.split(`,`);p.push(new n.Utxo({amount:l,erc20TokenAddress:d,mintAddress:f,H0:[BigInt(t),BigInt(r)],stealthAddress:e,encryptionKey:i,timeStamp:o,isNewStyle:!0}))}return{outputUtxos:p}};exports.outputUtxoProcessing=r;
@@ -1,34 +1,33 @@
1
1
  import { bigintMax as e, countTotalAmountInUtxos as t } from "../utils/amounts.utils.mjs";
2
2
  import { transactionErrorCodes as n } from "../../error-handling/error-codes.constants.mjs";
3
3
  import { Utxo as r } from "../../data-structures/utxo/Utxo.mjs";
4
- import { createRnDeltaTiming as i } from "../utils/hinkalTiming.utils.mjs";
5
4
  //#region libs/shared/common/src/functions/pre-transaction/outputUtxoProcessing.ts
6
- var a = (a, o, s, c, l = !0, u, d) => {
7
- let f = t(o), { erc20TokenAddress: p, mintAddress: m } = o[0];
8
- if (l && s < 0n && f + s < 0n) throw Error(n.INSUFFICIENT_FUNDS_TO_TRANSACT);
9
- let h = i("withdraw.outputUtxo"), g = [new r({
10
- amount: e(f + s, 0n),
11
- erc20TokenAddress: p,
12
- mintAddress: m,
13
- nullifyingKey: a.getShieldedPrivateKey(),
14
- timeStamp: c,
15
- spendingPublicKey: a.getSpendingKeyPair().pubSpendingBJJPoint,
5
+ var i = (i, a, o, s, c = !0, l, u) => {
6
+ let d = t(a), { erc20TokenAddress: f, mintAddress: p } = a[0];
7
+ if (c && o < 0n && d + o < 0n) throw Error(n.INSUFFICIENT_FUNDS_TO_TRANSACT);
8
+ let m = [new r({
9
+ amount: e(d + o, 0n),
10
+ erc20TokenAddress: f,
11
+ mintAddress: p,
12
+ nullifyingKey: i.getShieldedPrivateKey(),
13
+ timeStamp: s,
14
+ spendingPublicKey: i.getSpendingKeyPair().pubSpendingBJJPoint,
16
15
  isNewStyle: !0
17
16
  })];
18
- if (h.log("newUtxo-change"), u !== void 0 && d !== void 0) {
19
- let [e, t, n, , i] = u.split(",");
20
- g.push(new r({
21
- amount: d,
22
- erc20TokenAddress: p,
23
- mintAddress: m,
17
+ if (l !== void 0 && u !== void 0) {
18
+ let [e, t, n, , i] = l.split(",");
19
+ m.push(new r({
20
+ amount: u,
21
+ erc20TokenAddress: f,
22
+ mintAddress: p,
24
23
  H0: [BigInt(t), BigInt(n)],
25
24
  stealthAddress: e,
26
25
  encryptionKey: i,
27
- timeStamp: c,
26
+ timeStamp: s,
28
27
  isNewStyle: !0
29
28
  }));
30
29
  }
31
- return { outputUtxos: g };
30
+ return { outputUtxos: m };
32
31
  };
33
32
  //#endregion
34
- export { a as outputUtxoProcessing };
33
+ export { i as outputUtxoProcessing };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),ee=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../../data-structures/crypto-keys/keys.cjs`),i=require(`../utils/time.utils.cjs`),a=require(`../../types/external-action.types.cjs`),o=require(`../../error-handling/logger.cjs`),s=require(`../utils/hinkalTiming.utils.cjs`),c=require(`../utils/bit.operations.cjs`),l=require(`./common.snarkjs.cjs`),u=require(`./signedMessageHash.cjs`),te=require(`./generateCircomData.cjs`),d=require(`../../data-structures/AccountActions/AccountActions.cjs`),f=require(`./generateMainAndCommitmentZkProof.cjs`),p=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),m=require(`../private-wallet/emporium.helpers.cjs`);var h=async(h,g,_,v,y,b,x,S,C,w=t.zeroAddress,T=e.chainIds.localhost,E=g.map(()=>!1),D=void 0,O,k)=>{let A=s.createRnDeltaTiming(`withdraw.zkProof`),j=l.getZkProofVerifierName(g,_),M=l.calcAmountChanges(g,_),N=g.map(e=>e[0].erc20TokenAddress),P=l.calcEncryptedOutputs(_),F=t.defaultSignatureData,I=v.getShieldedPrivateKey(),{pubSpendingBJJPoint:ne}=v.getSpendingKeyPair(),L=l.calcStealthAddressStructure(r.UserKeys.findCorrectRandomization(n.randomBigInt(31),I),I,v.getSpendingKeyPair().pubSpendingBJJPoint),{inCommitmentSiblings:re,inCommitmentSiblingSides:ie,rootHashHinkal:R,inNullifiers:z}=await p.getDataFromWorkers(T,h,g.map(e=>e.map(e=>e.getConstructableParams())));A.log(`getDataFromWorkers`,{verifierName:j});let B=l.buildOutCommitments(_),V=n.randomBigInt(31),H=ee.poseidonFunction(V),U=BigInt(_.length>0?_[0][0].timeStamp:i.getCurrentTimeInSeconds()),W={rootHashHinkal:R,spendingPublicKey:ne,nullifyingPrivateKey:I,erc20TokenAddresses:N,amountChanges:M,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>l.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>l.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>l.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:z,inCommitmentSiblings:re,inCommitmentSiblingSides:ie,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:U,outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:B,calldataHash:0n,messageSeed:V,H0Ax:c.takeOffHighestBit(L.extraRandomization),H0Ay:L.H0},G=l.calcPublicSignalCount(j,W.erc20TokenAddresses,W.amountChanges,W.inNullifiers,W.outCommitments),K=l.calcAmountChanges(g,_,!0),q=l.getSlippageValues(K);o.Logger.log({publicSignalCount:G});let J=Array.isArray(x)?x:[x],Y=e.getOnchainChainId(T),ae=k?d.AccountActions.getSignerAddressFromPrivateKey(Y,k):void 0,X=y===a.ExternalActionId.Emporium?await m.encodeEmporiumMetadata(T,b??t.zeroAddress,k,J,H,ae):await m.encodeEmporiumMetadata(T,t.zeroAddress,void 0,y===0n?[]:J,H,t.zeroAddress);W.calldataHash=l.createCallDataHash(G,w,b,y,X,P,D,q,E,C,F,O);let Z=u.computeSignedMessageHashEvm({rootHashHinkal:R,erc20TokenAddresses:N,amountChanges:M,outTimeStamp:U,inNullifiers:z,outCommitments:B,calldataHash:W.calldataHash,message:H,outH1Ay:L.H1,H0Ax:W.H0Ax,H0Ay:L.H0}),{R8:Q,S:oe}=v.signEddsa(Z);A.log(`signEddsa`),W.eddsaSignature=[Q[0],Q[1],oe],W.signedMessageHash=Z;let $=j.startsWith(`mainEVMCircuitMin0`),se={outTimeStamp:U,calldataHash:W.calldataHash,messageSeed:V},{zkCallData:ce,commitmentValidationData:le}=await f.generateMainAndCommitmentZkProof(T,v,N,g,j,$?se:W,S);return A.log(`generateZkProof`),{zkCallData:ce,circomData:te.generateCircomData(B,z,R,K,N,_,P,G,y,b,X,w,W.calldataHash,L,E,D,$?Number(U):void 0,q,C,F,O),dimData:{tokenNumber:g.length,nullifierAmount:g.length>0?g[0].length:0,outputAmount:_.length>0?_[0].length:0},encryptedOutputs:P,commitmentValidationData:le}};exports.constructZkProof=h;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../web3/etherFunctions.cjs`),i=require(`../../data-structures/crypto-keys/keys.cjs`),a=require(`../utils/time.utils.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../error-handling/logger.cjs`),c=require(`../utils/bit.operations.cjs`),l=require(`./common.snarkjs.cjs`),ee=require(`./signedMessageHash.cjs`),u=require(`./generateCircomData.cjs`),te=require(`../../data-structures/AccountActions/AccountActions.cjs`),d=require(`./generateMainAndCommitmentZkProof.cjs`),f=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),p=require(`../private-wallet/emporium.helpers.cjs`);var m=async(m,h,g,_,v,y,b,x,S,C=t.zeroAddress,w=e.chainIds.localhost,T=h.map(()=>!1),E=void 0,D,O)=>{let k=l.getZkProofVerifierName(h,g),A=l.calcAmountChanges(h,g),j=h.map(e=>e[0].erc20TokenAddress),M=l.calcEncryptedOutputs(g),N=t.defaultSignatureData,P=_.getShieldedPrivateKey(),{pubSpendingBJJPoint:F}=_.getSpendingKeyPair(),I=l.calcStealthAddressStructure(i.UserKeys.findCorrectRandomization(r.randomBigInt(31),P),P,_.getSpendingKeyPair().pubSpendingBJJPoint),{inCommitmentSiblings:ne,inCommitmentSiblingSides:re,rootHashHinkal:L,inNullifiers:R}=await f.getDataFromWorkers(w,m,h.map(e=>e.map(e=>e.getConstructableParams()))),z=l.buildOutCommitments(g),B=r.randomBigInt(31),V=n.poseidonFunction(B),H=BigInt(g.length>0?g[0][0].timeStamp:a.getCurrentTimeInSeconds()),U={rootHashHinkal:L,spendingPublicKey:F,nullifyingPrivateKey:P,erc20TokenAddresses:j,amountChanges:A,inAmounts:h.map(e=>e.map(e=>e.amount.toString())),inRandomizations:h.map(e=>e.map(e=>l.getUtxoCircuitInRandomization(e))),inH0Ax:h.map(e=>e.map(e=>l.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:h.map(e=>e.map(e=>l.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:h.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:h.map(e=>e.map(e=>e.timeStamp)),inNullifiers:R,inCommitmentSiblings:ne,inCommitmentSiblingSides:re,outAmounts:g.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:H,outPublicKeys:g.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:z,calldataHash:0n,messageSeed:B,H0Ax:c.takeOffHighestBit(I.extraRandomization),H0Ay:I.H0},W=l.calcPublicSignalCount(k,U.erc20TokenAddresses,U.amountChanges,U.inNullifiers,U.outCommitments),G=l.calcAmountChanges(h,g,!0),K=l.getSlippageValues(G);s.Logger.log({publicSignalCount:W});let q=Array.isArray(b)?b:[b],J=e.getOnchainChainId(w),Y=O?te.AccountActions.getSignerAddressFromPrivateKey(J,O):void 0,X=v===o.ExternalActionId.Emporium?await p.encodeEmporiumMetadata(w,y??t.zeroAddress,O,q,V,Y):await p.encodeEmporiumMetadata(w,t.zeroAddress,void 0,v===0n?[]:q,V,t.zeroAddress);U.calldataHash=l.createCallDataHash(W,C,y,v,X,M,E,K,T,S,N,D);let Z=ee.computeSignedMessageHashEvm({rootHashHinkal:L,erc20TokenAddresses:j,amountChanges:A,outTimeStamp:H,inNullifiers:R,outCommitments:z,calldataHash:U.calldataHash,message:V,outH1Ay:I.H1,H0Ax:U.H0Ax,H0Ay:I.H0}),{R8:Q,S:ie}=_.signEddsa(Z);U.eddsaSignature=[Q[0],Q[1],ie],U.signedMessageHash=Z;let $=k.startsWith(`mainEVMCircuitMin0`),ae={outTimeStamp:H,calldataHash:U.calldataHash,messageSeed:B},{zkCallData:oe,commitmentValidationData:se}=await d.generateMainAndCommitmentZkProof(w,_,j,h,k,$?ae:U,x);return{zkCallData:oe,circomData:u.generateCircomData(z,R,L,G,j,g,M,W,v,y,X,C,U.calldataHash,I,T,E,$?Number(H):void 0,K,S,N,D),dimData:{tokenNumber:h.length,nullifierAmount:h.length>0?h[0].length:0,outputAmount:g.length>0?g[0].length:0},encryptedOutputs:M,commitmentValidationData:se}};exports.constructZkProof=m;
@@ -1,85 +1,82 @@
1
1
  import { chainIds as e, getOnchainChainId as t } from "../../constants/chains.constants.mjs";
2
2
  import { defaultSignatureData as ee, zeroAddress as n } from "../../constants/protocol.constants.mjs";
3
- import { poseidonFunction as r } from "../../crypto/poseidon.mjs";
4
- import { randomBigInt as i } from "../web3/etherFunctions.mjs";
5
- import { UserKeys as te } from "../../data-structures/crypto-keys/keys.mjs";
6
- import { getCurrentTimeInSeconds as ne } from "../utils/time.utils.mjs";
7
- import { ExternalActionId as re } from "../../types/external-action.types.mjs";
8
- import { Logger as ie } from "../../error-handling/logger.mjs";
9
- import { createRnDeltaTiming as ae } from "../utils/hinkalTiming.utils.mjs";
10
- import { takeOffHighestBit as oe } from "../utils/bit.operations.mjs";
11
- import { buildOutCommitments as se, calcAmountChanges as a, calcEncryptedOutputs as o, calcPublicSignalCount as s, calcStealthAddressStructure as c, createCallDataHash as l, getSlippageValues as ce, getUtxoCircuitH0Coords as u, getUtxoCircuitInRandomization as le, getZkProofVerifierName as ue } from "./common.snarkjs.mjs";
3
+ import { poseidonFunction as te } from "../../crypto/poseidon.mjs";
4
+ import { randomBigInt as r } from "../web3/etherFunctions.mjs";
5
+ import { UserKeys as i } from "../../data-structures/crypto-keys/keys.mjs";
6
+ import { getCurrentTimeInSeconds as a } from "../utils/time.utils.mjs";
7
+ import { ExternalActionId as o } from "../../types/external-action.types.mjs";
8
+ import { Logger as s } from "../../error-handling/logger.mjs";
9
+ import { takeOffHighestBit as ne } from "../utils/bit.operations.mjs";
10
+ import { buildOutCommitments as re, calcAmountChanges as c, calcEncryptedOutputs as ie, calcPublicSignalCount as ae, calcStealthAddressStructure as oe, createCallDataHash as se, getSlippageValues as ce, getUtxoCircuitH0Coords as l, getUtxoCircuitInRandomization as le, getZkProofVerifierName as ue } from "./common.snarkjs.mjs";
12
11
  import { computeSignedMessageHashEvm as de } from "./signedMessageHash.mjs";
13
12
  import { generateCircomData as fe } from "./generateCircomData.mjs";
14
- import { AccountActions as pe } from "../../data-structures/AccountActions/AccountActions.mjs";
15
- import { generateMainAndCommitmentZkProof as me } from "./generateMainAndCommitmentZkProof.mjs";
16
- import { getDataFromWorkers as d } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
17
- import { encodeEmporiumMetadata as f } from "../private-wallet/emporium.helpers.mjs";
13
+ import { AccountActions as u } from "../../data-structures/AccountActions/AccountActions.mjs";
14
+ import { generateMainAndCommitmentZkProof as d } from "./generateMainAndCommitmentZkProof.mjs";
15
+ import { getDataFromWorkers as f } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
16
+ import { encodeEmporiumMetadata as p } from "../private-wallet/emporium.helpers.mjs";
18
17
  //#region libs/shared/common/src/functions/snarkjs/constructGeneralZkProof.ts
19
- var p = async (p, m, h, g, _, v, y, b, x, S = n, C = e.localhost, w = m.map(() => !1), T = void 0, E, D) => {
20
- let O = ae("withdraw.zkProof"), k = ue(m, h), A = a(m, h), j = m.map((e) => e[0].erc20TokenAddress), M = o(h), N = ee, P = g.getShieldedPrivateKey(), { pubSpendingBJJPoint: F } = g.getSpendingKeyPair(), I = c(te.findCorrectRandomization(i(31), P), P, g.getSpendingKeyPair().pubSpendingBJJPoint), { inCommitmentSiblings: L, inCommitmentSiblingSides: R, rootHashHinkal: z, inNullifiers: B } = await d(C, p, m.map((e) => e.map((e) => e.getConstructableParams())));
21
- O.log("getDataFromWorkers", { verifierName: k });
22
- let V = se(h), H = i(31), U = r(H), W = BigInt(h.length > 0 ? h[0][0].timeStamp : ne()), G = {
23
- rootHashHinkal: z,
24
- spendingPublicKey: F,
25
- nullifyingPrivateKey: P,
26
- erc20TokenAddresses: j,
27
- amountChanges: A,
28
- inAmounts: m.map((e) => e.map((e) => e.amount.toString())),
29
- inRandomizations: m.map((e) => e.map((e) => le(e))),
30
- inH0Ax: m.map((e) => e.map((e) => u(e)[0].toString())),
31
- inH0Ay: m.map((e) => e.map((e) => u(e)[1].toString())),
32
- isNewStyle: m.map((e) => e.map((e) => !!e.isNewStyle)),
33
- inTimeStamps: m.map((e) => e.map((e) => e.timeStamp)),
34
- inNullifiers: B,
35
- inCommitmentSiblings: L,
36
- inCommitmentSiblingSides: R,
37
- outAmounts: h.map((e) => e.map((e) => e.amount.toString())),
38
- outTimeStamp: W,
39
- outPublicKeys: h.map((e) => e.map((e) => e.getStealthAddress())),
40
- outCommitments: V,
18
+ var m = async (m, h, g, _, v, y, b, pe, x, S = n, C = e.localhost, w = h.map(() => !1), T = void 0, E, D) => {
19
+ let O = ue(h, g), k = c(h, g), A = h.map((e) => e[0].erc20TokenAddress), j = ie(g), M = ee, N = _.getShieldedPrivateKey(), { pubSpendingBJJPoint: P } = _.getSpendingKeyPair(), F = oe(i.findCorrectRandomization(r(31), N), N, _.getSpendingKeyPair().pubSpendingBJJPoint), { inCommitmentSiblings: I, inCommitmentSiblingSides: L, rootHashHinkal: R, inNullifiers: z } = await f(C, m, h.map((e) => e.map((e) => e.getConstructableParams()))), B = re(g), V = r(31), H = te(V), U = BigInt(g.length > 0 ? g[0][0].timeStamp : a()), W = {
20
+ rootHashHinkal: R,
21
+ spendingPublicKey: P,
22
+ nullifyingPrivateKey: N,
23
+ erc20TokenAddresses: A,
24
+ amountChanges: k,
25
+ inAmounts: h.map((e) => e.map((e) => e.amount.toString())),
26
+ inRandomizations: h.map((e) => e.map((e) => le(e))),
27
+ inH0Ax: h.map((e) => e.map((e) => l(e)[0].toString())),
28
+ inH0Ay: h.map((e) => e.map((e) => l(e)[1].toString())),
29
+ isNewStyle: h.map((e) => e.map((e) => !!e.isNewStyle)),
30
+ inTimeStamps: h.map((e) => e.map((e) => e.timeStamp)),
31
+ inNullifiers: z,
32
+ inCommitmentSiblings: I,
33
+ inCommitmentSiblingSides: L,
34
+ outAmounts: g.map((e) => e.map((e) => e.amount.toString())),
35
+ outTimeStamp: U,
36
+ outPublicKeys: g.map((e) => e.map((e) => e.getStealthAddress())),
37
+ outCommitments: B,
41
38
  calldataHash: 0n,
42
- messageSeed: H,
43
- H0Ax: oe(I.extraRandomization),
44
- H0Ay: I.H0
45
- }, K = s(k, G.erc20TokenAddresses, G.amountChanges, G.inNullifiers, G.outCommitments), q = a(m, h, !0), J = ce(q);
46
- ie.log({ publicSignalCount: K });
47
- let Y = Array.isArray(y) ? y : [y], he = t(C), ge = D ? pe.getSignerAddressFromPrivateKey(he, D) : void 0, X = _ === re.Emporium ? await f(C, v ?? n, D, Y, U, ge) : await f(C, n, void 0, _ === 0n ? [] : Y, U, n);
48
- G.calldataHash = l(K, S, v, _, X, M, T, J, w, x, N, E);
49
- let Z = de({
50
- rootHashHinkal: z,
51
- erc20TokenAddresses: j,
52
- amountChanges: A,
53
- outTimeStamp: W,
54
- inNullifiers: B,
55
- outCommitments: V,
56
- calldataHash: G.calldataHash,
57
- message: U,
58
- outH1Ay: I.H1,
59
- H0Ax: G.H0Ax,
60
- H0Ay: I.H0
61
- }), { R8: Q, S: _e } = g.signEddsa(Z);
62
- O.log("signEddsa"), G.eddsaSignature = [
63
- Q[0],
64
- Q[1],
65
- _e
66
- ], G.signedMessageHash = Z;
67
- let $ = k.startsWith("mainEVMCircuitMin0"), ve = {
68
- outTimeStamp: W,
69
- calldataHash: G.calldataHash,
70
- messageSeed: H
71
- }, { zkCallData: ye, commitmentValidationData: be } = await me(C, g, j, m, k, $ ? ve : G, b);
72
- return O.log("generateZkProof"), {
73
- zkCallData: ye,
74
- circomData: fe(V, B, z, q, j, h, M, K, _, v, X, S, G.calldataHash, I, w, T, $ ? Number(W) : void 0, J, x, N, E),
39
+ messageSeed: V,
40
+ H0Ax: ne(F.extraRandomization),
41
+ H0Ay: F.H0
42
+ }, G = ae(O, W.erc20TokenAddresses, W.amountChanges, W.inNullifiers, W.outCommitments), K = c(h, g, !0), q = ce(K);
43
+ s.log({ publicSignalCount: G });
44
+ let J = Array.isArray(b) ? b : [b], me = t(C), he = D ? u.getSignerAddressFromPrivateKey(me, D) : void 0, Y = v === o.Emporium ? await p(C, y ?? n, D, J, H, he) : await p(C, n, void 0, v === 0n ? [] : J, H, n);
45
+ W.calldataHash = se(G, S, y, v, Y, j, T, q, w, x, M, E);
46
+ let X = de({
47
+ rootHashHinkal: R,
48
+ erc20TokenAddresses: A,
49
+ amountChanges: k,
50
+ outTimeStamp: U,
51
+ inNullifiers: z,
52
+ outCommitments: B,
53
+ calldataHash: W.calldataHash,
54
+ message: H,
55
+ outH1Ay: F.H1,
56
+ H0Ax: W.H0Ax,
57
+ H0Ay: F.H0
58
+ }), { R8: Z, S: ge } = _.signEddsa(X);
59
+ W.eddsaSignature = [
60
+ Z[0],
61
+ Z[1],
62
+ ge
63
+ ], W.signedMessageHash = X;
64
+ let Q = O.startsWith("mainEVMCircuitMin0"), $ = {
65
+ outTimeStamp: U,
66
+ calldataHash: W.calldataHash,
67
+ messageSeed: V
68
+ }, { zkCallData: _e, commitmentValidationData: ve } = await d(C, _, A, h, O, Q ? $ : W, pe);
69
+ return {
70
+ zkCallData: _e,
71
+ circomData: fe(B, z, R, K, A, g, j, G, v, y, Y, S, W.calldataHash, F, w, T, Q ? Number(U) : void 0, q, x, M, E),
75
72
  dimData: {
76
- tokenNumber: m.length,
77
- nullifierAmount: m.length > 0 ? m[0].length : 0,
78
- outputAmount: h.length > 0 ? h[0].length : 0
73
+ tokenNumber: h.length,
74
+ nullifierAmount: h.length > 0 ? h[0].length : 0,
75
+ outputAmount: g.length > 0 ? g[0].length : 0
79
76
  },
80
- encryptedOutputs: M,
81
- commitmentValidationData: be
77
+ encryptedOutputs: j,
78
+ commitmentValidationData: ve
82
79
  };
83
80
  };
84
81
  //#endregion
85
- export { p as constructZkProof };
82
+ export { m as constructZkProof };
@@ -1,4 +1,2 @@
1
1
  export declare const mod: (value: bigint, m?: bigint) => bigint;
2
- export declare const modpow: (b: bigint, e: bigint, m: bigint) => bigint;
3
- /** Modular inverse via extended Euclidean algorithm (much faster than Fermat modpow on RN). */
4
2
  export declare const modInverse: (value: bigint, m?: bigint) => bigint;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/chains.constants.cjs`),t=require(`../error-handling/error-codes.constants.cjs`),n=require(`../types/eip5792.types.cjs`),r=require(`../error-handling/logger.cjs`),i=require(`../functions/utils/create-provider.cjs`),a=require(`../functions/web3/getContractMetadata.cjs`);let o=require(`ethers`),s=require(`wagmi`),c=require(`wagmi/actions`);var l=class l{connector;chainId;originalProvider;fetchProviders={};signer;chainEventListener;config;unsubscribeFns=[];constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{if(e.isSolanaLike(t))return;let{fetchRpcUrl:n}=e.networkRegistry[t];if(!n)throw Error(`No Fetch RPC URL In Provider Adapter`);this.fetchProviders[t]=n.includes(`wss`)?new o.ethers.WebSocketProvider(n):i.createJsonRpcProvider(t)})}initConnector(e){this.connector=e}initConfig(e){this.config=e}async init(e){if(!this.connector)throw Error(`No Connector In Provider Adapter`);if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`);let t=await this.connector.getProvider();this.originalProvider=new o.ethers.BrowserProvider(t);let n=(await this.connector.getAccounts())?.[0];if(!n){this.chainEventListener&&this.chainEventListener.onChainChanged();return}this.signer=await this.walletClientToSigner({transport:t,account:n},this.chainId)}async disconnectFromConnector(){if(!this.config)throw Error(`No Config In Provider Adapter`);this.release(),await(0,c.disconnect)(this.config)}async connectToConnector(e){if(!this.config)throw Error(`No Config In Provider Adapter`);let{isConnected:n,chainId:r,address:i}=(0,c.getAccount)(this.config);if(n&&i){let t=r??await Promise.resolve(e.getChainId?.())??void 0;if(t)return t}if(e.id===`walletConnect`&&!n)try{await(0,c.reconnect)(this.config,{connectors:[e]}),await(0,c.disconnect)(this.config)}catch{}try{return(await(0,c.connect)(this.config,{connector:e})).chainId}catch(n){if(n instanceof s.ConnectorAlreadyConnectedError)return e.getChainId();let r=t.transactionErrorCodes.CONNECTION_FAILED;throw n?.code===4001&&(r=t.UserFriendlyErrorCodes.YOU_CANCELED_REQUEST),Error(r)}}getChainId(){return this.chainId}async waitForTransaction(e,n,r){if((await this.fetchProviders[e]?.waitForTransaction(n,r))?.status)return!0;throw Error(t.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.config)throw Error(`No Config In Provider Adapter`);let n=await(0,c.signMessage)(this.config,{message:e});if(!n)throw Error(t.transactionErrorCodes.SIGNING_FAILED);if(n.includes(`error`))throw Error(t.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return n}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(t){if(!this.config)throw Error(`No Config In Provider Adapter`);let n=e.getOnchainChainId(t.chainId);return(0,c.switchChain)(this.config,{chainId:n})}async getAddress(){if(!this.config)throw Error(`No Config In Provider Adapter`);let{address:e}=(0,c.getAccount)(this.config);if(!e)throw Error(`IllegalState`);return o.ethers.getAddress(e)}setChainEventListener(e){if(!this.config)throw Error(`No Config In Provider Adapter`);this.chainEventListener=e,this.chainEventListener&&(this.unsubscribeFns.push((0,c.watchAccount)(this.config,{onChange:({address:e},{address:t})=>{this.chainEventListener&&e!==t&&this.chainEventListener.onAccountChanged()}})),this.unsubscribeFns.push((0,c.watchChainId)(this.config,{onChange:e=>{this.chainEventListener&&this.chainEventListener.onChainChanged(e)}})))}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.unsubscribeFns.forEach(e=>e()),this.unsubscribeFns=[]}getContract(e,t,n=void 0,r){return a.getContract(t,e,n,r)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){let r=this.fetchProviders[e];if(!r)throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,r)}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(e){return await this.connectToConnector(e)}isPermitterAvailable(){if(!this.chainId)throw Error(`Illegal state: no chainId`);return!!e.networkRegistry[this.chainId]?.contractData?.permitterAddress}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}static FALLBACK_METHODS=new Set([`eth_blockNumber`,`eth_call`]);wrapTransportWithRpcFallback(e,t){let n=this.fetchProviders[t];return n?{request:async t=>{let r=await e.request(t);return r==null&&l.FALLBACK_METHODS.has(t.method)?n.send(t.method,Array.isArray(t.params)?t.params:[]):r}}:e}async walletClientToSigner(e,t){let{account:n,transport:r}=e;return new o.ethers.BrowserProvider(this.wrapTransportWithRpcFallback(r,t)).getSigner(n)}async supportsBatchCall(t){if(!this.originalProvider)return!1;try{let n=await this.getAddress(),r=`0x${e.getOnchainChainId(t).toString(16)}`,i=await this.originalProvider.send(`wallet_getCapabilities`,[n,[r]]),a=i?.[r]||i?.[`0x0`];if(!a?.atomic)return!1;let o=typeof a.atomic==`string`?a.atomic:a.atomic?.status;return o===`supported`||o===`ready`}catch{return!1}}async waitForBatchTransactionStatus(e){if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);for(let t=0;t<60;t+=1){await new Promise(e=>{setTimeout(()=>e(),1e3)});try{let t=await this.originalProvider.send(`wallet_getCallsStatus`,[e]);if(t.status===n.CallsStatus.Confirmed&&t.receipts?.[0]?.transactionHash)return t.receipts[0].transactionHash;if(t.status===n.CallsStatus.OffchainFailure||t.status===n.CallsStatus.ChainFailure||t.status===n.CallsStatus.PartialFailure)break}catch(e){r.Logger.log(`waitForBatchTransactionStatus:`,e)}}throw Error(`Batch transaction timed out or failed`)}async sendBatchCallsTransaction(t,n){if(!this.fetchProviders[t])throw Error(`WagmiProviderAdapter: fetchProvider not initialized`);if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);let r=await this.getAddress(),i={version:`2.0.0`,chainId:`0x${e.getOnchainChainId(t).toString(16)}`,from:r,atomicRequired:!0,calls:n},a=await this.originalProvider.send(`wallet_sendCalls`,[i]),o=a?.id||a;if(!o||typeof o!=`string`)throw Error(`Invalid batch ID received from wallet_sendCalls`);let s=await this.waitForBatchTransactionStatus(o),c=await this.fetchProviders[t].getTransaction(s);if(!c)throw Error(`Transaction not found`);return c}},u=new l,d=()=>new l;exports.default=d,exports.wagmiProviderAdapter=u;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/chains.constants.cjs`),t=require(`../error-handling/error-codes.constants.cjs`),n=require(`../types/eip5792.types.cjs`),r=require(`../error-handling/logger.cjs`),i=require(`../functions/utils/create-provider.cjs`),a=require(`../functions/web3/getContractMetadata.cjs`);let o=require(`ethers`),s=require(`wagmi`),c=require(`wagmi/actions`);var l=class l{connector;chainId;originalProvider;fetchProviders={};signer;chainEventListener;config;unsubscribeFns=[];constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{if(e.isSolanaLike(t))return;let{fetchRpcUrl:n}=e.networkRegistry[t];if(!n)throw Error(`No Fetch RPC URL In Provider Adapter`);this.fetchProviders[t]=n.includes(`wss`)?new o.ethers.WebSocketProvider(n):i.createJsonRpcProvider(t)})}initConnector(e){this.connector=e}initConfig(e){this.config=e}async init(e){if(!this.connector)throw Error(`No Connector In Provider Adapter`);if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`);let t=await this.connector.getProvider();this.originalProvider=new o.ethers.BrowserProvider(t);let n=(await this.connector.getAccounts())?.[0];if(!n){this.chainEventListener&&this.chainEventListener.onChainChanged();return}this.signer=await this.walletClientToSigner({transport:t,account:n},this.chainId)}async disconnectFromConnector(){if(!this.config)throw Error(`No Config In Provider Adapter`);this.release(),await(0,c.disconnect)(this.config)}async connectToConnector(e){if(!this.config)throw Error(`No Config In Provider Adapter`);if(e.id===`walletConnect`)try{await(0,c.reconnect)(this.config,{connectors:[e]}),await(0,c.disconnect)(this.config)}catch{}try{return(await(0,c.connect)(this.config,{connector:e})).chainId}catch(n){if(n instanceof s.ConnectorAlreadyConnectedError)return e.getChainId();let r=t.transactionErrorCodes.CONNECTION_FAILED;throw n?.code===4001&&(r=t.UserFriendlyErrorCodes.YOU_CANCELED_REQUEST),Error(r)}}getChainId(){return this.chainId}async waitForTransaction(e,n,r){if((await this.fetchProviders[e]?.waitForTransaction(n,r))?.status)return!0;throw Error(t.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.config)throw Error(`No Config In Provider Adapter`);let n=await(0,c.signMessage)(this.config,{message:e});if(!n)throw Error(t.transactionErrorCodes.SIGNING_FAILED);if(n.includes(`error`))throw Error(t.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return n}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(t){if(!this.config)throw Error(`No Config In Provider Adapter`);let n=e.getOnchainChainId(t.chainId);return(0,c.switchChain)(this.config,{chainId:n})}async getAddress(){if(!this.config)throw Error(`No Config In Provider Adapter`);let{address:e}=(0,c.getAccount)(this.config);if(!e)throw Error(`IllegalState`);return o.ethers.getAddress(e)}setChainEventListener(e){if(!this.config)throw Error(`No Config In Provider Adapter`);this.chainEventListener=e,this.chainEventListener&&(this.unsubscribeFns.push((0,c.watchAccount)(this.config,{onChange:({address:e},{address:t})=>{this.chainEventListener&&e!==t&&this.chainEventListener.onAccountChanged()}})),this.unsubscribeFns.push((0,c.watchChainId)(this.config,{onChange:e=>{this.chainEventListener&&this.chainEventListener.onChainChanged(e)}})))}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.unsubscribeFns.forEach(e=>e()),this.unsubscribeFns=[]}getContract(e,t,n=void 0,r){return a.getContract(t,e,n,r)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){let r=this.fetchProviders[e];if(!r)throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,r)}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(e){return await this.connectToConnector(e)}isPermitterAvailable(){if(!this.chainId)throw Error(`Illegal state: no chainId`);return!!e.networkRegistry[this.chainId]?.contractData?.permitterAddress}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}static FALLBACK_METHODS=new Set([`eth_blockNumber`,`eth_call`]);wrapTransportWithRpcFallback(e,t){let n=this.fetchProviders[t];return n?{request:async t=>{let r=await e.request(t);return r==null&&l.FALLBACK_METHODS.has(t.method)?n.send(t.method,Array.isArray(t.params)?t.params:[]):r}}:e}async walletClientToSigner(e,t){let{account:n,transport:r}=e;return new o.ethers.BrowserProvider(this.wrapTransportWithRpcFallback(r,t)).getSigner(n)}async supportsBatchCall(t){if(!this.originalProvider)return!1;try{let n=await this.getAddress(),r=`0x${e.getOnchainChainId(t).toString(16)}`,i=await this.originalProvider.send(`wallet_getCapabilities`,[n,[r]]),a=i?.[r]||i?.[`0x0`];if(!a?.atomic)return!1;let o=typeof a.atomic==`string`?a.atomic:a.atomic?.status;return o===`supported`||o===`ready`}catch{return!1}}async waitForBatchTransactionStatus(e){if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);for(let t=0;t<60;t+=1){await new Promise(e=>{setTimeout(()=>e(),1e3)});try{let t=await this.originalProvider.send(`wallet_getCallsStatus`,[e]);if(t.status===n.CallsStatus.Confirmed&&t.receipts?.[0]?.transactionHash)return t.receipts[0].transactionHash;if(t.status===n.CallsStatus.OffchainFailure||t.status===n.CallsStatus.ChainFailure||t.status===n.CallsStatus.PartialFailure)break}catch(e){r.Logger.log(`waitForBatchTransactionStatus:`,e)}}throw Error(`Batch transaction timed out or failed`)}async sendBatchCallsTransaction(t,n){if(!this.fetchProviders[t])throw Error(`WagmiProviderAdapter: fetchProvider not initialized`);if(!this.originalProvider)throw Error(`WagmiProviderAdapter: Provider not initialized`);let r=await this.getAddress(),i={version:`2.0.0`,chainId:`0x${e.getOnchainChainId(t).toString(16)}`,from:r,atomicRequired:!0,calls:n},a=await this.originalProvider.send(`wallet_sendCalls`,[i]),o=a?.id||a;if(!o||typeof o!=`string`)throw Error(`Invalid batch ID received from wallet_sendCalls`);let s=await this.waitForBatchTransactionStatus(o),c=await this.fetchProviders[t].getTransaction(s);if(!c)throw Error(`Transaction not found`);return c}},u=new l,d=()=>new l;exports.default=d,exports.wagmiProviderAdapter=u;
@@ -52,12 +52,7 @@ var b = class b {
52
52
  }
53
53
  async connectToConnector(e) {
54
54
  if (!this.config) throw Error("No Config In Provider Adapter");
55
- let { isConnected: t, chainId: n, address: r } = m(this.config);
56
- if (t && r) {
57
- let t = n ?? await Promise.resolve(e.getChainId?.()) ?? void 0;
58
- if (t) return t;
59
- }
60
- if (e.id === "walletConnect" && !t) try {
55
+ if (e.id === "walletConnect") try {
61
56
  await h(this.config, { connectors: [e] }), await p(this.config);
62
57
  } catch {}
63
58
  try {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk",
3
- "version": "0.3.29",
3
+ "version": "0.3.31",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -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.3.29/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.29/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.29/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.31/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.31/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.31/' + '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.3.29/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.29/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.29/' + 'utxoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.31/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.31/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.31/' + 'utxoWorkerLauncher.js'),
20
20
  });
21
21
  export { n as getWorkerViteURL };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk",
3
- "version": "0.3.29",
3
+ "version": "0.3.31",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -1,23 +1,15 @@
1
- // idb-keyval shim for React Native
1
+ // idb-keyval shim for React Native
2
2
  const AsyncStorage =
3
3
  require("@react-native-async-storage/async-storage").default;
4
4
 
5
5
  const PREFIX = "@hinkal/idb-keyval:";
6
6
  const key = (k) => `${PREFIX}${typeof k === "string" ? k : JSON.stringify(k)}`;
7
7
 
8
- const replacer = (_key, value) =>
9
- typeof value === "bigint" ? { __bigint: value.toString() } : value;
10
-
11
- const reviver = (_key, value) =>
12
- value && typeof value === "object" && "__bigint" in value
13
- ? BigInt(value.__bigint)
14
- : value;
15
-
16
8
  async function get(k) {
17
9
  const raw = await AsyncStorage.getItem(key(k));
18
10
  if (raw == null) return undefined;
19
11
  try {
20
- return JSON.parse(raw, reviver);
12
+ return JSON.parse(raw);
21
13
  } catch {
22
14
  return undefined;
23
15
  }
@@ -28,7 +20,7 @@ async function set(k, value) {
28
20
  await AsyncStorage.removeItem(key(k));
29
21
  return;
30
22
  }
31
- await AsyncStorage.setItem(key(k), JSON.stringify(value, replacer));
23
+ await AsyncStorage.setItem(key(k), JSON.stringify(value));
32
24
  }
33
25
 
34
26
  async function update(k, updater) {
@@ -65,6 +57,7 @@ async function entries() {
65
57
  }
66
58
 
67
59
  function createStore() {
60
+ // idb-keyval lets callers create a store with a custom DB name; we ignore it
68
61
  return undefined;
69
62
  }
70
63
 
@@ -1 +1 @@
1
- var e={name:`@gurge/sdk`,version:`0.3.28`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,"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.15.0`,"async-mutex":`^0.4.0`,bs58:`^6.0.0`,buffer:`6.0.3`,"circomlibjs-hinkal-fork":`^0.0.10`,dotenv:`^16.4.5`,ethers:`^6.15.0`,"idb-keyval":`6.2.1`,multiformats:`^9.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`,"poseidon-lite":`^0.3.0`,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:`@gurge/sdk`,version:`0.3.30`,homepage:`hinkal.io`,author:{name:`Hinkal Protocol`},keywords:[`blockchain`,`privacy`,`zero-knowledge`,`stealth addresses`],exports:{".":{types:`./index.d.ts`,"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.15.0`,"async-mutex":`^0.4.0`,bs58:`^6.0.0`,buffer:`6.0.3`,"circomlibjs-hinkal-fork":`^0.0.10`,dotenv:`^16.4.5`,ethers:`^6.15.0`,"idb-keyval":`6.2.1`,multiformats:`^9.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`,"poseidon-lite":`^0.3.0`,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: "@gurge/sdk",
3
- version: "0.3.28",
3
+ version: "0.3.30",
4
4
  homepage: "hinkal.io",
5
5
  author: { name: "Hinkal Protocol" },
6
6
  keywords: [
@@ -1 +0,0 @@
1
- const e=require(`../../constants/vite.constants.cjs`);var t=t=>{let n=Date.now(),r=n;return{log(i,a){if(!e.isReactNative)return;let o=Date.now();console.log(`[HinkalRnDelta] at=${o} [${t}] ${i}`,{ms:o-r,totalMs:o-n,...a}),r=o}}};exports.createRnDeltaTiming=t;
@@ -1,5 +0,0 @@
1
- /** RN withdraw profiling — no-op on web. */
2
- export declare const logRnDelta: (scope: string, phase: string, extra?: Record<string, unknown>) => void;
3
- export declare const createRnDeltaTiming: (scope: string) => {
4
- log(phase: string, extra?: Record<string, unknown>): void;
5
- };
@@ -1,16 +0,0 @@
1
- import { isReactNative as e } from "../../constants/vite.constants.mjs";
2
- //#region libs/shared/common/src/functions/utils/hinkalTiming.utils.ts
3
- var t = (t) => {
4
- let n = Date.now(), r = n;
5
- return { log(i, a) {
6
- if (!e) return;
7
- let o = Date.now();
8
- console.log(`[HinkalRnDelta] at=${o} [${t}] ${i}`, {
9
- ms: o - r,
10
- totalMs: o - n,
11
- ...a
12
- }), r = o;
13
- } };
14
- };
15
- //#endregion
16
- export { t as createRnDeltaTiming };